:root{--red:#A63F48;--black:#0D0C0C;--silver:#D7D7D9;--gold:#F2BC57;--taupe:#BFADA3;--paper:#F5F2ED;--ink:#1E1718;--muted:#6E6461;--line:rgba(13,12,12,.12);--ok:#718E58;--hud:190px}
*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;background:linear-gradient(180deg,#e8e3dc,#f4f1ed);color:var(--ink);overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{height:100vh;overflow:hidden}.canvas{height:100%;overflow:auto;padding:26px 26px calc(var(--hud) + 120px + env(safe-area-inset-bottom))}.head{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.brand h1{margin:0;font-size:34px;font-weight:300;letter-spacing:.17em}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.btn,.chip{border:1px solid var(--line);background:rgba(255,255,255,.8);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.btn.primary{background:var(--black);color:#fff}
.health{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}.single,.panel,.col,.task{background:rgba(255,255,255,.78);border:1px solid var(--line);box-shadow:0 14px 32px rgba(31,17,17,.1)}.single{border-radius:14px;padding:13px}.single-top{display:flex;justify-content:space-between;gap:8px}.single h3{margin:0;font-size:14px}.single small{color:var(--muted)}.meter{height:7px;background:#ddd7d0;border-radius:999px;overflow:hidden;margin:10px 0 8px}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold),var(--ok))}.split{display:grid;grid-template-columns:1fr 1fr;gap:6px}.split span{font-size:10px;color:var(--muted);padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:#fff}.pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.ok{background:rgba(113,142,88,.12);color:#4f653e}.warn{background:rgba(242,188,87,.18);color:#8b6119}.bad{background:rgba(166,63,72,.12);color:var(--red)}
.board{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:14px}.col{border-radius:16px;padding:12px;min-height:440px;background:rgba(255,255,255,.42)}.col.drag{outline:2px dashed var(--red)}.col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.col h3{margin:0;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.count{background:#fff;border:1px solid var(--line);color:var(--red);padding:4px 8px;border-radius:999px;font-weight:800;font-size:11px}.plus{border:1px solid var(--line);background:#fff;border-radius:999px;width:26px;height:24px;color:var(--red);font-weight:900}
.task{border-radius:14px;overflow:hidden;margin-bottom:10px}.task.dragging{opacity:.45}.task-main{padding:12px;cursor:grab}.task-top{display:flex;justify-content:space-between;gap:8px}.task h4{margin:0;font-size:14px;line-height:1.24}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.badge{padding:4px 8px;border-radius:999px;border:1px solid var(--line);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;background:#fff;color:var(--muted)}.red{color:var(--red);background:rgba(166,63,72,.1)}.gold{color:#8d6318;background:rgba(242,188,87,.16)}.dark{background:var(--black);color:#fff}.blue{color:var(--black);background:rgba(13,12,12,.06)}.grey{opacity:.45;filter:grayscale(1)}
.prog{display:flex;align-items:center;gap:8px;margin-top:10px}.prog .bar{flex:1;height:6px;background:#ddd7d0;border-radius:999px;overflow:hidden}.prog i{display:block;height:100%;background:var(--red)}.prog strong{font-size:11px;color:var(--muted)}.expand{display:none;padding:10px 12px 12px;border-top:1px solid var(--line);background:#fcfaf8}.task.open .expand{display:block}.sub{display:grid;grid-template-columns:18px 1fr auto auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px dashed rgba(13,12,12,.1)}.sub:last-child{border-bottom:0}.cb{width:16px;height:16px;border:2px solid var(--red);border-radius:4px;background:#fff}.cb.done{background:var(--red);position:relative}.cb.done:after{content:'✓';position:absolute;left:2px;top:-2px;font-size:11px;color:#fff}.icon{width:24px;height:24px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted)}.icon.block{background:rgba(166,63,72,.1);color:var(--red)}.tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.tool{padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:10px;font-weight:800;color:var(--muted)}.danger{color:var(--red)}.warning{margin-top:9px;padding:8px 10px;border-radius:10px;background:rgba(166,63,72,.08);border:1px solid rgba(166,63,72,.18);font-size:11px;color:var(--red)}
.view{display:none}.view.active{display:block}.panel{border-radius:14px;padding:18px}.list{display:grid;gap:10px}.item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.item small{color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tabsline{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.day,.dow{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;background:#fff}.dow{min-height:auto;background:#f9f6f2;font-weight:800;font-size:10px;text-align:center;color:var(--muted)}.weekend{background:#fff7ea}.other{opacity:.4}.event{font-size:9px;padding:2px 4px;border-radius:4px;background:rgba(166,63,72,.1);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart{display:grid;gap:7px}.chart-row{display:grid;grid-template-columns:120px 1fr 80px;gap:8px;align-items:center}.chartbar{height:14px;border-radius:99px;background:#e7ded6;overflow:hidden}.chartbar i{display:block;height:100%;background:var(--red)}.gantt{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.gantt-head,.gantt-row{display:grid;grid-template-columns:190px repeat(18,70px);align-items:center}.gantt-head div{font-size:10px;color:var(--muted);font-weight:800;border-bottom:1px solid var(--line);padding:6px}.gantt-label{position:sticky;left:0;background:#fff;z-index:2;font-size:11px;font-weight:800;padding:8px;border-right:1px solid var(--line)}.gantt-cell{height:34px;border-bottom:1px solid #f1ece6;border-right:1px solid #f5f1ec;position:relative}.gantt-bar{height:20px;border-radius:8px;background:linear-gradient(90deg,var(--red),var(--gold));color:#fff;font-size:10px;font-weight:800;padding:4px 8px;position:absolute;top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-area{position:fixed;left:0;right:0;bottom:max(24px,env(safe-area-inset-bottom));z-index:50;pointer-events:none}.drawer-layer{position:absolute;right:18px;left:18px;bottom:calc(var(--hud) + 32px);display:flex;justify-content:flex-end;pointer-events:none}.drawer{width:min(520px,calc(100vw - 36px));max-height:58vh;overflow:auto;display:none;pointer-events:auto;background:rgba(245,242,237,.98);border:1px solid rgba(13,12,12,.16);border-radius:14px;box-shadow:0 18px 42px rgba(31,17,17,.18);padding:16px}.drawer.active{display:block}.drawer h3{margin:0 0 12px;font-size:14px;letter-spacing:.08em;text-transform:uppercase}.block{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:10px}.block b{display:block;margin-bottom:4px}.drawer input,.drawer select,.drawer textarea{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;width:100%;margin-bottom:8px}.drawer textarea{min-height:140px}
.hud{min-height:var(--hud);height:auto;margin:0 14px;background:linear-gradient(180deg,#f8f5f0,#ebe5de);border:1px solid rgba(13,12,12,.18);border-radius:16px;box-shadow:0 18px 42px rgba(31,17,17,.22);display:grid;grid-template-columns:300px 1fr 330px;gap:14px;padding:12px;pointer-events:auto;overflow:visible}.hud-left{display:grid;grid-template-columns:78px 1fr;gap:12px;align-items:center}.avatar-shell{height:150px;border-radius:12px;background:linear-gradient(180deg,#fff,#e8e2dc);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;position:relative}.plumbob{position:absolute;top:-15px;width:30px;height:44px;object-fit:contain;z-index:2}.avatar{width:66px;height:66px;object-fit:contain;border-radius:50%;background:#f5efea;border:1px solid var(--line)}.char{display:flex;flex-direction:column;gap:7px}.char-top{display:flex;align-items:center;gap:10px}.mood{width:34px;height:34px;object-fit:contain;border-radius:50%;background:#f5efea;border:1px solid var(--line)}.char h2{margin:0;font-size:16px;letter-spacing:.08em}.char p{display:none}.projects{display:flex;flex-wrap:wrap;gap:6px}.projects button{border:1px solid var(--line);background:rgba(255,255,255,.7);color:var(--muted);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;text-transform:uppercase}.projects button.active{background:var(--red);border-color:var(--red);color:#fff}.rag{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.tile{background:rgba(255,255,255,.64);border:1px solid var(--line);border-radius:9px;padding:7px 8px}.tile span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.tile strong{font-size:15px}
.hud-center{display:grid;grid-template-rows:auto 1fr;gap:8px}.nav{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.nav button,.hud-btn{border:1px solid var(--line);background:rgba(255,255,255,.78);color:var(--black);border-radius:9px;min-height:40px;padding:6px 7px;font-size:11px;font-weight:800}.nav small,.hud-btn small{display:block;color:var(--muted);font-size:9px}.nav button.active{background:rgba(166,63,72,.12);color:var(--red)}.mid{display:grid;grid-template-columns:1.25fr .75fr;gap:8px}.box{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:11px;padding:8px}.box-title{font-size:9px;font-weight:800;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.quest{display:grid;grid-template-columns:12px 1fr auto;gap:7px;align-items:center;padding:5px 0;border-bottom:1px dashed rgba(13,12,12,.1);cursor:pointer}.quest i{width:11px;height:11px;border-radius:50%;border:2px solid var(--red)}.quest b{font-size:11px}.quest span{display:block;font-size:9px;color:var(--muted)}.quest strong{color:#9a6a16;font-size:11px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stat{background:rgba(255,255,255,.7);border-radius:8px;padding:6px}.stat span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase}.stat strong{font-size:14px}.hud-right{display:grid;grid-template-rows:auto auto 1fr;gap:8px}.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.info{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:11px;padding:8px}.info p{margin:0;font-size:11px}.info small{color:var(--muted)}.hud-toggle{position:absolute;right:28px;top:-18px;height:30px;min-width:112px;border:1px solid rgba(13,12,12,.18);background:linear-gradient(180deg,#fff,#eee7df);border-radius:999px;box-shadow:0 8px 18px rgba(31,17,17,.14);pointer-events:auto;font-size:11px;font-weight:900}.hud-collapsed .hud{min-height:58px;height:58px;grid-template-columns:300px 1fr 210px;overflow:hidden;padding:8px 12px}.hud-collapsed .avatar-shell{height:42px}.hud-collapsed .plumbob{width:18px;height:26px;top:-9px}.hud-collapsed .avatar{width:34px;height:34px}.hud-collapsed .projects,.hud-collapsed .rag,.hud-collapsed .mid,.hud-collapsed .quick,.hud-collapsed .info{display:none}.hud-collapsed .hud-left{grid-template-columns:52px 1fr}.hud-collapsed .nav small{display:none}.hud-collapsed .drawer{display:none!important}body.collapsed .canvas{padding-bottom:150px}.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);background:var(--black);color:#fff;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:800;z-index:1000}

.kb-bulk{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;align-items:end;margin:10px 0 12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.72)}.kb-bulk label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase}.kb-bulk input,.kb-bulk select{width:100%;margin-top:4px;border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff}.kb-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.kb-card{position:relative}.kb-check{position:absolute;right:9px;top:9px;width:18px;height:18px}.kb-selected{outline:2px solid rgba(166,63,72,.35);background:#fff7f7}.mini-muted{font-size:10px;color:var(--muted)}
@media(max-width:1320px){:root{--hud:260px}.board{grid-template-columns:repeat(2,minmax(250px,1fr))}.hud{grid-template-columns:270px 1fr 280px}.nav{grid-template-columns:repeat(4,1fr)}.mid{grid-template-columns:1fr}}@media(max-width:980px){:root{--hud:420px}.canvas{padding:18px 18px calc(var(--hud) + 82px)}.health,.board,.grid2{grid-template-columns:1fr}.hud{max-height:calc(100vh - 80px);overflow:auto;grid-template-columns:1fr}.drawer-layer{bottom:calc(var(--hud) + 42px)}.quick,.stats,.nav,.rag{grid-template-columns:repeat(2,1fr)}.hud-collapsed .hud{grid-template-columns:1fr}.hud-collapsed .hud-left,.hud-collapsed .hud-right{display:none}}

/* v3 task modal / stable HUD / elegant tables */
.hud{height:var(--hud);min-height:var(--hud);align-content:start}.projects{max-height:68px;overflow:auto}.char{min-height:126px}.drawer h3{display:flex;justify-content:space-between;align-items:center;gap:8px}.drawer-close{border:1px solid var(--line);background:#fff;border-radius:999px;width:26px;height:24px;font-weight:900;color:var(--muted)}
#drawer-task.task-modal{position:fixed;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(780px,calc(100vw - 36px));max-height:84vh;z-index:90}.task-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.task-form label{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.task-form .wide{grid-column:1/-1}.task-form input,.task-form select,.task-form textarea{margin-top:4px}.task-main{cursor:pointer}.mini-muted{font-size:10px;color:var(--muted)}.subtable{display:grid;gap:6px;margin-top:8px}.subedit{display:grid;grid-template-columns:24px 1fr 24px 24px;gap:7px;align-items:center}.subedit input[type=text]{margin:0;padding:7px 8px}.task-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.task-links button{white-space:nowrap}.drawer-layer:has(#drawer-task.active){position:fixed;inset:0;background:rgba(13,12,12,.22);align-items:center;justify-content:center;z-index:75;pointer-events:auto}.drawer-layer:has(#drawer-task.active) .drawer:not(#drawer-task){display:none!important}
.gantt{padding:0;background:transparent;border:0}.gantt-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.gantt-head,.gantt-row{display:grid;grid-template-columns:230px repeat(18,76px)}.gantt-head{position:sticky;top:0;z-index:5;background:#f7f3ee}.gantt-head div{font-size:10px;color:var(--muted);font-weight:900;border-bottom:1px solid var(--line);padding:8px}.gantt-label{position:sticky;left:0;background:#fff;z-index:3;font-size:11px;font-weight:900;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid #f1ece6}.gantt-cell{height:42px;border-bottom:1px solid #f1ece6;border-right:1px solid #f7f2ed;position:relative}.gantt-bar{height:24px;border-radius:999px;background:linear-gradient(90deg,var(--red),var(--gold));color:#fff;font-size:10px;font-weight:900;padding:6px 10px;position:absolute;top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;box-shadow:0 8px 18px rgba(166,63,72,.18)}.gantt-bar.done{filter:grayscale(.8);opacity:.55}.gantt-legend{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.gantt-legend .chip{background:#fff}
.social-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px}.social-col{background:rgba(255,255,255,.50);border:1px solid var(--line);border-radius:16px;padding:12px;min-height:360px}.social-col.drag{outline:2px dashed var(--red)}.social-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:9px;box-shadow:0 10px 24px rgba(31,17,17,.08);cursor:grab}.social-card h4{margin:0 0 6px;font-size:13px;line-height:1.25}.social-card p{margin:7px 0 0;font-size:11px;color:var(--muted);line-height:1.35}.social-card .mini-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.social-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.social-chip{border:1px solid var(--line);background:#faf7f2;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase}.social-card.dragging{opacity:.45}.contest-board{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px}.contest-col{background:rgba(255,255,255,.58);border:1px solid var(--line);border-radius:16px;padding:12px}.contest-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;margin-bottom:9px}.contest-card b{display:block;line-height:1.2}.contest-card small{color:var(--muted)}.tableish{display:grid;gap:8px}.table-row{display:grid;grid-template-columns:1.1fr .9fr .8fr .8fr auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px}.table-row.head{font-weight:900;color:var(--muted);font-size:10px;text-transform:uppercase;background:#f8f4ef}.table-row small{color:var(--muted)}
.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.swatches{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.swatch{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}.palette-card,.link-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px}.copyline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.copyline code{background:#f5f1ec;border:1px solid var(--line);border-radius:8px;padding:4px 6px;font-size:11px}.kb-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.kb-grid{display:grid;gap:8px}.kb-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px}.kb-card b{font-size:13px}.kb-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.kb-meta span{font-size:10px;border:1px solid var(--line);border-radius:999px;padding:3px 7px;color:var(--muted)}
@media(max-width:980px){.task-form,.asset-grid,.contest-board,.social-board{grid-template-columns:1fr}.table-row{grid-template-columns:1fr}.hud{height:auto;min-height:var(--hud)}}


/* v4 fixes */
.hud-area{bottom:max(8px,env(safe-area-inset-bottom))}.hud{height:var(--hud);min-height:0;overflow:auto}.char-top{min-height:34px}.projects{max-height:58px;overflow:auto;align-content:flex-start}.import-btn{display:inline-flex;align-items:center;justify-content:center}.drawer-close{float:right;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--red);font-weight:900}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-grid .full{grid-column:1/-1}.drawer label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.drawer input[type="checkbox"]{width:auto;margin-right:6px}.asset-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin:10px 0}.asset-section-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.asset-section h4{margin:0 0 4px}.asset-material{display:grid;grid-template-columns:1fr auto;gap:10px;border-top:1px dashed rgba(13,12,12,.12);padding:9px 0}.asset-material:first-of-type{border-top:0}.pie-wrap{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}.pie{width:132px;height:132px;border-radius:50%;border:1px solid var(--line);box-shadow:inset 0 0 0 22px rgba(255,255,255,.28)}.legend{display:grid;gap:6px}.legend-row{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;font-size:11px}.legend-dot{width:12px;height:12px;border-radius:50%;border:1px solid var(--line)}.cost-row{cursor:pointer}.cost-row:hover,.kb-card:hover{background:#fffaf4}.kb-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.kb-card{cursor:pointer}.tagbar{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.tagchip{border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#fff;font-size:10px;font-weight:800;color:var(--muted)}.tagchip.active{background:var(--red);color:#fff;border-color:var(--red)}
@media(max-width:980px){.hud{height:auto;max-height:calc(100vh - 36px);overflow:auto}.modal-grid,.pie-wrap{grid-template-columns:1fr}}

.projects button.active{box-shadow:0 0 0 2px rgba(166,63,72,.22) inset}.projects .filter-clear{background:#fff;color:var(--muted)}.circle-pct,.pill{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1}.contest-card{cursor:pointer}.contest-card:hover,.kb-card:hover,.table-row:not(.head):hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(31,17,17,.10)}.ui-editor textarea{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.filter-hint{font-size:10px;color:var(--muted);margin-top:4px}.drawer-layer:has(#drawer-contest.active),.drawer-layer:has(#drawer-ui.active){position:fixed;inset:0;background:rgba(13,12,12,.22);align-items:center;justify-content:center;z-index:75;pointer-events:auto}.drawer-layer:has(#drawer-contest.active) .drawer:not(#drawer-contest),.drawer-layer:has(#drawer-ui.active) .drawer:not(#drawer-ui){display:none!important}



/* v12: cleaned, stable viewport-anchored HUD
   One source of truth for fixed HUD positioning and collapsed layout. */
html,body,.app{height:100dvh!important;overflow:hidden!important;}
.canvas{
  height:100dvh!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:calc(var(--hud) + 126px + env(safe-area-inset-bottom))!important;
}
.hud-area{
  position:fixed!important;
  inset:auto 0 calc(8px + env(safe-area-inset-bottom)) 0!important;
  width:100vw!important;
  z-index:2147483000!important;
  pointer-events:none!important;
  transform:none!important;
  will-change:auto!important;
}
.hud-area .hud,.hud-area .hud-toggle,.hud-area .drawer{pointer-events:auto!important;}
.hud{
  height:var(--hud)!important;
  max-height:min(var(--hud),calc(100dvh - 24px))!important;
  min-height:0!important;
  overflow:auto;
  overscroll-behavior:contain;
  margin:0 14px!important;
}
.hud-toggle{position:absolute!important;right:28px!important;top:-18px!important;z-index:2147483001!important;}
.drawer-layer{bottom:calc(min(var(--hud),58vh) + 22px)!important;}
body.collapsed .canvas{padding-bottom:112px!important;}
.hud-collapsed.hud-area{bottom:calc(8px + env(safe-area-inset-bottom))!important;}
.hud-collapsed .hud{
  height:66px!important;
  min-height:66px!important;
  max-height:66px!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(170px,300px) minmax(220px,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:8px 12px!important;
}
.hud-collapsed .hud-left{
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr)!important;
  gap:9px!important;
  align-items:center!important;
  min-width:0!important;
}
.hud-collapsed .avatar-shell{height:44px!important;min-height:44px!important;overflow:visible!important;}
.hud-collapsed .plumbob{width:18px!important;height:26px!important;top:-10px!important;}
.hud-collapsed .avatar{width:34px!important;height:34px!important;}
.hud-collapsed .char{min-height:0!important;gap:0!important;overflow:hidden!important;}
.hud-collapsed .char-top{min-height:0!important;}
.hud-collapsed .char h2{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hud-collapsed .mood{width:24px!important;height:24px!important;}
.hud-collapsed .projects,.hud-collapsed .rag,.hud-collapsed .mid,.hud-collapsed .info{display:none!important;}
.hud-collapsed .hud-center{display:block!important;min-width:0!important;overflow:hidden!important;}
.hud-collapsed .nav{
  display:flex!important;
  gap:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  align-items:center!important;
  padding-bottom:2px!important;
  scrollbar-width:thin;
}
.hud-collapsed .nav button{
  flex:0 0 auto!important;
  min-width:46px!important;
  min-height:42px!important;
  padding:5px 8px!important;
}
.hud-collapsed .nav small{display:none!important;}
.hud-collapsed .hud-right{display:block!important;min-width:0!important;}
.hud-collapsed .quick{display:flex!important;gap:6px!important;align-items:center!important;overflow-x:auto!important;max-width:250px!important;}
.hud-collapsed .quick .hud-btn{flex:0 0 auto!important;min-width:42px!important;min-height:42px!important;padding:5px 7px!important;}
.hud-collapsed .quick small{display:none!important;}
.hud-collapsed .drawer{display:none!important;}
.cost-taxonomy{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.tax-list{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:160px;}
.tax-item{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding:6px 0;border-bottom:1px dashed rgba(13,12,12,.10);}
.tax-item:last-child{border-bottom:0;}
.tax-item input{margin:0!important;}
.tax-add{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px;}
.project-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px;margin:6px 0 10px;}
.project-check-grid .check-tile{display:flex;align-items:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 9px;font-size:10px;font-weight:900;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:normal;line-height:1.15;}
.project-check-grid .check-tile input{width:auto;margin:0;flex:0 0 auto;}
.cost-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.cost-tag{display:inline-flex;align-items:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;color:var(--muted);}
.cost-flow{font-weight:900;}.cost-flow.income{color:#4f653e;}.cost-flow.expense{color:var(--red);}
@media(max-width:980px){
  .canvas{padding-bottom:calc(min(var(--hud),420px) + 126px + env(safe-area-inset-bottom))!important;}
  .hud{height:min(var(--hud),calc(100dvh - 28px))!important;max-height:calc(100dvh - 28px)!important;}
  .hud-collapsed .hud{height:72px!important;min-height:72px!important;max-height:72px!important;grid-template-columns:56px minmax(0,1fr) auto!important;margin:0 8px!important;}
  .hud-collapsed .hud-left{grid-template-columns:44px!important;}
  .hud-collapsed .char{display:none!important;}
  .hud-collapsed .hud-right{display:block!important;}
  .hud-collapsed .quick{max-width:96px!important;}
  .cost-taxonomy{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .hud-collapsed .hud{grid-template-columns:50px minmax(0,1fr)!important;}
  .hud-collapsed .hud-right{display:none!important;}
}


/* mobile click/touch repair */
@media(max-width:720px){
  html,body,.app{height:100dvh!important;max-width:100vw;overflow:hidden!important;}
  body{touch-action:manipulation;}
  .canvas{height:100dvh!important;padding:14px 12px calc(112px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:118px;}
  body:not(.collapsed) .canvas{padding-bottom:calc(min(74dvh,520px) + 104px + env(safe-area-inset-bottom))!important;}
  .head{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:12px;}
  .brand h1{font-size:22px;letter-spacing:.09em;line-height:1.05;}
  .actions{display:flex;gap:7px;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
  .btn,.chip,.tool,.tagchip,.cost-tag{min-height:40px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;}
  button,.hud-btn,.nav button,input,select,textarea{font-size:16px;}
  .btn,.chip,.tool,.hud-btn,.nav button{font-size:11px;}
  .plus,.icon,.drawer-close,.cb{min-width:44px!important;min-height:44px!important;}
  .board,.health,.grid2,.asset-grid,.contest-board,.social-board{grid-template-columns:1fr!important;gap:10px;}
  .col{min-height:0;padding:10px;}
  .task-main{cursor:pointer;padding:11px;}
  .task[draggable=true],.social-card[draggable=true],.contest-card[draggable=true]{-webkit-user-drag:none;user-select:auto;}
  .sub,.subedit{grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:6px;}
  .item,.asset-section-head,.asset-material,.copyline{display:grid;grid-template-columns:1fr;align-items:start;}
  .calendar{min-width:680px;}
  #view-calendar .panel,.gantt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .table-row,.chart-row,.modal-grid,.task-form,.pie-wrap,.cost-taxonomy{grid-template-columns:1fr!important;}
  .drawer-layer{position:fixed!important;inset:0!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;background:rgba(13,12,12,.22);padding:12px;z-index:2147482998!important;opacity:0;visibility:hidden;pointer-events:none!important;}
  .drawer-layer:has(.drawer.active){opacity:1;visibility:visible;pointer-events:auto!important;}
  .drawer{width:100%!important;max-width:560px!important;max-height:calc(100dvh - 28px)!important;border-radius:16px 16px 12px 12px!important;padding:14px!important;}
  .drawer input,.drawer select,.drawer textarea{font-size:16px;min-height:44px;}
  #drawer-task.task-modal{position:static!important;transform:none!important;width:100%!important;max-height:calc(100dvh - 28px)!important;}
  .hud-area{bottom:calc(8px + env(safe-area-inset-bottom))!important;}
  .hud{height:min(74dvh,520px)!important;max-height:min(74dvh,520px)!important;margin:0 8px!important;padding:10px!important;grid-template-columns:1fr!important;gap:10px!important;border-radius:14px!important;}
  .hud-left{grid-template-columns:54px minmax(0,1fr)!important;align-items:start;}
  .avatar-shell{height:54px!important;}
  .avatar{width:38px!important;height:38px!important;}
  .plumbob{width:18px!important;height:26px!important;top:-8px!important;}
  .char{min-height:0!important;}
  .char h2{font-size:13px;letter-spacing:.04em;}
  .projects{max-height:84px!important;overflow:auto;}
  .projects button{min-height:34px;}
  .nav,.quick{display:flex!important;gap:7px!important;overflow-x:auto!important;grid-template-columns:none!important;padding-bottom:3px;-webkit-overflow-scrolling:touch;}
  .nav button,.quick .hud-btn{flex:0 0 74px;min-height:48px!important;}
  .mid{grid-template-columns:1fr!important;}
  .hud-toggle{right:14px!important;top:-22px!important;height:36px!important;min-width:132px!important;}
  .hud-collapsed .hud{height:72px!important;min-height:72px!important;max-height:72px!important;grid-template-columns:50px minmax(0,1fr)!important;overflow:hidden!important;}
  .hud-collapsed .hud-left{grid-template-columns:44px!important;}
  .hud-collapsed .char,.hud-collapsed .hud-right,.hud-collapsed .projects,.hud-collapsed .rag,.hud-collapsed .mid,.hud-collapsed .info{display:none!important;}
  .hud-collapsed .nav button{flex-basis:50px;min-width:50px!important;}
}
@media(max-width:420px){
  .canvas{padding-left:10px!important;padding-right:10px!important;}
  .brand h1{font-size:20px;}
  .health{gap:8px;}
  .nav button,.quick .hud-btn{flex-basis:66px;}
}

