:root{--bg: #eef4f4;--surface: #ffffff;--ink: #0f2a33;--muted: #557079;--line: #d3e2e3;--brand: #0b5563;--brand-deep: #073b45;--brand-soft: #dff1f1;--brand-ink: #ffffff;--accent: #f2a93b;--accent-soft: #fff3df;--accent-ink: #6b4300;--danger: #c2410c;--shadow: 0 1px 2px rgba(15, 42, 51, .06), 0 8px 24px rgba(15, 42, 51, .08);--radius: 22px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;overflow:hidden;background:var(--bg)}button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}h1{margin:0;font-size:clamp(1.7rem,3.4vw,2.8rem);line-height:1.15;letter-spacing:-.01em;max-width:28ch}.big{font-size:clamp(1.3rem,2.4vw,2rem);margin:0;max-width:32ch}.hint{font-size:clamp(1rem,1.6vw,1.3rem);color:var(--muted);margin:0;max-width:46ch}.home{height:100%;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 20% 10%,#137487 0%,var(--brand) 40%,var(--brand-deep) 100%);color:var(--brand-ink);text-align:center}.home-card{display:flex;flex-direction:column;align-items:center;gap:14px}.home h1{font-size:clamp(2.2rem,5vw,4rem)}.home-welcome{margin:0;font-size:clamp(1.4rem,2.6vw,2.2rem);font-weight:600;color:#cfeff0}.home-hint{margin:0 0 18px;font-size:clamp(1rem,1.8vw,1.35rem);color:#b6e1e3;line-height:1.5}.home-actions{display:grid;grid-template-columns:repeat(2,minmax(240px,340px));gap:20px}.logo{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:var(--brand-ink);color:var(--brand);font-size:3.4rem;font-weight:800;line-height:1;box-shadow:var(--shadow)}.logo.small{width:34px;height:34px;border-radius:10px;font-size:1.5rem;background:var(--brand);color:var(--brand-ink);box-shadow:none}.kiosk{height:100%;display:flex;flex-direction:column}.bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.2rem}.bar-actions{display:flex;align-items:center;gap:14px}.lang-switch{display:inline-flex;padding:4px;border-radius:999px;background:var(--bg)}.lang-switch button{border:0;background:none;padding:8px 16px;border-radius:999px;font-weight:700;color:var(--muted)}.lang-switch button.active{background:var(--brand);color:var(--brand-ink)}.ghost{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:10px 18px;font-weight:600;color:var(--brand)}.progress{list-style:none;margin:0;padding:14px 28px 0;display:flex;justify-content:center;gap:0}.progress li{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600}.progress li+li:before{content:"";width:clamp(16px,4vw,56px);height:3px;border-radius:3px;background:var(--line);margin:0 10px}.progress li.done+li:before,.progress li.done:before{background:var(--brand)}.progress .dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line);font-size:.9rem}.progress li.current{color:var(--ink)}.progress li.current .dot{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.progress li.done .dot{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.screen{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px 32px;text-align:center}.foot{padding:0 28px 20px}.back{font-size:1.1rem}.grid{display:grid;gap:18px;width:min(1180px,100%)}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}.choice{min-height:104px;padding:18px 24px;border-radius:var(--radius);border:2px solid transparent;background:var(--surface);box-shadow:var(--shadow);font-size:clamp(1.15rem,1.9vw,1.6rem);font-weight:700;display:flex;align-items:center;justify-content:center;gap:14px;transition:transform 80ms ease,box-shadow 80ms ease,background .12s ease}.choice:active:not(:disabled){transform:scale(.97);box-shadow:none}.choice:disabled{cursor:default;background:#c9d9da;color:#557079;box-shadow:none}.choice-primary{background:var(--brand);color:var(--brand-ink)}.choice-outline{border-color:var(--line);box-shadow:none;color:var(--brand-deep)}.choice-muted{background:#e3ecec;box-shadow:none;color:var(--muted)}.choice-priority{border-color:#f6d7a6;background:var(--accent-soft);color:var(--accent-ink)}.choice-light{background:var(--brand-ink);color:var(--brand-deep)}.choice.tall{min-height:160px;font-size:clamp(1.6rem,3vw,2.4rem)}.mark{font-size:1.1em}.lang{flex-direction:column;gap:4px;min-height:130px}.lang-name{font-size:clamp(1.6rem,2.8vw,2.2rem)}.lang-cta{font-size:1rem;font-weight:600;color:var(--brand)}.services{grid-template-columns:repeat(4,minmax(0,1fr))}.service{flex-direction:column;align-items:flex-start;justify-content:space-between;text-align:left;min-height:150px;padding:20px 22px}.prefix{flex-shrink:0;min-width:56px;height:56px;padding:0 10px;border-radius:16px;display:grid;place-items:center;font-size:1.7rem;font-weight:800;letter-spacing:.02em}.service-name{font-size:clamp(1.1rem,1.7vw,1.45rem);line-height:1.2}.tint-0 .prefix{background:#dff1f1;color:#0b5563}.tint-1 .prefix{background:#e6edff;color:#2c4aa8}.tint-2 .prefix{background:#fde8ef;color:#a3264f}.tint-3 .prefix{background:#fff1dc;color:#8a5300}.priorities{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.priorities .choice-muted{grid-column:1 / -1;min-height:80px}.phone-screen{gap:14px}.phone-head{display:flex;flex-direction:column;align-items:center;gap:6px}.phone{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}.phone-code{font-size:1.6rem;font-weight:700;color:var(--muted)}.phone-digits{display:flex}.slot{width:34px;height:50px;display:grid;place-items:center;font-size:1.9rem;font-weight:800;border-bottom:3px solid var(--line);margin:0 2px;font-variant-numeric:tabular-nums}.slot.pair-end{margin-right:14px}.slot.pair-end:last-child{margin-right:2px}.slot.filled{border-color:var(--brand)}.slot.next{border-color:var(--accent)}.keypad{display:grid;grid-template-columns:repeat(3,112px);gap:12px}.key{height:78px;border-radius:18px;border:0;background:var(--surface);box-shadow:var(--shadow);font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.key:active{transform:scale(.95);background:var(--brand-soft)}.key-action{font-size:1.1rem;color:var(--brand);background:var(--brand-soft);box-shadow:none}.actions{width:min(820px,100%)}.actions .choice{min-height:84px}.center{justify-content:center}.full{height:100%}.spinner{width:76px;height:76px;border-radius:50%;border:8px solid var(--line);border-top-color:var(--brand);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ticket{position:relative;background:var(--surface);border-radius:28px;padding:26px 44px 22px;min-width:460px;box-shadow:var(--shadow);border-top:10px solid var(--brand)}.ticket p{margin:4px 0}.ticket-clinic{font-weight:700;color:var(--muted)}.ticket-label{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.95rem}.ticket .ticket-number{font-size:clamp(4.5rem,10vw,7rem);font-weight:800;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums;margin:6px 0}.ticket-service{font-weight:700;font-size:1.35rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0 10px}.stats div{background:var(--bg);border-radius:14px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}.stat-label{font-size:.9rem;color:var(--muted);font-weight:600}.stat-value{font-size:1.25rem;font-weight:800}.ticket .ticket-time,.ticket .ticket-note{font-size:.95rem;color:var(--muted)}.done-button{min-width:280px;min-height:84px}.countdown{margin:0;color:var(--muted);font-weight:600}.error-mark{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:#ffedd5;color:var(--danger);font-size:3rem;font-weight:800}.setup-page{height:100%;overflow-y:auto;display:grid;place-items:start center;padding:40px 16px;-webkit-user-select:text;user-select:text}.setup{width:min(620px,100%);display:grid;gap:18px;background:var(--surface);padding:32px;border-radius:24px;box-shadow:var(--shadow)}.setup h1{font-size:2rem}.setup label{display:grid;gap:6px;font-weight:700;text-align:left}.setup small{font-weight:500;color:var(--muted)}.setup input{font:inherit;font-weight:500;padding:14px;border-radius:12px;border:1px solid var(--line);-webkit-user-select:text;user-select:text;min-width:0}.setup input:focus{outline:3px solid var(--brand-soft);border-color:var(--brand)}.key-row{display:flex;gap:8px}.key-row input{flex:1}.setup-errors{margin:0;padding:12px 16px 12px 32px;border-radius:12px;background:#fff7ed;color:var(--danger);text-align:left}.setup-check{margin:0;padding:12px 16px;border-radius:12px;font-weight:600;text-align:left;background:#fff7ed;color:var(--danger)}.setup-check.ok{background:var(--brand-soft);color:var(--brand-deep)}.setup-check.running{background:var(--bg);color:var(--muted)}.setup-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.setup-actions .choice{min-height:64px;font-size:1.2rem}.setup-links{display:flex;justify-content:space-between;gap:12px}.ghost.danger{color:var(--danger)}@media (max-width: 900px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}.home-actions{grid-template-columns:1fr}.progress .name{display:none}}@media (max-height: 780px){.screen{gap:12px;padding:12px 28px}.service{min-height:118px;padding:14px 18px}.prefix{min-width:46px;height:46px;font-size:1.4rem}.choice{min-height:86px}.choice.tall{min-height:130px}.key{height:54px;font-size:1.7rem}.key-action{font-size:1rem}.keypad{grid-template-columns:repeat(3,96px);gap:8px}.slot{height:40px;font-size:1.6rem}.actions .choice{min-height:62px}.phone-screen{gap:10px;padding-top:8px;padding-bottom:8px}.phone-screen h1{font-size:1.9rem}.phone-screen .hint{max-width:70ch;font-size:1rem}.phone{padding:6px 18px}.progress{padding-top:10px}.foot{padding-bottom:12px}.ticket{padding:18px 36px 16px}}@media print{@page{size:80mm auto;margin:4mm}html,body{background:#fff;overflow:visible;height:auto}.bar,.progress,.foot,.hint,.choice,.countdown{display:none!important}.screen{padding:0;display:block}.ticket{box-shadow:none;border:0;border-radius:0;padding:0;min-width:0;width:72mm;color:#000}.ticket .ticket-number{font-size:40pt;color:#000}.stats div{background:none;padding:2px 0}.ticket p,.stat-value{font-size:11pt}.stat-label,.ticket .ticket-time,.ticket .ticket-note{font-size:9pt;color:#000}}
