@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5972bc34-module__OU16Qa__className{font-family:Inter,Inter Fallback;font-style:normal}
:root{--bg-color:#fcfbf4;--text-dark:#1a1a1a;--blue:#93d7f5;--yellow:#fde46c;--orange:#f9a64e;--purple:#c398ff;--pink:#ff98b3;--green:#bbf7d0;--red:#fecaca;--gray-light:#eee;--bg-primary:var(--bg-color);--bg-secondary:#ede8e0;--bg-card:#fff;--text-primary:var(--text-dark);--text-secondary:#1a1a1aa6;--text-muted:#aaa;--accent:var(--orange);--success:#4caf50;--success-light:#66bb6a;--warning:var(--orange);--danger:#e53935;--border:#e0d9d0;--card-red:#fdecea;--card-green:#e8f5e9;--card-yellow:#fff9e0;--radius:20px;--radius-sm:12px;--radius-xs:8px;--radius-lg:28px;--radius-full:40px;--shadow-sm:0 2px 8px #0000000f;--shadow:0 10px 30px #0000001a;--shadow-lg:0 8px 30px #0000001f;--transition:all .3s cubic-bezier(.4,0,.2,1);--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sar:env(safe-area-inset-right,0px);--sal:env(safe-area-inset-left,0px)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-primary)}html,body{color:var(--text-primary);overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;padding-top:var(--sat);padding-right:var(--sar);padding-bottom:var(--sab);padding-left:var(--sal);font-family:-apple-system,BlinkMacSystemFont,Inter,Nunito,sans-serif;overflow-x:hidden}@media (display-mode:standalone){body{padding-top:calc(var(--sat) + 10px)}}.app-container{z-index:10;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;padding:20px 20px 120px;position:relative}.header{background:0 0;justify-content:space-between;align-items:center;margin-bottom:30px;padding:5px 0 0;display:flex;position:relative;top:0}.logo-section{align-items:center;gap:8px;display:flex}.logo-section h1{letter-spacing:.5px;text-transform:uppercase;text-shadow:2px 2px #0000001a;font-size:22px;font-weight:800}.header-logo{border:3px solid var(--text-dark);object-fit:cover;width:44px;height:44px;box-shadow:3px 3px 0px var(--text-dark);background:#fff;border-radius:50%}.settings-btn{cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);text-transform:uppercase;letter-spacing:.5px;color:#000;background:#fff;border:4px solid #000;align-items:center;gap:8px;padding:10px 22px;font-size:14px;font-weight:900;text-decoration:none;display:flex;box-shadow:4px 4px #000}.settings-btn:visited{color:#000}.settings-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.settings-btn:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.welcome-box{margin-bottom:28px;position:relative}.welcome-box h2{font-size:26px;font-weight:800;line-height:1.2}.month-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;font-size:13px;font-weight:800}.calendar-strip{scrollbar-width:none;justify-content:space-between;gap:8px;margin-bottom:30px;padding:10px 12px;display:flex;overflow-x:auto}.calendar-strip::-webkit-scrollbar{display:none}.day-circle{cursor:pointer;width:60px;height:60px;transition:var(--transition);-webkit-user-select:none;user-select:none;border:3px solid #000;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:flex;position:relative;box-shadow:4px 4px #000}.day-circle span{letter-spacing:.5px;margin-bottom:1px;font-size:10px;font-weight:900}.day-circle.blue{background-color:var(--blue)}.day-circle.yellow{background-color:var(--yellow)}.day-circle.orange{background-color:var(--orange)}.day-circle.purple{background-color:var(--purple)}.day-circle.pink{background-color:var(--pink)}.day-circle.green{background-color:var(--green)}.day-circle.red{background-color:var(--red)}.day-circle.active{border-width:3px;transform:scale(1.1);box-shadow:4px 4px #000}.section-date{text-transform:capitalize;margin-bottom:18px;font-size:20px;font-weight:800}.sessions-list{flex-direction:column;gap:0;padding-bottom:24px;display:flex}.session-card{min-height:150px;box-shadow:none;cursor:pointer;transition:var(--transition);border:none;border-radius:28px;flex-direction:column;gap:10px;margin-bottom:18px;padding:20px;display:flex;position:relative;overflow:hidden}.session-card:hover{transform:translate(-3px,-3px);box-shadow:6px 6px #000}.session-card.blue{background-color:var(--blue);border:3px solid #000;box-shadow:4px 4px #000}.session-card.yellow{background-color:var(--yellow);border:3px solid #000;box-shadow:4px 4px #000}.session-card.green{background-color:#a5d6a7;border:3px solid #000;box-shadow:4px 4px #000}.session-card.orange{background-color:var(--orange);border:3px solid #000;box-shadow:4px 4px #000}.session-card.purple{background-color:#b39ddb;border:3px solid #000;box-shadow:4px 4px #000}.session-card.pink{background-color:#f48fb1;border:3px solid #000;box-shadow:4px 4px #000}.session-card.waitlist{background-color:var(--green);border:3px solid #000;box-shadow:4px 4px #000}.card-sticker{z-index:10;pointer-events:none;filter:drop-shadow(0 4px 4px #00000040);width:auto;height:130px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);position:absolute;bottom:-15px;left:50%;transform:translate(-20%)}.session-card:hover .card-sticker{transform:translate(20%)scale(1.1)rotate(5deg)}.card-header{align-items:center;gap:8px;display:flex}.card-time{font-size:20px;font-weight:800}.card-subtitle{opacity:.8;margin-top:-4px;font-size:16px;font-weight:600}.progress-container{align-items:center;gap:10px;margin-top:4px;display:flex}.progress-bar{background:#ffffff80;border-radius:10px;width:100px;height:12px;overflow:hidden}.progress-fill{background:#ffffffe6;border-radius:10px;height:100%;transition:width .6s}.posti-badge{text-align:center;width:58px;height:58px;transition:var(--transition);background:#fff;border:3px solid #000;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:20px;font-weight:800;line-height:1;display:flex;position:absolute;top:15px;right:18px;box-shadow:3px 3px #000}.posti-badge.booked{background-color:var(--success);color:#fff}.posti-badge.waitlist{background-color:var(--orange);color:#fff}.posti-badge .check-icon{font-size:32px;line-height:1}.posti-badge span{letter-spacing:.5px;color:var(--text-secondary);margin-top:2px;font-size:9px;font-weight:900}.empty-state{text-align:center;color:var(--text-secondary);padding:60px 24px}.empty-state-text{color:var(--text-secondary);font-size:16px;font-weight:800}.bottom-nav{bottom:calc(32px + env(safe-area-inset-bottom));z-index:1000;background:#fff;border:3px solid #000;border-radius:40px;justify-content:space-around;align-items:center;width:calc(100% - 40px);max-width:440px;height:68px;padding:0 10px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:5px 5px #000}.nav-mask{height:calc(env(safe-area-inset-bottom) + 80px);background:linear-gradient(to top,var(--bg-primary)0%,#fcfbf4cc 50%,transparent 100%);pointer-events:none;z-index:999;position:fixed;bottom:0;left:0;right:0}.nav-item.active{color:var(--orange)!important;text-decoration:none!important}.nav-item{text-transform:uppercase;color:var(--text-dark);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:12px;outline:none;flex-direction:row;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:900;display:flex;text-decoration:none!important}.nav-emoji{justify-content:center;align-items:center;font-size:22px;display:flex}.nav-icon-img{object-fit:contain;filter:drop-shadow(0 0 2px #0000001a);width:24px;height:24px;transition:transform .2s}.nav-item:hover .nav-icon-img{transform:scale(1.15)rotate(-5deg)}.nav-item.active .nav-icon-img{filter:drop-shadow(0 0 4px #ff980066)}.back-icon-img{object-fit:contain;width:32px;height:32px;transition:transform .2s}.settings-btn:hover .back-icon-img{transform:scale(1.1)rotate(-5deg)}.loading{flex:1;justify-content:center;align-items:center;height:100vh;padding:80px;display:flex}.spinner{border:4px solid #00000014;border-left-color:var(--orange);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.main-footer{text-align:center;width:100%;max-width:480px;color:var(--text-secondary);margin:0 auto;padding:40px 20px 140px;font-size:12px;line-height:1.6}.footer-info{margin-bottom:20px}.footer-info strong{color:var(--text-dark);margin-bottom:4px;font-weight:800;display:block}.footer-links{justify-content:center;gap:16px;display:flex}.footer-link{color:var(--text-dark);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:800;text-decoration:none}.footer-link:hover{color:var(--orange)}.btn{border-radius:var(--radius-full);cursor:pointer;transition:var(--transition);border:3px solid var(--text-primary);text-transform:uppercase;letter-spacing:1px;width:100%;min-width:0;max-width:100%;box-shadow:4px 4px 0px var(--text-primary);white-space:normal;word-wrap:break-word;text-align:center;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-family:inherit;font-size:15px;font-weight:900;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{box-shadow:6px 6px 0px var(--text-primary);transform:translate(-2px,-2px)}.btn-primary:active{box-shadow:2px 2px 0px var(--text-primary);transform:translate(2px,2px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:4px 4px 0px var(--text-primary);transform:none}.btn-secondary{background:var(--bg-card);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-secondary);box-shadow:6px 6px 0px var(--text-primary);transform:translate(-2px,-2px)}.btn-danger{color:var(--danger);border-color:var(--danger);box-shadow:4px 4px 0px var(--danger);background:0 0}.btn-danger:hover{background:var(--card-red);box-shadow:6px 6px 0px var(--danger);transform:translate(-2px,-2px)}.btn-sm{border-radius:var(--radius-full);letter-spacing:.5px;box-shadow:2px 2px 0px var(--text-primary);border-width:2px;width:auto;padding:6px 14px;font-size:11px}.btn-sm:hover{box-shadow:3px 3px 0px var(--text-primary);transform:translate(-1px,-1px)}.checkbox-group{cursor:pointer;align-items:center;gap:12px;margin-top:20px;margin-bottom:24px;display:flex}.custom-checkbox{background:#fff;border:3px solid #000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;box-shadow:2px 2px #000}.custom-checkbox.checked{background:var(--yellow)}.checkbox-label{color:var(--text-dark);font-size:13px;font-weight:800;line-height:1.4}.checkbox-label a{color:var(--orange);text-decoration:underline}.checkbox-label a:hover{color:var(--text-dark)}.form-group{margin-bottom:16px}.form-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:800;display:block}.form-input{background:var(--bg-card);border:2.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);transition:var(--transition);min-width:0;max-width:100%;box-shadow:var(--shadow-sm);outline:none;padding:14px 18px;font-family:inherit;font-size:15px;font-weight:700}.form-input::placeholder{color:var(--text-muted);font-weight:600}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f9a64e26,var(--shadow-sm)}.form-input::-webkit-inner-spin-button{-webkit-appearance:none}.form-input::-webkit-outer-spin-button{-webkit-appearance:none}.form-select{background:var(--bg-card);border:2.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);transition:var(--transition);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%231a1a1a' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;outline:none;padding:14px 18px;font-family:inherit;font-size:15px;font-weight:700}.card{background:var(--bg-card);border-radius:var(--radius);border:2.5px solid var(--text-primary);transition:var(--transition);box-shadow:var(--shadow-sm);padding:16px}.card:hover{box-shadow:4px 4px 0px var(--text-primary);transform:translate(-2px,-2px)}.login-page{z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:30px;display:flex;position:relative}.login-logo{object-fit:cover;border:4px solid var(--text-primary);width:110px;height:110px;box-shadow:5px 5px 0px var(--text-primary);border-radius:50%;margin-bottom:20px;animation:3s ease-in-out infinite logoFloat}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-title{letter-spacing:3px;text-align:center;color:var(--text-primary);text-transform:uppercase;margin-bottom:24px;font-size:42px;font-weight:900}.login-subtitle{color:var(--accent);text-transform:uppercase;letter-spacing:2px;margin-bottom:32px;font-size:14px;font-weight:900}.login-form{border-radius:var(--radius-lg);background:#fff;border:4px solid #000;width:100%;max-width:380px;padding:28px 24px;box-shadow:8px 8px #000}.login-error{background:var(--card-red);border:2px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);text-align:center;margin-bottom:16px;padding:12px;font-size:13px;font-weight:800}.form-container{transition:max-height .4s cubic-bezier(.4,0,.2,1)}.tab-content{padding:4px;animation:.4s ease-out tabFadeIn}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.name-field-enter{animation:.3s ease-out slideDownFade}@keyframes slideDownFade{0%{opacity:0;height:0;margin-bottom:0;transform:translateY(-10px)}to{opacity:1;height:auto;margin-bottom:16px;transform:translateY(0)}}.tabs{background:var(--bg-secondary);border-radius:var(--radius-full);border:2px solid var(--border);gap:6px;margin-bottom:20px;padding:5px;display:flex}.tab{text-align:center;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:900}.tab.active{background:var(--orange);color:#fff;border:2px solid #000;box-shadow:2px 2px #000}.detail-page{padding-bottom:100px}.back-btn{color:var(--text-dark);cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);background:#fff;border:3px solid #000;align-items:center;gap:6px;margin-bottom:30px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:800;display:inline-flex;box-shadow:3px 3px #000}.back-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #000}.detail-header{text-align:center;padding:20px 0 24px}.detail-course-name{text-transform:uppercase;letter-spacing:3px;color:var(--accent);margin-bottom:4px;font-size:12px;font-weight:900}.detail-date{letter-spacing:1px;color:var(--text-primary);text-transform:uppercase;margin-bottom:4px;font-size:32px;font-weight:900}.detail-time{color:var(--text-secondary);font-size:16px;font-weight:700}.detail-stats{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius);text-align:center;border:3px solid #000;padding:20px 16px;box-shadow:4px 4px #000}.stat-value{letter-spacing:1px;color:var(--text-primary);font-size:38px;font-weight:900;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);margin-top:4px;font-size:10px;font-weight:900}.detail-section{margin-bottom:24px}.section-title{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:900;display:flex}.section-title .count{background:var(--text-primary);color:#fff;border-radius:var(--radius-full);padding:2px 8px;font-size:11px}.participant-list{flex-direction:column;gap:8px;display:flex}.participant-item{transition:var(--transition);background:#fff;border:3px solid #000;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:3px 3px #000}.participant-item:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #000}.participant-item.is-me{background-color:var(--green)}.participant-pos{width:32px;height:32px;color:var(--text-secondary);background:#f5f5f5;border:2px solid #000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:900;display:flex}.participant-pos.priority{background:var(--card-yellow);color:var(--text-primary);border-color:var(--warning)}.participant-name{flex:1;font-size:14px;font-weight:800}.participant-badge{text-transform:uppercase;border-radius:var(--radius-full);background:var(--card-yellow);color:#000;border:2px solid #000;padding:3px 10px;font-size:10px;font-weight:900;box-shadow:2px 2px #000}.participant-you{color:var(--success);font-size:11px;font-weight:900}.book-bar{background:linear-gradient(transparent,var(--bg-primary)30%);z-index:1000;flex-direction:column;align-items:center;gap:12px;padding:16px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.book-bar .btn{max-width:480px}.waitlist-section{border-top:2px dashed var(--border);padding-top:16px}.waitlist-section .section-title{color:var(--warning)}.admin-section{margin-bottom:32px}.admin-section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:16px;font-size:18px;font-weight:900;display:flex}.user-row{background:var(--bg-card);border-radius:var(--radius-sm);border:2.5px solid var(--border);transition:var(--transition);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 14px;display:flex}.user-row:hover{border-color:var(--text-primary)}.user-info{flex-direction:column;gap:2px;display:flex}.user-name{font-size:14px;font-weight:800}.toggle{background:var(--bg-secondary);border-radius:var(--radius-full);cursor:pointer;width:48px;height:26px;transition:var(--transition);border:2.5px solid var(--border);flex-shrink:0;position:relative}.toggle.active{background:var(--success-light);border-color:var(--success)}.toggle:after{content:"";width:18px;height:18px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:1px 1px 3px #0003}.toggle.active:after{left:22px}.course-card{background:var(--bg-card);border-radius:var(--radius);border:2.5px solid var(--text-primary);box-shadow:var(--shadow-sm);transition:var(--transition);margin-bottom:12px;padding:20px}.course-card:hover{box-shadow:4px 4px 0px var(--text-primary);transform:translate(-2px,-2px)}.course-name{margin-bottom:4px;font-size:18px;font-weight:900}.course-desc{color:var(--text-secondary);margin-bottom:12px;font-size:13px;font-weight:600;line-height:1.5}.course-meta{flex-wrap:wrap;gap:16px;display:flex}.course-meta-item{color:var(--text-secondary);align-items:center;gap:4px;font-size:13px;font-weight:700;display:flex}.course-meta-item strong{color:var(--text-primary)}.notification-banner{top:var(--sat);z-index:200;pointer-events:none;flex-direction:column;gap:8px;padding:16px;display:flex;position:fixed;left:0;right:0}@media (display-mode:standalone){.notification-banner{top:calc(var(--sat) + 30px)}}.notification-item{background:var(--bg-card);border:3px solid var(--text-primary);border-radius:var(--radius);width:100%;max-width:480px;box-shadow:4px 4px 0px var(--text-primary);pointer-events:auto;align-items:center;gap:12px;margin:0 auto;padding:14px 16px;animation:.4s ease-out slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.notification-text{flex:1;font-size:13px;font-weight:700}.notification-dismiss{background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);border:none;padding:4px 8px;font-size:14px;font-weight:800}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000b3;justify-content:center;align-items:flex-end;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-primary);padding:12px 24px calc(32px + env(safe-area-inset-bottom));border:4px solid var(--text-primary);-webkit-overflow-scrolling:touch;border-bottom:none;border-radius:32px 32px 0 0;width:100%;max-width:480px;max-height:85dvh;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;position:relative;overflow-y:auto;box-shadow:0 -10px 40px #0003}.modal-handle{background:#e0e0e0;border-radius:10px;flex-shrink:0;width:40px;height:5px;margin:0 auto 16px}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-title{letter-spacing:1px;text-align:center;text-transform:uppercase;margin-bottom:24px;font-size:24px;font-weight:900}.schedule-grid{flex-direction:column;gap:8px;display:flex}.schedule-day{background:var(--bg-secondary);border-radius:var(--radius-sm);border:2px solid var(--border);padding:12px}.schedule-day-name{text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:6px;font-size:12px;font-weight:900}.schedule-times{flex-wrap:wrap;gap:6px;display:flex}.schedule-time{background:var(--bg-card);border-radius:var(--radius-full);color:var(--text-primary);border:1.5px solid var(--border);padding:4px 10px;font-size:12px;font-weight:800}.skeleton{background:linear-gradient(90deg,var(--bg-secondary)25%,var(--bg-card)50%,var(--bg-secondary)75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes clickBounce{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.animate-fade-up{animation:.5s cubic-bezier(.16,1,.3,1) both fadeInUp}.animate-fade-in{animation:.4s ease-out both fadeIn}.animate-scale-in{animation:.4s cubic-bezier(.16,1,.3,1) both scaleIn}.animate-slide-in{animation:.4s cubic-bezier(.16,1,.3,1) both slideInRight}.animate-shake{animation:.2s ease-in-out 2 shake}.btn:active,.session-card:active,.nav-item:active,.day-circle:active,.back-btn:active{transition:all 50ms;transform:translate(2px,2px)!important;box-shadow:1px 1px #000!important}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}@media (max-width:480px){.app-container{padding:16px 16px 120px}.detail-stats{grid-template-columns:1fr 1fr;gap:10px}.bottom-nav{width:calc(100% - 32px);bottom:16px}}@media (min-width:768px){.modal{border-radius:var(--radius-lg);border-bottom:3px solid var(--text-primary);margin-bottom:20vh}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.action-alert{border:3px solid var(--text-dark);border-radius:var(--radius-full);width:100%;max-width:480px;box-shadow:4px 4px 0px var(--text-dark);text-align:center;box-sizing:border-box;background:#fff;padding:14px 24px;font-size:14px;font-weight:900;line-height:1.4;animation:.4s cubic-bezier(.175,.885,.32,1.275) both slide-up}.action-alert-error{border-color:var(--danger);box-shadow:4px 4px 0px var(--danger);color:var(--danger)}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.clouds-container{pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.cloud{filter:opacity(.7);will-change:transform,left;width:120px;position:absolute}.cloud img{width:100%;height:auto}.cloud-1{animation:15s linear infinite cloud-single-pass;top:15%}.cloud-2{width:150px;animation:20s linear -15s infinite cloud-single-pass;top:60%}.cloud-3{width:90px;animation:10s linear -30s infinite cloud-single-pass;top:35%}.cloud-4{width:180px;animation:40s linear -10s infinite cloud-single-pass;top:75%}@keyframes cloud-single-pass{0%{opacity:0;left:110%}5%{opacity:.7}95%{opacity:.7}to{opacity:0;left:-20%}}.card-edit-btn{cursor:pointer;width:32px;height:32px;transition:var(--transition);z-index:20;background:#fff;border:2px solid #000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex;position:relative;box-shadow:2px 2px #000}.card-edit-btn:hover{transform:scale(1.1)rotate(-5deg);box-shadow:3px 3px #000}.card-edit-btn:active{transform:scale(.95)!important;box-shadow:1px 1px #000!important}.workout-badge{vertical-align:middle;margin-left:6px;font-size:14px;animation:2s ease-in-out infinite pulse;display:inline-block}.workout-plan-box{border-radius:var(--radius);background:#fff;border:3px solid #000;padding:16px 18px;position:relative;overflow:hidden;box-shadow:4px 4px #000}.workout-line{color:var(--text-dark);padding:2px 0;font-size:14px;font-weight:700;line-height:1.8}.workout-line:not(:last-child){border-bottom:1px dashed var(--border)}.workout-textarea{resize:none;min-height:80px;max-height:120px;font-family:inherit;line-height:1.6}.workout-edit-box{animation:.2s ease-out both scaleIn}.admin-add-guest{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px}.guest-input-row{align-items:center;gap:8px;display:flex}.guest-input-row .form-input{flex:1;margin-bottom:0}.guest-tag{text-transform:uppercase;background:var(--yellow);color:var(--text-dark);vertical-align:middle;border:1.5px solid #000;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:800;display:inline-block}.remove-booking-btn{border:2px solid var(--border);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);transition:var(--transition);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:12px;font-weight:900;display:flex}.remove-booking-btn:hover{background:var(--orange);color:#000;border-color:#000;transform:scale(1.1)}.cookie-banner-overlay{z-index:2000;pointer-events:none;background:linear-gradient(#0000,#0000000d 50%);justify-content:center;padding:16px;display:flex;position:fixed;bottom:0;left:0;right:0}.cookie-banner{pointer-events:auto;background:#fff;border:4px solid #000;border-radius:20px;flex-direction:column;gap:16px;width:100%;max-width:480px;padding:16px 20px;animation:.6s cubic-bezier(.16,1,.3,1) both slideUp;display:flex;box-shadow:8px 8px #000}.cookie-content{align-items:flex-start;gap:14px;display:flex}.cookie-icon{flex-shrink:0;font-size:24px}.cookie-banner p{color:var(--text-dark);font-size:13px;font-weight:700;line-height:1.5}.cookie-link{color:var(--orange);font-weight:800;text-decoration:underline}.cookie-link:hover{color:var(--text-dark)}@media (min-width:600px){.cookie-banner{flex-direction:row;justify-content:space-between;align-items:center;padding:20px 28px}.cookie-banner .btn{flex-shrink:0}}
