:root{
  --bg:#0d1216;--panel:#131a1f;--panel2:#182127;--panel3:#1d282f;--text:#edf3f6;--muted:#91a0a8;
  --line:#28343b;--brand:#2f9d78;--brand-soft:#17372d;--danger:#dc5a55;--warn:#d6a03d;--shadow:0 20px 60px rgba(0,0,0,.34)
}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Arial,sans-serif}
body{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.small{font-size:11px}.muted{color:var(--muted)}
.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 50% 0,#17372d 0,transparent 40%),var(--bg)}
.login-card{width:min(420px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:34px;text-align:center;box-shadow:var(--shadow)}
.login-card h1{margin:14px 0 8px}.login-card p{margin:0 0 24px;color:var(--muted);font-size:13px}.login-card small{display:block;color:#788890;margin-top:18px}
.login-logo,.logo{background:linear-gradient(145deg,#36aa82,#1d6f55);display:grid;place-items:center;font-weight:900}.login-logo{width:58px;height:58px;border-radius:17px;margin:auto;font-size:24px}.login-error{margin-top:14px;color:#ff9b95;font-size:12px}
.impersonation{height:38px;background:#b42318;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px;font-weight:700;padding:0 16px;position:relative;z-index:160}
.impersonation button{border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;border-radius:8px;padding:5px 9px;font-weight:700}
body:has(.impersonation:not([hidden])) .shell{height:calc(100vh - 38px)}
body:has(.impersonation:not([hidden])) .drawer{top:38px}
.shell{height:100vh;display:grid;grid-template-columns:300px minmax(0,1fr);transition:.2s}.shell.collapsed{grid-template-columns:76px minmax(0,1fr)}
.sidebar{background:#10171b;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.side-head{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 15px}
.logo{width:40px;height:40px;border-radius:12px}.brand{font-weight:800}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:2px}
.collapse{margin-left:auto;border:none;background:transparent;color:#819199;width:34px;height:34px;border-radius:8px}.collapse:hover{background:var(--panel2);color:#fff}
.side-search{padding:10px 12px 5px}.side-search input{width:100%;background:var(--panel);border:1px solid var(--line);color:#fff;border-radius:9px;padding:9px 10px;outline:none}.side-scroll{overflow:auto;padding:6px 8px 18px}
.section-label{display:flex;align-items:center;gap:8px;padding:14px 10px 6px;color:#7f8f98;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.section-label button{margin-left:auto;border:none;background:transparent;color:#8ea0a8}
.side-item,.tree-row,.team-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;color:#c6d0d6;margin:2px 0;user-select:none}.side-item:hover,.tree-row:hover,.team-item:hover{background:var(--panel2)}
.side-item.active,.tree-row.active{background:var(--brand-soft);color:#dcfff1;font-weight:700}.icon{width:20px;text-align:center;flex:0 0 auto}.count{margin-left:auto;color:#83939b;font-size:10px;background:#1b252b;border-radius:999px;padding:2px 6px}
.client-row{font-weight:700}.project-row{padding-left:25px;font-size:12px}.status-row{padding-left:47px;font-size:11px}.tree-caret{width:13px;color:#72828b}.dot{width:8px;height:8px;border-radius:50%;background:#77858c;flex:0 0 auto}
.dot-indigo{background:#7682d8}.dot-purple{background:#8a65d7}.dot-blue{background:#4b9bd0}.dot-violet{background:#a866e0}.dot-green{background:#38b878}.dot-red{background:#df5a56}.dot-amber{background:#d5a13f}.dot-gray{background:#7f8b91}
.avatar{width:27px;height:27px;border-radius:50%;background:#2a493e;display:grid;place-items:center;font-size:10px;font-weight:800}.online{width:8px;height:8px;border-radius:50%;background:#43c77e;margin-left:-14px;margin-top:17px;border:2px solid #10171b}
.team-copy{min-width:0}.team-copy b{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-copy span{font-size:9px;color:#7d8d95;display:block}
.shell.collapsed .brand,.shell.collapsed .side-search,.shell.collapsed .section-label,.shell.collapsed .label,.shell.collapsed .count,.shell.collapsed .team-copy,.shell.collapsed .tree-caret{display:none}.shell.collapsed .project-row,.shell.collapsed .status-row{padding-left:10px}.shell.collapsed .side-head{padding:0 18px}.shell.collapsed .collapse{display:none}
.main{min-width:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.topbar{height:68px;border-bottom:1px solid var(--line);background:#11181d;display:flex;align-items:center;gap:8px;padding:0 20px}.mobile-menu{display:none}
.page-title{font-size:19px;font-weight:800}.page-sub{font-size:10px;color:var(--muted);margin-top:3px}.spacer{flex:1}.top-btn{border:1px solid var(--line);background:var(--panel);color:#dce5e9;border-radius:9px;padding:8px 10px}.top-btn:hover{background:var(--panel2)}
.content{position:relative;flex:1;overflow:auto;padding:18px 20px 90px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar input,.toolbar select{background:var(--panel);border:1px solid var(--line);color:#fff;border-radius:9px;padding:9px 10px;outline:none}.toolbar input{flex:1;min-width:260px}.toolbar button{border:1px solid var(--line);background:var(--panel);color:#dce5e9;border-radius:9px;padding:9px 11px}
.context-strip{display:flex;align-items:center;gap:7px;background:#12251f;border:1px solid #284d40;border-radius:10px;padding:10px 12px;color:#ccece0;font-size:11px;margin-bottom:12px}.context-strip b{color:#fff}.context-strip button{border:1px solid #365d4f;background:#17362b;color:#dffff2;border-radius:8px;padding:7px 9px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:10px}.card{border:1px solid var(--line);background:var(--panel);border-radius:11px;padding:12px}.card:hover{background:#192329}.card h3{font-size:13px;margin:0}.card p{font-size:10px;color:#83939b;margin:5px 0 0}
.card-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px;font-size:9px;color:#9dabb2}.card-meta span{background:#1b252b;border-radius:7px;padding:5px 7px}.card-actions{display:flex;gap:5px;margin-top:10px}.card-actions button{border:1px solid var(--line);background:#172027;color:#cbd6db;border-radius:8px;padding:7px 9px;font-size:10px}
.empty{border:1px dashed #334149;border-radius:12px;padding:42px;text-align:center;color:#83939b;background:#10171b}.empty b{display:block;color:#d7e0e4;margin-bottom:7px}.empty button{margin-top:12px}
.project-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.project-head h2{margin:0;font-size:18px}.project-head p{margin:4px 0 0;color:#83939b;font-size:10px}.project-head-actions{margin-left:auto;display:flex;gap:7px}
.flow{display:flex;flex-direction:column;gap:10px}.status-group{border:1px solid var(--line);background:#10171b;border-radius:12px;overflow:hidden}.status-head{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#151e24;cursor:pointer}.status-head strong{font-size:12px}.status-head .count{margin-left:auto}.status-body{padding:7px;display:flex;flex-direction:column;gap:6px}.status-group.closed .status-body{display:none}.status-group.status-dragging{opacity:.45}.status-group.status-drop{outline:2px dashed var(--brand);outline-offset:2px}
.task{display:grid;grid-template-columns:20px 20px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #25333b;background:var(--panel);border-radius:9px;padding:10px 11px}.task:hover{background:#192329}.task.dragging{opacity:.4}.task.drop-target{outline:2px dashed var(--brand);outline-offset:2px}
.grip{color:#56666f;cursor:grab;opacity:.5;font-size:16px}.task:hover .grip{opacity:1}.check{width:18px;height:18px;border-radius:50%;border:2px solid #819098;background:transparent;color:#fff;padding:0}.task.done .check{background:var(--brand);border-color:var(--brand)}.task.done .task-title{text-decoration:line-through;color:#77858d}
.task-title{font-size:12px;font-weight:700}.task-meta{font-size:9px;color:#82929a;margin-top:4px;display:flex;gap:7px;flex-wrap:wrap}.task-meta .late{color:#f57f79}.task-meta .today{color:#e6b44d}.task-actions{display:flex;gap:2px}.icon-btn{border:none;background:transparent;color:#7e8e96;width:30px;height:30px;border-radius:8px}.icon-btn:hover{background:#223038;color:white}
.add-inline{display:flex;gap:7px;padding:8px;background:#11181d;border:1px dashed #2e3b43;border-radius:9px}.add-inline input{flex:1;background:transparent;border:none;color:white;outline:none;padding:7px}.add-inline button{border:none;background:#1d4a3a;color:#dffff2;border-radius:8px;padding:7px 10px}
.quick-add{position:absolute;left:20px;right:20px;bottom:16px;background:#121a1f;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:9px;z-index:20}.quick-row{display:flex;gap:8px;align-items:center}.quick-row input{flex:1;border:none;background:transparent;color:white;outline:none;padding:9px 4px}.quick-row button{border:none;background:var(--brand);color:#fff;border-radius:8px;padding:9px 13px;font-weight:800}
.drawer{position:fixed;right:0;top:0;bottom:0;width:410px;background:#12191e;border-left:1px solid var(--line);box-shadow:-16px 0 48px rgba(0,0,0,.36);z-index:100;transform:translateX(102%);transition:.22s;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{padding:17px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:flex-start}.drawer-head h3{margin:0;font-size:17px}.drawer-body{padding:14px 17px;overflow:auto}
.detail-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:10px}.detail-row{display:flex;align-items:center;gap:10px;padding:10px 11px;border-bottom:1px solid #222d33;font-size:11px}.detail-row:last-child{border-bottom:none}.detail-row label{color:#c9d3d8}.value{margin-left:auto;color:#8d9ba3;text-align:right}
.form-stack{display:grid;gap:9px}.form-stack label{font-size:10px;color:#98a7af}.form-stack input,.form-stack select,.form-stack textarea{width:100%;margin-top:4px;background:#151e23;border:1px solid var(--line);color:#fff;border-radius:8px;padding:9px;outline:none}.form-stack textarea{min-height:92px;resize:vertical}
.action-row{display:flex;gap:7px;margin:9px 0;flex-wrap:wrap}.action-row button{border:1px solid var(--line);background:#182127;color:#d7e0e4;border-radius:8px;padding:8px 10px}.action-row .primary{background:var(--brand);border-color:var(--brand)}.action-row .danger{background:#2b1918;border-color:#6d2f2b;color:#ff9a95}
.danger-wide{width:100%;border:1px solid #6d2f2b;background:#2b1918;color:#ff9a95;border-radius:9px;padding:9px;margin-top:10px}
.toast{position:fixed;left:50%;bottom:20px;z-index:200;transform:translate(-50%,18px);opacity:0;background:#173a2e;color:white;border-radius:8px;padding:9px 12px;font-size:11px;transition:.18s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.shell,.shell.collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:300px;z-index:130;transform:translateX(-102%);box-shadow:18px 0 48px rgba(0,0,0,.35)}.sidebar.mobile-open{transform:translateX(0)}.mobile-menu{display:inline-block}.drawer{width:min(410px,100%)}.toolbar input{min-width:100%}.topbar{padding:0 12px}.topbar #importBtn,.topbar #aiBtn{display:none}}
.drawer-subtitle{display:flex;align-items:center;gap:7px;margin:16px 0 7px;color:#91a0a8;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.drawer-subtitle .count{margin-left:auto}.detail-row a:hover{text-decoration:underline!important}
