#ext-root{--c-bg:#fff;--c-card:#f6f7f9;--c-text:#1a1a1a;--c-muted:#6a6f78;--c-border:#e2e4e8;--c-brand:#0a7f6f;--c-brand-soft:#e3f3f0;--c-brand-text:#fff;--c-success:#2e8b57;--c-warn:#b7791f;--c-warn-soft:#fff4e0;--c-danger:#c0392b;--c-danger-soft:#fdecea;--radius:10px;background:var(--c-bg);color:var(--c-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}#ext-root.dark{--c-bg:#1e1f24;--c-card:#282a31;--c-text:#e8e8e8;--c-muted:#a0a4ad;--c-border:#3a3d45;--c-brand:#3ab8a4;--c-brand-soft:#1f3b37;--c-brand-text:#0f1a18;--c-warn-soft:#3b3120;--c-danger-soft:#3d2320}#ext-root *{box-sizing:border-box}#ext-root h1,#ext-root h2,#ext-root h3,#ext-root p,#ext-root ul{margin:0}#ext-root ul{padding:0;list-style:none}#ext-root button,#ext-root input,#ext-root select,#ext-root textarea{font:inherit;color:inherit}.page{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:16px 20px 28px;display:flex}.page-header{flex-direction:column;gap:6px;display:flex}.page-header h1{font-size:22px;font-weight:700;line-height:1.2}.page-header .subtitle{color:var(--c-muted)}.page-header-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.back{color:var(--c-brand);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:4px 0;font-weight:600;display:inline-flex}.back:hover{text-decoration:underline}.btn{background:var(--c-brand);min-height:40px;color:var(--c-brand-text);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{background:var(--c-brand-soft);color:var(--c-brand)}.btn.ghost{color:var(--c-brand);border-color:var(--c-border);background:0 0}.btn.danger{background:var(--c-danger-soft);color:var(--c-danger)}.btn.sm{min-height:32px;padding:4px 12px;font-size:14px}.btn.lg{min-height:52px;font-size:17px}.btn.block{width:100%}.btn:focus-visible,.back:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.card{background:var(--c-card);border-radius:var(--radius);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.card.clickable{cursor:pointer;border:1px solid #0000}.card.clickable:hover{border-color:var(--c-brand)}.card.accent{background:var(--c-brand-soft)}.card.warn{background:var(--c-warn-soft)}.card h2,.card h3{font-size:16px;font-weight:700}.card .meta{color:var(--c-muted);font-size:14px}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:10px;display:flex}.actions{flex-wrap:wrap;gap:10px;display:flex}.muted{color:var(--c-muted)}.small{font-size:13px}.big{font-size:28px;font-weight:700;line-height:1.1}.pre{white-space:pre-wrap}.tag{background:var(--c-brand-soft);color:var(--c-brand);border-radius:999px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-block}.tag.done{background:var(--c-brand);color:var(--c-brand-text)}.tag.warn{background:var(--c-warn-soft);color:var(--c-warn)}.tag.neutral{background:var(--c-border);color:var(--c-text)}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tabs button{border:1px solid var(--c-border);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px}.tabs button.active{background:var(--c-brand);color:var(--c-brand-text);border-color:var(--c-brand)}.field{flex-direction:column;gap:6px;display:flex}.field label,.field .label{font-size:14px;font-weight:600}.field .hint{color:var(--c-muted);font-size:13px}.field input,.field select,.field textarea{border:1px solid var(--c-border);background:var(--c-bg);border-radius:8px;width:100%;padding:9px 12px}.field textarea{resize:vertical;min-height:96px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--c-brand);outline-offset:0;border-color:#0000}.field.inline{flex-direction:row;align-items:center;gap:10px}.field.inline input[type=number]{width:90px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips label{border:1px solid var(--c-border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chips label.on{background:var(--c-brand-soft);border-color:var(--c-brand);color:var(--c-brand);font-weight:600}.chips input{opacity:0;width:0;height:0;position:absolute}.check{border-bottom:1px solid var(--c-border);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.check:last-child{border-bottom:0}.check input[type=checkbox]{width:22px;height:22px;accent-color:var(--c-brand);flex:none;margin-top:2px}.check .body{flex-direction:column;flex:1;gap:4px;display:flex}.notice{border-radius:var(--radius);background:var(--c-danger-soft);color:var(--c-danger);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.notice.info{background:var(--c-brand-soft);color:var(--c-brand)}.empty{text-align:center;color:var(--c-muted);flex-direction:column;align-items:center;gap:12px;padding:24px 12px;display:flex}.progress{background:var(--c-border);border-radius:999px;height:8px;overflow:hidden}.progress>div{background:var(--c-brand);border-radius:999px;height:100%;transition:width .3s}.timer{font-variant-numeric:tabular-nums;text-align:center;font-size:56px;font-weight:700;line-height:1}.counter{justify-content:center;align-items:center;gap:20px;display:flex}.counter .value{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-size:48px;font-weight:700}.calendar{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar .dow{text-align:center;color:var(--c-muted);font-size:12px}.calendar .day{aspect-ratio:1;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.calendar .day.off{color:var(--c-muted);opacity:.5}.calendar .day.planned{border-color:var(--c-border)}.calendar .day.done{background:var(--c-brand);color:var(--c-brand-text);font-weight:600}.calendar .day.partial{background:var(--c-brand-soft);color:var(--c-brand);font-weight:600}.calendar .day.missed{background:var(--c-danger-soft);color:var(--c-danger)}.calendar .day.today{outline:2px solid var(--c-brand);outline-offset:-2px}.badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.badge{text-align:center;border-radius:var(--radius);background:var(--c-card);flex-direction:column;gap:4px;padding:14px 8px;display:flex}.badge .icon{font-size:32px}.badge.locked{opacity:.45;filter:grayscale()}.banner{cursor:pointer;background:#fdfbf7 url(/banner-bg.png) top/100% 5000% no-repeat;border:0;justify-content:center;align-items:flex-end;width:100%;height:100%;padding:0;display:flex;container-type:size}.banner-art{aspect-ratio:4;background:-webkit-image-set(url(/banner-bg.png) 1x,url(/banner-bg@2x.png) 2x) 50%/100% 100% no-repeat;background:image-set("/banner-bg.png" 1x,"/banner-bg@2x.png" 2x) 50%/100% 100% no-repeat;width:min(100cqw,400cqh);display:block;position:relative}.banner-line{color:#0e747c;text-align:center;font-size:max(11px,min(2.2cqw,8.8cqh));font-weight:600;line-height:1.3;position:absolute;top:42%;left:37%;right:12%}.exercise-image{border-radius:var(--radius);max-width:100%}
