:root{--bg:#f6f7f9;--surface:#fff;--border:#e3e6ea;--text:#1c2127;--muted:#667085;--accent:#2f5fde;--accent-soft:#eaf0ff;--danger:#c92f2f;--radius:8px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0;font-size:20px}h2{margin:0 0 10px;font-size:15px}.app-shell{min-height:100vh;display:flex}.sidebar{color:#cbd4e1;background:#171d26;flex-direction:column;flex-shrink:0;gap:2px;width:210px;padding:18px 12px;display:flex}.sidebar .brand{color:#fff;letter-spacing:.2px;padding:4px 10px 18px;font-size:16px;font-weight:700}.sidebar a{color:#cbd4e1;border-radius:6px;padding:8px 10px;font-weight:500}.sidebar a:hover{background:#232c3a;text-decoration:none}.sidebar a.active{background:var(--accent);color:#fff}.sidebar .spacer{flex:1}.sidebar .userbox{color:#8b96a5;border-top:1px solid #2a3442;padding:10px;font-size:12px}.sidebar .userbox strong{color:#cbd4e1;font-size:13px;display:block}.sidebar .userbox button{margin-top:8px}.main{flex:1;max-width:1100px;padding:24px 32px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-head .filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 18px}table.list{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}table.list th,table.list td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}table.list th{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:#fafbfc;font-size:12px;font-weight:600}table.list tr:last-child td{border-bottom:none}table.list tbody tr{cursor:pointer}table.list tbody tr:hover{background:#f4f7ff}.badge{color:#475467;white-space:nowrap;background:#eef1f5;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.status-active,.badge.status-open,.badge.status-todo{color:#1d7a3d;background:#e8f5ec}.badge.status-in_progress,.badge.status-planning{color:#2f5fde;background:#eaf0ff}.badge.status-waiting_on_client,.badge.status-on_hold,.badge.status-blocked,.badge.status-prospective{color:#a86403;background:#fff4e0}.badge.status-resolved,.badge.status-completed,.badge.status-done{color:#1d7a3d;background:#e8f5ec}.badge.status-closed,.badge.status-inactive,.badge.status-cancelled{color:#667085;background:#eef1f5}.badge.prio-urgent{color:#c92f2f;background:#fdeaea}.badge.prio-high{color:#a86403;background:#fff4e0}.badge.prio-normal{color:#2f5fde;background:#eaf0ff}.badge.prio-low{color:#667085;background:#eef1f5}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 14px;font-weight:500}button:hover,.btn:hover{background:#f2f4f7}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#274fc0}button.danger{color:var(--danger)}button.small{padding:4px 10px;font-size:12px}button:disabled{opacity:.55;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;width:100%;padding:7px 10px}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .full{grid-column:1/-1}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.detail-grid,.form-grid{grid-template-columns:1fr}}.meta-list{gap:8px;font-size:13px;display:grid}.meta-list .row{justify-content:space-between;gap:10px;display:flex}.meta-list .row span:first-child{color:var(--muted)}.timeline{flex-direction:column;gap:10px;display:flex}.timeline .note{border-left:3px solid var(--accent-soft);padding:4px 12px}.timeline .note .meta{color:var(--muted);margin-bottom:2px;font-size:12px}.timeline .note .body{white-space:pre-wrap}.empty{color:var(--muted);text-align:center;padding:24px}.error-text{color:var(--danger);font-size:13px}.modal-overlay{z-index:50;background:#0f141e73;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:10px;width:100%;max-width:560px;max-height:80vh;padding:22px;overflow:auto}.modal h2{margin-bottom:14px}.modal .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.login-wrap{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:340px}.login-card h1{margin-bottom:4px}.login-card p{color:var(--muted);margin:0 0 18px}.login-card form{gap:10px;display:grid}.search-box{width:320px;position:relative}.search-results{background:var(--surface);border:1px solid var(--border);z-index:40;border-radius:8px;max-height:420px;position:absolute;top:40px;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #1018281f}.search-results .group-label{text-transform:uppercase;color:var(--muted);padding:8px 12px 2px;font-size:11px;font-weight:700}.search-results .hit{color:var(--text);padding:8px 12px;display:block}.search-results .hit:hover{background:#f4f7ff;text-decoration:none}.search-results .hit .sub{color:var(--muted);font-size:12px}.inline-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-head h2{margin:0}
