:root{--bg:#eef2f7;--bg-deep:#dce6f1;--surface:#ffffff;--surface-soft:#f8fbff;--border:#d4e0ee;--text:#172232;--muted:#5d6d82;--accent:#0e5aa7;--accent-soft:#e7f1fd;--danger:#b63a4d;--danger-soft:#fdeef1;--shadow:0 18px 44px rgba(13,35,64,0.08)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:radial-gradient(circle at top right,rgba(20,89,173,.15),transparent 30%),radial-gradient(circle at bottom left,rgba(15,113,136,.14),transparent 26%),linear-gradient(145deg,var(--bg) 0,var(--bg-deep) 100%);color:var(--text);font-family:Manrope,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);padding:.66rem .75rem}button{border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;padding:.62rem .95rem;cursor:pointer;transition:opacity .14s ease}button:disabled{cursor:not-allowed;opacity:.55}code{font-size:.82rem;background:#edf4fc;color:#1d3551;padding:.2rem .35rem;border-radius:.45rem;word-break:break-word}code,pre{font-family:IBM Plex Mono,SFMono-Regular,monospace}pre{margin:.5rem 0 0;max-height:220px;overflow:auto;border-radius:12px;border:1px solid var(--border);background:#f6f9fc;font-size:.8rem;padding:.6rem;white-space:pre-wrap}.field-label{color:var(--muted);display:block;font-size:.72rem;letter-spacing:.09em;margin-bottom:.35rem;text-transform:uppercase}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.auth-card{width:min(540px,calc(100vw - 2rem));border-radius:24px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);padding:1.4rem}.auth-brand{display:flex;align-items:center;gap:.85rem}.auth-logo{width:8.6rem;height:auto}.auth-card h1{margin:1rem 0 .8rem;font-family:Fraunces,Georgia,serif;font-size:clamp(1.5rem,4vw,2.15rem)}.auth-form{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:.75rem}.link-button{margin-top:.7rem;background:transparent;border:0;color:var(--accent);font-weight:700;padding:0}.inline-note{margin-top:.85rem;border-radius:12px;border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);padding:.68rem .75rem}.inline-note.danger{border-color:#f2c2cb;background:var(--danger-soft);color:var(--danger)}.portal-root{width:min(1500px,calc(100vw - 2rem));margin:1rem auto;display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:1rem;gap:1rem}.portal-content,.portal-sidebar{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.portal-sidebar{border-radius:22px;padding:1rem;position:-webkit-sticky;position:sticky;top:1rem;height:calc(100vh - 2rem);display:grid;grid-template-rows:auto auto 1fr;grid-gap:1rem;gap:1rem;align-content:start}.portal-brand{display:flex;align-items:center;gap:.75rem}.portal-logo{width:8.2rem;height:auto}.portal-brand-kicker{margin:0;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.portal-brand strong{font-size:1.1rem}.portal-nav{display:grid;grid-gap:.4rem;gap:.4rem}.portal-nav-item{border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);text-align:left;padding:.58rem .68rem;font-weight:700}.portal-nav-item.active,.portal-nav-item:hover{color:var(--text);border-color:var(--border);background:var(--surface-soft)}.portal-user-card{align-self:end;border-radius:16px;border:1px solid var(--border);background:var(--surface-soft);padding:.85rem}.portal-user-card p{margin:.28rem 0 0;color:var(--muted)}.portal-user-card strong{display:block}.portal-user-card button{margin-top:.8rem;width:100%}.portal-content{border-radius:22px;padding:1rem}.portal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.portal-header h1{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.45rem,3vw,2rem)}.banner{margin-top:.8rem;border-radius:14px;border:1px solid #c7dcf4;background:var(--accent-soft);color:#144172;padding:.72rem .8rem}.banner p{margin:.3rem 0 0}.banner.danger{border-color:#f2c2cb;background:var(--danger-soft);color:var(--danger)}.portal-section{margin-top:.9rem}.stack{display:grid;grid-gap:.9rem;gap:.9rem}.panel{border-radius:16px;border:1px solid var(--border);background:var(--surface);padding:.9rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.7rem}.panel-head h2{margin:0;font-size:1.08rem}.hint-chip{border-radius:999px;background:var(--accent-soft);color:#0e4a8a;font-size:.76rem;font-weight:700;padding:.2rem .55rem}.form-grid{display:grid;grid-gap:.75rem;gap:.75rem}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-two{grid-column:span 2}.action-row{margin-top:.72rem;display:flex;flex-wrap:wrap;gap:.45rem}.action-col,.customer-search-controls{display:flex;flex-wrap:wrap;gap:.38rem}.customer-search-controls input{min-width:14rem}button.secondary{background:#e8f1fa;color:#174674}button.danger{background:#c43f53}.table-wrap{overflow-x:auto}.table-wrap.nested{margin-top:.4rem}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e1e9f2;padding:.55rem .3rem;text-align:left;vertical-align:top}th{color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}td{font-size:.9rem}.table-note{margin:.25rem 0 0;color:var(--muted);font-size:.82rem}.message-card,.message-list{display:grid;grid-gap:.7rem;gap:.7rem}.message-card{border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);padding:.7rem}.message-actions{display:flex;flex-wrap:wrap;gap:.45rem}.single-send-form{display:grid;grid-gap:.45rem;gap:.45rem}.customer-list-summary{margin-top:.2rem}.checkbox-label{margin-top:.7rem;display:inline-flex;align-items:center;gap:.5rem;color:var(--muted)}.checkbox-label input{width:auto}@media (max-width:1220px){.portal-root{grid-template-columns:1fr}.portal-sidebar{position:static;height:auto;grid-template-rows:auto auto auto}.portal-user-card{align-self:auto}}@media (max-width:980px){.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.span-two{grid-column:span 2}}@media (max-width:700px){.portal-root{width:calc(100vw - 1rem);margin:.5rem auto}.portal-content,.portal-sidebar{border-radius:16px}.form-grid.three{grid-template-columns:1fr}.span-two{grid-column:span 1}td,th{min-width:7.4rem}}