:root{--bg:#f8f9fa;--surface:#fff;--border:#e2e5e9;--text:#1a1a2e;--text-secondary:#6b7280;--primary:#4f46e5;--primary-light:#e0e7ff;--success:#10b981;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--warning:#f59e0b;--warning-light:#fef3c7;--radius:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--toast-bg:#1a1a2e;--toast-text:#fff}[data-theme=dark]{--bg:#0f0f23;--surface:#1a1a2e;--border:#2d2d44;--text:#e8e8f0;--text-secondary:#9ca3af;--primary:#6366f1;--primary-light:#1e1b4b;--success:#34d399;--success-light:#064e3b;--danger:#f87171;--danger-light:#7f1d1d;--warning:#fbbf24;--warning-light:#78350f;--shadow:0 1px 3px #0000004d;--shadow-lg:0 10px 15px -3px #0006;--toast-bg:#e8e8f0;--toast-text:#1a1a2e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font);-webkit-text-size-adjust:100%;background:var(--bg);color:var(--text);font-size:16px}body{justify-content:center;min-height:100dvh;display:flex}#app{background:var(--bg);flex-direction:column;width:100%;max-width:480px;min-height:100dvh;display:flex;position:relative}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.header-title{font-size:18px;font-weight:700}.header-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:600;display:flex}.header-btn:active{opacity:.8}.header-btn:disabled{opacity:.4}.week-strip{background:var(--surface);border-bottom:1px solid var(--border);gap:0;display:flex}.week-day{text-align:center;cursor:pointer;min-width:0;font-family:var(--font);color:var(--text-secondary);background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:10px 2px;font-size:12px;transition:all .15s}.week-day.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.week-day.today{color:var(--primary);font-weight:700}.week-day.today .day-num{background:var(--primary);color:#fff;border-radius:50%;width:36px;height:36px;margin:2px auto 0;font-size:16px;line-height:36px}.week-day .day-num{margin-top:2px;font-size:18px;font-weight:700;display:block}.week-day.has-slots .day-num:after{content:"";background:var(--primary);border-radius:50%;width:5px;height:5px;margin:2px auto 0;display:block}.week-nav{background:var(--surface);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 12px;font-size:13px;display:flex}.week-nav button{border:1px solid var(--border);cursor:pointer;font-size:13px;font-family:var(--font);color:var(--text);background:0 0;border-radius:6px;padding:4px 12px}.week-nav button:active{background:var(--bg)}.slot-list{flex-direction:column;flex:1;gap:8px;padding:12px 16px 140px;display:flex;overflow-y:auto}.slot-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;border:1px solid var(--border);align-items:center;gap:12px;padding:14px 16px;transition:box-shadow .15s;display:flex;position:relative}.slot-card:active{box-shadow:var(--shadow-lg)}.slot-card.open{border-left:4px solid var(--success)}.slot-card.full{border-left:4px solid var(--warning)}.slot-card.cancelled{border-left:4px solid var(--danger);opacity:.6}.slot-time{min-width:80px;font-size:20px;font-weight:700;line-height:1.2}.slot-time .end{color:var(--text-secondary);font-size:14px;font-weight:400}.slot-info{flex:1}.slot-status{border-radius:20px;margin-bottom:4px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.slot-status.free{background:var(--success-light);color:var(--success)}.slot-status.booked{background:var(--primary-light);color:var(--primary)}.slot-status.pending{background:var(--warning-light);color:var(--warning)}[data-theme=dark] .slot-status.free{color:#6ee7b7}[data-theme=dark] .slot-status.booked{color:#a5b4fc}[data-theme=dark] .slot-status.pending{color:#fde68a}.slot-bookings{color:var(--text-secondary);margin-top:2px;font-size:13px}.slot-arrow{color:var(--text-secondary);font-size:18px}.slot-card-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;font-size:16px;line-height:1;transition:background .15s}.slot-card-btn:hover{background:var(--bg)}[data-theme=dark] .slot-card-btn{color:#9ca3af}[data-theme=dark] .slot-card-btn:hover{color:var(--text);background:var(--bg)}.tab-content{animation:.2s tab-fade-in}@keyframes tab-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.toast-action{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:600}.empty-state{text-align:center;color:var(--text-secondary);padding:48px 16px;font-size:15px}.empty-state .icon{color:var(--primary);opacity:.4;justify-content:center;margin-bottom:12px;display:flex}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--surface);border-radius:16px 16px 0 0;flex-direction:column;gap:16px;width:100%;max-width:480px;max-height:85dvh;padding:12px 16px 20px;animation:.3s sheet-in;display:flex;overflow-y:auto}.modal-sheet:before{content:"";background:var(--border);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 4px}@keyframes sheet-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-sheet h2{font-size:18px;font-weight:700}.modal-sheet h3{color:var(--text-secondary);font-size:15px;font-weight:600}.form-group{flex-direction:column;gap:4px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-input,.form-select{border:1px solid var(--border);font-size:16px;font-family:var(--font);background:var(--bg);color:var(--text);border-radius:8px;width:100%;padding:10px 12px}.form-input:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-input::placeholder,.form-select::placeholder{color:var(--text-secondary);opacity:.5}.form-row{flex-wrap:wrap;gap:8px;display:flex;overflow:hidden}.form-row>*{flex:1;min-width:0}.btn{font-size:16px;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;transition:opacity .15s;display:flex}.btn:active{opacity:.8;transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{background:var(--bg)}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover{background:var(--bg)}.btn-sm{padding:6px 12px;font-size:14px}.btn-block{width:100%}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:480px;padding:6px 16px env(safe-area-inset-bottom,8px);z-index:50;gap:4px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{font-family:var(--font);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-size:11px;display:flex}.nav-item.active{color:var(--primary)}.nav-item .nav-icon{font-size:22px}.client-header{background:var(--primary);color:#fff;text-align:center;padding:20px 16px}.client-header h1{margin-bottom:4px;font-size:20px}.client-header p{opacity:.8;font-size:14px}.share-link-box{background:var(--bg);border:1px solid var(--border);word-break:break-all;color:var(--text-secondary);border-radius:8px;max-height:80px;padding:12px;font-size:13px;overflow-y:auto}.confirm-card{background:var(--surface);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);margin:24px 16px;padding:24px 20px}.confirm-card .time{margin:8px 0;font-size:32px;font-weight:700}.confirm-card .name{color:var(--text-secondary);margin-bottom:20px;font-size:18px}.confirm-buttons{gap:12px;display:flex}.confirm-buttons .btn{flex:1}.diary-entry{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:16px}.diary-entry .meta{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.diary-entry .students{margin-bottom:6px;font-size:14px}.diary-entry .students:last-child{border-bottom:none!important;padding-bottom:0!important}.diary-entry .notes{color:var(--text-secondary);font-size:14px;font-style:italic}.settings-section{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:16px}.settings-section h3{margin-bottom:12px}.toast{background:var(--toast-bg);color:var(--toast-text);z-index:200;white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:10px 20px;font-size:14px;font-weight:600;animation:.2s toast-in;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}}.client-form{flex-direction:column;gap:16px;padding:20px 16px;display:flex}@media (width>=481px){#app{border-left:1px solid var(--border);border-right:1px solid var(--border)}}
