*{box-sizing:border-box}
body{margin:0;font-family:var(--font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);background:var(--bg);color:var(--text)}
button,input,textarea,select{font:inherit}
.hidden{display:none!important}
input,textarea,select{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;background:var(--card)}
textarea{min-height:84px;resize:vertical}
.primary,.danger,.secondary{border-radius:var(--radius-md);padding:11px 14px;cursor:pointer;font-weight:700;min-height:var(--tap-min)}
.primary{border:0;background:var(--primary-gradient);color:var(--on-accent,#fff)}
.danger{border:0;background:linear-gradient(180deg,color-mix(in srgb,var(--danger) 96%,#fff 4%),var(--danger));color:var(--on-accent,#fff)}
.secondary{border:1px solid var(--border);background:var(--card);color:var(--text)}
.error{color:var(--danger);font-size:13px;margin-top:8px}
.success{color:var(--ok-t);font-size:13px;margin-top:8px}
.loading{color:var(--muted);font-size:13px}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:20px}
.login-card{width:min(520px,100%);background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius-xl);padding:28px;box-shadow:var(--shadow-raised),var(--highlight-top)}
.login-title{margin:0;font-size:30px;text-align:center;letter-spacing:-.03em}
.login-subtitle{margin:8px 0 22px;color:var(--muted);text-align:center}
.login-card>.auth-form-copy{margin:8px 0 20px}
.auth-tabs,.segmented-control,.meeting-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-soft) 46%,var(--card));box-shadow:var(--inset-recess)}
.auth-tabs{margin-bottom:18px}
.auth-tab,.meeting-mode-switch button,.segmented-control .view-btn{border:0;background:transparent;border-radius:calc(var(--radius-md) - 3px);padding:10px;cursor:pointer;font-weight:700;color:var(--muted);min-height:var(--tap-min)}
.auth-tab.active,.meeting-mode-switch button.active,.segmented-control .view-btn.active{background:var(--card);color:var(--text);box-shadow:var(--highlight-top),var(--shadow-micro)}
.meeting-mode-switch button{font-size:12px;padding:7px 13px}
.auth-form{display:grid;gap:10px}
.auth-form>.field-label{margin:6px 0 0;font-size:13px}
.hint{font-size:12px;color:var(--muted);line-height:1.4}
.login-brand{display:flex;justify-content:center;margin:-6px 0 10px}
.login-brand img{width:96px;height:96px;display:block}
.auth-link{border:0;background:transparent;color:var(--accent);padding:5px;cursor:pointer;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.auth-form-title{font-size:20px;margin:0;text-align:center}
.auth-form-copy{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 4px;text-align:center}

.legal-consent{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;color:var(--muted);cursor:pointer}
.legal-consent input{width:16px;height:16px;min-width:16px;margin:2px 0 0}
.legal-consent a,.legal-mini-links a,.app-legal-links a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.legal-mini-links{display:flex;justify-content:center;gap:7px;margin-top:16px;font-size:11px;color:var(--muted)}
.app-legal-links{position:fixed;bottom:7px;left:10px;z-index:15;display:flex;gap:6px;font-size:10px;opacity:.65}
.legal-modal{width:min(760px,calc(100vw - 24px));max-height:min(82vh,760px);overflow:hidden;display:flex;flex-direction:column}
.legal-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.legal-modal-head h2{margin:0}
.legal-close{padding:7px 10px}
.legal-tabs{display:grid;gap:8px;margin:12px 0}
.legal-tabs button{border:1px solid color-mix(in srgb,var(--border) 75%,transparent);background:color-mix(in srgb,var(--card) 88%,transparent);color:var(--text);border-radius:14px;padding:11px 12px;cursor:pointer;font-size:13px;font-weight:700;text-align:right;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.legal-tabs button.active{background:var(--card);border-color:color-mix(in srgb,var(--accent) 34%,var(--border));box-shadow:0 2px 8px rgba(79,67,43,.08),inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,var(--border))}
.legal-tabs button:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 20%,var(--border))}
.legal-body{overflow:auto;border-top:1px solid var(--hairline);padding-top:12px;font-size:13px;line-height:1.65}
.legal-body h3{font-size:15px;margin:16px 0 5px}
.legal-body p{margin:0 0 9px}
.legal-body ul{margin:0 0 10px;padding-inline-start:1.2em}
.legal-body li{margin:0 0 5px}
.legal-body code{font-size:.82em;word-break:break-all;background:color-mix(in srgb,var(--accent-soft) 55%,var(--card));padding:1px 5px;border-radius:6px}
.legal-body .legal-note{font-size:12px;color:var(--muted)}
@media(max-width:600px){
  .app-legal-links{position:static;justify-content:center;margin:8px 0 2px}
  .legal-modal{max-height:88vh}
  .legal-tabs{display:grid;grid-template-columns:1fr}
  .legal-tabs button{width:100%;min-height:var(--tap-min)}
}
