:root{--brand-name:"Студия «Резонанс»";--brand-logo:"🎙";--brand-address:"Москва, ул. Примерная, 12, стр. 3";--brand-phone:"+7 (495) 123-45-67";--brand-telegram:"@resonance_studio";--bg-app:#0d1117;--bg-surface:#151b23;--bg-surface-2:#1c232d;--bg-elevated:#222b37;--border:#2a3442;--border-strong:#3a4656;--text-primary:#eef2f6;--text-secondary:#9aa7b5;--text-muted:#66727f;--accent:#5b8cff;--accent-hover:#6f9bff;--accent-soft:rgba(91,140,255,.14);--accent-contrast:#fff;--st-pending:#e8b339;--st-pending-bg:rgba(232,179,57,.14);--st-approved:#3fb96c;--st-approved-bg:rgba(63,185,108,.14);--st-rejected:#e5534b;--st-rejected-bg:rgba(229,83,75,.14);--st-cancelled:#8b98a5;--st-cancelled-bg:rgba(139,152,165,.14);--st-completed:#58a6ff;--st-completed-bg:rgba(88,166,255,.14);--st-noshow:#d9730d;--st-noshow-bg:rgba(217,115,13,.14);--slot-busy:#3a4656;--slot-closed:repeating-linear-gradient(-45deg,#1c232d,#1c232d 6px,#161c25 0,#161c25 12px);--danger:#e5534b;--danger-hover:#ef6a62;--danger-soft:rgba(229,83,75,.12);--success:#3fb96c;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:26px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--touch-target:48px;--shadow-1:0 2px 8px rgba(0,0,0,.35);--shadow-2:0 8px 30px rgba(0,0,0,.5);--sidebar-w:240px}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:var(--font-family);background:var(--bg-app);color:var(--text-primary);font-size:var(--fs-md);line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{color:inherit;background:none;border:none;cursor:pointer}button,input,select,textarea{font-family:inherit;font-size:inherit}input,select,textarea{color:var(--text-primary);background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;width:100%;min-height:var(--touch-target)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch-target);padding:0 20px;border-radius:var(--radius-md);font-weight:600;font-size:var(--fs-md);transition:background .15s ease,transform .05s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-strong)}.btn-secondary:hover{background:var(--bg-surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--accent)}.btn-block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn-sm{min-height:36px;padding:0 14px;font-size:var(--fs-sm);border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge-pending{color:var(--st-pending);background:var(--st-pending-bg)}.badge-approved{color:var(--st-approved);background:var(--st-approved-bg)}.badge-rejected{color:var(--st-rejected);background:var(--st-rejected-bg)}.badge-cancelled{color:var(--st-cancelled);background:var(--st-cancelled-bg)}.badge-completed{color:var(--st-completed);background:var(--st-completed-bg)}.badge-noshow{color:var(--st-noshow);background:var(--st-noshow-bg)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.state-box{text-align:center;padding:48px 20px;color:var(--text-secondary)}.state-box .state-icon{font-size:44px;margin-bottom:12px}.state-box h3{color:var(--text-primary);margin-bottom:6px}.spinner{width:34px;height:34px;margin:0 auto 14px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-surface-2) 25%,var(--bg-elevated) 50%,var(--bg-surface-2) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position:-200% 0}}#toast-root{position:fixed;z-index:1000;pointer-events:none}.toast{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:12px 16px;box-shadow:var(--shadow-2);font-size:var(--fs-sm);display:flex;gap:10px;align-items:center;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:500;animation:fade-in .15s ease;padding:16px}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);width:100%;max-width:520px;max-height:86vh;overflow-y:auto;animation:modal-in .2s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)}}.modal-head{padding:18px 20px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-head h3{font-size:var(--fs-lg)}.modal-body{padding:14px 20px 20px}.modal-x{color:var(--text-muted);font-size:20px;line-height:1;padding:4px}.modal-x:hover{color:var(--text-primary)}.muted{color:var(--text-secondary)}.faint{color:var(--text-muted)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1 1}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}hr.sep{border:none;border-top:1px solid var(--border);margin:16px 0}.kv{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.kv:last-child{border-bottom:none}.kv .k{color:var(--text-secondary);flex-shrink:0}.kv .v{text-align:right;min-width:0;overflow-wrap:anywhere}.dur-row{display:flex;gap:8px;flex-wrap:wrap}.dur{min-height:44px;padding:0 16px;border-radius:var(--radius-full);background:var(--bg-surface-2);border:1px solid var(--border);font-weight:600;font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer}.dur.sel{background:var(--accent);border-color:var(--accent);color:#fff}.dur[disabled]{opacity:.4;cursor:not-allowed}.timeline-block{padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-surface-2);border:1px solid var(--border);margin-bottom:6px;font-size:var(--fs-sm)}.timeline-block.mine{border-color:var(--accent);background:var(--accent-soft)}.dur-wheel{max-height:224px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md);scroll-snap-type:y proximity;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}.dur-opt{min-height:44px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--fs-sm);color:var(--text-secondary);scroll-snap-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dur-opt:hover{background:var(--bg-surface-2)}.dur-opt.sel{background:var(--accent-soft);color:var(--accent);font-size:var(--fs-md)}.field{margin-bottom:14px}.field label{display:block;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:6px}.field .hint{color:var(--text-muted)}.field .err,.field .hint{font-size:var(--fs-xs);margin-top:4px}.field .err{color:var(--danger)}.screen{padding:16px 16px 32px;min-height:100vh;display:flex;flex-direction:column;animation:scr-in .18s ease}@keyframes scr-in{0%{opacity:0;transform:translateY(6px)}}.app-head{gap:10px;margin-bottom:16px}.app-head,.app-head .logo{display:flex;align-items:center}.app-head .logo{width:38px;height:38px;border-radius:12px;background:var(--accent-soft);justify-content:center;font-size:19px}.app-head .t1{font-weight:700;font-size:var(--fs-md)}.app-head .t2{font-size:var(--fs-xs);color:var(--text-muted)}.back-btn{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:var(--fs-sm);font-weight:600;padding:6px 0;min-height:32px}.invite-chip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{font-size:var(--fs-xs);background:var(--bg-surface-2);border:1px solid var(--border);padding:5px 10px;border-radius:var(--radius-full);color:var(--text-secondary)}.sticky-cta{position:-webkit-sticky;position:sticky;bottom:0;padding-top:12px;margin-top:auto;background:linear-gradient(transparent,var(--bg-app) 30%)}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-head h2{font-size:var(--fs-lg)}.cal-nav{display:flex;gap:6px}.cal-nav button{width:38px;height:38px;border-radius:10px;background:var(--bg-surface-2);border:1px solid var(--border);color:var(--text-primary);font-size:16px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-dow{text-align:center;font-size:11px;color:var(--text-muted);padding:4px 0;font-weight:700}.cal-day{aspect-ratio:1;border-radius:10px;background:var(--bg-surface);border:1px solid var(--border);padding:5px;display:flex;flex-direction:column;font-size:var(--fs-sm);text-align:left;color:var(--text-primary)}.cal-day:active{border-color:var(--accent)}.cal-day.dim{opacity:.28;pointer-events:none;background:transparent;border-color:transparent}.cal-day.closed{background:var(--slot-closed);color:var(--text-muted)}.cal-day.past{opacity:.45}.cal-day.today{border-color:var(--accent)}.cal-marks{margin-top:auto;display:flex;gap:3px;align-items:center}.dot{width:6px;height:6px;border-radius:50%}.busy-bar{height:4px;border-radius:2px;background:var(--slot-busy);flex:1 1}.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:11px;color:var(--text-secondary)}.cal-legend .row{gap:6px}.slots-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.slot{min-height:44px;border-radius:10px;background:var(--bg-surface-2);border:1px solid var(--border);font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.slot[disabled]{background:transparent;color:var(--text-muted);text-decoration:line-through;border-style:dashed;opacity:.55}.slot.sel{background:var(--accent);border-color:var(--accent);color:#fff}.booking-card{display:block;width:100%;text-align:left;margin-bottom:10px;color:inherit}.booking-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}.booking-card .ttl{font-weight:700;font-size:var(--fs-md)}.proposal{border:1px solid var(--st-pending);background:var(--st-pending-bg);border-radius:var(--radius-md);padding:14px}.arrow-box{display:flex;align-items:center;gap:10px;margin:10px 0;font-weight:600}.arrow-box .old{color:var(--text-secondary);text-decoration:line-through}.arrow-box .new{color:var(--st-pending)}.notice{border-radius:var(--radius-md);padding:12px 14px;font-size:var(--fs-sm)}.notice-warn{background:var(--st-pending-bg);border:1px solid var(--st-pending)}.notice-info{background:var(--accent-soft);border:1px solid var(--accent)}.result-hero{text-align:center;padding:40px 0 24px}.result-hero .ic{font-size:56px;margin-bottom:14px}.result-hero h2{font-size:var(--fs-xl);margin-bottom:8px}