@font-face{font-family:"SF Arabic";font-weight:300;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-1.ttf) format("truetype")}
@font-face{font-family:"SF Arabic";font-weight:400;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-2.ttf) format("truetype")}
@font-face{font-family:"SF Arabic";font-weight:500;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-3.ttf) format("truetype")}
@font-face{font-family:"SF Arabic";font-weight:600 700;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-4.ttf) format("truetype")}
@font-face{font-family:"SF Arabic";font-weight:800;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-5.ttf) format("truetype")}
@font-face{font-family:"SF Arabic";font-weight:900;font-style:normal;font-display:block;src:url(../fonts/sf-arabic-6.ttf) format("truetype")}
:root{--font:"SF Arabic",-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",Roboto,Tahoma,Arial,sans-serif}
html{overflow-x:hidden;-webkit-text-size-adjust:100%}
:root{--bg:#fff7f9;--ink:#2a2226;--mute:#8a7d83;--line:#f0dfe5;--rose:#e0507f;--rose2:#ff7aa3;--plum:#5b2a45}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#fff9fb,#fdeef3 70%);color:var(--ink);font-family:var(--font);font-weight:400;line-height:1.7;min-height:100vh;min-height:100dvh;overflow-x:hidden;width:100%;position:relative}
h1,h2,h3,h4,b,button,input,select,textarea{font-family:var(--font)}
h1{font-weight:800}h2,h3,h4{font-weight:600}
.blob{position:fixed;border-radius:50%;filter:blur(70px);opacity:.45;z-index:-1;animation:drift 18s ease-in-out infinite alternate}
.b1{width:420px;height:420px;background:#ffc2d6;top:-120px;right:-80px}
.b2{width:360px;height:360px;background:#ffe0b8;bottom:-100px;left:-80px;animation-delay:-6s}
@keyframes drift{to{transform:translate(-60px,50px) scale(1.15)}}
.top{background:#262626;display:flex;align-items:center;gap:18px;padding:8px 28px;padding-top:max(8px,env(safe-area-inset-top));position:relative;box-shadow:0 8px 30px #e0507f33}
.top:after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--rose),#ffb067,var(--rose2),var(--rose));background-size:300% 100%;animation:flow 6s linear infinite}
@keyframes flow{to{background-position:-300% 0}}
.top img{height:88px;display:block;animation:pop .9s cubic-bezier(.2,1.2,.4,1) both}
@keyframes pop{from{opacity:0;transform:scale(.7) rotate(-6deg)}}
.top h1{margin:0;font-size:22px;color:#fff;animation:slide .7s .2s both}.top p{margin:0;color:#f3b6c9;font-size:13px;animation:slide .7s .35s both}
@keyframes slide{from{opacity:0;transform:translateX(24px)}}
main{max-width:980px;margin:28px auto 120px;padding:0 18px}
.pick{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:22px}
.opt{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--line);border-radius:20px;padding:20px 22px;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s;box-shadow:0 4px 16px #e0507f12}
.opt:hover{transform:translateY(-4px);box-shadow:0 14px 30px #e0507f26;border-color:#f5b6cb}
.opt:active{transform:scale(.98)}
.opt input{position:absolute;opacity:0}
.box{width:30px;height:30px;border-radius:10px;border:2px solid #d8c6cd;display:grid;place-items:center;flex:none;transition:.25s}
.box svg{width:17px;opacity:0;transform:scale(.3) rotate(-30deg);transition:.35s cubic-bezier(.2,1.6,.4,1)}
.opt b{font-size:17px;display:block}.opt small{color:var(--mute)}
.opt:has(input:checked){border-color:var(--rose);background:linear-gradient(135deg,#fff,#ffeaf1);box-shadow:0 12px 30px #e0507f30}
.opt:has(input:checked) .box{background:linear-gradient(135deg,var(--rose),var(--rose2));border-color:var(--rose);animation:bump .4s}
@keyframes bump{50%{transform:scale(1.25)}}
.opt:has(input:checked) .box svg{opacity:1;transform:none}
.opt:has(input:focus-visible){outline:3px solid var(--rose2);outline-offset:3px}
.panel{display:grid;grid-template-rows:0fr;opacity:0;margin-bottom:0;transition:grid-template-rows .55s cubic-bezier(.3,.8,.3,1),opacity .4s,margin .4s}
.panel.on{grid-template-rows:1fr;opacity:1;margin-bottom:22px}
.pi{overflow:hidden;min-height:0}
.pc{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 10px 36px #e0507f14}
.pc>h2{margin:0 0 18px;font-size:20px;display:flex;align-items:center;gap:10px}
.pc>h2:before{content:"";width:7px;height:24px;border-radius:4px;background:linear-gradient(var(--rose),#ffb067)}
.grp{border:1px solid var(--line);border-radius:16px;padding:14px 16px 16px;margin-bottom:14px;background:linear-gradient(180deg,#fffafc,#fff);border-inline-start:5px solid var(--a)}
.panel.on .grp{animation:rise .6s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--i)*90ms + .15s)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
.grp h3{margin:0 0 10px;font-size:15px;color:var(--a)}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}
.f label{display:block;font-size:13px;color:var(--mute);margin-bottom:4px;transition:color .2s}
.f:focus-within label{color:var(--rose)}
.f.wide{grid-column:1/-1}
.in{display:flex;align-items:center;background:#fff8fa;border:1.5px solid var(--line);border-radius:12px;transition:.2s}
.in:hover{border-color:#f0bfd0}
.in:focus-within{border-color:var(--rose);background:#fff;box-shadow:0 0 0 4px #e0507f22;transform:translateY(-1px)}
.in input,.in select,.in textarea{flex:1;min-width:0;background:none;border:0;color:var(--ink);font:inherit;padding:10px 12px;outline:0;resize:vertical}
.in textarea{min-height:80px}
.in em{font-style:normal;color:var(--mute);font-size:12px;padding-inline:10px 12px}
.in button{margin:4px;border:0;background:#ffe3ec;color:#b3305a;border-radius:9px;padding:6px 14px;cursor:pointer;font:inherit;font-size:12px;font-weight:600;transition:.2s}
.in button:hover{background:var(--rose);color:#fff;transform:scale(1.06)}
.ltr{direction:ltr;text-align:left}
.soon{border:2px dashed #f0bfd0;border-radius:16px;padding:36px;text-align:center;color:var(--mute);background:#fff8fa}
.bar{position:fixed;inset:auto 0 0 0;background:#ffffffee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:12px 12px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:12px;z-index:5}
.btn{border:0;font:inherit;white-space:nowrap;justify-content:center;font-weight:600;border-radius:14px;padding:13px 32px;cursor:pointer;transition:.25s;position:relative;overflow:hidden;display:flex;align-items:center;gap:8px}
.btn svg{width:18px}
.pdf{background:linear-gradient(135deg,var(--rose),#f0689a);color:#fff;box-shadow:0 8px 22px #e0507f55}
.pdf:after{content:"";position:absolute;top:0;bottom:0;width:40px;left:-60px;background:#fff5;transform:skewX(-20deg)}
.pdf:hover{transform:translateY(-3px);box-shadow:0 14px 28px #e0507f66}
.pdf:hover:after{left:130%;transition:left .6s}
.pdf:active{transform:scale(.97)}
.pdf.alt{background:linear-gradient(135deg,#3d3d3d,#1d1d1d);box-shadow:0 8px 22px #0004}
.pdf.alt:hover{box-shadow:0 14px 28px #0006}
.clr{background:#fff;color:var(--plum);border:1.5px solid var(--line)}.clr:hover{background:#fff0f5;transform:translateY(-2px)}
#toast{max-width:90vw;text-align:center;position:fixed;top:18px;left:50%;transform:translate(-50%,-90px);background:var(--plum);color:#fff;padding:11px 22px;border-radius:14px;font-weight:600;transition:.4s cubic-bezier(.2,1.4,.4,1);z-index:9;box-shadow:0 10px 30px #0003}
#toast.show{transform:translate(-50%,0)}
@media(max-width:640px){
 .pick{grid-template-columns:1fr;gap:10px}
 .top{gap:10px;padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top))}
 .top img{height:52px;max-width:40vw;object-fit:contain}
 .top h1{font-size:16px;line-height:1.5}.top p{font-size:11.5px;line-height:1.5}
 main{margin:16px auto 130px;padding:0 12px}
 .opt{padding:14px 14px;border-radius:16px;gap:10px}.opt b{font-size:15px}.opt small{font-size:12px}
 .pc{padding:14px;border-radius:18px}.pc>h2{font-size:17px;margin-bottom:12px}
 .grp{padding:12px 12px 14px;border-radius:14px}
 .row{grid-template-columns:1fr}
 .in input,.in select,.in textarea{font-size:16px;padding:11px 12px}
 .in button{padding:8px 14px;font-size:13px}
 .bar{gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
 .btn{flex:1 1 0;padding:13px 8px;font-size:15px}
 .btn{padding:12px 4px;font-size:13px}
 .pdf{flex:1.3 1 0}.pdf svg{display:none}
 .clr{flex:.8 1 0}
 .blob{display:none}
}
@media(prefers-reduced-motion:reduce){*,*:after{animation:none!important;transition:none!important}}

/* ---------- training plan panel ---------- */
.day .warm{margin:-4px 0 12px;font-size:12.5px;color:var(--mute);line-height:1.9}
.mv{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px 12px;margin-bottom:10px;transition:border-color .2s,box-shadow .2s}
.mv.bad{border-color:#d93a3a;box-shadow:0 0 0 3px #d93a3a22}
.mvh{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--plum)}
.mvh .mn{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--rose),var(--rose2));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}
.mvh .del{margin-inline-start:auto;border:0;background:#ffe3ec;color:#b3305a;width:28px;height:28px;border-radius:9px;cursor:pointer;font-size:18px;line-height:1;transition:.2s}
.mvh .del:hover{background:var(--rose);color:#fff}
.mvf{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}
.k-name{grid-column:span 4}.k-set,.k-rep,.k-rm,.k-temp{grid-column:span 2}.k-rest{grid-column:span 3}.k-info{grid-column:span 9}
.mvf .f label{direction:ltr;text-align:right}
.rq{color:var(--rose);font-style:normal;margin-inline-start:3px}
.add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:2px dashed #f0bfd0;background:#fff8fa;color:#b3305a;border-radius:14px;padding:11px;font:inherit;font-weight:600;cursor:pointer;transition:.2s}
.add:hover:not(:disabled){background:var(--rose);color:#fff;border-style:solid;border-color:var(--rose)}
.add:disabled{opacity:.45;cursor:not-allowed}
.day .cnt{display:block;text-align:center;color:var(--mute);margin-top:6px;font-size:12px}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills button{flex:1 1 0;min-width:52px;border:2px solid var(--line);background:#fff;color:var(--plum);border-radius:14px;padding:11px 0;font:inherit;font-size:17px;font-weight:700;cursor:pointer;transition:.25s}
.pills button:hover{border-color:#f5b6cb;transform:translateY(-2px);box-shadow:0 8px 18px #e0507f1f}
.pills button.on{background:linear-gradient(135deg,var(--rose),var(--rose2));border-color:var(--rose);color:#fff;box-shadow:0 8px 20px #e0507f44}
.day{border-radius:20px;padding:16px 16px 18px;background:linear-gradient(180deg,#fffafc,#fff);box-shadow:0 6px 22px #e0507f10}
.day h3{display:flex;align-items:center;gap:10px;font-size:17px;margin-bottom:6px}
.day .dn{width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,var(--rose),#ffb067);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:700;box-shadow:0 4px 10px #e0507f44}
.day .warm{background:#fff0f5;border-radius:12px;padding:8px 12px;margin:0 0 14px;color:#8a3a58}
.mv{border-radius:16px;padding:12px 14px 14px;box-shadow:0 2px 8px #e0507f0d;border-inline-start:4px solid #f5b6cb}
.mv:hover,.mv:focus-within{border-color:var(--rose);box-shadow:0 8px 22px #e0507f1c}
.mv:focus-within{border-inline-start-color:var(--rose)}
.mvh{padding-bottom:8px;border-bottom:1px dashed var(--line);margin-bottom:10px}
.add{border-radius:16px;padding:14px;font-size:15px}
.day .cnt{background:#fff0f5;color:#b3305a;border-radius:20px;width:max-content;margin:10px auto 0;padding:2px 14px;font-weight:600}
@media(max-width:640px){
 .pills{gap:6px}.pills button{min-width:0;padding:10px 0;font-size:16px;border-radius:12px}
 .day{padding:12px 10px 14px;border-radius:16px}
 .mvf{grid-template-columns:repeat(6,1fr);gap:8px}
 .k-name,.k-info{grid-column:span 6}.k-set,.k-rep,.k-rm{grid-column:span 2}.k-temp,.k-rest{grid-column:span 3}
}

/* compact size box + course */
.row.rp{grid-template-columns:repeat(6,minmax(0,1fr))}
.row.rp>.rp-n{grid-column:span 4}.row.rp>.rp-c{grid-column:span 2}.row.rp>.rp-d{grid-column:span 3}
@media(max-width:640px){
 .row.rp{grid-template-columns:1fr}
 .row.rp>.f{grid-column:1/-1}
}
.pl-nm{white-space:nowrap;flex:none}
.pl-pills{display:flex;align-items:center;gap:2.5mm}
.pl-dt{justify-content:flex-end;margin-top:.6mm}
.pl-nm.pl-co{background:#e0507f;color:#fff}
.hero b .co{font-size:.78em;font-weight:600;color:#ffd3e1;margin-inline-start:.4em;white-space:nowrap}

/* ---------- PDF sheet ---------- */
#sheet{display:none;width:210mm;font-family:var(--font);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.pg{width:210mm;height:296.8mm;background:#fffafb;color:#2a2226;font-size:14px;overflow:hidden;display:flex;flex-direction:column;font-family:var(--font);break-after:page;page-break-after:always}
.pg:last-child{break-after:auto;page-break-after:auto}
#sheet.live{display:block;position:fixed;left:0;top:0;visibility:hidden;z-index:-1;pointer-events:none}
.sh-foot{flex:none;background:#262626;color:#fff;padding:4mm 12mm;display:flex;justify-content:space-between;gap:6mm;border-top:1.2mm solid var(--rose);font-size:.88em}
.sh-foot span{color:#f3b6c9;display:block;font-size:.85em}
.sh-foot .fi{direction:ltr;display:flex;align-items:center;gap:2.5mm}
.sh-foot .fi svg{width:6mm;height:6mm;flex:none}
.sh-foot .fi b{font-size:1.1em}
.sh-foot b{direction:ltr;unicode-bidi:embed;display:block}
.sh-head{flex:none;height:60mm;position:relative;overflow:hidden;background:#0d0508;border-bottom:1.2mm solid var(--rose)}
.sh-head .bn{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.sh-tag{position:absolute;left:12mm;bottom:5mm;direction:rtl;background:#0b0407d9;border:.35mm solid #e0507f;color:#fff;border-radius:10mm;padding:1mm 5mm;font-weight:700;font-size:.95em;box-shadow:0 0 3mm #e0507f66}
.sh-body{flex:1;overflow:hidden;padding:6mm 12mm 4mm;display:flex;flex-direction:column;gap:3.2mm;min-height:0}
.hero{flex:none;min-width:0;background:linear-gradient(120deg,#e0507f,#a8295a 60%,#5b2a45);color:#fff;border-radius:3.5mm;padding:4.5mm 6mm;display:flex;align-items:center;justify-content:space-between;gap:5mm}
.hero>div:first-child{flex:1 1 55%;min-width:0}
.hero small{display:block;color:#ffd3e1;font-size:1.9em;font-weight:900;line-height:1.3;margin-bottom:1mm}
.hero b{display:block;font-size:1.3em;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:2mm;justify-content:flex-end;flex:0 1 38%}
.chip{background:#ffffff26;border:.3mm solid #ffffff55;border-radius:10mm;padding:1.2mm 4mm;font-size:.9em;font-weight:600}
.chip i{font-style:normal;font-weight:400;color:#ffd3e1;margin-inline-end:1.5mm;font-size:.85em}
.sg{--a:#e0507f;flex:0 0 auto;display:flex;flex-direction:column;border:.35mm solid color-mix(in srgb,var(--a) 35%,white);border-radius:3mm;overflow:hidden;background:#fff}
.sg h4{flex:none;margin:0;font-weight:700;background:var(--a);color:#fff;font-size:.95em;padding:1.4mm 4mm}
.cells{display:flex;flex-wrap:wrap;background:color-mix(in srgb,var(--a) 5%,white)}
.c{flex:1 1 30%;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:2.2mm 4mm;border-inline-start:.3mm solid color-mix(in srgb,var(--a) 22%,white);border-top:.3mm solid color-mix(in srgb,var(--a) 22%,white);margin-top:-.3mm}
.c.full{flex-basis:100%;border-inline-start:0}
.c small{display:block;color:var(--a);font-size:.78em;font-weight:600}
.c div{font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;font-size:1.02em}
.c.full div{font-weight:400;line-height:1.9}
.tag{flex:none;text-align:center;font-size:.85em;color:#a8295a;background:#ffe9f0;border-radius:3mm;padding:2mm;letter-spacing:.02em}
/* plan pages */
.pl-day{flex:none;line-height:1.8}
.pl-row{display:flex;align-items:center;justify-content:space-between;gap:4mm}
.pl-nm{font-style:normal;background:#ffe9f0;color:#a8295a;border-radius:10mm;padding:.6mm 4.5mm;font-weight:800;font-size:.98em;line-height:1.7;overflow-wrap:anywhere}
.pl-nm small{font-weight:500;font-size:.82em;color:#8a3a58}
.pl-day b{display:block;font-size:1.1em;font-weight:800;color:#a8295a}
.pl-day span{display:block;font-size:.82em;color:#5a4f54;font-weight:400}
.ptw{flex:none;border:2px solid #000;border-radius:4mm;overflow:hidden;background:#ececec}
.pt{width:185mm;border-collapse:separate;border-spacing:0;table-layout:fixed;direction:rtl}
.pt th,.pt td{border:0;border-bottom:2px solid #000;border-left:2px solid #000;padding:1.2mm 1.6mm;text-align:center;vertical-align:middle;overflow-wrap:anywhere;white-space:pre-line}
.pt th:last-child,.pt td:last-child{border-left:0}
.pt tbody tr:last-child td{border-bottom:0}
.pt th{background:#e0507f;color:#fff;font-weight:800;letter-spacing:.05em;height:34px;direction:ltr}
.pt td{background:#ececec;color:#111;font-weight:600;height:var(--rh,11mm)}
.pt td.l{text-align:right;font-weight:600}
.pt td.o{font-weight:400}

/* ---------- meal plan ---------- */
@media(min-width:641px) and (max-width:860px){.pick{grid-template-columns:1fr 1fr}.pick .opt:last-child{grid-column:1/-1}}
.in textarea.ag{min-height:46px;resize:none;overflow:hidden;line-height:1.7}
.mg .cnt{display:block;text-align:center;color:var(--mute);margin-top:6px;font-size:12px}
.mg .add{margin-top:4px}
.rules{flex:none;border:.7mm solid var(--rose);border-radius:4mm;background:#fff;padding:1.5mm 6mm;text-align:center;box-shadow:inset 0 0 0 1mm #ffe9f0}
.rules p{margin:0;padding:1.5mm 0;font-weight:700;line-height:1.75;overflow-wrap:anywhere;border-bottom:.25mm dashed #f0bfd0}
.rules p:last-child{border-bottom:0}
.c.mo{padding:.9mm 4mm}
.c.mo div{font-weight:600;line-height:1.6}
.c.nt{padding:1.4mm 4mm}.c.nt div{font-weight:400;line-height:1.7}
.rules.sm{--a:#5d6b8a;border:.35mm solid color-mix(in srgb,var(--a) 35%,white);border-radius:3mm;overflow:hidden;background:color-mix(in srgb,var(--a) 5%,white);padding:0;text-align:right;box-shadow:none;font-size:.74em}
.rules.sm p{margin:0;padding:.15mm 4mm;line-height:1.45;font-weight:400;border:0}
.rules.sm h5+p{padding-top:.8mm}
.rules.sm p:last-child{padding-bottom:1mm}
.rules.sm h5{margin:0 0 .6mm;padding:1.4mm 4mm;background:var(--a);color:#fff;font-size:1.25em;font-weight:700;border:0}
@media print{
 @page{size:A4;margin:0}
 html,body{background:#fff!important}
 body>*:not(#sheet){display:none!important}
 #sheet.live{position:static;visibility:visible;z-index:auto}
}

/* ---------- sidebar + pages ---------- */
.app{display:flex;align-items:flex-start;gap:22px;max-width:1260px;margin:28px auto 0;padding:0 18px}
.app main{flex:1;min-width:0;max-width:980px;margin:0 0 120px;padding:0}
.side{position:sticky;top:16px;width:252px;flex:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;box-shadow:0 10px 36px #e0507f14;display:flex;flex-direction:column;gap:6px}
.nv{display:flex;align-items:center;gap:12px;white-space:nowrap;border:0;background:none;font:inherit;font-size:15px;font-weight:600;color:var(--plum);padding:13px 14px;border-radius:14px;cursor:pointer;text-align:start;transition:.2s}
.nv svg{width:20px;height:20px;flex:none}
.nv:hover{background:#fff0f5}
.nv:focus-visible{outline:3px solid var(--rose2);outline-offset:2px}
.nv.on{background:linear-gradient(135deg,var(--rose),#f0689a);color:#fff;box-shadow:0 8px 20px #e0507f44}
.nv-n{margin-inline-start:auto;min-width:24px;padding:0 7px;border-radius:12px;background:#ffe3ec;color:#b3305a;font-size:12px;text-align:center;line-height:22px}
.nv.on .nv-n{background:#ffffff40;color:#fff}
.nv-n:empty{display:none}
body[data-view="list"] #v-reg,body[data-view="list"] .bar{display:none}
body[data-view="reg"] #v-list{display:none}

/* ---------- students ---------- */
.st-n{font-size:13px;font-weight:500;color:var(--mute);margin-inline-start:4px}
.st-warn{background:#fff3e0;border:1px solid #f3cf9a;color:#8a5200;border-radius:12px;padding:9px 12px;font-size:13px;margin-bottom:16px}
.st-edit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#ffeaf1;border:1px solid #f5b6cb;border-radius:14px;padding:10px 14px;margin-bottom:18px;font-size:14px;color:var(--plum)}
.st-edit[hidden]{display:none}
.st-edit b{color:var(--ink);font-size:15px}
.st-edit .dot{font-weight:600;color:#b3560f;font-size:13px}
.st-edit .st-b{margin-inline-start:auto}
.st-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.st-head .in{flex:1 1 220px}
.st-b{border:1.5px solid var(--line);background:#fff;color:var(--plum);border-radius:12px;padding:8px 16px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;white-space:nowrap}
.st-b:hover{background:#fff0f5;border-color:#f0bfd0}
.st-b:focus-visible{outline:3px solid var(--rose2);outline-offset:2px}
.st-b.pri{background:var(--rose);border-color:var(--rose);color:#fff}
.st-b.pri:hover{background:#d04372}
.st-b.bad{color:#b3305a}
.st-b.bad:hover{background:#ffe3ec}
.st-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;background:#fffafc;overflow:hidden}
.st-list:empty{display:none}
.st-it{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);border-inline-start:4px solid transparent}
.st-it:last-child{border-bottom-width:0}
.st-it.on{background:#ffeaf1;border-inline-start-color:var(--rose)}
.st-who{flex:1;min-width:0}
.st-who b{display:block;font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-who div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;color:var(--mute);font-size:12.5px}
.st-tag{background:#ffe9f1;color:#b3305a;border-radius:8px;padding:0 8px;font-size:11.5px;line-height:20px;font-weight:600}
.st-empty{margin:0;padding:26px 18px;text-align:center;color:var(--mute);background:#fff8fa;border:2px dashed #f0bfd0;border-radius:14px;font-size:14px}
.st-empty:empty{display:none}
.st-empty .st-b{margin-top:12px}
.st-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.st-bk{flex:1 1 220px;font-size:12.5px;color:var(--mute)}
.st-bk.warn{color:#b3560f;font-weight:600}
.svbtn{background:linear-gradient(135deg,#1f9d97,#2bb5ae);color:#fff;box-shadow:0 8px 22px #1f9d9755}
.svbtn:hover{transform:translateY(-3px);box-shadow:0 14px 28px #1f9d9766}
.svbtn:active{transform:scale(.97)}
@media(max-width:860px){
 .app{display:block;margin-top:12px;padding:0 12px}
 .side{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;width:auto;flex-direction:row;padding:6px;margin-bottom:14px;border-radius:16px;background:#ffffffee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
 .nv{flex:1;justify-content:center;padding:11px 8px;font-size:14px}
 .nv svg{width:18px;height:18px}
 .nv-n{margin-inline-start:0}
 .app main{margin:0 0 160px}
}
@media(max-width:640px){
 .bar{flex-wrap:wrap}
 .svbtn{order:-1;flex:1 1 58%}
 .clr{order:-1;flex:1 1 30%}
 .bar .pdf{flex:1 1 44%}
 .st-it{flex-wrap:wrap}
 .st-who{flex:1 1 100%}
}

/* ---------- v2: home, profile, progress ---------- */
.in select.dur{flex:none;width:86px;padding-inline:6px;border-inline-start:1.5px solid var(--line)}
#v-home,#v-prof{display:none}
body[data-view=home] #v-home,body[data-view=prof] #v-prof{display:block}
body[data-view=home] #v-reg,body[data-view=prof] #v-reg,body[data-view=home] #v-list,body[data-view=prof] #v-list,body[data-view=home] .bar,body[data-view=prof] .bar{display:none}
.hm-s{margin-bottom:22px}.hm-s h3{margin:0 0 4px;font-size:16px;display:flex;align-items:center;gap:8px}
.hm-s>p{margin:0 0 10px;color:var(--mute);font-size:12.5px}.hm-s>p.st-empty{margin:0;font-size:14px}
.hm-c{background:#ffe3ec;color:#b3305a;border-radius:12px;padding:0 9px;font-size:12px;line-height:22px}
.hm-late{color:#d93a3a;font-weight:600}.hm-soon{color:#b3560f;font-weight:600}
.pf-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.pf-cs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.pf-c{flex:1 1 150px;border:1.5px solid var(--line);border-radius:14px;padding:10px 14px;background:#fffafc;display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--mute);align-items:flex-start}
.pf-c b{font-size:15px;color:var(--plum)}.pf-c.cur{border-color:var(--rose);background:#ffeaf1}
.cmpw{overflow-x:auto;margin-bottom:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.cmp{width:100%;border-collapse:collapse}.cmp th,.cmp td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.cmp thead th{background:#ffeaf1;color:var(--plum)}.cmp tbody th{text-align:start;color:var(--plum)}
.cmp tr:last-child>*{border-bottom:0}
.cmp input{width:72px;text-align:center;direction:ltr;border:1.5px solid var(--line);border-radius:9px;padding:5px;font:inherit;background:#fff8fa}
.cmp small{display:block;font-size:11.5px;font-weight:600}
.cmp .up{color:#1a8f4d}.cmp .dn{color:#d93a3a}.cmp .z{color:var(--mute);font-weight:400}
.pf-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.ch{border:1px solid var(--line);border-radius:14px;background:#fff;padding:8px 10px}
.ch b{font-size:13px;color:var(--plum)}.ch b small{color:var(--mute);font-weight:400}.ch svg{width:100%;height:auto;display:block}
.sh-body .cmpw,.sh-body .rp-g,.sh-body .tag{flex:none}
.rp-g{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5mm}.rp-g .ch{padding:1.5mm 2mm;border-radius:2.5mm}
.cmp.rpt{font-size:.8em}.cmp.rpt small{font-size:.9em}.cmp.rpt th,.cmp.rpt td{padding:1.2mm 1.8mm}.cmp.rpt thead th{background:#e0507f;color:#fff}

/* ---------- login box ---------- */
.lg-wrap{display:none;max-width:430px;margin:44px auto 60px;padding:0 18px}
html:not([data-auth="1"]) .lg-wrap{display:block}
html:not([data-auth="1"]) .app,html:not([data-auth="1"]) .bar{display:none!important}
.lg-card{padding:28px 26px 24px;animation:rise .6s cubic-bezier(.2,.9,.3,1) both}
.lg-ic{width:62px;height:62px;border-radius:20px;margin:0 auto 14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--rose),#ffb067);box-shadow:0 10px 24px #e0507f44}
.lg-ic svg{width:28px;height:28px}
.lg-card>h2{justify-content:center;margin:0 0 4px;font-size:21px}
.lg-card>h2:before{display:none}
.lg-sub{margin:0 0 20px;text-align:center;color:var(--mute);font-size:13px}
.lg-card .f{margin-bottom:12px}
.lg-err{min-height:22px;margin:6px 0 8px;color:#d93a3a;font-size:13px;font-weight:600;text-align:center}
.lg-go{width:100%;padding:14px}
.lg-go:disabled,.lg-go:disabled:hover{opacity:.55;cursor:wait;transform:none}
@media(max-width:640px){.lg-wrap{margin-top:24px;padding:0 12px}.lg-card{padding:22px 16px 18px}}
/* ---------- logout button (added with the backend) ---------- */
.nv-out{color:#b3305a;margin-top:6px}
.nv-out:hover{background:#ffe3ec}
@media(max-width:860px){.nv-out{flex:0 0 48px;padding:11px 0;margin-top:0}.nv-out .lbl{display:none}}
