@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c412b9dae757a56d-s.p.1cdo_ayqo8nkw.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC7,U+10EC9-10EEE,U+10EF?,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c667f24a0ff78f14-s.2uew94uao4-oz.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:300;font-display:swap;src:url(../media/eb89c7e1d2156adb-s.3h2q_oi0hwy8r.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c24ca030dfcb5061-s.p.42x_n7yf15d0k.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c9a0d344f313d307-s.p.3ik2qu-u9tgho.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC7,U+10EC9-10EEE,U+10EF?,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/aa914dbbd9a27e94-s.0n4hkusom70ae.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5a1ede1938590d51-s.19gzon4xl8qiz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5d6231e6818a3930-s.p.2vs72h_x6qrve.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/280fac012b00b901-s.p.3ihiqn4pviisd.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC7,U+10EC9-10EEE,U+10EF?,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/65b08f011bd29e21-s.00vfn3_g-ftpg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a1b65e215f8df202-s.3w3hylgez90of.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3347fc7792f0b5ea-s.p.0c7ha31nuacbu.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ceec3e50f42c26e3-s.p.0da8nscnv1nkd.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC7,U+10EC9-10EEE,U+10EF?,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b140408e2d7eae5d-s.2x1j3gzzngp4x.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3af3242084a193c-s.1jr_z050he_qo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(../media/441492499fc86682-s.p.1fbvi_fot8u4l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5ad8fdb5805e9b4a-s.p.0-uv4l43gdmt7.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC7,U+10EC9-10EEE,U+10EF?,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bb8a9270184a3556-s.0phk7_etl12r4.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b3f2ed44161db83e-s.3c64at4xi6rda.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(../media/84cd8d504984ae62-s.p.0iritm8hg8q1a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Arabic Fallback;src:local(Arial);ascent-override:107.25%;descent-override:41.02%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_arabic_69985900-module__I6431W__className{font-family:IBM Plex Sans Arabic,IBM Plex Sans Arabic Fallback;font-style:normal}.ibm_plex_sans_arabic_69985900-module__I6431W__variable{--font-arabic:"IBM Plex Sans Arabic", "IBM Plex Sans Arabic Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--on-color:#fff;--brand-ink:#12305c;--brand:#12305c;--brand-2:#1b4079;--brand-deep:#0c2244;--on-brand:#f2f6fb;--accent:#0d8a8a;--accent-2:#4fbfbf;--accent-soft:#d8f0f0;--ink:#0f1b2d;--ink-2:#2c3d52;--muted:#5a6b7b;--muted-2:#8a94a0;--paper:#f4f6f9;--paper-2:#eef1f6;--surface:#fff;--line:#e3e7ec;--line-2:#edf0f4;--line-strong:#ccd4dd;--ok:#0d7a6f;--ok-soft:#e2f4f1;--ok-line:#86c9bf;--warn:#b4700a;--warn-ink:#7a4c05;--warn-soft:#fdf1dd;--warn-line:#e0b467;--danger:#b3261e;--danger-ink:#7f1a14;--danger-soft:#fbe9e7;--danger-line:#e0a49e;--info:#0d8a8a;--info-soft:#e0f2f2;--info-line:#86c9c9;--ok-ink:#0a6155;--info-ink:#0a6a6a;--on-brand-2:#ffffffbd;--on-brand-3:#ffffff85;--on-brand-line:#ffffff21;--on-brand-hover:#ffffff14;--on-brand-active:#ffffff26;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--t-xs:12px;--t-sm:13px;--t-md:14px;--t-lg:16px;--t-xl:20px;--t-2xl:26px;--t-3xl:34px;--t-4xl:44px;--t-hero:clamp(32px, 3.1vw, 42px);--shadow-xs:0 1px 2px #0f1b2d0d;--shadow-sm:0 1px 2px #0f1b2d0d, 0 2px 8px #0f1b2d0a;--shadow-md:0 2px 4px #0f1b2d0f, 0 12px 28px #0f1b2d14;--shadow:0 1px 2px #0f1b2d0a, 0 6px 20px #0f1b2d0d;--shadow-lg:0 20px 50px #0f1b2d21;--shadow-inset:inset 0 1px 0 #fff9;--radius:12px;--radius-sm:8px;--radius-lg:16px;--radius-pill:999px;--ring:0 0 0 3px color-mix(in srgb, var(--accent) 26%, transparent);--dur:.16s;--dur-2:.24s;--ease:cubic-bezier(.2, .7, .3, 1);--forest:var(--brand);--forest-2:var(--brand-2);--mint:var(--accent-soft);--amber:var(--warn);--amber-soft:var(--warn-soft);--red:var(--danger);--red-soft:var(--danger-soft);--blue:var(--info);--blue-soft:var(--info-soft)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#16233a;--brand-ink:#8fb4e8;--brand-2:#1e3557;--brand-deep:#0d1524;--on-brand:#e8eef7;--accent:#3fb5b0;--accent-2:#6fd0cb;--accent-soft:#10312f;--ink:#e8edf4;--ink-2:#c3cddb;--muted:#97a3b3;--muted-2:#6f7b8a;--paper:#0d1420;--paper-2:#121b2a;--surface:#16202f;--line:#24314453;--line-2:#1d2836;--line-strong:#33425a;--ok:#4fc4b4;--ok-soft:#10312d;--ok-line:#2b6b62;--warn:#e0a441;--warn-ink:#f0c98a;--warn-soft:#33260f;--warn-line:#7a5b21;--danger:#f2897f;--danger-ink:#f7b4ad;--danger-soft:#3a1a17;--danger-line:#7d3a34;--info:#3fb5b0;--info-soft:#10312f;--info-line:#2b6b68;--ok-ink:#6fd5c6;--info-ink:#6fd0cb;--on-brand-2:#ffffffb8;--on-brand-3:#ffffff80;--on-brand-line:#ffffff1a;--on-brand-hover:#ffffff0f;--on-brand-active:#ffffff1c;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 2px 10px #00000061;--shadow-md:0 12px 32px #00000080;--shadow:0 10px 30px #00000073;--shadow-lg:0 22px 60px #0009}}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:var(--paper);font-family:var(--font-arabic), "Segoe UI", Tahoma, Arial, sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;direction:rtl;margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.skip-link{inset-inline-start:-200vw;top:var(--s3);z-index:1100;padding:var(--s2) var(--s4);border-radius:var(--radius-sm);background:var(--surface);color:var(--brand-ink);font-size:var(--t-sm);border:1px solid var(--accent);box-shadow:var(--shadow-lg);font-weight:600;position:fixed}.skip-link:focus-visible{inset-inline-start:var(--s4)}.sidebar{height:100dvh;padding:var(--s5) var(--s3) var(--s4);background:linear-gradient(168deg, var(--brand-2) -8%, var(--brand) 44%, var(--brand-deep) 100%);color:var(--on-brand);border-inline-end:1px solid var(--brand-deep);scrollbar-width:thin;flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden auto}.brand{align-items:center;gap:var(--s3);padding:var(--s2) var(--s2) var(--s5);border-radius:var(--radius-sm);display:flex}.brand-mark{background:var(--on-color);width:40px;height:40px;transition:transform var(--dur-2) var(--ease);border-radius:11px;place-items:center;padding:5px;display:grid;box-shadow:inset 0 1px #ffffff80,0 4px 12px #00000038}.brand:hover .brand-mark{transform:translateY(-1px)}.brand-mark img{display:block}.brand strong{font-size:var(--t-lg);letter-spacing:-.012em;font-weight:600;display:block}.brand small{color:var(--on-brand-3);font-size:var(--t-xs);margin-top:2px;display:block}.nav-label{margin:var(--s4) var(--s3) var(--s2);color:var(--on-brand-3);font-size:var(--t-xs);letter-spacing:.015em;font-weight:700}.nav{gap:2px;display:grid}.nav-link{align-items:center;gap:var(--s3);min-height:40px;padding:var(--s2) var(--s3);border-radius:var(--radius-sm);color:var(--on-brand-2);font-size:var(--t-md);letter-spacing:-.005em;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);padding-inline-start:var(--s4);font-weight:500;display:flex;position:relative}.nav-link svg{opacity:.8;transition:opacity var(--dur) var(--ease), color var(--dur) var(--ease);flex-shrink:0}.nav-link:hover{color:var(--on-color);background:var(--on-brand-hover)}.nav-link:hover svg{opacity:1}.nav-link:focus-visible{outline-offset:-2px}.nav-link.active{color:var(--on-color);background:var(--on-brand-active);box-shadow:none;font-weight:600}.nav-link.active svg{opacity:1;color:var(--accent-2)}.nav-link.active:before{content:"";border-radius:var(--radius-pill);background:var(--accent-2);width:3px;position:absolute;inset-block:7px;inset-inline-start:4px}.sidebar-footer{padding:var(--s4) var(--s2) 0;border-top:1px solid var(--on-brand-line);margin-top:auto}.user-mini{align-items:center;gap:var(--s3);display:flex}.avatar{background:var(--on-color);width:36px;height:36px;color:var(--brand-deep);font-weight:700;font-size:var(--t-sm);border-radius:50%;flex-shrink:0;place-items:center;display:grid;box-shadow:0 2px 6px #0003}.user-mini div{min-width:0}.user-mini strong{font-size:var(--t-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.user-mini div span{color:var(--on-brand-3);font-size:var(--t-xs);margin-top:2px;display:block}.logout{margin-top:var(--s3);border:1px solid var(--on-brand-line);border-radius:var(--radius-sm);width:100%;min-height:34px;color:var(--on-brand-2);padding:0 var(--s3);font-size:var(--t-sm);text-align:start;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0}.logout:hover{background:var(--on-brand-hover);color:var(--on-color);border-color:var(--on-brand-3)}.main{flex-direction:column;min-width:0;display:flex}.topbar{min-height:62px;padding:var(--s3) var(--s6);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 78%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);justify-content:space-between;align-items:center;gap:var(--s4);z-index:10;display:flex;position:sticky;top:0}.topbar-title strong{font-size:var(--t-md);letter-spacing:-.008em;align-items:center;gap:6px;font-weight:600;display:flex}.topbar-title strong svg{color:var(--muted);flex-shrink:0}.topbar-title span{color:var(--muted);font-size:var(--t-xs);margin-top:2px;display:block}.system-state{align-items:center;gap:var(--s2);padding:5px var(--s3);border-radius:var(--radius-pill);border:1px solid var(--ok-line);background:var(--ok-soft);color:var(--ok-ink);font-size:var(--t-xs);white-space:nowrap;font-weight:600;display:inline-flex}.live-dot{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent);animation:live-pulse 2.4s var(--ease) infinite;border-radius:50%;flex-shrink:0}@keyframes live-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--ok) 9%, transparent)}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.content{padding:var(--s6);width:100%;max-width:1440px;margin:0 auto}h1,h2,h3,h4{font-family:inherit}.page-heading{justify-content:space-between;align-items:flex-end;gap:var(--s5);margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--line);display:flex}.eyebrow{margin:0 0 var(--s2);color:var(--ok-ink);font-weight:600;font-size:var(--t-xs);letter-spacing:.008em;align-items:center;gap:7px;display:flex}.eyebrow:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}h1{font-size:clamp(27px, 2.7vw, var(--t-3xl));letter-spacing:-.024em;color:var(--ink);text-wrap:balance;margin:0;font-weight:700;line-height:1.18}.page-heading>div{min-width:0}.page-heading>div>p{color:var(--muted);margin:var(--s2) 0 0;font-size:var(--t-md);max-width:62ch;line-height:1.6}.heading-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;flex-shrink:0;display:flex}.button{border-radius:var(--radius-sm);min-height:40px;padding:0 var(--s4);font-size:var(--t-sm);justify-content:center;align-items:center;gap:var(--s2);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);white-space:nowrap;letter-spacing:-.006em;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:1px solid #0000;font-weight:600;display:inline-flex}.button svg{flex-shrink:0}.button:active{transform:translateY(1px)}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button-primary{background:linear-gradient(180deg, var(--brand-2), var(--brand));color:var(--on-color);border-color:var(--brand-deep);box-shadow:var(--shadow-xs), inset 0 1px 0 #ffffff21}.button-primary:hover{background:var(--brand-2);box-shadow:0 4px 14px color-mix(in srgb, var(--brand) 30%, transparent), inset 0 1px 0 #ffffff21}.button-primary:active{box-shadow:var(--shadow-xs)}.button-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-xs)}.button-secondary:hover{border-color:var(--accent);color:var(--brand-ink);background:var(--accent-soft)}.button-secondary:active{background:color-mix(in srgb, var(--accent-soft) 84%, var(--ink));box-shadow:none}.button-danger{background:var(--danger);color:var(--on-color);border-color:color-mix(in srgb, var(--danger) 72%, #000);box-shadow:var(--shadow-xs)}.button-danger:hover{filter:brightness(.92)}.button-danger:active{filter:brightness(.86);box-shadow:none}.button-quiet{color:var(--muted);background:0 0;border-color:#0000}.button-quiet:hover{background:var(--paper-2);color:var(--ink)}.button-quiet:active{background:var(--line-2)}.button-small{min-height:32px;padding:0 var(--s3);font-size:var(--t-xs);border-radius:7px}.button:disabled,.button[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none;box-shadow:none;filter:none;transform:none}.stats-grid{gap:var(--s4);margin-bottom:var(--s5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat-card{padding:var(--s4) var(--s5) var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--tint,var(--accent));width:3px;position:absolute;inset-block:0;inset-inline-start:0}.stat-card:after{content:none}.stat-label{align-items:center;gap:var(--s2);color:var(--muted);font-size:var(--t-sm);letter-spacing:-.004em;min-height:28px;font-weight:500;display:flex}.stat-icon{width:28px;height:28px;color:var(--tint,var(--accent));background:color-mix(in srgb, var(--tint,var(--accent)) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--tint,var(--accent)) 22%, transparent);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.stat-label svg{color:var(--tint,var(--accent))}.stat-value{margin-top:var(--s4);font-family:inherit;font-size:var(--t-hero);letter-spacing:-.035em;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.stat-note{margin-top:var(--s2);color:var(--muted);font-size:var(--t-xs);line-height:1.55}.stat-card-link{color:inherit;text-decoration:none;display:flex}.stat-card-link:hover,.stat-card-link:focus-visible{border-color:color-mix(in srgb, var(--tint,var(--accent)) 48%, var(--line));box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stat-card-link:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.stat-card-cue{inset-inline-start:var(--s5);bottom:var(--s5);font-size:var(--t-xs);color:var(--accent);opacity:0;transition:opacity var(--dur) var(--ease);font-weight:600;position:absolute}.stat-card-link:hover .stat-card-cue,.stat-card-link:focus-visible .stat-card-cue{opacity:1}.stat-card-link .stat-note{transition:opacity var(--dur) var(--ease)}.stat-card-link:hover .stat-note{opacity:0}.grid-2{gap:var(--s4);grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);align-items:start;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.panel-header{padding:var(--s4) var(--s5);justify-content:space-between;align-items:center;gap:var(--s4);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper-2) 55%, var(--surface));display:flex}.panel-header>div{min-width:0}.panel-header h2{font-size:var(--t-lg);letter-spacing:-.018em;color:var(--ink);margin:0;font-weight:600}.panel-header p{color:var(--muted);font-size:var(--t-xs);margin:3px 0 0;line-height:1.5}.panel-header svg{color:var(--muted);flex-shrink:0}.panel-body{padding:var(--s5)}.table-wrap{overscroll-behavior-x:contain;scrollbar-width:thin;width:100%;overflow-x:auto}@media (min-width:981px){.table-wrap{overscroll-behavior:contain;max-block-size:min(68dvh,720px);overflow-y:auto}.modal .table-wrap{max-block-size:none;overflow-y:visible}}table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}th{padding:var(--s3) var(--s4);text-align:start;color:var(--muted);background:var(--paper-2);border-bottom:1px solid var(--line-strong);font-size:var(--t-xs);white-space:nowrap;letter-spacing:.012em;z-index:1;font-weight:600;position:sticky;top:0}td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line-2);vertical-align:middle;height:52px}tr:last-child td{border-bottom:0}tbody tr{transition:background var(--dur) var(--ease)}tbody tr:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}tbody tr:focus-within{background:color-mix(in srgb, var(--accent) 9%, var(--surface))}.person{align-items:center;gap:var(--s3);min-width:190px;display:flex}.person-avatar{background:linear-gradient(160deg, var(--accent-soft), color-mix(in srgb, var(--accent-soft) 62%, var(--surface)));border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);width:34px;height:34px;color:var(--brand-ink);font-weight:700;font-size:var(--t-xs);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.person strong{font-size:var(--t-sm);color:var(--ink);letter-spacing:-.008em;font-weight:600;display:block}.person small{color:var(--muted);font-size:var(--t-xs);margin-top:1px;display:block}.status{border-radius:var(--radius-pill);padding:4px var(--s3);min-height:24px;line-height:1.45;font-size:var(--t-xs);letter-spacing:-.004em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;font-weight:600;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-present,.status-delivered{background:var(--ok-soft);color:var(--ok-ink);border-color:var(--ok-line)}.status-late,.status-pending{background:var(--warn-soft);color:var(--warn-ink);border-color:var(--warn-line)}.status-absent,.status-failed{background:var(--danger-soft);color:var(--danger-ink);border-color:var(--danger-line)}.status-excused,.status-sent{background:var(--info-soft);color:var(--info-ink);border-color:var(--info-line)}.status-simulated{background:var(--info-soft);color:var(--info-ink);border-color:var(--info-line);border-style:dashed}.status-unmarked{background:var(--line-2);color:var(--muted);border-color:var(--line-strong)}.status-online{background:var(--ok-soft);color:var(--ok-ink);border-color:var(--ok-line)}.status-offline{background:var(--danger-soft);color:var(--danger-ink);border-color:var(--danger-line)}.status-degraded{background:var(--warn-soft);color:var(--warn-ink);border-color:var(--warn-line)}.toolbar{gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap;align-items:center;display:flex}.toolbar .button-quiet{border-color:var(--line)}.field,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:0 var(--s3);color:var(--ink);min-height:40px;font-size:var(--t-sm);transition:border-color .16s,box-shadow .16s}.textarea,textarea.field{padding:var(--s3);min-height:84px;line-height:1.7}.field::placeholder,.textarea::placeholder{color:var(--muted-2)}.field:hover,.select:hover,.textarea:hover{border-color:var(--muted-2)}.field:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.field:disabled,.select:disabled,.textarea:disabled{background:var(--paper-2);color:var(--muted);cursor:not-allowed;border-color:var(--line)}.field[readonly],.textarea[readonly]{background:var(--paper-2);border-color:var(--line)}.toolbar .field{max-width:260px}.toolbar .select{width:auto;min-width:175px}.label{color:var(--ink-2);font-size:var(--t-xs);letter-spacing:-.002em;gap:6px;font-weight:600;display:grid}.label>span:first-child{line-height:1.45}.form-grid{gap:var(--s3) var(--s4);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.form-grid .span-2{grid-column:span 2}.panel-body>form>.form-grid,.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:720px){.form-grid,.panel-body>form>.form-grid,.form-grid-2{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}}.form-actions{justify-content:flex-end;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line-2);flex-wrap:wrap;display:flex}.modal{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);width:min(680px, calc(100vw - var(--s5) * 2));max-height:min(86dvh,880px);padding:0}.modal[open]{flex-direction:column;display:flex}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#09101c8c}.modal-form{flex-direction:column;flex:auto;min-height:0;display:flex}.modal-body{min-height:0;overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--s2);padding:var(--s4) var(--s5);border-top:1px solid var(--line);background:var(--paper);flex-shrink:0;display:flex}.row-actions{gap:var(--s2);justify-content:flex-end;display:flex}.modal-error{padding:var(--s3) var(--s5);font-size:var(--t-sm);color:var(--danger-ink);background:var(--danger-soft);border-top:1px solid var(--danger-line);margin:0;font-weight:600}.modal-danger{padding:var(--s4) var(--s5);border-top:1px solid var(--danger-line);background:var(--danger-soft);border-radius:0 0 var(--radius) var(--radius);flex-shrink:0}.modal-danger strong{font-size:var(--t-sm);color:var(--danger-ink);display:block}.modal-danger p{margin:var(--s1) 0 0;font-size:var(--t-xs);color:var(--danger-ink);line-height:1.65}.modal-danger-row{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.modal-danger-confirm{align-items:flex-start;gap:var(--s3);flex-wrap:wrap;display:flex}.modal-danger-confirm>svg{color:var(--danger);flex-shrink:0;margin-top:2px}.modal-danger-confirm>div:first-of-type{flex:240px}.modal-danger-list{margin:var(--s2) 0 0;gap:var(--s1) var(--s4);font-size:var(--t-xs);color:var(--danger-ink);font-variant-numeric:tabular-nums;flex-wrap:wrap;padding:0;list-style:none;display:flex}.modal-danger-actions{gap:var(--s2);margin-inline-start:auto;display:flex}.modal-danger-error{margin:var(--s3) 0 0;font-size:var(--t-xs);color:var(--danger-ink);font-weight:600}@media (max-width:720px){.modal{border:0;border-radius:0;width:100vw;max-width:100vw;max-height:100dvh}.modal-danger{border-radius:0}.modal-danger-row,.modal-danger-actions{width:100%}.modal-danger-actions>.button{flex:1}}@media (prefers-color-scheme:dark){.button-danger{color:var(--paper)}}.callout{align-items:flex-start;gap:var(--s3);padding:var(--s4);border:1px solid var(--ok-line);border-inline-start:3px solid var(--ok);background:var(--ok-soft);border-radius:var(--radius-sm);font-size:var(--t-sm);color:var(--ok-ink);line-height:1.65;display:flex}.callout svg{color:var(--ok);flex-shrink:0;margin-top:2px}.callout a{text-underline-offset:3px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.callout-warning{background:var(--warn-soft);border-color:var(--warn-line);border-inline-start-color:var(--warn);color:var(--warn-ink)}.callout-warning svg{color:var(--warn)}.callout strong{color:var(--ink);margin-bottom:var(--s1);letter-spacing:-.008em;font-weight:600;display:block}.callout-warning strong{color:var(--warn-ink)}.callout-danger{background:var(--danger-soft);border-color:var(--danger-line);border-inline-start-color:var(--danger);color:var(--danger-ink)}.callout-danger svg{color:var(--danger)}.callout-danger strong{color:var(--danger-ink)}.callout-info{background:var(--info-soft);border-color:var(--info-line);border-inline-start-color:var(--info);color:var(--info-ink)}.callout-info svg{color:var(--info)}.empty{justify-items:center;gap:var(--s2);padding:var(--s7) var(--s5);text-align:center;color:var(--muted);display:grid}.empty svg{box-sizing:content-box;padding:var(--s3);margin-bottom:var(--s2);color:var(--muted-2);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg)}.empty h3{color:var(--ink);font-size:var(--t-lg);letter-spacing:-.012em;margin:0;font-weight:600}.empty p{font-size:var(--t-sm);max-width:46ch;margin:0;line-height:1.6}.empty .button{margin-top:var(--s3)}.progress-track{background:var(--line);border-radius:10px;height:7px;overflow:hidden}.progress-bar{background:var(--forest);border-radius:inherit;height:100%}.branch-row{border-bottom:1px solid var(--line-2);padding:13px 0}.branch-row:last-child{border-bottom:0}.branch-row-head{justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.branch-row-head span{color:var(--muted)}.metric-pair{gap:22px;display:flex}.metric-pair strong{font-family:Georgia,serif;font-size:23px;display:block}.metric-pair span{color:var(--muted);font-size:10px}.login-shell{background:var(--paper);grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-art{padding:var(--s7);background:linear-gradient(168deg, var(--brand-2) -8%, var(--brand) 46%, var(--brand-deep) 100%);color:var(--on-color);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.login-art:before{content:"";opacity:.1;background:repeating-linear-gradient(135deg, transparent 0 30px, var(--surface) 30px 31px);position:absolute;inset:0}.login-art>*{z-index:1;position:relative}.login-art h1{letter-spacing:-.03em;text-wrap:balance;max-width:620px;font-size:clamp(38px,5.6vw,72px);font-weight:700;line-height:1}.login-art p{max-width:530px;color:var(--on-brand-2);line-height:1.7}.login-quote{border-inline-start:3px solid var(--accent-2);color:#ffffffdb;max-width:430px;padding-inline-start:var(--s4);line-height:1.8}.login-form-side{padding:var(--s7) var(--s5);place-items:center;display:grid}.login-card{width:min(420px,100%)}.login-card h2{font-size:var(--t-2xl);letter-spacing:-.025em;margin:0;font-weight:700}.login-card>p{margin:var(--s2) 0 var(--s5);color:var(--muted);font-size:var(--t-sm);line-height:1.6}.login-card form{gap:var(--s4);display:grid}.login-card .button{margin-top:var(--s1);width:100%;min-height:44px}.login-help{margin-top:var(--s5);padding:var(--s3) var(--s4);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--t-xs);line-height:1.65}.error-message{padding:var(--s3) var(--s4);border-radius:var(--radius-sm);background:var(--danger-soft);border:1px solid var(--danger-line);border-inline-start:3px solid var(--danger);color:var(--danger-ink);font-size:var(--t-sm);font-weight:500;line-height:1.6}.device-card{padding:19px}.device-title{justify-content:space-between;gap:12px;display:flex}.device-title h3{margin:0;font-size:19px;font-weight:500}.device-title p{color:var(--muted);margin:4px 0 0;font-size:11px}.device-meta{grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0;display:grid}.device-meta div{background:var(--paper-2);border-radius:7px;padding:10px}.device-meta span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:9px;display:block}.device-meta strong{margin-top:5px;font-size:11px;display:block}.code{background:var(--ink);color:var(--ok-soft);overflow-wrap:anywhere;border-radius:7px;padding:12px;font-family:Consolas,monospace;font-size:11px}.ltr{text-align:left;direction:ltr;unicode-bidi:embed}.mobile-nav{display:none}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{gap:var(--s1);padding:var(--s2) var(--s4);background:linear-gradient(170deg, var(--brand-2), var(--brand));color:var(--on-color);border-bottom:1px solid var(--brand-deep);scrollbar-width:none;display:flex;overflow-x:auto}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav a{min-height:36px;padding:0 var(--s3);border-radius:var(--radius-pill);font-size:var(--t-sm);color:var(--on-brand-2);white-space:nowrap;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);flex:none;align-items:center;gap:6px;display:inline-flex}.mobile-nav a:hover{color:var(--on-color);background:var(--on-brand-hover)}.mobile-nav a.is-active{background:var(--on-brand-active);color:var(--on-color);font-weight:600}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}}@media (max-width:680px){.topbar{min-height:60px;padding:12px 17px}.content{padding:22px 15px 80px}.page-heading{flex-direction:column;align-items:flex-start}.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{min-height:116px;padding:15px}.stat-value{font-size:29px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-form-side{padding:25px}.device-meta{grid-template-columns:1fr}}.scan-station{gap:16px;display:grid}.scan-target{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;padding:14px 16px;transition:border-color .2s;display:flex}.scan-input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font:600 21px/1.4 inherit}.scan-input::placeholder{color:var(--muted);font-size:16px;font-weight:400}.scan-result{text-align:center;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:210px;padding:26px 20px;display:flex}.scan-name{font-size:27px;font-weight:600;line-height:1.35}.scan-meta{color:var(--muted);font-size:13px}.scan-verdict{margin-top:5px;font-size:17px;font-weight:600}.scan-note{color:var(--muted);margin-top:7px;font-size:12px}.scan-idle{color:var(--muted);justify-items:center;gap:9px;display:grid}.scan-idle p{margin:0;font-size:15px}.scan-idle small{font-size:12px}.scan-ok{border-color:var(--ok-line);background:var(--ok-soft);color:var(--brand-deep)}.scan-late{border-color:var(--warn-line);background:var(--warn-soft);color:var(--warn-ink)}.scan-error{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger-ink)}.scan-target.scan-ok,.scan-target.scan-late,.scan-target.scan-error{background:var(--surface)}.mark-switch{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.mark-switch>span{color:var(--muted)}.mark-switch small{color:var(--muted);margin-inline-start:auto;font-size:11px}.mark-option{border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;cursor:pointer;border-radius:999px;padding:6px 16px;font-size:13px}.mark-option.active{background:var(--brand);color:var(--on-color);border-color:var(--brand);font-weight:600}.scan-absent{--scan-accent:var(--warn)}.camera-scanner{margin-top:12px}.camera-open{justify-content:center;width:100%;min-height:52px;font-size:16px}.camera-open-hint{color:var(--muted);text-align:center;margin:8px 0 0;font-size:13px}.camera-open-hint strong{color:var(--ink)}.camera-sheet{z-index:1000;background:#000;grid-template-rows:auto 1fr auto;height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.camera-sheet-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera-sheet-top,.camera-sheet-bottom{z-index:2;position:relative}.camera-sheet-top{padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 10px;background:linear-gradient(#0000009e,#0000);justify-content:space-between;align-items:center;gap:8px;display:flex}.camera-icon-button{min-width:44px;min-height:44px;color:var(--on-color);background:#00000073;border:0;border-radius:999px;place-items:center;transition:background .18s;display:grid}.camera-icon-button.on{background:var(--accent);color:var(--ink)}.camera-icon-spacer{min-width:44px;display:block}.camera-counter{color:var(--on-color);text-shadow:0 1px 3px #000000b3;font-size:13px;font-weight:600}.camera-sheet-reticle{aspect-ratio:1;pointer-events:none;z-index:1;border:2px solid #ffffffe6;border-radius:16px;width:min(72vw,300px);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000061}.camera-sheet-bottom{padding:14px 12px calc(env(safe-area-inset-bottom,0px) + 14px);background:linear-gradient(#0000,#000000b8 34%);gap:10px;display:grid}.camera-sheet-hint{color:#ffffffeb;text-align:center;place-items:center;min-height:52px;margin:0;font-size:14px;display:grid}.camera-flash{border:1px solid;border-radius:12px;align-items:center;gap:11px;min-height:52px;padding:10px 14px;animation:.22s ease-out camera-flash-in;display:flex}.camera-flash-text{gap:2px;min-width:0;display:grid}.camera-flash-text strong{font-size:17px;font-weight:600;line-height:1.3}.camera-flash-text span{opacity:.88;font-size:13px}.camera-flash-ok{background:var(--ok-soft);border-color:var(--ok-line);color:var(--brand-deep)}.camera-flash-late{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn-ink)}.camera-flash-absent{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-ink)}.camera-flash-error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger-ink)}@keyframes camera-flash-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.camera-marks{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;display:grid}.camera-mark{min-height:48px;color:var(--on-color);background:#00000073;border:1px solid #ffffff73;border-radius:12px;padding:0 10px;font-size:15px;font-weight:600;transition:background .18s,color .18s,border-color .18s}.camera-mark.active{background:var(--on-color);color:#17201d;border-color:var(--on-color)}.camera-mark-late.active{background:var(--accent);border-color:var(--accent)}.camera-mark-absent.active{background:var(--danger-line);border-color:var(--danger-line)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.camera-flash{animation:none}.spin{animation-duration:3s}}@media print{.camera-scanner,.camera-sheet{display:none!important}}.card-sheet{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px;display:grid}.card-sheet-qr{grid-template-columns:repeat(auto-fill,minmax(178px,1fr))}.barcode-card{border:1px solid var(--line);background:var(--surface);text-align:center;break-inside:avoid;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:14px 12px;display:flex}.barcode-card-brand{justify-content:center;align-items:center;gap:6px;display:flex}.barcode-card-brand img{display:block}.barcode-card-school{color:var(--muted);letter-spacing:.4px;font-size:10px}.barcode-card-name{font-size:15px;font-weight:600;line-height:1.4}.barcode-card-class{color:var(--muted);font-size:11px}.barcode-card-code{width:100%;margin-top:5px}.barcode-card-code svg{width:100%;height:auto;display:block}.barcode-card-qr{width:100%;max-width:132px;margin-top:5px}.barcode-card-qr svg{width:100%;height:auto;display:block}@media print{@page{margin:10mm}.sidebar,.topbar,.mobile-nav,.no-print,.heading-actions{display:none!important}.app-shell,.main,.content{background:var(--surface)!important;margin:0!important;padding:0!important;display:block!important}body{background:var(--surface)!important}.card-sheet{grid-template-columns:repeat(3,1fr);gap:6mm}.card-sheet-qr{grid-template-columns:repeat(4,1fr);gap:5mm}.barcode-card{border:1px solid var(--muted-2);box-shadow:none}.barcode-card-qr{max-width:25mm}}.chip-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip-button{border:1px solid var(--line-strong);background:var(--paper-2);color:var(--ink-2);border-radius:var(--radius-pill);padding:4px var(--s3);min-height:26px;font-size:var(--t-xs);cursor:pointer;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);font-family:inherit;font-weight:500}.chip-button:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--brand-ink)}.chip-button:active{transform:translateY(1px)}.pager{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);border-top:1px solid var(--line);background:color-mix(in srgb, var(--paper-2) 55%, var(--surface));flex-wrap:wrap;display:flex}.pager-info{font-size:var(--t-sm);color:var(--muted);font-variant-numeric:tabular-nums}.pager-links{gap:var(--s1);flex-wrap:wrap;align-items:center;display:flex}.pager-gap{padding:0 var(--s1);color:var(--muted-2)}.pager-link{min-width:36px;height:36px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--t-sm);font-variant-numeric:tabular-nums;color:var(--ink-2);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);justify-content:center;align-items:center;gap:5px;font-weight:500;text-decoration:none;display:inline-flex}.pager-link svg{opacity:.75;flex-shrink:0}.pager-link:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--brand-ink)}.pager-link:active{transform:translateY(1px)}.pager-link.is-current{background:var(--brand);border-color:var(--brand-deep);color:var(--on-color);box-shadow:var(--shadow-xs);font-weight:700}.pager-link.is-current:hover{background:var(--brand-2);color:var(--on-color)}.stat-strip{background:var(--line-strong);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:var(--s4);box-shadow:var(--shadow-xs);grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;display:grid;overflow:hidden}.stat-cell{padding:var(--s3) var(--s4);background:var(--surface);flex-direction:column;gap:3px;display:flex}.stat-cell-value{font-size:var(--t-xl);letter-spacing:-.028em;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.stat-cell-label{font-size:var(--t-xs);color:var(--muted);line-height:1.4}.stat-cell.tone-present .stat-cell-value{color:var(--ok-ink)}.stat-cell.tone-absent .stat-cell-value{color:var(--danger)}.stat-cell.tone-late .stat-cell-value{color:var(--warn-ink)}.stat-cell.tone-muted .stat-cell-value{color:var(--muted)}.bulk-bar{align-items:center;gap:var(--s2);padding:var(--s2) var(--s5);border-bottom:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--surface));flex-wrap:wrap;display:flex}.bulk-bar[hidden]{display:none}.bulk-count{font-size:var(--t-sm);color:var(--brand-ink);font-variant-numeric:tabular-nums;font-weight:700}.check-col{text-align:center;width:38px}@media (min-width:600px){.camera-open{width:auto;min-width:220px;min-height:42px;font-size:14px}.camera-sheet{border-radius:18px;width:min(680px,92vw);height:min(680px,88dvh);inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #00000073}.camera-marks{grid-auto-columns:minmax(120px,168px);grid-auto-flow:column;justify-content:center}.camera-mark{min-height:38px;font-size:14px}.camera-sheet-hint{min-height:38px;font-size:13px}.camera-flash{min-height:44px;padding:8px 12px}.camera-flash-text strong{font-size:15px}.camera-icon-button{min-width:38px;min-height:38px}.camera-icon-spacer{min-width:38px}.scan-result{min-height:150px;padding:20px 18px}.scan-name{font-size:22px}.mark-option{padding:5px 13px;font-size:12px}.camera-sheet:before{content:"";background:color-mix(in srgb, var(--ink) 62%, transparent);z-index:-1;position:fixed;inset:0}}.stage-row{padding:var(--s4) 0;border-bottom:1px solid var(--line-2);color:inherit;transition:background .14s;display:block}.stage-row:last-child{border-bottom:0;padding-bottom:0}.stage-row:first-child{padding-top:0}.stage-row:hover{background:var(--paper-2)}.stage-row:hover .stage-row-head strong{color:var(--accent)}.stage-row-head{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.stage-row-head strong{font-size:var(--t-md);font-weight:600;transition:color .14s}.stage-row-pct{font-size:var(--t-xl);color:var(--ink);letter-spacing:-.02em;font-weight:600}.stage-row-pct small{font-size:var(--t-xs);color:var(--muted);margin-inline-start:1px;font-weight:500}.stage-meter{height:8px;margin:var(--s3) 0 var(--s2);background:var(--line-2);border-radius:99px;gap:2px;display:flex;overflow:hidden}.stage-seg{border-radius:99px;height:100%;display:block}.stage-seg-present{background:var(--ok)}.stage-seg-late{background:var(--warn)}.stage-seg-absent{background:var(--danger)}.stage-seg-unmarked{background:var(--line-strong)}.stage-legend{align-items:center;gap:var(--s1) var(--s3);font-size:var(--t-xs);color:var(--muted);flex-wrap:wrap;display:flex}.stage-key{align-items:center;gap:5px;display:inline-flex}.stage-key:before{content:"";border-radius:2px;width:7px;height:7px}.stage-key-present:before{background:var(--ok)}.stage-key-late:before{background:var(--warn)}.stage-key-absent:before{background:var(--danger)}.stage-key-unmarked:before{background:var(--line-strong)}.stage-key b{color:var(--ink);font-weight:600}.stage-row-time{color:var(--muted);margin-inline-start:auto}.login-logo{margin-bottom:var(--s5);padding-bottom:var(--s5);border-bottom:1px solid var(--line);justify-content:center;display:flex}@media (prefers-color-scheme:dark){.login-logo img{box-sizing:content-box;padding:var(--s3) var(--s4);border-radius:var(--radius);background:var(--on-color)}}.login-eyebrow{color:var(--accent-2)}.quota-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-top:1px solid var(--line-2);font-size:var(--t-sm);display:flex}.quota-row span{color:var(--muted)}.quota-row strong{font-weight:600}.quota-low{color:var(--danger)}@media print{.table-wrap{max-block-size:none!important;overflow:visible!important}.skip-link{display:none!important}}@media (max-width:680px){.stat-card{padding:var(--s3) var(--s4) var(--s4);min-height:118px}.stat-value{margin-top:var(--s3);font-size:28px}.stat-card-cue{inset-inline-start:var(--s4);bottom:var(--s4)}.panel-header{padding:var(--s3) var(--s4)}.panel-body{padding:var(--s4)}.pager{padding:var(--s3) var(--s4)}.empty{padding:var(--s6) var(--s4)}th,td{padding:var(--s2) var(--s3)}}
