/* École des Riches V8 — interface scolaire unifiée inspirée des parcours des démonstrations fournies */
:root{
  --pn-accent:#0b8f70;--pn-accent-2:#086f59;--pn-side:#3d4140;--pn-side-text:#f4f7f6;
  --pn-bg:#f3f6f5;--pn-card:#ffffff;--pn-text:#24312d;--pn-muted:#6f7e79;--pn-line:#d6dfdb;
  --pn-input:#ffffff;--pn-soft:#e9f6f1;--pn-danger:#d9284e;--pn-warning:#db8a1d;--pn-info:#347cbb;
  --pn-radius:6px;--pn-shadow:0 2px 10px rgba(19,52,43,.10);--pn-font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --pn-scale:1;--pn-density:1;
}
*{box-sizing:border-box}html{font-size:calc(16px * var(--pn-scale))}body{margin:0;background:var(--pn-bg)!important;color:var(--pn-text)!important;font-family:var(--pn-font)!important}
body.pn-lock{overflow:hidden}.portal{display:block!important;grid-template-columns:none!important;min-height:100vh!important;background:var(--pn-bg)!important}.portal-main{min-width:0!important;background:var(--pn-bg)!important}.portal-sidebar,.portal-topbar,.mobile-bottom-nav,.mobile-backdrop,.v4-sidebar-nav,.v4-sidebar-label{display:none!important}.view-content{max-width:none!important;padding:18px 22px 42px!important;background:var(--pn-bg)!important;color:var(--pn-text)!important}
button,input,select,textarea{font:inherit}button{color:inherit}a{color:var(--pn-accent)}

/* shell */
.pn-shell-desktop{position:sticky;top:0;z-index:600;background:var(--pn-card);border-bottom:1px solid var(--pn-line);box-shadow:0 1px 5px rgba(0,0,0,.08)}
.pn-identity{height:50px;display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(280px,1fr);gap:18px;align-items:center;padding:0 18px;background:var(--pn-card)}
.pn-user{display:flex;align-items:center;gap:9px;min-width:0}.pn-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--pn-accent) 18%,#f4c85f);border:1px solid color-mix(in srgb,var(--pn-accent) 28%,var(--pn-line));font-weight:800;color:var(--pn-text);flex:none}.pn-user strong,.pn-user small{display:block}.pn-user strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pn-user small{font-size:9px;color:var(--pn-muted);margin-top:2px}.pn-school{text-align:center}.pn-school strong{display:block;font-size:13px;letter-spacing:.02em}.pn-school small{display:block;font-size:9px;color:var(--pn-muted);margin-top:2px}.pn-actions{justify-self:end;display:flex;gap:6px}.pn-icon-button{width:31px;height:31px;border:1px solid transparent;background:transparent;border-radius:var(--pn-radius);display:grid;place-items:center;cursor:pointer;position:relative}.pn-icon-button:hover{background:var(--pn-soft);border-color:var(--pn-line)}.pn-icon-button img{width:17px;height:17px;opacity:.78}.pn-count{position:absolute;right:-3px;top:-4px;min-width:16px;height:16px;border-radius:99px;background:var(--pn-danger);color:#fff;font-size:8px;display:grid;place-items:center;padding:0 4px;font-weight:800}
.pn-nav{height:38px;background:var(--pn-side);display:flex;align-items:stretch;padding:0 10px;gap:1px;overflow:visible}.pn-nav-group{position:relative}.pn-nav-trigger{height:38px;border:0;background:transparent;color:var(--pn-side-text);padding:0 11px;font-size:10.5px;font-weight:700;cursor:pointer;white-space:nowrap}.pn-nav-trigger:after{content:"▾";font-size:8px;margin-left:6px;opacity:.8}.pn-nav-trigger:hover,.pn-nav-group.open>.pn-nav-trigger{background:color-mix(in srgb,var(--pn-side) 78%,#fff)}.pn-nav-menu{display:none;position:absolute;top:38px;left:0;width:280px;background:var(--pn-card);border:1px solid var(--pn-line);box-shadow:0 12px 32px rgba(0,0,0,.24);padding:5px 0;z-index:900}.pn-nav-group.open>.pn-nav-menu{display:block}.pn-nav-menu a,.pn-nav-menu button{border:0;background:transparent;width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;color:var(--pn-text);font-size:11px;text-align:left;cursor:pointer}.pn-nav-menu a:hover,.pn-nav-menu button:hover{background:var(--pn-soft);color:var(--pn-accent)}.pn-nav-menu img{width:16px;height:16px;opacity:.75}
.pn-mobile-header,.pn-drawer,.pn-drawer-backdrop{display:none}

/* page/common */
.pn-page{max-width:1560px;margin:0 auto}.pn-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:2px 0 14px}.pn-page-head h1{font-size:18px;margin:0;color:var(--pn-text)}.pn-page-head p{font-size:11px;color:var(--pn-muted);margin:3px 0 0}.pn-page-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.pn-page-actions img{width:14px;height:14px;vertical-align:-2px;margin-right:5px}
.pn-card{background:var(--pn-card);border:1px solid var(--pn-line);border-radius:var(--pn-radius);box-shadow:var(--pn-shadow);overflow:hidden;color:var(--pn-text)}.pn-card-head{min-height:38px;padding:8px 11px;border-bottom:1px solid var(--pn-line);display:flex;align-items:center;justify-content:space-between;gap:10px;background:color-mix(in srgb,var(--pn-card) 94%,var(--pn-bg))}.pn-card-head h2,.pn-card-head h3{margin:0;font-size:11px;color:var(--pn-text)}.pn-card-head .title-with-icon{display:flex;align-items:center;gap:7px}.pn-card-head img{width:15px;height:15px;opacity:.76}.pn-card-body{padding:11px}
.pn-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:var(--pn-card);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:8px 9px;margin-bottom:10px;box-shadow:var(--pn-shadow)}.pn-toolbar .grow{flex:1}.pn-toolbar input,.pn-toolbar select{min-height:32px;border:1px solid var(--pn-line);border-radius:calc(var(--pn-radius) - 2px);background:var(--pn-input);color:var(--pn-text);padding:0 8px;font-size:11px;outline:none}.pn-toolbar input:focus,.pn-toolbar select:focus,.pn-field input:focus,.pn-field select:focus,.pn-field textarea:focus{border-color:var(--pn-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--pn-accent) 18%,transparent)}
.pn-btn{min-height:32px;border-radius:calc(var(--pn-radius) - 1px);padding:0 11px;border:1px solid var(--pn-line);background:var(--pn-card);color:var(--pn-text);font-size:10.5px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.pn-btn:hover{background:var(--pn-soft)}.pn-btn.primary{background:var(--pn-accent);border-color:var(--pn-accent);color:#fff}.pn-btn.primary:hover{background:var(--pn-accent-2)}.pn-btn.danger{color:var(--pn-danger);border-color:color-mix(in srgb,var(--pn-danger) 48%,var(--pn-line));background:var(--pn-card)}.pn-btn.small{min-height:27px;padding:0 8px;font-size:9.5px}.pn-btn:disabled{opacity:.45;cursor:not-allowed}.pn-link{border:0;background:none;color:var(--pn-accent);cursor:pointer;font-size:10px;padding:2px 4px}
.pn-fab{position:fixed;right:25px;bottom:24px;width:48px;height:48px;border-radius:50%;border:0;background:var(--pn-accent);color:#fff;font-size:25px;box-shadow:0 6px 20px rgba(0,0,0,.25);cursor:pointer;z-index:500;display:grid;place-items:center}.pn-fab img{width:20px;height:20px;filter:brightness(0) invert(1)}
.pn-empty{min-height:150px;display:grid;place-items:center;text-align:center;padding:22px;color:var(--pn-muted)}.pn-empty img{width:105px;height:75px;object-fit:contain;opacity:.84;margin-bottom:8px}.pn-empty p{font-size:10.5px;margin:0}.pn-empty strong{display:block;color:var(--pn-text);margin-bottom:4px;font-size:11px}
.pn-list{border:1px solid var(--pn-line);background:var(--pn-card);border-radius:var(--pn-radius);overflow:hidden}.pn-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:50px;padding:8px 10px;border-bottom:1px solid var(--pn-line);font-size:10.5px}.pn-row:last-child{border-bottom:0}.pn-row-icon{width:28px;height:28px;border-radius:6px;background:var(--pn-soft);display:grid;place-items:center}.pn-row-icon img{width:15px;height:15px;opacity:.78}.pn-row strong{display:block;font-size:11px}.pn-row small{display:block;color:var(--pn-muted);margin-top:2px;white-space:normal}.pn-row time{font-size:9px;color:var(--pn-muted);text-align:right}.pn-row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.pn-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.pn-kpi{background:var(--pn-card);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:10px;box-shadow:var(--pn-shadow)}.pn-kpi span{font-size:9px;color:var(--pn-muted)}.pn-kpi strong{display:block;font-size:20px;margin-top:3px;color:var(--pn-accent)}
.pn-tabs{display:flex;align-items:stretch;gap:0;border:1px solid var(--pn-line);border-radius:var(--pn-radius);background:var(--pn-card);overflow:auto;margin-bottom:10px}.pn-tab{min-height:36px;border:0;border-right:1px solid var(--pn-line);background:var(--pn-card);color:var(--pn-muted);padding:0 12px;font-size:10px;cursor:pointer;white-space:nowrap}.pn-tab.active{color:var(--pn-accent);background:var(--pn-soft);font-weight:800;box-shadow:inset 0 -3px var(--pn-accent)}
.pn-tag{display:inline-flex;align-items:center;min-height:21px;padding:0 7px;border-radius:999px;background:var(--pn-soft);color:var(--pn-accent-2);font-size:9px;font-weight:700}.pn-tag.red{background:color-mix(in srgb,var(--pn-danger) 12%,var(--pn-card));color:var(--pn-danger)}.pn-tag.orange{background:color-mix(in srgb,var(--pn-warning) 14%,var(--pn-card));color:color-mix(in srgb,var(--pn-warning) 80%,#5d3d00)}

/* dashboard */
.pn-dashboard{display:grid;grid-template-columns:minmax(430px,1.25fr) minmax(330px,.9fr) minmax(310px,.85fr);gap:10px;align-items:start}.pn-dashboard-col{display:grid;gap:10px}.pn-home-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--pn-line)}.pn-home-item:last-child{border-bottom:0}.pn-datebox{text-align:center;color:var(--pn-accent);font-size:8px;text-transform:uppercase}.pn-datebox b{display:block;font-size:15px;line-height:1}.pn-home-item strong{font-size:10.5px}.pn-home-item small{display:block;color:var(--pn-muted);font-size:9px;margin-top:2px}.pn-postit{width:100%;border:0;min-height:135px;padding:12px;resize:vertical;background:color-mix(in srgb,#fff6a6 78%,var(--pn-card));color:#443c1f;outline:none;font-size:11px}.pn-postit-status{font-size:8px;color:var(--pn-muted);padding:5px 9px;text-align:right;background:var(--pn-card);border-top:1px solid var(--pn-line)}
.pn-mini-timetable{display:grid;grid-template-columns:44px 1fr;min-height:285px;border:1px solid var(--pn-line);background:var(--pn-card)}.pn-time-axis{border-right:1px solid var(--pn-line);background:color-mix(in srgb,var(--pn-card) 90%,var(--pn-bg))}.pn-time-axis span{display:block;height:35px;border-bottom:1px solid var(--pn-line);font-size:8px;color:var(--pn-muted);text-align:right;padding:2px 4px}.pn-course-lane{position:relative;background-image:linear-gradient(var(--pn-line) 1px,transparent 1px);background-size:100% 17.5px}.pn-mini-course{position:absolute;left:4px;right:4px;padding:4px 6px;border-left:4px solid var(--course);background:color-mix(in srgb,var(--course) 12%,var(--pn-card));overflow:hidden;cursor:pointer}.pn-mini-course strong{font-size:9.5px;display:block}.pn-mini-course small{font-size:8px;color:var(--pn-muted)}

/* timetable */
.pn-weekbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.pn-weekbar .center{text-align:center;flex:1}.pn-weekbar strong{font-size:11px}.pn-weekbar small{display:block;font-size:8.5px;color:var(--pn-muted);margin-top:2px}.pn-week-grid{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:7px;overflow:auto;padding-bottom:4px}.pn-day-col{min-width:180px;background:var(--pn-card);border:1px solid var(--pn-line);border-radius:var(--pn-radius);overflow:hidden}.pn-day-head{padding:7px 8px;text-align:center;background:color-mix(in srgb,var(--pn-card) 90%,var(--pn-bg));border-bottom:1px solid var(--pn-line)}.pn-day-head strong{display:block;font-size:10px}.pn-day-head small{font-size:8px;color:var(--pn-muted)}.pn-day-body{padding:6px;display:grid;gap:5px;min-height:260px}.pn-course-card{border:1px solid color-mix(in srgb,var(--course) 38%,var(--pn-line));border-left:5px solid var(--course);background:color-mix(in srgb,var(--course) 9%,var(--pn-card));padding:7px;border-radius:4px;cursor:pointer;transition:.12s transform,.12s box-shadow}.pn-course-card:hover{transform:translateY(-1px);box-shadow:var(--pn-shadow)}.pn-course-card strong{display:block;font-size:10px}.pn-course-card small{display:block;font-size:8.5px;color:var(--pn-muted);margin-top:2px}.pn-lunch{border:1px dashed var(--pn-line);background:color-mix(in srgb,var(--pn-bg) 75%,var(--pn-card));color:var(--pn-muted);font-size:8.5px;text-align:center;padding:5px;border-radius:4px}

/* session */
.pn-session-hero{background:linear-gradient(125deg,color-mix(in srgb,var(--pn-accent) 90%,#000),var(--pn-accent));color:#fff;border-radius:var(--pn-radius);padding:15px 16px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:12px}.pn-session-hero h1{margin:0;font-size:18px}.pn-session-hero p{margin:4px 0 0;font-size:10px;opacity:.9}.pn-session-status{align-self:start;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:5px 9px;font-size:9px;font-weight:700}.pn-session-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pn-action-card{border:1px solid var(--pn-line);background:var(--pn-card);border-radius:var(--pn-radius);padding:13px;min-height:96px;cursor:pointer;text-align:left;box-shadow:var(--pn-shadow)}.pn-action-card:hover{border-color:color-mix(in srgb,var(--pn-accent) 50%,var(--pn-line));background:var(--pn-soft)}.pn-action-card img{width:23px;height:23px;margin-bottom:7px;opacity:.8}.pn-action-card strong{display:block;font-size:11px}.pn-action-card small{display:block;font-size:8.5px;color:var(--pn-muted);margin-top:3px}

/* attendance */
.pn-att-layout{display:grid;grid-template-columns:minmax(520px,1.35fr) minmax(280px,.65fr);gap:10px}.pn-students{background:var(--pn-card);border:1px solid var(--pn-line);border-radius:var(--pn-radius);overflow:hidden}.pn-student{display:grid;grid-template-columns:36px minmax(110px,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--pn-line);min-height:49px}.pn-student:last-child{border-bottom:0}.pn-student-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb,var(--pn-accent) 30%,#f2c864),color-mix(in srgb,var(--pn-accent) 55%,#8b6dc8));display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800}.pn-student-name{font-size:10.5px;font-weight:700}.pn-student small{display:block;color:var(--pn-muted);font-size:8px;margin-top:2px}.pn-att-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pn-att-btn{height:26px;border-radius:4px;padding:0 7px;font-size:9px;background:var(--pn-card);cursor:pointer;border:1px solid var(--pn-line)}.pn-att-btn.abs{border-color:color-mix(in srgb,var(--pn-danger) 65%,var(--pn-line));color:var(--pn-danger)}.pn-att-btn.late{border-color:color-mix(in srgb,var(--pn-warning) 70%,var(--pn-line));color:#a55e06}.pn-att-btn.present{border-color:color-mix(in srgb,var(--pn-accent) 60%,var(--pn-line));color:var(--pn-accent)}.pn-att-btn.active.abs{background:var(--pn-danger);color:#fff}.pn-att-btn.active.late{background:var(--pn-warning);color:#fff}.pn-att-btn.active.present{background:var(--pn-accent);color:#fff}.pn-att-plus{width:26px;padding:0;font-size:16px}.pn-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.pn-summary>div{border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:8px;background:var(--pn-card);text-align:center}.pn-summary strong{display:block;font-size:17px}.pn-summary span{font-size:8px;color:var(--pn-muted)}

/* cdt */
.pn-cdt-hero{background:linear-gradient(110deg,var(--pn-accent-2),var(--pn-accent));color:#fff;border-radius:var(--pn-radius) var(--pn-radius) 0 0;padding:12px 14px}.pn-cdt-hero h2{margin:0;font-size:14px}.pn-cdt-hero p{margin:3px 0 0;font-size:9px;opacity:.9}.pn-cdt-content{background:var(--pn-card);border:1px solid var(--pn-line);border-top:0;padding:12px;min-height:180px}.pn-cdt-content textarea{width:100%;min-height:115px;padding:9px;border:1px solid var(--pn-line);border-radius:var(--pn-radius);background:var(--pn-input);color:var(--pn-text);resize:vertical;font-size:11px}

/* tables */
.pn-table-wrap{overflow:auto;border:1px solid var(--pn-line);border-radius:var(--pn-radius);background:var(--pn-card)}.pn-table{border-collapse:collapse;width:100%;min-width:720px;font-size:10px}.pn-table th{position:sticky;top:0;background:color-mix(in srgb,var(--pn-card) 85%,var(--pn-bg));color:var(--pn-muted);font-size:9px;text-align:left;padding:7px;border-bottom:1px solid var(--pn-line);z-index:1}.pn-table td{padding:7px;border-bottom:1px solid var(--pn-line);vertical-align:middle}.pn-table tr:last-child td{border-bottom:0}.pn-table tbody tr:hover{background:var(--pn-soft)}.pn-grade-input{width:65px;min-height:28px;border:1px solid var(--pn-line);border-radius:4px;background:var(--pn-input);color:var(--pn-text);padding:0 6px}.pn-status-select{min-height:28px;border:1px solid var(--pn-line);border-radius:4px;background:var(--pn-input);color:var(--pn-text);font-size:9px;padding:0 4px}

/* assessments */
.pn-assessment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px}.pn-assessment{background:var(--pn-card);border:1px solid var(--pn-line);border-top:4px solid var(--assessment,var(--pn-accent));border-radius:var(--pn-radius);padding:11px;box-shadow:var(--pn-shadow)}.pn-assessment h3{font-size:11px;margin:0}.pn-assessment p{font-size:9px;color:var(--pn-muted);margin:4px 0}.pn-assessment-meta{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.pn-assessment-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}

/* school life */
.pn-schoollife-type{display:inline-flex;align-items:center;gap:5px}.pn-schoollife-dot{width:8px;height:8px;border-radius:50%;background:var(--type,var(--pn-accent))}.pn-history{display:grid;gap:6px}.pn-history-item{display:grid;grid-template-columns:86px 1fr auto;gap:9px;border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:9px;background:var(--pn-card)}.pn-history-item time{font-size:9px;color:var(--pn-muted)}.pn-history-item strong{font-size:10.5px}.pn-history-item small{display:block;font-size:8.5px;color:var(--pn-muted);margin-top:2px}

/* settings */
.pn-settings-grid{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(520px,1.25fr);gap:10px}.pn-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:7px}.pn-theme{border:2px solid transparent;border-radius:var(--pn-radius);background:var(--pn-card);padding:8px;text-align:left;cursor:pointer;color:var(--pn-text)}.pn-theme.active{border-color:var(--pn-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--pn-accent) 16%,transparent)}.pn-theme-swatches{display:grid;grid-template-columns:repeat(4,1fr);height:26px;border-radius:4px;overflow:hidden;margin-bottom:6px;border:1px solid var(--pn-line)}.pn-theme strong{font-size:9px}.pn-setting-section{padding:11px;border-bottom:1px solid var(--pn-line)}.pn-setting-section:last-child{border-bottom:0}.pn-setting-section h3{font-size:11px;margin:0 0 9px}.pn-setting-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr);align-items:center;gap:10px;margin:7px 0}.pn-setting-row label{font-size:9.5px;color:var(--pn-muted)}.pn-setting-row input,.pn-setting-row select{min-height:31px;border:1px solid var(--pn-line);border-radius:4px;background:var(--pn-input);color:var(--pn-text);padding:0 7px}.pn-danger-zone{border:1px solid color-mix(in srgb,var(--pn-danger) 35%,var(--pn-line));background:color-mix(in srgb,var(--pn-danger) 5%,var(--pn-card));border-radius:var(--pn-radius);padding:10px}

/* modal */
.pn-modal{border:0!important;border-radius:var(--pn-radius)!important;padding:0!important;width:min(720px,calc(100vw - 22px));max-width:none!important;background:var(--pn-card)!important;color:var(--pn-text)!important;box-shadow:0 24px 70px rgba(0,0,0,.42)!important}.pn-modal.wide{width:min(1080px,calc(100vw - 22px))}.pn-modal::backdrop{background:rgba(20,35,31,.58)}.pn-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid var(--pn-line);background:color-mix(in srgb,var(--pn-card) 94%,var(--pn-bg))}.pn-modal-head small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--pn-muted);margin-bottom:2px}.pn-modal-head h2{font-size:14px;margin:0}.pn-modal-close{width:31px;height:31px;border:0;border-radius:50%;background:var(--pn-soft);color:var(--pn-text);cursor:pointer;font-size:17px}.pn-modal-body{padding:12px;max-height:78vh;overflow:auto;background:var(--pn-card)}.pn-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pn-field{display:grid;gap:4px}.pn-field.full{grid-column:1/-1}.pn-field label,.pn-field>span{font-size:9px;color:var(--pn-muted);font-weight:650}.pn-field input,.pn-field select,.pn-field textarea{width:100%;min-height:34px;border:1px solid var(--pn-line);border-radius:4px;background:var(--pn-input);color:var(--pn-text);padding:7px;font-size:10.5px}.pn-field textarea{min-height:88px;resize:vertical}.pn-check{display:flex;align-items:center;gap:6px;font-size:10px}.pn-form-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--pn-line)}
.pn-profile-header{display:flex;gap:12px;align-items:center;padding:12px;background:var(--pn-soft);border:1px solid var(--pn-line);border-radius:var(--pn-radius);margin-bottom:10px}.pn-profile-avatar{width:50px;height:50px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--pn-accent) 20%,#f3c957);font-size:20px;font-weight:800}.pn-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.pn-info{border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:9px}.pn-info span{display:block;font-size:8px;color:var(--pn-muted);text-transform:uppercase;letter-spacing:.05em}.pn-info strong{display:block;font-size:10.5px;margin-top:3px}

/* Restyle legacy/fallback views so themes remain global */
.section-card,.record-card,.announcement-card,.form-card,.data-card,.settings-card,.schedule-daily,.schedule-scroll,.attendance-roster,.admin-card{background:var(--pn-card)!important;color:var(--pn-text)!important;border-color:var(--pn-line)!important;box-shadow:var(--pn-shadow)!important;border-radius:var(--pn-radius)!important}.section-heading h2,.section-heading h3,.record-card h3,.form-card h3{color:var(--pn-text)!important}.section-heading p,.record-card p,.form-help,.muted{color:var(--pn-muted)!important}.data-table,.data-table td,.data-table th{border-color:var(--pn-line)!important;color:var(--pn-text)!important}.data-table thead th{background:color-mix(in srgb,var(--pn-card) 84%,var(--pn-bg))!important}.form-grid input,.form-grid select,.form-grid textarea,.stacked-form input,.stacked-form select,.stacked-form textarea,input,select,textarea{background-color:var(--pn-input);color:var(--pn-text);border-color:var(--pn-line)}button.primary,.primary{background:var(--pn-accent)!important;border-color:var(--pn-accent)!important;color:#fff!important}button.secondary,.secondary{background:var(--pn-card)!important;border-color:color-mix(in srgb,var(--pn-accent) 45%,var(--pn-line))!important;color:var(--pn-accent)!important}.edit-dialog,.session-dialog{background:var(--pn-card)!important;color:var(--pn-text)!important;border-radius:var(--pn-radius)!important}.edit-dialog::backdrop,.session-dialog::backdrop{background:rgba(20,35,31,.58)!important}.schedule-day,.schedule-time-rail,.schedule-corner,.schedule-day-head{background:var(--pn-card)!important;color:var(--pn-text)!important;border-color:var(--pn-line)!important}.schedule-lunch-block{background:color-mix(in srgb,var(--pn-bg) 82%,var(--pn-card))!important;color:var(--pn-muted)!important;border-color:var(--pn-line)!important}

.pn-toast{position:fixed;right:18px;bottom:18px;z-index:2500;background:var(--pn-accent);color:#fff;padding:9px 13px;border-radius:var(--pn-radius);font-size:10px;box-shadow:0 8px 25px rgba(0,0,0,.25)}.pn-toast.error{background:var(--pn-danger)}

@media(max-width:980px){
  .pn-shell-desktop{display:none}.pn-mobile-header{display:flex;position:sticky;top:0;z-index:650;min-height:67px;background:var(--pn-accent);color:#fff;align-items:center;padding:7px 9px;gap:9px;box-shadow:0 2px 7px rgba(0,0,0,.2)}.pn-mobile-header .pn-avatar{width:42px;height:42px;border:2px solid rgba(255,255,255,.75);color:#fff;background:rgba(255,255,255,.17)}.pn-mobile-info{min-width:0;flex:1}.pn-mobile-info strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pn-mobile-info small{font-size:8px;opacity:.9;display:block}.pn-mobile-title{font-size:10px;font-weight:800;margin-top:3px}.pn-mobile-button{width:31px;height:31px;border:0;background:transparent;color:#fff;font-size:19px;cursor:pointer}
  .pn-drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:690}.pn-drawer-backdrop.open{display:block}.pn-drawer{display:block;position:fixed;z-index:700;left:0;top:0;bottom:0;width:min(350px,90vw);background:var(--pn-side);color:var(--pn-side-text);transform:translateX(-105%);transition:transform .18s ease;overflow:auto;box-shadow:7px 0 25px rgba(0,0,0,.36)}.pn-drawer.open{transform:translateX(0)}.pn-drawer-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:9px;padding:12px;background:color-mix(in srgb,var(--pn-side) 88%,#000);border-bottom:1px solid color-mix(in srgb,var(--pn-side) 75%,#fff)}.pn-drawer-head .pn-avatar{color:#fff;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}.pn-drawer-head div{flex:1;min-width:0}.pn-drawer-head strong{font-size:10px;display:block}.pn-drawer-head small{display:block;font-size:8px;opacity:.75;margin-top:2px}.pn-drawer-close{border:0;background:transparent;color:#fff;font-size:20px;cursor:pointer}.pn-drawer-group{border-bottom:1px solid color-mix(in srgb,var(--pn-side) 74%,#fff)}.pn-drawer-group>button{width:100%;border:0;background:color-mix(in srgb,var(--pn-side) 92%,#fff);color:inherit;text-align:left;padding:9px 13px;font-size:10px;font-weight:750;cursor:pointer;display:flex;justify-content:space-between}.pn-drawer-group>button:after{content:"▾";opacity:.7}.pn-drawer-group.closed .pn-drawer-items{display:none}.pn-drawer-items a,.pn-drawer-items button{width:100%;border:0;background:transparent;color:inherit;text-decoration:none;text-align:left;padding:8px 18px;font-size:9.5px;display:flex;align-items:center;gap:8px;cursor:pointer}.pn-drawer-items a:hover,.pn-drawer-items button:hover{background:color-mix(in srgb,var(--pn-side) 78%,#fff)}.pn-drawer-items img{width:14px;height:14px;filter:brightness(0) invert(1);opacity:.86}.pn-drawer-foot{padding:13px;font-size:8px;opacity:.7}
  .view-content{padding:8px 7px 74px!important}.pn-page-head{margin:2px 1px 8px}.pn-page-head h1{font-size:14px}.pn-page-head p{display:none}.pn-page-actions .pn-btn span.hide-mobile{display:none}.pn-dashboard{grid-template-columns:1fr;gap:7px}.pn-dashboard-col{gap:7px}.pn-kpis{grid-template-columns:repeat(2,1fr)}.pn-week-grid{grid-template-columns:1fr;overflow:visible}.pn-day-col{min-width:0}.pn-day-col:not(.active-mobile){display:none}.pn-session-actions{grid-template-columns:1fr 1fr}.pn-att-layout{grid-template-columns:1fr}.pn-settings-grid{grid-template-columns:1fr}.pn-form{grid-template-columns:1fr}.pn-field.full{grid-column:auto}.pn-profile-grid{grid-template-columns:1fr}.pn-history-item{grid-template-columns:70px 1fr}.pn-history-item .pn-row-actions{grid-column:2}.pn-fab{right:14px;bottom:16px;width:44px;height:44px}.pn-modal{width:calc(100vw - 16px)!important}.pn-modal-body{max-height:75vh}.pn-table{min-width:690px}.pn-assessment-grid{grid-template-columns:1fr}.pn-toolbar{padding:6px}.pn-toolbar input,.pn-toolbar select{flex:1;min-width:120px}.pn-theme-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .pn-mobile-header{min-height:63px}.pn-mobile-header .pn-avatar{width:39px;height:39px}.pn-home-item{grid-template-columns:36px 1fr}.pn-home-item>time,.pn-home-item>.pn-btn{grid-column:2;justify-self:start}.pn-session-actions{grid-template-columns:1fr}.pn-student{grid-template-columns:32px minmax(90px,1fr)}.pn-att-actions{grid-column:2;justify-content:flex-start}.pn-summary{grid-template-columns:repeat(3,1fr)}.pn-theme-grid{grid-template-columns:1fr 1fr}.pn-setting-row{grid-template-columns:1fr}.pn-kpis{grid-template-columns:1fr 1fr}
}
