@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-cyrillic-ext-400-normal-CKO3cWyd.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-ext-400-normal-DiHHcP5k.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:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-cyrillic-400-normal-G7BuwYWK.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-400-normal-DPRou3KO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-greek-ext-400-normal-C3GMUg_S.woff2) format("woff2"),url(/assets/inter-tight-greek-ext-400-normal-DMqR5RoS.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-greek-400-normal-Br_GQm5W.woff2) format("woff2"),url(/assets/inter-tight-greek-400-normal-BLLSFQTx.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-vietnamese-400-normal-CqzIqjuX.woff2) format("woff2"),url(/assets/inter-tight-vietnamese-400-normal-kSDs3Vd1.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:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-ext-400-normal-DN7wyBvd.woff2) format("woff2"),url(/assets/inter-tight-latin-ext-400-normal-BQQeeQrv.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:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff");unicode-range:U+0000-00FF,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:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-cyrillic-ext-500-normal-BZAF-_VI.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-ext-500-normal-Dy1ZB9JY.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:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-cyrillic-500-normal-5ykfyGeh.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-500-normal-CRXauZSq.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-greek-ext-500-normal-Be7hKmpC.woff2) format("woff2"),url(/assets/inter-tight-greek-ext-500-normal-BEGGcu3x.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-greek-500-normal-kave9HZE.woff2) format("woff2"),url(/assets/inter-tight-greek-500-normal-Ca-cFdRH.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-vietnamese-500-normal-C7jl9LDK.woff2) format("woff2"),url(/assets/inter-tight-vietnamese-500-normal-CO4EMNTO.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:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-latin-ext-500-normal-D3akd6m-.woff2) format("woff2"),url(/assets/inter-tight-latin-ext-500-normal-_hLDZz_3.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:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-tight-latin-500-normal-BFXNXuvF.woff2) format("woff2"),url(/assets/inter-tight-latin-500-normal-pobXraBK.woff) format("woff");unicode-range:U+0000-00FF,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:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-cyrillic-ext-600-normal-B4SKDMEv.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-ext-600-normal-_3ga77Eo.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:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-cyrillic-600-normal-BERwQ0yl.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-600-normal-BeTasGgk.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-greek-ext-600-normal-CiDI6ET5.woff2) format("woff2"),url(/assets/inter-tight-greek-ext-600-normal-5gKW7MDU.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-greek-600-normal-BIqmcc-q.woff2) format("woff2"),url(/assets/inter-tight-greek-600-normal-67HAlfW-.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-vietnamese-600-normal-FGgebaLI.woff2) format("woff2"),url(/assets/inter-tight-vietnamese-600-normal-BCXZ1BbA.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:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-latin-ext-600-normal-BgMgWFts.woff2) format("woff2"),url(/assets/inter-tight-latin-ext-600-normal-BvYdOF2O.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:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-tight-latin-600-normal-BgSTtRxb.woff2) format("woff2"),url(/assets/inter-tight-latin-600-normal-D7bG6gX1.woff) format("woff");unicode-range:U+0000-00FF,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:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-cyrillic-ext-700-normal-D_7NT8eF.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-ext-700-normal-BFcoPt71.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:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-cyrillic-700-normal-DtWWjp29.woff2) format("woff2"),url(/assets/inter-tight-cyrillic-700-normal-DDZiLR3d.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-greek-ext-700-normal-D0RkHJEE.woff2) format("woff2"),url(/assets/inter-tight-greek-ext-700-normal-mW3dmpoD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-greek-700-normal-RgALSHS4.woff2) format("woff2"),url(/assets/inter-tight-greek-700-normal-DU8XoIeX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-vietnamese-700-normal-Cn_DV52A.woff2) format("woff2"),url(/assets/inter-tight-vietnamese-700-normal-DwHBAXeT.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:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-latin-ext-700-normal-BpKPOkj3.woff2) format("woff2"),url(/assets/inter-tight-latin-ext-700-normal-CrlzIQ10.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:Inter Tight;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-tight-latin-700-normal-BZKd_v_8.woff2) format("woff2"),url(/assets/inter-tight-latin-700-normal-DvYAVZQd.woff) format("woff");unicode-range:U+0000-00FF,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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-ext-400-italic-zoDFlEzN.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-400-italic-Dx4A8QUO.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-400-italic-BLN19cOa.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-400-italic-Dx8qIUN3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-greek-400-italic-C7D4Dq0H.woff2) format("woff2"),url(/assets/source-serif-4-greek-400-italic-DcuniPAV.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-italic-CjUPRDIa.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-400-italic-DyjhI2GX.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-ext-400-italic-JynPwBMj.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-400-italic-G7LDTi7t.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-italic-0j97Jm6B.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-italic-Dv9jnFA_.woff) format("woff");unicode-range:U+0000-00FF,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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-italic-Cezqx4eN.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-italic-sjqggXxp.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-italic-Bbpc5VXY.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-600-italic-DWQD6QxH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-italic-BCtDz1WS.woff2) format("woff2"),url(/assets/source-serif-4-greek-600-italic-BwBPEzhh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-italic-DF-l7b1l.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-italic-DUaq_aVP.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-italic-ksjuXzcN.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-600-italic-BYvw3cJd.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:"Source Serif 4";font-style:italic;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-italic-BYz3Th4E.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-italic-BWnwxV6-.woff) format("woff");unicode-range:U+0000-00FF,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}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #FAFAF7;--bg-alt: #F2EDE3;--card: #FFFFFF;--text: #181510;--text-muted: #5A6460;--text-faint: #8A918E;--border: #DDE3DF;--border-soft: #EBF0EC;--gold: #D4A23B;--gold-deep: #B7841F;--gold-soft: #FDC74D;--green: #186628;--green-deep: #0E3F1B;--green-light: #EEF6EE;--primary: var(--green);--primary-hover: var(--green-deep);--danger: #B42318;--danger-deep: #8E1D12;--danger-bg: #FBEAE7;--danger-border: #F0C6BF;--warning: #8A5A16;--warning-bg: #FAF0DC;--warning-border: #EBD9B4;--success: var(--green);--success-bg: var(--green-light);--success-border: #C9E3CC;--info: var(--gold-deep);--info-bg: #FBF3E2;--primary-light: var(--green-deep);--secondary: var(--gold-deep);--accent: var(--gold);--background: var(--bg);--white: var(--card);--gray-light: var(--border);--gray-medium: var(--text-faint);--r-sm: 8px;--r-md: 14px;--r-lg: 22px;--shadow-sm: 0 1px 2px rgba(14,22,18,.05);--shadow: 0 8px 30px -10px rgba(14,63,27,.18), 0 2px 6px rgba(14,22,18,.04);--shadow-lg: 0 30px 60px -25px rgba(14,63,27,.35), 0 10px 25px -10px rgba(14,22,18,.1);--font-sans: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-serif: "Source Serif 4", "Source Serif Pro", Georgia, serif}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-feature-settings:"ss01","cv11";font-size:1rem;background-color:var(--bg);color:var(--text);line-height:1.55;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--text);font-weight:600;line-height:1.15;letter-spacing:-.025em}h1{font-size:2.5rem;letter-spacing:-.035em}h2{font-size:2rem;letter-spacing:-.03em}h3{font-size:1.5rem;letter-spacing:-.015em}.serif-it{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.02em}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;outline:none}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.667em 1.2em;border-radius:999px;font-weight:500;font-size:.9375rem;letter-spacing:-.005em;border:1px solid transparent;transition:transform .15s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;white-space:nowrap;cursor:pointer}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px #ffffff26 inset,0 6px 18px -6px color-mix(in oklab,var(--primary) 60%,transparent)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);color:#fff}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--text-faint);background:var(--border-soft);color:var(--text)}.btn-sm{padding:.5em 1em;font-size:.875rem}.btn:disabled{opacity:.6;cursor:not-allowed}.toast-error{background-color:var(--danger)!important;color:#fff!important;font-weight:600!important}.toast-success{background-color:var(--green)!important;color:#fff!important;font-weight:600!important}.admin-badge{display:inline-flex;align-items:center;padding:.1rem .5rem;margin-left:.5rem;border-radius:999px;background:var(--green-deep);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.no-access{max-width:34rem;margin:6rem auto;padding:0 1.5rem;text-align:center}.no-access h1{font-size:1.5rem;line-height:1.3;margin-bottom:.75rem;color:var(--text)}.no-access p{color:var(--text-muted);margin-bottom:1.5rem}.no-access button{padding:.6rem 1.25rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);cursor:pointer}.no-access button:hover{background:var(--bg-alt)}.login-page{min-height:100vh;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-200px;left:50%;transform:translate(-50%);width:1200px;height:700px;background:radial-gradient(ellipse at center top,color-mix(in oklab,var(--gold-soft) 28%,transparent) 0%,transparent 55%),radial-gradient(ellipse at 30% 60%,color-mix(in oklab,var(--green) 18%,transparent) 0%,transparent 55%);filter:blur(48px);pointer-events:none;opacity:.65}.login-container{width:100%;max-width:450px;position:relative;z-index:1}.login-card{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:3rem}.login-header{text-align:center;margin-bottom:2.5rem}.login-logo{width:150px;margin:0 auto 1.25rem;display:block}.login-header h1{font-family:var(--font-serif);font-style:italic;font-weight:600;font-size:2.75rem;letter-spacing:-.005em;color:var(--gold-deep);margin-bottom:0}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text);font-size:.9375rem}.form-group input{padding:.875rem 1rem;border:1px solid var(--border);border-radius:var(--r-sm);font-size:1rem;font-family:inherit;transition:all .2s ease;background:var(--card);color:var(--text)}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}.form-group input:disabled{background-color:var(--bg);cursor:not-allowed}.form-group input::placeholder{color:var(--text-faint)}.btn-login{width:100%;padding:1rem;font-size:1rem;font-weight:600;margin-top:.5rem}@media(max-width:640px){.login-page{padding:1rem}.login-card{padding:2rem}.login-header h1{font-size:2.25rem}}.login-notice{margin-bottom:1rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-alt);color:var(--text-muted);font-size:.9rem}.usage-chart{--usage-dati: var(--green);--usage-orario: var(--gold-deep);--usage-generazione: var(--green-deep);--usage-configurazione: #6E8F7A;--usage-flusso: var(--gold-soft);--usage-account: #7C6A9C;--usage-admin: var(--text-faint);--usage-sistema: var(--border);--usage-other: var(--gold)}.usage-plot{display:flex;gap:10px;align-items:stretch}.usage-axis{display:flex;flex-direction:column;justify-content:space-between;height:180px;font-size:.7rem;color:var(--text-faint);text-align:right;min-width:2.2em}.usage-bars{display:flex;align-items:flex-end;gap:3px;flex:1;min-width:0;list-style:none;margin:0;padding:0;border-bottom:1px solid var(--border)}.usage-bar{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}.usage-stack{position:relative;width:100%;height:180px;background:linear-gradient(var(--border-soft),var(--border-soft)) 0 50% / 100% 1px no-repeat}.usage-seg{position:absolute;left:0;right:0;border-radius:2px 2px 0 0}.usage-seg,.usage-swatch{background:var(--usage-other)}.usage-seg-dati{background:var(--usage-dati)}.usage-seg-orario{background:var(--usage-orario)}.usage-seg-generazione{background:var(--usage-generazione)}.usage-seg-configurazione{background:var(--usage-configurazione)}.usage-seg-flusso{background:var(--usage-flusso)}.usage-seg-account{background:var(--usage-account)}.usage-seg-admin{background:var(--usage-admin)}.usage-seg-sistema{background:var(--usage-sistema)}.usage-month{font-size:.65rem;color:var(--text-muted);line-height:1}.usage-year{font-size:.6rem;color:var(--text-faint);line-height:1;min-height:.6rem}.usage-legend{display:flex;flex-wrap:wrap;gap:10px 16px;list-style:none;margin:12px 0 0;padding:0;font-size:.8rem;color:var(--text-muted)}.usage-legend li{display:flex;align-items:center;gap:6px}.usage-swatch{width:10px;height:10px;border-radius:2px}.usage-empty{color:var(--text-faint);font-size:.9rem;margin:8px 0}.usage-chart-compact .usage-stack,.usage-chart-compact .usage-axis{height:90px}.usage-chart-compact .usage-month{font-size:.6rem}@media(max-width:700px){.usage-month{font-size:.55rem}.usage-bars{gap:2px}}.audit-actions .btn{padding:.45rem .9rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer}.audit-actions .btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.audit-actions .btn:disabled{opacity:.6;cursor:default}.devices-table-wrap{overflow-x:auto}.devices-table code{font-size:.85rem;color:var(--text-muted)}.device-label{border:none;background:none;padding:.2rem .35rem;border-radius:6px;font:inherit;color:var(--text);cursor:pointer;text-align:left}.device-label:hover{background:var(--green-light);color:var(--primary)}.device-unnamed{color:var(--text-faint);font-style:italic}.devices-table form{display:flex;flex-wrap:wrap;gap:.35rem}.devices-table input{flex:1 1 140px;min-width:0;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.85rem}.devices-table form button{border:1px solid var(--border);border-radius:6px;background:var(--card);padding:.3rem .6rem;font:inherit;font-size:.8rem;cursor:pointer}.devices-table form button[type=submit]{background:var(--primary);border-color:var(--primary);color:#fff}.homepage{min-height:100vh;display:flex;flex-direction:column}.navbar{background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid color-mix(in oklab,var(--border) 60%,transparent);position:sticky;top:0;z-index:1000}.navbar-container{max-width:1400px;margin:0 auto;padding:.5rem 2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;min-height:4.375rem}.navbar-brand{display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:opacity .2s ease}.navbar-brand:hover{opacity:.8}.navbar-logo{width:26px;height:26px;object-fit:contain}.brand-name{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:600;color:var(--text);letter-spacing:-.02em;white-space:nowrap}.brand-sep{color:var(--border);font-weight:400}.brand-product{color:var(--text-muted);font-weight:500}.navbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.school-code-display{font-size:.875rem;color:var(--gray-medium);font-weight:500;padding:.5rem .75rem;background-color:var(--background);border-radius:6px}.btn-logout{padding:.5rem 1.1rem;background-color:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-logout:hover{border-color:var(--text-faint);background-color:var(--border-soft);color:var(--text)}.btn-logout:active{transform:scale(.98)}.btn-settings{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:1.15rem;line-height:1;background-color:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.btn-settings:hover{border-color:var(--text-faint);background-color:var(--border-soft);transform:rotate(30deg)}.btn-settings:active{transform:scale(.96)}.homepage-main{flex:1;padding:3rem 2rem}.container{max-width:1200px;margin:0 auto}section{margin-bottom:3rem}section h2{font-size:1.75rem;margin-bottom:1.5rem;color:var(--text);font-weight:600}.module-section-desc{margin-top:-1rem;margin-bottom:1.5rem;color:var(--gray-medium);font-size:.9375rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--white);padding:1.5rem;border-radius:12px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:1.25rem;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.stat-icon{font-size:2.5rem;display:flex;align-items:center;justify-content:center}.stat-content{display:flex;flex-direction:column;gap:.25rem}.stat-value{font-size:2rem;font-weight:700;color:var(--primary);line-height:1}.stat-label{font-size:.875rem;color:var(--gray-medium);font-weight:500}.navigation-grid{display:grid;grid-template-columns:repeat(var(--card-count, 1),minmax(0,1fr));gap:1.5rem}.nav-card{background:var(--white);padding:2rem;border-radius:12px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1rem;text-align:left;transition:all .3s ease;position:relative;overflow:hidden;border:2px solid transparent;cursor:pointer}.nav-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--primary)}.nav-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary)}.nav-card:active{transform:translateY(-2px)}.nav-card-icon{font-size:2.5rem;display:inline-block}.nav-card-content{flex:1}.nav-card-content h3{font-size:1.25rem;margin-bottom:.5rem;color:var(--text);font-weight:600}.nav-card-content p{font-size:.9375rem;color:var(--gray-medium);line-height:1.5}.nav-card-arrow{font-size:1.5rem;color:var(--gray-medium);align-self:flex-end;transition:transform .3s ease,color .3s ease}.nav-card:hover .nav-card-arrow{transform:translate(4px);color:var(--primary)}@media(max-width:968px){.navbar-container{padding:0 1rem}}@media(max-width:768px){.homepage-main{padding:2rem 1rem}.brand-name{font-size:.9rem}section h2{font-size:1.5rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.navigation-grid{grid-template-columns:1fr;gap:1rem}.nav-card{padding:1.5rem}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.stat-value{font-size:1.75rem}.school-code-display{display:none}}.usage-section{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem 1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm)}.usage-section h2{font-size:1.05rem;margin-bottom:.25rem}.usage-section-desc{color:var(--text-muted);font-size:.85rem;margin-bottom:1rem}.school-accounts-table{width:100%;border-collapse:collapse}.school-accounts-table th,.school-accounts-table td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border-soft);vertical-align:middle}.school-accounts-table th{font-size:.85rem;font-weight:600;color:var(--text-muted)}.school-accounts-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.school-accounts-actions .btn-danger-hover:hover:not(:disabled){border-color:var(--danger);background:var(--danger-bg);color:var(--danger-deep)}.school-accounts-role{padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);font-size:.9rem}.school-accounts-new{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.5rem}.school-accounts-new input{padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);font-size:.95rem;min-width:12rem}.school-accounts-new input:focus{outline:none;border-color:var(--primary)}.school-accounts-note{margin-top:1rem;color:var(--text-muted);max-width:46rem;font-size:.9rem}.account-off{color:var(--danger);font-size:.85em}.account-self{color:var(--text-faint)}.roles-panel{display:flex;flex-direction:column;gap:1.5rem}.role-new{display:flex;gap:.5rem;flex-wrap:wrap}.role-new input{flex:1 1 12rem}.role-new-note{color:var(--text-muted);font-size:.82rem;margin:.3rem 0 0}.role-card{border:1px solid var(--border);border-radius:var(--r-md);padding:1rem 1.2rem;background:var(--card)}.role-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.role-label-input{font-size:1.05rem;font-weight:600;border:1px solid transparent;background:transparent;padding:.15rem .3rem;border-radius:var(--r-sm, 6px);min-width:8rem}.role-label-input:focus{border-color:var(--border);background:var(--surface, var(--card));outline:none}.role-count{color:var(--text-muted);font-size:.85rem;margin-right:auto}.role-domain{border:none;padding:.4rem 0;margin:0}.role-domain legend{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.role-domain label{display:flex;align-items:center;gap:.5rem;padding:.2rem 0;font-size:.92rem}.settings-page{min-height:100vh;background-color:var(--background)}.settings-header{background-color:var(--white);padding:2rem;box-shadow:var(--shadow-sm);margin-bottom:2rem}.settings-header h1{font-size:2rem;color:var(--text);margin:0}.settings-main{padding:0 2rem 3rem}.container{max-width:900px;margin:0 auto}.settings-section{margin-bottom:2.5rem}.settings-section h2{font-size:1.5rem;color:var(--text);margin-bottom:1rem;font-weight:600}.week-days-label{display:flex;align-items:center;gap:.75rem}.week-days-label select{min-width:12rem}.settings-card,.info-card{background:var(--white);padding:2rem;border-radius:12px;box-shadow:var(--shadow-sm)}.info-card{display:flex;flex-direction:column;gap:1.5rem}.placeholder-card{text-align:center;padding:3rem 2rem}.placeholder-text{color:var(--gray-medium);font-size:1.125rem}.info-field{display:flex;flex-direction:column;gap:.5rem}.info-field label{font-weight:600;color:var(--text);font-size:.9375rem}.input-disabled{padding:.75rem 1rem;border:2px solid var(--gray-light);border-radius:8px;background-color:var(--background);color:var(--gray-medium);font-size:1rem;cursor:not-allowed}.field-hint{color:var(--gray-medium);font-size:.875rem}.input-field::placeholder{color:var(--gray-medium)}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-input{width:20px;height:20px;cursor:pointer;accent-color:var(--primary)}.checkbox-text{font-weight:500;color:var(--text);font-size:1rem}.message{padding:.875rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9375rem;font-weight:500}.message-error{background-color:var(--danger-bg);color:var(--danger-deep);border:1px solid var(--danger-border)}.message-success{background-color:var(--green-light);color:var(--green-deep);border:1px solid var(--success-border)}.btn-icon{width:36px;height:36px;padding:0;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;border:none;cursor:pointer;transition:all .2s ease}.btn-danger{background-color:var(--danger-bg);color:var(--danger-deep)}.btn-danger:hover{background-color:var(--danger);color:var(--white)}.button-group{display:flex;gap:1rem;margin-top:1.5rem}.scansione-grid{display:flex;flex-direction:column;gap:1rem}.scansione-row{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;align-items:center;padding:1rem;background-color:var(--background);border-radius:8px;transition:box-shadow .2s ease}.scansione-row:hover{box-shadow:var(--shadow-sm)}.ora-label{font-weight:600;color:var(--text);font-size:.9375rem}.time-inputs{display:flex;align-items:center;gap:.75rem}.time-input{max-width:140px}.time-separator{color:var(--gray-medium);font-weight:500}@media(max-width:768px){.settings-header{padding:1.5rem 1rem}.settings-header h1{font-size:1.75rem}.settings-main{padding:0 1rem 2rem}.settings-card,.info-card{padding:1.5rem}.scansione-row{grid-template-columns:1fr;gap:.75rem}.time-inputs{width:100%}.time-input{flex:1;max-width:none}.btn-icon{width:100%;height:40px}.button-group{flex-direction:column}.button-group .btn{width:100%}}.password-form{display:flex;flex-direction:column;gap:1.25rem;max-width:500px}.password-form .form-group{display:flex;flex-direction:column;gap:.5rem}.password-form label{font-weight:500;color:var(--text);font-size:.9375rem}.password-form .input-field{padding:.75rem 1rem;border:2px solid var(--gray-light);border-radius:8px;font-size:1rem;transition:all .2s ease}.password-form .input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}.password-form .input-field::placeholder{color:var(--gray-medium)}.password-form .btn{margin-top:.5rem}ul.password-requirements{list-style-type:disc;padding-left:1.5rem;margin-top:.5rem;color:var(--gray-medium);font-size:.875rem}@media(max-width:480px){.settings-header h1{font-size:1.5rem}.settings-section h2{font-size:1.25rem}.time-inputs{flex-direction:column;gap:.5rem}.time-separator{transform:rotate(90deg)}}.public-data-options{margin-top:.75rem;padding-left:1.75rem;display:flex;flex-direction:column;gap:.5rem}.public-url{font-size:.85rem;word-break:break-all;margin:0}.public-url code{-webkit-user-select:all;user-select:all}.school-name-save{margin-top:.75rem;align-self:flex-start}.admin-warning{margin-top:.75rem;padding:.6rem .85rem;border-radius:8px;background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-deep);font-size:.9rem}.danger-zone{border:1px solid var(--danger-border);background:var(--danger-bg)}.btn-danger-solid{background-color:var(--danger);color:#fff;border:none}.btn-danger-solid:hover:not(:disabled){background-color:var(--danger-deep)}.modal-close{background:transparent;color:var(--gray-medium);font-size:1.5rem;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-light)}.modal-footer-right{display:flex;justify-content:flex-end;gap:.75rem}.settings-tabs{display:flex;gap:.5rem;margin-bottom:1.2rem}.settings-tabs .is-active{border-color:var(--primary);color:var(--primary)}.orario-page{min-height:100vh;background-color:var(--background);display:flex;flex-direction:column}.orario-header{background-color:var(--white);padding:1.5rem 2rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.back-button{background:transparent;color:var(--primary);font-size:.9375rem;font-weight:500;padding:.5rem 0;margin-bottom:1rem;transition:opacity .2s ease}.orario-header h1{font-size:2rem;color:var(--text);margin:0}.config-panel{background-color:var(--white);border-bottom:1px solid var(--gray-light);padding:1.5rem 2rem}.config-content h3{font-size:1.25rem;color:var(--text);margin-bottom:1.5rem}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:1.5rem}.config-item{display:flex;flex-direction:column;gap:.5rem}.config-item label{font-weight:600;color:var(--text);font-size:.9375rem}.period-input{max-width:100px}.config-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--gray-light)}.config-info{color:var(--text);font-size:1rem}.config-info strong{color:var(--primary);font-size:1.125rem}.section-description{color:var(--gray-medium);margin-bottom:1.5rem;font-size:.9375rem}.scansione-list{display:flex;flex-direction:column;gap:1rem}.scansione-row-config{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;align-items:center;padding:1rem;background-color:var(--background);border-radius:8px;transition:box-shadow .2s ease}.scansione-row-config:hover{box-shadow:var(--shadow-sm)}.orario-main{flex:1;padding:2rem;overflow:hidden}.schedule-wrapper{overflow:auto;max-height:100%}.schedule-table{width:100%;border-collapse:separate;border-spacing:0}.schedule-table thead{position:sticky;top:0;z-index:10;background-color:var(--primary)}.schedule-table th{padding:1rem;text-align:center;font-weight:600;font-size:.875rem;color:var(--white);border:1px solid rgba(255,255,255,.1);background-color:var(--primary)}.schedule-table th.sticky-col{position:sticky;left:0;z-index:20;background-color:var(--primary)}.sticky-header{font-size:1rem;font-weight:700}.day-header{background-color:var(--primary);font-size:1.125rem;font-weight:700;padding:1.25rem 1rem;border-left:2px solid rgba(255,255,255,.2);border-right:2px solid rgba(255,255,255,.2)}.day-header-label{position:sticky;left:160px;display:inline-block}.period-header{background-color:var(--primary-light);font-size:.9375rem;font-weight:600;padding:.75rem .5rem;min-width:60px;text-align:center}.schedule-cell.day-separator-left{border-left:1px solid var(--gray-medium)!important}.schedule-cell.day-separator-right{border-right:1px solid var(--gray-medium)!important}.period-header>div:first-child{font-size:1.125rem;margin-bottom:.25rem}.period-time{font-size:.6875rem;opacity:.9;font-weight:500}.schedule-table tbody tr{transition:background-color .2s ease}.schedule-table tbody tr:hover{background-color:color-mix(in oklab,var(--primary) 2%,transparent)}.schedule-table td{padding:1rem;text-align:center;border:1px solid var(--gray-light);font-size:.9375rem}.teacher-name{font-weight:600;color:var(--text);text-align:left;background-color:var(--background)}.sticky-col{position:sticky;left:0;z-index:5;background-color:var(--background)}.schedule-cell{cursor:pointer;transition:all .2s ease;font-weight:500;min-width:80px}.schedule-cell.filled{background-color:color-mix(in oklab,var(--primary) 8%,transparent);color:var(--primary)}.schedule-cell.special-disposizione{background-color:color-mix(in oklab,var(--gold) 12%,transparent);color:var(--warning)}.schedule-cell.special-pagamento{background-color:color-mix(in oklab,var(--green) 12%,transparent);color:var(--green-deep)}.schedule-cell.special-ricevimenti{background-color:#8b5cf61f;color:#6d28d9}.schedule-cell.special-collaborazione{background-color:#ec48991f;color:#be185d}.schedule-cell:hover{background-color:var(--secondary);color:var(--white);transform:scale(1.05);box-shadow:0 2px 8px color-mix(in oklab,var(--gold-deep) 30%,transparent)}.cell-content{display:flex;flex-direction:column;gap:.125rem;align-items:center}.cell-class{font-weight:700;font-size:.9375rem}.cell-subject{font-size:.75rem;opacity:.85}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-faint);background:var(--border-soft);color:var(--text)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background-color:var(--white);border-radius:12px;box-shadow:var(--shadow-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal-large{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--gray-light)}.modal-header h3{font-size:1.25rem;color:var(--text);margin:0}.modal-close{background:transparent;color:var(--gray-medium);font-size:1.5rem;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background-color:var(--background);color:var(--text)}.modal-body{padding:1.5rem}.modal-info{background-color:var(--background);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.modal-info p{margin:.5rem 0;color:var(--text);font-size:.9375rem}.modal-info strong{color:var(--primary)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid var(--gray-light)}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-weight:600;color:var(--text);margin-bottom:.5rem;font-size:.9375rem}.input-field{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-light);border-radius:8px;font-size:1rem;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}select.input-field{cursor:pointer}.settings-section{padding:1.5rem 0;border-bottom:1px solid var(--gray-light)}.settings-section:last-child{border-bottom:none}.settings-section h4{font-size:1.125rem;font-weight:600;color:var(--text);margin:0 0 1rem}.settings-row{display:flex;gap:.75rem}.settings-row .input-field{flex:1}.settings-row .btn{min-width:100px}.entity-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding:.5rem;background-color:var(--background);border-radius:8px}.entity-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:var(--white);border-radius:6px;border:1px solid var(--gray-light);transition:all .2s ease}.entity-item:hover{border-color:var(--primary);box-shadow:0 2px 8px color-mix(in oklab,var(--primary) 10%,transparent)}.entity-item span{font-weight:500;color:var(--text)}.btn-icon{background:transparent;border:none;cursor:pointer;padding:.25rem .5rem;font-size:1rem;transition:all .2s ease;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background-color:var(--background)}.btn-danger{background-color:var(--danger);color:var(--white)}.btn-danger:hover{background-color:var(--danger-deep)}.btn-icon.btn-danger{background:transparent;color:var(--danger)}.btn-icon.btn-danger:hover{background-color:color-mix(in oklab,var(--danger) 10%,transparent);color:var(--danger-deep)}.btn-icon.btn-confirm{background:transparent;color:var(--primary)}.btn-icon.btn-confirm:hover{background-color:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--primary-hover)}.btn-icon:disabled{opacity:.5;cursor:default}.entity-rename-input{flex:1 1 auto;min-width:0;margin-right:.5rem;padding:.35rem .5rem;font-size:1rem}.entity-item .btn-icon{flex:0 0 auto;width:2.25rem}.btn-icon.btn-rename{color:var(--text-muted);font-size:1.15rem}.btn-icon.btn-rename:hover{color:var(--primary);background-color:color-mix(in oklab,var(--primary) 10%,transparent)}details{margin-top:.5rem}details summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;padding:.75rem 1rem;background-color:var(--background);border-radius:8px;font-weight:600;color:var(--primary);transition:all .2s ease;display:flex;align-items:center}details summary::-webkit-details-marker{display:none}details summary:before{content:"▶";display:inline-block;margin-right:.5rem;transition:transform .2s ease;font-size:.75rem}details[open] summary:before{transform:rotate(90deg)}details summary:hover{background-color:var(--primary);color:var(--white)}.collapsible-content{padding:1.5rem 1rem;background-color:var(--background);border-radius:0 0 8px 8px;margin-top:-4px}.collapsible-content .btn{margin-top:1rem}@media(max-width:1024px){.header-content{flex-direction:column;align-items:flex-start}.header-actions{width:100%}.config-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.schedule-table th,.schedule-table td{padding:.75rem .5rem;font-size:.8125rem}.day-header{font-size:1rem;padding:1rem .75rem}.period-header{font-size:.875rem;min-width:50px}.schedule-cell{min-width:50px}}@media(max-width:768px){.orario-header{padding:1rem}.orario-header h1{font-size:1.5rem}.orario-main,.config-panel{padding:1rem}.config-grid{grid-template-columns:1fr}.config-footer{flex-direction:column;gap:1rem;align-items:stretch}.config-footer .btn{width:100%}.header-actions{flex-direction:column}.header-actions .btn{width:100%}.schedule-container{max-height:calc(100vh - 300px)}.schedule-table th,.schedule-table td{padding:.5rem .25rem;font-size:.75rem}.day-header{font-size:.875rem;padding:.75rem .5rem}.period-header{font-size:.75rem;min-width:40px}.schedule-cell{min-width:40px}.cell-content{max-width:86px;overflow:hidden}.cell-subject{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-header-label{left:112px}.modal{max-width:100%;margin:0;border-radius:12px 12px 0 0}.modal-large{max-width:100%}.settings-row{flex-direction:column;align-items:stretch}.settings-row .btn{width:100%}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}@media(max-width:480px){.orario-header h1{font-size:1.25rem}.schedule-table th,.schedule-table td{padding:.375rem .125rem;font-size:.6875rem}.day-header{font-size:.75rem;padding:.625rem .375rem}.period-header{font-size:.6875rem;min-width:35px;padding:.5rem .25rem}.schedule-cell{min-width:35px}.cell-content{max-width:74px}.day-header-label{left:100px}}.import-warning{color:var(--warning);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.import-page .orario-header{position:static}.import-intro{color:var(--text-muted);max-width:48rem;margin:.5rem 0 1.25rem}.import-pick{display:inline-block;cursor:pointer}.import-body{width:100%;max-width:100rem;margin:0 auto;padding:1.5rem 2rem 1rem;display:flex;flex-direction:column;gap:1.25rem}@media(max-width:700px){.import-body{padding:1rem 1rem .5rem}}.import-verdict{border:1px solid var(--border);border-left:4px solid var(--text-faint);border-radius:var(--r-md);padding:1rem 1.25rem;background:var(--card);box-shadow:var(--shadow-sm)}.import-verdict--ok{border-color:var(--success-border);border-left-color:var(--success);background:var(--success-bg)}.import-verdict--warn{border-color:var(--warning-border);border-left-color:var(--warning);background:var(--warning-bg)}.import-verdict--bad{border-color:var(--danger-border);border-left-color:var(--danger);background:var(--danger-bg)}.import-verdict-format{margin:0 0 .25rem;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.import-verdict-head{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;letter-spacing:-.015em}.import-verdict-notice,.import-verdict-complaint{margin:.25rem 0;color:var(--text-muted);font-size:.9375rem}.import-verdict-ai,.import-inferred{margin:.25rem 0;color:var(--warning);font-size:.9375rem}.import-verdict-cells{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem}.import-verdict-cell{font:inherit;font-size:.8125rem;padding:.2em .7em;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease}.import-verdict-cell:hover{border-color:var(--text-faint);background:var(--bg-alt)}.import-verdict-more{font-size:.8125rem;color:var(--text-muted);align-self:center}.import-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}@media(max-width:1100px){.import-panels{grid-template-columns:minmax(0,1fr)}}@media(min-width:1101px){.import-panel--result{position:sticky;top:1rem}}.import-panel{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:1.25rem;min-width:0}.import-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--border-soft)}.import-panel-head h2{font-size:1.125rem;margin:0;letter-spacing:-.02em}.import-panel-hint,.import-empty{color:var(--text-muted);font-size:.875rem;margin:0 0 .75rem}.import-scroll{overflow:auto;max-height:60vh;border:1px solid var(--border-soft);border-radius:var(--r-sm)}.import-result-table,.import-source-table{border-collapse:separate;border-spacing:0;font-size:.75rem;width:100%}.import-result-table th,.import-result-table td,.import-source-table th,.import-source-table td{border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);padding:.25rem .5rem;white-space:nowrap;text-align:left}.import-result-table thead th,.import-source-table thead th,.import-source-table tbody th{background:var(--bg-alt);color:var(--text-muted);font-weight:600;position:sticky}.import-result-table thead th{top:0;z-index:2;text-align:center}.import-source-table thead th{top:0;z-index:2}.import-source-table tbody th{left:0;z-index:1}.import-result-period{font-weight:400}.import-result-table tbody tr:nth-child(2n) td,.import-source-table tbody tr:nth-child(2n) td{background:color-mix(in oklab,var(--bg-alt) 40%,transparent)}.import-source-table td{max-width:14rem;overflow:hidden;text-overflow:ellipsis}.import-source-table td.is-scrap{background:var(--warning-bg)}.import-source-table td.is-target{outline:2px solid var(--danger);outline-offset:-2px}.import-caption{font-weight:600;margin:0 0 .5rem;font-size:.875rem}:root{--brush-docente: #3b82f6;--brush-classe: #10b981;--brush-materia: #a855f7;--brush-giorno: #f59e0b;--brush-ora: #ef4444;--brush-vuota: #64748b;--brush-gomma: #94a3b8}.import-palette{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:.625rem;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--r-sm)}.import-brush{border:1.5px solid transparent;border-radius:999px;padding:.3em .85em;cursor:pointer;background:var(--card);font:inherit;font-size:.8125rem;font-weight:500;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.import-brush.is-docente{--brush-current: var(--brush-docente)}.import-brush.is-classe{--brush-current: var(--brush-classe)}.import-brush.is-giorno{--brush-current: var(--brush-giorno)}.import-brush.is-ora{--brush-current: var(--brush-ora)}.import-brush.is-vuota{--brush-current: var(--brush-vuota)}.import-brush.is-gomma{--brush-current: var(--brush-gomma)}.import-brush{border-color:var(--brush-current);color:var(--brush-current)}.import-brush:hover{background:color-mix(in oklab,var(--brush-current) 10%,var(--card))}.import-brush.is-active{background:var(--brush-current);color:#fff;box-shadow:0 2px 8px -2px var(--brush-current)}.import-brush.is-gomma{border-style:dashed}.import-source-table th.is-painted{color:#fff;font-weight:600}.import-source-table th.is-docente{background:var(--brush-docente)}.import-source-table th.is-classe{background:var(--brush-classe)}.import-source-table th.is-giorno{background:var(--brush-giorno)}.import-source-table th.is-ora{background:var(--brush-ora)}.import-source-table td.is-marked-empty{opacity:.45;text-decoration:line-through}.import-source-table td.is-example{outline:2px solid var(--brush-materia);outline-offset:-2px}.import-line-btn{all:unset;cursor:pointer;display:block;width:100%;text-align:center}.import-line-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.import-decl,.import-example{border:1px solid var(--border);border-radius:var(--r-sm);padding:1rem 1.125rem;margin:1rem 0 0;background:var(--bg)}.import-decl h3,.import-example h3{font-size:.9375rem;font-weight:600;margin:0 0 .25rem;letter-spacing:-.01em}.import-decl-hint{color:var(--text-muted);font-size:.8125rem;margin:0 0 .875rem;max-width:44rem}.import-decl-rows{display:grid;gap:.5rem}.import-decl-row{display:grid;grid-template-columns:minmax(6rem,14rem) minmax(0,1fr);align-items:center;gap:.75rem}.import-decl-name{font-weight:600;font-size:.875rem;overflow-wrap:anywhere}@media(max-width:560px){.import-decl-row{grid-template-columns:minmax(0,1fr);gap:.25rem}}.import-select,.import-example-field input,.import-ai-notes textarea,.import-panel-head select{font:inherit;font-size:.875rem;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:.45em .7em;width:100%;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}.import-select,.import-panel-head select{appearance:none;padding-right:2em;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%235A6460' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7em center}.import-panel-head select{width:auto;max-width:22rem}.import-select:hover,.import-example-field input:hover{border-color:var(--text-faint)}.import-select:focus-visible,.import-example-field input:focus-visible,.import-ai-notes textarea:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 18%,transparent)}.import-example-text{margin:0 0 .75rem;font-size:.875rem}.import-example-field{display:grid;grid-template-columns:minmax(6rem,8rem) minmax(0,1fr);align-items:center;gap:.75rem;margin-bottom:.5rem}.import-example-field span{text-transform:capitalize;font-weight:600;font-size:.875rem}.import-example-warn{color:var(--warning);margin:.5rem 0 0;font-size:.8125rem}.import-example-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.875rem;flex-wrap:wrap}.import-ai{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-soft)}.import-ai-notes{display:block;font-size:.875rem;color:var(--text-muted);margin-bottom:.625rem}.import-ai-notes textarea{margin-top:.35rem;resize:vertical}.import-ai-hint{margin:.625rem 0 0;font-size:.8125rem;color:var(--text-muted)}.import-actions{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;margin:0 -2rem;padding:.875rem 2rem;background:var(--bg);border-top:1px solid var(--border);box-shadow:0 -8px 20px -16px #0e161280}@media(max-width:700px){.import-actions{margin:0 -1rem;padding:.875rem 1rem}}.import-week-extension{margin:0 auto 0 0;color:var(--text-muted);font-size:.875rem}.import-contact{text-align:right;font-size:.8125rem;color:var(--text-muted);margin:0}.absences-page{min-height:100vh;background-color:var(--background);display:flex;flex-direction:column}.absences-header{background-color:var(--white);padding:1.5rem 2rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.back-button{background:transparent;color:var(--primary);font-size:.9375rem;font-weight:500;padding:.5rem 0;margin-bottom:1rem;transition:opacity .2s ease;border:none;cursor:pointer}.back-button:hover{opacity:.7}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.absences-header h1{font-size:2rem;color:var(--text);margin:0}.header-actions{display:flex;gap:.75rem;flex-wrap:wrap}.month-selector{display:flex;gap:.75rem;align-items:center}.month-select,.year-select{padding:.5rem 1rem;border:2px solid var(--gray-light);border-radius:8px;background-color:var(--white);color:var(--text);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease}.month-select:hover,.year-select:hover{border-color:var(--primary)}.month-select:focus,.year-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}.absences-main{flex:1;padding:2rem;overflow:hidden}.schedule-container{background:var(--white);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;max-height:calc(100vh - 250px)}.schedule-wrapper{overflow:auto;max-height:calc(100vh - 250px)}.absences-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--white);font-size:.9rem}.absences-table thead{position:sticky;top:0;z-index:10;background:var(--white)}.absences-table th{padding:1rem;text-align:center;font-weight:600;font-size:.875rem;color:var(--white);background-color:var(--primary);border:1px solid rgba(255,255,255,.1)}.absences-table th:last-child{border-right:none}.sticky-col{position:sticky;left:0;z-index:5;background:var(--white)}.sticky-col.sticky-header{z-index:20}.sticky-col-2{position:sticky;left:150px;z-index:5;background:var(--white)}.sticky-col-2.sticky-header{z-index:20}.week-header-row{background:var(--primary)}.week-header{padding:1rem;color:var(--white);font-weight:600;text-align:center;font-size:1rem}.date-header-row{background:var(--primary)}.date-header{padding:.75rem .5rem;color:var(--white);text-align:center;min-width:80px}.date-header-content{display:flex;flex-direction:column;gap:.25rem}.day-name{font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.5px}.date-number{font-size:1.25rem;font-weight:700}.month-name{font-size:.7rem;opacity:.9;text-transform:uppercase}.teacher-col{background:var(--primary);color:var(--white);font-weight:600;padding:1rem;min-width:150px}.teacher-name-cell{padding:1rem;font-weight:500;color:var(--text);background:var(--background);border-bottom:1px solid var(--gray-light);min-width:150px}.hours-col{background:var(--primary);color:var(--white);font-weight:600;padding:1rem;min-width:100px;text-align:center}.hours-cell{padding:1rem;font-weight:600;font-size:1.1rem;color:var(--primary);background:var(--background);border-bottom:1px solid var(--gray-light);text-align:center;min-width:100px;border-right:2px solid var(--gray-medium)}.absence-cell{padding:.5rem;text-align:center;border:1px solid var(--gray-light);cursor:pointer;transition:all .2s ease;min-width:80px;height:100px;vertical-align:middle}.absence-cell.filled{background-color:color-mix(in oklab,var(--primary) 8%,transparent)}.absence-cell:hover{background-color:var(--secondary);color:var(--white);transform:scale(1.05);box-shadow:0 2px 8px color-mix(in oklab,var(--gold-deep) 30%,transparent)}.empty-placeholder{color:var(--gray-medium);font-size:1.5rem;opacity:.3}.absence-content{display:flex;flex-direction:column;gap:.5rem;align-items:center;justify-content:center}.duration-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.duration-badge.full{background:var(--danger);color:var(--white)}.duration-badge.partial{background:var(--accent);color:var(--white)}.absence-details{display:flex;flex-direction:column;gap:.25rem;width:100%}.detail-badge{padding:.2rem .4rem;border-radius:3px;font-size:.65rem;font-weight:600;text-align:center}.detail-badge.trip{background:var(--secondary);color:var(--white)}.detail-badge.recovery{background:var(--primary-light);color:var(--white)}.absence-notes{font-size:1rem;opacity:.7}.absence-cell.week-separator-left{border-left:1px solid var(--gray-medium)!important}.absence-cell.week-separator-right{border-right:1px solid var(--gray-medium)!important}.modal-large{max-width:600px;width:90%}.modal-info{background:var(--background);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.modal-info p{margin:.5rem 0;color:var(--text)}.modal-info strong{color:var(--primary);font-weight:600}.period-range{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.checkbox-group span{font-weight:500;color:var(--text)}.textarea-field{resize:vertical;font-family:inherit;min-height:80px}.modal-footer{display:flex;justify-content:space-between;align-items:center}.modal-footer-right{display:flex;gap:.75rem}.btn-danger{background:var(--danger);color:var(--white);border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:var(--danger-deep);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in oklab,var(--danger) 30%,transparent)}@media(max-width:1024px){.absences-main{padding:1.5rem}.absences-header h1{font-size:1.5rem}.absence-cell{min-width:70px;height:90px;padding:.4rem}.date-header{min-width:70px;padding:.6rem .4rem}}@media(max-width:768px){.absences-header{padding:1rem 1.5rem}.header-content{flex-direction:column;align-items:flex-start}.absences-header h1{font-size:1.25rem}.absences-main{padding:1rem}.absence-cell{min-width:60px;height:80px;padding:.3rem}.date-header{min-width:60px;padding:.5rem .3rem}.teacher-col,.teacher-name-cell{min-width:120px}.sticky-col-2{left:120px}.hours-col,.hours-cell{min-width:80px;font-size:.9rem}.modal-large{width:95%;max-height:90vh;overflow-y:auto}.period-range{grid-template-columns:1fr}.month-selector{flex-direction:column;width:100%}.month-select,.year-select{width:100%}}@media(max-width:480px){.absences-header{padding:.75rem 1rem}.absences-header h1{font-size:1.1rem}.absences-main{padding:.5rem}.absence-cell{min-width:50px;height:70px;font-size:.75rem}.date-header{min-width:50px;font-size:.75rem}.date-number{font-size:1rem}.teacher-col,.teacher-name-cell{min-width:92px;max-width:92px;font-size:.8rem;padding:.5rem .35rem;overflow-wrap:anywhere}.sticky-col-2{left:92px}.hours-col,.hours-cell{min-width:64px;max-width:64px;font-size:.75rem;padding:.4rem .25rem}.th-label-full{display:none}.th-label-short{display:inline}.duration-badge,.detail-badge{font-size:.6rem;padding:.15rem .3rem}}.hours-balance-btn{background:none;border:none;cursor:pointer;font:inherit;font-weight:600;color:var(--primary);text-decoration:underline;padding:.25rem .5rem}.hours-balance-btn.negative{color:var(--danger)}.recovery-list{list-style:none;margin:0 0 1rem;padding:0}.recovery-row{display:flex;align-items:center;justify-content:space-between;padding:.4rem .25rem;border-bottom:1px solid var(--gray-light)}.recovery-row.orphan{opacity:.65}.recovery-row-main{display:flex;align-items:center;gap:.5rem;cursor:pointer}.recovery-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:999px;background:var(--gold-soft);color:var(--gold-deep);text-transform:uppercase}.recovery-note{font-size:.8rem;color:var(--text-muted);font-style:italic}.recovery-delete{background:none;border:none;cursor:pointer}.recovery-locked{opacity:.5;cursor:help}.recovery-balance-line .negative{color:var(--danger)}.recovery-correction-form{display:flex;flex-direction:column;gap:.5rem}.recovery-correction-actions{display:flex;gap:.5rem;justify-content:flex-end}.recovery-row.draft{background:var(--info-bg);border-radius:6px}.recovery-badge.new{background:var(--primary);color:#fff}.recovery-fieldset{border:0;padding:0;margin:0;min-inline-size:auto}.trips-page{min-height:100vh;background-color:var(--background);display:flex;flex-direction:column}.trips-header{background-color:var(--white);padding:1.5rem 2rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.trips-header h1{font-size:2rem;color:var(--text);margin:0}.trips-main{flex:1;padding:2rem;overflow:hidden}.trips-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--white);font-size:.9rem}.trips-table thead{position:sticky;top:0;z-index:10;background:var(--white)}.trips-table th{padding:1rem;text-align:center;font-weight:600;font-size:.875rem;color:var(--white);background-color:var(--primary);border:1px solid rgba(255,255,255,.1)}.trips-table th:last-child{border-right:none}.days-col{background:var(--primary);color:var(--white);font-weight:600;padding:1rem;min-width:100px;text-align:center}.th-label-short{display:none}.days-cell{padding:1rem;font-weight:600;font-size:1.1rem;color:var(--secondary);background:var(--background);border-bottom:1px solid var(--gray-light);text-align:center;min-width:100px;border-right:2px solid var(--gray-medium)}.trip-cell{padding:.5rem;text-align:center;border:1px solid var(--gray-light);cursor:pointer;transition:all .2s ease;min-width:80px;height:100px;vertical-align:middle}.trip-cell.filled{background-color:color-mix(in oklab,var(--gold-deep) 12%,transparent)}.trip-cell:hover{background-color:var(--secondary);color:var(--white);transform:scale(1.05);box-shadow:0 2px 8px color-mix(in oklab,var(--gold-deep) 30%,transparent)}.trip-content{display:flex;flex-direction:column;gap:.5rem;align-items:center;justify-content:center}.trip-cell .duration-badge.full{background:var(--secondary);color:var(--white)}.trip-cell .duration-badge.partial{background:var(--accent);color:var(--white)}.trip-details{display:flex;flex-direction:row;gap:.25rem;justify-content:center;flex-wrap:wrap;width:100%}.detail-badge.students{background:var(--green);color:var(--white)}.detail-badge.teachers{background:var(--primary-light);color:var(--white)}.trip-notes{font-size:1rem;opacity:.7}.trip-cell.week-separator-left{border-left:1px solid var(--gray-medium)!important}.trip-cell.week-separator-right{border-right:1px solid var(--gray-medium)!important}.teacher-checkbox-list{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;max-height:200px;overflow-y:auto;background:var(--background);border-radius:8px;margin-top:.5rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background-color .2s ease}.checkbox-label:hover{background-color:color-mix(in oklab,var(--primary) 5%,transparent)}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--primary)}.checkbox-label span{font-weight:500;color:var(--text)}@media(max-width:1024px){.trips-main{padding:1.5rem}.trips-header h1{font-size:1.5rem}.trip-cell{min-width:70px;height:90px;padding:.4rem}.date-header{min-width:70px;padding:.6rem .4rem}}@media(max-width:768px){.trips-header{padding:1rem 1.5rem}.header-content{flex-direction:column;align-items:flex-start}.trips-header h1{font-size:1.25rem}.trips-main{padding:1rem}.trip-cell{min-width:60px;height:80px;padding:.3rem}.date-header{min-width:60px;padding:.5rem .3rem}.teacher-col,.teacher-name-cell{min-width:120px}.sticky-col-2{left:120px}.days-col,.days-cell{min-width:80px;font-size:.9rem}.modal-large{width:95%;max-height:90vh;overflow-y:auto}.period-range{grid-template-columns:1fr}.month-selector{flex-direction:column;width:100%}.month-select,.year-select{width:100%}}@media(max-width:480px){.trips-header{padding:.75rem 1rem}.trips-header h1{font-size:1.1rem}.trips-main{padding:.5rem}.trip-cell{min-width:50px;height:70px;font-size:.75rem}.date-header{min-width:50px;font-size:.75rem}.date-number{font-size:1rem}.teacher-col,.teacher-name-cell{min-width:92px;max-width:92px;font-size:.8rem;padding:.5rem .35rem;overflow-wrap:anywhere}.sticky-col-2{left:92px}.hours-col,.days-col,.days-cell{min-width:64px;max-width:64px;font-size:.75rem;padding:.4rem .25rem}.th-label-full{display:none}.th-label-short{display:inline}.duration-badge,.detail-badge{font-size:.6rem;padding:.15rem .3rem}.teacher-checkbox-list{max-height:150px}}.sostituzioni-page{min-height:100vh;background-color:var(--background);display:flex;flex-direction:column}.sostituzioni-header{background-color:var(--white);padding:1.5rem 2rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.sostituzioni-header .back-button{background:transparent;color:var(--primary);font-size:.9375rem;font-weight:500;padding:.5rem 0;margin-bottom:1rem;transition:opacity .2s ease;border:none;cursor:pointer}.sostituzioni-header .back-button:hover{opacity:.7}.sostituzioni-header .header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.sostituzioni-header h1{font-size:2rem;color:var(--text);margin:0}.logic-button{padding:.625rem 1.25rem;border:2px solid var(--primary);border-radius:8px;background-color:transparent;color:var(--primary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.logic-button:hover{background-color:var(--primary);color:var(--white)}.sostituzioni-main{flex:1;padding:2rem;max-width:960px;margin:0 auto;width:100%}.generate-controls{background:var(--white);border-radius:12px;box-shadow:var(--shadow-sm);padding:1.5rem 2rem;display:flex;align-items:flex-end;gap:1.5rem;margin-bottom:2rem}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{font-size:.875rem;font-weight:600;color:var(--text)}.date-input{padding:.625rem 1rem;border:2px solid var(--gray-light);border-radius:8px;background-color:var(--white);color:var(--text);font-size:.9375rem;font-weight:500;transition:all .2s ease}.date-input:hover{border-color:var(--primary)}.date-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}.generate-btn{padding:.625rem 2rem;border:none;border-radius:8px;background-color:var(--primary);color:var(--white);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.generate-btn:hover:not(:disabled){background-color:var(--primary-light);transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in oklab,var(--primary) 30%,transparent)}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.generate-note{font-size:.8125rem;color:var(--text-muted);max-width:28rem;line-height:1.4}.error-container{background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:2rem}.error-message{color:var(--danger);margin:0;font-size:.9375rem;line-height:1.5}.loading-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;color:var(--gray-medium)}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-light);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-container{background:var(--white);border-radius:12px;box-shadow:var(--shadow-sm);padding:1.5rem 2rem;margin-bottom:2rem}.result-container h2{font-size:1.25rem;color:var(--text);margin:0 0 1rem}.result-empty p{color:var(--gray-medium);font-size:.9375rem;margin:0}.result-summary{font-size:.875rem;color:var(--gray-medium);margin-bottom:1.25rem}.result-text{background:var(--background);border-radius:8px;padding:1.25rem;font-family:inherit;font-size:.9375rem;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0;overflow-x:auto}.result-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.class-card{background:var(--background);border-radius:10px;overflow:hidden;border:1px solid var(--gray-light)}.class-card-header{background:var(--primary);color:var(--white);padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center}.class-name{font-weight:700;font-size:1rem}.class-count{font-size:.8125rem;opacity:.85}.class-card-body{padding:.5rem 0}.substitution-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.875rem;border-bottom:1px solid var(--gray-light)}.substitution-row:last-child{border-bottom:none}.sub-period{font-weight:600;color:var(--primary);min-width:50px}.sub-type{background:var(--gray-light);color:var(--text);padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.sub-teacher{flex:1;text-align:right;color:var(--text);font-weight:500}.execution-log-section{margin-top:1rem}.log-toggle{background:transparent;border:none;color:var(--gray-medium);font-size:.875rem;cursor:pointer;padding:.5rem 0;transition:color .2s ease}.log-toggle:hover{color:var(--text)}.execution-log{background:var(--white);border-radius:12px;box-shadow:var(--shadow-sm);padding:1rem;margin-top:.5rem;max-height:400px;overflow-y:auto}.log-table{width:100%;border-collapse:collapse;font-size:.8125rem}.log-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--gray-light);color:var(--text);font-weight:600}.log-table td{padding:.375rem .75rem;border-bottom:1px solid var(--gray-light);color:var(--text)}.log-node-id{font-family:monospace;font-size:.75rem;color:var(--gray-medium)}.log-duration{font-family:monospace;font-size:.75rem;color:var(--gray-medium);text-align:right;white-space:nowrap}@media(max-width:768px){.sostituzioni-header{padding:1rem 1.25rem}.sostituzioni-header h1{font-size:1.5rem}.sostituzioni-main{padding:1.25rem}.generate-controls{flex-direction:column;align-items:stretch;gap:1rem;padding:1.25rem}.generate-btn{width:100%}.result-cards{grid-template-columns:1fr}.result-container{padding:1.25rem}}@media(max-width:480px){.sostituzioni-header h1{font-size:1.25rem}}.apply-preview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.overrides-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:1rem 1.25rem;margin-bottom:1.5rem}.overrides-panel.is-modified{border-color:var(--accent)}.overrides-header{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.overrides-toggle{flex:1;text-align:left;border:none;background:transparent;color:var(--text);font-size:.9375rem;font-weight:600;font-family:inherit;cursor:pointer;padding:0}.overrides-summary{color:var(--text-muted);font-weight:400}.overrides-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:999px;padding:.125rem .5rem}.overrides-reset{border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:var(--r-sm);padding:.25rem .625rem;font-size:.8125rem;font-family:inherit;cursor:pointer}.overrides-reset:hover{border-color:var(--primary);color:var(--primary)}.overrides-changed{margin-top:.75rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.875rem;color:var(--text-muted)}.overrides-body{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-soft)}.overrides-status{margin:.75rem 0 0;color:var(--text-muted);font-size:.9375rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.overrides-status-error{color:var(--danger)}.overrides-table{margin-bottom:1.75rem}.overrides-table h3{font-size:1rem;color:var(--text);margin:0 0 .75rem}.overrides-empty{color:var(--text-muted);font-size:.9375rem;margin:0 0 .75rem}.overrides-grid{width:100%;border-collapse:collapse;margin-bottom:.75rem}.overrides-grid th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:600;padding:.375rem .5rem;border-bottom:1px solid var(--border)}.overrides-grid td{padding:.4375rem .5rem;border-bottom:1px solid var(--border-soft);vertical-align:middle}.overrides-grid select,.overrides-grid input[type=number]{padding:.3125rem .5rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);font-size:.875rem;font-family:inherit}.overrides-grid .cell-name{font-weight:600;white-space:nowrap}.overrides-grid .cell-muted{color:var(--text-faint)}.overrides-grid .row-invalid td{background:var(--danger-bg)}.period-range{display:flex;align-items:center;gap:.375rem;color:var(--text-muted)}.row-remove{border:none;background:transparent;color:var(--text-faint);font-size:1.125rem;line-height:1;cursor:pointer;padding:.125rem .375rem;border-radius:var(--r-sm)}.row-remove:hover{color:var(--danger);background:var(--danger-bg)}.overrides-errors{margin:0 0 .75rem;padding-left:1.25rem;color:var(--danger);font-size:.875rem}.searchable-select{position:relative;max-width:320px}.searchable-input{width:100%;padding:.5rem .75rem;border:1px dashed var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);font-size:.875rem;font-family:inherit}.searchable-input:focus{outline:none;border-style:solid;border-color:var(--primary)}.searchable-list{position:absolute;z-index:20;top:calc(100% + 2px);left:0;right:0;max-height:240px;overflow-y:auto;margin:0;padding:.25rem;list-style:none;background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow)}.searchable-option{display:block;width:100%;text-align:left;padding:.4375rem .5rem;border:none;background:transparent;color:var(--text);font-size:.875rem;font-family:inherit;cursor:pointer;border-radius:var(--r-sm)}.searchable-option:hover{background:var(--bg-alt)}.searchable-empty{padding:.4375rem .5rem;color:var(--text-faint);font-size:.875rem}.overrides-hint{color:var(--text-muted);font-size:.8125rem;margin:-.375rem 0 .75rem}.students-input{width:72px}.row-move{border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:var(--r-sm);cursor:pointer;padding:.125rem .375rem;margin-right:.25rem;font-size:.875rem;line-height:1.2}.row-move:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.row-move:disabled{opacity:.4;cursor:default}@media(max-width:640px){.overrides-grid,.overrides-grid thead,.overrides-grid tbody,.overrides-grid tr,.overrides-grid td{display:block;width:100%}.overrides-grid thead{display:none}.overrides-grid tr{border:1px solid var(--border);border-radius:var(--r-md);padding:.5rem;margin-bottom:.625rem}.overrides-grid td{border:none;padding:.25rem 0}}.apply-section+.apply-section{margin-top:1.25rem}.apply-section h4{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.35rem}.apply-section-note{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.apply-preview-row{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;padding:.35rem 0}.apply-preview-row input{margin-top:.25rem;flex-shrink:0}.apply-preview-done{color:var(--text-muted)}.published-notice{margin:1rem 0;padding:.85rem 1rem;border-radius:var(--r-md);background:var(--info-bg);border:1px solid var(--warning-border);color:var(--warning);font-size:.9rem;line-height:1.5}.publish-bar{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0}.diff-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}.diff-chip{padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid transparent}.diff-chip.is-confirmed{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.diff-chip.is-changed{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.diff-chip.is-added{background:var(--info-bg);color:var(--info)}.diff-chip.is-removed{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.substitution-row.is-changed{border-left:3px solid var(--warning);padding-left:.5rem}.substitution-row.is-added{border-left:3px solid var(--info);padding-left:.5rem}.sub-was{margin-left:.5rem;font-size:.8rem;color:var(--warning);font-weight:500}.sub-badge{margin-left:.5rem;font-size:.75rem;font-weight:600;color:var(--info);text-transform:uppercase;letter-spacing:.03em}.diff-panel{margin:1rem 0}.diff-list{margin-top:.6rem;padding-left:1.1rem;font-size:.9rem;color:var(--text-muted);line-height:1.7}.voice-entry-page{max-width:900px;margin:0 auto;padding:1.5rem}.voice-entry-header h1{margin:.5rem 0}.voice-back-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:0;color:var(--text)}.voice-recorder{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:1rem 0}.voice-record-btn,.voice-analyze-btn,.voice-confirm-btn{padding:.6rem 1.2rem;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:1rem;cursor:pointer}.voice-record-btn.recording{background:var(--danger)}.voice-record-btn:disabled,.voice-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.voice-upload-label{cursor:pointer;color:var(--primary);text-decoration:underline}.voice-playback{display:flex;gap:.75rem;align-items:center;width:100%}.voice-status{color:var(--text-muted);font-style:italic}.voice-day-section{margin-top:1.5rem;border-top:2px solid var(--border);padding-top:.75rem}.voice-day-section h2{font-size:1.15rem;text-transform:capitalize}.voice-subsection h3{font-size:1rem;color:var(--text-muted);margin:.5rem 0}.voice-card{border:1px solid var(--border);border-radius:10px;padding:.9rem 1.1rem;margin-bottom:.9rem;background:var(--bg)}.voice-card-unmatched{border-color:var(--danger)}.voice-card-collapsed{padding:.5rem 1.1rem}.voice-card-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.voice-card-title-static{font-weight:600;font-size:1.05rem}.voice-card-title-control{flex:1 1 220px;min-width:200px}.voice-title-select{width:100%;font-size:1.05rem;font-weight:600;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--card)}.voice-collapse-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-muted);padding:.1rem .3rem}.voice-collapse-btn:hover{color:var(--primary)}.voice-delete-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-faint)}.voice-delete-btn:hover{color:var(--danger)}.voice-card-collapsed .voice-card-header{flex-wrap:nowrap}.voice-card-collapsed .voice-badge{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.voice-badge{font-size:.8rem;padding:.15rem .5rem;border-radius:999px}.voice-badge-conflict{background:var(--warning-bg);color:var(--warning)}.voice-badge-unmatched{background:var(--danger-bg);color:var(--danger-deep)}.voice-card-section{margin-top:.5rem;border-top:1px solid var(--border);padding-top:.4rem;margin-bottom:1.5rem}.voice-card-section>:last-child{margin-bottom:0}.voice-card-section-title{margin:0 0 .5rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.voice-field{display:flex;flex-direction:column;font-size:.85rem;color:var(--text);gap:.2rem;margin-bottom:.6rem;max-width:320px}.voice-field input,.voice-field select{padding:.35rem;border:1px solid var(--border);border-radius:6px}.voice-duration-choice{display:flex;gap:1.25rem;margin-bottom:.6rem}.voice-radio{display:flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--text)}.voice-period-range{display:flex;gap:1rem}.voice-checkbox-row{display:flex;gap:1.5rem;flex-wrap:wrap}.voice-checkbox{display:flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--text)}.voice-warning{color:var(--warning);font-size:.85rem;margin:.3rem 0 0}.voice-error{color:var(--danger);font-size:.9rem;margin:.3rem 0 0}.voice-entry-footer{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.classi-prime{min-height:100vh;background-color:var(--bg)}.cp-header{background-color:var(--card);box-shadow:var(--shadow-sm);padding:1.5rem 2rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.cp-header h1{flex:1;margin:0;font-size:2rem}.cp-header-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.cp-back{background:transparent;color:var(--primary);font-size:.9375rem;font-weight:500;padding:.5rem 0;transition:opacity .2s ease}.cp-back:hover{opacity:.7}.classi-prime select,.classi-prime input:not([type=checkbox]){font:inherit;font-size:.9375rem;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:.375rem .5rem}.classi-prime select:focus-visible,.classi-prime input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.cp-tabs{display:flex;gap:.5rem;padding:1.5rem 2rem 0;border-bottom:1px solid var(--border)}.cp-tabs button{background:transparent;font:inherit;font-size:.9375rem;font-weight:500;color:var(--text-muted);padding:.5rem 1rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s ease,border-color .2s ease}.cp-tabs button:hover{color:var(--text)}.cp-tabs button.active{color:var(--text);font-weight:600;border-bottom-color:var(--primary)}.cp-panel{padding:1.5rem 2rem 3rem}.cp-panel section{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.cp-panel-head{display:flex;align-items:baseline;gap:1rem}.cp-panel-head h2{flex:1;margin:0 0 .5rem;font-size:1.25rem}.cp-hint{font-size:.875rem;color:var(--text-muted);margin:0 0 1rem;max-width:52rem}.cp-error{padding:.75rem 1rem;border-radius:var(--r-sm);background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);font-size:.9375rem;margin:0 0 1rem}.classi-prime>.cp-error{margin:1.5rem 2rem 0}.cp-empty{margin:4rem auto;max-width:32rem;text-align:center;color:var(--text-muted)}.cp-notice{margin:1.5rem 2rem 0;padding:.75rem 1rem;border-radius:var(--r-sm);border:1px solid var(--warning-border, var(--border));background:var(--warning-bg, var(--bg-alt));color:var(--text);font-size:.9375rem;line-height:1.5}.cp-running{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.625rem .875rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-alt);color:var(--text)}.cp-running strong{color:var(--text)}.cp-running .btn{flex-shrink:0;margin-left:auto}.cp-masked{display:inline-block;padding:.25rem .5rem;border-radius:var(--r-sm);background:var(--bg-alt);color:var(--text-faint);letter-spacing:.1em;-webkit-user-select:none;user-select:none}.cp-churn{margin:1.25rem 0;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-alt)}.cp-churn h3{margin:0 0 .75rem;font-size:1rem}.cp-churn h4{margin:1rem 0 .25rem;font-size:.9375rem}.cp-churn section:first-of-type h4{margin-top:0}.cp-churn .cp-hint{margin:0 0 .5rem}.cp-muted{color:var(--text-faint)}.cp-key{font-size:.75rem;color:var(--text-faint)}.cp-remove{background:transparent;color:var(--text-faint);font-size:1.125rem;line-height:1;padding:.125rem .375rem;border-radius:var(--r-sm);transition:color .2s ease,background .2s ease}.cp-remove:hover{color:var(--danger);background:var(--danger-bg)}.cp-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.cp-chips li{display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem .35rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-alt);font-size:.9375rem}.cp-table{width:100%;border-collapse:collapse;font-size:.9375rem}.cp-table th,.cp-table td{padding:.5rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-soft)}.cp-table thead th{font-size:.8125rem;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border)}.cp-table input[type=number]{width:4.5rem}.cp-table input:not([type=checkbox]):not([type=number]){width:100%;min-width:10rem}.cp-address-cells{display:flex;flex-direction:column;gap:.2rem;font-size:.875rem}.cp-address-cells label{display:flex;align-items:center;gap:.35rem}.cp-table-scroll{overflow-x:auto}.cp-constraint-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.cp-constraint-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--text-muted)}.cp-constraint-form select,.cp-constraint-form input:not([type=checkbox]),.cp-condition select,.cp-condition input:not([type=checkbox]){box-sizing:border-box;height:2.125rem}.cp-constraint-form .cp-check{display:flex;align-items:center;height:2.125rem}.cp-constraint-form .cp-check input{margin:0;width:1rem;height:1rem}.cp-conditions{display:flex;flex-direction:column;gap:.5rem;flex-basis:100%}.cp-conditions-label{font-size:.8125rem;color:var(--text-muted)}.cp-condition{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.cp-scenarios{display:flex;flex-wrap:wrap;gap:1rem}.cp-scenario{flex:1 1 14rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-alt);padding:.875rem 1rem}.cp-scenario h3{margin:0 0 .25rem;font-size:1rem}.cp-scenario p{margin:0 0 .75rem;font-size:.8125rem}.cp-rejected{margin-top:1rem;font-size:.9375rem}.cp-rejected summary{cursor:pointer;color:var(--text-muted);margin-bottom:.5rem}.cp-board-columns{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem}.cp-board-busy{opacity:.6;pointer-events:none}.cp-column{flex:0 0 15rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);padding:.75rem}.cp-column-spare{background:var(--bg-alt);border-style:dashed}.cp-column-head h3{margin:0;font-size:1rem}.cp-column-head p{margin:.15rem 0 0;font-size:.8125rem}.cp-column-head .cp-over{color:var(--danger);font-weight:600}.cp-column-head .cp-under{color:var(--warning, #b26a00);font-weight:600}.cp-indicator{font-size:.75rem}.cp-column ul{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.cp-student{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;border-radius:var(--r-sm);background:var(--bg-alt);font-size:.875rem;cursor:grab}.cp-student:active{cursor:grabbing}.cp-flagged{background:var(--danger-bg);border:1px solid var(--danger-border)}.cp-pin{display:flex;align-items:center}.cp-student-address{margin-left:auto;font-size:.6875rem}.cp-pagella{margin-top:1.5rem}.cp-pagella h3{font-size:.9375rem;margin:1rem 0 .5rem}.cp-violations{margin:0 0 1rem;padding-left:1.25rem;font-size:.9375rem;color:var(--danger)}@media(max-width:768px){.cp-header,.cp-tabs{padding-left:1rem;padding-right:1rem}.cp-panel{padding:1rem 1rem 2rem}.classi-prime>.cp-error{margin:1rem}.cp-panel section{padding:1rem}.cp-table{display:block;overflow-x:auto}}@media(max-width:768px){.cp-column{flex-basis:12rem}}.cp-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9375rem;white-space:nowrap}.cp-link{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cp-link code{flex:1;min-width:16rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-alt);font-size:.875rem;overflow-wrap:anywhere}.cp-roster-import{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}.cp-roster-import>.cp-hint{margin:0}.cp-roster-import .cp-table{width:auto;min-width:24rem}.cp-columns{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.cp-columns label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--text-muted)}.cp-actions{display:flex;gap:.5rem}.cp-counts{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:baseline;margin-bottom:1rem;font-size:.9375rem}.cp-counts strong{font-size:1.5rem;margin-right:.25rem}.cp-panel .cp-notice{margin:.75rem 0 0}.cp-template{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.cp-template .cp-hint{margin:0}.cp-contact{display:flex;flex-direction:column;gap:.25rem;max-width:22rem;font-size:.8125rem;color:var(--text-muted)}.cp-notice-editor{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);font-family:inherit;font-size:.9375rem;line-height:1.5;resize:vertical;margin-bottom:.75rem}.cp-switch{display:inline-flex;padding:.1875rem;gap:.1875rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-alt)}.cp-switch button{border:0;background:transparent;color:var(--text-muted);font-size:.875rem;font-weight:600;padding:.3125rem .9375rem;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease}.cp-switch button:hover:not([aria-pressed=true]){color:var(--text)}.cp-switch button.is-open{background:var(--success);color:#fff}.cp-switch button.is-closed{background:var(--card);color:var(--text);box-shadow:0 1px 2px #00000014}.cp-menu{position:relative;display:inline-block}.cp-menu-items{position:absolute;right:0;z-index:20;min-width:22rem;margin-top:.25rem;padding:.375rem;list-style:none;background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 8px 24px #0000001f}.cp-menu-items li{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem}.cp-menu-items li+li{border-top:1px solid var(--border-soft)}.cp-menu-items li>div{flex:1;display:flex;flex-direction:column}.cp-menu-items li span{font-size:.8125rem}.cp-rownum{width:2.5rem;color:var(--text-faint);font-variant-numeric:tabular-nums;text-align:right;-webkit-user-select:none;user-select:none}.cp-colhelp{display:block;max-width:14rem;margin-top:.125rem;font-size:.75rem;font-weight:400;line-height:1.3;color:var(--text-muted);white-space:normal}.modulo-pubblico{min-height:100vh;background:var(--bg-alt);padding:2rem 1rem 4rem;display:flex;justify-content:center}.mp-card{width:100%;max-width:34rem;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:2rem}.mp-head{border-bottom:1px solid var(--border-soft);padding-bottom:1.25rem;margin-bottom:1.5rem}.mp-school{margin:0 0 .25rem;color:var(--text-muted);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.mp-head h1{margin:0;font-size:1.5rem;line-height:1.25}.modulo-pubblico form{display:flex;flex-direction:column;gap:1.25rem}.modulo-pubblico label{display:flex;flex-direction:column;gap:.35rem;font-weight:500}.modulo-pubblico input,.modulo-pubblico select,.modulo-pubblico textarea{font:inherit;font-weight:400;padding:.6rem .7rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text)}.modulo-pubblico textarea{resize:vertical}.modulo-pubblico input:focus-visible,.modulo-pubblico select:focus-visible,.modulo-pubblico textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.mp-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:30rem){.mp-card{padding:1.25rem}.mp-row{grid-template-columns:1fr}}.mp-check{flex-direction:row;align-items:center;flex-wrap:wrap;gap:.5rem;font-weight:400}.mp-check input{width:auto}.mp-help{display:block;font-weight:400;font-size:.85rem;color:var(--text-muted);margin:.15rem 0 .1rem}.mp-check .mp-help{flex-basis:100%}.mp-multi{border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.4rem}.mp-multi legend{font-weight:500;padding:0 .35rem}.mp-hint,.mp-note{color:var(--text-muted);font-size:.85rem;font-weight:400;line-height:1.45}.mp-note{text-align:center;padding:2rem 1rem}.mp-error{margin:0;padding:.7rem .9rem;border-radius:var(--r-sm);background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-deep)}.mp-done{text-align:center;display:grid;gap:1rem;justify-items:center}.mp-thanks{margin:0;font-size:1.25rem;font-weight:600}.mp-done .mp-note{padding:0}.mp-upload{display:grid;gap:.75rem;justify-items:start;text-align:left;width:100%;padding:1.1rem;border:1px solid var(--border);border-radius:var(--r-md)}.mp-done .mp-upload{justify-items:center;text-align:center}.mp-upload h2{margin:0;font-size:1rem;font-weight:600}.mp-upload input[type=file]{font-size:.9rem}.mp-privacy{border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--bg);padding:.9rem 1rem;max-height:15rem;overflow-y:auto}.mp-privacy h2{margin:0 0 .4rem;font-size:.95rem;font-weight:600}.mp-privacy p{margin:0;white-space:pre-wrap;font-size:.85rem;line-height:1.5;color:var(--text-muted)}.mp-ack{align-items:flex-start}.audit-timeline-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.audit-timeline-col{display:flex;flex-direction:column;align-items:flex-start;gap:16px;min-width:0}.audit-timeline-col>.audit-timeline{align-self:stretch}@media(min-width:1100px){.audit-timeline-wrap:has(.audit-detail){grid-template-columns:minmax(0,1fr) 380px}}.audit-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.audit-tabs button{padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-muted);font-size:.85rem;cursor:pointer}.audit-tabs button:hover{border-color:var(--gold)}.audit-tabs button.is-active{background:var(--green-light);border-color:var(--primary);color:var(--primary);font-weight:600}.audit-timeline{list-style:none;margin:0;padding:0;border:1px solid var(--border-soft);border-radius:10px;background:var(--card);overflow:hidden}.audit-row+.audit-row{border-top:1px solid var(--border-soft)}.audit-row button{display:grid;grid-template-columns:64px auto minmax(0,1fr);gap:4px 10px;width:100%;padding:10px 14px;border:0;border-left:3px solid transparent;background:transparent;text-align:left;cursor:pointer;font:inherit;color:var(--text)}.audit-row button:hover{background:var(--bg-alt)}.audit-row.is-selected button{background:var(--green-light)}.audit-time{color:var(--text-faint);font-size:.8rem;font-variant-numeric:tabular-nums}.audit-school{color:var(--secondary);font-size:.8rem;font-weight:600}.audit-summary{grid-column:2 / -1;overflow-wrap:anywhere}.audit-row button>.audit-time{grid-column:1;grid-row:1}.audit-meta{grid-column:2 / -1;color:var(--text-faint);font-size:.78rem}.audit-sev-warning button{border-left-color:var(--warning)}.audit-sev-error button{border-left-color:var(--danger)}.audit-empty{padding:18px 14px;color:var(--text-faint);font-size:.9rem}.audit-more{justify-self:start;padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-muted);cursor:pointer}.audit-more:disabled{opacity:.6;cursor:default}.audit-detail{position:sticky;top:16px;padding:16px;border:1px solid var(--border-soft);border-radius:10px;background:var(--card);max-height:calc(100vh - 32px);overflow-y:auto}.audit-detail header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.audit-detail header h3{font-size:1rem;overflow-wrap:anywhere}.audit-detail header button{border:0;background:transparent;color:var(--text-faint);font-size:1rem;cursor:pointer}.audit-detail-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:.85rem;margin-bottom:12px}.audit-detail-meta dt{color:var(--text-faint)}.audit-detail-meta dd{overflow-wrap:anywhere}.audit-error{padding:8px 10px;border:1px solid var(--danger-border);border-radius:8px;background:var(--danger-bg);color:var(--danger-deep);font-size:.85rem;margin-bottom:12px}.audit-note{color:var(--text-faint);font-size:.8rem;margin:8px 0}.audit-detail details{margin-top:12px;font-size:.82rem}.audit-detail summary{cursor:pointer;color:var(--text-muted)}.audit-detail pre{margin-top:8px;padding:10px;border-radius:8px;background:var(--bg-alt);overflow-x:auto;font-size:.78rem}.audit-diff-scroll{overflow-x:auto}.audit-diff{width:100%;border-collapse:collapse;font-size:.82rem}.audit-diff th,.audit-diff td{padding:6px 8px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:top}.audit-diff th{color:var(--text-faint);font-weight:600}.audit-diff-before{color:var(--text-faint);text-decoration:line-through}.audit-diff-after{color:var(--primary)}.audit-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.restore-modal-body>*+*{margin-top:.75rem}.restore-note{color:var(--text-muted);font-size:.9rem}.replay-modal{max-width:44rem}.replay-modal .modal-body>*+*{margin-top:.75rem}.replay-choice{display:flex;gap:1.5rem;border:0;padding:0;margin:0}.replay-choice legend{padding:0;margin-bottom:.25rem;color:var(--text-muted);font-size:.9rem}.replay-choice label{display:flex;align-items:center;gap:.35rem}.replay-diff{max-height:24rem;overflow:auto;font-size:.85rem;margin:0}.replay-row{white-space:pre-wrap}.replay-added{background:#1080401f}.replay-removed{background:#b3261e1f}.import-file-preview{margin:1rem 0}.admin-dashboard{max-width:1100px;margin:0 auto;padding:1.5rem}.admin-loading{display:flex;justify-content:center;padding:4rem;color:var(--text-muted)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-logout{background:var(--danger);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;cursor:pointer}.admin-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem}.admin-stat{background:var(--border-soft);border-radius:10px;padding:1rem;text-align:center;color:var(--text);font-size:.85rem}.admin-stat span{display:block;font-size:1.8rem;font-weight:700;color:var(--green-deep)}.admin-stat-errors span{color:var(--danger)}.admin-status{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.4rem;vertical-align:middle}.admin-status-verde{background:var(--success)}.admin-status-giallo{background:var(--warning)}.admin-status-rosso{background:var(--danger)}.admin-open{background:none;border:1px solid var(--border);border-radius:6px;padding:.25rem .6rem;color:var(--text-muted);font-size:.85rem;cursor:pointer}.admin-open:hover{border-color:var(--primary);color:var(--primary)}.admin-section{margin-bottom:2rem}.admin-section h2{font-size:1.1rem;margin-bottom:.75rem}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.admin-table th:nth-child(2){width:100%}.admin-table th:not(:nth-child(2)),.admin-table td:not(:nth-child(2)){white-space:nowrap}.admin-code{display:inline-flex;align-items:center;gap:.4rem}.admin-impersonate{background:none;border:none;padding:0;line-height:1;font-size:1.05rem;cursor:pointer;opacity:.75;transition:opacity .15s ease}.admin-impersonate:hover{opacity:1}.admin-create-form{display:flex;gap:.5rem;flex-wrap:wrap}.admin-create-form input{padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px}.admin-create-form button{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:.45rem 1rem;cursor:pointer}.admin-activity{list-style:none;padding:0}.admin-activity li{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--border-soft);font-size:.9rem}.activity-school{font-weight:600;color:var(--primary)}.activity-date{margin-left:auto;color:var(--text-faint)}@media(max-width:768px){.admin-dashboard{padding:1rem}.admin-header{flex-wrap:wrap;gap:.5rem}.admin-header h1{font-size:1.35rem}.admin-totals{gap:.6rem}.admin-stat span{font-size:1.4rem}.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;margin-bottom:.75rem;background:var(--card)}.admin-table td{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;border-bottom:none;padding:.25rem 0}.admin-table td:before{content:attr(data-label);font-weight:600;color:var(--text-muted);flex-shrink:0}.admin-table td:not(:nth-child(2)){white-space:normal}.admin-impersonate{font-size:1.25rem}.admin-create-form input{flex:1 1 100%}.admin-create-form button{flex:1 1 100%;padding:.6rem 1rem}.admin-activity li{flex-wrap:wrap;row-gap:.15rem}}.admin-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem}.admin-section-head .audit-actions{margin:0}.admin-usage-note{margin-top:.75rem;color:var(--text-muted);font-size:.85rem;max-width:70ch}.school-detail{max-width:1100px;margin:0 auto;padding:1.5rem}.school-detail-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.school-detail-header h1{font-size:1.4rem;overflow-wrap:anywhere}.school-back{background:none;border:none;padding:0;color:var(--text-muted);font-size:.9rem;cursor:pointer;flex-basis:100%}.school-back:hover{color:var(--primary)}.school-code{padding:.15rem .5rem;border-radius:999px;background:var(--border-soft);color:var(--text-muted);font-size:.8rem}.school-impersonate{margin-left:auto;background:var(--primary);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;cursor:pointer}.school-impersonate:hover{background:var(--primary-hover)}.school-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.25rem}.school-status span{text-transform:capitalize;font-size:1.1rem}.school-status-verde span{color:var(--success)}.school-status-giallo span{color:var(--warning)}.school-status-rosso span{color:var(--danger)}.school-categories{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;color:var(--text-muted);font-size:.85rem}.school-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.school-filters input{flex:1 1 180px;padding:.45rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font:inherit;font-size:.9rem}@media(max-width:640px){.school-detail{padding:1rem}.school-impersonate{margin-left:0;flex:1 1 100%}}.school-section{margin-bottom:1.75rem}.school-section h2{font-size:1.05rem;margin-bottom:.75rem}.school-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem}.school-range{display:flex;gap:.35rem}.school-range button{padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-muted);font:inherit;font-size:.8rem;cursor:pointer}.school-range button.is-active{background:var(--green-light);border-color:var(--primary);color:var(--primary);font-weight:600}.school-chip{padding:.35rem .7rem;border:1px solid var(--primary);border-radius:999px;background:var(--green-light);color:var(--primary);font:inherit;font-size:.8rem;cursor:pointer}.school-filters .audit-actions{margin:0}.school-hint{margin:-.4rem 0 .75rem;color:var(--text-muted);font-size:.85rem;line-height:1.45}.school-modules{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.school-module{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.display-scale{position:fixed;left:1rem;bottom:1rem;z-index:1100;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.display-scale-toggle{width:2.75rem;height:2.75rem;border-radius:999px;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);font-family:var(--font-sans);font-size:1.25rem;font-weight:600;line-height:1;display:flex;align-items:center;justify-content:center;transition:background-color .2s,border-color .2s}.display-scale-toggle:hover{background:var(--bg-alt);border-color:var(--primary)}.display-scale-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:.75rem;min-width:13rem;max-width:min(18rem,calc(100vw - 2rem));display:flex;flex-direction:column;gap:.25rem}.display-scale-title{font-size:.85rem;font-weight:600;color:var(--text-muted);margin-bottom:.25rem}.display-scale-option{text-align:left;padding:.5rem .75rem;border-radius:var(--r-sm);background:transparent;color:var(--text);font-family:var(--font-sans);font-size:1rem}.display-scale-option:hover{background:var(--bg-alt)}.display-scale-option.is-current{background:var(--green-light);color:var(--primary);font-weight:600}.display-scale-note{margin-top:.5rem;font-size:.8rem;color:var(--text-faint);line-height:1.35}
