/* OLED access workspace. Component rules stay scoped to .access-page. */
.access-page {
  --a-bg:#080808; --a-panel:#121212; --a-text:#f5f5f5; --a-muted:#a3a3a3;
  --a-line:#303030; --a-accent:#8ddbc4; --a-accent-hover:#adebd8;
  --a-danger:#f0a0a6; --a-radius:14px;
  background:var(--a-bg); background-image:none; color:var(--a-text); margin:0;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  font-size:15px; line-height:1.6; padding-bottom:calc(32px + env(safe-area-inset-bottom, 0px)); color-scheme:dark; -webkit-font-smoothing:antialiased;
}
.access-page *, .access-page *::before, .access-page *::after { box-sizing:border-box; }
.access-page [hidden] { display:none !important; }
.access-page a { color:var(--a-accent); text-decoration:none; }
.access-page a:hover { text-decoration:underline; }
.access-page :is(button,input,select,textarea,summary,a):focus-visible { outline:3px solid #8ddbc4; outline-offset:3px; }
.access-page button, .access-page input, .access-page select { font:inherit; }
.access-page button, .access-page summary { cursor:pointer; }
.access-page button:disabled { opacity:.5; cursor:not-allowed; }
.access-page .console-header { background:#121212; border-bottom:1px solid var(--a-line); padding:18px 24px 0; box-shadow:none; backdrop-filter:none; }
.access-page .console-top { max-width:1120px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.access-page .console-brand { display:flex; align-items:center; gap:10px; color:var(--a-text); }
.access-page .console-brand:hover { text-decoration:none; }
.access-page .console-brand strong { display:block; font-size:17px; letter-spacing:-.4px; }
.access-page .console-mark, .access-page .a-mark { width:38px; height:38px; display:grid; place-items:center; flex-shrink:0; border-radius:11px; background:var(--a-accent); color:#08110e; font-size:23px; font-weight:750; }
.access-page .console-domain { color:var(--a-muted); font-size:12px; }
.access-page .console-account { display:flex; align-items:center; gap:18px; }
.access-page .console-mode { font-size:12px; color:var(--a-muted); }
.access-page .console-logout { border:1px solid var(--a-line); padding:7px 12px; border-radius:8px; background:#121212; color:var(--a-text); font-size:13px; }
.access-page .console-nav { display:flex; gap:6px; max-width:1120px; margin:18px auto 0; overflow-x:auto; padding:0 0 10px; }
.access-page .console-nav a { padding:9px 14px; border-radius:8px; color:var(--a-muted); font-size:14px; font-weight:550; white-space:nowrap; }
.access-page .console-nav a.is-active { background:#192923; color:var(--a-accent); }
.access-page .console-main { max-width:1168px; margin:auto; padding:32px 24px; }
.access-page .flash { padding:14px 16px; border-radius:10px; box-shadow:none; color:var(--a-text); font-size:14px; }
.access-page .flash.ok { color:#bfdfce; background:#15251d; border:1px solid #365344; }
.access-page .flash.err { color:#f0b4b9; background:#29191b; border:1px solid #543438; }
.access-page .flash button { color:inherit; }
.access-page .a-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin:0 0 24px; }
.access-page .a-eyebrow { margin:0 0 6px; font-size:12px; font-weight:700; letter-spacing:.07em; color:var(--a-accent); }
.access-page h1 { margin:0; font-size:30px; line-height:1.35; font-weight:730; letter-spacing:-.7px; }
.access-page h2 { margin:0; font-size:19px; line-height:1.45; font-weight:680; }
.access-page h3 { margin:0; font-size:16px; font-weight:680; }
.access-page p { margin:0; }
.access-page .a-description { color:var(--a-muted); margin-top:8px; max-width:720px; }
.access-page .a-muted { color:var(--a-muted); }
.access-page .a-small { font-size:13px; line-height:1.65; }
.access-page .a-stack { display:grid; gap:18px; }
.access-page .a-grid { min-width:0; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:22px; align-items:start; }
.access-page .a-card { background:var(--a-panel); border:1px solid var(--a-line); border-radius:var(--a-radius); padding:26px; min-width:0; }
.access-page .a-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.access-page .a-card-head p { color:var(--a-muted); font-size:13px; margin-top:5px; }
.access-page .a-badge { display:inline-flex; align-items:center; border:1px solid #365344; background:#15251d; color:#bfdfce; border-radius:999px; padding:3px 10px; white-space:normal; overflow-wrap:anywhere; max-width:100%; font-size:12px; font-weight:650; }
.access-page .a-badge.warn { background:#282116; border-color:#51432d; color:#e8cca0; }
.access-page .a-badge.neutral { background:#1b1b1b; border-color:#383838; color:#c2c2c2; }
.access-page .a-badge.danger { background:#29191b; border-color:#543438; color:#efb2b7; }
.access-page .a-note { background:#14231e; border:1px solid #304f41; border-radius:10px; padding:13px 16px; color:#bfd7cc; font-size:13px; }
.access-page .a-note.warn { background:#252016; border-color:#4b402d; color:#dec99e; }
.access-page .a-note.error { background:#29191b; border-color:#543438; color:#f0b4b9; }
.access-page .a-note strong { font-weight:700; }
.access-page .a-form { display:grid; gap:19px; }
.access-page .a-field { display:grid; gap:7px; min-width:0; }
.access-page .a-field label, .access-page .a-label { font-size:14px; font-weight:650; }
.access-page .a-field :is(input:not([type=hidden]),select,textarea) { width:100%; min-height:46px; border:1px solid #727272; border-radius:8px; color:var(--a-text); padding:10px 12px; background:#0c0c0c; font-size:16px; line-height:1.4; }
.access-page .a-field input[readonly] { color:var(--a-muted); background:#191919; }
.access-page .a-field input::placeholder { color:#8b8b8b; }
.access-page .a-field .a-code { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:23px; letter-spacing:.25em; }
.access-page .a-field .a-help { color:var(--a-muted); font-size:12px; }
.access-page .a-fields-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.access-page .a-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.access-page .a-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 16px; border:1px solid var(--a-accent); border-radius:8px; font-size:14px; line-height:1.45; font-weight:650; text-align:center; text-decoration:none; background:var(--a-accent); color:#08110e; }
.access-page .a-button:hover { background:var(--a-accent-hover); text-decoration:none; color:#08110e; }
.access-page .a-button.secondary { color:var(--a-accent); border-color:#414141; background:#121212; }
.access-page .a-button.secondary:hover { background:#222222; }
.access-page .a-button.danger { color:#efb2b7; border-color:#624044; background:#121212; }
.access-page .a-button.danger:hover { background:#301c1f; }
.access-page .a-button.full { width:100%; }
.access-page .a-button.compact { min-height:44px; padding:9px 12px; font-size:13px; }
.access-page .a-separator { border:0; border-top:1px solid var(--a-line); margin:3px 0; }
.access-page .a-summary { display:flex; flex-wrap:wrap; gap:24px; margin:18px 0 0; }
.access-page .a-summary div { min-width:100px; }
.access-page .a-summary dt { color:var(--a-muted); font-size:12px; }
.access-page .a-summary dd { margin:4px 0 0; font-weight:650; font-size:15px; }
.access-page .a-table-scroll { max-width:100%; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; border:1px solid var(--a-line); border-radius:10px; }
.access-page .a-table { width:100%; min-width:620px; border-collapse:collapse; font-size:13px; text-align:left; }
.access-page .a-table th { font-weight:600; color:var(--a-muted); background:#181818; }
.access-page .a-table th, .access-page .a-table td { padding:12px; border-bottom:1px solid var(--a-line); vertical-align:top; }
.access-page .a-table tr:last-child td { border-bottom:0; }
.access-page .a-table td { overflow-wrap:anywhere; }
.access-page .a-empty { padding:30px 16px; border:1px dashed #444444; border-radius:10px; text-align:center; color:var(--a-muted); }
.access-page .a-empty h3 { color:var(--a-text); margin-bottom:6px; }
.access-page .a-filters { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.access-page .a-filters .a-field { flex:1; min-width:150px; }
.access-page .a-list { display:grid; gap:16px; }
.access-page .a-invite { border:1px solid var(--a-line); border-radius:12px; padding:20px; }
.access-page .a-invite .a-card-head { margin-bottom:10px; }
.access-page .a-secret { margin-top:16px; border-top:1px solid var(--a-line); padding-top:14px; }
.access-page .a-secret summary { min-height:44px; padding-block:8px; color:var(--a-accent); font-size:14px; font-weight:650; }
.access-page .a-secret[open] summary { margin-bottom:12px; }
.access-page .a-secret-value { overflow-wrap:anywhere; background:#0c0c0c; border:1px solid #343434; padding:12px; border-radius:8px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:13px; margin:8px 0; user-select:all; }
.access-page .a-login { width:100%; max-width:440px; margin:5vh auto 0; }
.access-page .a-login-brand { display:flex; align-items:center; gap:12px; margin-bottom:30px; }
.access-page .a-login-brand strong { display:block; font-size:18px; }
.access-page .a-login .a-card { padding:30px; }
.access-page .a-login h1 { font-size:26px; }
.access-page .a-login-footer { text-align:center; font-size:12px; color:var(--a-muted); margin-top:20px; }
.access-page .a-public { max-width:650px; margin:0 auto; padding:42px 20px; }
.access-page .a-public .a-heading { margin-top:24px; }
.access-page .a-step { font-size:12px; color:var(--a-accent); font-weight:650; margin-bottom:8px; }
.access-page .a-feedback { font-size:12px; color:var(--a-accent); min-height:20px; }
.access-page .a-event { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:13px 0; border-bottom:1px solid var(--a-line); font-size:13px; }
.access-page .a-event:last-child { border-bottom:0; }
.access-page .a-event time { color:var(--a-muted); font-size:12px; }
.access-page .a-wordbreak { overflow-wrap:anywhere; }
@media (max-width:700px) {
  .access-page .console-header { padding:14px 16px 0; }
  .access-page .console-account { gap:10px; }
  .access-page .console-mode { max-width:100px; font-size:11px; }
  .access-page .console-main { padding:25px 16px; }
  .access-page .console-nav { margin-top:14px; }
  .access-page .console-nav a { padding:8px 11px; font-size:13px; }
  .access-page .a-grid { grid-template-columns:minmax(0,1fr); }
  .access-page .a-heading { flex-direction:column; gap:14px; margin-bottom:20px; }
  .access-page h1 { font-size:25px; }
  .access-page .a-card { padding:20px; }
  .access-page .a-card-head { flex-wrap:wrap; }
  .access-page .a-fields-row { grid-template-columns:minmax(0,1fr); }
  .access-page .a-summary { gap:15px 22px; }
  .access-page .a-login { margin-top:18px; }
  .access-page .a-login .a-card { padding:24px 20px; }
  .access-page .a-public { padding:28px 16px; }
  .access-page .a-invite { padding:16px; }
  .access-page .a-filters .a-button { width:100%; }
  .access-page .a-actions > .a-button { flex-grow:1; }
}
@media (prefers-reduced-motion:reduce) { .access-page * { scroll-behavior:auto !important; transition:none !important; } }
@media (max-width:700px) { .access-page [data-invitations-grid] { grid-template-columns:minmax(0,1fr) !important; } }

/* Phone layout is structural: content wraps, only tables and navigation scroll. */
.access-page :is(.a-grid,.a-stack,.a-list,.a-form,.a-heading,.a-card-head,.a-event,.a-summary,.a-actions) > * { min-width:0; }
.access-page :is(.a-description,.a-note,.a-help,.a-event,.a-summary dd,.a-card-head h3) { overflow-wrap:anywhere; }
.access-page .a-actions .a-button { white-space:normal; }
.access-page .a-field :is(input,select,textarea):focus { border-color:var(--a-accent); }
.access-page .a-public { padding-top:calc(36px + env(safe-area-inset-top, 0px)); padding-left:max(20px, env(safe-area-inset-left, 0px)); padding-right:max(20px, env(safe-area-inset-right, 0px)); }
.access-page .a-login-brand, .access-page .a-heading { overflow-wrap:anywhere; }
.access-page .a-card-head .a-badge { align-self:flex-start; }
.access-page .a-event { flex-wrap:wrap; }
@media (max-width:600px) {
  .access-page .a-card { padding:20px 18px; }
  .access-page .a-login .a-card { padding:24px 18px; }
  .access-page .a-login { margin-top:8px; }
  .access-page .a-heading h1 { font-size:26px; line-height:1.4; }
  .access-page .a-public { padding-top:calc(24px + env(safe-area-inset-top, 0px)); padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); }
  .access-page .a-summary { gap:16px; }
  .access-page .a-summary > div { flex:1 1 130px; }
  .access-page .a-summary dd { font-size:14px; }
  .access-page .a-invite { padding:18px 16px; }
  .access-page .a-filters .a-field { min-width:0; flex-basis:100%; }
  .access-page .a-secret-value { font-size:13px; line-height:1.7; }
  .access-page .a-button { padding-inline:14px; }
}
@media (max-height:500px) and (orientation:landscape) {
  .access-page .a-login { margin-top:0; max-width:560px; }
  .access-page .a-login-brand { margin-bottom:16px; }
  .access-page .a-public { padding-top:20px; }
  .access-page .a-heading { margin-top:0; }
  .access-page .a-login .a-card { padding:22px; }
}
