:root { --page:#f5f6f4; --surface:#fff; --ink:#202124; --soft:#626967; --muted:#969c99; --line:#dedfda; --orange:#ed7c22; --orange-soft:#fff2e8; --green:#138a65; --red:#c84f4f; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html,body { min-height:100%; }
body { margin:0; color:var(--ink); background:var(--page); font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif; letter-spacing:0; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.auth-layout { min-height:100vh; display:grid; grid-template-columns:minmax(320px,420px) minmax(0,1fr); }
.auth-panel { min-height:100vh; padding:38px 48px; display:flex; flex-direction:column; background:var(--surface); border-right:1px solid var(--line); }
.auth-brand { display:flex; align-items:center; gap:13px; }
.auth-brand img { width:82px; height:52px; object-fit:contain; }
.auth-brand-copy { padding-left:13px; border-left:1px solid var(--line); }
.auth-brand-copy strong { display:block; font-size:14px; }
.auth-brand-copy span { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.auth-main { width:100%; max-width:320px; margin:auto 0; }
.auth-main h1 { margin:0; font-size:27px; line-height:1.3; }
.auth-subtitle { margin:10px 0 25px; color:var(--soft); font-size:13px; line-height:1.7; }
.field { display:grid; gap:7px; margin-top:15px; }
.field span { color:var(--soft); font-size:12px; font-weight:650; }
.field input,.field select { width:100%; height:42px; padding:0 11px; border:1px solid var(--line); border-radius:6px; outline:0; color:var(--ink); background:#fff; }
.field input:focus,.field select:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(237,124,34,.12); }
.primary-button { width:100%; height:42px; margin-top:22px; border:0; border-radius:6px; color:#fff; background:var(--orange); font-weight:750; }
.primary-button:hover { background:#da6d19; }
.primary-button:disabled { opacity:.6; cursor:wait; }
.form-error { min-height:20px; margin:11px 0 0; color:var(--red); font-size:12px; line-height:1.6; }
.password-hint { margin:9px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.auth-footer { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:11px; }
.auth-footer a { color:var(--soft); text-decoration:none; }
.auth-scene { min-height:100vh; padding:64px; display:flex; align-items:flex-end; background:#eef1ef; }
.scene-copy { max-width:670px; }
.scene-kicker { color:var(--green); font-size:12px; font-weight:800; }
.scene-copy h2 { max-width:620px; margin:13px 0 16px; font-size:38px; line-height:1.28; }
.scene-copy p { max-width:580px; margin:0; color:var(--soft); font-size:14px; line-height:1.9; }

.admin-shell { min-height:100vh; background:var(--page); }
.admin-topbar { height:64px; padding:0 30px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:#fff; }
.admin-title { display:flex; align-items:center; gap:12px; }
.admin-title img { width:62px; height:40px; object-fit:contain; }
.admin-title strong { padding-left:12px; border-left:1px solid var(--line); font-size:15px; }
.admin-actions { display:flex; align-items:center; gap:12px; color:var(--soft); font-size:12px; }
.secondary-button,.small-button { border:1px solid var(--line); border-radius:5px; color:var(--ink); background:#fff; }
.secondary-button { height:34px; padding:0 12px; }
.small-button { min-height:29px; padding:0 9px; font-size:12px; }
.small-button.danger { color:var(--red); }
.admin-content { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:28px 0 50px; }
.admin-heading h1 { margin:0; font-size:24px; }
.admin-heading p { margin:8px 0 0; color:var(--soft); font-size:13px; }
.admin-tabs { display:flex; gap:2px; margin:25px 0 18px; border-bottom:1px solid var(--line); }
.admin-tab { padding:10px 15px; border:0; border-bottom:2px solid transparent; color:var(--soft); background:transparent; font-weight:700; }
.admin-tab.active { color:var(--ink); border-bottom-color:var(--orange); }
.admin-section[hidden] { display:none; }
.section-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; }
.section-toolbar h2 { margin:0; font-size:17px; }
.toolbar-primary { width:auto; height:36px; margin:0; padding:0 16px; }
.inline-form { display:flex; align-items:flex-end; flex-wrap:wrap; gap:9px; }
.inline-form .field { min-width:160px; margin:0; }
.inline-form .field input,.inline-form .field select { height:36px; }
.inline-form .primary-button { width:auto; height:36px; margin:0; padding:0 15px; }
.data-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:7px; background:#fff; }
.data-table { width:100%; border-collapse:collapse; font-size:13px; }
.data-table th,.data-table td { padding:12px 14px; border-bottom:1px solid #ecece8; text-align:left; white-space:nowrap; }
.data-table th { color:var(--muted); background:#fafaf8; font-size:12px; }
.data-table tr:last-child td { border-bottom:0; }
.status-dot { display:inline-flex; align-items:center; gap:6px; }
.status-dot::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--green); }
.status-dot.off::before { background:var(--muted); }
.row-actions { display:flex; gap:6px; }
.assignment-select { min-width:190px; height:32px; padding:0 8px; border:1px solid var(--line); border-radius:5px; background:#fff; }
.agent-settings-table td { vertical-align:top; }
.agent-description-editor { display:flex; align-items:flex-end; gap:8px; min-width:360px; }
.agent-description-input { width:100%; min-width:280px; max-width:560px; padding:8px 10px; resize:vertical; border:1px solid var(--line); border-radius:5px; color:var(--ink); background:#fff; line-height:1.5; }
.agent-description-input:focus { outline:0; border-color:var(--orange); box-shadow:0 0 0 3px rgba(237,124,34,.12); }
.activity-detail { max-width:520px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.activity-table th,.activity-table td { white-space:nowrap; }
.admin-empty { padding:30px; color:var(--muted); text-align:center; }
.admin-message { min-height:20px; margin:10px 0; color:var(--red); font-size:12px; }
.admin-login { width:340px; margin:auto; }
.admin-login-wrap { min-height:100vh; display:grid; padding:30px; }
dialog { width:min(420px,calc(100% - 30px)); padding:0; border:1px solid var(--line); border-radius:8px; box-shadow:0 22px 70px rgba(0,0,0,.2); }
dialog::backdrop { background:rgba(25,29,28,.45); }
.dialog-content { padding:22px; }
.dialog-content h2 { margin:0 0 8px; font-size:18px; }
.dialog-content .auth-subtitle { margin-bottom:18px; }
.field-hint { margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }
.dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.dialog-actions .primary-button { width:auto; height:36px; margin:0; padding:0 14px; }
@media (max-width:800px) { .auth-layout { grid-template-columns:1fr; } .auth-panel { padding:28px 24px; } .auth-scene { display:none; } .section-toolbar { align-items:flex-start; flex-direction:column; } .admin-content { width:calc(100% - 28px); } }
