:root{--primary:#0b3d82;--primary-dark:#072a5c;--accent:#12afbf;--accent-soft:#ddf4f6;--bg:#f3f6fa;--surface:#fff;--border:#e1e7ef;--text:#0b2a55;--muted:#5f6f86;--success:#1f9d55;--success-soft:#e3f5ea;--warning:#9a6400;--warning-soft:#fdf2dc;--danger:#d64545;--danger-soft:#fdecec;--radius:16px;--radius-sm:10px;--shadow:0 4px 16px #0b3d820f;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit}h1,h2,h3{color:var(--text);margin:0}h1{font-size:26px;font-weight:800}h2{font-size:19px;font-weight:700}h3{font-size:16px;font-weight:600}p{margin:0}.muted{color:var(--muted);font-size:14px}.small{font-size:13px}.sidebar{background:var(--primary-dark);color:#fff;flex-direction:column;gap:24px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.sidebar .logo{background:#fff;border-radius:12px;padding:10px 14px}.school-name{opacity:.8;padding:0 8px;font-size:13px}.nav a.active{background:var(--accent);opacity:1}.sidebar .user{flex-direction:column;gap:8px;margin-top:auto;padding:0 8px;font-size:13px;display:flex}.sidebar .user button{align-self:flex-start}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-header .subtitle{margin-top:4px}.breadcrumb{color:var(--muted);margin-bottom:6px;font-size:13px}.breadcrumb a{color:var(--accent);font-weight:600;text-decoration:none}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:20px;display:flex}.card.link{cursor:pointer;text-decoration:none;transition:transform .1s,box-shadow .1s}.card.link:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0b3d821a}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;display:grid}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.stat .value{color:var(--primary);font-size:30px;font-weight:800}.stat.highlight{background:var(--primary)}.stat.highlight .value,.stat.highlight .muted{color:#fff}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.btn{font:inherit;cursor:pointer;background:var(--primary);color:#fff;border:1.5px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--primary-dark)}.btn:disabled{color:#9aa5b5;cursor:not-allowed;background:#e4e8ee}.btn.outline{background:var(--surface);color:var(--primary);border-color:var(--primary)}.btn.outline:hover{background:var(--accent-soft)}.btn.ghost{color:var(--primary);background:0 0;padding:6px 10px}.btn.ghost:hover{background:var(--accent-soft)}.btn.danger{color:var(--danger);background:0 0;padding:6px 10px}.btn.danger:hover{background:var(--danger-soft)}.btn.light{color:#fff;background:#ffffff1f;padding:6px 12px;font-size:13px}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:13px;font-weight:600}.field input,.field select,.field textarea{font:inherit;color:var(--text);border:1.5px solid var(--border);background:var(--surface);border-radius:12px;padding:11px 14px;font-size:15px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field .error{color:var(--danger);font-size:13px}.message{border-radius:12px;padding:12px 14px;font-size:14px}.message.error{background:var(--danger-soft);color:var(--danger)}.message.info{background:var(--accent-soft);color:var(--primary)}.badge{background:var(--accent-soft);color:var(--primary);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.muted{color:var(--muted);background:#e4e8ee}.code{letter-spacing:2px;color:var(--primary);background:var(--accent-soft);border-radius:12px;padding:8px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;font-weight:700}.code.inactive{color:var(--muted);background:#e4e8ee;text-decoration:line-through}.tabs{border-bottom:1.5px solid var(--border);gap:4px;display:flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-1.5px;padding:10px 16px;font-weight:600}.tabs button.active{color:var(--primary);border-bottom-color:var(--accent)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:1.5px solid var(--border);padding:10px 12px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:12px}tr:last-child td{border-bottom:none}.bar{background:var(--accent-soft);border-radius:999px;min-width:80px;height:8px;overflow:hidden}.bar>div{background:var(--accent);border-radius:999px;height:100%}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.empty .icon{background:var(--accent-soft);border-radius:50%;place-items:center;width:64px;height:64px;font-size:28px;display:grid}.modal-backdrop{z-index:10;background:#072a5c66;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:24px;flex-direction:column;gap:16px;width:min(560px,100%);max-height:90vh;padding:28px;display:flex;overflow:auto}.checklist{flex-direction:column;gap:8px;display:flex}.checklist label{border:1.5px solid var(--border);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;display:flex}.checklist label.checked{border-color:var(--accent);background:var(--accent-soft)}.check-line{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check-line input{flex:none;margin-top:3px}.checklist input{accent-color:var(--accent);margin-top:3px}.auth-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-hero{background:var(--primary-dark);color:#fff;flex-direction:column;justify-content:center;gap:20px;padding:56px;display:flex;position:relative;overflow:hidden}.auth-hero h1{color:#fff;font-size:34px;line-height:1.2}.auth-hero p{opacity:.85;max-width:440px;font-size:17px;line-height:1.6}.auth-hero .arc{border:48px solid var(--accent);border-radius:50%;width:320px;height:320px;position:absolute;top:-120px;right:-120px}.auth-form{place-items:center;padding:40px;display:grid}.auth-form .card{gap:16px;width:min(420px,100%);padding:32px}.auth-form .card img{width:140px}@media (width<=900px){.layout{grid-template-columns:1fr}.sidebar{height:auto;position:static}.main{padding:24px 16px}.auth-page{grid-template-columns:1fr}.auth-hero{display:none}}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:end;gap:12px 16px;display:grid}.form-grid.contact{border-top:1px solid var(--border);padding-top:12px}.steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;display:flex}.steps a{color:var(--accent);font-weight:600}.table-scroll{overflow-x:auto}.message ul{margin:6px 0 0;padding-left:18px}.nav .section{text-transform:uppercase;letter-spacing:.6px;opacity:.55;padding:12px 12px 4px;font-size:11px}.inline-input{border:1.5px solid var(--border);width:72px;font:inherit;border-radius:8px;padding:6px 8px}.inline-select{border:1.5px solid var(--border);font:inherit;background:#fff;border-radius:8px;padding:6px 8px}.document{gap:16px;max-width:800px;font-size:15px;line-height:1.6}.doc-head{border-bottom:2px solid var(--primary);justify-content:space-between;align-items:flex-start;padding-bottom:12px;display:flex}.doc-title{text-align:center;letter-spacing:1px;margin:12px 0;font-size:22px}.doc-name{text-align:center;font-size:20px;font-weight:700}.doc-sign{text-align:right;align-self:flex-end;margin-top:32px}@media print{.sidebar,.no-print{display:none!important}.layout{display:block}.main{max-width:none;padding:0}body{background:#fff}.card{box-shadow:none;padding:0}}.week{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;display:grid;overflow-x:auto}.week-day{flex-direction:column;gap:8px;display:flex}.week-day h3{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-size:13px}.slot{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:14px;display:flex}.slot a{color:var(--primary);font-weight:600}.segmented{border:1.5px solid var(--border);border-radius:10px;display:inline-flex;overflow:hidden}.segmented button{font:inherit;cursor:pointer;color:var(--muted);background:#fff;border:none;padding:6px 12px;font-size:13px}.segmented button+button{border-left:1.5px solid var(--border)}.segmented button.on.present{background:var(--success-soft);color:var(--success);font-weight:600}.segmented button.on.absent{background:var(--danger-soft);color:var(--danger);font-weight:600}.segmented button.on.late{background:var(--warning-soft);color:var(--warning);font-weight:600}tr.flagged td{background:#fffaf3}table.dense th,table.dense td{padding:6px 8px;font-size:13px}table.bordered,table.bordered th,table.bordered td{border:1px solid var(--border)}td.low{color:var(--danger);font-weight:600}.report-summary{border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px;display:grid}.report-summary .big{color:var(--primary);font-size:22px;font-weight:800}.council{flex-direction:column;gap:6px;font-size:14px;display:flex}.doc-sign-row{margin-top:28px;padding-bottom:40px}@media print{.report-card{break-after:page;font-size:12px}.report-card:last-child{break-after:auto}}p.low{color:var(--danger);font-weight:600}.announcement{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.thread{flex-direction:column;gap:10px;max-height:420px;display:flex;overflow-y:auto}.bubble{border-radius:12px;flex-direction:column;gap:4px;max-width:80%;padding:10px 12px;display:flex}.bubble.school{background:var(--accent-soft);align-self:flex-start}.bubble.family{background:#eef1f6;align-self:flex-end}.distribution{flex-direction:column;gap:4px;display:flex}.dist-row{grid-template-columns:64px 1fr 28px;align-items:center;gap:8px;display:grid}.dist-bar{background:var(--accent);border-radius:999px;min-width:2px;height:10px}.dist-bar.low{background:var(--danger)}.unit{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:10px;display:flex}td.unit-cell.validated{color:var(--success);font-weight:600}td.unit-cell.compensated{color:var(--warning);font-weight:600}td.unit-cell.failed{color:var(--danger);font-weight:600}tr.unit-row td{background:var(--accent-soft)}.layout{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--primary-dark);color:#fff;z-index:30;flex-direction:column;gap:14px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar .logo{background:#fff;border-radius:12px;padding:8px 12px;display:inline-flex}.sidebar .logo img{width:112px;display:block}.school-name{opacity:.75;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.nav{flex-direction:column;gap:10px;display:flex}.nav-group{flex-direction:column;gap:2px;display:flex}.nav .section{text-transform:uppercase;letter-spacing:.8px;opacity:.5;padding:6px 12px 2px;font-size:10.5px;font-weight:600}.nav a{opacity:.85;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav a span:first-of-type{flex:1}.nav a:hover{opacity:1;background:#ffffff14}.nav a.active{background:var(--accent);opacity:1;color:#fff}.nav-badge{color:#1a1a1a;text-align:center;background:#f5a524;border-radius:999px;min-width:20px;padding:1px 7px;font-size:11px;font-weight:700}.nav a.active .nav-badge{color:var(--primary);background:#fff}.workspace{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#f3f6faeb;align-items:center;gap:12px;padding:12px 32px;display:flex;position:sticky;top:0}.main{flex-direction:column;gap:22px;width:100%;max-width:1240px;padding:28px 32px 48px;display:flex}.icon-btn{width:36px;height:36px;color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--accent-soft)}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:#ffffff1a}.only-mobile{display:none}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.search{flex:1;max-width:520px;position:relative}.search input{border:1.5px solid var(--border);width:100%;font:inherit;background:#fff;border-radius:12px;padding:10px 14px 10px 40px;font-size:14px}.search input:focus{border-color:var(--accent);outline:none}.search-icon{color:var(--muted);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-results{background:#fff;border-radius:14px;flex-direction:column;gap:2px;max-height:70vh;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #0b3d8229}.search-results .section{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:8px 10px 4px;font-size:11px}.search-results button{text-align:left;cursor:pointer;font:inherit;color:var(--text);background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.search-results button:hover{background:var(--accent-soft)}.year-chip{background:var(--accent-soft);color:var(--primary);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.year-chip.select{padding-right:10px;position:relative}.year-chip select{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding-right:2px}.user-menu{margin-left:auto;position:relative}.user-button{cursor:pointer;font:inherit;color:var(--text);background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;padding:4px 6px;display:flex}.user-button:hover{background:var(--accent-soft)}.user-text{flex-direction:column;align-items:flex-start;font-size:13px;line-height:1.2;display:flex}.avatar{background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.menu{background:#fff;border-radius:12px;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #0b3d8229}.menu button{cursor:pointer;font:inherit;text-align:left;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;display:flex}.menu button:hover{background:var(--accent-soft)}.menu-info{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 12px}.toasts{z-index:100;flex-direction:column;gap:8px;max-width:min(420px,100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border-left:4px solid var(--accent);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 12px 12px 14px;font-size:14px;animation:.18s ease-out toast-in;display:flex;box-shadow:0 10px 30px #0b3d822e}.toast span{flex:1}.toast.success{border-left-color:var(--success);color:var(--text)}.toast.success svg:first-child{color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.error svg:first-child{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal.dialog{gap:14px;width:min(460px,100%)}.btn.btn-danger{background:var(--danger)}.btn.btn-danger:hover{background:#b83636}.btn.small{padding:6px 12px;font-size:13px}.home{flex-direction:column;gap:20px;display:flex}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.home-head h1{font-size:28px}.quick-actions{flex-wrap:wrap;gap:8px;display:flex}.quick{box-shadow:var(--shadow);color:var(--primary);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.quick:hover{background:var(--accent-soft)}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.kpi{border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);background:#fff;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex}a.kpi:hover{box-shadow:0 8px 24px #0b3d821a}.kpi>span:last-child{flex-direction:column;display:flex}.kpi-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--primary);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.kpi-value{color:var(--primary);font-size:24px;font-weight:800;line-height:1.1}.kpi-value.warning{color:var(--warning)}.kpi-value.danger{color:var(--danger)}.home-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start;gap:16px;display:grid}.panel-title{align-items:center;gap:8px;font-size:17px;display:flex}.panel-title svg{color:var(--accent)}.link-accent{color:var(--accent);align-items:center;gap:4px;font-weight:600;text-decoration:none;display:inline-flex}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;font-size:14px;display:flex}.list li:last-child{border-bottom:none}.list .grow{flex:1;min-width:0}.list .time{color:var(--primary);font-variant-numeric:tabular-nums;min-width:46px;font-weight:700}.list .arrow{color:var(--accent);display:inline-flex}.pill{background:var(--accent-soft);color:var(--primary);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.success{background:var(--success-soft);color:var(--success)}.pill.warning{background:var(--warning-soft);color:var(--warning)}.inline-icon{vertical-align:-3px}.inline-icon.success{color:var(--success)}.figures{grid-template-columns:1fr 1fr;gap:12px;margin:0;display:grid}.figures dt{color:var(--muted);font-size:12px}.figures dd{color:var(--primary);margin:2px 0 0;font-size:17px;font-weight:700}.card.setup{border:2px solid var(--accent)}.progress{background:var(--accent-soft);border-radius:999px;height:8px;overflow:hidden}.progress>div{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.setup-steps{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px 18px;margin:0;padding:0;list-style:none;display:grid}.setup-steps li{align-items:flex-start;gap:10px;padding:6px 0;font-size:14px;display:flex}.setup-steps li svg{color:var(--border);flex-shrink:0;margin-top:1px}.setup-steps li.done svg{color:var(--success)}.setup-steps li.done strong{opacity:.6;text-decoration:line-through}.setup-steps li.current svg{color:var(--accent)}.setup-steps a{color:var(--text);text-decoration:none}.setup-steps a:hover strong{color:var(--accent)}@media (width<=960px){.layout{grid-template-columns:1fr}.sidebar{width:280px;height:100vh;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.layout.menu-open .sidebar{transform:none;box-shadow:0 0 40px #0000004d}.only-mobile{display:inline-grid}.backdrop{display:none}.layout.menu-open .backdrop{z-index:25;background:#072a5c59;display:block;position:fixed;inset:0}.topbar{gap:8px;padding:10px 14px}.user-text{display:none}.main{padding:18px 14px 40px}.home-grid{grid-template-columns:1fr}.search input{padding-left:36px}table{font-size:13px}}@media print{.topbar,.sidebar,.backdrop{display:none!important}}.group-title{align-items:baseline;gap:6px;font-size:17px;display:flex}.class-card{gap:6px}.class-card h3{font-size:17px}.code.small-code{align-self:flex-start;padding:4px 10px;font-size:13px}.counters{flex-wrap:wrap;gap:8px;display:flex}.counter{border:1.5px solid var(--border);border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:14px;font-weight:600;display:inline-flex}.counter input[type=number]{border:1.5px solid var(--border);width:52px;font:inherit;border-radius:8px;padding:4px 6px}.counter.check{cursor:pointer}.series{flex-direction:column;gap:6px;width:100%;display:flex}.profile-head{flex-direction:column;gap:14px;display:flex}.breadcrumb-link{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.profile{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.profile .grow{flex-direction:column;flex:1;gap:6px;min-width:240px;display:flex}.avatar.large{background:var(--accent);width:64px;height:64px;font-size:22px}a.pill{text-decoration:none}.category-tree{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.category-tree fieldset{border:1.5px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;margin:0;padding:12px 14px;display:flex}.category-tree fieldset.on{border-color:var(--accent);background:var(--accent-soft)}.category-tree legend{padding:0 4px}.category-tree input{accent-color:var(--accent)}.category-items{flex-direction:column;gap:6px;padding-left:4px;display:flex}.class-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px;display:grid}.class-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;font:inherit;color:inherit;cursor:pointer;flex-direction:column;gap:2px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.class-kpi:hover{border-color:var(--accent);box-shadow:0 2px 10px #0000000d}.class-kpi strong{font-size:22px;line-height:1.2}.class-kpi strong em{opacity:.6;margin-left:2px;font-size:13px;font-style:normal;font-weight:500}.class-kpi strong.low{color:var(--danger)}.class-kpi span{font-size:13px;font-weight:600}.class-kpi small{opacity:.7;font-size:12px}.class-kpi small.warn{color:var(--warning);opacity:1}.chips{flex-wrap:wrap;gap:8px;margin:8px 0 12px;display:flex}.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.chip.on{border-color:var(--accent);background:var(--accent-soft)}.competency-grid th{vertical-align:bottom;white-space:normal;min-width:110px;max-width:160px}.competency-grid th:first-child{min-width:180px}.competency-label{text-transform:none;letter-spacing:0;font-size:12px;line-height:1.3;display:block}.competency-actions{gap:8px;margin-top:4px;display:flex}.competency-actions button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.competency-actions button.danger{color:var(--danger);font-size:14px;line-height:1}.competency-grid td.edited{background:var(--accent-soft)}.level-cell{border:1.5px solid var(--border);background:var(--surface);width:52px;height:32px;font:inherit;cursor:pointer;color:var(--muted);border-radius:8px;font-size:12px;font-weight:700}.level-cell:disabled{cursor:default}.level-cell.acquired{background:var(--success-soft);border-color:var(--success);color:var(--success)}.level-cell.in_progress{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.level-cell.not_acquired{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}form.row .grow{flex:1;min-width:220px}.booklet{margin-top:12px}.booklet h3{margin:0 0 6px}.booklet .booklet-domain td{background:var(--bg)}.booklet td.center{text-align:center;width:80px}.homework-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.homework-list li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.lessons{flex-direction:column;display:flex}.lesson{border-top:1px solid var(--border);gap:16px;padding:14px 0;display:flex}.lesson:first-child{border-top:0}.lesson-date{flex-direction:column;align-items:center;min-width:56px;padding-top:2px;display:flex}.lesson-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lesson-body p{margin:0}.lesson .homework{background:var(--warning-soft);border-radius:var(--radius-sm);padding:8px 10px}.week-day{border-top:1px solid var(--border);padding:10px 0}.week-day:first-of-type{border-top:0}.week-day h3{text-transform:capitalize;margin:0 0 6px;font-size:15px}.week-entry{padding:6px 0}.week-entry p{margin:4px 0 0}.steps{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.welcome-card{border-color:var(--accent);background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.welcome-card .grow{flex:1;min-width:220px}.welcome-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}@media (width<=860px){.welcome-grid{grid-template-columns:1fr}}
