:root{
  --bg:#F5F6F4; --surface:#FFFFFF; --ink:#1B2430; --ink-soft:#5B6472; --line:#DCE0E0;
  --accent:#3A6B63; --accent-dark:#2A4E48; --accent-soft:#E4EEEC;
  --warn:#B4682B; --warn-soft:#F7E9DE; --info:#3B6EA5; --info-soft:#E3EBF3;
  --good:#4C8C6B; --good-soft:#E5F0E9; --muted:#8A93A0; --muted-soft:#ECEDEF; --danger:#B23A3A; --danger-soft:#F5E4E2;
  --mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;}
#root{min-height:100vh;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-0.01em;}
.brand .mark{width:26px;height:26px;border-radius:7px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-family:var(--mono);font-weight:700;}
.topbar-right{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);}
button{font-family:var(--sans);cursor:pointer;}
.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 16px;border-radius:8px;font-size:14px;font-weight:600;transition:border-color .15s, background .15s;}
.btn:hover{border-color:var(--accent);}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);}
.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-soft);}
.btn-ghost:hover{background:var(--muted-soft);}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:6px;}
.btn-danger{color:var(--danger);border-color:var(--danger-soft);}
.btn-danger:hover{border-color:var(--danger);background:var(--danger-soft);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.center-screen{flex:1;display:flex;align-items:center;justify-content:center;padding:32px 16px;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;width:100%;max-width:440px;}
.card h1{font-size:20px;margin:0 0 4px;letter-spacing:-0.01em;}
.card .sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 20px;line-height:1.5;}
.role-grid{display:flex;flex-direction:column;gap:12px;width:100%;max-width:460px;}
.role-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;text-align:left;display:flex;flex-direction:column;gap:4px;}
.role-card:hover{border-color:var(--accent);}
.role-card .rt{font-weight:700;font-size:16px;}
.role-card .rs{color:var(--ink-soft);font-size:13.5px;}
label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 6px;}
label:first-of-type{margin-top:0;}
input[type=text],input[type=email],input[type=password],textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;font-family:var(--sans);background:var(--bg);color:var(--ink);}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
textarea{resize:vertical;min-height:90px;line-height:1.5;}
.field-row{display:flex;gap:10px;}
.field-row>div{flex:1;}
.hint{font-size:12px;color:var(--ink-soft);margin-top:5px;}
.error-text{font-size:12.5px;color:var(--danger);margin-top:6px;}
.msg-banner{padding:10px 13px;border-radius:8px;font-size:13px;margin-bottom:14px;}
.msg-good{background:var(--good-soft);color:var(--accent-dark);}
.msg-bad{background:var(--danger-soft);color:var(--danger);}
.shell{flex:1;display:flex;}
.sidenav{width:190px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;}
.nav-item{padding:10px 12px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;text-align:left;border:none;background:transparent;}
.nav-item:hover{background:var(--muted-soft);color:var(--ink);}
.nav-item.active{background:var(--accent-soft);color:var(--accent-dark);}
.nav-badge{float:right;background:var(--muted-soft);color:var(--ink-soft);border-radius:20px;padding:1px 7px;font-size:11px;font-family:var(--mono);}
.main{flex:1;padding:24px 28px;overflow-y:auto;}
.main-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px;}
.main-header h2{font-size:19px;margin:0;letter-spacing:-.01em;}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.toolbar select,.toolbar input{width:auto;padding:7px 10px;font-size:13px;}
.ticket-list{display:flex;flex-direction:column;gap:12px;}
.ticket-stub{position:relative;display:flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;}
.ticket-stub:hover{border-color:var(--accent);}
.stub-main{flex:1;padding:14px 16px;min-width:0;}
.stub-side{width:112px;flex-shrink:0;border-left:1.5px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;background:var(--bg);}
.ticket-stub::before,.ticket-stub::after{content:"";position:absolute;left:calc(100% - 112px - 6px);width:12px;height:12px;border-radius:50%;background:var(--bg);z-index:2;}
.ticket-stub::before{top:-6px;} .ticket-stub::after{bottom:-6px;}
.stub-id{font-family:var(--mono);font-size:11px;color:var(--ink-soft);}
.stub-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.stub-subject{font-weight:700;font-size:14.5px;}
.stub-meta{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.stub-desc{font-size:13px;color:var(--ink-soft);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.pill-open{background:var(--warn-soft);color:var(--warn);}
.pill-progress{background:var(--info-soft);color:var(--info);}
.pill-waiting{background:var(--muted-soft);color:var(--ink-soft);}
.pill-resolved{background:var(--good-soft);color:var(--good);}
.pill-closed{background:var(--muted-soft);color:var(--muted);}
.pill-low{color:var(--ink-soft);} .pill-medium{color:var(--info);} .pill-high{color:var(--warn);} .pill-urgent{color:var(--danger);}
.empty{text-align:center;padding:50px 20px;color:var(--ink-soft);}
.empty .big{font-size:32px;margin-bottom:8px;}
.overlay{position:fixed;inset:0;background:rgba(27,36,48,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50;}
.modal{background:var(--surface);border-radius:14px;max-width:620px;width:100%;padding:26px;margin-bottom:40px;}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;}
.modal-head h3{margin:0;font-size:18px;}
.modal-id{font-family:var(--mono);font-size:12px;color:var(--ink-soft);margin-bottom:14px;}
.divider{border:none;border-top:1px solid var(--line);margin:18px 0;}
.comment{padding:11px 13px;border-radius:9px;margin-bottom:9px;font-size:13.5px;line-height:1.5;background:var(--bg);}
.comment.internal{background:var(--warn-soft);}
.comment-head{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);margin-bottom:4px;font-family:var(--mono);}
.client-search-result{padding:9px 11px;border:1px solid var(--line);border-radius:8px;margin-top:6px;cursor:pointer;font-size:13.5px;}
.client-search-result:hover{border-color:var(--accent);background:var(--accent-soft);}
.client-search-result .csr-name{font-weight:700;}
.client-search-result .csr-email{color:var(--ink-soft);font-size:12px;}
.client-row{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:9px;margin-bottom:8px;}
.client-row .cr-name{font-weight:700;font-size:14px;}
.client-row .cr-email{color:var(--ink-soft);font-size:12.5px;}
.src-tag{font-size:10.5px;font-family:var(--mono);color:var(--ink-soft);background:var(--muted-soft);padding:2px 7px;border-radius:5px;}
.checkbox-row{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--ink-soft);}
.checkbox-row input{width:auto;}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--muted-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;}
@keyframes spin{to{transform:rotate(360deg);}}
@media (max-width:720px){
  .sidenav{width:64px;padding:14px 6px;} .nav-item{text-align:center;font-size:11px;padding:8px 4px;} .nav-badge{display:none;}
  .main{padding:18px 14px;} .stub-side{width:86px;} .ticket-stub::before,.ticket-stub::after{left:calc(100% - 86px - 6px);}
}
