:root{--bg:#060d18;--navy:#0b1526;--panel:#0f1d31;--panel2:#13233a;--line:#263b57;--ink:#f8f5f1;--muted:#a5b6ce;--quiet:#728aa7;--gold:#efc77f;--cyan:#36d7f7;--violet:#8742ff;--green:#62df9c;--radius:17px;--display:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Roboto,Arial,sans-serif}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:var(--sans);background:radial-gradient(ellipse 80% 40% at 85% -20%,#122747 0,transparent 85%),var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--cyan)}.noise{pointer-events:none;position:fixed;inset:0;opacity:.17;background-image:url('data:image/svg+xml,%3Csvg viewBox=%220 0 180 180%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.63%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 opacity=%22.09%22 filter=%22url(%23n)%22/%3E%3C/svg%3E');z-index:100}.app-shell{display:flex;max-width:1550px;min-height:100vh;margin:auto}.sidebar{flex:0 0 278px;position:sticky;top:0;height:100vh;padding:34px 24px 24px;border-right:1px solid #22324b;background:linear-gradient(170deg,#0e1a2d 0%,#081320 66%,#080f1b);display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding-bottom:36px}.crest-mark{height:45px;width:45px;display:grid;place-items:center;color:var(--gold);font-size:27px;border:1px solid #b6955c;background:linear-gradient(150deg,#1c3147,#0c1522);clip-path:polygon(50% 0,98% 25%,98% 75%,50% 100%,2% 75%,2% 25%)}.brand-title{font-family:var(--display);font-size:26px;letter-spacing:2.5px;white-space:nowrap}.brand-title span,.topbar-brand span{color:var(--gold)}.brand-caption{font-size:9px;color:#a0b4ce;letter-spacing:2.35px;margin-top:2px}.sidebar-group-caption,.eyebrow{color:var(--gold);letter-spacing:2.7px;text-transform:uppercase;font-size:10px;font-weight:750}.sidebar-group-caption{padding:0 12px 13px}.desktop-nav{display:grid;gap:6px}.nav-item{width:100%;display:flex;align-items:center;gap:14px;border:1px solid transparent;background:transparent;color:#a9b8cb;border-radius:10px;padding:14px 13px;text-align:left;font-size:13px;font-weight:650;letter-spacing:.4px;transition:.2s}.nav-item .ico{width:21px;height:21px;display:inline-flex}.nav-item svg{width:21px;height:21px;stroke-width:1.8}.nav-item:hover{background:#1b2a3f;color:white}.nav-item.active{color:var(--cyan);border-color:#284661;background:linear-gradient(90deg,#18364b,#102236)}.nav-arrow{margin-left:auto;color:#627b97}.side-footer{margin-top:auto;border:1px solid #2b4664;border-radius:12px;padding:15px 13px;color:#b9c8d8;font-size:10px;letter-spacing:1.5px;font-weight:750;background:#0e1d30}.local-dot{width:7px;height:7px;border-radius:50%;background:#65e4a3;display:inline-block;margin-right:7px;box-shadow:0 0 10px #58de9a}.side-footer-sub{letter-spacing:0;color:var(--quiet);font-weight:400;font-size:11px;padding-top:8px}.workspace{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:74px;flex-shrink:0;border-bottom:1px solid #23334c;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,58px);background:#071221b8}.topbar-brand{font-family:var(--display);font-size:19px;letter-spacing:2px;display:none}.topbar-right{display:flex;align-items:center;gap:16px;color:#bfcede;font-size:11px;font-weight:750;letter-spacing:1.2px;margin-left:auto}.gold-star{color:var(--gold);font-size:22px}.offline-pill{color:#8fdfa9;border:1px solid #275247;background:#102b29;border-radius:20px;padding:7px 13px;font-size:10px}.desktop-foot{padding:24px 12px 30px;text-align:center;color:#6b7d98;font-size:10px;letter-spacing:2.1px}.desktop-foot span{color:#d4a965;margin:0 7px}#page{width:100%;max-width:1130px;padding:28px clamp(18px,4vw,58px) 60px;margin:0 auto;flex:1}.page-enter{animation:fadeIn .32s both}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--display);font-weight:650}h1{font-size:clamp(30px,4vw,49px);line-height:1.13;letter-spacing:.1px}h2{font-size:clamp(22px,3vw,31px)}h3{font-size:20px}.gold-text{color:var(--gold)}.muted{color:var(--muted)}.subtle{color:var(--quiet)}.small{font-size:12px}.micro{font-size:10px;letter-spacing:1.5px;font-weight:750}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:8px 0 25px}.page-heading p{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.5}.panel{position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(142deg,rgba(21,39,61,.92),rgba(9,19,35,.96));border-radius:var(--radius);box-shadow:inset 0 1px #ffffff0a,0 12px 36px #00000016}.panel-pad{padding:23px}.panel+.panel{margin-top:13px}.section-title{font-size:20px;display:flex;gap:10px;align-items:center}.section-title .mini-icon{color:var(--gold)}.hero{min-height:310px;display:flex;align-items:flex-end;margin-bottom:18px;background:linear-gradient(90deg,rgba(6,14,27,.97) 0%,rgba(6,14,27,.8) 44%,rgba(6,14,27,.08) 100%),linear-gradient(0deg,#0b1628a0,#0b162800 45%),url('assets/castle.webp') center 45%/cover no-repeat;border:1px solid #334763;border-radius:var(--radius);overflow:hidden;position:relative}.hero:before{content:'✦';position:absolute;right:20px;top:13px;color:#bba36e70;font-size:26px}.hero-content{padding:clamp(22px,4vw,39px);max-width:630px;position:relative;z-index:1}.hero h1{max-width:510px;margin:13px 0}.hero p{max-width:390px;color:#b9c9d8;font-size:13px;line-height:1.65}.hero-topline{font-size:11px;color:#cdb77f;letter-spacing:2.4px;font-weight:800}.tag{border:1px solid #415674;color:#c5d0e1;font-size:10px;letter-spacing:1.3px;border-radius:20px;padding:7px 11px;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;font-weight:750}.tag.gold{color:#f2d5a0;border-color:#77613d;background:#382a1d55}.tag.cyan{color:#7bdfee;border-color:#2e647c;background:#10314555}.tag.green{color:#83e2ad;border-color:#28644e;background:#133a2d55}.stats-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;margin-bottom:15px}.hero-level{display:flex;align-items:center;gap:16px}.rank-shield{flex:none;width:64px;height:76px;display:grid;place-items:center;background:linear-gradient(160deg,#324a70 0,#11162c 62%,#341a51);clip-path:polygon(50% 0%,98% 22%,95% 73%,50% 100%,5% 73%,2% 22%);filter:drop-shadow(0 0 10px #c2894a);position:relative}.rank-shield:before{content:'';position:absolute;inset:3px;clip-path:inherit;background:linear-gradient(160deg,#d8b26a,#906b3d 22%,#2e5b86 40%,#d4a25e 64%,#5b3782);z-index:-1}.rank-shield span{width:83%;height:85%;display:grid;place-items:center;clip-path:inherit;background:#102034;color:#ffdf94;font:bold 36px var(--display);text-shadow:0 2px #060915}.level-info{flex:1;min-width:0}.level-label{font-family:var(--display);font-size:25px;white-space:nowrap}.level-label span{color:var(--gold)}.bar{height:8px;border:1px solid #385474;border-radius:30px;background:#071426;overflow:hidden;margin:8px 0}.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#00a8de,#47e8f7);box-shadow:0 0 9px #31ccf7}.bar-fill.goldfill{background:linear-gradient(90deg,#d0973f,#ffe0a4)}.bar-fill.greenfill{background:linear-gradient(90deg,#1da762,#6aefae)}.bar-fill.violetfill{background:linear-gradient(90deg,#7935d4,#b881ff)}.label-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.label-row .small{color:var(--muted)}.week-dots{display:flex;align-items:center;gap:10px;margin-top:15px}.day-dot{width:34px;height:34px;border:1px solid #52708d;border-radius:50%;display:grid;place-items:center;color:#53788f}.day-dot.filled{color:#031420;border-color:#49def5;background:var(--cyan);box-shadow:0 0 15px #1ed5f93f}.panel-heading-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.quest-progress{display:flex;gap:13px;align-items:center;margin-top:13px}.quest-symbol{width:38px;height:38px;border:1px solid #7a6640;border-radius:12px;display:grid;place-items:center;background:#3b2b1e4a;color:var(--gold);font-size:23px}.quest-details{flex:1}.quest-details .bar{height:6px;margin:7px 0 0}.routines-preview{margin-top:14px}.routine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.routine-card{display:flex;flex-direction:column;padding:20px;min-height:266px;position:relative}.routine-card:before{content:'';height:3px;position:absolute;inset:0 0 auto;background:var(--accent,var(--gold))}.routine-card:hover{border-color:#567491}.day-index{color:var(--accent,var(--gold));font-size:10px;letter-spacing:2px;font-weight:800}.routine-card h3{font-size:22px;margin:11px 0}.routine-card p{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:12px}.routine-facts{font-size:11px;color:#bed0e0;display:flex;flex-wrap:wrap;gap:11px;margin-top:auto;padding-top:8px}.card-actions{display:flex;gap:8px;margin-top:16px}.card-actions .btn{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;border:1px solid #3e5578;border-radius:11px;padding:11px 15px;color:#e5ecf8;background:#14253b;font-size:12px;font-weight:750;transition:.17s;min-height:39px}.btn:hover{filter:brightness(1.15);transform:translateY(-1px)}.btn:active{transform:none}.btn.primary{color:#fff;border:1px solid #a277ff;background:linear-gradient(160deg,#934dff,#5e2bd7);box-shadow:0 6px 15px #7035f342,inset 0 1px #d6b4ff}.btn.secondary{background:#17273a;border-color:#395777}.btn.ghost{background:transparent;color:#c0d0e2;border-color:#304761}.btn.danger{border-color:#7c4050;color:#ffc0bf;background:#2a1e2a}.btn.wide{width:100%}.btn.lg{font-family:var(--display);font-size:19px;min-height:56px}.btn.icon-btn{width:38px;min-width:38px;padding:0}.glyph{width:17px;height:17px;display:inline-block}.glyph svg{width:100%;height:100%;vertical-align:middle}.margin-top{margin-top:18px}.section-spacing{margin-top:28px}.caption{font-size:11px;color:var(--muted);line-height:1.6}.routines-list{display:grid;gap:14px}.routine-detail{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(140deg,#112139,#081422);overflow:hidden}.routine-detail-top{padding:22px 23px 19px;display:grid;grid-template-columns:1fr auto;gap:14px}.routine-detail-top h2{margin:7px 0;font-size:26px}.routine-detail-top p{font-size:12px;color:var(--muted)}.routine-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.routine-icon{width:54px;height:54px;border:1px solid var(--accent);border-radius:15px;display:grid;place-items:center;font-size:27px;background:#14253d}.exercise-list{border-top:1px solid #273c58}.exercise-row{display:grid;grid-template-columns:33px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 23px;border-top:1px solid #ffffff0c}.exercise-row:first-child{border-top:0}.exercise-num{font-family:var(--display);font-size:18px;color:#7a92b1}.exercise-title{font-size:13px;font-weight:750;color:#f2f6f9}.exercise-sub{font-size:11px;color:#93a9c6;margin-top:5px}.exercise-meta{text-align:right;color:var(--gold);font-size:12px;font-weight:700;white-space:nowrap}.exercise-meta span{display:block;color:var(--quiet);font-size:10px;font-weight:500;margin-top:5px}.routine-footer{border-top:1px solid #273c58;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 23px}.edit-panel{margin-top:18px}.edit-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.edit-exercise{border:1px solid #314968;padding:15px;border-radius:12px;background:#0c1b30;margin-top:9px}.edit-grid{display:grid;grid-template-columns:minmax(110px,2fr) repeat(4,minmax(58px,1fr)) auto;gap:9px;align-items:end}.field{display:grid;gap:6px;color:#a9bdd4;font-size:10px;letter-spacing:.6px}.field input,.field select{width:100%;min-width:0;background:#0b1626;border:1px solid #3b5271;border-radius:8px;color:#fff;padding:10px 9px;font-size:13px;outline:none}.field input:focus,.field select:focus{border-color:#48cce8;box-shadow:0 0 0 2px #2cc9e521}.stack-mobile{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.workout-head{background:linear-gradient(90deg,#0f1e32,#192344);padding:22px;border-radius:var(--radius);border:1px solid #334a6c;margin-bottom:15px}.workout-head h1{font-size:31px;margin:8px 0}.workout-head small{color:#a4bacf}.workout-progress{display:flex;align-items:center;gap:10px;color:#a3b9d0;font-size:12px}.workout-progress .bar{flex:1}.active-exercise{margin:13px 0}.active-exercise .exercise-title{font-size:19px;font-family:var(--display)}.active-exercise-head{display:flex;gap:12px;align-items:center;margin-bottom:15px}.exercise-badge{width:45px;height:45px;display:grid;place-items:center;background:#1d2d47;border:1px solid #324b70;border-radius:12px;color:var(--cyan);font-size:22px}.active-table{display:grid;gap:7px}.table-row{display:grid;grid-template-columns:50px minmax(0,1fr) minmax(0,1fr) 50px;gap:9px;align-items:center}.table-labels{font-size:10px;letter-spacing:1.1px;color:#95add0;text-align:center;margin-bottom:3px}.set-index{text-align:center;font-weight:850;color:#aabbd2;font-size:13px}.set-input{width:100%;background:#091728;border:1px solid #304867;color:#fff;border-radius:9px;text-align:center;font-size:16px;padding:9px 4px;min-height:42px}.set-input:focus{outline:none;border-color:var(--cyan)}.set-done{border-radius:50%;height:34px;width:34px;justify-self:center;border:1px solid #8da1b5;background:#071320;display:grid;place-items:center;color:#6a849c;font-size:17px;transition:.16s}.set-done.completed{background:#30d6ee;border-color:#30d6ee;color:#052034;box-shadow:0 0 11px #2fd8ef3b}.done-row .set-index{color:#53e4bb}.done-row .set-input{background:#0e2b31;border-color:#235b60}.rest-timer{display:flex;gap:12px;align-items:center;padding:15px;border:1px solid #3b5a77;border-radius:13px;background:linear-gradient(90deg,#18344f,#12243f);margin:15px 0}.timer-orbit{width:43px;height:43px;border:3px solid #355d7b;border-top-color:var(--cyan);border-radius:50%;display:grid;place-items:center;font-size:16px;color:var(--cyan)}.timer-time{font-family:var(--display);font-size:23px}.timer-label{font-size:10px;color:#a8bed5;letter-spacing:1px}.workout-actions{margin:20px 0;display:flex;gap:9px}.workout-actions .btn{flex:1}.tip{border-left:2px solid #bb955c;color:#9cb0c7;font-size:12px;line-height:1.7;padding:9px 15px;margin-top:17px;background:#332a1b30}.character-hero{min-height:330px;background:linear-gradient(0deg,#071423 0,#07142300 47%),url('assets/champion.webp') center 25%/cover no-repeat;border:1px solid #3b4f67;border-radius:var(--radius);position:relative;overflow:hidden;display:flex;align-items:end;justify-content:center;text-align:center;margin:15px 0}.character-hero-content{position:relative;padding:18px 15px 23px;background:linear-gradient(0deg,#08111c 0%,transparent);width:100%}.character-hero h2{font-size:27px;text-shadow:0 2px 10px #000}.character-hero p{font-size:11px;color:#aac6e4;margin-top:5px}.character-hero .bar{max-width:400px;margin:12px auto}.attributes{display:grid;gap:10px}.attribute{display:grid;grid-template-columns:44px 1fr 62px;gap:12px;align-items:center;padding:12px 15px}.attribute-icon{width:41px;height:41px;border:1px solid #49617e;border-radius:50%;background:#223653;display:grid;place-items:center;font-size:21px}.attribute .bar{height:6px;margin:5px 0}.attribute-label{font-size:11px;color:#9fb4cb}.attribute-label strong{color:#e8edf7;font-size:12px;margin-right:7px}.attribute-lvl{text-align:right;color:#fff;font-weight:800;font-size:12px}.history-row{border:1px solid #283e56;border-radius:13px;background:#101f33;padding:17px;margin-bottom:10px;display:flex;gap:14px;align-items:center}.history-icon{width:47px;height:47px;border:1px solid #5c6e85;border-radius:14px;display:grid;place-items:center;color:var(--gold);font-size:23px}.history-info{flex:1;min-width:0}.history-title{font-weight:750;font-size:14px}.history-sub{color:#91a8bf;font-size:11px;margin-top:5px}.history-xp{color:var(--gold);font-size:13px;font-weight:850}.empty-state{padding:40px 20px;text-align:center;border:1px dashed #365477;border-radius:var(--radius);color:#98afc7;font-size:13px;line-height:1.65}.empty-state .empty-icon{font-size:35px;margin-bottom:10px}.settings-list{display:grid;gap:12px}.settings-item{border:1px solid #2c435e;border-radius:12px;padding:18px;background:#102035;display:flex;gap:15px;align-items:center;justify-content:space-between}.settings-item strong{font-size:13px}.settings-item p{color:#91a8c0;font-size:11px;line-height:1.6;margin-top:4px}.settings-item input{max-width:170px}.setting-group{margin:18px 0 25px}.empty-icon{color:var(--gold)}.toast{position:fixed;right:24px;bottom:24px;transform:translateY(10px);background:#16364a;border:1px solid #3983a0;box-shadow:0 12px 35px #0009;color:#defaff;max-width:350px;z-index:200;padding:12px 17px;border-radius:10px;font-size:13px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.toast.shown{transform:none;opacity:1}.bottom-nav{display:none}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hero-action{margin-top:20px}.link-btn{border:0;background:none;color:#71e7fa;font-size:12px;font-weight:750;padding:5px}.link-btn:hover{text-decoration:underline}.divider{height:1px;background:#30445e;margin:20px 0}.date-detail{font-size:11px;color:#96b8cb;margin-top:5px}.metric-list{display:flex;gap:14px;flex-wrap:wrap}.metric{display:grid;gap:5px}.metric strong{font-family:var(--display);font-size:25px;color:white}.metric span{font-size:10px;letter-spacing:1.3px;color:#95aec8}.editing-banner{border-radius:10px;border:1px solid #775c33;background:#4734214a;padding:12px;color:#edcf92;font-size:12px;line-height:1.5}.pill-count{border:1px solid #2a4b62;border-radius:50px;color:#81c8d9;font-size:11px;padding:6px 10px}.mini-btn{padding:7px 10px;min-height:31px;font-size:11px}.checkline{display:flex;gap:10px;align-items:center;font-size:12px;color:#b9cadc}.checkline input{accent-color:#3ad7ec;width:16px;height:16px}.inline-error{color:#ffbfc5;font-size:11px;margin-top:8px}
@media(max-width:1080px){.sidebar{flex-basis:230px;padding:28px 15px}.brand-title{font-size:22px}.routine-grid{grid-template-columns:1fr}.routine-card{min-height:auto}.routine-facts{margin-top:8px}.stats-grid{grid-template-columns:1fr 1fr}.edit-grid{grid-template-columns:2fr repeat(2,1fr);}.edit-grid .remove-exercise{grid-column:3;justify-self:end}}
@media(max-width:750px){.app-shell{display:block}.sidebar,.desktop-foot{display:none}.topbar{position:sticky;top:0;z-index:40;height:59px;padding:0 18px;backdrop-filter:blur(14px);background:#081424e8}.topbar-brand{display:block}.topbar-right{gap:9px;font-size:10px}.gold-star{font-size:18px}.offline-pill{font-size:9px;padding:6px 9px}#page{padding:18px 15px 111px;max-width:550px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:space-around;align-items:stretch;border-top:1px solid #2a4460;background:#07101feb;backdrop-filter:blur(18px);padding-bottom:env(safe-area-inset-bottom);height:calc(68px + env(safe-area-inset-bottom))}.mobile-item{border:0;background:none;color:#8da1bd;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:1;font-size:9px;font-weight:650;max-width:88px}.mobile-item.active{color:#39d8f1}.mobile-item svg{width:22px;height:22px;stroke-width:1.7}.hero{min-height:280px;margin-bottom:12px}.hero-content{padding:24px}.hero h1{font-size:36px}.hero p{font-size:12px}.stats-grid{grid-template-columns:1fr;gap:12px}.panel-pad{padding:18px}.two-col{grid-template-columns:1fr}.routine-detail-top{padding:20px 17px}.exercise-row{padding:13px 17px}.routine-footer{padding:13px 17px}.routine-detail-top h2{font-size:23px}.page-heading{margin-top:3px}.page-heading p{font-size:12px}.edit-grid{grid-template-columns:repeat(4,1fr);gap:8px}.edit-grid .field-name{grid-column:1 / -1}.edit-grid .remove-exercise{grid-column:1 / -1;justify-self:end}.workout-head h1{font-size:28px}.toast{bottom:calc(83px + env(safe-area-inset-bottom));right:13px;left:13px;max-width:unset}.routine-grid{gap:12px}}
@media(max-width:375px){.hero h1{font-size:31px}.brand-title{font-size:19px}.offline-pill{display:none}.routine-tags{gap:5px}.routine-detail-top{grid-template-columns:1fr}.routine-icon{display:none}.workout-head h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
