:root{--bg:#f5f7fb;--surface:#fff;--surface-2:#eef3f8;--text:#172033;--muted:#6b7280;--primary:#155eef;--primary-dark:#0b46be;--success:#138a5b;--danger:#c2413b;--warning:#b7791f;--border:#dce3ec;--shadow:0 18px 45px #1c2d4b14;--radius:18px;--focus-ring:0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);--ease-out-ui:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){html:not([data-theme]){--bg:#0c111b;--surface:#121a27;--surface-2:#1a2433;--text:#eef4ff;--muted:#99a7bb;--primary:#4f8cff;--primary-dark:#3574ed;--success:#37b981;--danger:#ef6b64;--warning:#e4ad4e;--border:#273347;--shadow:0 18px 45px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}html[data-theme=dark]{--bg:#0c111b;--surface:#121a27;--surface-2:#1a2433;--text:#eef4ff;--muted:#99a7bb;--primary:#4f8cff;--primary-dark:#3574ed;--success:#37b981;--danger:#ef6b64;--warning:#e4ad4e;--border:#273347;--shadow:0 18px 45px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Avenir Next,Avenir,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.docs-frame-card{min-height:70vh;padding:0;overflow:hidden}.docs-frame{background:#fff;border:0;width:100%;min-height:70vh;display:block}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{color:#fff;background:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;box-shadow:var(--focus-ring)}.topbar{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;font-weight:800;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#1f74ff,#0ea5a8);border-radius:13px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 10px 24px #155eef40}.brand small{color:var(--muted);font-size:11px;font-weight:600;display:block}.top-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.layout{grid-template-columns:250px 1fr;min-height:calc(100vh - 67px);display:grid}.sidebar{border-right:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, var(--bg));padding:24px 16px}.nav-group{margin-bottom:24px}.nav-title{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;padding:0 12px 8px;font-size:11px;font-weight:800}.nav-button{text-align:left;width:100%;color:var(--text);transition:color .16s ease, background-color .16s ease, transform .14s var(--ease-out-ui);background:0 0;border:0;border-radius:12px;margin:3px 0;padding:11px 12px}.nav-button.active{background:color-mix(in srgb, var(--primary) 13%, var(--surface));color:var(--primary);font-weight:700}.main{min-width:0;padding:28px}.view{display:none}.view.active{animation:.18s fade;display:block}@keyframes fade{0%{opacity:.2;transform:translateY(3px)}to{opacity:1;transform:none}}.hero{color:#fff;box-shadow:var(--shadow);background:radial-gradient(circle at 100% 0,#ffffff38,#0000 40%),linear-gradient(135deg,#155eef,#0b8d91);border-radius:26px;grid-template-columns:1.4fr .8fr;gap:22px;padding:30px;display:grid}.hero h1{margin:0 0 14px;font-size:clamp(30px,4vw,54px);line-height:1.03}.hero p{color:#ffffffd6;max-width:720px;font-size:17px}.hero-panel{background:#ffffff24;border:1px solid #ffffff38;border-radius:20px;padding:20px}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px;box-shadow:0 8px 26px #1c2d4b0b}.card h2,.card h3{margin-top:0}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-head h1,.section-head h2{margin:0}.muted{color:var(--muted)}.metric{margin-top:7px;font-size:30px;font-weight:850}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid .full{grid-column:1/-1}label{color:var(--muted);gap:6px;font-size:13px;font-weight:650;display:grid}input,textarea,select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:11px;outline:none;padding:11px 12px}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring)}textarea{resize:vertical;min-height:92px}.btn{min-height:42px;transition:transform .14s var(--ease-out-ui), background-color .16s ease, border-color .16s ease, opacity .16s ease;border:0;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:10px 15px;font-weight:750;display:inline-flex}.btn-primary{color:#fff;background:var(--primary)}.btn-secondary{color:var(--text);background:var(--surface-2)}.btn-danger{color:#fff;background:var(--danger)}.btn-success{color:#fff;background:var(--success)}.btn-ghost{border:1px solid var(--border);background:0 0}.btn-sm{min-height:36px;padding:7px 10px;font-size:12px}.btn:active:not(:disabled),.nav-button:active{transform:scale(.97)}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-wrap{border:1px solid var(--border);border-radius:14px;overflow:auto}table{border-collapse:collapse;background:var(--surface);width:100%;min-width:700px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px 14px;font-size:13px}th{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}tr:last-child td{border-bottom:0}.code{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.badge{color:var(--primary);background:#eaf1ff;border-radius:999px;align-items:center;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.badge.success{color:var(--success);background:#e8f7f1}.badge.danger{color:var(--danger);background:#fdeceb}.badge.warning{color:var(--warning);background:#fff5dd}.toast-container{z-index:1100;pointer-events:none;flex-direction:column;align-items:stretch;gap:10px;width:min(380px,100vw - 36px);max-height:calc(100vh - 104px);display:flex;position:fixed;top:86px;right:18px;overflow-y:auto}.toast{color:#fff;box-shadow:var(--shadow);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:auto;animation:toast-enter .18s var(--ease-out-ui);background:#172033;border-radius:13px;flex:none;padding:14px 16px}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}}.toast.error{background:#8f2f2b}.toast.success{background:#126846}.hidden{display:none!important}.empty{text-align:center;color:var(--muted);padding:28px}.status-line{background:var(--surface-2);color:var(--muted);border-radius:10px;padding:10px 12px;font-size:13px}.login-shell{background:linear-gradient(140deg,var(--bg),var(--surface-2));place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(520px,100%)}.admin-login-shell{background:radial-gradient(circle at 18% 12%, color-mix(in srgb,var(--primary) 7%,transparent), transparent 34%), var(--bg);grid-template-columns:minmax(0,1fr);place-items:center;min-height:100dvh;padding:24px;display:grid}.admin-login-form{border:1px solid var(--border);background:var(--surface);border-radius:20px;gap:18px;width:390px;min-width:0;max-width:calc(100vw - 48px);padding:32px;display:grid;box-shadow:0 22px 55px #1c2d4b1a}.admin-login-form h1{letter-spacing:-.025em;margin:0 0 4px;font-size:26px;line-height:1.15}.admin-login-form label{color:var(--text);font-size:13px}.admin-login-form input{min-height:48px}.admin-login-form .btn{width:100%;min-height:48px;margin-top:2px}.login-error{color:var(--danger);margin:0;font-size:13px;line-height:1.45}.login-error:empty{display:none}.api-portal-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:14px clamp(20px,4vw,56px);display:flex}.api-catalog-shell{width:min(1180px,100%);margin:0 auto;padding:clamp(42px,7vw,82px) clamp(20px,4vw,56px)}.api-catalog-heading{max-width:670px;margin-bottom:38px}.api-catalog-heading h1{letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(32px,5vw,48px);line-height:1.05}.api-catalog-heading p{max-width:65ch;color:var(--muted);margin:0;font-size:16px;line-height:1.6}.api-product-grid{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:20px;display:grid}.api-product-card{border:1px solid var(--border);background:var(--surface);min-height:280px;transition:transform .18s var(--ease-out-ui),border-color .18s ease,box-shadow .18s ease;border-radius:20px;flex-direction:column;justify-content:space-between;gap:34px;padding:26px;display:flex;box-shadow:0 14px 38px #1c2d4b12}.api-product-card-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.api-product-mark{width:50px;height:50px;color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));background:color-mix(in srgb,var(--primary) 9%,var(--surface));border-radius:15px;place-items:center;display:grid}.api-product-mark svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linejoin:round;width:27px;height:27px}.api-status{color:var(--success);align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.api-status>span{width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent);background:currentColor;border-radius:50%}.api-product-card h2{letter-spacing:-.025em;margin:0 0 10px;font-size:25px}.api-product-card p{max-width:48ch;color:var(--muted);margin:0;line-height:1.55}.api-product-action{color:var(--primary);align-items:center;gap:8px;font-size:14px;font-weight:800;display:flex}.api-product-action svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;transition:transform .18s var(--ease-out-ui)}@media (hover:hover) and (pointer:fine){.api-product-card:hover{border-color:color-mix(in srgb,var(--primary) 36%,var(--border));transform:translateY(-3px);box-shadow:0 22px 48px #1c2d4b1f}.api-product-card:hover .api-product-action svg{transform:translate(3px)}}html[data-theme=dark] .admin-login-form,html[data-theme=dark] .api-product-card{box-shadow:0 22px 55px #0000003d}@media (max-width:700px){.admin-login-form{padding:26px 22px}.api-portal-header{align-items:flex-start}.api-portal-header .top-actions{flex:none;width:auto}.api-catalog-shell{padding-top:42px}.api-product-card{min-height:250px}}pre.output{color:#d1fae5;white-space:pre-wrap;background:#111827;border-radius:12px;max-height:360px;padding:14px;overflow:auto}.api-key-secret{border-color:color-mix(in srgb, var(--success) 38%, var(--border));gap:14px;margin-bottom:18px;display:grid}.api-key-secret h2,.api-key-secret p{margin:0}.api-key-secret-row{align-items:center;gap:10px;display:flex}.api-key-secret-row code{color:#d1fae5;white-space:nowrap;background:#111827;border-radius:11px;flex:1;min-width:0;padding:12px 14px;overflow:auto}@media (max-width:1050px){.layout{grid-template-columns:1fr}.sidebar{z-index:20;border-right:0;border-bottom:1px solid var(--border);gap:8px;padding:10px;display:flex;position:sticky;top:67px;overflow:auto}.nav-group{margin:0;display:flex}.nav-title{display:none}.nav-button{white-space:nowrap;width:auto}.hero,.grid-3,.grid-4{grid-template-columns:1fr 1fr}}@media (max-width:700px){.topbar{flex-wrap:wrap;gap:10px 14px;padding:12px 16px}.top-actions{flex:1 0 100%;justify-content:flex-end;width:100%}.sidebar{position:relative;top:auto}.main{padding:16px}.hero,.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.hero{padding:22px}.btn,.btn-sm,.nav-button{min-height:44px}.api-key-secret-row{flex-direction:column;align-items:stretch}}[data-access].hidden,[data-admin-only].hidden{display:none!important}.link-button{appearance:none;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.clickable-card{cursor:pointer;transition:transform .15s,box-shadow .15s}@media (hover:hover) and (pointer:fine){.nav-button:hover{background:color-mix(in srgb, var(--primary) 13%, var(--surface));color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.link-button:hover{color:var(--primary);text-decoration:underline}.clickable-card:hover{transform:translateY(-2px);box-shadow:0 14px 35px #0f172a1f}}.modal{z-index:1000;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal.hidden{display:none}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a94;position:absolute;inset:0}.modal-dialog{width:min(760px,100%);max-height:calc(100vh - 48px);animation:modal-enter .18s var(--ease-out-ui);background:#fff;border-radius:18px;position:relative;overflow:auto;box-shadow:0 24px 80px #0f172a4d}@keyframes modal-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}}body.modal-open{overflow:hidden}.modal-head,.modal-actions{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.modal-head h2{margin:0}.modal-body{padding:20px}.modal-actions{border-top:1px solid #e5e7eb;border-bottom:0;justify-content:flex-end}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-item{background:#f8fafc;border-radius:12px;padding:12px}.detail-item.full{grid-column:1/-1}.detail-label{color:#64748b;margin-bottom:4px;font-size:12px;display:block}@media (max-width:700px){.detail-grid{grid-template-columns:1fr}}.appointment-group{background:#fff;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:14px;overflow:hidden}.appointment-group>summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-weight:700;list-style:none;display:flex}.appointment-group>summary::-webkit-details-marker{display:none}.appointment-group>summary:after{content:"▾";margin-left:auto;transition:transform .18s}.appointment-group:not([open])>summary:after{transform:rotate(-90deg)}.appointment-group-content{padding:0 14px 14px}.appointment-group-content .table-wrap{margin:0}.role-manager{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-manager select{min-width:170px}.working-hours-list{flex-direction:column;gap:10px;margin-top:6px;display:flex}.working-hours-day-row{grid-template-columns:minmax(125px,160px) 1fr;align-items:start;gap:12px;display:grid}.working-hours-day-name{text-transform:none;padding-top:6px;font-weight:700}.working-hours-intervals{flex-direction:column;gap:7px;display:flex}.working-hours-interval-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.working-hours-interval{white-space:nowrap;background:#fff;border:1px solid #dbe4f0;border-radius:999px;align-items:center;min-height:32px;padding:6px 11px;font-weight:600;display:inline-flex}.schedule-management-list{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:16px}@media (max-width:700px){.working-hours-day-row{grid-template-columns:1fr;gap:5px}.working-hours-day-name{padding-top:0}}.phone-input-group{grid-template-columns:minmax(105px,auto) minmax(0,1fr);align-items:center;gap:8px;width:100%;display:grid}.phone-input-group .phone-country-select{width:100%;min-width:105px}.phone-input-group input[name=phone]{font-variant-numeric:tabular-nums;letter-spacing:.02em;width:100%;min-width:0}@media (max-width:560px){.phone-input-group{grid-template-columns:1fr}}.doctor-user-link-panel{gap:16px;display:grid}.doctor-user-results{gap:10px;max-height:420px;display:grid;overflow-y:auto}.doctor-user-result{border:1px solid var(--border);background:var(--surface);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.doctor-user-result:hover{border-color:var(--primary);background:var(--surface-2)}.doctor-user-result-main{gap:4px;min-width:0;display:grid}.doctor-user-result-main span,.doctor-user-result-phone{color:var(--muted);overflow-wrap:anywhere}@media (max-width:640px){.doctor-user-result{flex-direction:column;align-items:flex-start}}.service-status-group{grid-column:1/-1}.service-status-group>.appointment-group-content.grid{padding-top:4px}.doctor-avatar{object-fit:cover;background:var(--surface-2);border:1px solid var(--border);border-radius:50%;flex:none;width:84px;height:84px}.doctor-avatar-small{width:38px;height:38px}.doctor-avatar-large{width:128px;height:128px}.doctor-avatar-preview{width:96px;height:96px}.doctor-card-layout,.doctor-profile-head,.doctor-table-person,.avatar-picker-row{align-items:center;gap:16px;display:flex}.doctor-card-content{flex:1;min-width:0}.doctor-profile-head{margin-bottom:18px}.doctor-profile-head h3{margin:0 0 4px}.doctor-table-person{gap:10px}.avatar-picker{color:#4b5568;gap:8px;font-size:13px;font-weight:650;display:grid}.avatar-upload-control{width:auto;color:var(--primary);cursor:pointer;background:#f5f8ff;border:1px dashed #78a7ff;border-radius:11px;justify-content:center;align-items:center;padding:10px 14px;display:inline-flex}.avatar-upload-control input{display:none}@media (max-width:640px){.doctor-card-layout,.doctor-profile-head{align-items:flex-start}.doctor-avatar-large{width:96px;height:96px}}.doctor-card-schedule{color:var(--muted);align-items:flex-start;gap:8px;margin-top:10px;line-height:1.5;display:flex}.doctor-card-schedule-icon{color:#7f8ca3;flex:none;margin-top:1px;font-size:18px}.doctor-card-schedule-day strong{color:var(--text);text-transform:lowercase}.doctor-card-schedule-separator{white-space:normal}.doctor-card-arrow{color:#526078;align-self:center;margin-left:auto;padding-left:12px;font-size:42px;font-weight:300;line-height:1}.public-doctor-card .doctor-card-layout{width:100%}@media (max-width:640px){.doctor-card-arrow{display:none}.doctor-card-schedule{font-size:14px}}.btn:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.65)}#publicDoctors{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));align-items:stretch}.public-doctor-card{width:100%;min-width:0}.doctor-card-schedule-content{gap:3px;min-width:0;display:grid}.doctor-card-schedule-content>strong{margin-bottom:2px;display:block}.doctor-card-schedule-day{white-space:nowrap;display:block}.doctor-card-schedule-separator{display:none}.field-label-title{align-items:baseline;gap:3px;width:fit-content;min-width:0;display:inline-flex}.required-mark{color:#d43f3a;white-space:nowrap;font-weight:800;line-height:1;display:inline}@media (max-width:640px){#publicDoctors{grid-template-columns:1fr}.public-doctor-card .doctor-card-layout{grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.public-doctor-card .doctor-card-arrow{display:none}.doctor-card-schedule-day{font-size:13px}}#profileForm .field-changed{background:#f8fbff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb24}#profileForm .phone-input-group:has(input.field-changed){border-radius:12px;box-shadow:0 0 0 3px #2563eb24}#saveProfile:disabled{opacity:.5;cursor:not-allowed}#publicDoctors{grid-template-columns:minmax(0,1fr);width:100%}#publicDoctors .public-doctor-card{grid-column:1/-1;width:100%}.doctor-card-schedule-content{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.doctor-card-schedule-day{width:100%;display:block}.dashboard-kicker{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:750}.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;display:grid}.dashboard-metric-card{flex-direction:column;justify-content:center;min-height:158px;display:flex}.dashboard-metric-card .metric{letter-spacing:-.04em;font-size:40px}.dashboard-delta{color:#0b8d91;margin-top:8px;font-size:13px;font-weight:750}.dashboard-chart-card{padding:24px 26px 18px}.dashboard-chart-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.dashboard-chart-head h2{margin:0 0 4px}.dashboard-chart{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:18px;height:300px;padding:30px 4px 8px;display:grid}.dashboard-bar-column{flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;min-width:0;height:100%;display:flex}.dashboard-bar-value{color:var(--muted);font-size:12px;font-weight:800}.dashboard-bar-track{justify-content:center;align-items:flex-end;width:min(100%,82px);height:220px;display:flex}.dashboard-bar{background:linear-gradient(#4b86ff 0%,#36a3a2 100%);border-radius:12px 12px 4px 4px;width:100%;min-height:6px}.dashboard-bar-label{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.dashboard-chart-legend{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:13px;display:flex}.dashboard-chart-legend span{align-items:center;gap:7px;display:flex}.dashboard-legend-dot{background:var(--primary);border-radius:50%;width:9px;height:9px;display:inline-block}@media (max-width:900px){.dashboard-metrics{grid-template-columns:1fr}.dashboard-chart{gap:8px;height:250px}.dashboard-bar-track{height:170px}}@media (max-width:560px){.dashboard-chart-card{padding:18px 14px}.dashboard-chart{gap:4px}.dashboard-bar-label,.dashboard-bar-value{font-size:10px}}.live-status{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.live-status:before{content:"";background:currentColor;border-radius:999px;width:8px;height:8px}.live-status-online{color:#0b8f55;background:#12b5691a;border-color:#12b56940}.live-status-online:before{animation:1.4s ease-out infinite bublapi-live-pulse}.live-status-connecting{color:#9a6700;background:#f5a6231a}.live-status-offline{color:#7b8495;background:#7b84951a}@keyframes bublapi-live-pulse{0%{box-shadow:0 0 #12b56973}70%{box-shadow:0 0 0 7px #12b56900}to{box-shadow:0 0 #12b56900}}.brand-mark{box-shadow:none;background:0 0;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.theme-toggle{border:1px solid var(--border);min-width:154px;height:44px;color:var(--text);background:var(--surface);cursor:pointer;box-shadow:0 3px 12px color-mix(in srgb,var(--text) 6%,transparent);transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .14s var(--ease-out-ui);border-radius:12px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 7px 5px 12px;display:inline-flex}.theme-toggle-copy{text-align:left;gap:1px;line-height:1;display:grid}.theme-toggle-label{color:var(--muted);letter-spacing:.04em;font-size:10px;font-weight:750}.theme-toggle-value{min-width:50px;color:var(--text);font-size:12px;font-weight:800}.theme-toggle:hover{border-color:color-mix(in srgb,var(--primary) 48%,var(--border));box-shadow:0 5px 18px color-mix(in srgb,var(--primary) 11%,transparent)}.theme-toggle:active{transform:scale(.98)}.theme-toggle:focus-visible{outline-offset:2px}.theme-toggle-track{border:1px solid color-mix(in srgb,var(--border) 80%,var(--muted));background:var(--surface-2);width:58px;height:30px;box-shadow:inset 0 1px 3px color-mix(in srgb,var(--text) 10%,transparent);border-radius:999px;flex:none;padding:0;transition:background-color .18s,border-color .18s;display:block;position:relative;overflow:hidden}.theme-icon{z-index:2;width:14px;height:14px;color:var(--muted);pointer-events:none;transition:color .18s,opacity .18s;position:absolute;top:50%;transform:translateY(-50%)}.theme-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.theme-icon-sun{color:#9a6700;left:7px}.theme-icon-moon{opacity:.58;right:7px}.theme-toggle-thumb{z-index:1;width:24px;height:24px;box-shadow:0 2px 7px color-mix(in srgb,var(--text) 24%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--border) 60%,transparent);background:#fff;border-radius:50%;transition:transform .48s cubic-bezier(.65,0,.35,1),background-color .38s;position:absolute;top:2px;left:2px}html[data-theme=dark] .theme-toggle-track{background:color-mix(in srgb,var(--primary) 36%,var(--surface-2));border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}html[data-theme=dark] .theme-toggle-thumb{background:#f5f8ff;transform:translate(28px)}html[data-theme=dark] .theme-icon-sun{color:var(--muted);opacity:.58}html[data-theme=dark] .theme-icon-moon{color:#dbe7ff;opacity:1}@media (prefers-color-scheme:dark){html:not([data-theme]) .theme-toggle-track{background:color-mix(in srgb,var(--primary) 36%,var(--surface-2));border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}html:not([data-theme]) .theme-toggle-thumb{background:#f5f8ff;transform:translate(28px)}html:not([data-theme]) .theme-icon-sun{color:var(--muted);opacity:.58}html:not([data-theme]) .theme-icon-moon{color:#dbe7ff;opacity:1}}.theme-toggle-floating{z-index:50;position:fixed;top:18px;right:18px}html[data-theme=dark] .badge{background:#4f8cff24}html[data-theme=dark] .badge.success{background:#37b98124}html[data-theme=dark] .badge.danger{background:#ef6b6424}html[data-theme=dark] .badge.warning{background:#e4ad4e24}html[data-theme=dark] .hero{background:radial-gradient(circle at 86% 8%,#4f8cff26,#0000 34%),radial-gradient(circle at 8% 92%,#0e8d911c,#0000 38%),linear-gradient(135deg,#101a2c 0%,#112039 52%,#102c34 100%);border:1px solid #293a54;box-shadow:0 20px 48px #00000047}html[data-theme=dark] .hero-panel{background:#121f32b8;border-color:#35506f;box-shadow:inset 0 1px #ffffff09}html[data-theme=dark] .hero .btn-secondary{color:#eef4ff;background:#18243a;border:1px solid #2d405d}@media (hover:hover) and (pointer:fine){html[data-theme=dark] .clickable-card:hover{box-shadow:0 16px 38px #0000004d}html[data-theme=dark] .hero .btn-secondary:hover{background:#1e2f49;border-color:#426083}}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:background-color .65s,color .65s,border-color .65s,box-shadow .65s!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){z-index:9999}::view-transition-old(root){z-index:1}html[data-theme-transition=dark]::view-transition-new(root){clip-path:circle(150% at var(--theme-x,95%) var(--theme-y,5%));animation:.7s cubic-bezier(.65,0,.35,1) theme-reveal}html[data-theme-transition=light]::view-transition-new(root){clip-path:circle(150% at var(--theme-x,95%) var(--theme-y,5%));animation:.7s cubic-bezier(.65,0,.35,1) theme-reveal}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-x,95%) var(--theme-y,5%))}}@view-transition{navigation:auto}html[data-portal-transition]::view-transition-old(root){animation:.22s cubic-bezier(.4,0,1,1) both portal-leave}html[data-portal-transition]::view-transition-new(root){animation:.42s cubic-bezier(.16,1,.3,1) both portal-enter}html[data-portal-transition=staff-patient]::view-transition-old(root){--portal-shift:18px}html[data-portal-transition=staff-patient]::view-transition-new(root){--portal-shift:-18px}html[data-portal-transition=patient-staff]::view-transition-old(root){--portal-shift:-18px}html[data-portal-transition=patient-staff]::view-transition-new(root){--portal-shift:18px}html:not([data-theme-transition]):not([data-portal-transition])::view-transition-old(root){animation:.18s cubic-bezier(.4,0,1,1) both portal-document-leave}html:not([data-theme-transition]):not([data-portal-transition])::view-transition-new(root){animation:.42s cubic-bezier(.16,1,.3,1) both portal-document-enter}@keyframes portal-leave{to{opacity:0;filter:blur(2px);transform:translateX(var(--portal-shift,-18px)) scale(.992)}}@keyframes portal-enter{0%{opacity:0;filter:blur(3px);transform:translateX(var(--portal-shift,18px)) scale(.992)}}@keyframes portal-document-leave{to{opacity:0;filter:blur(2px);transform:scale(.992)}}@keyframes portal-document-enter{0%{opacity:0;filter:blur(3px);transform:scale(.992)}}.not-found-shell{background:var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.not-found-card{text-align:center;max-width:680px;padding:42px}.not-found-code{color:var(--primary);letter-spacing:-.08em;margin-bottom:24px;font-size:clamp(72px,18vw,160px);font-weight:900;line-height:.8}html[data-theme=dark] .not-found-shell{background:radial-gradient(circle at 80% 10%,#4f8cff1a,transparent 30%),var(--bg)}html[data-theme=dark] .not-found-card{background:var(--surface);border-color:var(--border);box-shadow:0 24px 70px #0000004d}@media (max-width:700px){.theme-toggle{width:58px;min-width:58px;box-shadow:none;background:0 0;border:0;padding:6px}.theme-toggle-copy{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}html[data-theme=dark] .modal-dialog,html[data-theme=dark] .appointment-group,html[data-theme=dark] .working-hours-interval{background:var(--surface);border-color:var(--border)}html[data-theme=dark] .modal-head,html[data-theme=dark] .modal-actions,html[data-theme=dark] .schedule-management-list,html[data-theme=dark] .appointment-group{border-color:var(--border)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.view.active,.modal-dialog,.toast,.live-status-online:before{animation:none!important}html[data-theme-transition]::view-transition-new(root){animation:none!important}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}.btn,.nav-button,.theme-toggle-thumb,.clickable-card,.dashboard-bar{transition-duration:0s}.btn:active:not(:disabled),.nav-button:active,.clickable-card:hover{transform:none}}html[data-theme=dark] .detail-item{background:var(--surface-2)}html[data-theme=dark] .detail-label,html[data-theme=dark] .doctor-card-schedule-icon,html[data-theme=dark] .doctor-card-arrow,html[data-theme=dark] .avatar-picker{color:var(--muted)}html[data-theme=dark] .avatar-upload-control{background:var(--surface-2)}html[data-theme=dark] #profileForm .field-changed{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}body[data-sidebar-mode=patient]{--portal-accent:#155eef;--portal-accent-strong:#0b46be;--portal-tint:#edf3ff}body[data-sidebar-mode=staff]{--primary:#087f83;--primary-dark:#06676a;--portal-accent:#087f83;--portal-accent-strong:#06676a;--portal-tint:#e8f6f5}body:has([id^=view-admin-][class~=active]){--primary:#6347d9;--primary-dark:#4d35b5;--portal-accent:#6347d9;--portal-accent-strong:#4d35b5;--portal-tint:#f0edff}.sidebar{background:linear-gradient(180deg, color-mix(in srgb, var(--portal-tint,var(--surface-2)) 72%, var(--surface)), var(--surface));transition:background-color .18s var(--ease-out-ui), border-color .18s var(--ease-out-ui);position:relative}.sidebar:after{content:"";pointer-events:none;background:color-mix(in srgb, var(--portal-accent,var(--primary)) 24%, var(--border));width:1px;position:absolute;inset:0 0 0 auto}body[data-sidebar-mode=patient] .sidebar>.nav-group[data-access=staff-core\,staff-appointments]:not(.sidebar-context-entry),body[data-sidebar-mode=staff] .sidebar>.nav-group:not([data-access=staff-core\,staff-appointments]):not(.sidebar-context-exit),body[data-sidebar-mode=staff] .sidebar-context-entry,body[data-sidebar-mode=patient] .sidebar-context-exit{display:none!important}body[data-sidebar-mode=staff] .sidebar>.nav-group[data-access=staff-core\,staff-appointments]{display:block}.sidebar .nav-title{color:color-mix(in srgb, var(--portal-accent,var(--primary)) 48%, var(--muted))}.sidebar .nav-button.active{color:var(--portal-accent,var(--primary));background:color-mix(in srgb, var(--portal-accent,var(--primary)) 13%, var(--surface));box-shadow:inset 3px 0 0 var(--portal-accent,var(--primary))}.sidebar-context-entry{border-top:1px solid color-mix(in srgb, var(--portal-accent,var(--primary)) 20%, var(--border));margin-top:30px;padding-top:20px}.sidebar-context-exit{border-bottom:1px solid color-mix(in srgb, var(--portal-accent,var(--primary)) 20%, var(--border));margin-bottom:18px;padding-bottom:18px}.context-button{border:1px solid color-mix(in srgb, var(--portal-accent,var(--primary)) 22%, var(--border));background:color-mix(in srgb, var(--portal-accent,var(--primary)) 8%, var(--surface));min-height:58px;box-shadow:0 8px 24px color-mix(in srgb, var(--portal-accent,var(--primary)) 8%, transparent);transition:color .14s ease, background-color .14s ease, border-color .14s ease, transform .14s var(--ease-out-ui);gap:3px;padding:11px 12px;display:grid}.context-button span{color:var(--portal-accent,var(--primary));font-weight:800}.context-button small{color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}body[data-sidebar-mode=staff] .topbar{border-bottom-color:color-mix(in srgb, var(--portal-accent) 24%, var(--border))}body[data-sidebar-mode=staff] .brand small:after{content:" · панель сотрудника";color:var(--portal-accent)}body:has([id^=view-admin-][class~=active]) .sidebar{background:linear-gradient(180deg, color-mix(in srgb, var(--portal-tint) 78%, var(--surface)), var(--surface))}@media (hover:hover) and (pointer:fine){.context-button:hover{color:var(--portal-accent,var(--primary));border-color:color-mix(in srgb, var(--portal-accent,var(--primary)) 48%, var(--border));background:color-mix(in srgb, var(--portal-accent,var(--primary)) 12%, var(--surface));transform:translateY(-1px)}}@media (prefers-color-scheme:dark){html:not([data-theme]) body[data-sidebar-mode=patient]{--portal-tint:#14213a}html:not([data-theme]) body[data-sidebar-mode=staff]{--primary:#39b8b4;--primary-dark:#269c99;--portal-accent:#39b8b4;--portal-accent-strong:#269c99;--portal-tint:#102c30}}html[data-theme=dark] body[data-sidebar-mode=patient]{--portal-tint:#14213a}html[data-theme=dark] body[data-sidebar-mode=staff]{--primary:#39b8b4;--primary-dark:#269c99;--portal-accent:#39b8b4;--portal-accent-strong:#269c99;--portal-tint:#102c30}html[data-theme=dark] body:has([id^=view-admin-][class~=active]){--primary:#9d8bff;--primary-dark:#806aec;--portal-accent:#9d8bff;--portal-accent-strong:#806aec;--portal-tint:#201b38}@media (max-width:1050px){.sidebar{position:sticky;top:67px}.sidebar:after{display:none}.sidebar-context-entry,.sidebar-context-exit{border:0;margin:0;padding:0}.context-button{align-items:center;min-height:44px;display:flex}.context-button small{display:none}body[data-sidebar-mode=staff] .sidebar>.nav-group[data-access=staff-core\,staff-appointments]{display:flex}}@media (prefers-reduced-motion:reduce){.sidebar,.context-button{transition-duration:0s}}
