*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px 'Segoe UI',system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}a{color:var(--accent)}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:#252932;color:var(--text);padding:11px 15px;min-height:44px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#151820;font-weight:700;border-color:var(--accent)}button:disabled{opacity:.5;cursor:wait}input,select,textarea{width:100%;padding:12px;border-radius:10px;border:1px solid var(--line);background:#101217;color:var(--text);min-height:44px}label{display:grid;gap:7px;font-size:13px;color:var(--muted)}h1{font-size:clamp(28px,5vw,42px);letter-spacing:-1.5px;margin:8px 0 16px}h2{font-size:19px;margin:0 0 16px}h3{margin:0 0 8px}p{line-height:1.6}.muted,.source{color:var(--muted)}.source{font-size:12px;line-height:1.6}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent);text-transform:uppercase}.logo{font-weight:850;font-size:25px;letter-spacing:-1px}.logo span{color:var(--accent)}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;background:#090a0ded;backdrop-filter:blur(14px);z-index:5}.layout{display:grid;grid-template-columns:210px minmax(0,1fr)}nav{padding:24px 14px;position:sticky;top:76px;height:calc(100vh - 76px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px}nav button{text-align:left;border:0;background:transparent;color:var(--muted)}nav button.active{background:#d2d6df14;color:var(--accent);box-shadow:inset 3px 0 var(--accent)}main{padding:28px;max-width:1320px;width:100%;margin:auto;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.panel,.stat{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:22px;min-width:0}.hero{background:radial-gradient(ellipse at top right,#d2d6df1e,transparent 65%),var(--panel);padding:28px;border:1px solid #505865;border-radius:24px;margin-bottom:18px}.hero .value{font-size:clamp(34px,8vw,58px);letter-spacing:-2px;font-weight:800;margin:10px 0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat strong{display:block;font-size:25px;margin:10px 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stack{display:grid;gap:18px}.good{color:var(--accent)}.bad{color:var(--bad)}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.empty{padding:30px 12px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:15px;line-height:1.7}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.tile{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:16px;text-align:left;color:var(--text)}.tile img{width:100%;height:210px;object-fit:contain;margin-bottom:15px}.placeholder{height:150px;background:radial-gradient(circle,#343b47,#11151c);border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;color:var(--muted);margin-bottom:15px}.tile strong{display:block;margin:8px 0}.tag{font-size:11px;padding:5px 8px;background:#2a303a;border-radius:8px;color:#cbd0da;display:inline-block}.list-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:16px 0;align-items:center}.list-row:last-child{border-bottom:0}.list-row .grow{flex:1;min-width:0;overflow-wrap:anywhere}.thumb{width:48px;height:66px;object-fit:contain;border-radius:7px}.notice{border:1px solid #676331;background:#292714;border-radius:12px;padding:14px;color:#e4dda4;margin:15px 0;line-height:1.5}.searchbar{display:flex;gap:10px;margin-bottom:20px}.searchbar input{flex:1;min-width:0}.chart{width:100%;height:190px;color:var(--accent)}.chart polyline{stroke:currentColor;fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.allocation{height:8px;background:#2b3039;border-radius:8px;overflow:hidden;margin:12px 0}.allocation span{height:100%;display:block;background:var(--accent)}dialog{color:var(--text);background:#13161c;border:1px solid #454e5d;border-radius:22px;width:min(900px,calc(100% - 24px));max-height:90dvh;padding:24px}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.detail{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}.detail img{width:100%;object-fit:contain;max-height:320px}.tabs{display:flex;gap:8px;margin:18px 0}.tabs .active{border-color:var(--accent);color:var(--accent)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90%;padding:14px 22px;background:var(--accent);color:#151820;border-radius:12px;z-index:50}#toast[hidden]{display:none}.camera{border:1px dashed #6a7484;padding:35px;text-align:center;border-radius:20px;background:#d2d6df05}.camera img{width:100%;max-height:330px;object-fit:contain}textarea{min-height:140px}progress{width:100%;accent-color:var(--accent)}
@media(max-width:850px){.layout{grid-template-columns:1fr}header{height:68px;padding:0 16px}nav{position:sticky;top:68px;height:auto;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;overflow-x:auto;padding:8px;z-index:4;background:#090a0d}nav button{white-space:nowrap;flex-shrink:0}nav button.active{box-shadow:inset 0 -2px var(--accent)}main{padding:20px 16px}.grid{grid-template-columns:1fr}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:21px}.detail{grid-template-columns:1fr}.detail img{max-height:250px}.hero{padding:23px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.list-row{flex-wrap:wrap}.list-row .grow{min-width:50%}}@media(max-width:420px){.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.tile{padding:12px}.tile img{height:175px}.logo{font-size:23px}header .source{display:none}dialog{padding:18px}}

/* Compact silver binder shelves and touch-friendly arrangement controls. */
.binder-tile{position:relative;min-height:138px;padding:18px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:linear-gradient(140deg,#20242c,#14171d)}.binder-tile h3{font-size:17px;line-height:1.3;margin:0;padding-right:14px}.binder-mark{font-size:25px;color:#bdc4d0}.binder-arrow{position:absolute;right:16px;bottom:17px;color:#a5acba}.release-section{padding:22px}.release-section>.page-head{margin-bottom:18px}.release-section h2{margin:0}.arrange-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.arrange-row .flex{flex-wrap:nowrap}.arrange-row button{min-width:44px;padding:8px}.arrange-list{margin:15px 0}#arrangeNav{padding:8px 12px}.layout-help{margin-bottom:16px}@media(max-width:420px){.binder-tile{padding:14px;min-height:135px}.release-section{padding:15px}.binder-tile h3{font-size:15px}header{gap:8px}header .flex{gap:7px}.logo{font-size:20px}#arrangeNav{font-size:12px}.arrange-row{font-size:14px}}

.dragging{opacity:.45}.drag-handle{touch-action:none;cursor:grab;padding:8px;font-size:24px}.release-section>.page-head{justify-content:flex-start}.release-section>.page-head .source{margin-left:auto}nav button{touch-action:none;cursor:grab}

.binder-tile{text-align:center;align-items:center;justify-content:center}.binder-tile h3,.binder-tile .source{width:100%;text-align:center}


nav button{touch-action:auto}.nav-drag{touch-action:none;display:inline-block;cursor:grab;padding:3px 6px 3px 0;color:var(--muted)}

:root{--topbar-height:144px}.topbar{position:sticky;top:0;z-index:6;background:var(--bg);border-bottom:1px solid var(--line)}.topbar header{position:static;border-bottom:0}.topbar .global-search{max-width:1320px;margin:0 auto;padding:0 24px 16px;height:68px}.global-search[hidden]{display:none}nav{top:var(--topbar-height);height:calc(100dvh - var(--topbar-height))}.tile-drag{display:block;width:max-content;margin:0 0 8px auto;padding:5px 9px;touch-action:none;cursor:grab;color:var(--muted);font-size:20px;line-height:1;border-radius:7px}.tile-drag:focus{outline:2px solid var(--accent)}.binder-tile{position:relative}.binder-tile>.tile-drag{position:absolute;right:5px;top:5px;margin:0}.binder-tile{padding-top:36px}
@media(max-width:850px){:root{--topbar-height:136px}.topbar .global-search{padding:0 16px 16px}nav{top:var(--topbar-height);height:auto}}

@media(max-width:420px){:root{--topbar-height:162px}.topbar header{height:94px}.topbar header>.flex{display:grid;grid-template-columns:auto auto;gap:5px 8px}.topbar #accountLabel{display:block;grid-column:1/-1;text-align:right;font-size:11px}}
/* Compact header and persistent search. */
:root{--topbar-height:104px}
.topbar header{height:58px;padding:0 20px;gap:10px}
.topbar .logo{font-size:18px;letter-spacing:-.5px}
.topbar header button,.topbar #arrangeNav{font-size:12px;min-height:34px;padding:6px 10px;border-radius:9px}
.topbar #accountLabel{font-size:11px}
.topbar .global-search{height:46px;padding:0 20px 10px;gap:7px}
.topbar .global-search input,.topbar .global-search button{height:36px;min-height:36px;font-size:13px;padding:6px 10px;border-radius:9px}
@media(max-width:850px){.topbar header{padding:0 16px}.topbar .global-search{padding:0 16px 10px}}
@media(max-width:420px){:root{--topbar-height:110px}.topbar header{height:64px}.topbar .logo{font-size:16px}.topbar header>.flex{gap:3px 6px}.topbar #accountLabel{font-size:10px}.topbar header button,.topbar #arrangeNav{font-size:11px;padding:5px 8px;min-height:30px}.topbar .global-search input{font-size:13px}}
/* Group drag handles sit above their grids instead of occupying a tile cell. */
.grid[data-layout-key],.stats[data-layout-key],.tiles[data-layout-key],.stack[data-layout-key]{position:relative;padding-top:30px}
.grid>.tile-drag,.stats>.tile-drag,.tiles>.tile-drag,.stack>.tile-drag{position:absolute;right:0;top:0;margin:0}
