:root,[data-theme=clippy]{
 --bg:#008080;--win:#c0c0c0;--text:#000;--muted:#404040;--accent:#000080;--accent-text:#fff;
 --t1:#000080;--t2:#1084d0;--field:#fff;--font:"MS Sans Serif",Tahoma,"Segoe UI",Arial,sans-serif;--r:0px;
 --bevel:inset -1px -1px #000,inset 1px 1px #fff,inset -2px -2px #808080,inset 2px 2px #dfdfdf;
 --sunk:inset 1px 1px #808080,inset -1px -1px #fff,inset 2px 2px #000,inset -2px -2px #dfdfdf;
 --press:inset 1px 1px #000,inset -1px -1px #fff,inset 2px 2px #808080,inset -2px -2px #dfdfdf}
[data-theme=dark]{--bg:#0d0f14;--win:#171a22;--text:#e7e9ef;--muted:#9aa1b2;--accent:#7c9cff;--accent-text:#0d0f14;
 --t1:#171a22;--t2:#171a22;--field:#0f1118;--font:system-ui,"Segoe UI",Roboto,sans-serif;--r:10px;
 --bevel:0 0 0 1px #2a2f3d;--sunk:0 0 0 1px #2a2f3d;--press:0 0 0 1px #7c9cff}
[data-theme=light]{--bg:#e9edf3;--win:#fff;--text:#1b2030;--muted:#5d667a;--accent:#2f5bea;--accent-text:#fff;
 --t1:#fff;--t2:#fff;--field:#f4f6fa;--font:system-ui,"Segoe UI",Roboto,sans-serif;--r:10px;
 --bevel:0 0 0 1px #d5dbe6;--sunk:0 0 0 1px #d5dbe6;--press:0 0 0 1px #2f5bea}
[data-theme=neon]{--bg:#07021a;--win:#120a2e;--text:#f2e9ff;--muted:#a48fd6;--accent:#ff2bd6;--accent-text:#07021a;
 --t1:#120a2e;--t2:#120a2e;--field:#0a0522;--font:"Trebuchet MS",system-ui,sans-serif;--r:6px;
 --bevel:0 0 0 1px #ff2bd6,0 0 12px #ff2bd655;--sunk:0 0 0 1px #3c2a7a;--press:0 0 0 1px #00f0ff,0 0 12px #00f0ff88}
[data-theme=terminal]{--bg:#000;--win:#031003;--text:#37ff5a;--muted:#1fae38;--accent:#37ff5a;--accent-text:#000;
 --t1:#031003;--t2:#031003;--field:#000;--font:"Courier New",ui-monospace,monospace;--r:0px;
 --bevel:0 0 0 1px #1fae38;--sunk:0 0 0 1px #1fae38;--press:0 0 0 2px #37ff5a}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 var(--font);min-height:100vh}
a{color:inherit}
.desk{max-width:1280px;margin:0 auto;padding:12px}
.win{background:var(--win);box-shadow:var(--bevel);padding:3px;border-radius:var(--r)}
.tb{display:flex;align-items:center;gap:8px;padding:3px 6px;background:linear-gradient(90deg,var(--t1),var(--t2));color:#fff;font-weight:700;border-radius:calc(var(--r) - 2px)}
[data-theme=dark] .tb,[data-theme=light] .tb,[data-theme=neon] .tb,[data-theme=terminal] .tb{color:var(--text)}
.tb .sp{flex:1}.tb .ctl{display:flex;gap:2px}
.tb .ctl i{width:16px;height:14px;background:var(--win);box-shadow:var(--bevel);display:block}
:not([data-theme=clippy]) .tb .ctl{display:none}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px}
.bar h1{font-size:20px;margin:0 8px 0 0}
input,select,textarea,button{font:inherit;color:var(--text)}
input,select,textarea{background:var(--field);box-shadow:var(--sunk);border:0;padding:5px 8px;border-radius:var(--r)}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,.card:focus-visible{outline:2px dotted var(--accent);outline-offset:2px}
.btn{background:var(--win);box-shadow:var(--bevel);border:0;padding:5px 12px;cursor:pointer;border-radius:var(--r);text-decoration:none;display:inline-block}
.btn:active,.btn.on{box-shadow:var(--press)}
.btn.pri{background:var(--accent);color:var(--accent-text);font-weight:700}
#q{flex:1;min-width:160px}
.layout{display:grid;grid-template-columns:210px 1fr;gap:8px;margin-top:8px}
.side{padding:8px;align-self:start;position:sticky;top:8px}
.side h3{margin:4px 0 6px;font-size:13px}
.cats{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.cats button{width:100%;text-align:left;display:flex;justify-content:space-between;background:none;border:0;padding:4px 8px;cursor:pointer;border-radius:var(--r)}
.cats button:hover{background:var(--field)}
.cats button.on{background:var(--accent);color:var(--accent-text)}
.main{padding:8px;min-height:60vh}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:8px}
.card{background:var(--win);box-shadow:var(--bevel);padding:4px;cursor:pointer;text-decoration:none;display:block;position:relative;border-radius:var(--r)}
.card:hover{box-shadow:var(--press)}
.th{aspect-ratio:16/10;background:linear-gradient(135deg,hsl(var(--h) 60% 45%),hsl(calc(var(--h) + 50) 60% 30%));display:grid;place-items:center;font-size:40px;overflow:hidden;border-radius:calc(var(--r) / 2)}
.th img{width:100%;height:100%;object-fit:cover}
.card b{display:block;margin:5px 2px 0}.card small{color:var(--muted);margin:0 2px}
.fav{position:absolute;top:6px;right:6px;background:var(--win);box-shadow:var(--bevel);border:0;cursor:pointer;width:26px;height:26px;border-radius:var(--r)}
.empty{padding:40px;text-align:center;color:var(--muted)}
.ad{margin:8px 0;min-height:90px;display:grid;place-items:center;background:var(--field);box-shadow:var(--sunk);color:var(--muted);font-size:12px;overflow:hidden;border-radius:var(--r)}
.foot{text-align:center;padding:10px;color:var(--text);opacity:.8}
dialog{background:var(--win);color:var(--text);box-shadow:var(--bevel);border:0;padding:3px;width:min(460px,92vw);border-radius:var(--r)}
dialog::backdrop{background:#0008}
dialog form{display:grid;gap:8px;padding:10px}
dialog label{display:grid;gap:3px}
.stage{background:#000;position:relative;box-shadow:var(--sunk)}
.stage iframe{width:100%;height:min(72vh,720px);border:0;display:block;background:#000}
.theater .desk{max-width:none}.theater .stage iframe{height:86vh}
.row{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;align-items:center}
.clip{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;align-items:flex-end;gap:6px;max-width:300px}
.clip .bub{background:#ffffe1;color:#000;border:1px solid #000;padding:8px 10px;font:13px Tahoma,Arial,sans-serif;position:relative;cursor:pointer}
.clip .bub button{position:absolute;top:0;right:3px;background:none;border:0;cursor:pointer;color:#000}
.clip svg{width:64px;flex:none;cursor:pointer}
@media(max-width:760px){.layout{grid-template-columns:1fr}.side{position:static}.cats{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:no-preference){.clip svg{animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-4px)}}}

/* ---- full UI additions ---- */
body{padding-bottom:46px}
.clip{bottom:54px}
.taskbar{position:fixed;left:0;right:0;bottom:0;height:40px;display:flex;align-items:center;gap:8px;padding:3px 6px;background:var(--win);box-shadow:var(--bevel);z-index:40}
.start{font-weight:700}
.tsk,.clock{box-shadow:var(--sunk);padding:5px 12px;max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r)}
.smenu{position:absolute;left:6px;bottom:42px;min-width:230px;background:var(--win);box-shadow:var(--bevel);padding:3px;display:grid;border-radius:var(--r)}
.smenu[hidden]{display:none}
.smenu a{padding:8px 12px;text-decoration:none}.smenu a:hover{background:var(--accent);color:var(--accent-text)}
.smenu hr{width:100%;border:0;border-top:1px solid var(--muted);margin:3px 0}
.addr{display:flex;gap:8px;align-items:center;padding:0 8px}
.addr .field{flex:1;background:var(--field);box-shadow:var(--sunk);padding:4px 8px;border-radius:var(--r)}
.status{display:flex;justify-content:space-between;padding:4px 10px;margin-top:6px;box-shadow:var(--sunk)}
.seg{display:inline-flex;gap:2px}
.new{position:absolute;top:8px;left:8px;background:#d00;color:#fff;font:700 10px var(--font);padding:2px 5px;border-radius:var(--r)}
.th{position:relative}.th img{position:absolute;inset:0}
.grid.list{grid-template-columns:1fr}
.grid.list .card{display:flex;align-items:center;gap:10px;padding:3px 44px 3px 3px}
.grid.list .th{width:84px;flex:none;font-size:22px}.grid.list b{margin:0;flex:1}
.grid.list .fav{top:50%;transform:translateY(-50%)}
.head{margin:6px 0;color:var(--muted)}.main h3{margin:4px 0}.main hr{border:0;border-top:1px solid var(--muted);opacity:.4}
.side .btn{display:block;text-align:center;margin-top:10px}
.page{padding:14px 20px;max-width:760px;line-height:1.6}.page h2{margin-top:0}

/* ---- admin ---- */
.item{padding:8px 10px;margin:8px 0;box-shadow:var(--sunk);border-radius:var(--r);word-break:break-word}
.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{padding:4px 8px;text-align:left;border-bottom:1px solid var(--muted);vertical-align:middle}
.scroll{overflow-x:auto}.warn{color:#e5484d}.ok{color:#2e9e4f}
.thumbmini{width:56px;aspect-ratio:16/10;object-fit:cover;display:block}
#snip{width:100%;height:160px;font-family:ui-monospace,Consolas,monospace}
