:root{
 --color-accent:#5980a6;
 --color-accent-100:#eef6ff;--color-accent-200:#d6ebff;--color-accent-300:#b5d9fd;
 --color-accent-400:#94bce3;--color-accent-500:#749dc4;--color-accent-600:#597ea3;
 --color-accent-700:#416180;--color-accent-800:#2c455d;--color-accent-900:#1d2d3d;
}
body{background:var(--color-bg)}a{color:var(--color-accent-700)}input,select,textarea,button{font-family:var(--font-body)}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--color-accent-700)!important;outline-offset:3px}
button:disabled{opacity:.5;cursor:not-allowed!important}
.secondary{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-700)}
.primary{background:var(--color-accent);color:white;border:2px solid var(--color-accent);min-height:50px}
.tools{display:flex;gap:8px;flex-wrap:wrap;padding:8px 20px}
.empty{padding:20px;font-size:14px;color:var(--color-neutral-700)}
.group{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;border-top:2px solid var(--color-text);padding:16px 0 4px;margin-top:10px}
#status{position:fixed;right:8px;top:8px;z-index:22;background:var(--color-bg);font-size:11px;max-width:190px;padding:4px 8px;pointer-events:none}
#status[data-state="error"]{background:#fff0e8;color:#8b2800;pointer-events:auto}
dialog{border:2px solid var(--color-text);padding:24px;width:min(460px,calc(100vw - 24px));max-height:90dvh;overflow:auto;color:var(--color-text);background:white}
dialog::backdrop{background:#201e1dcc}
dialog h2{font-size:26px}
dialog form{display:flex;flex-direction:column;gap:12px}
dialog label{display:flex;flex-direction:column;font-size:12px;font-weight:700;gap:4px}
dialog input,dialog textarea,dialog select{min-height:46px;padding:8px;border:2px solid var(--color-divider);font:inherit;max-width:100%;background:#fff;color:var(--color-text)}
dialog textarea{min-height:90px}
dialog .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
dialog p{font-size:13px}
dialog .checks label{flex-direction:row;align-items:center;min-height:44px}
dialog .checks input{min-height:20px}
.error{color:#8b2800;font-size:13px;white-space:pre-wrap}
#lightbox{width:min(900px,94vw);text-align:center}
#lightbox img{max-height:68dvh;max-width:100%;margin:auto;object-fit:contain}
.login{max-width:480px;margin:12vh auto;padding:24px;background:white;border:2px solid var(--color-text)}
.login input{width:100%;min-height:50px;margin:16px 0}
@media(max-width:600px){#status{top:auto;bottom:66px;right:4px;font-size:10px;max-width:170px} .tools{padding-inline:16px}}
@media(max-width:380px){#app input{max-width:100%} [data-set-row]{flex-wrap:wrap} }
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{nav,#status,.tools{display:none!important}.group{break-before:page}}

#app [role="status"]{pointer-events:none}#app [role="status"] button{pointer-events:auto}

#app{overflow-wrap:anywhere}#app nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}#app nav button{min-width:0;text-align:center}#app [data-set-row]{flex-wrap:wrap}

.exercise-heading{flex-wrap:wrap}.exercise-title{flex:1 1 9em!important}.set-values{flex:1 1 8em!important;min-width:min(100%,8em)!important}

#app [data-set-row]>span:first-child{width:auto!important;min-width:76px}html[data-large-text="true"] #app nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}
