:root{--primary: #4680ff;--primary-dark: #3f78ff;--tint: #e9f0ff;--bg: #f8f9fa;--card: #ffffff;--text: #3e4853;--text-strong: #1d2630;--muted: #8996a4;--line: #e4e9ed;--green: #2ca87f;--orange: #e58a00;--red: #dc2626}*{box-sizing:border-box;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:13.5px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}.sidebar .brand{font-weight:700;font-size:16px;color:var(--text-strong);padding:0 10px 16px}.sidebar .brand span{color:var(--primary)}.sidebar a{padding:9px 10px;border-radius:8px;color:var(--text);font-weight:500;font-size:13.5px}.sidebar a.active{background:var(--tint);color:var(--primary);font-weight:600}.sidebar a:hover{background:var(--bg)}.sidebar .spacer{flex:1}.sidebar .agent{font-size:12px;color:var(--muted);padding:10px;border-top:1px solid var(--line)}.main{flex:1;padding:24px;max-width:1200px}h1{font-size:18px;color:var(--text-strong);margin-bottom:16px}h2{font-size:15px;color:var(--text-strong);margin-bottom:10px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:12px}.btn{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-weight:600;font-size:13px}.btn:hover{background:var(--primary-dark)}.btn.secondary{background:var(--tint);color:var(--primary)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.danger{background:#fdecec;color:var(--red)}.btn:disabled{opacity:.5;cursor:default}.input,textarea.input,select.input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--text-strong);width:100%}.input:focus{outline:2px solid var(--tint);border-color:var(--primary)}textarea.input{resize:vertical}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid var(--line);font-size:13.5px}tr.click{cursor:pointer}tr.click:hover{background:var(--bg)}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;text-transform:capitalize}.pill.open{background:var(--tint);color:var(--primary)}.pill.pending{background:#fdf3e2;color:var(--orange)}.pill.resolved{background:#e2f4ec;color:var(--green)}.pill.closed,.pill.low{background:#eef1f4;color:var(--muted)}.pill.medium{background:var(--tint);color:var(--primary)}.pill.high{background:#fdf3e2;color:var(--orange)}.pill.urgent,.pill.breach{background:#fdecec;color:var(--red)}.stat{text-align:center;padding:18px 10px}.stat .value{font-size:26px;font-weight:700;color:var(--text-strong)}.stat .label{font-size:12px;color:var(--muted);margin-top:2px}.msg{max-width:75%;border-radius:12px;padding:10px 12px;margin-bottom:10px}.msg.user{background:var(--card);border:1px solid var(--line)}.msg.agent{background:var(--tint);margin-left:auto}.msg.internal{background:#fdf7e2;border:1px dashed var(--orange);margin-left:auto}.msg.system{background:transparent;color:var(--muted);font-style:italic;font-size:12px;text-align:center;max-width:100%}.msg .who{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:3px}.msg .when{font-size:10.5px;color:var(--muted);margin-top:5px;text-align:right}.banner{background:#fdecec;color:var(--red);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;margin-bottom:12px}.login-page{min-height:100vh;display:grid;place-items:center}.login-card{width:360px;display:grid;gap:10px}.bar{height:8px;border-radius:4px;background:var(--tint);overflow:hidden}.bar>div{height:100%;background:var(--primary)}
