:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--primary-color:#d4a373;--bg-color:#fff;--card-bg:#fafaf9;--text-main:#1c1917;--text-muted:#a8a29e;--accent-green:#10b981;--border-color:#f5f5f4;--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{color:var(--text-main);background-color:#f1f5f9;justify-content:center;width:100%;height:100dvh;font-family:-apple-system,system-ui,sans-serif;display:flex;overflow:hidden}#root{background-color:var(--bg-color);width:100%;max-width:500px;height:100%;box-shadow:0 0 40px #0000001a}.app-shell{background-color:var(--bg-color);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.main-content{padding-top:var(--safe-top);flex-direction:column;flex:1;height:0;display:flex;overflow:hidden}.view-container{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.view-container.scrollable{-webkit-overflow-scrolling:touch;text-align:left;overflow-y:auto}.schedule-header{flex-shrink:0;justify-content:space-between;align-items:center;height:2.5rem;padding:0 1rem;display:flex}.schedule-header h2{font-size:.95rem;font-weight:700}.calendar-container{touch-action:none;flex-direction:column;flex:1;width:100%;display:flex;overflow:hidden}.calendar-grid{flex-direction:column;flex:1;gap:0;width:100%;padding:0;display:flex;overflow:hidden}.grid-header{flex-shrink:0;grid-template-columns:3.2rem repeat(7,1fr);gap:0;height:2.6rem;margin-bottom:4px;display:grid}.time-header-spacer{background:0 0;border:none}.day-label{background:var(--card-bg);border:.5px solid #00000014;flex-direction:column;justify-content:center;align-items:center;display:flex}.day-label .dw{color:#444;text-transform:uppercase;margin-bottom:-3px;font-size:.6rem;font-weight:700}.day-label .dn{color:#000;font-size:.95rem;font-weight:900}.grid-body{flex:1;grid-template-rows:repeat(16,1fr);grid-template-columns:3.2rem repeat(7,1fr);gap:0;display:grid}.time-cell-label{color:var(--text-main);pointer-events:none;background:0 0;border-bottom:1px solid #00000014;justify-content:center;align-items:center;padding:0;font-size:.85rem;font-weight:900;display:flex}.slot-cell{background:var(--card-bg);color:#000;letter-spacing:-.02em;text-align:center;border-bottom:1px solid #00000014;border-right:.5px solid #0000000d;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:.7rem;font-weight:900;line-height:1;display:flex}.slot-cell.taken{z-index:2;border-color:#0000000d}.slot-cell.admin-taken{z-index:2;border-color:#e2e8f0}.slot-cell.selected{z-index:10;background-color:var(--primary-color)!important;color:#fff!important}.slot-cell.mine{z-index:3;border-color:#f3722c;color:#fff!important;background-color:#ff9f1c!important}.slot-time-display{color:#fff;font-size:.75rem;font-weight:800}.day-label:nth-child(7),.day-label:nth-child(8),.grid-body .slot-cell:nth-child(8n+7),.grid-body .slot-cell:nth-child(8n){background-color:#fff1f2}.slot-cell.past{pointer-events:none;position:relative}.slot-cell.past:before{content:"×";color:#94a3b8;z-index:5;justify-content:center;align-items:center;font-size:1.2rem;font-weight:300;display:flex;position:absolute}.tab-bar{width:100%;height:calc(4.5rem + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#fff;border-top:1px solid #e7e5e4;flex-shrink:0;display:flex}.tab-bar button{color:#a8a29e;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.65rem;display:flex}.tab-bar button.active{color:var(--primary-color)}.booking-status-container{flex-shrink:0;align-items:center;height:5rem;padding:0 .75rem;display:flex}.action-bar{background:#fff;border:1px solid #e7e5e4;border-radius:16px;justify-content:space-between;align-items:center;width:100%;min-height:4rem;padding:.75rem 1rem;display:flex;box-shadow:0 4px 12px #0000000d}.action-bar.booking-active{background:#fefce8;border-color:#fef08a}.action-bar.confirm-mode{background:var(--text-main);color:#fff;border-color:var(--text-main)}.action-bar.empty-mode{box-shadow:none;color:var(--text-muted);background:0 0;border-color:#0000;justify-content:center}.action-bar .info-side{flex-direction:row;align-items:center;gap:.75rem;display:flex}.action-bar .label{text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-size:.75rem;font-weight:600}.action-bar .value{font-size:.95rem;font-weight:800}.btn-action{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:800;line-height:1;transition:transform .1s;display:inline-flex}.btn-primary{background:var(--primary-color);color:#fff}.btn-danger{color:#ef4444;background:#fee2e2;border:1px solid #fecaca}.btn-lock{color:#ef4444;background:#fee2e2}.btn-unlock{color:#10b981;background:#ecfdf5}.loading{width:100%;height:100%;color:var(--primary-color);justify-content:center;align-items:center;font-weight:700;display:flex}.full-height{text-align:center;background:var(--bg-color);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:2rem;display:flex}.full-height h2{color:var(--text-main);margin:1.5rem 0 .5rem;font-size:1.5rem;font-weight:800}.full-height p{color:var(--text-muted);margin-bottom:2.5rem;font-size:1rem}.btn-secondary{width:100%;max-width:280px;color:var(--text-main);background:#fff;border:2px solid #e7e5e4;border-radius:20px;font-size:1.2rem;font-weight:700;box-shadow:0 4px 12px #00000008;height:4.5rem!important}.view-container h2,.header h1{color:#000!important;opacity:1!important}.logout-btn-header{color:#1c1917;text-transform:uppercase;letter-spacing:.5px;background:#fff;border:1.5px solid #e7e5e4;border-radius:12px;padding:.5rem .8rem;font-size:.75rem;font-weight:800}.admin-panel .header{background:#fff;border-bottom:1px solid #f5f5f4;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1.25rem;display:flex}.admin-panel .header h1{margin:0;font-size:1.5rem;font-weight:900}.login-container{z-index:1000;background:linear-gradient(135deg,#fafaf9 0%,#f5f5f4 100%);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.login-form{flex-direction:column;gap:1rem;width:100%;max-width:320px;display:flex}.login-form h2{text-align:center;color:var(--text-main);font-size:1.75rem;font-weight:800}.login-form p{color:var(--text-muted);text-align:center;margin-bottom:1rem;font-size:.95rem}.login-form input{color:#000!important;-webkit-text-security:none!important;background:#fff!important;border:2px solid #e7e5e4!important;border-radius:20px!important;outline:none!important;width:100%!important;height:4.5rem!important;padding:0 1.5rem!important;font-size:1.2rem!important;font-weight:600!important}.login-form button{background-color:var(--primary-color)!important;color:#fff!important;cursor:pointer!important;border:none!important;border-radius:20px!important;width:100%!important;height:4.5rem!important;font-size:1.2rem!important;font-weight:800!important;box-shadow:0 10px 25px #d4a3734d!important}.admin-settings-card{z-index:100;background:#fff;border:1px solid #f5f5f4;border-radius:20px;padding:1.5rem;position:relative;box-shadow:0 4px 12px #0000000d}.user-profile-card{background:#fff;border:1px solid #f5f5f4;border-radius:20px;align-items:center;gap:1rem;margin-bottom:2rem;padding:1.25rem;display:flex;box-shadow:0 4px 12px #0000000d}.user-profile-card .details{flex-direction:column;flex:1;display:flex}.user-profile-card .details strong{font-size:1.2rem;font-weight:800}.user-profile-card .details span{color:var(--text-muted);font-size:.85rem}.device-list{flex-direction:column;gap:.4rem;display:flex}.device-card{background:#fff;border:1px solid #f5f5f4;border-radius:16px;justify-content:space-between;align-items:center;padding:.5rem .8rem;display:flex;box-shadow:0 2px 8px #0000000a}.device-info-text{flex-direction:column;line-height:1.15;display:flex}.device-name{color:var(--text-main);font-size:.95rem;font-weight:700}.device-id-label{color:var(--text-muted);font-family:monospace;font-size:.7rem}.device-status{text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.status-authorized{color:var(--accent-green)}.status-waiting{color:var(--primary-color)}.btn-allow{background-color:var(--primary-color);color:#fff;border:none;border-radius:12px;padding:.6rem 1rem;font-weight:700}.btn-remove{color:#94a3b8;background:0 0;border-radius:12px;padding:.6rem 1rem;font-weight:700;border:1.5px solid #cbd5e1!important}.cancel-link{color:#e76f51;background:0 0;border:none;font-size:.8rem;font-weight:600;text-decoration:underline}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.overlay-content{background:#fff;border-top-left-radius:24px;border-top-right-radius:24px;flex-direction:column;width:100%;max-width:500px;max-height:80dvh;padding:1.5rem;display:flex;box-shadow:0 -10px 40px #0000001a}.overlay-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.overlay-header h3{font-size:1.25rem;font-weight:800}.user-scroll-list{flex-direction:column;flex:1;gap:.5rem;padding-bottom:2rem;display:flex;overflow-y:auto}.user-selection-row{background:#f8fafc;border:1px solid #f1f5f9;border-radius:16px;justify-content:space-between;align-items:center;padding:1rem;display:flex}.user-selection-row span{font-size:1rem;font-weight:700}.btn-select{background:var(--primary-color);color:#fff;border:none;border-radius:10px;padding:.5rem 1rem;font-size:.8rem;font-weight:800}.btn-close-overlay{width:32px;height:32px;color:var(--text-muted);background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.in-app-notification{top:calc(.5rem + var(--safe-top));z-index:3000;color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:16px;align-items:center;gap:.75rem;width:calc(100% - 1rem);max-width:484px;margin-left:auto;margin-right:auto;padding:.85rem 1rem;display:flex;position:fixed;left:0;right:0;box-shadow:0 10px 25px #d9770659}.notification-icon-wrapper{color:#fff;background:#fff3;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.notification-text{flex-direction:column;flex:1;display:flex}.notification-title{letter-spacing:-.01em;font-size:.85rem;font-weight:800}.notification-body{color:#ffffffe6;font-size:.8rem;font-weight:600}.chat-view-overlay{z-index:2500;background:#f1f5f9;flex-direction:column;max-width:500px;margin:0 auto;display:flex;position:fixed;inset:0}.chat-header{height:calc(3.5rem + var(--safe-top));padding-top:var(--safe-top);background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:.5rem;padding-left:.5rem;padding-right:1rem;display:flex}.btn-back{width:44px;height:44px;color:var(--primary-color);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.chat-client-info{align-items:center;gap:.75rem;display:flex}.avatar-placeholder{background:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;font-weight:800;display:flex}.chat-client-name{color:#000;font-size:1rem;font-weight:700;line-height:1.2}.chat-client-status{color:#64748b;font-size:.75rem;transition:color .3s}.chat-client-status.online{color:#10b981;font-weight:700}.chat-messages-container{flex-direction:column;flex:1;gap:2px;padding:.75rem;display:flex;overflow-y:auto}.chat-date-bubble{text-transform:uppercase;color:#64748b;background:#0000000d;border-radius:12px;align-self:center;padding:2px 10px;font-size:.7rem;font-weight:700}.chat-bubble-system{color:#64748b;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;align-self:center;max-width:80%;padding:.75rem 1rem;font-size:.85rem}.chat-bubble{border-radius:18px;max-width:85%;padding:.4rem .6rem .3rem .75rem;font-size:.95rem;font-weight:500;line-height:1.35;position:relative}.chat-message-text{word-break:break-word;white-space:pre-wrap}.chat-bubble.sent{background:var(--primary-color);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.received{color:#000;background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:4px;align-self:flex-start}.chat-message-time{float:right;opacity:.7;margin-top:4px;margin-left:8px;font-size:.65rem;position:relative;bottom:-2px}.chat-bubble.sent .chat-message-time{color:#fffc}.chat-bubble.received .chat-message-time{color:#94a3b8}.chat-bubble:after{content:"";clear:both;display:block}.chat-date-bubble{color:#64748b;background:#00000014;border-radius:20px;align-self:center;margin:1rem 0;padding:4px 12px;font-size:.75rem;font-weight:700}.chat-footer{padding:.75rem 1rem;padding-bottom:calc(.75rem + var(--safe-bottom));background:#fff;border-top:1px solid #e2e8f0}.chat-input-wrapper{background:#f8fafc;border:1px solid #e2e8f0;border-radius:24px;align-items:center;gap:.75rem;padding:.5rem .5rem .5rem 1.25rem;display:flex}.chat-input-wrapper input{color:#000;background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.btn-send-placeholder{background:var(--primary-color);color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}
