:root{
  --bg:#000;
  --graphite:#3c3c3c;
  --surface:#111;
  --surface-2:#171717;
  --surface-3:#222;
  --gold:#f6c948;
  --gold-dark:#b98818;
  --text:#f3f3ef;
  --muted:#969696;
  --line:rgba(255,255,255,.10);
  --danger:#ff7676;
  --success:#72d9a5;
  --shadow:0 24px 80px rgba(0,0,0,.48);
  font-family:Inter,"Noto Sans",Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--graphite);color:var(--text)}
body{min-height:100dvh}
main{min-width:0}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;background:var(--gold);color:#000;padding:12px 18px;font-weight:800;text-decoration:none}
.skip-link:focus{top:16px}
.brand{display:inline-flex;align-items:baseline;color:#fff;text-decoration:none;font-weight:900;font-size:20px;letter-spacing:-.04em}
.brand__dr{font-size:14px;font-weight:500;color:#777;margin-right:4px}
.brand__pro{font-size:10px;letter-spacing:.05em;color:#000;background:var(--gold);padding:3px 7px;margin-left:7px;border-radius:3px}
.topbar{height:72px;background:#050505;border-bottom:1px solid rgba(246,201,72,.22);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,56px);position:relative;z-index:20}
.topbar__meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}
.secure-dot{width:8px;height:8px;background:var(--gold);box-shadow:0 0 14px rgba(246,201,72,.7);display:inline-block}
.ghost-btn{min-height:44px;border:1px solid var(--line);background:#141414;color:#bdbdbd;padding:10px 16px;font-weight:700;transition:.2s ease}
.ghost-btn:hover,.ghost-btn:focus-visible{color:var(--gold);border-color:rgba(246,201,72,.42);outline:none;box-shadow:0 0 24px rgba(246,201,72,.10)}
.page-shell{min-height:calc(100dvh - 72px);padding:clamp(20px,4vw,56px);position:relative;overflow:hidden}
.page-shell::before{content:"";position:fixed;inset:72px 0 0;pointer-events:none;background:radial-gradient(circle at 50% 0,rgba(246,201,72,.09),transparent 38%),radial-gradient(circle at 10% 80%,rgba(255,255,255,.035),transparent 32%)}
.login-layout{min-height:calc(100dvh - 184px);display:grid;place-items:center;position:relative;z-index:1}
.login-card{width:min(100%,560px);background:linear-gradient(145deg,#181818,#090909 58%,#030303);padding:clamp(28px,5vw,58px);box-shadow:var(--shadow),0 0 52px rgba(246,201,72,.09);clip-path:polygon(0 0,calc(100% - 38px) 0,100% 38px,100% 100%,38px 100%,0 calc(100% - 38px));border-top:1px solid rgba(246,201,72,.38)}
.eyebrow{margin:0 0 16px;color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.login-card h1{margin:0 0 14px;font-size:clamp(34px,7vw,62px);line-height:.95;letter-spacing:-.055em}
.lead{margin:0 0 34px;color:#aaa;line-height:1.65;font-size:15px;max-width:46ch}
.field{display:grid;gap:9px;margin-bottom:16px}
.field label{font-size:12px;color:#c8c8c8;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.field-label{font-size:12px;color:#c8c8c8;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.control{width:100%;min-height:54px;border:1px solid var(--line);background:#161616;color:#fff;padding:14px 16px;border-radius:0;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.control::placeholder{color:#666}
.control:focus{border-color:rgba(246,201,72,.42);background:#191919;box-shadow:0 0 0 3px rgba(246,201,72,.08),0 0 24px rgba(246,201,72,.08)}
.code-control{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-variant-numeric:tabular-nums}
.primary-btn{width:100%;min-height:56px;border:0;background:linear-gradient(180deg,#ffe18a,var(--gold) 56%,#d3a72b);color:#000;font-weight:900;padding:15px 22px;transition:transform .2s,box-shadow .2s;clip-path:polygon(0 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%)}
.primary-btn:hover,.primary-btn:focus-visible{transform:translateY(-2px);outline:none;box-shadow:0 14px 34px rgba(246,201,72,.22)}
.primary-btn:disabled{opacity:.5;cursor:wait;transform:none}
.form-error{min-height:22px;margin:12px 0 0;color:var(--danger);font-size:13px;line-height:1.45}
.form-success{min-height:22px;margin:12px 0 0;color:var(--success);font-size:13px;line-height:1.45}
.trust-note{display:flex;gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line);color:#858585;font-size:12px;line-height:1.55}
.trust-note svg{width:19px;min-width:19px;stroke:var(--gold);fill:none;stroke-width:1.7}

.chat-layout{width:100%;min-width:0;height:calc(100dvh - 72px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#080808;position:relative}
.chat-head{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px clamp(18px,4vw,52px);border-bottom:1px solid var(--line);background:linear-gradient(180deg,#151515,#0d0d0d)}
.chat-head__title{min-width:0}
.chat-head__title span{display:block;color:var(--gold);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:900;margin-bottom:6px}
.chat-head__title h1,.chat-head__title h2{margin:0;font-size:clamp(20px,3vw,30px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status{display:inline-flex;align-items:center;gap:8px;color:#999;font-size:12px;white-space:nowrap}
.status::before{content:"";width:7px;height:7px;background:var(--success);box-shadow:0 0 12px rgba(114,217,165,.55)}
.messages{width:100%;min-width:0;overflow-y:auto;padding:28px max(18px,calc((100% - 900px)/2));display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.empty-chat{margin:auto;text-align:center;max-width:420px;color:#777;line-height:1.65}
.empty-chat strong{display:block;color:#cfcfcf;font-size:20px;margin-bottom:8px}
.empty-chat--list{padding:42px 18px}
.message{max-width:min(76%,680px);padding:13px 16px 9px;background:#1b1b1b;border:1px solid rgba(255,255,255,.07);align-self:flex-start;clip-path:polygon(0 0,100% 0,100% 100%,10px 100%,0 calc(100% - 10px))}
.message--mine{align-self:flex-end;background:linear-gradient(145deg,#3c3215,#1b180f);border-color:rgba(246,201,72,.24);clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.message__body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;font-size:15px}
.message__meta{text-align:right;color:#737373;font-size:10px;margin-top:7px;font-variant-numeric:tabular-nums}
.composer{width:100%;min-width:0;padding:14px max(18px,calc((100% - 900px)/2)) 18px;border-top:1px solid var(--line);background:#0b0b0b}
.composer__row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.composer textarea{min-width:0;resize:none;min-height:52px;max-height:148px;line-height:1.45}
.send-btn{width:56px;height:52px;border:0;background:var(--gold);color:#000;display:grid;place-items:center;transition:.2s}
.send-btn:hover,.send-btn:focus-visible{background:#ffe083;box-shadow:0 0 24px rgba(246,201,72,.25);outline:none}
.send-btn:disabled{opacity:.45;cursor:wait}
.send-btn svg{width:22px;fill:none;stroke:currentColor;stroke-width:2}
.composer__hint{min-height:17px;margin-top:7px;color:#777;font-size:11px}

.doctor-shell{height:calc(100dvh - 72px);display:grid;grid-template-columns:minmax(300px,390px) 1fr;background:#080808}
.clients{border-right:1px solid var(--line);background:#111;display:grid;grid-template-rows:auto auto 1fr;min-height:0}
.clients__head{padding:24px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.clients__head h1{font-size:24px;margin:4px 0 0;letter-spacing:-.03em}
.clients__head p{margin:0;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.square-btn{width:46px;height:46px;border:1px solid rgba(246,201,72,.35);background:#181818;color:var(--gold);font-size:28px;line-height:1;transition:.2s}
.square-btn:hover,.square-btn:focus-visible{background:var(--gold);color:#000;outline:none}
.client-filter{padding:12px 16px;border-bottom:1px solid var(--line)}
.client-filter .control{min-height:44px}
.client-list{overflow-y:auto;padding:8px}
.client-card{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.06);background:transparent;color:inherit;text-align:left;padding:16px;display:grid;grid-template-columns:1fr auto;gap:8px;transition:.18s}
.client-card:hover,.client-card:focus-visible{background:#1a1a1a;outline:none}
.client-card.is-active{background:linear-gradient(90deg,rgba(246,201,72,.13),transparent);box-shadow:inset 3px 0 var(--gold)}
.client-card__name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-card__mode{color:#777;font-size:11px;margin-top:5px}
.client-card__preview{grid-column:1/-1;color:#8d8d8d;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{min-width:22px;height:22px;padding:0 7px;display:grid;place-items:center;background:var(--gold);color:#000;font-size:10px;font-weight:900;border-radius:20px}
.doctor-chat{min-width:0;display:grid;grid-template-rows:auto 1fr auto}
.doctor-empty{display:grid;place-items:center;text-align:center;color:#777;padding:40px}
.doctor-empty strong{display:block;color:#d0d0d0;font-size:24px;margin-bottom:9px}

.dialog-backdrop{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:20px;backdrop-filter:blur(6px)}
.dialog-backdrop[hidden]{display:none}
.dialog{width:min(100%,540px);background:#111;border-top:1px solid rgba(246,201,72,.48);padding:32px;box-shadow:var(--shadow);clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px))}
.dialog h2{font-size:30px;margin:0 0 9px}
.dialog>p{color:#888;line-height:1.55;margin:0 0 25px}
.dialog__actions{display:flex;gap:10px;margin-top:22px}
.dialog__actions .primary-btn{flex:1}
.generated-code{padding:22px;margin-top:20px;background:#050505;border:1px solid rgba(246,201,72,.25);text-align:center}
.generated-code b{display:block;font-size:clamp(20px,5vw,30px);letter-spacing:.12em;color:var(--gold);font-variant-numeric:tabular-nums;margin:8px 0 14px}
.generated-code p{color:#8c8c8c;font-size:12px;line-height:1.5;margin:0 0 12px}
.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mode-option{position:relative}
.mode-option input{position:absolute;opacity:0}
.mode-option span{min-height:48px;display:grid;place-items:center;border:1px solid var(--line);background:#171717;color:#aaa;font-weight:700}
.mode-option input:checked+span{color:var(--gold);border-color:rgba(246,201,72,.45);box-shadow:inset 0 0 22px rgba(246,201,72,.06)}
.mode-option input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}

@media(max-width:820px){
  .topbar{height:64px;padding:0 16px}.topbar__meta>span:not(.secure-dot){display:none}.topbar__meta{gap:6px}.topbar__meta .ghost-btn{min-height:38px;padding:8px 10px;font-size:11px}
  .page-shell{min-height:calc(100dvh - 64px);padding:18px}
  .chat-layout,.doctor-shell{height:calc(100dvh - 64px)}
  .doctor-shell{grid-template-columns:1fr}.clients{border-right:0}.doctor-chat{position:fixed;inset:64px 0 0;background:#080808;z-index:30}.doctor-chat[hidden]{display:none}
  .mobile-back{display:inline-flex!important}
  .message{max-width:88%}
}
@media(min-width:821px){.mobile-back{display:none!important}}
@media(max-width:520px){
  .login-card{padding:30px 22px;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px))}
  .chat-head{padding:15px 16px}.chat-head .ghost-btn{padding:9px 11px}.chat-head>.status{display:none}
  .messages{padding:18px 14px}.composer{padding:11px 12px calc(12px + env(safe-area-inset-bottom))}
  .message{max-width:92%}.message__body{font-size:14px}
  .dialog{padding:25px 19px}.dialog__actions{flex-direction:column}.mode-options{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
