:root{--bg:#060a14;--bg-2:#0a1122;--panel:#0d162cd9;--line:#4fb7ff40;--glow:#4fb7ff;--glow-soft:#4fb7ff24;--text:#d7e3f4;--text-dim:#8b9bb4;--accent:#4fb7ff;--success:#5dd6a2;--gold:#ffd84d;--danger:#ff6b6b;--bright:#fff;--field:var(--field);--field-soft:var(--field-soft);--field-strong:var(--field-strong);--topbar-bg:#060a14b3;--font-display:"Orbitron", sans-serif;--font-body:"Rajdhani", sans-serif}[data-theme=light]{--bg:#edf2f9;--bg-2:#e2eaf5;--panel:#ffffffe0;--line:#1e78c84d;--glow:#1e78c8;--glow-soft:#1e78c81f;--text:#24364f;--text-dim:#5b7392;--accent:#1a6cb8;--success:#1e9e66;--gold:#a87b00;--danger:#d5484f;--bright:#0b1c33;--field:#fff;--field-soft:#1e78c80d;--field-strong:#fffffff7;--topbar-bg:#fffc}*{box-sizing:border-box}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #4fb7ff1f, transparent), radial-gradient(ellipse 60% 40% at 90% 110%, #b18cff14, transparent), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);margin:0;font-size:17px;line-height:1.45}#root{min-height:100vh}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;padding:24px;position:relative;box-shadow:0 0 24px #4fb7ff14,inset 0 0 40px #4fb7ff0a}.panel:before{content:"";pointer-events:none;border-radius:10px;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff0f}.panel-title{font-family:var(--font-display);letter-spacing:3px;color:var(--accent);text-shadow:0 0 12px #4fb7ff99;margin:0 0 16px;font-size:15px}.section-title{font-family:var(--font-display);letter-spacing:2px;color:var(--accent);margin:20px 0 4px;font-size:13px}.logo{font-family:var(--font-display);letter-spacing:6px;color:var(--bright);text-shadow:0 0 20px #4fb7ffcc;margin:0 0 4px;font-size:32px;font-weight:700}.logo.small{letter-spacing:4px;font-size:18px}.logo-dot{color:var(--accent);margin-left:6px}.tagline{color:var(--text-dim);margin:0 0 24px}.hint{color:var(--text-dim);margin:4px 0 12px;font-size:15px}.loading{min-height:100vh;font-family:var(--font-display);letter-spacing:3px;color:var(--accent);text-shadow:0 0 14px #4fb7ffb3;place-items:center;display:grid}label{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;margin-bottom:14px;font-size:14px;font-weight:600;display:block}input,textarea{background:var(--field);border:1px solid var(--line);width:100%;color:var(--text);font-family:var(--font-body);border-radius:6px;outline:none;margin-top:6px;padding:10px 12px;font-size:16px;transition:border-color .15s,box-shadow .15s;display:block}input:focus,textarea:focus{border-color:var(--glow);box-shadow:0 0 12px #4fb7ff59}textarea{resize:vertical}input[type=number]{appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.btn{font-family:var(--font-display);letter-spacing:2px;color:var(--accent);border:1px solid var(--line);cursor:pointer;background:#4fb7ff14;border-radius:6px;padding:10px 18px;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:#4fb7ff2e;box-shadow:0 0 16px #4fb7ff66}.btn:disabled{opacity:.5;cursor:default}.btn-primary{border-color:var(--glow);width:100%;color:var(--bright);text-shadow:0 0 8px #4fb7ffcc;background:linear-gradient(#4fb7ff40,#4fb7ff1a);margin-top:10px;padding:13px}.btn-link{color:var(--text-dim);cursor:pointer;font-family:var(--font-body);text-underline-offset:3px;background:0 0;border:none;padding:6px 4px;font-size:15px;text-decoration:underline}.btn-link:hover{color:var(--accent)}.password-field{margin-top:6px;position:relative}.password-field input{margin-top:0;padding-right:66px}.password-toggle{color:var(--text-dim);font-family:var(--font-body);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:13px;font-weight:600;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:var(--accent)}.divider{color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:12px;margin:18px 0 14px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.btn-google{width:100%;font-family:var(--font-body);letter-spacing:.5px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:12px;font-size:16px;font-weight:600;transition:all .15s;display:flex}.btn-google:hover{background:#ffffff1a;box-shadow:0 0 14px #4fb7ff40}.form-error{color:var(--danger);margin:10px 0;font-size:15px}.form-message{color:var(--success);margin:10px 0;font-size:15px}.auth-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{text-align:center;width:100%;max-width:420px}.auth-panel form{text-align:left}.auth-panel.wide{max-width:560px}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chip{font-family:var(--font-body);border:1px solid var(--line);color:var(--text);cursor:pointer;background:#4fb7ff0f;border-radius:999px;padding:5px 12px;font-size:14px}.chip:hover{border-color:var(--glow);box-shadow:0 0 10px #4fb7ff4d}.chip.active{color:var(--accent);border-color:var(--glow);box-shadow:0 0 10px #4fb7ff59}.task-adder{grid-template-columns:1fr 84px auto;align-items:center;gap:8px;margin-top:8px;display:grid}.task-adder input{margin-top:0}.draft-tasks{margin:12px 0;padding:0;list-style:none}.draft-tasks li{border-bottom:1px dashed #4fb7ff26;justify-content:space-between;align-items:center;padding:6px 0;display:flex}.draft-tasks em{color:var(--gold);margin-left:8px;font-style:normal}.shell main{gap:20px;max-width:760px;margin:0 auto;padding:24px 16px 80px;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--topbar-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;justify-content:space-between;align-items:center;padding:14px 22px;display:flex;position:sticky;top:0}.topbar nav{align-items:center;gap:18px;display:flex}.topbar nav a{color:var(--text-dim);font-family:var(--font-display);letter-spacing:2px;font-size:12px;text-decoration:none}.topbar nav a.active{color:var(--accent);text-shadow:0 0 10px #4fb7ffb3}.settings{position:relative}.settings-btn{background:var(--field-soft);border:1px solid var(--line);width:38px;height:38px;color:var(--text-dim);cursor:pointer;border-radius:8px;place-items:center;transition:all .15s;display:grid}.settings-btn:hover{color:var(--accent);border-color:var(--glow);box-shadow:0 0 12px #4fb7ff4d}.settings-backdrop{z-index:110;position:fixed;inset:0}.settings-menu{z-index:111;background:var(--field-strong);border:1px solid var(--line);border-radius:10px;width:220px;padding:14px;animation:.15s notice-in;position:absolute;top:46px;right:0;box-shadow:0 8px 30px #00000059,0 0 20px #4fb7ff26}.settings-label{font-family:var(--font-display);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px;font-size:10px;display:block}.settings-theme-row{gap:8px;display:flex}.settings-divider{background:var(--line);height:1px;margin:14px 0}.settings-signout{text-align:left;width:100%;color:var(--danger);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:16px;font-weight:600}.bottom-nav{display:none}@media (width<=680px){.top-nav{display:none}.bottom-nav{z-index:100;background:var(--topbar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--text-dim);font-family:var(--font-display);letter-spacing:1.5px;border-radius:8px;justify-items:center;gap:3px;padding:4px 0;font-size:9px;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--accent);text-shadow:0 0 10px #4fb7ffb3}.bottom-nav a.active svg{filter:drop-shadow(0 0 6px #4fb7ffb3)}.shell main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.rest-timer{bottom:calc(84px + env(safe-area-inset-bottom))}}.status-panel{background-image:repeating-linear-gradient(0deg,#4fb7ff06 0 1px,#0000 1px 26px),repeating-linear-gradient(90deg,#4fb7ff06 0 1px,#0000 1px 26px)}.status-panel:after{content:"";pointer-events:none;opacity:.55;background:linear-gradient(var(--glow), var(--glow)) left 0 top 0 / 20px 2px, linear-gradient(var(--glow), var(--glow)) left 0 top 0 / 2px 20px, linear-gradient(var(--glow), var(--glow)) right 0 top 0 / 20px 2px, linear-gradient(var(--glow), var(--glow)) right 0 top 0 / 2px 20px, linear-gradient(var(--glow), var(--glow)) left 0 bottom 0 / 20px 2px, linear-gradient(var(--glow), var(--glow)) left 0 bottom 0 / 2px 20px, linear-gradient(var(--glow), var(--glow)) right 0 bottom 0 / 20px 2px, linear-gradient(var(--glow), var(--glow)) right 0 bottom 0 / 2px 20px;background-repeat:no-repeat;position:absolute;inset:7px}.status-eyebrow{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.status-eyebrow>span:first-child{font-family:var(--font-display);letter-spacing:4px;color:var(--text-dim);font-size:11px}.today-chip{font-family:var(--font-display);letter-spacing:2px;color:var(--gold);background:#ffd84d12;border:1px solid #ffd84d73;border-radius:999px;padding:4px 12px;font-size:11px;animation:2.6s ease-in-out infinite chip-glow;box-shadow:0 0 14px #ffd84d40}@keyframes chip-glow{0%,to{box-shadow:0 0 10px #ffd84d33}50%{box-shadow:0 0 20px #ffd84d73}}@keyframes badge-breathe{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.25);transform:scale(1.03)}}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-head .btn-link{flex:none;padding:0}.dashboard{gap:20px;display:grid}.status-top{align-items:center;gap:20px;display:flex}.rank-badge{font-family:var(--font-display);background:var(--field-soft);border:2px solid;border-radius:10px;flex:none;place-items:center;width:84px;height:84px;font-size:42px;font-weight:700;animation:3.2s ease-in-out infinite badge-breathe;display:grid}.status-meta{flex:1;min-width:0}.status-meta h2{font-family:var(--font-display);letter-spacing:2px;color:var(--bright);margin:0;font-size:20px}.level-label{color:var(--text-dim);margin:2px 0 8px;font-size:15px}.xp-bar,.goal-bar{background:var(--field);border:1px solid var(--line);border-radius:999px;height:12px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, #2b7fd4, var(--glow));height:100%;transition:width .6s;position:relative;overflow:hidden;box-shadow:0 0 14px #4fb7ffcc}.xp-fill:after,.goal-fill:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff59 50%,#0000 70%);animation:2.6s ease-in-out infinite bar-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes bar-shimmer{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}.goal-fill{background:linear-gradient(90deg, #c9a227, var(--gold));height:100%;transition:width .6s;position:relative;overflow:hidden;box-shadow:0 0 14px #ffd84db3}.xp-caption{color:var(--text-dim);margin-top:4px;font-size:13px}.weight-row{flex-wrap:wrap;gap:12px;margin:20px 0 10px;display:flex}.stat-tile{border:1px solid var(--line);background:var(--field-soft);border-radius:8px;flex:1;gap:2px;min-width:110px;padding:10px 14px;transition:box-shadow .2s,border-color .2s;display:grid;position:relative}.stat-tile:before{content:"";background:var(--glow);opacity:.7;border-radius:2px;height:2px;position:absolute;top:0;left:10px;right:60%}.stat-tile:hover{border-color:var(--glow);box-shadow:0 0 14px #4fb7ff40}.stat-label{letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);font-size:12px}.stat-value{font-family:var(--font-display);color:var(--bright);font-size:18px}.weight-form{gap:8px;margin-top:14px;display:flex}.weight-form input{max-width:260px;margin-top:0}.plan-view{margin-top:18px}.plan-title{font-family:var(--font-display);letter-spacing:2px;color:var(--bright);text-shadow:0 0 10px #4fb7ff99;margin:0 0 4px;font-size:16px}.plan-day{margin:16px 0}.plan-day-header{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.plan-day-name{font-family:var(--font-display);letter-spacing:2px;color:var(--accent);font-size:13px}.plan-day-focus{color:var(--text-dim);font-size:14px}.plan-table{border-collapse:collapse;width:100%}.plan-table th{text-align:left;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--line);padding:4px;font-size:12px}.plan-table td{vertical-align:top;border-bottom:1px dashed #4fb7ff26;padding:7px 4px}.plan-table .num{white-space:nowrap}.plan-note{color:var(--text-dim);font-size:13px;display:block}.protocol-list{margin:8px 0 0;padding:0;list-style:none}.protocol-row{border-bottom:1px dashed #4fb7ff26;align-items:center;gap:14px;padding:10px 4px;display:flex}.protocol-row.done .protocol-name{color:var(--text-dim);text-decoration:line-through}.protocol-info{flex:1;gap:2px;min-width:0;display:grid}.protocol-name{font-weight:600}.mini-field{gap:2px;margin-bottom:0;display:grid}.mini-field span{letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);font-size:10px;font-weight:700}.mini-field input{margin-top:0}.protocol-log{flex:none;align-items:flex-end;gap:6px;display:flex}.protocol-log .mini-field input{width:64px;padding:7px 8px;font-size:15px}.protocol-log .btn{padding:7px 12px;font-size:12px}.extra-form{grid-template-columns:1fr 64px 84px auto;align-items:end;gap:8px;margin-top:14px;display:grid}.extra-form input{margin-top:0}.extra-tag{align-items:center;gap:4px;margin-right:10px;display:inline-flex}.finish-btn{margin-top:16px}.protocol-target{color:var(--text-dim);white-space:nowrap;font-size:14px}.protocol-progress{font-family:var(--font-display);color:var(--gold);text-align:right;flex:none;min-width:36px;padding-right:4px;font-size:13px}.protocol-progress.done{color:var(--success);text-shadow:0 0 10px #5dd6a299}@keyframes rest-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.rest-timer{z-index:90;background:var(--field-strong);border:1px solid var(--glow);border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:6px 12px;width:min(420px,100vw - 24px);padding:12px 16px;animation:.2s rest-in;display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 0 26px #4fb7ff73,inset 0 0 24px #4fb7ff14}.rest-info{grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.rest-label{font-family:var(--font-display);letter-spacing:2px;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.rest-count{font-family:var(--font-display);color:var(--bright);text-shadow:0 0 12px #4fb7ffcc;font-size:22px}.rest-bar{background:var(--field);border:1px solid var(--line);border-radius:999px;height:8px;overflow:hidden}.rest-fill{background:linear-gradient(90deg, #2b7fd4, var(--glow));height:100%;transition:width .5s linear;box-shadow:0 0 12px #4fb7ffcc}.rest-timer .btn-link{flex:none;padding:0}.rank-guide-toggle{margin-top:14px;padding-left:0}.rank-guide{border-top:1px dashed #4fb7ff26;margin-top:6px;padding-top:12px}.rank-ladder{margin:0;padding:0;list-style:none}.rank-row{border-radius:6px;align-items:center;gap:12px;padding:8px 6px;display:flex}.rank-row.current{background:#4fb7ff12;box-shadow:inset 0 0 14px #4fb7ff14}.rank-chip{font-family:var(--font-display);text-align:center;background:var(--field-soft);letter-spacing:1px;white-space:nowrap;border:1px solid;border-radius:6px;flex:none;min-width:44px;padding:4px 8px;font-size:13px;font-weight:700}.rank-req{flex:none;width:170px;font-weight:600}.rank-note{color:var(--text-dim);flex:1;font-size:14px}.rank-you{color:var(--accent);font-family:var(--font-display);letter-spacing:2px;text-shadow:0 0 10px #4fb7ffb3;font-size:11px}@media (width<=560px){.rank-note{display:none}.rank-req{width:auto}}.quest-count{font-family:var(--font-display);color:var(--success);text-shadow:0 0 10px #5dd6a280;margin-left:auto;font-size:15px}.quest-count em{color:var(--text-dim);font-size:12px;font-style:normal}.quest-mini-bar{background:var(--field);border:1px solid var(--line);border-radius:999px;height:5px;margin:8px 0 12px;overflow:hidden}.quest-mini-fill{background:linear-gradient(90deg, #2f9b70, var(--success));height:100%;transition:width .5s;box-shadow:0 0 10px #5dd6a2b3}.quest-list{margin:0 0 16px;padding:0;list-style:none}.quest{border-bottom:1px dashed #4fb7ff26;align-items:center;gap:12px;padding:11px 4px;display:flex}.quest.done .quest-title{color:var(--text-dim);text-decoration:line-through}.quest-check{border:1px solid var(--line);background:var(--field);width:28px;height:28px;color:var(--success);cursor:pointer;border-radius:6px;flex:none;font-size:16px;transition:all .15s}.quest-check:hover:not(:disabled){border-color:var(--glow);box-shadow:0 0 12px #4fb7ff80}.quest-check:disabled{cursor:default;border-color:#5dd6a266;box-shadow:0 0 10px #5dd6a240}.quest-title{flex:1}.quest-xp{color:var(--gold);font-size:15px;font-weight:600}.quest-remove{font-size:13px;text-decoration:none}.empty{color:var(--text-dim);padding:12px 0}.training{gap:20px;display:grid}.set-form{grid-template-columns:1fr 90px 90px auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.set-form input{margin-top:0}.set-list{margin:0;padding:0;list-style:none}.set-list li{border-bottom:1px dashed #4fb7ff26;flex-wrap:wrap;align-items:baseline;gap:14px;padding:9px 4px;display:flex}.set-exercise{min-width:140px;font-weight:700}.set-sets{flex-wrap:wrap;gap:8px;display:flex}.set-pill{border:1px solid var(--line);background:#4fb7ff0f;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:14px;display:inline-flex}.set-delete{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.set-delete:hover{color:var(--danger)}.pr-line{color:var(--gold);margin:6px 0 12px;font-size:15px}.pr-line strong{font-family:var(--font-display);text-shadow:0 0 10px #ffd84d80;font-size:14px}.history-list{margin:0;padding:0;list-style:none}.history-list li{border-bottom:1px dashed #4fb7ff26;gap:16px;padding:8px 4px;display:flex}.history-date{width:120px;color:var(--text-dim);flex:none;font-size:14px}.history-sets{flex:1;font-size:15px}.quest-undo{color:var(--text-dim);font-size:13px;text-decoration:none}@media (width<=560px){.set-form{grid-template-columns:1fr 70px 70px}.set-form .btn{grid-column:1/-1}.protocol-row{flex-wrap:wrap}.protocol-info{flex:100%}.protocol-log,.protocol-log .mini-field{flex:1}.protocol-log .mini-field input{width:100%}.extra-form{grid-template-columns:1fr 60px 70px}.extra-form .btn{grid-column:1/-1}}.tab-row{gap:10px;margin-bottom:16px;display:flex}.tab{font-family:var(--font-display);letter-spacing:2px;border:1px solid var(--line);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;padding:9px 16px;font-size:12px}.tab.active{color:var(--accent);border-color:var(--glow);box-shadow:0 0 12px #4fb7ff59}.coach-section textarea{margin-bottom:12px}.plan-output{background:var(--field);border:1px solid var(--line);white-space:pre-wrap;font-family:var(--font-body);border-radius:8px;margin-top:18px;padding:18px;font-size:16px;line-height:1.55}.estimate{margin-top:18px}.estimate table{border-collapse:collapse;width:100%}.estimate td{border-bottom:1px dashed #4fb7ff26;padding:7px 4px}.estimate .num{text-align:right;font-family:var(--font-display);font-size:14px}.estimate .total-row td{color:var(--gold);border-bottom:none;padding-top:12px;font-weight:700}.macros{color:var(--text-dim);gap:16px;margin-top:10px;font-weight:600;display:flex}.fav-chip{cursor:default;align-items:center;gap:8px;display:inline-flex}.fav-add{color:var(--text);font-family:var(--font-body);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:200px;padding:0;font-size:14px;overflow:hidden}.fav-add:hover{color:var(--accent)}.estimate-actions{gap:10px;margin-top:14px;display:flex}.intake-list{margin:0;padding:0;list-style:none}.intake-list li{border-bottom:1px dashed #4fb7ff26;align-items:center;gap:12px;padding:8px 4px;display:flex}.intake-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.intake-kcal{font-family:var(--font-display);color:var(--gold);flex:none;font-size:13px}.intake-total{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:12px 4px 0;font-size:16px;display:flex}.intake-total strong{color:var(--gold);font-family:var(--font-display);font-size:15px}.intake-total .macros{margin-top:0}.rankings{gap:20px;display:grid}.board-list{margin:0;padding:0;list-style:none}.board-row{border-bottom:1px dashed #4fb7ff26;border-radius:6px;align-items:center;gap:12px;padding:10px 8px;display:flex}.board-row.self{background:#4fb7ff12;box-shadow:inset 0 0 14px #4fb7ff14}.board-row.friend{background:#5dd6a20f;box-shadow:inset 0 0 14px #5dd6a212}.board-row.friend .board-name:after{content:"◆ ally";font-family:var(--font-display);letter-spacing:2px;color:var(--success);vertical-align:middle;margin-left:8px;font-size:9px}.board-pos{font-family:var(--font-display);color:var(--text-dim);text-align:right;flex:none;width:26px;font-size:14px}.board-row:first-child .board-pos{color:var(--gold);text-shadow:0 0 10px #ffd84db3}.board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.board-name em{color:var(--text-dim);margin-left:8px;font-size:14px;font-style:normal;font-weight:400}.board-level{color:var(--text-dim);flex:none;font-size:14px}.board-xp{font-family:var(--font-display);color:var(--gold);flex:none;font-size:13px}.board-add{flex:none;padding:5px 12px;font-size:11px}.share-toggle{text-transform:none;letter-spacing:0;color:var(--text-dim);cursor:pointer;align-items:flex-start;gap:10px;margin:4px 0 16px;font-size:15px;display:flex}.share-toggle input{width:auto;accent-color:var(--accent);margin-top:3px}.ally-search{gap:8px;margin-bottom:14px;display:flex}.ally-search input{margin-top:0}.ally-list{margin:0 0 8px;padding:0;list-style:none}.ally-list li{border-bottom:1px dashed #4fb7ff26;align-items:center;gap:12px;padding:9px 4px;display:flex}.ally-state{color:var(--text-dim);font-size:14px;font-style:italic}.ally-actions{align-items:center;gap:8px;display:flex}.maintenance-line{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;font-size:16px;display:flex}.maintenance-line strong{color:var(--gold);font-family:var(--font-display);font-size:15px}.stats-form{grid-template-columns:90px 70px 90px 1fr auto;align-items:end;gap:8px;margin-bottom:16px;display:grid}.stats-form select{background:var(--field);border:1px solid var(--line);width:100%;color:var(--text);font-family:var(--font-body);border-radius:6px;padding:9px 8px;font-size:15px;display:block}.kcal-bar{background:var(--field);border:1px solid var(--line);border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.kcal-fill{background:linear-gradient(90deg, #2b7fd4, var(--glow));height:100%;transition:width .4s;box-shadow:0 0 12px #4fb7ffb3}.kcal-fill.over{background:linear-gradient(90deg, #c2452d, var(--danger));box-shadow:0 0 12px #ff6b6bb3}@media (width<=560px){.stats-form{grid-template-columns:1fr 1fr}.stats-form .btn{grid-column:1/-1}}.chat-log{flex-direction:column;gap:10px;max-height:420px;padding:4px 2px 12px;display:flex;overflow-y:auto}.chat-msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;max-width:85%;padding:10px 14px;font-size:16px;line-height:1.45}.chat-msg.user{background:#4fb7ff24;border:1px solid #4fb7ff4d;align-self:flex-end}.chat-msg.coach{background:var(--field);border:1px solid var(--line);align-self:flex-start}.chat-msg.pending{color:var(--text-dim)}.chat-tag{font-family:var(--font-display);letter-spacing:2px;color:var(--accent);margin-bottom:4px;font-size:10px;display:block}.chat-input{align-items:flex-end;gap:8px;display:flex}.chat-input textarea{flex:1;margin-top:0}.chat-actions{gap:16px;margin-top:10px;display:flex}.party-detail{margin:8px 0 14px}.ptr{z-index:120;background:var(--field-strong);border:1px solid var(--glow);font-family:var(--font-display);letter-spacing:2px;color:var(--accent);pointer-events:none;white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:9px 18px;font-size:11px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 0 22px #4fb7ff73}.ptr-icon{font-size:14px;transition:transform 50ms linear;display:inline-block}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptr-icon.spinning{animation:.8s linear infinite ptr-spin}.notice-stack{z-index:100;gap:12px;width:min(340px,100vw - 36px);display:grid;position:fixed;top:74px;right:18px}@keyframes notice-in{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.notice{background:var(--field-strong);border:1px solid var(--glow);cursor:pointer;border-radius:8px;padding:14px 16px;animation:.25s notice-in;box-shadow:0 0 24px #4fb7ff73,inset 0 0 24px #4fb7ff14}.notice-success{border-color:var(--success);box-shadow:0 0 24px #5dd6a273,inset 0 0 24px #5dd6a214}.notice-rankup{border-color:var(--gold);box-shadow:0 0 28px #ffd84d8c,inset 0 0 26px #ffd84d1a}.notice-header{font-family:var(--font-display);letter-spacing:3px;color:var(--text-dim);margin-bottom:6px;font-size:11px}.notice-diamond{color:var(--accent)}.notice-success .notice-diamond{color:var(--success)}.notice-rankup .notice-diamond{color:var(--gold)}.notice-title{font-family:var(--font-display);letter-spacing:2px;color:var(--bright);text-shadow:0 0 10px #4fb7ffcc;margin-bottom:4px;font-size:16px}.notice-rankup .notice-title{text-shadow:0 0 12px #ffd84de6}.notice-line{color:var(--text);font-size:15px}@media (width<=560px){.status-top{text-align:center;flex-direction:column}.row{grid-template-columns:1fr}.weight-row{gap:16px}.tab-row .tab{padding:8px 12px;font-size:11px}.maintenance-line{gap:6px 10px;font-size:14px}.maintenance-line strong{font-size:13px}.coach-section textarea{font-size:15px}.estimate td{padding:6px 2px;font-size:14px}.estimate .num{font-size:12px}.estimate-actions{flex-direction:column}.estimate-actions .btn{width:100%}.intake-list li{gap:8px;padding:7px 2px}.intake-name{font-size:15px}.intake-kcal{font-size:12px}.intake-total{font-size:14px}.macros{gap:10px;font-size:13px}body{font-size:16px}.panel{padding:16px 14px}.shell main{gap:14px;padding:14px 10px 70px}.topbar{padding:10px 12px}.topbar nav{gap:12px}.topbar nav a{letter-spacing:1px;font-size:10px}.topbar .btn-link{padding:4px 0;font-size:13px}.logo.small{letter-spacing:2px;font-size:14px}.rank-badge{width:68px;height:68px;font-size:34px}.weight-row{justify-content:space-between;gap:12px}.stat-value{font-size:16px}.weight-form input{max-width:none}.chip{padding:4px 10px;font-size:13px}.fav-add{max-width:48vw}.chat-msg{max-width:94%}.board-name em{margin-left:0;font-size:12px;display:block}.board-level{display:none}.history-date{width:92px;font-size:13px}.rank-guide .hint{font-size:14px}}
