/* shared.css v3 */
/* Instant theme apply — no flash */
:root{--c1:#C0392B;--c2:#1A5276;--c3:#1E8449;--c4:#003dfd;--c5:#B7770D;--font-d:'Bebas Neue',sans-serif;--font-m:'DM Mono',monospace;--font-s:'Crimson Pro',serif;}
[data-theme="light"]{--bg:#F5F2EC;--paper:#EDEAE2;--surface:#E6E2D8;--ink:#1A1915;--ink2:#4A4640;--muted:#7A776E;--line:#D8D4CC;--hover:#EDEAE2;--white:#FFF;--card:#F0EDE5;--shadow:rgba(0,0,0,.06);}
[data-theme="dark"]{--bg:#111109;--paper:#181713;--surface:#1F1E19;--ink:#E8E4D8;--ink2:#C8C2B0;--muted:#7A7568;--line:#2A2820;--hover:#1F1E19;--white:#1A1916;--card:#141310;--shadow:rgba(0,0,0,.3);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

/* TRANSITIONS — no white flash */
body{
  background:var(--bg);color:var(--ink);font-family:var(--font-m);min-height:100vh;
  opacity:0;
  transition:opacity .2s ease;
}
body.page-loaded{opacity:1;}
body.page-leaving{opacity:0;pointer-events:none;}

/* Theme toggle — smooth, no flicker */
*{transition:background-color .25s ease,border-color .25s ease,color .15s ease;}
/* But NOT layout/transform properties */
button,a,.cat-item,.sub-link,.subcat-card,.ac,.cw-cell{transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .2s ease,opacity .2s ease;}

/* AUTH */
#auth-overlay{position:fixed;inset:0;background:var(--bg);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;}
#auth-overlay.visible{opacity:1;}
.auth-box{text-align:center;padding:48px 40px;border:1px solid var(--line);background:var(--card);max-width:320px;width:90%;}
.auth-logo{font-family:var(--font-d);font-size:32px;letter-spacing:4px;color:var(--ink);margin-bottom:8px;}
.auth-sub{font-size:9px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:28px;}
.auth-input-wrap{display:flex;border:1px solid var(--line);}
.auth-input-wrap input{flex:1;padding:10px 14px;font-family:var(--font-m);font-size:12px;background:var(--bg);border:none;color:var(--ink);outline:none;}
.auth-input-wrap input::placeholder{color:var(--muted);}
.auth-input-wrap button{padding:10px 16px;background:var(--ink);color:var(--bg);border:none;cursor:pointer;font-size:16px;}
.auth-error{font-size:9px;letter-spacing:2px;color:#C0392B;margin-top:10px;min-height:16px;text-transform:uppercase;}

/* HEADER */
.g-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:52px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:100;}
.g-logo{font-family:var(--font-d);font-size:20px;letter-spacing:4px;color:var(--ink);text-decoration:none;}
.g-back{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);text-decoration:none;cursor:pointer;background:none;border:none;font-family:var(--font-m);padding:6px 0;}
.g-back:hover{color:var(--ink);}
.g-right{display:flex;align-items:center;gap:16px;}
.g-clock{font-size:10px;color:var(--muted);letter-spacing:2px;}

/* HAMBURGER */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px;}
.hamburger span{width:22px;height:2px;background:var(--ink);display:block;}
@media(max-width:768px){.hamburger{display:flex;}}
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:89;}
#sidebar-overlay.visible{display:block;}

/* THEME TOGGLE */
.g-toggle{display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none;}
.toggle-lbl{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;}
.toggle-track{position:relative;width:38px;height:20px;border-radius:10px;background:var(--line);border:1px solid var(--line);flex-shrink:0;}
[data-theme="dark"] .toggle-track{background:var(--surface);border-color:var(--muted);}
.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);font-size:8px;display:flex;align-items:center;justify-content:center;}
[data-theme="dark"] .toggle-thumb{transform:translateX(18px);background:var(--ink2);}

/* SIDEBAR */
aside{width:240px;border-right:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;}
@media(max-width:768px){aside{position:fixed;top:52px;left:0;bottom:0;z-index:90;transform:translateX(-100%);box-shadow:4px 0 24px rgba(0,0,0,.15);}aside.open{transform:translateX(0);}}
.sb-label{font-size:8px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;padding:18px 20px 10px;border-bottom:1px solid var(--line);}
.cat-item{display:flex;align-items:center;padding:12px 20px;cursor:pointer;border-left:3px solid transparent;text-decoration:none;}
.cat-item:hover{background:var(--hover);}
.cat-item.active{border-left-color:var(--color);background:var(--hover);}
.cat-item.active .cat-nm,.cat-item:hover .cat-nm{color:var(--color);}
.cat-nm{font-family:var(--font-d);font-size:21px;letter-spacing:2px;color:var(--ink);}
.sub-link{display:flex;align-items:center;gap:8px;padding:8px 20px 8px 28px;font-family:var(--font-d);font-size:14px;letter-spacing:2px;color:var(--ink2);cursor:pointer;text-decoration:none;border-left:3px solid transparent;}
.sub-link:hover{color:var(--color);background:var(--hover);}
.sub-dot{width:4px;height:4px;border-radius:50%;background:var(--color);flex-shrink:0;}

/* LAYOUT */
.page-layout{display:flex;height:calc(100vh - 52px - 32px);}
.page-main{flex:1;overflow-y:auto;background:var(--bg);}

/* FOOTER */
.g-footer{height:32px;border-top:1px solid var(--line);padding:0 24px;display:flex;align-items:center;background:var(--bg);}
.live{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;}
.live-dot{width:5px;height:5px;border-radius:50%;background:#3a9a5c;animation:lp 2.5s ease-in-out infinite;}
@keyframes lp{0%,100%{opacity:1}50%{opacity:.3}}

/* OVERVIEW */
.overview{padding:28px 32px 0;}
.ov-title{font-family:var(--font-d);font-size:26px;letter-spacing:2px;color:var(--ink);margin-bottom:18px;}
.ov-row{display:grid;grid-template-columns:160px 1fr 1fr;gap:12px;margin-bottom:16px;}
@media(max-width:900px){.ov-row{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.ov-row{grid-template-columns:1fr;}}
.wgt{background:var(--card);border:1px solid var(--line);padding:16px 18px;}
.wgt-lbl{font-size:7px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}
.ring-wrap{display:flex;align-items:center;gap:14px;}
.ring-svg{flex-shrink:0;width:60px;height:60px;}
.ring-bg{fill:none;stroke:var(--line);stroke-width:5;}
.ring-fg{fill:none;stroke:var(--c3);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .6s ease;transform-origin:50% 50%;transform:rotate(-90deg);}
.ring-pct{font-family:var(--font-d);font-size:16px;fill:var(--ink);}
.ring-stats{display:flex;flex-direction:column;gap:4px;}
.rstat{font-size:10px;color:var(--ink2);}.rstat em{color:var(--muted);font-style:normal;}
.urg-list{display:flex;flex-direction:column;gap:4px;}
.urg-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--tc);background:var(--bg);}
.urg-title{font-size:10px;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.urg-cat{font-size:7px;letter-spacing:2px;color:var(--tc);border:1px solid var(--tc);padding:1px 5px;white-space:nowrap;}
.urg-date{font-size:8px;color:#C0392B;white-space:nowrap;}
.urg-none{font-size:8px;letter-spacing:2px;color:var(--muted);padding:14px 0;text-align:center;border:1px dashed var(--line);text-transform:uppercase;}
.obj-ov-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:4px;}
@media(max-width:700px){.obj-ov-grid{grid-template-columns:repeat(2,1fr);}}
.obj-ov-card{border:1px solid var(--line);border-top:3px solid var(--cc);padding:12px 12px 10px;background:var(--card);cursor:pointer;}
.obj-ov-card:hover{background:var(--hover);}
.ooc-name{font-family:var(--font-d);font-size:17px;letter-spacing:2px;color:var(--ink);margin-bottom:6px;}
.ooc-bar-bg{height:3px;background:var(--line);margin-bottom:5px;overflow:hidden;}
.ooc-bar{height:100%;transition:width .4s ease;}
.ooc-stat{font-size:8px;letter-spacing:1px;color:var(--ink2);}

/* SHORTCUTS */
.shortcuts{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 24px;}
.shortcut{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line);border-left:3px solid var(--sc,var(--ink));background:var(--card);text-decoration:none;color:var(--ink);}
.shortcut:hover{background:var(--hover);color:var(--ink);}
.shortcut-label{font-family:var(--font-d);font-size:14px;letter-spacing:2px;}
.shortcut-sub{font-size:7px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;}

/* TODO */
.todo-wrap{padding:0 32px 60px;}
.todo-title{font-family:var(--font-d);font-size:28px;letter-spacing:2px;color:var(--ink);}
.todo-sub{font-family:var(--font-s);font-style:italic;font-size:14px;color:var(--muted);margin-top:3px;margin-bottom:16px;}
.divider{margin:0 32px 20px;height:1px;background:var(--line);}

/* ADD FORM */
.add-form{display:grid;grid-template-columns:1fr 100px 110px auto auto;gap:6px;margin-bottom:16px;padding:14px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--ink);}
@media(max-width:700px){.add-form{grid-template-columns:1fr 1fr;row-gap:6px;}.add-form .btn-add{grid-column:1/-1;}}
.af-input,.af-select{font-family:var(--font-m);font-size:11px;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:7px 9px;outline:none;-webkit-appearance:none;width:100%;}
.af-input::placeholder{color:var(--muted);}
.af-input:focus,.af-select:focus{border-color:var(--ink2);}
.date-wrap{position:relative;}

/* DATE PICKER */
.dp-pop{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:400;background:var(--bg);border:1px solid var(--line);width:236px;padding:12px;box-shadow:0 8px 24px var(--shadow);}
.dp-pop.open{display:block;}
.dp-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.dp-nb{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 8px;}
.dp-nb:hover{color:var(--ink);}
.dp-ml{font-family:var(--font-d);font-size:15px;letter-spacing:2px;color:var(--ink);}
.dp-hd{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;}
.dp-dh{font-size:7px;letter-spacing:1px;color:var(--muted);text-align:center;text-transform:uppercase;}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.dp-c{font-size:9px;text-align:center;padding:5px 2px;cursor:pointer;color:var(--ink);border-radius:2px;background:none;border:none;font-family:var(--font-m);}
.dp-c:hover:not(:disabled){background:var(--hover);}
.dp-c.today{border:1px solid var(--line);font-weight:bold;}
.dp-c.sel{background:var(--ink)!important;color:var(--bg)!important;}
.dp-c.other,.dp-c.past{color:var(--muted);opacity:.3;}
.dp-c:disabled{cursor:default;}
.dp-clr{width:100%;margin-top:8px;padding:5px;font-size:7px;letter-spacing:2px;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;font-family:var(--font-m);}
.dp-clr:hover{border-color:var(--ink);color:var(--ink);}

.btn-add{font-family:var(--font-d);font-size:15px;letter-spacing:2px;padding:7px 18px;background:var(--ink);color:var(--bg);border:none;cursor:pointer;white-space:nowrap;}
.btn-add:hover{opacity:.8;}

/* FILTERS */
.filter-bar{display:flex;gap:5px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
.fb{font-family:var(--font-m);font-size:8px;letter-spacing:3px;text-transform:uppercase;padding:5px 11px;border:1px solid var(--line);background:none;color:var(--muted);cursor:pointer;}
.fb:hover{border-color:var(--ink2);color:var(--ink);}
.fb.on{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.fb[data-f="ORMT"].on{background:var(--c1);border-color:var(--c1);}
.fb[data-f="SIRIUS"].on{background:var(--c2);border-color:var(--c2);}
.fb[data-f="NISHEN"].on{background:var(--c3);border-color:var(--c3);}
.fb[data-f="REVERSE"].on{background:var(--c4);border-color:var(--c4);}
.fb[data-f="PERSO"].on{background:var(--c5);border-color:var(--c5);}
.fsep{width:1px;background:var(--line);height:16px;flex-shrink:0;}

/* PRIORITY GROUPS */
.pg{margin-bottom:16px;}
.pg-hd{display:flex;align-items:center;gap:9px;padding:5px 0;margin-bottom:7px;border-bottom:2px solid var(--pc);cursor:pointer;user-select:none;}
.pg-dot{width:6px;height:6px;border-radius:50%;background:var(--pc);flex-shrink:0;}
.pg-lbl{font-size:8px;letter-spacing:4px;text-transform:uppercase;color:var(--pc);font-family:var(--font-m);}
.pg-cnt{font-size:8px;color:var(--muted);margin-left:auto;}
.pg-chev{font-size:9px;color:var(--muted);}
.pg.coll .pg-body{display:none;}
.pg-body{display:flex;flex-direction:column;gap:4px;}
.ti{display:grid;grid-template-columns:16px 1fr auto auto 16px;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--tc,var(--line));animation:tIn .18s ease;}
@keyframes tIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.ti.done{opacity:.35;}.ti.done .ti-title{text-decoration:line-through;color:var(--muted);}
.ti-check{width:14px;height:14px;border:1px solid var(--line);border-radius:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;flex-shrink:0;background:var(--bg);}
.ti.done .ti-check{background:var(--tc,var(--muted));border-color:var(--tc,var(--muted));color:var(--bg);}
.ti-title{font-size:11px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ti-cat{font-size:7px;letter-spacing:2px;text-transform:uppercase;padding:1px 6px;border:1px solid var(--tc,var(--line));color:var(--tc,var(--muted));white-space:nowrap;flex-shrink:0;}
.ti-dl{font-size:8px;color:var(--muted);white-space:nowrap;flex-shrink:0;letter-spacing:1px;}
.ti-dl.ov{color:#C0392B;}.ti-dl.sn{color:#B7770D;}
.ti-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px;flex-shrink:0;line-height:1;}
.ti-del:hover{color:#C0392B;}
.t-empty{font-size:8px;letter-spacing:2px;color:var(--muted);padding:20px 0;text-align:center;border:1px dashed var(--line);text-transform:uppercase;}

/* OBJ MODAL */
.om{position:fixed;inset:0;z-index:600;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45);}
.om.on{display:flex;}
.om-box{background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--oc,var(--ink));width:440px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 16px 40px var(--shadow);}
.om-hd{display:flex;align-items:center;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--line);}
.om-title{font-family:var(--font-d);font-size:24px;letter-spacing:2px;color:var(--ink);}
.om-sub{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;}
.om-x{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px;}
.om-x:hover{color:var(--ink);}
.om-body{padding:18px 22px;overflow-y:auto;flex:1;}
.om-prog-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.om-prog-wrap{flex:1;height:4px;background:var(--line);}
.om-prog-fill{height:100%;background:var(--oc,var(--muted));transition:width .4s ease;}
.om-prog-pct{font-size:9px;letter-spacing:2px;color:var(--muted);white-space:nowrap;}
.om-add-row{display:flex;gap:6px;margin-bottom:14px;}
.om-inp{flex:1;font-family:var(--font-m);font-size:11px;background:var(--card);border:1px solid var(--line);color:var(--ink);padding:8px 10px;outline:none;}
.om-inp:focus{border-color:var(--ink2);}
.om-inp::placeholder{color:var(--muted);}
.om-add-btn{font-family:var(--font-d);font-size:14px;letter-spacing:2px;padding:8px 14px;background:var(--ink);color:var(--bg);border:none;cursor:pointer;}
.om-add-btn:hover{opacity:.8;}
.om-list{display:flex;flex-direction:column;gap:5px;}
.om-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);border-left:3px solid var(--oc,var(--line));background:var(--card);}
.om-check{width:14px;height:14px;border:1px solid var(--line);border-radius:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;flex-shrink:0;background:var(--bg);}
.om-item.done .om-check{background:var(--oc,var(--muted));border-color:var(--oc,var(--muted));color:#fff;}
.om-item.done .om-txt{text-decoration:line-through;color:var(--muted);}
.om-txt{font-size:11px;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.om-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;}
.om-del:hover{color:#C0392B;}
.om-empty{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;padding:20px 0;text-align:center;}
.om-close{margin-top:14px;width:100%;padding:7px;font-size:8px;letter-spacing:3px;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;font-family:var(--font-m);}
.om-close:hover{border-color:var(--ink);color:var(--ink);}

/* CALENDAR WIDGET */
.cw{background:var(--card);border:1px solid var(--line);margin-bottom:32px;}
.cw-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;}
.cw-title{font-family:var(--font-d);font-size:20px;letter-spacing:2px;color:var(--ink);}
.cw-controls{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.cw-btn,.cw-vbtn{font-family:var(--font-m);font-size:8px;letter-spacing:2px;padding:5px 10px;background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;}
.cw-btn:hover,.cw-vbtn:hover{border-color:var(--ink2);color:var(--ink);}
.cw-vbtn.on{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.cw-sep{width:1px;height:18px;background:var(--line);margin:0 4px;}
.cw-month{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);}
.cw-dh{font-size:7px;letter-spacing:2px;color:var(--muted);text-align:center;padding:8px 4px;text-transform:uppercase;background:var(--bg);border-bottom:1px solid var(--line);}
.cw-cell{min-height:72px;padding:6px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;position:relative;}
.cw-cell:nth-child(7n){border-right:none;}
.cw-cell:hover{background:var(--hover);}
.cw-cell.today .cw-cn{background:var(--c2);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;}
.cw-cell.sel{background:var(--hover);}
.cw-cell.other{opacity:.3;cursor:default;}
.cw-cn{font-size:11px;color:var(--ink);margin-bottom:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;}
.cw-dots{display:flex;gap:2px;flex-wrap:wrap;}
.cw-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.cw-more{font-size:7px;color:var(--muted);}
@media(max-width:600px){.cw-cell{min-height:44px;padding:4px;}.cw-cn{font-size:9px;width:18px;height:18px;}.cw-dot{width:5px;height:5px;}}
.cw-panel{border-top:1px solid var(--line);padding:16px 18px;background:var(--bg);}
.cw-panel-hd{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-family:var(--font-d);font-size:16px;letter-spacing:2px;color:var(--ink);}
.cw-panel-add{font-family:var(--font-m);font-size:8px;letter-spacing:2px;padding:5px 12px;background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;}
.cw-panel-add:hover{border-color:var(--ink);color:var(--ink);}
.cw-panel-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;margin-left:auto;}
.cw-panel-empty{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;padding:8px 0;}
.cw-tr{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--tc);background:var(--card);margin-bottom:4px;}
.cw-tr-dot{width:6px;height:6px;border-radius:50%;background:var(--tc);flex-shrink:0;}
.cw-tr-title{font-size:11px;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cw-tr-cat{font-size:7px;letter-spacing:2px;color:var(--tc);border:1px solid var(--tc);padding:1px 5px;white-space:nowrap;}
.cw-tr-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;}.cw-tr-del:hover{color:#C0392B;}
.cw-week{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);overflow-x:auto;}
.cw-wcol{border-right:1px solid var(--line);min-height:180px;}.cw-wcol:last-child{border-right:none;}
.cw-wcol.today{background:rgba(26,82,118,.04);}
.cw-whd{font-size:8px;letter-spacing:1px;color:var(--muted);padding:8px 6px;border-bottom:1px solid var(--line);text-align:center;text-transform:uppercase;}
.cw-whd span{display:block;font-family:var(--font-d);font-size:16px;color:var(--ink);letter-spacing:1px;margin-top:2px;}
.cw-wcol.today .cw-whd span{background:var(--c2);color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin:2px auto 0;}
.cw-wtasks{padding:6px 4px;display:flex;flex-direction:column;gap:3px;}
.cw-wtask{font-size:9px;padding:4px 6px;border-left:3px solid;background:var(--card);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cw-wadd{width:100%;margin-top:4px;padding:4px;font-size:10px;background:none;border:1px dashed var(--line);color:var(--muted);cursor:pointer;font-family:var(--font-m);}
.cw-wadd:hover{border-color:var(--ink);color:var(--ink);}
.cw-agenda{padding:16px 18px;}
.cw-aday{margin-bottom:20px;}
.cw-adate{font-family:var(--font-d);font-size:14px;letter-spacing:2px;color:var(--ink);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line);}
.cw-atask{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid;background:var(--card);margin-bottom:4px;}
.cw-atitle{font-size:11px;color:var(--ink);flex:1;}
.cw-acat{font-size:7px;letter-spacing:2px;color:var(--muted);border:1px solid var(--line);padding:1px 5px;}
.cw-agenda-empty{font-size:9px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;padding:28px 0;text-align:center;}
.cw-add{padding:16px 18px;border-top:1px solid var(--line);background:var(--bg);}
.cw-add-hd{font-size:8px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}
.cw-add-row{display:flex;gap:6px;flex-wrap:wrap;}
.cw-add-inp{flex:1;min-width:160px;font-family:var(--font-m);font-size:11px;background:var(--card);border:1px solid var(--line);color:var(--ink);padding:7px 10px;outline:none;}
.cw-add-inp:focus{border-color:var(--ink2);}
.cw-add-inp::placeholder{color:var(--muted);}
.cw-add-sel{font-family:var(--font-m);font-size:10px;background:var(--card);border:1px solid var(--line);color:var(--ink);padding:7px 8px;outline:none;-webkit-appearance:none;}
.cw-add-btn{font-family:var(--font-d);font-size:13px;letter-spacing:2px;padding:7px 14px;background:var(--ink);color:var(--bg);border:none;cursor:pointer;}
.cw-add-btn:hover{opacity:.8;}
.cw-add-x{background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;padding:7px 10px;font-size:14px;}
.cw-add-x:hover{border-color:var(--ink);color:var(--ink);}

/* CAT PAGES */
.cat-hero{padding:40px 32px 28px;border-bottom:1px solid var(--line);}
.cat-hero-label{font-size:8px;letter-spacing:5px;color:var(--muted);text-transform:uppercase;margin-bottom:8px;}
.cat-hero-title{font-family:var(--font-d);font-size:clamp(48px,10vw,96px);letter-spacing:-1px;line-height:.9;color:var(--ink);}
.cat-hero-bar{width:48px;height:3px;background:var(--color,var(--ink));margin-top:16px;}
.cat-section{padding:28px 32px;}
.cat-section-title{font-family:var(--font-d);font-size:18px;letter-spacing:3px;color:var(--ink);margin-bottom:16px;text-transform:uppercase;}
.subcat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-bottom:32px;}
.subcat-card{padding:20px 18px;border:1px solid var(--line);border-left:3px solid var(--color,var(--ink));background:var(--card);cursor:pointer;text-decoration:none;display:block;}
.subcat-card:hover{background:var(--hover);}
.subcat-card-name{font-family:var(--font-d);font-size:20px;letter-spacing:2px;color:var(--ink);}
.subcat-card-sub{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:4px;}

/* ARTIST/STATS */
.artist-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);}
.artist-img-sq{width:100%;max-width:400px;display:block;aspect-ratio:1/1;object-fit:cover;object-position:center top;}
.artist-img-sq-wrap{position:relative;max-width:400px;}
.artist-img-sq-wrap .overlay{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(transparent,rgba(0,0,0,.8));}
.artist-name-big{font-family:var(--font-d);font-size:clamp(28px,5vw,56px);letter-spacing:2px;color:#fff;line-height:1;}
.artist-label-sm{font-size:8px;letter-spacing:4px;color:rgba(255,255,255,.5);text-transform:uppercase;margin-bottom:6px;}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px;}
.stat-card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--sc,var(--muted));padding:16px 18px;}
.stat-lbl{font-size:7px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:8px;}
.stat-val{font-family:var(--font-d);font-size:30px;letter-spacing:1px;color:var(--ink);line-height:1;}
.stat-sub{font-size:9px;color:var(--ink2);margin-top:4px;letter-spacing:1px;}
.stat-update-row{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.stat-update-btn{padding:4px 10px;font-size:8px;letter-spacing:2px;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;font-family:var(--font-m);}
.stat-update-btn:hover{border-color:var(--ink);color:var(--ink);}
.edit-stats-form{display:none;margin-bottom:20px;padding:16px;background:var(--card);border:1px solid var(--line);}
.edit-stats-form.open{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;}
.esf-field label{font-size:7px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;display:block;margin-bottom:4px;}
.esf-field input{width:100%;font-family:var(--font-m);font-size:12px;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:8px 10px;outline:none;}
.esf-save{grid-column:1/-1;padding:10px;font-family:var(--font-d);font-size:16px;letter-spacing:3px;background:var(--ink);color:var(--bg);border:none;cursor:pointer;}
.esf-save:hover{opacity:.8;}

/* SIRIUS grid */
.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;background:var(--line);border:1px solid var(--line);margin:0 32px 32px;}
.ac{position:relative;aspect-ratio:1/1;overflow:hidden;cursor:pointer;text-decoration:none;display:block;background:#111;}
.ac img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:brightness(.75);}
.ac:hover img{transform:scale(1.04);filter:brightness(.9);}
.ac-info{position:absolute;bottom:0;left:0;right:0;padding:18px;background:linear-gradient(transparent,rgba(0,0,0,.75));}
.ac-name{font-family:var(--font-d);font-size:26px;letter-spacing:2px;color:#fff;line-height:1;}
.ac-sub{font-size:7px;letter-spacing:3px;color:rgba(255,255,255,.5);text-transform:uppercase;margin-top:3px;}
.sirius-section-lbl{font-family:var(--font-d);font-size:14px;letter-spacing:4px;color:var(--muted);padding:20px 32px 8px;text-transform:uppercase;border-top:1px solid var(--line);}

/* CHARTS */
.chart-wrap{background:var(--card);border:1px solid var(--line);padding:20px;margin-bottom:12px;}
.chart-title{font-size:9px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:16px;}
.sparkline{width:100%;height:80px;display:block;}
.history-table{width:100%;border-collapse:collapse;margin-top:12px;}
.history-table th{font-size:7px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);}
.history-table td{font-size:10px;color:var(--ink2);padding:7px 8px;border-bottom:1px solid var(--line);}
.history-table tr:last-child td{border-bottom:none;}
.trend-up{color:#1E8449;}.trend-down{color:#C0392B;}.trend-flat{color:var(--muted);}

/* DRAG AND DROP */
.ti[draggable]{cursor:grab;}
.ti[draggable]:active{cursor:grabbing;}
.ti.drag-over{border-left-color:var(--c2)!important;background:var(--hover)!important;transform:translateY(-2px);}

/* URGENT TASKS BANNER */
.urgent-banner{background:var(--card);border:1px solid var(--line);border-left:4px solid #C0392B;padding:14px 16px;margin-bottom:16px}
.urgent-banner-title{font-size:8px;letter-spacing:4px;color:#C0392B;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:8px;font-family:var(--font-m)}
.urgent-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed var(--line)}
.urgent-item:last-child{border-bottom:none}
.urgent-item-title{font-size:11px;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.urgent-item-date{font-size:8px;letter-spacing:2px;color:#C0392B;white-space:nowrap;font-family:var(--font-m)}

/* SINGLE SECTION */
.single-section{margin-bottom:20px}
.single-header{display:flex;gap:20px;align-items:flex-start;background:var(--card);border:1px solid var(--line);padding:16px}
.single-cover-wrap{flex-shrink:0}
.single-cover{width:120px;height:120px;object-fit:cover;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.2)}
@media(max-width:500px){.single-cover{width:80px;height:80px}}
.single-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.single-label{font-size:7px;letter-spacing:4px;text-transform:uppercase;color:var(--muted);font-family:var(--font-m)}
.single-name{font-family:var(--font-d);font-size:20px;letter-spacing:1px;color:var(--ink);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.single-streams-row{display:flex;align-items:baseline;gap:8px}
.single-streams-val{font-family:var(--font-d);font-size:28px;letter-spacing:1px;color:#1DB954}
.single-streams-lbl{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.single-deltas{display:flex;gap:12px;flex-wrap:wrap}
.sdelta{display:flex;gap:5px;align-items:baseline}
.sdelta-lbl{font-size:7px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.sdelta-val{font-family:var(--font-d);font-size:14px;letter-spacing:1px}
.single-spark{width:100%;height:40px;display:block;margin-top:4px}
.single-spark-hint{font-size:7px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}
.single-link{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--c2);text-decoration:none;margin-top:2px;align-self:flex-start}
.single-link:hover{text-decoration:underline}

/* MP3 PLAYER */
.unreleased-section{margin-bottom:24px}
.mp3-player{background:var(--card);border:1px solid var(--line);border-left:4px solid #E1306C;padding:16px}
.mp3-track-info{display:flex;align-items:center;gap:12px}
.mp3-lock{font-size:22px}
.mp3-title{font-family:var(--font-d);font-size:18px;letter-spacing:1px;color:var(--ink)}
.mp3-sub{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:2px}
audio::-webkit-media-controls-panel{background:var(--card);color:var(--ink)}


.camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:28px}
.camp-card{position:relative;overflow:hidden;cursor:pointer;border:1px solid var(--line);background:#111;aspect-ratio:3/4;display:flex;align-items:flex-end;text-decoration:none}
.camp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:.85;transition:opacity .2s}
.camp-card:hover img{opacity:1}
.camp-card-label{position:relative;z-index:2;padding:12px;background:linear-gradient(transparent,rgba(0,0,0,.8));width:100%}
.camp-card-name{font-family:var(--font-d);font-size:18px;letter-spacing:2px;color:#fff;line-height:1}
.camp-card-role{font-size:7px;letter-spacing:3px;color:rgba(255,255,255,.6);text-transform:uppercase;margin-top:3px}
.camp-placeholder{background:var(--card);display:flex;align-items:center;justify-content:center;font-size:48px}


.ig-post{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--card);border:1px solid var(--line);cursor:pointer;text-decoration:none;display:block}
.ig-post img{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.ig-post:hover img{transform:scale(1.05)}
.ig-post-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.ig-post:hover .ig-post-overlay{display:flex}
.ig-post-stat{font-family:var(--font-d);font-size:13px;color:#fff;letter-spacing:1px}
.ig-post-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px;flex-direction:column;gap:6px}
.ig-post-placeholder span{font-size:8px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}

/* BREADCRUMB */
.breadcrumb{display:flex;align-items:center;gap:8px;padding:10px 32px;font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:var(--bg)}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color .15s}
.breadcrumb a:hover{color:var(--ink)}
.breadcrumb-sep{opacity:.4}
.breadcrumb-current{color:var(--ink)}
.cat-back-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-m);font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 0;margin-bottom:4px;transition:color .15s}
.cat-back-btn:hover{color:var(--ink)}
.cat-back-btn::before{content:'←';font-family:sans-serif}

/* MOBILE SWIPE GRID */
@media(max-width:640px){
  .artist-grid{display:flex;overflow-x:auto;gap:0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .artist-grid::-webkit-scrollbar{display:none}
  .artist-grid .ac{flex:0 0 80vw;scroll-snap-align:start}
  .camp-grid{display:flex;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px;scrollbar-width:none}
  .camp-grid::-webkit-scrollbar{display:none}
  .camp-grid .camp-card{flex:0 0 70vw;scroll-snap-align:start}
}

/* CALENDAR TASK CHECK BUTTON */
.cw-tr-check{background:none;border:1px solid var(--line);border-radius:2px;width:18px;height:18px;cursor:pointer;font-size:10px;color:var(--muted);flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}
.cw-tr-check:hover{background:#1E8449;border-color:#1E8449;color:#fff}
.cw-tr{display:flex;align-items:center;gap:6px}

/* BLOC NOTES */
.notepad-section{margin-bottom:24px}
.notepad-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.notepad-title{font-family:var(--font-m);font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}
.notepad-status{font-size:7px;letter-spacing:1px;color:var(--muted);opacity:0;transition:opacity .3s}
.notepad-status.visible{opacity:1}
.notepad-body{width:100%;min-height:120px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--c2);padding:14px;font-family:var(--font-m);font-size:11px;color:var(--ink);resize:vertical;outline:none;line-height:1.7;box-sizing:border-box;transition:border-color .2s}
.notepad-body:focus{border-color:var(--ink)}
.notepad-body::placeholder{color:var(--muted);font-style:italic}

/* BLOC NOTE */
.notepad-wrap{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--c1);padding:0;margin-bottom:24px}
.notepad-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}
.notepad-title{font-family:var(--font-m);font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}
.notepad-status{font-size:8px;letter-spacing:1px;color:#1E8449;text-transform:uppercase}
.notepad-area{width:100%;min-height:100px;max-height:280px;padding:12px 14px;border:none;background:transparent;color:var(--ink);font-family:var(--font-m);font-size:12px;line-height:1.7;resize:vertical;outline:none;box-sizing:border-box;display:block}
.notepad-area::placeholder{color:var(--muted);opacity:.6}
.notepad-area:disabled{opacity:.5}
