@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fredoka-hebrew-500-normal.14411dc4.woff2) format("woff2"),url(/_next/static/media/fredoka-hebrew-500-normal.6e0cfc71.woff) format("woff");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fredoka-latin-ext-500-normal.b6d3bc01.woff2) format("woff2"),url(/_next/static/media/fredoka-latin-ext-500-normal.f35274b7.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fredoka-latin-500-normal.650ff78b.woff2) format("woff2"),url(/_next/static/media/fredoka-latin-500-normal.98337ca0.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/fredoka-hebrew-600-normal.74e886da.woff2) format("woff2"),url(/_next/static/media/fredoka-hebrew-600-normal.ba8e810c.woff) format("woff");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/fredoka-latin-ext-600-normal.766639d1.woff2) format("woff2"),url(/_next/static/media/fredoka-latin-ext-600-normal.775a1166.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/fredoka-latin-600-normal.e448ba2f.woff2) format("woff2"),url(/_next/static/media/fredoka-latin-600-normal.9a8e33dd.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-cyrillic-ext-400-normal.a866c292.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-ext-400-normal.295427ef.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-cyrillic-400-normal.cc436e25.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-400-normal.6daaf72a.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-vietnamese-400-normal.1c1c28c3.woff2) format("woff2"),url(/_next/static/media/nunito-sans-vietnamese-400-normal.7caa7525.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-latin-ext-400-normal.c89a2fa5.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-ext-400-normal.05464237.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/nunito-sans-latin-400-normal.7d8c7b02.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-400-normal.036bf50b.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/nunito-sans-cyrillic-ext-600-normal.83286dee.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-ext-600-normal.f6b3f0b5.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/nunito-sans-cyrillic-600-normal.eae356e9.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-600-normal.5eaa2133.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/nunito-sans-vietnamese-600-normal.791219fc.woff2) format("woff2"),url(/_next/static/media/nunito-sans-vietnamese-600-normal.75719ec1.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/nunito-sans-latin-ext-600-normal.8f176ace.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-ext-600-normal.4747d71b.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/nunito-sans-latin-600-normal.609eb1ae.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-600-normal.207a0a3f.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-cyrillic-ext-700-normal.daea378e.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-ext-700-normal.7b6b2338.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-cyrillic-700-normal.21084e9a.woff2) format("woff2"),url(/_next/static/media/nunito-sans-cyrillic-700-normal.a68c462e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-vietnamese-700-normal.559d1cf1.woff2) format("woff2"),url(/_next/static/media/nunito-sans-vietnamese-700-normal.60ff99df.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-latin-ext-700-normal.306dc6a9.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-ext-700-normal.18b317c0.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/nunito-sans-latin-700-normal.fab59477.woff2) format("woff2"),url(/_next/static/media/nunito-sans-latin-700-normal.5a0b6189.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--ink:#14323b;--ink-soft:#3f5b63;--paper:#f4f8f7;--card:#ffffff;--line:#d3e0de;--yellow:#ebb934;--yellow-ink:#3a2c00;--danger:#b3261e;--ok:#1e7a3c;--d2:#f2a7b4;--d3:#a8d27a;--d4:#f5b366;--d5:#7cc6dc;--d6:#c9b8e6;--font-head:"Fredoka",ui-rounded,system-ui,sans-serif;--font-body:"Nunito Sans",system-ui,sans-serif;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.55}h1,h2,h3{font-family:var(--font-head);line-height:1.15;margin:0 0 .5em;font-weight:600}h1{font-size:clamp(2rem,6vw,3.4rem);letter-spacing:-.01em}h2{font-size:clamp(1.4rem,3.4vw,1.9rem)}h3{font-size:1.15rem}p{margin:0 0 1em;max-width:62ch}a{color:inherit}:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:4px}.wrap{width:min(1120px,100% - 2rem);margin-inline:auto}.stack>*+*{margin-top:1rem}.muted{color:var(--ink-soft)}.small{font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stripe{height:8px;background:linear-gradient(90deg,#55a9c4 0 25%,#a5c23a 25% 50%,var(--yellow) 50% 75%,#e9833b 75%)}.site-header{background:var(--card);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.75rem;flex-wrap:wrap}.brand{font-family:var(--font-head);font-weight:600;font-size:1.5rem;text-decoration:none;display:flex;align-items:baseline;gap:.5rem}.brand small{font-family:var(--font-body);font-weight:400;font-size:.85rem;color:var(--ink-soft)}.nav{display:flex;gap:.25rem 1rem;flex-wrap:wrap;align-items:center}.nav a{text-decoration:none;padding:.35rem .1rem;border-bottom:2px solid transparent}.nav a:hover{border-color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:48px;padding:.6rem 1.4rem;border-radius:999px;border:2px solid var(--ink);background:var(--card);color:var(--ink);font:600 1rem var(--font-body);text-decoration:none;cursor:pointer}.btn:hover{background:#eaf2f0}.btn.primary{background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow)}.btn.primary:hover{background:#f3c64f}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.small{min-height:38px;padding:.3rem .9rem;font-size:.9rem}.btn[disabled]{opacity:.55;cursor:not-allowed}.hero{padding-block:clamp(2rem,6vw,4rem) 1.5rem}.hero .lead{font-size:1.25rem;max-width:40ch}.hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:1rem;gap:1rem;margin-block:1rem 2rem}.day{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}.day header{padding:.6rem .9rem;background:var(--dc);display:flex;justify-content:space-between;align-items:baseline}.day header h3{margin:0}.day.today{outline:3px solid var(--ink);outline-offset:2px}.day .badge{font-size:.8rem;font-weight:700;background:var(--ink);color:#fff;padding:.1rem .55rem;border-radius:999px}.day ul{list-style:none;margin:0;padding:0}.day li{padding:.65rem .9rem;border-top:1px solid var(--line)}.day li:first-child{border-top:0}.day .time{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.95rem}.day .course,.day .meta,.day .time{display:block}.day .meta{font-size:.85rem;color:var(--ink-soft)}.day .empty{padding:1rem .9rem;color:var(--ink-soft)}.info{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-block:1rem 3rem}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.25rem}.panel h3{margin-bottom:.35em}.footer{border-top:1px solid var(--line);padding-block:1.5rem;margin-top:2rem;color:var(--ink-soft);font-size:.95rem}.form{display:grid;grid-gap:1rem;gap:1rem;max-width:640px}.field{display:grid;grid-gap:.3rem;gap:.3rem}.field label,.field legend{font-weight:700}.hint{font-size:.88rem;color:var(--ink-soft)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],select,textarea{width:100%;min-height:48px;padding:.55rem .75rem;border:2px solid #9db3b0;border-radius:10px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:96px}.row{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}fieldset{border:0;padding:0;margin:0}.check{display:flex;gap:.65rem;align-items:flex-start;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;background:#fff}.check input{width:22px;height:22px;margin-top:.15rem;flex:none;accent-color:var(--ink)}.check .t{font-weight:600}.check .m{display:block;font-size:.85rem;color:var(--ink-soft);font-weight:400}.check.full{opacity:.55}.daygroup{margin-top:1rem}.daygroup h3{display:inline-block;padding:.1rem .7rem;border-radius:999px;background:var(--dc)}.checks{display:grid;grid-gap:.5rem;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.alert{padding:.75rem 1rem;border-radius:10px;border:2px solid var(--danger);background:#fdecea;color:#6b1410;font-weight:600}.alert.ok{border-color:var(--ok);background:#e8f5ec;color:#0f4a23}.credential{max-width:420px;margin-inline:auto;background:#fff;border:2px solid var(--ink);border-radius:20px;overflow:hidden;text-align:center}.credential .body{padding:1.25rem 1.25rem 1.5rem}.credential svg{width:min(100%,300px);height:auto;display:block;margin:.5rem auto}.credential .who{font-family:var(--font-head);font-size:1.4rem;font-weight:600;margin:.25rem 0}.credential ul{list-style:none;padding:0;margin:.5rem 0 0;color:var(--ink-soft)}.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;font-size:.98rem}td,th{text-align:left;padding:.55rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}th{background:#e9f1ef;font-weight:700;white-space:nowrap}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:.05rem .6rem;border-radius:999px;font-size:.82rem;font-weight:700;background:#e9f1ef}.pill.full{background:#fde3c5}.pill.off{background:#eee;color:#666}.bar{height:8px;background:#e2ebe9;border-radius:99px;min-width:90px;overflow:hidden}.bar>span{display:block;height:100%;background:#55a9c4}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}.toolbar .field{min-width:180px}.sessions,.sessions .srow{display:grid;grid-gap:.5rem;gap:.5rem}.sessions .srow{grid-template-columns:1.3fr 1fr 1fr 1.3fr}@media (max-width:560px){.sessions .srow{grid-template-columns:1fr 1fr}}.matrix td,.matrix th{padding:.35rem .5rem;text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:#fff}.matrix th:first-child{background:#e9f1ef}.mark{color:var(--ok);font-weight:800}.scanner{display:grid;grid-gap:1rem;gap:1rem;max-width:560px;margin-inline:auto}.viewport{position:relative;aspect-ratio:1/1;background:#0d1f24;border-radius:18px;overflow:hidden;border:3px solid var(--ink)}.viewport video{width:100%;height:100%;object-fit:cover}.viewport .aim{position:absolute;inset:18%;border:4px solid rgba(255,255,255,.85);border-radius:18px;pointer-events:none}.viewport .off{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-align:center;padding:1rem}.result{border-radius:14px;padding:1rem 1.1rem;font-weight:700;font-size:1.15rem;border:3px solid var(--line);background:#fff;min-height:76px;display:flex;align-items:center;gap:.6rem}.result.registered{border-color:var(--ok);background:#e8f5ec;color:#0f4a23}.result.already{border-color:#b58900;background:#fff6d8;color:#5c4600}.result.bad{border-color:var(--danger);background:#fdecea;color:#6b1410}.roster{list-style:none;margin:0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem}.roster li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.45rem .75rem}.roster li.present{background:#e8f5ec;border-color:#9fd2b0}.counter{font-family:var(--font-head);font-size:1.1rem}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.footer,.no-print,.site-header,.stripe{display:none!important}body{background:#fff}}