:root{--ink:#102436;--muted:#617082;--line:#dbe6ec;--soft:#f5f9fb;--teal:#087b7c;--blue:#1268a8;--danger:#b42318;--ok:#087443}*{box-sizing:border-box}body{margin:0;background:var(--soft);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body.app-busy,body.app-busy *{cursor:wait!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;box-shadow:0 18px 50px rgba(16,36,54,.08)}.brand{display:inline-flex;align-items:flex-start}.brand img{width:360px;max-width:100%;height:auto;object-fit:contain}.brand.compact img{width:190px}.login-heading{margin:28px 0 20px}.eyebrow{margin:0 0 6px;color:var(--teal);font-size:12px;font-weight:800;text-transform:uppercase}h1{margin:0;font-size:28px;line-height:1.2;letter-spacing:0}h2{margin:22px 0 10px;font-size:16px}.field{display:grid;grid-gap:7px;gap:7px;margin-bottom:15px}.field span{color:var(--muted);font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:11px 12px;background:#fff;color:var(--ink)}textarea{resize:vertical}.submit{border:0;border-radius:6px;background:var(--teal);color:#fff;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;cursor:pointer}.submit:disabled,button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:wait;opacity:.68}.submit.slim{padding:9px 12px;min-height:38px}.ghost-button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 12px;display:flex;gap:8px;align-items:center;cursor:pointer}.switch-link{display:inline-block;margin-top:18px;color:var(--blue);font-weight:700}.link-button{border:0;background:transparent;color:var(--blue);display:block;margin-top:14px;padding:0;font-weight:800;cursor:pointer;text-align:left}.notice{margin:10px 0 16px;border-radius:6px;padding:11px 12px;font-size:14px;border:1px solid #f0c3bd;color:var(--danger);background:#fff5f3}.notice.success{color:var(--ok);background:#f0fff7;border-color:#bfe8d1}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:22px}.sidebar nav{display:grid;grid-gap:6px;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:9px;border-radius:6px;padding:10px;color:var(--muted);font-weight:700}.sidebar nav a:hover{background:var(--soft);color:var(--ink)}.workspace{min-width:0}.workspace-header{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;padding:0 28px}.workspace-header div{display:grid;text-align:right}.workspace-header small{color:var(--muted)}.detail-header,.page-title{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:28px}.metric-grid{display:grid;grid-template-columns:repeat(8,minmax(110px,1fr));grid-gap:12px;gap:12px;padding:0 28px 22px}.empty-state,.form-card,.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:8px}.metric{padding:16px;display:grid;grid-gap:8px;gap:8px;text-align:left;cursor:pointer}.metric.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.metric small{color:var(--muted);font-weight:700}.metric strong{font-size:28px}.filter-bar{margin:0 28px 16px;display:flex;flex-wrap:wrap;gap:8px}.filter-bar button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);padding:8px 11px;font-size:13px;font-weight:800;cursor:pointer}.filter-bar button.active{background:var(--ink);border-color:var(--ink);color:#fff}.table{margin:0 28px 28px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.table-row{display:grid;grid-template-columns:140px minmax(220px,1fr) 130px 130px 100px 150px;grid-gap:12px;gap:12px;align-items:center;min-height:52px;padding:10px 14px;border-top:1px solid var(--line)}.ticket-table .table-row{grid-template-columns:140px minmax(220px,1fr) 130px 120px 130px 100px 170px 150px}.table-row:first-child{border-top:0}.table-row.head{background:var(--soft);text-transform:uppercase}.pill,.table-row.head{color:var(--muted);font-size:12px;font-weight:800}.pill{display:inline-flex;justify-content:center;width:-moz-fit-content;width:fit-content;min-width:94px;border-radius:999px;padding:5px 9px;background:#eef4f7}.pill.new{background:#e8f4ff;color:var(--blue)}.pill.inprogress{background:#fff7df;color:#8a5a00}.pill.needmoreinfo{background:#fff1f0;color:var(--danger)}.pill.completed{background:#ecfdf3;color:var(--ok)}.pill.rejected{background:#f2f4f7;color:#475467}.form-card{margin:0 28px 28px;padding:22px;max-width:760px}.empty-state{margin:0 28px;padding:28px;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:18px;gap:18px;padding:0 28px 28px}.timestamp-line{margin:8px 0 0;color:var(--muted);font-size:13px;font-weight:700}.panel{padding:20px}.preline{white-space:pre-wrap;line-height:1.6}.meta{display:grid;align-content:start;grid-gap:14px;gap:14px}.meta span{display:grid;grid-gap:4px;gap:4px;color:var(--muted)}.meta strong{color:var(--ink)}.meta a{color:var(--blue);font-weight:700}.meta-field{display:grid;grid-gap:7px;gap:7px}.meta-field span{color:var(--muted);font-size:13px;font-weight:800}.comments{display:grid;grid-gap:10px;gap:10px}.comment{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.comment.internal{background:#fffaf0}.comment-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.comment-head time{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.comment p{margin:6px 0 0;line-height:1.5}.reply-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reply-attachments a{border:1px solid var(--line);border-radius:6px;padding:6px 8px;color:var(--blue);font-size:13px;font-weight:700}.comment-form{margin-top:14px;display:grid;grid-gap:10px;gap:10px}.comment-tools{display:flex;justify-content:flex-end;align-items:center;min-height:24px}.compact-field{margin-bottom:0}.selected-file-list,.selected-files{color:var(--muted);font-weight:700}.selected-file-list{display:grid;grid-gap:7px;gap:7px}.selected-file-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:#fff;color:var(--ink);font-weight:700}.selected-file-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-file-item button{border:0;background:transparent;color:var(--danger);font-size:12px;font-weight:800;cursor:pointer}.admin-controls,.inline-form{margin:24px 28px 0;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;align-items:center}.check{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.check input{width:auto}.status-decision-panel{margin:0 28px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;grid-gap:14px;gap:14px}.status-decision-panel>div:first-child{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;font-weight:800}.status-actions{display:flex;flex-wrap:wrap;gap:10px}.decision-buttons .ghost-button,.status-actions button{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:8px 12px;font-weight:800;cursor:pointer}.decision-buttons .ghost-button:hover,.status-actions button:hover{background:var(--soft)}.status-actions .danger-action{color:var(--danger);border-color:#f0c3bd}.status-decision-form{border-top:1px solid var(--line);padding-top:14px;display:grid;grid-gap:10px;gap:10px;max-width:720px}.decision-copy{color:var(--muted);font-size:13px}.decision-buttons{display:flex;justify-content:flex-end;gap:10px}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;border-right:0;border-bottom:1px solid var(--line)}.admin-controls,.detail-grid,.inline-form,.metric-grid{grid-template-columns:1fr}.table{overflow-x:auto}.table-row{min-width:860px}.ticket-table .table-row{min-width:1220px}}