*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f1f5f9;color:#0f172a}a{text-decoration:none;color:inherit}input[type=date]{max-width:180px}.section{border:1px solid #eee;padding:16px;margin-bottom:20px;border-radius:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.app-root{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;background:#0f172af7;color:#fff;padding:.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}.header-nav{position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.75rem}.brand-logo{font-size:1.8rem}.brand-title{font-weight:700}.brand-subtitle{font-size:.8rem;opacity:.8}.nav{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.85rem}.nav-menu{width:100%;display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;margin-top:.35rem;max-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);transition:max-height .25s ease,opacity .2s ease,transform .25s ease}.nav-menu.open{max-height:400px;opacity:1;transform:translateY(0)}.nav-link{display:inline-block;padding:.4rem .9rem;border-radius:999px;border:1px solid transparent;background:transparent;color:#1f2937;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.nav-link:hover{background:#e5f0ff;border-color:#bfdbfe;color:#1f5fae}.nav-link.active{background:#1f5fae;color:#fff;border-color:#1d4ed8;box-shadow:0 0 0 2px #3b82f659;font-weight:600}.nav-link.active:hover{background:#e5f0ff;border-color:#bfdbfe;color:#1f5fae}.nav-link:focus,.nav-toggle:focus{outline:2px solid #1f5fae;outline-offset:3px}.nav-toggle{display:block;background:none;border:1px solid #cbd5f5;border-radius:999px;padding:.25rem .55rem;cursor:pointer;font-size:1rem;line-height:1;color:#1f5fae;transition:background .2s ease,color .2s ease,border-color .2s ease}.nav-toggle-icon{font-size:1.8rem;line-height:1;display:inline-block;padding:0 4px}.nav-toggle:hover{background:#e0edff;border-color:#1f5fae}.nav-toggle.open{background:#1f5fae;color:#fff}@media (max-width: 768px){.nav-menu{flex-direction:column;width:100%;overflow:hidden;max-height:0;opacity:0;transform:translateY(-10px);transition:max-height .35s ease,opacity .35s ease,transform .35s ease}.nav-menu.open{max-height:500px;opacity:1;transform:translateY(0)}.nav-link{width:100%;padding:.45rem .75rem}}@media (min-width: 769px){.header-nav{align-items:center}.nav-toggle{display:none}.nav-menu{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:0;max-height:none;opacity:1;transform:none}}.main{flex:1;padding:1rem;max-width:1080px;width:100%;margin:0 auto}.footer{background:#0f172a;color:#e2e8f0;padding:.75rem 1rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.85rem}.social{display:flex;gap:.75rem}.card{background:#fff;border-radius:1rem;padding:1rem;box-shadow:0 12px 30px #0f172a14}.card h2{margin-top:0}.grid{display:grid;gap:1rem}@media (min-width: 768px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-card-grid:has(.slot-card:only-child){justify-content:flex-start}}.btn{border-radius:999px;padding:.5rem 1.2rem;border:none;cursor:pointer;font-weight:600;background:#0ea5e9;color:#fff}.btn.secondary{background:#e2e8f0;color:#0f172a}.btn:disabled{opacity:.6;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.field label{font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{border-radius:.5rem;border:1px solid #cbd5f5;padding:.4rem .6rem;font-size:.9rem}.field small{font-size:.75rem;color:#6b7280}.banner{background:linear-gradient(135deg,#0ea5e9,#22c55e);color:#fff;border-radius:1.25rem;padding:1.5rem;display:grid;gap:1rem}.banner-title{font-size:1.8rem;font-weight:800}.banner-text{font-size:.95rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.media-card{background:#f9fafb;border-radius:.75rem;padding:.4rem;box-shadow:0 4px 12px #0f172a0d;display:flex;flex-direction:column;gap:.35rem}.media-thumb{width:100%;border-radius:.6rem;max-height:220px;object-fit:cover}.media-caption{font-size:.85rem;font-weight:500;margin-top:.1rem}.media-meta{font-size:.7rem;color:#6b7280}.slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.slot-cell{border-radius:.75rem;background:#fff;padding:.5rem;font-size:.8rem;text-align:left;border:1px solid #e5e7eb}.slot-cell.holiday{background:#fee2e2;border-color:#fecaca}.slot-cell.full{background:#e5e7eb;border-color:#d1d5db}.slot-list{list-style:none;padding:0;margin:.5rem 0}.slot-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border:1px solid #e5e7eb;border-radius:.4rem;margin-bottom:.4rem}.calendar-header{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:1rem 0 .5rem}.calendar-title{font-weight:600;font-size:1rem}.calendar{border-radius:1.25rem;background:linear-gradient(#f8fafc,#f1f5f9);padding:.85rem;box-shadow:inset 0 0 0 1px #e5e7eb}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:.7rem;text-align:center;margin-bottom:.35rem;color:#64748b;letter-spacing:.02em;font-weight:600}.calendar-weekdays>div{padding:.25rem 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;transition:transform .25s ease,opacity .25s ease}.calendar-grid.slide-left{transform:translate(-20px);opacity:0}.calendar-grid.slide-right{transform:translate(20px);opacity:0}.calendar-day{position:relative;border-radius:.75rem;padding:6px 6px 8px;min-height:66px;cursor:pointer;background:#fff;border:1px solid #e5e7eb;transition:background .15s ease,border-color .15s ease,transform .12s ease,box-shadow .12s ease}.calendar-day:hover:not(.past):not(.empty){background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 10px #0f172a0f}.calendar-day.full:hover,.calendar-day.holiday:hover,.calendar-day.weekoff:hover{filter:grayscale(.2)}.calendar-day .day-number{font-weight:600;font-size:.8rem}.calendar-day.weekoff{background:#f1f5f9;color:#334155;cursor:not-allowed}.calendar-day.weekoff .day-label{color:#475569;font-size:.7rem;margin-top:2px}.calendar-day.holiday{background:#fee2e2;color:#7f1d1d;cursor:not-allowed}.calendar-day.holiday .day-label{color:#b91c1c;font-weight:600;font-size:.7rem}.calendar-day.available{background:#ecfdf5;color:#065f46}.calendar-day.full{background:#fef3c7;color:#92400e;cursor:not-allowed}.calendar-day.full .day-label{font-size:.7rem;font-weight:600}.calendar-day.noslots{background:#f9fafb;color:#9ca3af}.calendar-day.today{box-shadow:0 0 0 2px #38bdf8 inset}.calendar-day.past{opacity:.35;cursor:not-allowed;filter:grayscale(.4)}.calendar-day.past:hover{background:inherit}.calendar-day.empty{background:transparent;border:none;cursor:default}.calendar-day.selected{border:2px solid #1e3a8a;background:linear-gradient(#e0ebff,#eef2ff);box-shadow:0 0 0 2px #93c5fd;z-index:2}.calendar-day.selected .day-number{font-weight:700;color:#1e3a8a}.calendar-day.auto-selected{animation:pulse 1.4s ease infinite}@keyframes pulse{0%{box-shadow:0 0 #38bdf866}70%{box-shadow:0 0 0 6px #38bdf800}to{box-shadow:0 0 #38bdf800}}.calendar-day:hover .dot{transform:scale(1.2);transition:transform .15s ease}.day-number{font-size:.85rem;font-weight:600;color:#0f172a}.day-label{margin-top:2px;font-size:.65rem;font-weight:600;opacity:.85}.info-box{border-radius:6px;padding:12px;margin-top:8px}.info-box.weekoff{background:#f1f5f9;border-left:4px solid #64748b}.info-box.holiday{background:#fee2e2;border-left:4px solid #b91c1c}.badge{font-size:.7rem;padding:.1rem .4rem;border-radius:.4rem;font-weight:600}.badge.holiday{background:#fee2e2;color:#7f1d1d}.badge.weekoff{background:#f1f5f9;color:#334155}.badge.series{background:#e0f2fe;color:#075985}.badge.next{background:#dcfce7;color:#166534;font-size:.65rem;margin-top:2px;display:inline-block}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;opacity:.9}.dot.available{background:#22c55e}.dot.full{background:#f59e0b}.dot.holiday{background:#ef4444}.dot.weekoff{background:#94a3b8}.dot.empty{display:none}.day-indicator{position:absolute;bottom:6px;right:6px}.day-tooltip{position:absolute;left:50%;bottom:110%;transform:translate(-50%);background:#0f172a;color:#fff;border-radius:.6rem;padding:.4rem .6rem;font-size:.75rem;white-space:nowrap;box-shadow:0 6px 20px #00000040;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.calendar-day:hover .day-tooltip{opacity:1;transform:translate(-50%) translateY(-4px)}.day-tooltip a{color:#38bdf8;text-decoration:underline}.dashboard-tabs{margin:1rem 0}.dashboard-tabs-desktop{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-tabs-mobile{display:none}@media (max-width: 768px){.dashboard-tabs-desktop{display:none}.dashboard-tabs-mobile{display:block}.dashboard-tabs-toggle{width:100%;justify-content:flex-start;display:inline-flex;align-items:center}.dashboard-tabs-dropdown{margin-top:.5rem;border-radius:.5rem;border:1px solid #e5e7eb;padding:.4rem;background:#fff;box-shadow:0 4px 10px #0f172a14}.dashboard-tab-item{display:block;width:100%;text-align:left;padding:.35rem .6rem;font-size:.85rem;margin-bottom:.25rem}.dashboard-tab-item.active{border-color:#0ea5e9;background:#e0f2fe}}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 37%,#e5e7eb 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:.5rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.calendar-day.skeleton{min-height:64px;cursor:default}.slot-skeleton{height:52px}.slot-periods{display:grid;gap:1.25rem}.slot-period-title{font-size:1rem;font-weight:700;margin-bottom:.4rem;color:#0f172a;padding-left:.25rem;border-left:4px solid transparent}.slot-period{margin-bottom:1.2rem}.slot-period.morning .slot-period-title{color:#0369a1;border-color:#38bdf8}.slot-period.afternoon .slot-period-title{color:#92400e;border-color:#fbbf24}.slot-period.evening .slot-period-title{color:#4338ca;border-color:#a5b4fc}.slot-period.morning .slot-card{border-left:4px solid #38bdf8;background:linear-gradient(180deg,#f0f9ff,#fff)}.slot-period.afternoon .slot-card{border-left:4px solid #fbbf24;background:linear-gradient(180deg,#fffbeb,#fff)}.slot-period.evening .slot-card{border-left:4px solid #a5b4fc;background:linear-gradient(180deg,#eef2ff,#fff)}.slot-period.morning .slot-time{color:#0284c7}.slot-period.afternoon .slot-time{color:#b45309}.slot-period.evening .slot-time{color:#4f46e5}.slot-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,220px));gap:.75rem;justify-content:start}.slot-card{border-radius:.9rem;padding:.75rem;background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 16px #0f172a14;display:flex;flex-direction:column;gap:.35rem;transition:transform .15s ease,box-shadow .15s ease;text-align:center}.slot-card.available:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a1f}.slot-card.full{background:#f1f5f9;border-color:#cbd5f5;box-shadow:none}.slot-time{font-size:1rem;font-weight:700;color:#0f172a}.slot-capacity{font-size:.8rem;color:#475569}.slot-book-btn{margin-top:.45rem;font-size:.8rem;padding:.35rem .9rem;width:fit-content;align-self:flex-start}.slot-full-label{margin-top:.4rem;font-size:.75rem;font-weight:600;color:#64748b}.table{width:100%;border-collapse:collapse;font-size:.82rem}.table th{text-align:left;padding:.6rem;background:#f8fafc;border-bottom:1px solid #e5e7eb}.table td{padding:.6rem;border-bottom:1px solid #e5e7eb}.table tr:hover{background:#f9fafb}.details-grid{display:grid;grid-template-columns:140px 1fr;gap:.4rem .75rem;font-size:.85rem}.section-title{margin:1rem 0 .5rem;border-bottom:1px solid #e5e7eb;padding-bottom:.25rem}.media-thumb{width:100%;height:160px;object-fit:cover;border-radius:.4rem;background:#f1f5f9}
