/* StoryMemory SM-087 — source-agnostic Library + Source Viewer */
:root{--source-ui-ink:#26221d;--source-ui-muted:#8e8376;--source-ui-line:rgba(79,61,43,.16);--source-ui-warm:#f4efe8;--source-ui-paper:#fffdf8;--source-ui-accent:#9b6245}
.source-mode-switch{position:absolute;z-index:52;top:92px;right:44px;display:flex;align-items:center;gap:5px;padding:4px;border:1px solid rgba(229,210,187,.18);border-radius:999px;background:rgba(24,21,18,.38);backdrop-filter:blur(14px);box-shadow:0 12px 34px rgba(0,0,0,.12)}
.source-mode-switch button{border:0;background:transparent;color:rgba(246,239,228,.62);font:600 8px/1 var(--sans);letter-spacing:.14em;padding:8px 11px;border-radius:999px;cursor:pointer;text-transform:uppercase}
.source-mode-switch button.on{background:rgba(244,233,216,.94);color:#2d2823;box-shadow:0 3px 12px rgba(0,0,0,.15)}
.source-mode-switch .source-add{font-size:11px;padding-inline:9px;color:#e8d9c5}
#library[data-library-mode="sources"] .shelf-wrap{visibility:hidden;pointer-events:none}
#library[data-library-mode="sources"] .motion-control{opacity:.18;pointer-events:none}
#library[data-library-mode="sources"] .collection-stamp strong{font-size:10px}
.source-deck{position:absolute;z-index:20;left:7%;right:7%;top:31%;height:38%;display:none;align-items:flex-end;justify-content:center;gap:clamp(18px,3vw,48px);perspective:1300px}
#library[data-library-mode="sources"] .source-deck{display:flex}
.source-deck::after{content:"";position:absolute;left:0;right:0;bottom:16px;height:2px;background:linear-gradient(90deg,transparent,rgba(237,221,198,.26) 12%,rgba(237,221,198,.38) 50%,rgba(237,221,198,.26) 88%,transparent);box-shadow:0 18px 28px rgba(0,0,0,.25)}
.source-object{--source-tilt:0deg;position:relative;width:clamp(150px,16vw,220px);height:clamp(210px,27vh,300px);padding:0;border:0;background:transparent;color:inherit;cursor:pointer;transform-style:preserve-3d;transform:translateY(12px) rotateY(var(--source-tilt));transition:transform .48s cubic-bezier(.2,.8,.2,1),filter .3s,opacity .3s;filter:saturate(.75) brightness(.82);opacity:.82}
.source-object:nth-child(1){--source-tilt:8deg}.source-object:nth-child(3){--source-tilt:-8deg}
.source-object.selected{transform:translateY(-15px) rotateY(0) scale(1.045);filter:none;opacity:1;z-index:8}
.source-object-shell{position:absolute;inset:0;border:1px solid rgba(235,221,201,.38);background:linear-gradient(145deg,rgba(251,247,239,.95),rgba(222,211,197,.91));box-shadow:0 25px 42px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.56);overflow:hidden;text-align:left;color:#312a23}
.source-object[data-source-kind="contract"] .source-object-shell{background:linear-gradient(145deg,#f7f3eb,#dcd5ca)}
.source-object[data-source-kind="workbook"] .source-object-shell{background:linear-gradient(145deg,#f7f4e9,#d8ddd0)}
.source-object[data-source-kind="transcript"] .source-object-shell{background:linear-gradient(145deg,#eceff0,#cbd4d8)}
.source-object[data-source-kind="private"] .source-object-shell{background:linear-gradient(145deg,#eee9df,#d6cbbb)}
.source-object-shell::before{content:"";position:absolute;inset:13px;border:1px solid rgba(74,58,43,.13)}
.source-object-icon{position:absolute;left:22px;top:24px;width:42px;height:50px;border:1px solid rgba(63,49,38,.25);display:grid;place-items:center;font:600 10px var(--sans);letter-spacing:.08em;color:#6f6255;background:rgba(255,255,255,.32)}
.source-object-icon::after{content:"";position:absolute;right:-1px;top:-1px;border-style:solid;border-width:0 0 10px 10px;border-color:transparent transparent rgba(101,87,72,.15) transparent}
.source-object-copy{position:absolute;left:22px;right:22px;bottom:24px}.source-object-copy small{display:block;font:600 7px var(--sans);letter-spacing:.17em;color:#86796a;margin-bottom:8px}.source-object-copy strong{display:block;font:400 clamp(18px,2vw,25px) var(--serif);line-height:1.08}.source-object-copy span{display:block;margin-top:8px;font:500 8px/1.45 var(--sans);color:#7d7165}.source-object-state{position:absolute;right:19px;top:20px;font:700 6px var(--sans);letter-spacing:.14em;color:#786b5d}.source-object-state.ready{color:#56705f}.source-object-state.failed{color:#a24e43}
.source-object-progress{position:absolute;left:21px;right:21px;bottom:13px;height:1px;background:rgba(80,65,51,.15)}.source-object-progress i{display:block;height:100%;width:var(--source-progress,0%);background:#8c684d}
.source-import-dialog{position:fixed;z-index:220;inset:0;display:none;place-items:center;background:rgba(21,18,15,.58);backdrop-filter:blur(12px)}.source-import-dialog.open{display:grid}
.source-import-sheet{width:min(620px,calc(100vw - 34px));background:#f7f2e9;color:#2f2923;border:1px solid rgba(255,255,255,.5);box-shadow:0 32px 90px rgba(0,0,0,.35);padding:28px;position:relative}.source-import-sheet h2{font:400 28px var(--serif);margin:5px 0 8px}.source-import-sheet p{font:10px/1.65 var(--sans);color:#7c7065;max-width:500px}.source-import-sheet label{display:block;font:700 7px var(--sans);letter-spacing:.16em;margin:18px 0 6px;color:#7f7163}.source-import-sheet input,.source-import-sheet select,.source-import-sheet textarea{width:100%;border:1px solid rgba(80,64,48,.19);background:rgba(255,255,255,.56);padding:11px 12px;color:#2c2722;font:12px var(--sans);outline:none}.source-import-sheet textarea{min-height:150px;resize:vertical;line-height:1.55}.source-import-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.source-import-actions button{border:1px solid rgba(77,59,43,.18);padding:9px 14px;background:transparent;font:700 8px var(--sans);letter-spacing:.09em;cursor:pointer}.source-import-actions .primary{background:#2e2924;color:#f7efe4;border-color:#2e2924}.source-import-close{position:absolute;right:18px;top:16px;border:0;background:transparent;font-size:19px;cursor:pointer;color:#73685d}
.native-source-shell{display:none;position:relative;width:min(880px,calc(100% - 78px));height:calc(100% - 116px);margin-top:48px;background:#f4efe7;border:1px solid rgba(73,58,43,.16);box-shadow:0 24px 70px rgba(61,47,34,.15);overflow:hidden;color:#2c2823}.source-native-active .native-source-shell{display:flex;flex-direction:column}.source-native-active #paperStack,.source-native-active .curl-hint,.source-native-active #readerUnitNav,.source-native-active .reader-toolbar,.source-native-active .reader-ambient-number{display:none!important}.native-source-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;padding:20px 24px 17px;border-bottom:1px solid var(--source-ui-line);background:rgba(255,255,255,.45)}.native-source-kicker{font:700 7px var(--sans);letter-spacing:.18em;color:#8b7e70}.native-source-head h1{font:400 27px/1.1 var(--serif);margin:6px 0 5px}.native-source-head p{font:9px/1.5 var(--sans);color:#807469;margin:0}.native-source-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.native-source-badge{border:1px solid rgba(79,61,45,.16);padding:6px 8px;font:700 6px var(--sans);letter-spacing:.12em;background:rgba(255,255,255,.42)}.native-source-badge.ready{color:#52705c}.native-source-body{flex:1;overflow:auto;scroll-behavior:smooth;padding:22px clamp(22px,4vw,52px) 70px}.native-source-block{position:relative;max-width:720px;margin:0 auto 18px;padding:18px 22px;border-left:2px solid transparent;transition:background .18s,border-color .18s;cursor:text}.native-source-block:hover,.native-source-block.active{background:rgba(255,255,255,.52);border-left-color:#a27555}.native-source-block small{display:block;font:700 7px var(--sans);letter-spacing:.12em;color:#9a8c7d;margin-bottom:8px}.native-source-block h2{font:400 20px/1.2 var(--serif);margin:0 0 9px}.native-source-block p{font:15px/1.8 var(--serif);margin:0;color:#3a342e}.native-source-block[data-role="answer"]{border:1px dashed rgba(84,67,50,.17);border-left-width:1px;background:rgba(224,216,204,.35)}.native-source-block.answer-hidden p{filter:blur(7px);user-select:none;opacity:.35}.native-source-block.answer-hidden::after{content:"정답/해설은 Tutor 모드에서 숨김";position:absolute;inset:0;display:grid;place-items:center;font:700 8px var(--sans);letter-spacing:.12em;color:#776b60;background:rgba(247,243,235,.46)}.native-transcript-player{max-width:720px;margin:0 auto 24px;padding:17px 20px;background:#272a2b;color:#f0ece5;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.native-transcript-player button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.24);background:transparent;color:white;cursor:pointer}.native-transcript-player .track{height:2px;background:rgba(255,255,255,.18);position:relative}.native-transcript-player .track i{position:absolute;left:0;top:0;bottom:0;width:var(--media-progress,0%);background:#d7b18b}.native-transcript-player small{font:700 7px var(--sans);letter-spacing:.1em;color:#d5cec5}.source-context-rail{margin:0 0 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 7px}.source-context-rail .source-rail-kicker{font:700 7px var(--sans);letter-spacing:.15em;color:#958779}.source-context-current{margin:7px 0 9px;font:400 16px/1.25 var(--serif)}.source-context-locator{font:7px/1.45 var(--mono);color:#96887a;word-break:break-all}.source-context-list{display:grid;gap:3px;margin-top:10px}.source-context-list button{border:0;background:transparent;text-align:left;padding:7px 5px;font:9px/1.35 var(--sans);color:#5c534b;cursor:pointer;border-left:1px solid transparent}.source-context-list button.on{border-left-color:#a16b4d;background:rgba(255,255,255,.38)}.source-context-actions{display:flex;gap:5px;margin-top:9px}.source-context-actions button{border:1px solid var(--line);background:transparent;padding:6px 8px;font:700 7px var(--sans);cursor:pointer;color:#665b51}
.source-native-active .memory-type-tabs,.source-native-active .memory-focus,.source-native-active .annotation-counts,.source-native-active .annotation-memory-list,.source-native-active .memory-note-composer,.source-native-active .user-memory-list,.source-native-active .memory-item.system-memory,.source-native-active .memory-section-label:not(.source-ui-keep){display:none!important}.source-native-active .memory-rail{padding-top:22px}.source-native-active #backToChapters{display:block}.source-trust-control{margin:0 15px 13px;padding:10px;border:1px solid var(--line);background:rgba(255,255,255,.32)}.source-trust-control .trust-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.source-trust-control label{font:700 7px var(--sans);letter-spacing:.13em;color:#8f8173}.source-trust-control select{border:0;background:transparent;font:700 8px var(--sans);color:#514940;outline:none}.source-pack-state{margin-top:7px;font:7px/1.4 var(--sans);color:#8b7e72}.source-native-active .ai-panel .side-head small{color:#a16b4d}.source-native-active .ai-panel .context-card{border-left:2px solid #ad7959}.source-native-active .voice-status{display:none}.source-native-active .quick{grid-template-columns:1fr 1fr}.source-native-active .chat-hint::after{content:" · Source locator 자동 포함"}
.source-library-caption{position:absolute;z-index:22;left:50%;top:24.5%;transform:translateX(-50%);display:none;text-align:center;color:rgba(242,232,218,.72)}#library[data-library-mode="sources"] .source-library-caption{display:block}.source-library-caption small{font:700 7px var(--sans);letter-spacing:.19em}.source-library-caption strong{display:block;font:400 18px var(--serif);margin-top:5px;color:#f3e9da}
@media(max-width:900px){.source-mode-switch{top:82px;right:16px}.source-deck{left:3%;right:3%;gap:10px;overflow:auto;justify-content:flex-start;padding:0 18px}.source-object{min-width:150px}.source-native-active .reader-layout{grid-template-columns:1fr}.source-native-active .native-source-shell{width:calc(100% - 28px);height:calc(100% - 100px)}.source-native-head{grid-template-columns:1fr}.native-source-badges{justify-content:flex-start}}
