/* activity */
.ac-root{display:flex;flex-direction:column;height:100%;font-family:var(--sg);overflow:auto}
.ac-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;padding:14px}
.ac-stats .kv{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:8px 10px;position:relative;overflow:hidden}
.ac-stats .kv::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--g);opacity:.6}
.ac-stats .kv .k{font-family:var(--jb);font-size:9px;color:var(--sub);text-transform:uppercase;letter-spacing:.08em}
.ac-stats .kv .v{color:var(--white);font:600 18px var(--sg);margin-top:2px}
.ac-stats .kv .s{font-family:var(--jb);font-size:9px;color:var(--sub)}
.ac-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 14px}
.ac-block{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:10px}
.ac-block h4{font:11px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.ac-list{list-style:none;padding:0;margin:0;font-size:12px}
.ac-list li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dotted var(--border);color:var(--text)}
.ac-list li span{font-family:var(--jb);font-size:10px;color:var(--sub)}
.ac-list li.empty{color:var(--sub);font-style:italic}

/* bookmarks */
.bm-root{display:flex;flex-direction:column;height:100%}
.bm-bar{display:grid;grid-template-columns:2fr 1fr 70px;gap:6px;padding:8px;border-bottom:1px solid var(--border)}
.bm-bar input{background:var(--bg);border:1px solid var(--border);color:var(--white);padding:6px 10px;border-radius:5px;font:13px var(--sg);outline:none}
.bm-bar button{background:var(--white);color:#000;border:none;padding:6px;border-radius:5px;font:600 12px var(--sg);cursor:pointer}
.bm-list{flex:1;overflow:auto;padding:4px}
.bm-row{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border)}
.bm-row:hover{background:var(--hover)}
.bm-link{flex:1;text-decoration:none;min-width:0}
.bm-link .ti{color:var(--white);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-link .u{font-family:var(--jb);font-size:10px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-row .ax{display:flex;gap:4px}
.bm-row .ax button{background:transparent;border:1px solid var(--border);color:var(--white);padding:3px 8px;border-radius:3px;font:10px var(--jb);cursor:pointer}
.bm-row .ax .del:hover{color:#e88;border-color:#e88}

/* image gallery */
.gl-root{display:flex;flex-direction:column;height:100%;background:#0a0a0a}
.gl-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);font-family:var(--jb);font-size:11px;color:var(--sub)}
.gl-bar #gl-path{flex:1;color:var(--white)}
.gl-bar button{background:var(--elevated);border:1px solid var(--border);color:var(--white);padding:4px 10px;border-radius:4px;font:inherit;cursor:pointer}
.gl-grid{flex:1;overflow:auto;padding:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;align-content:start}
.gl-tile{background:var(--card);border:1px solid var(--border);border-radius:6px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column}
.gl-tile:hover{border-color:var(--white)}
.gl-tile .th{height:120px;background:#000 50% 50% / cover no-repeat}
.gl-tile .nm{padding:6px 8px;font:11px var(--jb);color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gl-empty{grid-column:1/-1;padding:40px;color:var(--sub);text-align:center;font-size:12px}

/* music */
.mu-root{display:flex;flex-direction:column;height:100%;background:#0a0a0a}
.mu-now{padding:14px;border-bottom:1px solid var(--border)}
.mu-now .ti{color:var(--white);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mu-now .me{font-family:var(--jb);font-size:10px;color:var(--sub);margin-top:2px}
.mu-bar{display:flex;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border)}
.mu-bar button{background:var(--elevated);border:1px solid var(--border);color:var(--white);padding:4px 10px;border-radius:4px;font:11px var(--jb);cursor:pointer}
.mu-list{flex:1;overflow:auto}
.mu-row{display:grid;grid-template-columns:18px 1fr 70px;gap:8px;padding:7px 12px;cursor:pointer;align-items:center;font-size:12px}
.mu-row:hover{background:var(--hover)}
.mu-row.on{background:var(--hover);color:var(--white)}
.mu-row .ic{color:var(--sub);font-family:var(--jb)}
.mu-row .nm{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mu-row .sz{font-family:var(--jb);font-size:10px;color:var(--sub);text-align:right}

/* calendar */
.cal-root{display:flex;flex-direction:column;height:100%}
.cal-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);font-family:var(--sg);color:var(--white)}
.cal-bar #cal-mon{flex:1;font-weight:600}
.cal-bar button{background:var(--elevated);border:1px solid var(--border);color:var(--white);padding:5px 12px;border-radius:5px;font:600 11px var(--sg);cursor:pointer}
.cal-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:1px;background:var(--border);overflow:auto}
.cal-h{background:var(--card);font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em;text-align:center;padding:6px}
.cal-c{background:var(--card);min-height:80px;padding:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.cal-c:hover{background:var(--hover)}
.cal-c.off{background:#080808;cursor:default}
.cal-c.today .dn{color:var(--white);background:var(--g);background-size:200% 100%;animation:gradPulse 8s ease-in-out infinite;border-radius:99px;display:inline-block;width:22px;height:22px;text-align:center;line-height:22px}
.cal-c .dn{font-family:var(--jb);font-size:10px;color:var(--sub)}
.cal-c .ev{font-size:10px;color:#000;padding:1px 5px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* todo */
.td-root{display:flex;flex-direction:column;height:100%}
.td-bar{display:grid;grid-template-columns:1fr 100px;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border)}
.td-bar input,.td-bar select{background:var(--bg);border:1px solid var(--border);color:var(--white);padding:7px 10px;border-radius:5px;font:13px var(--sg);outline:none}
.td-bar select{font-family:var(--jb);font-size:11px}
.td-list{flex:1;overflow:auto;padding:4px 0}
.td-h{font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.1em;padding:8px 14px 4px}
.td-row{display:grid;grid-template-columns:24px 1fr 24px;gap:6px;padding:5px 14px;align-items:center}
.td-row:hover{background:var(--hover)}
.td-row .ti{color:var(--text);font-size:13px}
.td-row.done .ti{text-decoration:line-through;color:var(--sub)}
.td-row .del{background:transparent;border:none;color:var(--sub);font-size:14px;cursor:pointer}
.td-row .del:hover{color:#e88}

/* whiteboard */
.wb-root{display:flex;flex-direction:column;height:100%;background:#0a0a0a}
.wb-bar{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);font-family:var(--jb);font-size:10px;color:var(--sub)}
.wb-bar select,.wb-bar input,.wb-bar button{background:var(--elevated);border:1px solid var(--border);color:var(--white);padding:4px 8px;border-radius:4px;font:inherit;cursor:pointer}
.wb-bar input[type=color]{padding:0;width:30px;height:24px}
.wb-bar input[type=range]{padding:0;width:80px}
.wb-bar #wb-title{flex:1}
.wb-root canvas{flex:1;display:block;cursor:crosshair;background:#0a0a0a}

/* agent inspector */
.ai-root{display:grid;grid-template-columns:200px 1fr;height:100%}
.ai-side{border-right:1px solid var(--border);overflow:auto;padding:6px;display:flex;flex-direction:column;gap:2px}
.ai-agent{background:transparent;border:none;color:var(--text);text-align:left;padding:6px 10px;border-radius:4px;font:12px var(--sg);cursor:pointer}
.ai-agent:hover{background:var(--hover)}
.ai-agent.on{background:var(--hover);color:var(--white)}
.ai-main{padding:18px 22px;overflow:auto}
.ai-main h3{color:var(--white);margin-bottom:4px}
.ai-main h4{color:var(--white);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:14px 0 4px;font-family:var(--jb)}
.ai-main .role{font-family:var(--jb);font-size:11px;color:var(--sub);text-transform:uppercase;letter-spacing:.08em}
.ai-stats{display:flex;gap:14px;margin:10px 0;font-size:12px;color:var(--text)}
.ai-stats b{color:var(--white)}
.ai-mem,.ai-th{list-style:none;padding:0;margin:0}
.ai-mem li,.ai-th li{padding:5px 0;border-bottom:1px dotted var(--border);font-size:12px;color:var(--text);display:flex;justify-content:space-between;gap:8px}
.ai-mem li.empty,.ai-th li.empty{color:var(--sub);font-style:italic}
.ai-th li span{font-family:var(--jb);font-size:9px;color:var(--sub)}

/* workflow */
.wf-root{display:grid;grid-template-columns:240px 1fr;height:100%}
.wf-side{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.wf-side .hd{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.1em}
.wf-side .hd button{background:none;border:none;color:var(--white);cursor:pointer;font-size:16px}
.wf-list{flex:1;overflow:auto}
.wf-item{padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer}
.wf-item:hover{background:var(--hover)}
.wf-item.on{background:var(--hover)}
.wf-item .ti{color:var(--white);font-size:12px}
.wf-item .me{font:9px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
.wf-main{padding:14px 18px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.wf-main h3 input{background:transparent;border:none;color:var(--white);font:600 16px var(--sg);outline:none;width:100%}
.wf-step{display:grid;grid-template-columns:24px 110px 1fr 28px;gap:6px;align-items:start}
.wf-step .n{font:11px var(--jb);color:var(--sub);padding-top:8px;text-align:center}
.wf-step select,.wf-step textarea{background:var(--bg);border:1px solid var(--border);color:var(--white);padding:6px 8px;border-radius:4px;font:12px var(--sg);outline:none;resize:vertical}
.wf-step select{font-family:var(--jb);font-size:11px}
.wf-step textarea{min-height:48px}
.wf-step .rm{background:transparent;border:none;color:var(--sub);cursor:pointer}
.wf-add{display:flex;gap:6px}
.wf-add button{background:var(--elevated);border:1px solid var(--border);color:var(--white);padding:6px 12px;border-radius:5px;font:600 11px var(--sg);cursor:pointer}
.wf-add button.danger{border-color:#532;color:#e88;margin-left:auto}
.wf-out{margin-top:8px}
.wf-row{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:6px}
.wf-row .hd{font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.wf-row .bd{font-size:12px;color:var(--text);white-space:pre-wrap}

/* quick capture */
.c95-qc{position:fixed;top:30vh;left:50%;transform:translateX(-50%);width:480px;max-width:calc(100vw - 24px);background:rgba(10,10,10,.95);border:1px solid var(--border);border-radius:10px;padding:6px;z-index:99998;backdrop-filter:blur(8px)}
.c95-qc::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--g);opacity:.7}
.c95-qc input{width:100%;background:transparent;border:none;outline:none;color:var(--white);font:500 14px var(--sg);padding:10px 14px}

/* games */
.g2048{display:flex;flex-direction:column;height:100%;background:#0a0a0a}
.g2048 .hd{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font:600 11px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em}
.g2048 .hd .sc{color:var(--white);font-size:14px}
.g2048 .hd .ng{margin-left:auto;background:var(--white);color:#000;border:none;padding:5px 12px;border-radius:5px;font:600 11px var(--sg);cursor:pointer}
.g2048 .bd{flex:1;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:6px;padding:14px}
.g2048 .cell{background:#1a1a1a;border-radius:6px;display:flex;align-items:center;justify-content:center;font:600 22px var(--jb);color:#fff}
.g2048 .cell.v2{background:#222;color:#bbb}
.g2048 .cell.v4{background:#2a2a2a;color:#ddd}
.g2048 .cell.v8{background:#3d3025;color:#ffb87a}
.g2048 .cell.v16{background:#4d2c25;color:#ff9a7a}
.g2048 .cell.v32{background:#552a3d;color:#ff7aa6}
.g2048 .cell.v64{background:#3d2255;color:#bb8aff}
.g2048 .cell.v128{background:#22335c;color:#7aa6ff}
.g2048 .cell.v256{background:#225c52;color:#7affc3}
.g2048 .cell.v512{background:#5c5522;color:#fff07a}
.g2048 .cell.v1024{background:#5c2d22;color:#ff7a44}
.g2048 .cell.v2048{background:#fff;color:#000}
.g2048 .hint{padding:8px 12px;font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--border)}

.snk{display:flex;flex-direction:column;align-items:center;height:100%;background:#0a0a0a}
.snk .hd{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-bottom:1px solid var(--border);font:600 11px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em}
.snk .hd .sc{color:var(--white);font-size:14px}
.snk .hd .ng{margin-left:auto;background:var(--white);color:#000;border:none;padding:5px 12px;border-radius:5px;font:600 11px var(--sg);cursor:pointer}
.snk canvas{margin:14px 0;background:#000;border:1px solid var(--border)}
.snk .hint{font:10px var(--jb);color:var(--sub);text-transform:uppercase;letter-spacing:.08em}

.sol{display:flex;flex-direction:column;height:100%;background:#0a3a1a}
.sol .hd{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #082;font:11px var(--jb);color:#9c9;text-transform:uppercase;letter-spacing:.08em}
.sol .hd .ng{background:#fff;color:#000;border:none;padding:5px 12px;border-radius:5px;font:600 11px var(--sg);cursor:pointer}
.sol .board{flex:1;padding:10px;overflow:auto}
.sol .top{display:flex;gap:6px;margin-bottom:14px}
.sol .slot{width:54px;height:74px;border:1px dashed #082;border-radius:5px;position:relative}
.sol .slot.found{border-color:#1a4}
.sol .ph{width:100%;height:100%;border-radius:5px;background:rgba(255,255,255,.04)}
.sol .tableau{display:grid;grid-template-columns:repeat(7,54px);gap:6px}
.sol .col{position:relative;min-height:74px}
.sol .card{position:absolute;width:54px;height:74px;border-radius:5px;background:#fff;color:#000;border:1px solid #ccc;display:flex;justify-content:space-between;padding:4px;font:600 12px var(--sg);user-select:none;cursor:pointer;left:0}
.sol .card.down{background:#0a4a2a;border-color:#082}
.sol .card.r{color:#c33}
.sol .card .s{font-size:14px;align-self:flex-end}
