/* Asset Hub — Lightbox (dim room)
   An editor's light table in a darkened edit suite: the room is warm charcoal, and the only bright
   things are the frames themselves, glowing like backlit slides. Red china marker = selection / 定案 /
   active; yellow tape = 待生成. Everything floating above the table is a neutral black instrument
   so colour judgement stays true. */
@font-face{font-family:'Geist Mono';src:url('/fonts/geist-mono.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{
 color-scheme:dark;
 --room:#141312;--table:#191816;--table-2:#1f1e1b;--rail:#1a1917;--mount:#24221f;--mount-2:#2b2925;--mount-rim:rgba(255,244,226,.10);
 --ink:#ede9e2;--soft:#b3ada3;--faint:#99938a;--line:rgba(255,244,226,.09);--line-strong:rgba(255,244,226,.16);
 --lamp:#ffe9c4;--lamp-soft:rgba(255,233,196,.07);--backlight:#e9e4da;
 --marker:#e5573f;--tape:#e8b54c;--tape-ink:#2b1f05;--loupe:#0e0e0e;--loupe-2:#161616;--loupe-ink:#eeeeec;
 --accent:var(--marker);--hot:var(--tape);--surface:var(--mount);--canvas:var(--room);
 --mote:#ffe2b0;--mote-blend:screen;
 --card-bg:var(--mount);--primary-hover:#fffaf1;--primary-hover-ink:#17140f;
 --sans:-apple-system,'SF Pro Text','Segoe UI Variable Text','Segoe UI','PingFang TC','Microsoft JhengHei UI','Noto Sans TC',sans-serif;
 --display:var(--sans);
 --mono:'Geist Mono','SF Mono','Cascadia Mono',ui-monospace,'PingFang TC','Microsoft JhengHei UI',monospace;
 --mobile-shell:#0f0f0e;--mobile-active:var(--backlight);--mobile-active-ink:#17140f;--overlay-surface:#161616;--overlay-ink:#eeeeec;--control-surface:#232220;--mobile-line:rgba(255,244,226,.10);
 font-family:var(--sans);-webkit-font-smoothing:antialiased;accent-color:var(--marker)
}
html,body{background:var(--room);color:var(--ink)}
body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(1100px 620px at 60% -10%,rgba(255,233,196,.055),transparent 70%),var(--room)}
body:after{content:none}
.deck-mosaic,.mosaic-bg,.bento-hero .mosaic{display:none!important}
::selection{background:rgba(229,87,63,.32);color:#fff}
:focus-visible{outline:2px solid var(--tape);outline-offset:2px}
*{scrollbar-color:rgba(255,244,226,.18) transparent}

/* rail */
aside{inset:12px auto 12px 12px;width:184px;height:calc(100dvh - 24px);padding:20px 12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--rail)}
.wordmark{padding:0 8px;font-family:var(--sans);font-size:21px;font-weight:720;letter-spacing:-.04em;color:var(--ink)}
.wordmark span{font-weight:380;color:var(--soft)}.wordmark i{color:var(--marker);font-style:normal}
.aside-label{font-family:var(--mono);text-transform:uppercase;color:var(--faint);margin:22px 8px 8px}
.nav-item{min-height:40px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:#cdc7bd;font-weight:520}
.nav-item span{font-family:var(--mono);color:var(--faint)}
/* 側欄選中：不再用紅色左條，改成琥珀細框＋繞行光（ui2.css aside .nav-item .fx），底色帶一點暖光。 */
.nav-item{position:relative}
.nav-item.selected{background:linear-gradient(90deg,rgba(232,181,76,.12),rgba(255,244,226,.035))!important;color:#fff!important;box-shadow:none!important}
.nav-item.selected span,.nav-item.selected .project-date{color:var(--soft)!important}
.nav-item .project-name{font-size:13.5px;font-weight:560}.project-date,.nav-item .project-date{color:var(--faint)}
@media(hover:hover) and (pointer:fine){.nav-item:not(.selected):hover{background:rgba(255,244,226,.045);color:#fff}}
.project-head{margin:20px 0 7px}.project-head .aside-label{margin:0 8px}
.project-head select,.project-filter{background:var(--room);color:var(--ink);border:1px solid var(--line);border-radius:8px}
.aside-bottom{padding:14px 8px 0;border-top:1px solid var(--line);color:var(--faint)}
#install{background:var(--mount);color:var(--ink);border:1px solid var(--line)}

header{position:sticky;top:0;z-index:5;height:62px;margin:0 -32px;padding:0 32px;border:0;background:rgba(20,19,18,.84);-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1);box-shadow:0 1px var(--line)}
.breadcrumb{font-family:var(--mono);color:var(--faint)}
.connection{font-family:var(--mono);border:1px solid var(--line);background:var(--mount);color:#bfe0cb;border-radius:999px;padding:5px 10px}.connection:before{width:6px;height:6px;background:#57b07f}
.icon-button{border:0;border-radius:9px;color:#cdc7bd;background:transparent}
.tray-toggle{border-radius:9px;border:1px solid var(--line);background:var(--mount);color:var(--ink);font-weight:600}
.tray-toggle span{border-radius:999px;background:var(--backlight);color:#17140f;font-family:var(--mono);padding:2px 7px}

/* the table */
.deck{border-radius:14px;overflow:hidden;margin-top:10px;background:transparent}
.deck-hero{padding:18px 26px 16px;background:linear-gradient(180deg,#1e1c1a,#181715);border:1px solid var(--line)}
.deck-controls{padding:14px 22px 10px;background:var(--table);border:1px solid var(--line);border-top:0}
.deck-paper{padding:22px 26px 30px;background:transparent;color:var(--ink);overflow:visible}
.intro{padding:0 0 12px}
.intro h1{margin:0;font-size:clamp(26px,2.2vw,34px);font-weight:700;line-height:1.1;letter-spacing:-.03em;color:var(--ink)}
.view-switch{padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--room)}
.view-switch button{min-height:32px;border:0;border-radius:7px;color:var(--soft);background:transparent}.view-switch .active{background:var(--mount-2);color:#fff}
.sorting-toggle{border-radius:9px;border:1px solid var(--line);background:var(--mount);color:var(--ink)}
.sorting-toggle.active{background:var(--backlight);color:#17140f;border-color:var(--backlight)}

/* controls */
button,.button{border-radius:9px;border:1px solid var(--line-strong);background:var(--mount);color:var(--ink);font-weight:540;letter-spacing:0}
.primary,a.primary,.actions .primary{border:1px solid var(--backlight);border-radius:9px;background:var(--backlight);color:#17140f;font-weight:660}
input,textarea,select{border-radius:9px;border:1px solid var(--line-strong);background:var(--room);color:var(--ink)}
input::placeholder,textarea::placeholder{color:#8e887f}
input:focus,textarea:focus,select:focus{outline:0;border-color:rgba(255,233,196,.5);box-shadow:0 0 0 3px var(--lamp-soft)}
.search-wrap{height:46px;border:1px solid var(--line-strong);border-radius:11px;background:var(--room)}
.search-wrap:focus-within{border-color:rgba(255,233,196,.5);box-shadow:0 0 0 3px var(--lamp-soft)}
.search-wrap input{font-size:14px;background:transparent;border:0;box-shadow:none;color:var(--ink)}.search-wrap>span{color:var(--soft)}
kbd{font-family:var(--mono);font-size:11px;border-radius:6px;border:1px solid var(--line-strong);background:var(--mount);color:var(--soft)}
#search-status{color:var(--soft)}
#filters{padding:3px;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--room)}
#filters button{min-height:36px;padding:6px 13px;border:0;border-radius:7px;background:transparent;color:#c9c3b9;font-size:13px}
#filters button.active{background:var(--backlight);color:#17140f;font-weight:650}
#sort,.desktop-filter-toggle{border-radius:9px!important;background:var(--mount)!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.desktop-filter-toggle.active{border-color:rgba(255,233,196,.45)!important}
.desktop-filter-toggle.active span{background:var(--backlight)!important;color:#17140f!important}
.desktop-filter-chip{border-radius:999px!important;border:1px solid var(--line)!important;background:var(--mount)!important;color:var(--ink)!important}
body.desktop-filters-open .filter-panel{border:1px solid var(--line)!important;border-radius:12px;background:var(--table);padding:13px 14px 7px!important;color:var(--ink)}
.episode-bar[data-label]:before{font-family:var(--mono);color:var(--soft)}
.chip,.filter-panel .mobile-asset-types button{border-radius:8px!important;border:1px solid var(--line)!important;background:var(--mount)!important;color:#d6d0c6!important;font-weight:520!important}
.chip.active,.episode-bar .chip.active,.filter-panel .mobile-asset-types button.active{background:var(--backlight)!important;color:#17140f!important;border-color:var(--backlight)!important;box-shadow:none!important}
.chip.active .chip-count{color:#4a4439!important}
.advanced summary,.refine-row,.refine-row label{color:var(--soft)}

/* slides: every frame is a backlit transparency in a dark mount */
.collection-heading{margin:0 0 16px}.collection-heading h2{font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--ink)}
#count{font-family:var(--mono);color:var(--soft)}
.grid{gap:24px 18px}
.cover{position:relative;border:5px solid var(--mount);outline:1px solid var(--mount-rim);border-radius:7px;background:#0f0e0d;box-shadow:0 0 0 1px rgba(0,0,0,.4),0 16px 34px -22px rgba(0,0,0,.9),0 0 40px -18px rgba(255,233,196,.16);overflow:hidden}
.compact-grid .cover{border-width:3px}
.cover img{background:#0f0e0d}.cover.has-thumb:before{content:none}
.asset-title{margin-top:10px;color:var(--ink);font-size:14px;font-weight:600;letter-spacing:-.01em}
.asset-meta{color:var(--soft)}.asset-meta span:last-child{font-family:var(--mono);color:var(--faint)}
.badge,.episode-badge{border:0;border-radius:3px;background:rgba(10,10,9,.8);color:#f1ede6;padding:3px 6px;font-family:var(--mono);letter-spacing:.02em}
.card-add{border-radius:50%;background:rgba(20,19,18,.8);border:1px solid var(--line-strong);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
/* 在素材盤：片框邊緣亮起琥珀色，外加一道繞行的光（見 ui2.css .fx）和左上一條黃膠帶。 */
.in-tray .cover{outline-color:rgba(232,181,76,.55);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 16px 34px -22px rgba(0,0,0,.9),0 0 30px -6px rgba(255,214,150,.26)}
.tray-tag{position:absolute;left:8px;top:8px;z-index:2;padding:2px 7px;border-radius:2px;background:var(--tape);color:var(--tape-ink);font-size:12px;font-weight:650;line-height:1.5;transform:rotate(-2deg);box-shadow:0 2px 6px rgba(0,0,0,.35);pointer-events:none}
/* 選取：紅色油性筆把片框圈起來，角落打勾。跟素材盤的黃色分開，一眼看得出「選了」跟「已經放進盤」。 */
.picked .cover{border-color:var(--marker);outline-color:var(--marker)}
.picked .card-add{background:var(--marker);color:#fff;border-color:var(--marker)}
.sorting .asset{-webkit-user-select:none;user-select:none}
.sorting .asset-wrap:not(.picked) .cover{border-color:var(--mount)}
.cover img{-webkit-touch-callout:none}
/* 選取工具列：已選數量｜加入素材盤（黃膠帶，最常用）｜狀態｜標籤、待重做｜刪除 ……… 全選、取消。 */
.sort-strip{display:contents}
#sortbar .sort-tray{background:var(--tape);color:var(--tape-ink);border-color:var(--tape);font-weight:650}
#sortbar .sort-tray:not(:disabled):hover{background:#f0c565;color:var(--tape-ink)}
#sortbar .sort-tray.is-remove{background:#222;color:var(--tape);border-color:rgba(232,181,76,.55)}
/* 手機：兩列、固定在底部並取代分頁列。第一列數量＋全選＋取消；第二列所有動作一條左右滑，不會把卡片蓋掉一半。 */
@media(max-width:760px){
 body.sorting .mobile-workspaces{display:none!important}
 body.sorting main{padding-bottom:140px}
 #sortbar{position:fixed;left:8px;right:8px;bottom:calc(8px + var(--safe-bottom,0px));z-index:30;margin:0;display:grid;grid-template-columns:1fr auto auto;gap:8px 6px;align-items:center;padding:10px}
 #sortbar[hidden]{display:none}
 #sortbar>span{order:0;flex:none;padding-left:4px;font-size:14px;color:var(--loupe-ink)}
 #sortbar .quiet{flex:none;min-height:44px;padding:8px 12px}
 #sortbar .sort-strip{grid-column:1/-1;grid-row:2;display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -10px;padding:0 10px}
 #sortbar .sort-strip::-webkit-scrollbar{display:none}
 #sortbar .sort-strip .sort-actions{display:contents}
 #sortbar .sort-strip button{flex:none;min-height:44px;padding:8px 14px;margin:0;white-space:nowrap}
 #sortbar .sort-strip #sort-delete{margin-left:0}
}
/* 定案：片框不變，只靠常亮的奶白雙光（ui2.css .st-approved .fx）加一圈暖光暈區分。 */
.st-approved .cover{box-shadow:0 0 0 1px rgba(0,0,0,.45),0 16px 34px -22px rgba(0,0,0,.9),0 0 46px -12px rgba(255,226,176,.38)}
.st-old .cover{opacity:.6}
.star{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}
@media(hover:hover) and (pointer:fine){.asset:hover .cover{border-color:var(--mount);transform:translateY(-3px);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 22px 40px -22px rgba(0,0,0,.95),0 0 56px -14px rgba(255,233,196,.28)}.asset:hover .asset-title{color:#fff}}
.file-art{background:linear-gradient(160deg,#2a2825,#1d1c1a);color:var(--ink)}.file-art strong{color:var(--ink)}.file-art p{color:var(--soft)}.file-art .glyph{color:#8f897f}
.audio-art{background:linear-gradient(160deg,#27292b,#1b1c1d)}.audio-art .wave i{background:var(--tape)}
.text-card-kind{color:#ff8d76}.text-card-excerpt{color:#d9d3c9}
.text-results .cover,.script-mode .cover{background:linear-gradient(160deg,#262421,#1b1a18)}
.text-card-tools button{background:var(--mount);color:var(--ink)}.text-card-tools span{color:var(--soft)}

/* prompts, ideas, scripts */
.prompt-card,.idea-card,.idea-capture,.trash-head,#empty{border:1px solid var(--line);border-radius:10px;background:var(--mount);color:var(--ink)}
.prompt-title,.idea-body,.trash-head p{color:var(--ink)}.prompt-head,.idea-when,.idea-capture-note,.idea-project{color:var(--soft)}
.prompt-text{border:1px solid var(--line);border-radius:8px;background:var(--room);color:#e2ddd4}
.prompt-actions button:not(.primary),.deck-paper button:not(.primary):not(.card-add):not(.seg){background:var(--mount-2);color:var(--ink);border-color:var(--line-strong)}
.group-head{border-top-color:var(--line-strong)}.group-head strong{color:var(--ink)}
.group-meta,.prompt-size,.prompt-source,.ref-name,.ref-alts-label{color:var(--soft)}
.prompt-kind{color:var(--ink);border-color:rgba(255,244,226,.3);background:transparent}
.was-copied .prompt-kind:after{color:#8fd1ae}
.sec-badge{color:var(--soft);border-color:var(--line-strong)}
.seg-badge{background:var(--backlight);color:#17140f;border-color:var(--backlight)}
.status-badge,.stage-locked{background:rgba(232,181,76,.2);color:#f6d58f}
.old-badge,.stage-review{color:#f0c9a8;border-color:#8a684c;background:transparent}
.stage-written{color:var(--ink);border-color:rgba(255,244,226,.3);background:transparent}
.stage-draft{color:var(--soft);border-color:rgba(255,244,226,.25);background:transparent}
.script-story{color:#d9d3c9}.script-fact{color:var(--soft)}
.ref-item{border:1px solid var(--line);border-radius:8px;background:var(--room);color:var(--ink)}.ref-label b{color:#ffb4a4;font-family:var(--mono)}.ref-file,.ref-note{color:var(--soft)}
.ref-how{color:var(--soft);border-color:var(--line-strong)}.ref-how.guess,.ref-bulk-note{color:#f2cf86;border-color:#8a7040}
.idea-capture textarea,.idea-capture-tools select{background:var(--room);color:var(--ink);border-color:var(--line-strong)}
.md,.md p,.md li,.md strong,.md b,.md h1,.md h2,.md h3,.md h4{color:var(--ink)}.md code{background:var(--room);color:#f2d8b5}.md a{color:#ffb4a4}

/* resume: a contact strip lit from below */
.bento-hero{border:1px solid var(--line);border-radius:12px;background:rgba(15,14,13,.55)}
.resume-copy h2{color:var(--soft)}.resume-copy h2 b{color:#fff}.resume-meta{color:var(--soft)}.resume-summary{color:var(--ink)}
.resume-segments{padding:10px 8px!important;border-radius:4px;background:
  radial-gradient(circle at 50% 50%,#2a2825 2.2px,transparent 2.6px) 0 3px/12px 8px repeat-x,
  radial-gradient(circle at 50% 50%,#2a2825 2.2px,transparent 2.6px) 0 calc(100% - 3px)/12px 8px repeat-x,#080807}
.resume-segments .seg{border:0!important;border-radius:2px!important;background:var(--backlight)!important;color:#17140f!important;font-family:var(--mono);font-weight:650;box-shadow:0 0 18px -6px rgba(255,233,196,.45)!important;position:relative}
.resume-segments .seg-done{background:#57534c!important;color:#f1ede6!important;box-shadow:none!important}.resume-segments .seg-done:before{color:#f1ede6!important}
.resume-segments .seg-unknown{background:#2e2c29!important;color:#d8d2c8!important;box-shadow:none!important;outline:1px dashed rgba(255,244,226,.28);outline-offset:-3px}
.resume-segments .seg-todo{background:#f3ead6!important;box-shadow:inset 0 5px 0 var(--tape),0 0 22px -4px rgba(232,181,76,.55)!important}
.resume-segments .seg-here{outline:2.5px solid var(--marker)!important;outline-offset:3px;border-radius:50%/40%!important}
.resume-legend{color:var(--soft)}
.resume-legend .seg-todo:before{background:#f3ead6;border:0;box-shadow:inset 0 3px 0 var(--tape)}
.resume-legend .seg-done:before{background:#57534c;border:0}.resume-legend .seg-unknown:before{background:#2e2c29;border:1px dashed rgba(255,244,226,.35)}

/* instruments */
#viewer,.tray,.small-dialog,.sortbar,#toast,.utility-menu,.command{--ink:#eeeeec;--soft:#b6b6b2;--faint:#9c9c98;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.16)}
.tray{border-left:1px solid rgba(255,255,255,.06);background:var(--loupe);color:var(--loupe-ink)}
.tray-heading{border-bottom:1px solid rgba(255,255,255,.08)}
.tray button,.tray select,.tray input,.tray a.button{background:#1f1f1f;color:var(--loupe-ink);border-color:rgba(255,255,255,.12)}
.tray .primary{background:var(--backlight);color:#17140f;border-color:var(--backlight)}
.tray-number{color:#ff8d76}
.small-dialog{border:1px solid rgba(255,255,255,.1);border-radius:16px;background:var(--loupe-2);color:var(--loupe-ink);box-shadow:0 40px 120px -40px rgba(0,0,0,.8)}
.small-dialog button,.small-dialog input,.small-dialog select,.small-dialog textarea{background:#222;color:var(--loupe-ink);border-color:rgba(255,255,255,.12)}
.small-dialog .primary{background:var(--backlight);color:#17140f}
dialog::backdrop{background:rgba(8,8,7,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#viewer{background:var(--loupe);color:var(--loupe-ink)}
.viewer-bar,.viewer-bottom{background:#151515;border-color:rgba(255,255,255,.07)}
#viewer button,#viewer select,#viewer input,#viewer textarea,#viewer a.button{background:#212121;color:var(--loupe-ink);border-color:rgba(255,255,255,.12)}
#viewer .primary,#viewer a.primary{background:var(--backlight);color:#17140f;border-color:var(--backlight)}
#viewer label,.inspector label,.stage-note,#metadata,#filepath,#asset-id{color:var(--soft)}
#stage{background:#0a0a0a}.inspector{background:#131313;border-color:rgba(255,255,255,.07)}
.inspector-label{font-family:var(--mono);color:#9c9c98}
.sortbar{border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(21,21,21,.97);color:var(--loupe-ink);box-shadow:0 24px 60px -30px rgba(0,0,0,.8)}
.sortbar button{background:#222;color:var(--loupe-ink);border-color:rgba(255,255,255,.12)}
#toast{border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#1b1b1b;color:var(--loupe-ink)}
.utility-menu{background:#1b1b1b;color:var(--loupe-ink)}

@media(hover:hover) and (pointer:fine){
 button:not(.primary):hover,.button:not(.primary):hover{background:var(--mount-2);border-color:var(--line-strong)}
 #filters button:not(.active):hover,.view-switch button:not(.active):hover{background:rgba(255,244,226,.06);color:#fff}
 #viewer button:not(.primary):hover,.tray button:not(.primary):hover,.small-dialog button:not(.primary):hover,.sortbar button:not(.primary):hover{background:#2a2a2a}
}

@media(max-width:760px){
 aside{inset:0;height:auto}.deck{border-radius:12px}.deck-paper{padding-inline:0}
 header{background:rgba(20,19,18,.92)}
 .mobile-wordmark,.mobile-wordmark b{color:var(--ink)}
 .filter-panel{background:#161616!important;color:var(--loupe-ink);--ink:#eeeeec;--soft:#b6b6b2;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.16)}
 .filter-panel .mobile-asset-types button:not(.active),.filter-panel .chip:not(.active){background:#222!important;color:#eeeeec!important;border-color:rgba(255,255,255,.12)!important}
 .cover{border-width:3px}
}
@media(max-width:1300px){header{margin-inline:-22px;padding-inline:22px}}
@media(max-width:760px){header{margin-inline:-16px;padding-inline:16px}}
@media(max-width:380px){header{margin-inline:-12px;padding-inline:12px}}

/* finish review round 1 */
/* 卡片是一整張裝框幻燈片：資訊直接坐在暗房地面上，不再有一塊比框亮的直角平板。 */
.asset{background:transparent!important;border:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
@media(hover:hover) and (pointer:fine){.asset:hover{background:transparent!important}}
/* 文件卡：背光的文字幻燈片，排版文件開頭幾行；底部邊條寫格式。 */
.file-art.text-slide{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;padding:14px 14px 10px;background:radial-gradient(120% 90% at 50% 0%,#34312c,#24221f 70%);text-align:left}
.slide-lines{margin:0;font-size:12.5px;line-height:1.6;color:#e9e4da;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}
.compact-grid .slide-lines{-webkit-line-clamp:3;font-size:12px}
.slide-edge{display:flex;align-items:center;gap:8px;min-width:0;margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.slide-edge strong{color:var(--tape);font-weight:600}.slide-edge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.video-art .glyph .icon,.ref-glyph .icon,.reference-candidate-glyph .icon{width:28px;height:28px;color:var(--soft)}
.card-add .icon{width:18px;height:18px}.pick-mark .icon{width:16px;height:16px}
.nav-item .icon-up,.primary .icon-up{width:15px;height:15px;display:inline-block;vertical-align:-2px}
/* 色彩只留象牙、紅、黃：用途標籤回到暖中性色，用字重區分。 */
.prompt-kind,.prompt-kind.purpose-image,.prompt-kind.purpose-music,.prompt-kind.purpose-voice{color:var(--ink);border-color:rgba(255,244,226,.3)}
.prompt-kind.purpose-video{font-weight:700}
.ref-label b,.md a,.text-card-kind{color:#ffb4a4}
/* 登入頁也在暗房裡；拿掉英文小標。 */
.lock{background:radial-gradient(ellipse at 60% 10%,rgba(255,233,196,.08),transparent 60%),var(--room)!important;color:var(--ink)}
.lock .overline{display:none!important}
/* 指令面板是中性黑的工具。 */
.command{background:#0e0e0e!important}.command-field input{background:#1a1a1a!important}.command-row.active{background:#1f1f1f}
/* 側欄專案列：名稱省略、計數固定不被裁切。 */
#projects .nav-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
#projects .project-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#projects .nav-item>span:last-child{font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}
/* 手機首屏：接續卡在時，口號標題讓位，工具靠右同一列；讓第一排素材露出在分頁列上方。 */
@media(max-width:760px){
 body:has(#spotlight:not([hidden])) .intro h1{display:none}
 body:has(#spotlight:not([hidden])) .intro{justify-content:flex-end!important;padding:4px 0 10px!important}
 .deck-hero{padding:10px 10px 10px!important}
 .resume .bento-hero{padding:14px 12px!important;gap:10px!important}
 .resume-copy h2 b{font-size:24px!important}.resume-meta{margin:4px 0 10px!important}
 .resume-legend{margin-top:8px!important}
 .deck-controls{padding:10px 10px 8px!important}
 .deck-paper{padding-top:14px!important}
}
.file-art.text-slide .slide-lines{max-height:none;margin:0;font-size:12.5px;line-height:1.6;color:#e9e4da}
.file-art .slide-edge strong{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--tape)}
.file-art.text-slide{padding:12px 12px 8px}
@media(max-width:760px){.file-art.text-slide{padding:10px 10px 6px}.file-art.text-slide .slide-lines{-webkit-line-clamp:3;font-size:12px;line-height:1.5}}
/* 封面上已經有格式邊條，左下角的格式徽章就不重複。 */
.asset-wrap.text-asset .cover>.badge{display:none}
.file-art.text-slide .slide-lines{padding-right:46px;font-weight:420}
@media(max-width:760px){.file-art.text-slide .slide-lines{padding-right:48px}}
.file-art.text-slide>.glyph .icon{width:28px;height:28px;color:var(--faint)}
.search-wrap>span .icon{width:18px;height:18px}
/* 殘留冷色清掉：舊版用 CSS 畫的放大鏡（跟 SVG 圖示疊成兩個圈）、劇本「定案」薄荷綠框、文件引用段的藍灰字。 */
.search-wrap>span{border:0!important}.search-wrap>span:after{content:none!important}
.script-stage.stage-locked{border-color:rgba(255,236,200,.55);background:rgba(255,236,200,.1);color:#fff4df}
.md-quote{border-left-color:var(--line-strong,#3a3733);color:var(--soft)}

/* ── 預覽（點開素材後）────────────────────────────────────
   桌機不再重複上一個／下一個；狀態改成一排分段選擇；文件預覽的深藍底換成暖色；
   圖片與影片後面透出自己的顏色，像燈箱把片子的光打在桌面上。 */
@media(min-width:761px){#viewer .mobile-viewer-nav{display:none!important}}
#stage.has-ambient{isolation:isolate}
#stage.has-ambient:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:var(--thumb) center/cover no-repeat;filter:blur(64px) saturate(1.25);transform:scale(1.15);opacity:.3;animation:ambient-in .7s ease both}
@keyframes ambient-in{from{opacity:0}to{opacity:.3}}
@media(prefers-reduced-motion:reduce){#stage.has-ambient:before{animation:none}}
.stage-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#0e0e0e}
.stage-pick{position:relative;min-width:0!important;min-height:36px;padding:6px 4px;border:0!important;border-radius:8px;background:transparent;color:var(--soft);font-size:12.5px;font-weight:600}
.stage-pick.active{background:var(--mount-2)!important;color:#fff!important;border-color:transparent!important}
.stage-pick.redo-pick{grid-column:1/-1;background:rgba(255,244,226,.03)}
.stage-pick.redo-pick.active{background:rgba(232,181,76,.16)!important;color:#f6d58f!important}
.doc-toolbar{background:#0a0a0a!important;border-bottom-color:var(--line)!important}
.doc-block{border-bottom-color:var(--line)}
.doc-block.is-prompt{position:relative;border-color:var(--line-strong);background:var(--mount);border-radius:10px}
.doc-block.focus{border-color:rgba(232,181,76,.6)!important;box-shadow:0 0 0 1px rgba(232,181,76,.3)!important}
.doc-only.active{background:var(--mount-2);color:#fff;border-color:var(--line-strong)}
#stage pre,#stage .doc-block pre{color:#dcd6cc}#stage .doc-block.is-prompt pre{color:var(--ink)}

/* ── 繁中標題字（Noto Serif TC 700，自架、OFL 授權）：只給大標題，內文維持系統黑體 ── */
.intro h1,.collection-heading h2,#resume-title,.md h1,.md h2,.md h3,.doc-block-name{font-family:'Hub Serif TC',var(--sans);letter-spacing:0}

/* 手機：圖片／影片／音訊常駐在搜尋下面（底部分頁列放不下），只在素材分頁出現；文件仍在篩選裡。 */
.mobile-kind-tabs{display:none}
@media(max-width:760px){
 .mobile-kind-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin:10px 0 0;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--mount)}
 .mobile-kind-tabs[hidden],.trash-mode .mobile-kind-tabs{display:none}
 .mobile-kind-tabs button{min-height:44px;padding:6px 4px;border:0;border-radius:8px;background:transparent;color:#d6d0c6;font-size:14px;font-weight:520}
 .mobile-kind-tabs button.active{background:var(--backlight);color:#17140f;font-weight:650}
}

/* 右鍵選單：跟其他浮在桌面上的工具一樣是深色中性。 */
.card-menu{position:fixed;z-index:60;min-width:236px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#1b1b1b;color:var(--loupe-ink);box-shadow:0 22px 50px -18px rgba(0,0,0,.85)}
.card-menu[hidden]{display:none}
.card-menu-item{display:flex;align-items:baseline;justify-content:space-between;gap:18px;width:100%;min-height:36px;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:13px;text-align:left}
.card-menu-item small{color:#9c9c98;font-size:12px;font-family:var(--mono);white-space:nowrap}
.card-menu-item:hover,.card-menu-item:focus-visible{background:#2a2a2a;outline:none}
.card-menu-item:focus-visible{box-shadow:inset 0 0 0 1px var(--tape)}
.card-menu-sep{height:1px;margin:5px 4px;background:rgba(255,255,255,.1)}
