:root{color-scheme:light;--bg: #f6f4fa;--surface: #ffffff;--surface-2: #efebf5;--border: #d9d3e3;--text: #1c1726;--muted: #5f5870;--accent: #582c83;--accent-contrast: #ffffff;--accent-hover: #46226a;--accent-soft: #ece4f5;--gold: #eaaa00;--gold-contrast: #1c1726;--gold-hover: #d19800;--ok: #1e7e34;--ok-bg: #e2f2e6;--warn: #8a6508;--warn-bg: #f8ecd4;--bad: #b3282d;--bad-bg: #f7dfe0;--info: #1f5fa8;--info-bg: #e0ebf8;--badge-bg: #ebe7f1;--nav-bg: #582c83;--nav-text: #e9e1f3;--nav-text-active: #ffffff;--nav-hover: #6a3a99;--nav-rule: #eaaa00;--focus-ring: #582c8355;--shadow: 0 4px 18px #2a153a22;--radius: 10px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--topbar-h: calc(56px + var(--safe-top));font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #14111a;--surface: #1e1926;--surface-2: #27212f;--border: #3a3345;--text: #ebe6f2;--muted: #a79fb5;--accent: #7d4fb3;--accent-contrast: #ffffff;--accent-hover: #8e60c4;--accent-soft: #2d2140;--gold: #f0b429;--gold-contrast: #1c1726;--gold-hover: #f6c550;--ok: #4fbf6b;--ok-bg: #1c3524;--warn: #e0b84f;--warn-bg: #3a321b;--bad: #ef7075;--bad-bg: #40232a;--info: #6faee8;--info-bg: #1c2d42;--badge-bg: #332b3d;--nav-bg: #2a1a3f;--nav-text: #d9cfe8;--nav-text-active: #ffffff;--nav-hover: #3b2756;--nav-rule: #f0b429;--focus-ring: #9b72cf66;--shadow: 0 4px 18px #00000066}}:root[data-theme=dark]{color-scheme:dark;--bg: #14111a;--surface: #1e1926;--surface-2: #27212f;--border: #3a3345;--text: #ebe6f2;--muted: #a79fb5;--accent: #7d4fb3;--accent-contrast: #ffffff;--accent-hover: #8e60c4;--accent-soft: #2d2140;--gold: #f0b429;--gold-contrast: #1c1726;--gold-hover: #f6c550;--ok: #4fbf6b;--ok-bg: #1c3524;--warn: #e0b84f;--warn-bg: #3a321b;--bad: #ef7075;--bad-bg: #40232a;--info: #6faee8;--info-bg: #1c2d42;--badge-bg: #332b3d;--nav-bg: #2a1a3f;--nav-text: #d9cfe8;--nav-text-active: #ffffff;--nav-hover: #3b2756;--nav-rule: #f0b429;--focus-ring: #9b72cf66;--shadow: 0 4px 18px #00000066}*,*:before,*:after{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-size:16px;line-height:1.45;overflow-x:hidden}a{color:var(--accent)}a:hover{color:var(--accent-hover)}h1,h2,h3{line-height:1.2;margin:0 0 .5em}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75em}.muted{color:var(--muted)}.small{font-size:.875rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;min-height:var(--topbar-h);padding:var(--safe-top) max(12px,var(--safe-right)) 0 max(12px,var(--safe-left));background:var(--nav-bg);color:var(--nav-text);border-bottom:3px solid var(--nav-rule)}.topbar .brand{font-weight:800;font-size:1.15rem;letter-spacing:.01em;color:var(--nav-text-active);text-decoration:none;white-space:nowrap}.topbar .brand span{color:var(--nav-rule)}.topbar .nav-links{display:flex;align-items:center;gap:2px;margin-left:8px}.topbar .nav-links a,.topbar .nav-links summary{color:var(--nav-text);text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:600;font-size:.95rem}.topbar .nav-links a:hover,.topbar .nav-links summary:hover{background:var(--nav-hover);color:var(--nav-text-active)}.topbar .nav-links a.active{color:var(--nav-text-active);box-shadow:inset 0 -3px 0 var(--nav-rule)}.topbar .spacer{flex:1}.topbar .topbar-right{display:flex;align-items:center;gap:4px}.topbar .who{font-size:.85rem;color:var(--nav-text);margin-right:4px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}.icon-btn:hover{background:var(--nav-hover)}.hamburger{display:none}.menu{position:relative}.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.menu summary::-webkit-details-marker{display:none}.menu .panel{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;z-index:40}.menu.user-menu .panel{left:auto;right:0}.menu .panel a,.menu .panel button{color:var(--text)!important;background:transparent;border:0;text-align:left;padding:10px 12px!important;border-radius:6px;font:inherit;cursor:pointer;text-decoration:none}.menu .panel a:hover,.menu .panel button:hover{background:var(--surface-2)!important}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;pointer-events:none;transition:opacity .15s;z-index:49}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(300px,85vw);background:var(--surface);color:var(--text);box-shadow:var(--shadow);transform:translate(-100%);transition:transform .18s;z-index:50;display:flex;flex-direction:column;padding:calc(12px + var(--safe-top)) 12px calc(12px + var(--safe-bottom));overflow-y:auto}.drawer.open{transform:translate(0)}.drawer .brand{font-weight:800;font-size:1.15rem;padding:8px 10px 16px;color:var(--accent)}.drawer .cat{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:12px 10px 4px}.drawer a,.drawer button.linkish{display:block;padding:12px 10px;color:var(--text);text-decoration:none;border-radius:8px;font-weight:600;background:transparent;border:0;font:inherit;text-align:left;width:100%;cursor:pointer}.drawer a:hover,.drawer button.linkish:hover{background:var(--surface-2)}.drawer a.active{background:var(--accent-soft);color:var(--accent)}.drawer .foot{margin-top:auto;padding:12px 10px;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem;display:grid;gap:6px}.main{max-width:1100px;margin:0 auto;padding:20px max(16px,var(--safe-right)) calc(40px + var(--safe-bottom)) max(16px,var(--safe-left))}.main.narrow{max-width:720px}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-head p{margin:4px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.stack{display:grid;gap:12px}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row.end{justify-content:flex-end}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h2{margin-top:0}.card.flat{box-shadow:none}.card.accent{border-top:4px solid var(--gold)}.hero{padding:28px 0 8px}.hero h1{font-size:1.9rem}.hero p{font-size:1.05rem;color:var(--muted);max-width:60ch}.field{display:grid;gap:4px;margin-bottom:14px}.field label,.field .label{font-weight:600;font-size:.95rem}.field .req{color:var(--bad);font-weight:400}.field .hint{color:var(--muted);font-size:.875rem}.field .error-text{color:var(--bad);font-size:.875rem;font-weight:600}input,select,textarea{font:inherit;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}textarea{min-height:96px;resize:vertical}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad)}input:disabled,select:disabled,textarea:disabled{opacity:.6}.input-row{display:flex;gap:8px}.input-row input{flex:1;min-width:0}.check{display:flex;align-items:center;gap:10px;min-height:48px}.check input{width:22px;height:22px;min-height:0}fieldset{border:0;padding:0;margin:0 0 14px}legend{font-weight:600;margin-bottom:6px;padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 18px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-contrast)}.btn.gold:hover{background:var(--gold-hover);border-color:var(--gold-hover)}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn.danger:hover{background:var(--bad-bg)}.btn.block{width:100%}.btn.big{min-height:60px;font-size:1.05rem}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.small{min-height:36px;padding:6px 12px;font-size:.9rem}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.choice{display:grid;gap:4px;padding:14px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.choice:hover{border-color:var(--accent)}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice .title{font-weight:700;display:flex;align-items:center;gap:8px}.choice .hint{color:var(--muted);font-size:.85rem}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--badge-bg);font-size:.8rem;font-weight:700;white-space:nowrap}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.gold{background:var(--gold);color:var(--gold-contrast)}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);margin-bottom:14px}.banner.info{background:var(--info-bg);border-color:var(--info)}.banner.warn{background:var(--warn-bg);border-color:var(--warn)}.banner.bad{background:var(--bad-bg);border-color:var(--bad)}.banner.ok{background:var(--ok-bg);border-color:var(--ok)}.banner svg{flex:none;margin-top:2px}.error{color:var(--bad);font-weight:600;margin:8px 0}.notice{color:var(--muted);font-size:.9rem}.empty{padding:32px 16px;text-align:center;color:var(--muted)}.table-box{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table.data{width:100%;border-collapse:collapse;font-size:.95rem}table.data th,table.data td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}table.data th{background:var(--surface-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}table.data tr:last-child td{border-bottom:0}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:var(--surface-2)}.list{display:grid;gap:10px}.list-item{display:grid;gap:6px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;text-decoration:none}.list-item:hover{border-color:var(--accent)}.list-item .title{font-weight:700;font-size:1.05rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.list-item .meta{color:var(--muted);font-size:.9rem;display:flex;flex-wrap:wrap;gap:6px 14px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:.95rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:10px}.timeline li{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.timeline li:last-child{border-bottom:0}.timeline time{color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.timeline .what{font-weight:600}.timeline .who{color:var(--muted);font-size:.875rem}.timeline .change{font-size:.9rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;display:flex;align-items:center;justify-content:center;padding:16px;z-index:60}.modal{width:min(560px,100%);max-height:90dvh;overflow-y:auto;background:var(--surface);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.modal-head h2{margin:0}.scanner-video{width:100%;border-radius:8px;background:#000;max-height:60vh;object-fit:cover}#scanner-region{width:100%}#scanner-region video{width:100%!important;border-radius:8px}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}.login-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;border-top:5px solid var(--gold)}.login-card h1{color:var(--accent)}.site-footer{max-width:1100px;margin:0 auto;padding:24px 16px calc(24px + var(--safe-bottom));color:var(--muted);font-size:.9rem;border-top:1px solid var(--border);display:grid;gap:6px}.result{display:grid;gap:10px;border-left:6px solid var(--accent)}.result .status-text{font-size:1.2rem;font-weight:700}.result .facility{display:grid;gap:4px;padding:12px;background:var(--surface-2);border-radius:8px}.result .facility .name{font-weight:700}.tel{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px}@media(max-width:900px){.topbar .nav-links{display:none}.hamburger{display:inline-flex}.topbar .who{display:none}}@media(max-width:760px){table.data.cards thead{display:none}table.data.cards tr{display:grid;grid-template-columns:1fr;padding:10px 12px;border-bottom:1px solid var(--border)}table.data.cards td{border:0;padding:2px 0}table.data.cards td:before{content:attr(data-cell) ": ";color:var(--muted);font-size:.8rem}.timeline li{grid-template-columns:1fr;gap:2px}}@media(max-width:600px){.modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:var(--radius) var(--radius) 0 0;padding-bottom:calc(20px + var(--safe-bottom))}.hero h1{font-size:1.5rem}}@media(max-width:480px){.input-row{flex-wrap:wrap}.choice-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{transition:none}}
