.planning-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.planning-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600}.planning-form-grid .wide{grid-column:1/-1}.weekday-picker{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.weekday-picker label{display:flex;align-items:center;gap:5px;padding:7px 10px;border-radius:10px;background:var(--bg)}.weekday-picker input{width:auto}.detail-header,.planning-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.planning-toolbar>input{max-width:180px}.view-switch{display:flex;gap:8px;flex-wrap:wrap}.view-switch button.selected{background:var(--gold);color:var(--dark)}.planning-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.planning-filters-simple{grid-template-columns:minmax(220px,2fr) repeat(5,minmax(140px,1fr))}.planning-admin-tools,.planning-exports{margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:17px;background:#fff}.planning-admin-tools>summary,.planning-exports>summary{color:var(--violet-800);cursor:pointer;font-weight:800}.planning-admin-tools[open]>summary,.planning-exports[open]>summary{margin-bottom:16px}.planning-exports .actions{margin-top:10px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));grid-gap:10px;gap:10px;overflow-x:auto;margin-top:18px}.day-column,.resource-column{min-width:190px;padding:10px;border-radius:14px;background:var(--bg)}.day-column h3{text-transform:capitalize}.event-card{padding:10px;margin-bottom:8px;border:1px solid var(--line);border-left:5px solid;border-radius:12px;background:#fff;cursor:pointer}.event-card.selected-card{box-shadow:0 0 0 2px var(--gold)}.event-card:focus-visible{outline:3px solid rgba(94,45,124,.28);outline-offset:2px}.event-card p{margin:4px 0;font-size:12px}.attendance-state{margin-top:9px;padding-top:8px;display:flex;justify-content:space-between;gap:7px;border-top:1px solid var(--line);color:#9a651f;font-size:10px;font-weight:850}.attendance-state.is-complete{color:#26724d}.attendance-state strong{font-size:10px}.attendance-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(28,15,34,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.attendance-sheet{position:relative;width:min(700px,calc(100vw - 40px));max-height:calc(100dvh - 40px);display:flex;flex-direction:column;overflow:hidden;border-radius:26px 26px 18px 18px;background:#fff;box-shadow:0 30px 90px rgba(31,16,38,.35)}.attendance-sheet>header{padding:20px 20px 16px;display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.attendance-sheet header small{color:#9a7433;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.attendance-sheet h2{margin:4px 0;color:var(--violet-950);font-family:Georgia,serif;font-size:26px}.attendance-sheet header p{margin:0;color:var(--muted);font-size:13px;text-transform:capitalize}.attendance-close{width:42px;height:42px;flex:0 0 42px;padding:0;border-radius:50%;color:var(--violet-700);background:#f1e9f4;font-size:25px}.attendance-body{flex:1 1 auto;min-height:0;padding:17px 18px 120px;overflow-y:auto}.attendance-summary{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:12px;gap:12px;margin-bottom:15px}.attendance-summary strong{font-family:Georgia,serif;font-size:20px}.attendance-summary span{color:var(--muted);font-size:12px;font-weight:750}.attendance-list{display:grid;grid-gap:9px;gap:9px}.attendance-student{padding:13px;border:1px solid var(--line);border-radius:17px;background:#fff}.attendance-student>strong{display:block;margin-bottom:10px;font-size:15px}.attendance-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:7px;gap:7px}.attendance-choices button{min-height:46px;padding:8px;border:1px solid var(--line);color:#65596a;background:#f8f6f9}.attendance-choices button.is-selected{color:#fff;border-color:transparent;background:#2f8059;box-shadow:0 7px 16px rgba(38,111,75,.2)}.attendance-choices button.is-selected.is-absent{background:#ba493f;box-shadow:0 7px 16px rgba(165,55,48,.2)}.attendance-choices button.is-selected.is-retard{background:#b97818;box-shadow:0 7px 16px rgba(168,105,18,.2)}.attendance-choices button.is-selected.is-excuse{background:#a8433a;box-shadow:0 7px 16px rgba(150,52,45,.2)}.attendance-choices button.is-selected.is-blesse{background:#6f4a93;box-shadow:0 7px 16px rgba(95,60,130,.2)}.attendance-empty,.attendance-error,.attendance-success{padding:18px;border-radius:15px;color:var(--muted);background:#f8f5f9;text-align:center}.attendance-error{color:#9a3440;background:#fff0f2}.attendance-success{color:#236944;background:#eaf7ef;font-weight:800}.attendance-sheet>footer{position:absolute;inset:auto 0 0;padding:13px 18px max(13px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);background:hsla(0,0%,100%,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.attendance-sheet>footer div{color:var(--muted);font-size:12px;font-weight:750}.attendance-sheet>footer button{min-height:50px;padding-inline:24px}.attendance-course-picker{max-width:520px}.attendance-course-picker .attendance-body{padding-bottom:18px}.attendance-course-list{display:grid;grid-gap:9px;gap:9px}.attendance-course-list>button{width:100%;min-height:68px;padding:11px 13px;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:16px;color:var(--text);background:#fff;text-align:left}.attendance-course-list>button:hover{border-color:#d9c5e2;background:var(--violet-50)}.attendance-course-list>button>strong{color:var(--violet-700);font-size:17px}.attendance-course-list>button>span{display:grid;grid-gap:3px;gap:3px;min-width:0}.attendance-course-list b{overflow:hidden;color:var(--violet-950);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.attendance-course-list small{color:var(--muted);font-size:11px}.attendance-course-list i{color:var(--violet-500);font-size:24px;font-style:normal}.event-head{display:flex;justify-content:space-between;gap:8px}.event-head span{display:block;font-size:11px;color:var(--muted)}.event-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.conflict{color:#b3261e!important;font-size:17px!important}.private-badge{display:inline-block;margin-top:5px;padding:3px 6px;border-radius:6px;background:#eee;font-size:10px}.empty{color:var(--muted);font-size:12px;min-height:50px;border:1px dashed var(--line);padding:10px;border-radius:9px}.day-view{max-width:850px;margin-top:18px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));grid-gap:7px;gap:7px;margin-top:18px;overflow-x:auto}.month-day{min-height:135px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}.month-item{display:block;width:100%;margin-top:5px;padding:5px;border-left:4px solid;border-radius:6px;background:var(--bg);color:var(--text);font-size:11px;text-align:left}.month-item span{margin-right:4px;font-weight:700}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px;margin-top:18px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin:14px 0}.detail-grid div{padding:12px;border-radius:12px;background:var(--bg)}.detail-grid p{margin-bottom:0}.planning-conflict-box{margin:12px 0;padding:12px;border-radius:12px;background:#fff1f1;color:#9c2525;font-weight:700}.table-scroll{width:100%;overflow-x:auto;margin-top:15px}@media (max-width:1200px){.planning-filters{grid-template-columns:repeat(2,1fr)}.planning-toolbar{flex-direction:column;align-items:stretch}}@media (max-width:700px){.planning-filters{grid-template-columns:1fr}.detail-header{align-items:flex-start;flex-direction:column}.week-grid{display:block;overflow:visible}.day-column{min-width:0;margin-bottom:12px}.attendance-overlay{padding:0}.attendance-sheet{width:100%;max-height:100dvh;border-radius:22px 22px 0 0}.attendance-sheet>header{padding:17px 16px 14px}.attendance-sheet h2{font-size:23px}.attendance-body{padding:14px 12px 125px}.attendance-summary{grid-template-columns:1fr auto}.attendance-summary button{grid-column:1/-1;min-height:48px}.attendance-student{padding:12px}.attendance-choices{grid-template-columns:1fr 1fr;gap:6px}.attendance-choices button{min-height:48px;padding:7px 4px;font-size:12px}.attendance-sheet>footer{display:grid;grid-template-columns:1fr}.attendance-sheet>footer div{text-align:center}.attendance-sheet>footer button{width:100%;min-height:54px;font-size:16px}}@media print{.actions,.event-actions,.planning-filters,.planning-toolbar,.weekday-picker,button,input,select,textarea{display:none!important}.week-grid{grid-template-columns:repeat(7,1fr)}.event-card{page-break-inside:avoid;break-inside:avoid}}.vacation-settings{border-left:5px solid #9b6baa}.vacation-settings-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.vacation-settings-head h3{margin:0 0 4px}.vacation-settings-head p{margin:0;color:var(--muted)}.vacation-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:9px;gap:9px}.vacation-settings-grid label{display:flex;align-items:center;gap:8px;padding:11px;border-radius:11px;background:var(--bg);font-weight:600}.vacation-settings-grid input{width:auto}.vacation-summary{margin-top:12px;padding:11px;border-radius:11px;background:#f4edf6}.event-card.official-card{border-style:dashed;background:#f8f3fa}.event-card.suspended-card{border-left-color:#8f8f8f!important;background:#f1f1f1;opacity:.88}.event-card.suspended-card strong{text-decoration:line-through}.official-badge,.suspension-badge{display:inline-block;margin-top:7px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.suspension-badge{background:#dedede;color:#444}.official-badge{background:#eadbef;color:#6f3c80}.planning-official-box,.planning-suspension-box{margin:12px 0;padding:12px;border-radius:12px;font-weight:700}.planning-suspension-box{background:#ededed;color:#444}.planning-official-box{background:#f4edf6;color:#6f3c80}@media (max-width:700px){.vacation-settings-head{flex-direction:column}}@media print{.vacation-settings{display:none!important}}.planning-page{--planning-gradient:linear-gradient(125deg,#341544,#5e2d7c 58%,#8b568f)}.planning-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:18px;padding:30px 36px;border-radius:28px;background:var(--planning-gradient);color:#fff;box-shadow:0 18px 40px rgba(52,21,68,.18)}.planning-hero:after{content:"";position:absolute;right:-72px;top:-112px;width:330px;height:330px;border:1px solid hsla(0,0%,100%,.1);border-radius:50%;box-shadow:0 0 0 52px hsla(0,0%,100%,.035),0 0 0 104px hsla(0,0%,100%,.025)}.planning-hero>div{position:relative;z-index:1}.planning-eyebrow{display:block;margin-bottom:8px;color:#e4c985;font-size:11px;font-weight:850;letter-spacing:.18em;text-transform:uppercase}.planning-hero h2{margin:0 0 10px;font-family:Georgia,serif;font-size:clamp(29px,4vw,47px)}.planning-hero p{max-width:680px;margin:0;color:hsla(0,0%,100%,.78);line-height:1.55}.planning-hero-date{min-width:190px;padding:18px 22px;border:1px solid hsla(0,0%,100%,.22);border-radius:20px;background:hsla(0,0%,100%,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center}.planning-hero-date span,.planning-hero-date strong{display:block;text-transform:capitalize}.planning-hero-date strong{font-family:Georgia,serif;font-size:22px}.planning-hero-date span{margin-top:5px;color:hsla(0,0%,100%,.7);font-size:12px}.planning-metrics{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.planning-metrics .card{position:relative;min-height:126px;margin:0;padding:18px;border-radius:20px;background:linear-gradient(145deg,#fff,#fbf8fc)}.planning-metrics .card:before{content:"";display:block;width:44px;height:4px;margin-bottom:13px;border-radius:99px;background:linear-gradient(90deg,var(--violet-700),var(--gold-300))}.planning-metrics .card h3{margin:0;color:var(--muted);font-size:11px;letter-spacing:.07em;text-transform:uppercase}.planning-metrics .metric{margin-top:8px;font-size:31px}.planning-page .panel{border-radius:24px}.planning-page .planning-calendar-panel{padding:22px}.planning-page .planning-settings{background:linear-gradient(145deg,#fff,#fcf9fd);border-left:0}.planning-page .planning-settings:before{content:"";display:block;width:54px;height:4px;margin-bottom:15px;border-radius:99px;background:linear-gradient(90deg,var(--violet-700),var(--gold-300))}.planning-page .planning-toolbar{padding:15px;border:1px solid var(--line);border-radius:18px;background:#fbf9fc}.planning-page .view-switch{padding:4px;border-radius:14px;background:#eee7f1}.planning-page .view-switch button{box-shadow:none!important;background:transparent;color:var(--violet-700)}.planning-page .view-switch button.selected{background:linear-gradient(135deg,var(--violet-800),var(--violet-700));color:#fff}.planning-page .planning-filters{padding:14px;border-radius:18px;background:#fbf9fc}.planning-page .day-column,.planning-page .resource-column{padding:13px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fbf9fc,#f7f3f9)}.planning-page .day-column h3,.planning-page .resource-column h3{margin:0 0 12px;color:var(--violet-800);font-family:Georgia,serif;font-size:18px}.planning-page .event-card{padding:12px;border-radius:14px;box-shadow:0 5px 15px rgba(47,23,60,.05);transition:transform .15s ease,box-shadow .15s ease}.planning-page .event-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(47,23,60,.11)}.planning-page .month-day{border-radius:15px;background:linear-gradient(145deg,#fff,#fbf9fc)}.planning-page .month-item{border-radius:9px}.planning-page .empty{border-radius:12px;background:hsla(0,0%,100%,.55)}@media(max-width:1100px){.planning-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.planning-hero{align-items:flex-start;flex-direction:column;padding:24px}.planning-hero-date{width:100%;text-align:left}.planning-metrics{grid-template-columns:1fr 1fr}.planning-page .planning-calendar-panel{padding:14px}}@media(max-width:460px){.planning-metrics{grid-template-columns:1fr}.planning-hero h2{font-size:32px}}