:root{--ink:#08090b;--graphite:#12151a;--surface:#181c22;--surface-strong:#20252d;--line:rgba(224,232,240,0.15);--line-strong:rgba(224,232,240,0.28);--paper:#f2f1eb;--muted:#aab3bf;--ice:#97c8ff;--gold:#c9a45b;--red:#ee5356;--shadow:0 24px 80px rgba(0,0,0,0.34);--font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:Iowan Old Style,Baskerville,"Times New Roman",serif;--radius-sm:10px;--radius-md:16px;--radius-lg:24px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:#031427;color:#f3f6fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.mini-shell{--navy:#031427;--surface:#08213b;--line:rgba(202,216,231,.38);--soft-line:rgba(202,216,231,.18);--red:#e31b2f;--paper:#f3f6fa;--steel:#a7b4c4;min-height:100dvh;width:min(100%,560px);margin:0 auto;padding:0 0 calc(88px + env(safe-area-inset-bottom));background:#031427}.mini-header{height:calc(78px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 22px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--soft-line)}.mini-brand{display:grid;gap:3px}.mini-brand strong{font-size:25px;letter-spacing:-.07em;line-height:1}.mini-brand strong span{color:var(--red)}.mini-brand small{color:var(--steel);font-size:9px;letter-spacing:.16em;font-weight:700}.avatar-button{width:43px;height:43px;padding:3px;border:1px solid var(--line);color:var(--paper);background:transparent;cursor:pointer}.avatar-button span{display:grid;width:100%;height:100%;place-items:center;border:1px solid var(--red);color:var(--red);font-size:13px;font-weight:800}.mini-content{padding:28px 20px 32px;animation:enter .26s ease-out}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.eyebrow,.section-tag{margin:0;color:var(--steel);text-transform:uppercase;font-size:10px;line-height:1.2;letter-spacing:.13em;font-weight:750}.mini-content h1{margin:9px 0 25px;font-size:clamp(35px,10vw,46px);line-height:.94;letter-spacing:-.06em}.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.training-card{position:relative;overflow:hidden;padding:23px 20px 19px;border:1px solid var(--line);background:var(--surface);box-shadow:0 12px 30px rgba(0,0,0,.18)}.training-card+.training-card{margin-top:14px}.training-card__rule{position:absolute;left:0;top:0;width:58%;height:3px;background:var(--red)}.training-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.training-card__top h2{margin:10px 0 8px;font-size:35px;line-height:1;letter-spacing:-.055em}.training-card__location{display:flex;align-items:center;gap:6px;margin:0;color:var(--paper);font-size:15px}.training-card__location .icon{color:var(--red);width:17px}.training-card__top small{display:block;max-width:230px;margin-top:8px;color:var(--steel);font-size:12px}.eyebrow{display:flex;align-items:center;gap:7px}.eyebrow .icon{color:var(--red);width:18px}.training-status{flex:0 0 auto;padding:7px 8px;border:1px solid var(--red);color:var(--red);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.is-reserve .training-status{color:#f0bd68;border-color:#f0bd68}.capacity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 18px;padding-top:15px;border-top:1px solid var(--soft-line)}.capacity-grid>div+div{padding-left:13px;border-left:1px solid var(--soft-line)}.capacity-grid span{display:block;margin-bottom:5px;color:var(--steel);font-size:11px}.capacity-grid strong{display:block;font-size:21px;letter-spacing:-.04em}.capacity-grid b{color:var(--red)}.capacity-grid i{display:block;height:2px;margin-top:10px;background:rgba(243,246,250,.19)}.capacity-grid em{display:block;height:100%;background:var(--red)}.is-reserve .capacity-grid em{background:#f0bd68}.action-button{width:100%;min-height:55px;display:flex;align-items:center;justify-content:center;gap:12px;border:0;background:var(--red);color:#fff;font-size:16px;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease}.action-button:hover{background:#f03a47;transform:translateY(-1px)}.action-button:disabled{opacity:.65;cursor:wait}.action-button .icon{width:22px}.confirmed-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;color:#b9dfc6;border-top:1px solid var(--soft-line);padding-top:14px;font-size:12px;font-weight:650}.confirmed-actions span{display:flex;align-items:center;gap:5px}.confirmed-actions .icon{width:18px;color:#65c68d}.confirmed-actions button{border:0;padding:7px 0;background:transparent;color:var(--steel);cursor:pointer;font-size:12px;text-decoration:underline;text-underline-offset:4px}.confirmed-actions button:disabled{opacity:.5}.notice{margin:13px 0 0;padding:13px 14px;border-left:3px solid var(--red);background:rgba(8,33,59,.84);font-size:13px}.notice--success{border-color:#65c68d}.notice--reserve{border-color:#f0bd68}.notice--error{border-color:var(--red);color:#ffb9be}.performance{margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0 18px}.performance__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.performance__header button{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;color:var(--paper);font-size:12px;cursor:pointer}.performance__header button .icon{width:17px;color:var(--red)}.performance__header small{color:var(--steel);font-size:12px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);margin-top:17px}.stat-row>div+div{padding-left:15px;border-left:1px solid var(--line)}.stat-row strong{display:block;color:var(--red);font-size:47px;line-height:.88;letter-spacing:-.07em}.stat-row span{display:block;margin-top:8px;color:var(--steel);font-size:12px}.achievement-preview{width:100%;display:grid;grid-template-columns:64px 1fr 24px;align-items:center;gap:13px;margin:22px 0 0;padding:13px;color:var(--paper);border:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.achievement-preview>.icon{color:var(--steel)}.achievement-preview em,.achievement-preview small{display:block;color:var(--steel);font-size:11px;font-style:normal}.achievement-preview strong{display:block;margin:2px 0 5px;font-size:16px}.achievement-emblem{position:relative;display:grid;width:60px;height:65px;place-items:center;clip-path:polygon(50% 0,93% 15%,93% 70%,50% 100%,7% 70%,7% 15%);border:1px solid var(--frame,#95d9ff);background:#061b32;color:var(--frame,#95d9ff)}.achievement-emblem:after{position:absolute;inset:4px;border:1px solid;content:"";opacity:.6}.achievement-emblem .icon{z-index:1;width:25px}.frame-base{--frame:#f3f6fa}.frame-steel{--frame:#9ba7b5}.frame-ice{--frame:#95d9ff}.frame-battle{--frame:#e31b2f}.frame-silver{--frame:#d8dee7}.frame-club_legend,.frame-golden_helmet{--frame:#e7bf65}.month-card{margin-top:-7px;padding:16px 13px 12px;border:1px solid var(--line);background:var(--surface)}.month-card header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;text-align:center}.month-card header strong{font-size:15px;text-transform:capitalize}.month-card button{height:34px;border:0;background:transparent;color:var(--paper);font-size:29px;cursor:pointer}.calendar-days,.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-week{margin-top:16px;color:var(--steel);font-size:10px}.calendar-days{row-gap:8px;margin-top:11px}.calendar-days span{position:relative;display:grid;width:31px;height:31px;place-items:center;justify-self:center;color:var(--paper);font-size:13px}.calendar-days .muted{color:rgba(167,180,196,.35)}.calendar-days .has-event{border:1px solid var(--red);color:var(--red);font-weight:800}.calendar-days .has-event:after{position:absolute;bottom:3px;width:3px;height:3px;border-radius:50%;background:var(--red);content:""}.calendar-list-title{margin:26px 0 11px}.training-card--compact{padding:18px 16px 15px}.training-card--compact .training-card__top h2{font-size:27px}.training-card--compact .capacity-grid{margin:15px 0 14px}.training-card--compact .action-button{min-height:46px}.profile-hero{position:relative;overflow:hidden;min-height:405px;border:2px solid var(--frame,#95d9ff);background:#061b32}.profile-hero:after,.profile-hero:before{position:absolute;z-index:2;content:"";pointer-events:none}.profile-hero:before{inset:12px;border:1px solid color-mix(in srgb,var(--frame) 55%,transparent)}.profile-hero:after{top:0;left:0;width:52%;height:4px;background:var(--red)}.profile-hero img{position:absolute;inset:55px 0 0;width:100%;height:280px;object-fit:cover;object-position:center;opacity:.86}.profile-hero__top{position:absolute;z-index:3;top:22px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-start;color:var(--frame)}.profile-hero__top strong{font-size:57px;line-height:.8;letter-spacing:-.08em}.profile-hero__top span{max-width:130px;text-align:right;font-size:10px;font-weight:800;letter-spacing:.14em}.profile-hero__footer{position:absolute;z-index:3;left:22px;right:22px;bottom:20px}.profile-hero__footer h1{margin:0;font-size:29px;line-height:1}.profile-hero__footer span{display:block;margin-top:9px;color:var(--frame);font-size:9px;font-weight:800;letter-spacing:.14em}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:16px;border:1px solid var(--line)}.profile-stats div{padding:16px 11px}.profile-stats div+div{border-left:1px solid var(--line)}.profile-stats span{display:block;min-height:29px;color:var(--steel);font-size:10px}.profile-stats strong{display:block;margin-top:6px;color:var(--red);font-size:33px;line-height:.9;letter-spacing:-.06em}.achievement-section{margin-top:28px}.achievement-list{margin-top:12px;border-top:1px solid var(--line)}.achievement-list article{display:grid;grid-template-columns:53px 1fr 36px;align-items:center;gap:12px;min-height:78px;border-bottom:1px solid var(--line)}.achievement-list .achievement-emblem{width:45px;height:50px}.achievement-list small,.achievement-list strong{display:block}.achievement-list strong{font-size:14px}.achievement-list small{margin-top:4px;color:var(--steel);font-size:11px}.achievement-list b{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--line);color:var(--steel);font-size:11px}.achievement-list b .icon{width:16px;color:#65c68d}.achievement-list .locked{opacity:.46;filter:saturate(.4)}.mini-nav{position:fixed;z-index:9;bottom:0;left:50%;width:min(100%,560px);transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,1fr);padding:7px 10px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(3,20,39,.98)}.mini-nav button{display:grid;min-height:58px;place-items:center;gap:3px;border:0;background:none;color:var(--steel);font-size:10px;cursor:pointer}.mini-nav .icon{width:22px}.mini-nav button.active{color:var(--red)}.mini-nav button.active:before{width:42px;height:2px;margin-bottom:-2px;background:var(--red);content:""}.mini-state{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:18px;padding:34px;text-align:center}.crest-mark,.pulse-mark{display:grid;width:56px;height:64px;place-items:center;clip-path:polygon(50% 0,95% 15%,95% 67%,50% 100%,5% 67%,5% 15%);border:1px solid var(--red);color:var(--red);font-size:15px;font-weight:900;letter-spacing:-.06em}.pulse-mark{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.55;transform:scale(.95)}}.access-denied h1{margin:0;font-size:39px;letter-spacing:-.06em}.access-denied p{max-width:320px;margin:0;color:var(--steel);line-height:1.5}.empty-training{display:grid;justify-items:start;gap:11px;padding:22px;border:1px solid var(--line);background:var(--surface)}.empty-training .crest-mark{width:32px;height:37px;font-size:9px}.empty-training strong{font-size:16px}.empty-training p{margin:0;color:var(--steel);font-size:13px;line-height:1.5}.loading-card{display:grid;gap:13px;min-height:280px;padding:22px;border:1px solid var(--line);background:var(--surface)}.loading-card i{display:block;height:15px;background:rgba(167,180,196,.13);animation:shimmer 1.3s infinite alternate}.loading-card i:nth-child(2){width:58%;height:42px}.loading-card i:nth-child(3){width:72%}.loading-card i:nth-child(4){align-self:end;height:54px}@keyframes shimmer{to{opacity:.35}}@media (min-width:561px){body{background:#020d1b}.mini-shell{min-height:100vh;box-shadow:0 0 0 1px rgba(243,246,250,.1),0 30px 90px rgba(0,0,0,.35)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}