:root{--bg:#07080b;--surface:#ffffff09;--surface-2:#ffffff0f;--surface-solid:#12141a;--border:#ffffff17;--border-strong:#ffffff29;--text:#f3f5f9;--muted:#8b93a5;--faint:#5b6273;--lime:#d4ff4f;--cyan:#34e3d6;--violet:#9d7bff;--orange:#ffb35c;--danger:#ff5c6c;--accent-grad:linear-gradient(135deg, #d4ff4f 0%, #34e3d6 100%);--radius:18px;--radius-sm:12px;--shadow:0 18px 45px -20px #000000e6}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(900px 600px at 12% -8%, #d4ff4f1a, transparent 60%), radial-gradient(800px 620px at 100% 0%, #34e3d617, transparent 55%), radial-gradient(700px 700px at 50% 120%, #9d7bff14, transparent 60%), var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}a{color:var(--text);text-decoration:none}a:hover{color:var(--lime)}.app{max-width:1080px;margin:0 auto;padding:0 20px 80px}header.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:linear-gradient(#07080beb,#07080b8c 75%,#0000);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px;padding:14px 0;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.brand .mark{background:var(--accent-grad);border-radius:9px;width:26px;height:26px;display:inline-block;box-shadow:0 0 22px #d4ff4f73}.brand span{color:var(--lime)}nav.tabs{background:var(--surface);border:1px solid var(--border);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}nav.tabs a{color:var(--muted);border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:600;transition:all .15s}nav.tabs a:hover{color:var(--text);background:var(--surface-2)}nav.tabs a.active{background:var(--accent-grad);color:#07120a}.spacer{flex:1}h1{letter-spacing:-.03em;margin:6px 0 16px;font-size:26px;font-weight:800}h2{letter-spacing:-.02em;margin:30px 0 12px;font-size:18px;font-weight:700}h3{margin:0 0 8px;font-size:15.5px;font-weight:700}p.hint,.hint{color:var(--muted);font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--faint);font-size:11px;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:14px;padding:18px}.card-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-head h3{margin:0}.card-head .spacer{flex:1}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.bento{grid-template-columns:repeat(12,1fr);gap:14px;margin-bottom:14px;display:grid}.bento>*{margin-bottom:0}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}@media (width<=800px){.span-3,.span-4,.span-5{grid-column:span 6}.span-6,.span-7,.span-8{grid-column:span 12}}@media (width<=520px){.span-3,.span-4,.span-5,.span-6{grid-column:span 12}}.stat{flex-direction:column;justify-content:space-between;gap:6px;min-height:118px;display:flex}.stat .value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1}.stat .value small{color:var(--muted);margin-left:4px;font-size:15px;font-weight:600}.stat.accent .value{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.stat .sub{color:var(--muted);font-size:12.5px}.delta{font-variant-numeric:tabular-nums;font-weight:700}.delta.up{color:var(--lime)}.delta.down{color:var(--danger)}.delta.flat{color:var(--muted)}label{color:var(--muted);letter-spacing:.01em;margin-bottom:5px;font-size:12px;font-weight:600;display:block}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0a;border-radius:11px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:#d4ff4f99;outline:none;box-shadow:0 0 0 3px #d4ff4f1f}select option{background:var(--surface-solid);color:var(--text)}.field{margin-bottom:12px}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.row>.field{flex:1;min-width:130px}button{cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:11px;padding:9px 16px;font-weight:600;transition:all .15s}button:hover{border-color:var(--border-strong);transform:translateY(-1px)}button:active{transform:translateY(0)}button.primary{background:var(--accent-grad);color:#07120a;border-color:#0000;box-shadow:0 10px 30px -12px #d4ff4fb3}button.primary:hover{filter:brightness(1.06)}button.ghost{background:0 0}button.danger{color:var(--danger);background:0 0;border-color:#0000;padding:4px 8px}button.danger:hover{background:#ff5c6c1f}button.small{border-radius:9px;padding:6px 11px;font-size:13px}button.icon{color:var(--muted);border-radius:9px;padding:5px 9px;line-height:1}button.icon:hover{color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.badge{border:1px solid var(--border);color:var(--muted);background:var(--surface-2);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge.active{color:var(--lime);background:#d4ff4f1a;border-color:#d4ff4f59}.badge.expired,.badge.finished{color:var(--muted)}.badge.tag{color:var(--cyan);background:#34e3d614;border-color:#34e3d659}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}tbody tr:hover{background:#ffffff06}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}td.pos{color:var(--lime);font-weight:700}td.neg{color:var(--danger);font-weight:700}.exercise-row{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:9px 0;display:grid}.exercise-row .idx{background:var(--surface-2);border:1px solid var(--border);width:26px;height:26px;color:var(--muted);border-radius:8px;place-items:center;font-size:12px;font-weight:700;display:grid}.exercise-row .meta{color:var(--muted);white-space:nowrap;font-size:13px}.exercise-row .order{gap:2px;display:flex}.exercise-row:last-child{border-bottom:none}.set-input{grid-template-columns:34px 1fr 1fr auto;align-items:center;gap:8px;margin-bottom:7px;display:grid}.set-input .idx{color:var(--faint);font-size:12px;font-weight:700}.login-wrap{max-width:380px;margin:14vh auto 0}.login-wrap h1{text-align:center}.login-wrap .card{padding:26px}.error{color:var(--danger);margin-top:8px;font-size:13px}.chart{width:100%;height:210px;display:block}.chart-bar{width:100%;height:170px;display:block}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:26px}.list-tight{flex-direction:column;display:flex}.pill-select{flex-wrap:wrap;gap:8px;display:flex}.pill-select button{border-radius:999px}.pill-select button.active{background:var(--accent-grad);color:#07120a;border-color:#0000}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12.5px;display:flex}.legend i{vertical-align:middle;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.progress-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 0;display:flex}.progress-item:last-child{border-bottom:none}.progress-item .name{flex:1;font-weight:600}.progress-item .vals{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.progress-item .gain{color:var(--lime);font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-weight:800}.drag-handle{cursor:grab;color:var(--faint);-webkit-user-select:none;user-select:none;padding:0 4px;font-size:18px;line-height:1}.drag-handle:active{cursor:grabbing}.card.dragging{opacity:.55;border-color:var(--lime)}.att-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.att-row:last-child{border-bottom:none}.att-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px}.att-dot.warn{background:var(--orange);box-shadow:0 0 12px #ffb35cb3}.att-dot.info{background:var(--cyan);box-shadow:0 0 12px #34e3d699}.att-dot.good{background:var(--lime);box-shadow:0 0 12px #d4ff4f99}@media (width<=620px){.exercise-row{grid-template-columns:auto 1fr auto}.exercise-row .meta{display:none}}.picker{position:relative}.picker-list{z-index:40;background:var(--surface-solid);border:1px solid var(--border-strong);max-height:300px;box-shadow:var(--shadow);border-radius:12px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.picker-item{text-align:left;background:0 0;border:none;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;font-weight:500;display:flex}.picker-item:hover{background:var(--surface-2)}.picker-item em{color:var(--muted);font-size:12px;font-style:normal}.picker-empty{color:var(--muted);padding:12px;font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600}.chip.active{background:var(--accent-grad);color:#07120a;border-color:#0000}.draft-banner{background:#34e3d61a;border:1px solid #34e3d659;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;font-size:13.5px;display:flex}.actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.file-btn{cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:11px;align-items:center;gap:8px;min-height:44px;margin:0;padding:9px 16px;font-size:15px;font-weight:600;display:inline-flex}.file-btn:hover{border-color:var(--border-strong)}.bottomnav{display:none}@media (width<=720px){.hide-mobile{display:none!important}.app{padding:0 14px calc(88px + env(safe-area-inset-bottom))}nav.tabs{display:none}header.topbar{margin-bottom:16px;padding:10px 0}.card{border-radius:16px;padding:15px}h1{font-size:22px}button,.chip{min-height:44px}button.small{min-height:40px}input,select,textarea{padding:12px;font-size:16px}.set-input{grid-template-columns:30px 1fr 1fr 42px;gap:6px}.exercise-row{grid-template-columns:1fr auto}.exercise-row .idx{display:none}.actions{bottom:calc(68px + env(safe-area-inset-bottom));z-index:15;background:linear-gradient(#0000,#07080beb 32%);margin-top:8px;padding:12px 0 10px;position:sticky}.actions button{flex:1;min-height:50px;font-size:15px}.bottomnav{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#0a0b0ff0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--muted);flex-direction:column;align-items:center;gap:3px;padding:7px 0;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.bottomnav a .ico{font-size:19px;line-height:1}.bottomnav a.active{color:var(--lime)}.bottomnav .fab{background:var(--accent-grad);color:#07120a;border:3px solid var(--bg);border-radius:50%;justify-content:center;align-self:start;align-items:center;width:54px;height:54px;margin:-24px auto 0;font-size:30px;font-weight:800;display:flex;box-shadow:0 12px 28px -8px #d4ff4fcc}}
