:root{--bg: #0b0d10;--surface: #14181e;--surface-hover: #1b212a;--border: #232a34;--border-bright: #333d4b;--text: #e6e8ec;--muted: #9aa3ae;--faint: #6b7480;--accent: #4f9cf9;--accent-dim: #2d6fc4;--danger: #f87171;--live: #4ade80;--draft: #fbbf24;--radius: 12px;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px -12px rgb(0 0 0 / .6)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent)}button{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:1rem;padding:0 1.5rem;height:60px;border-bottom:1px solid var(--border);background:#0b0d10d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.header .brand{font-weight:600;letter-spacing:-.01em;font-size:1rem;background:none;border:0;color:var(--text);cursor:pointer;padding:0}.header .brand span{color:var(--faint);font-weight:400}.header .spacer{flex:1}.header .who{color:var(--muted);font-size:.8125rem}.header .role{margin-left:.5rem;padding:.125rem .5rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.main{flex:1;padding:2.5rem 1.5rem 4rem}.wrap{max-width:1440px;margin:0 auto}.page-title{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .25rem}.page-sub{color:var(--muted);margin:0 0 2rem}.back{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;margin-bottom:1.25rem;display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem}.back:hover{color:var(--text)}.modalities{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tile{position:relative;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;color:var(--text);display:flex;flex-direction:column;gap:.75rem;min-height:148px;transition:background .15s,border-color .15s,transform .15s}.tile:hover{background:var(--surface-hover);border-color:var(--border-bright);transform:translateY(-2px)}.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tile.empty{cursor:default;opacity:.5}.tile.empty:hover{transform:none;background:var(--surface);border-color:var(--border)}.tile .icon{color:var(--accent)}.tile .name{font-weight:600;letter-spacing:-.01em}.tile .desc{color:var(--faint);font-size:.8125rem;line-height:1.45;flex:1}.tile .count{color:var(--muted);font-size:.75rem}.items{display:grid;gap:1.25rem;grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width: 1240px){.items{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1000px){.items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 460px){.items{grid-template-columns:1fr}}.card{text-align:left;color:var(--text);display:flex;flex-direction:column;height:100%;border-radius:var(--radius);box-shadow:var(--shadow)}.cardfoot{flex:1 1 auto;display:flex;flex-direction:column;gap:.3rem;padding:.45rem .6rem .6rem;background:var(--surface);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius);transition:background .15s,border-color .15s}.card .frame{position:relative;aspect-ratio:1082 / 1400;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--border);border-bottom:0;background:var(--bg);transition:border-color .15s;display:grid;place-items:center}.card-wrap{transition:transform .15s}.card-wrap:hover{transform:translateY(-2px)}.card-wrap:hover .frame,.card-wrap:hover .cardfoot{border-color:var(--border-bright)}.card-wrap:hover .cardfoot{background:var(--surface-hover)}.card .frame img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.card .frame .fallback{color:var(--faint);opacity:.5}.items.wide .card .frame{aspect-ratio:16 / 10}.items.wide .card .frame img{object-fit:cover}.card .title{font-weight:500;line-height:1.35;font-size:.9375rem}.card .meta{color:var(--faint);font-size:.8125rem}.pill{display:inline-block;padding:.0625rem .4375rem;border-radius:999px;font-size:.6875rem;letter-spacing:.02em;border:1px solid;vertical-align:middle}.pill.draft{color:var(--draft);border-color:color-mix(in srgb,var(--draft) 35%,transparent)}.pill.retired{color:var(--faint);border-color:var(--border-bright)}.pill.exec{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.empty-state{border:1px dashed var(--border-bright);border-radius:var(--radius);padding:3rem 2rem;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:var(--text);font-weight:500;margin-bottom:.375rem}.error{border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);color:#fecaca;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.875rem}.loading{color:var(--faint);padding:2rem 0}.login{min-height:100vh;display:grid;place-items:center;padding:2rem}.login form{width:100%;max-width:21rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}.login h1{font-size:1.125rem;margin:0 0 .375rem;font-weight:600}.login p.hint{color:var(--muted);font-size:.875rem;margin:0 0 1.5rem}label{display:block;font-size:.8125rem;color:var(--muted);margin-bottom:.375rem}input[type=email],input[type=password],input[type=text],select{width:100%;padding:.5rem .75rem;margin-bottom:1rem;background:var(--bg);color:var(--text);border:1px solid var(--border-bright);border-radius:8px}input:focus,select:focus{outline:none;border-color:var(--accent)}select{margin-bottom:0;cursor:pointer}.btn{padding:.5rem .875rem;border-radius:8px;cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border-bright)}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn.danger{color:var(--danger)}.btn.wide{width:100%}.btn.sm{padding:.25rem .5rem;font-size:.8125rem}input.search{display:block;max-width:22rem;margin:0 0 1.75rem;background:var(--surface)}.source-switch{display:flex;width:fit-content;margin:0 0 1.5rem;border:1px solid var(--border-bright);border-radius:8px;overflow:hidden}.seg{background:none;border:0;cursor:pointer;color:var(--muted);padding:.4375rem .875rem;font-size:.875rem}.seg:hover{color:var(--text);background:var(--surface)}.seg.active{background:var(--accent-dim);color:#fff}.seg+.seg{border-left:1px solid var(--border-bright)}.tabs{display:flex;gap:.25rem;margin-bottom:1.75rem;border-bottom:1px solid var(--border)}.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:.5rem .875rem;cursor:pointer;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;padding:.5rem .75rem;color:var(--faint);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}td{padding:.625rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}tr:hover td{background:var(--surface)}td.right,th.right{text-align:right}td .sub{color:var(--faint);font-size:.8125rem}.row{display:flex;gap:.5rem;align-items:center}.row.end{justify-content:flex-end}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem}.panel h2{font-size:.9375rem;font-weight:600;margin:0 0 1rem}.panel .fields{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.panel .fields>div{flex:1;min-width:12rem}.panel .fields input,.panel .fields select{margin-bottom:0}input[type=file]{width:100%;padding:.5rem .75rem;margin-bottom:.5rem;background:var(--bg);color:var(--muted);border:1px dashed var(--border-bright);border-radius:8px;font-size:.875rem;cursor:pointer}input[type=file]::file-selector-button{margin-right:.75rem;padding:.25rem .625rem;cursor:pointer;background:var(--surface-hover);color:var(--text);border:1px solid var(--border-bright);border-radius:6px;font:inherit}.hint-line{color:var(--faint);font-size:.8125rem;margin:.25rem 0 0}.hint-line strong{color:var(--muted);font-weight:600}.upload-status{margin-top:1.25rem}.upload-status .bar{height:4px;border-radius:999px;overflow:hidden;background:var(--border);margin-bottom:.5rem}.upload-status .fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease-out}.card-wrap{position:relative}.cardbar{display:flex;align-items:center;gap:.5rem;min-height:1.5rem;position:relative;z-index:2}.feats{display:flex;align-items:center;gap:.3rem;flex:1 1 auto;min-width:0;color:var(--muted)}.feat{display:grid;place-items:center;cursor:help}.card-wrap:hover .feats{color:var(--text)}.acts{display:flex;align-items:center;gap:.125rem;flex:0 0 auto}.cardhit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:none;border:0;padding:0;cursor:pointer}.cardhit:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius)}.fav{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:999px;background:none;color:var(--faint);transition:color .12s ease,background .12s ease,transform .12s ease;cursor:pointer}.fav:hover{color:var(--text);background:var(--surface-hover);transform:scale(1.08)}.fav.on{color:var(--accent)}.fav:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tile.fav-tile .icon{color:var(--accent)}.noteholder{display:flex}.info{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer;transition:color .12s ease,background .12s ease}.info:hover{color:var(--text);background:var(--surface-hover)}.info:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notepop{position:absolute;bottom:calc(100% + .35rem);left:0;right:0;z-index:4;padding:.6rem .7rem;background:var(--surface-hover);color:var(--text);border:1px solid var(--border-bright);border-radius:var(--radius);box-shadow:0 12px 30px #00000073;font-size:.8125rem;line-height:1.5;text-align:left;white-space:pre-wrap;opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s}.noteholder:hover .notepop,.noteholder.open .notepop,.info:focus-visible+.notepop{opacity:1;visibility:visible}.notepreview{margin-top:.35rem;max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.noterow>td{background:var(--surface)}.noterow label{display:block;margin-bottom:.4rem;font-size:.8125rem;color:var(--muted)}.noterow textarea{width:100%;resize:vertical;padding:.55rem .65rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:.875rem}.noterow textarea:focus{outline:none;border-color:var(--accent)}.noterow .cactions{display:flex;align-items:center;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 1.25rem}.chip{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .65rem;border:1px solid var(--border-bright);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:.8125rem;line-height:1;cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.chip:hover{color:var(--text);background:var(--surface-hover)}.chip.on{color:var(--bg);background:var(--accent);border-color:var(--accent)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chipcount{font-size:.6875rem;opacity:.7;padding-left:.1rem}.chip.clear{border-style:dashed}.ftoggles{display:flex;flex-wrap:wrap;gap:.25rem;max-width:22rem}.ftoggle{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .45rem;border:1px solid var(--border);border-radius:999px;background:none;color:var(--faint);font:inherit;font-size:.75rem;line-height:1;cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.ftoggle:hover{color:var(--text);border-color:var(--border-bright)}.ftoggle.on{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.ftoggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.viewswitch{display:flex;justify-content:flex-end;margin:0 0 .75rem}.viewswitch .source-switch{margin:0}.rows{display:flex;flex-direction:column;gap:.5rem}.row-wrap{position:relative;transition:transform .15s}.row{display:flex;align-items:center;gap:.875rem;padding:.625rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:background .15s,border-color .15s}.row-wrap:hover .row{background:var(--surface-hover);border-color:var(--border-bright)}.rowthumb{flex:0 0 auto;width:2.75rem;aspect-ratio:1082 / 1400;display:grid;place-items:center;overflow:hidden;background:var(--bg);border:1px solid var(--border);border-radius:6px}.rowthumb img{width:100%;height:100%;object-fit:contain;display:block}.rowthumb .fallback{color:var(--faint);opacity:.5}.rowtext{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.15rem}.rowtitle{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-weight:500;font-size:.9375rem;line-height:1.3}.rowclient{color:var(--faint);font-weight:400;font-size:.8125rem}.rowdesc{font-size:.8125rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rowdesc{color:var(--muted)}.rowempty{font-size:.8125rem;color:var(--faint);opacity:.7}.rowicons{flex:0 0 auto;display:flex;align-items:center}.rowicons .feats,.row .acts{flex:0 0 auto;position:relative;z-index:2}@media (max-width: 560px){.rowicons{display:none}}.sorth{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}.sorth .arrow{opacity:.35;font-size:.85em;line-height:1}.sorth:hover .arrow{opacity:.7}.sorth.active .arrow{opacity:1}.sorth:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}.rename-trigger{display:inline-flex;align-items:center;gap:.4rem;background:none;border:0;padding:0;cursor:text;font:inherit;color:inherit;text-align:left}.rename-trigger svg{opacity:0;flex:none;transition:opacity .12s ease}.rename-trigger:hover svg,.rename-trigger:focus-visible svg{opacity:.55}.rename-trigger:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:3px}input.rename{font:inherit;width:100%;min-width:0;max-width:22rem;padding:.25rem .4rem}@media (prefers-reduced-motion: reduce){.rename-trigger svg{transition:none}}:root[data-theme=light]{--bg: #f5f7f8;--surface: #ffffff;--surface-hover: #eef2f5;--border: #dde3e8;--border-bright: #c3cdd5;--text: #16191d;--muted: #5b6672;--faint: #8792a0;--accent: #1f6fd0;--accent-dim: #1a5cad;--danger: #c02626;--live: #17803d;--draft: #a16207;--shadow: 0 1px 2px rgb(16 24 40 / .06), 0 8px 24px -12px rgb(16 24 40 / .18)}:root[data-theme=light] .header{background:#ffffffd1}:root[data-theme=light] .error{color:#8a1c1c}:root[data-theme=light] .notepop{box-shadow:0 12px 30px #1018282e}:root{--sl-surface: var(--surface);--sl-ink: var(--text);--sl-line: var(--border)}
