:root{--bg:#faf8f6;--bg-raised:#fff;--bg-elevated:#f4efea;--border:#ece5de;--border-strong:#d8cec3;--ink:#1f1a1f;--ink-muted:#5f5358;--ink-subtle:#6f6570;--brand:#8d3366;--brand-dim:#732a55;--brand-soft:#f5e6ee;--navy:#1b3f61;--navy-deep:#052b54;--navy-soft:#e6ecf2;--gold:#e8a942;--gold-bright:#f5c456;--gold-soft:#f7ecd2;--good:#2d8466;--good-soft:#e0f0e8;--warn:#c08a2e;--warn-soft:#f7eedc;--danger:#b8423d;--danger-soft:#f8e3e2;--radius:10px;--shadow:0 1px 2px rgba(31,26,31,.05),0 1px 3px rgba(31,26,31,.04);--font:"Inter",system-ui,-apple-system,sans-serif;--display:"Oswald","Inter",sans-serif;--sidebar-w:236px;--topbar-h:54px;--color-primary:var(--brand);--color-primary-hover:var(--brand-dim);--color-text-primary:var(--ink);--color-text-secondary:var(--ink-muted);--color-text-muted:var(--ink-subtle);--color-bg-page:var(--bg);--color-bg-card:var(--bg-raised);--color-border:var(--border)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-dim)}h1,h2,h3,h4{margin:0 0 .4em;font-weight:600;color:var(--ink)}h1{font-family:var(--display);font-weight:500;font-size:1.55rem;letter-spacing:.01em}h2{font-size:1.15rem}h3{font-size:1rem}.display{font-family:var(--display);font-weight:500;letter-spacing:.01em}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-subtle);font-weight:600}.small{font-size:.82rem}.muted,.small{color:var(--ink-muted)}.subtle{color:var(--ink-subtle)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}code{font-family:ui-monospace,JetBrains Mono,monospace;font-size:.85em;background:var(--bg-elevated);padding:1px 5px;border-radius:4px}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--navy-deep);color:#e9e4ea;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{padding:16px 16px 14px;border-bottom:1px solid hsla(0,0%,100%,.08)}.logo-card{background:#fff;border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:center}.logo-card img{max-width:150px;height:auto;display:block}.brand-tag{font-family:var(--display);font-size:1.05rem;color:#fff;margin-top:12px;letter-spacing:.02em}.brand-tag small{display:block;font-family:var(--font);font-size:.7rem;color:#a9b7c8;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}.sidebar-nav{padding:10px;display:flex;flex-direction:column;gap:2px;flex:1 1}.sidebar-nav a{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:7px;color:#d5cfd8;font-size:.9rem;font-weight:500}.sidebar-nav a:hover{background:hsla(0,0%,100%,.07);color:#fff}.sidebar-nav a.active{background:var(--brand);color:#fff}.nav-badge{font-size:.7rem;font-weight:700;background:var(--gold);color:var(--navy-deep);border-radius:999px;padding:1px 8px;min-width:22px;text-align:center}.sidebar-nav a.active .nav-badge{background:#fff;color:var(--brand)}.sidebar-section{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:#8b9bb0;padding:14px 12px 4px}.sidebar-foot{padding:12px 16px;font-size:.7rem;color:#8b9bb0;border-top:1px solid hsla(0,0%,100%,.08)}.main-col{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--bg-raised);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-title{font-family:var(--display);font-size:1.1rem;font-weight:500}.topbar-user{display:flex;align-items:center;gap:12px;font-size:.86rem;color:var(--ink-muted)}.role-chip{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;background:var(--brand-soft);color:var(--brand);padding:3px 8px;border-radius:999px}.nav-toggle{background:none;border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:1rem;cursor:pointer}.nav-toggle,.sidebar-overlay{display:none}.page{padding:22px 26px 60px;max-width:1500px;width:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.page-header p{margin:4px 0 0;color:var(--ink-muted)}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{padding:13px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-size:.95rem;font-weight:600;margin:0}.card-subtitle{font-size:.8rem;color:var(--ink-subtle);margin:2px 0 0}.card-body{padding:18px}.card-body.tight{padding:0;overflow-x:auto}.card,.grid>*{min-width:0}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.kpi.accent{border-left:3px solid var(--brand)}.kpi-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--ink-subtle)}.kpi-value{font-family:var(--display);font-size:1.8rem;font-weight:500;margin-top:2px;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-sub{font-size:.78rem;color:var(--ink-muted);margin-top:4px}.data-table,.table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th,.table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--ink-subtle);white-space:nowrap}.data-table td,.data-table th,.table td,.table th{padding:10px 14px;border-bottom:1px solid var(--border)}.data-table td,.table td{color:var(--ink-muted);vertical-align:top}.data-table tbody tr:hover,.table tbody tr:hover{background:var(--bg-elevated)}.pill{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.pill.brand{background:var(--brand-soft);color:var(--brand)}.pill.navy{background:var(--navy-soft);color:var(--navy)}.pill.gold{background:var(--gold-soft);color:#8a5d12}.pill.green{background:var(--good-soft);color:var(--good)}.pill.yellow{background:var(--warn-soft);color:var(--warn)}.pill.red{background:var(--danger-soft);color:var(--danger)}.pill.gray{background:var(--bg-elevated);color:var(--ink-subtle);border-color:var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand);color:#fff;border:none;padding:8px 15px;border-radius:7px;font-size:.88rem;font-weight:600;cursor:pointer;font-family:var(--font);line-height:1.2}.btn:hover{background:var(--brand-dim);color:#fff}.btn.secondary{background:var(--bg-raised);color:var(--ink);border:1px solid var(--border-strong)}.btn.secondary:hover{background:var(--bg-elevated)}.btn.navy{background:var(--navy)}.btn.navy:hover{background:var(--navy-deep)}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;color:var(--ink-muted);border:1px solid transparent}.btn.ghost:hover{background:var(--bg-elevated);color:var(--ink)}.btn.small{padding:5px 10px;font-size:.8rem}.btn:disabled{opacity:.55;cursor:not-allowed}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-muted);margin-bottom:6px}.form-input,select.form-input,textarea.form-input{width:100%;border:1px solid var(--border-strong);border-radius:7px;padding:9px 11px;font-size:.92rem;font-family:var(--font);background:#fff;color:var(--ink)}.form-input:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}textarea.form-input{min-height:160px;line-height:1.55;resize:vertical}.form-error{background:var(--danger-soft);color:var(--danger)}.form-error,.form-ok{padding:10px 12px;border-radius:7px;font-size:.86rem;margin-top:12px}.form-ok{background:var(--good-soft);color:var(--good)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(160deg,var(--navy-deep) 0,var(--navy) 55%,var(--brand-dim) 100%)}.login-card{width:100%;max-width:400px;background:#fff;border-radius:14px;padding:34px 32px;box-shadow:0 20px 50px rgba(5,43,84,.35)}.login-brand{font-family:var(--display);font-size:1.5rem;color:var(--navy-deep)}.login-sub{color:var(--ink-muted);font-size:.9rem;margin:4px 0 20px}.login-field{margin-bottom:14px}.mail{display:grid;grid-template-columns:380px minmax(0,1fr) 300px;height:calc(100vh - var(--topbar-h))}.mail-list{border-right:1px solid var(--border);background:var(--bg-raised);display:flex;flex-direction:column;min-height:0}.mail-read{min-width:0;overflow-y:auto;background:var(--bg)}.mail-side{border-left:1px solid var(--border);background:var(--bg-raised);overflow-y:auto;padding:16px}.list-head{padding:12px 14px 8px;border-bottom:1px solid var(--border)}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tab{border:1px solid transparent;background:transparent;padding:5px 10px;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--ink-muted);cursor:pointer;font-family:var(--font)}.tab:hover{background:var(--bg-elevated)}.tab.active{background:var(--brand-soft);color:var(--brand);border-color:#ead4e0}.tab .n{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.8;margin-left:4px}.filters{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.chip{font-size:.74rem;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;color:var(--ink-muted);cursor:pointer;font-family:var(--font)}.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.rows{overflow-y:auto;flex:1 1;min-height:0}.row{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:11px 14px;cursor:pointer;font-family:var(--font);color:var(--ink)}.row:hover{background:var(--bg-elevated)}.row.active{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.row-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.row-from{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-when{font-size:.72rem;color:var(--ink-subtle);white-space:nowrap}.row-subj{font-size:.86rem;margin-top:2px}.row-subj,.row-sum{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sum{font-size:.8rem;color:var(--ink-muted);margin-top:3px}.row-meta{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}.mbx{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;background:var(--navy-soft);color:var(--navy)}.mbx.shared{background:var(--gold-soft);color:#8a5d12}.empty{padding:40px 20px;text-align:center;color:var(--ink-subtle)}.read-wrap{padding:22px 26px 60px;max-width:900px}.read-head h2{font-family:var(--display);font-weight:500;font-size:1.3rem}.read-meta{font-size:.82rem;color:var(--ink-muted);display:flex;flex-direction:column;gap:2px;margin:6px 0 14px}.draft-box{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.draft-head{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.draft-body textarea{border:0;border-radius:0 0 var(--radius) var(--radius);min-height:260px;font-size:.95rem;line-height:1.6;padding:16px;font-family:var(--font)}.draft-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);align-items:center;flex-wrap:wrap}.original{margin-top:18px}.original pre{white-space:pre-wrap;font-family:var(--font);font-size:.9rem;line-height:1.55;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--ink-muted);max-height:420px;overflow:auto}.side-block{margin-bottom:18px}.side-block h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-subtle);margin-bottom:8px}.side-kv{font-size:.84rem;display:grid;grid-template-columns:auto 1fr;grid-gap:4px 10px;gap:4px 10px}.side-kv dt{color:var(--ink-subtle)}.side-kv dd{margin:0;color:var(--ink)}.hist{border-left:2px solid var(--gold);padding:6px 10px;margin-bottom:10px;font-size:.8rem;color:var(--ink-muted)}.hist b{color:var(--ink);display:block;font-size:.78rem}.lint-ok{color:var(--good)}.lint-warn{color:var(--warn)}.connect-hero{background:linear-gradient(135deg,var(--navy-deep),var(--navy));color:#fff;border-radius:14px;padding:28px 30px;margin-bottom:20px}.connect-hero h1{color:#fff}.connect-hero p{color:#cbd5e1;max-width:640px}.steps{display:grid;grid-gap:10px;gap:10px}.step{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised)}.step .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:700;background:var(--bg-elevated);color:var(--ink-subtle);flex-shrink:0}.step.doing .dot{background:var(--gold);color:var(--navy-deep);animation:pulse 1.4s ease-in-out infinite}.step.done .dot{background:var(--good);color:#fff}.step.error .dot{background:var(--danger);color:#fff}.step .t{font-weight:600}.step .d{font-size:.8rem;color:var(--ink-muted)}.bar{height:8px;background:var(--bg-elevated);border-radius:999px;overflow:hidden;margin-top:6px}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--gold));transition:width .6s ease}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.consent{background:var(--gold-soft);border:1px solid #f0d9a6;border-radius:10px;padding:14px 16px;font-size:.88rem;color:#5a4a20}@media (max-width:1100px){.mail{grid-template-columns:320px minmax(0,1fr)}.mail-side{display:none}}@media (max-width:760px){.sidebar{display:none}.nav-toggle{display:inline-block}.sidebar.open{display:flex;position:fixed;z-index:30}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:25}.mail{grid-template-columns:1fr;height:auto}.mail-list{max-height:45vh}.page{padding:14px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}