:root{--bg: #e9edf2;--panel: #ffffff;--ink: #1f2933;--muted: #6b7785;--line: #cfd6de;--line-strong: #9aa5b1;--header: #243447;--header-border: #1a2634;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #b42318;--ok: #027a48;--warn: #b54708;--purple: #6941c6;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;color:var(--ink);background:var(--bg);line-height:1.35}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-rows:44px 1fr}.topbar{background:var(--header);color:#fff;border-bottom:1px solid var(--header-border);padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:700;font-size:14px;letter-spacing:.02em;text-transform:uppercase}.topbar nav{display:flex;align-items:center;gap:4px}.topbar a,.topbar button.linkish{color:#d9e2ec;background:transparent;border:0;padding:8px 10px;border-radius:0}.topbar a.active,.topbar a:hover,.topbar button.linkish:hover{background:#ffffff14;color:#fff;text-decoration:none}.user-chip{color:#9fb3c8;margin-left:8px;padding-left:10px;border-left:1px solid #3e4c59}.page{width:100%;max-width:none;margin:0;padding:12px 16px 24px}.stack{display:grid;gap:10px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grow{flex:1;min-width:0}h1,h2,h3{margin:0;font-weight:650}h1{font-size:18px}h2{font-size:14px}.muted{color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:end;background:var(--panel);border:1px solid var(--line);border-radius:0;padding:10px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:0}.panel-pad{padding:12px}.btn{border:1px solid transparent;border-radius:0;padding:7px 12px;background:var(--accent);color:#fff;font-weight:600}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{background:#fff;color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover{background:#f5f7fa}.btn.ghost{background:transparent;color:#fff;border-color:#ffffff40}.field{display:grid;gap:4px;margin-bottom:10px}.field.inline{margin-bottom:0;min-width:140px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:0;padding:7px 8px;background:#fff}.field textarea{min-height:96px;resize:vertical}.field.inline label+*{min-width:140px}.check{display:flex;align-items:center;gap:6px;padding-bottom:2px;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;background:var(--panel)}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table th{background:#f4f6f8;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;border-bottom:1px solid var(--line-strong);white-space:nowrap}.table tbody tr:hover td{background:#f7fafc}.table .id{color:var(--muted);font-variant-numeric:tabular-nums;width:56px}.table .title-cell a{color:var(--ink);font-weight:600}.table .title-cell a:hover{color:var(--accent)}.meta{color:var(--muted);font-size:12px;margin-top:2px}.badge{display:inline-block;border-radius:0;padding:2px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border:1px solid transparent}.badge.open{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.badge.in_progress{background:#fffbeb;color:#b54708;border-color:#fcd34d}.badge.waiting{background:#f5f3ff;color:#6941c6;border-color:#ddd6fe}.badge.resolved,.badge.closed{background:#ecfdf3;color:#027a48;border-color:#abefc6}.badge.urgent{background:#fef3f2;color:#b42318;border-color:#fecdca}.badge.high{background:#fff6ed;color:#c4320a;border-color:#f9dbaf}.badge.normal{background:#f8fafc;color:#475467;border-color:#d0d5dd}.badge.low{background:#f8fafc;color:#98a2b3;border-color:#e4e7ec}.error{background:#fef3f2;color:var(--danger);border:1px solid #fecdca;border-radius:0;padding:8px 10px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:min(380px,100%);background:#fff;border:1px solid var(--line-strong);border-radius:0;padding:20px}.login-card h1{font-size:16px;text-transform:uppercase;letter-spacing:.04em}.login-card .muted{margin:6px 0 16px}.comment{border-top:1px solid var(--line);padding:10px 0}.comment:first-child{border-top:0;padding-top:0}.two-col{display:grid;grid-template-columns:1fr 320px;gap:10px;align-items:start}.drawer-backdrop{position:fixed;inset:0;background:#0f172a59;z-index:40}.drawer{position:fixed;top:0;right:0;width:min(440px,100%);height:100%;background:#fff;border-left:1px solid var(--line-strong);z-index:50;display:grid;grid-template-rows:auto 1fr}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);background:#f8fafc}.drawer-body{padding:14px;overflow:auto}.drawer-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.empty{padding:28px 12px;text-align:center;color:var(--muted)}.views{display:flex;gap:0;border:1px solid var(--line-strong);width:fit-content;background:#fff}.views button{border:0;border-right:1px solid var(--line);background:#fff;padding:7px 12px;font-weight:650;color:var(--muted)}.views button:last-child{border-right:0}.views button.active{background:#eff6ff;color:var(--accent)}.mode-toggle{display:flex;border:1px solid var(--line-strong);background:#fff}.mode-toggle button{border:0;background:transparent;padding:7px 10px;color:var(--muted);font-weight:650}.mode-toggle button.active{background:#243447;color:#fff}.board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:10px;align-items:start}.board-col{background:#f4f6f8;border:1px solid var(--line);min-height:180px}.board-col-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--muted);background:#eef2f6}.board-col-body{display:grid;gap:8px;padding:8px}.board-card{background:#fff;border:1px solid var(--line-strong);padding:8px;cursor:pointer;text-align:left;width:100%}.board-card:hover{border-color:var(--accent)}.board-card .title{font-weight:650;margin:4px 0 6px;color:var(--ink)}.tag{display:inline-block;border:1px solid var(--line);padding:1px 6px;font-size:11px;font-weight:700;margin-right:4px;margin-bottom:2px}.due.overdue{color:var(--danger);font-weight:700}.due.soon{color:var(--warn);font-weight:700}.inline-select{border:1px solid transparent;background:transparent;padding:2px 4px;max-width:130px}.inline-select:hover,.inline-select:focus{border-color:var(--line-strong);background:#fff}.checklist-row{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line)}.checklist-row:first-child{border-top:0}.checklist-row.done span{text-decoration:line-through;color:var(--muted)}.timeline-item{border-top:1px solid var(--line);padding:8px 0;font-size:13px}.timeline-item:first-child{border-top:0}.tag-picker{display:flex;flex-wrap:wrap;gap:6px}.tag-picker label{display:flex;gap:4px;align-items:center;border:1px solid var(--line);padding:4px 6px;font-size:12px;font-weight:650;cursor:pointer}@media(max-width:860px){.two-col{grid-template-columns:1fr}.filters .field.inline{min-width:calc(50% - 8px);flex:1}.board{grid-template-columns:1fr}}
