:root{--canvas:#f6f6f6;--panel:#fff;--line:#d9d9d9;--text:#4c5968;--muted:#8a95a1;--accent:#5c87b2;--hover-bg:#f4f8fc;--hover-line:#cbd6e1;--content-width:920px;color:var(--text);background:var(--canvas);font-family:Segoe UI,Tahoma,Arial,sans-serif;font-size:12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,Tahoma,Arial,sans-serif;font-size:12px}a{color:inherit;text-decoration:none}button{color:var(--text);cursor:pointer;font-family:inherit;font-size:12px}input,textarea{color:var(--text);font-family:inherit;font-size:12px}.app-shell{min-height:100vh;padding:40px 48px 48px}.app-main{width:100%;max-width:var(--content-width);margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-meta{gap:4px;display:grid}.page-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.page-title{color:#44515f;margin:0;font-size:24px;font-weight:600}.page-actions{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel);height:30px;color:var(--text);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--hover-bg);border-color:var(--hover-line)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover{background:#4f7aa3;border-color:#4f7aa3}.btn--ghost{background:0 0}.btn--danger{color:#933030}.btn--danger:hover{background:#fbeaea;border-color:#e3bcbc}.btn--sm{height:24px;padding:0 10px;font-size:11px}:root{--task-type-width:60px}.stage{flex-direction:column;gap:4px;display:flex}.proj-strip{grid-template-columns:minmax(0,1fr) 150px 110px;align-items:stretch;width:100%;display:grid}.proj-name,.proj-status,.proj-action{border:1px solid var(--line);background:var(--panel);color:#566270;align-items:center;height:38px;transition:background-color .15s,border-color .15s;display:flex}.proj-status,.proj-action{justify-content:center;margin-left:-1px;padding:0 8px}.proj-name{white-space:nowrap;text-overflow:ellipsis;padding:0 12px;font-size:13px;font-weight:500;overflow:hidden}.proj-strip:hover .proj-name,.proj-strip:hover .proj-status,.proj-strip:hover .proj-action{background:var(--hover-bg);border-color:var(--hover-line)}.status-pill{border:1px solid var(--line);color:#596573;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fbfbfb;align-items:center;height:22px;padding:0 10px;font-size:12px;font-weight:500;transition:filter .12s;display:inline-flex}.status-pill.is-open{color:#3d7a48;background:#eaf6ec;border-color:#9dcaa4}.status-pill.is-closed{color:#933030;background:#fbe9e9;border-color:#d99a9a}.status-pill:hover{filter:brightness(.96)}.proj-action button{border:1px solid var(--line);color:#446584;cursor:pointer;background:#f0f5fa;height:26px;padding:0 16px;font-size:12px;font-weight:500;transition:background-color .15s,border-color .15s}.proj-action button:hover{background:#e3eef8;border-color:#c7d5e3}.proj-rename-input{border:1px solid var(--line);background:var(--panel);width:100%;height:26px;color:var(--text);outline:none;padding:0 8px;font-family:inherit;font-size:13px;font-weight:500}.proj-rename-input:focus{border-color:#446584}.task-strip{grid-template-columns:var(--task-type-width) 1fr auto;align-items:stretch;width:100%;display:grid}.task-type,.task-title{border:1px solid var(--line);background:var(--panel);color:#5a6673;align-items:center;height:25px;font-size:12px;font-weight:500;transition:background-color .15s,border-color .15s;display:flex}.task-type{-webkit-user-select:none;user-select:none;justify-content:center;padding:0 8px}.task-title{white-space:nowrap;text-overflow:ellipsis;margin-left:-1px;padding:0 10px;overflow:hidden}.task-strip:hover .task-type,.task-strip:hover .task-title,.task-strip:hover .strip-action{background:var(--hover-bg);border-color:var(--hover-line)}.strip-actions{align-items:stretch;display:flex}.strip-action{border:1px solid var(--line);background:var(--panel);height:25px;color:var(--muted);cursor:pointer;border-left:0;align-items:center;padding:0 10px;font-size:11px;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.strip-action:hover{background:var(--hover-bg);border-color:var(--hover-line);color:var(--text)}.strip-action--danger:hover{color:#933030;background:#fbeaea;border-color:#e3bcbc}.strip-input{width:100%;height:100%;font:inherit;color:var(--text);background:0 0;border:0;outline:none;margin:0;padding:0 8px}.add-row{grid-template-columns:var(--task-type-width) 1fr auto;width:100%;margin-top:8px;display:grid}.add-row .task-type,.add-row .task-title,.add-row .strip-cell{background:#fbfbfb}.add-row input[type=text]{width:100%;height:100%;font:inherit;color:var(--text);background:0 0;border:0;outline:none;padding:0 10px}.add-row .add-btn{border:1px solid var(--line);background:var(--panel);height:25px;color:var(--accent);cursor:pointer;white-space:nowrap;border-left:0;padding:0 14px;font-size:12px;font-weight:500}.add-row .add-btn:hover{background:var(--hover-bg);border-color:var(--hover-line)}.add-row .add-btn:disabled{color:var(--muted);cursor:default;background:var(--panel)}.task-num{font-variant-numeric:tabular-nums;color:#5a6673}.empty{border:1px dashed var(--line);background:var(--panel);text-align:center;color:var(--muted);padding:24px;font-size:12px}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:56px 48px 48px;display:flex}.login-card{border:1px solid var(--line);background:var(--panel);gap:14px;width:100%;max-width:360px;padding:18px;display:grid}.login-head{gap:4px;display:grid}.login-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.login-title{color:#44515f;margin:0;font-size:18px;font-weight:600}.login-form{gap:12px;display:grid}.login-form label{color:var(--muted);gap:4px;font-size:11px;display:grid}.login-form input{border:1px solid var(--line);width:100%;height:30px;color:var(--text);background:#fbfbfb;outline:none;padding:0 8px}.login-form input:focus{border-color:var(--accent);background:#fff}.login-actions{justify-content:flex-end;display:flex}.login-error{color:#933030;background:#fbeaea;border:1px solid #e3bcbc;padding:8px 10px;font-size:12px}.topbar{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:24px;font-size:11px;display:flex}.topbar-user{align-items:center;gap:10px;display:flex}.crumbs{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:11px;display:flex}.crumbs a:hover{color:var(--text)}.crumbs .sep{color:var(--line)}
