:root{font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;color:#20332b;background:#f6f7f3;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #20332b;--muted: #6c7771;--green: #35584a;--green-2: #527764;--green-soft: #e5eee8;--cream: #f6f7f3;--white: #fff;--border: #dfe4df;--blue-soft: #e7eef4;--peach-soft: #f8ebe0;--danger: #a44343;--shadow: 0 10px 30px rgba(38, 60, 50, .07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--cream)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.55rem);letter-spacing:-.045em;line-height:1.17}h2{font-size:1.08rem;letter-spacing:-.025em}h3{font-size:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:12px;z-index:1000;background:#fff;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow)}.skip-link:focus{top:12px}:focus-visible{outline:3px solid #e5a45f;outline-offset:2px}button,a,label,select,summary,[role=tab]{touch-action:manipulation}:root{color-scheme:light}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner{animation:none!important;border-top-color:var(--green)}}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:264px;padding:24px 16px 16px;display:flex;flex-direction:column;background:#29483b;color:#fff}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0 8px 24px}.brand{display:flex;align-items:center;gap:12px}.brand-symbol,.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#f2c99e;color:#35584a;font-family:serif;font-size:1.55rem;font-weight:800}.brand span:last-child{display:flex;flex-direction:column}.brand strong{font-size:1.2rem}.brand small{color:#bed0c7;margin-top:2px;font-size:.72rem}.close-menu{display:none!important;color:#fff}.demo-badge{margin:0 8px 12px;padding:8px 10px;border:1px solid rgba(255,255,255,.16);border-radius:10px;color:#dbe8e2;font-size:.76rem;text-align:center;background:#ffffff0f}.sidebar nav{flex:1;overflow-y:auto;scrollbar-width:thin}.nav-label{margin:0 12px 8px;color:#9eb6aa;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nav-section+.nav-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.13)}.nav-group+.nav-group{margin-top:12px}.nav-sublabel{margin:0 12px 4px;color:#7f9c8e;font-size:.68rem;font-weight:700}.nav-empty{margin:0 12px;color:#9eb6aa;font-size:.76rem;line-height:1.5}.sidebar nav a{min-height:44px;display:flex;align-items:center;gap:12px;padding:10px 12px;margin:2px 0;border-radius:11px;color:#dae6e0;font-size:.9rem;transition:.15s ease}.sidebar nav a:hover{background:#ffffff14;color:#fff}.sidebar nav a.active{background:#fff;color:var(--green);font-weight:700;box-shadow:0 7px 20px #0000001a}.sidebar nav svg{width:19px;height:19px}.student-select{display:block;margin:0 4px 9px}.student-select select{width:100%;height:44px;background:#ffffff1c;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:0 10px}.student-select option{color:var(--ink)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:14px 8px 2px;border-top:1px solid rgba(255,255,255,.12)}.sidebar-user>span{min-width:0;flex:1;display:flex;flex-direction:column}.sidebar-user small{color:#b6c8bf;overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.sidebar-user .icon-button{color:#dbe6e1}.sidebar-privacy{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:auto;border:0;background:transparent;color:#dbe6e1;cursor:pointer;font-size:.75rem}.sidebar-privacy:hover,.sidebar-privacy:focus-visible{color:#fff;text-decoration:underline}.sidebar-privacy svg{width:16px;height:16px}.avatar{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#dce8e1;color:var(--green);font-weight:800}.avatar.small{width:34px;height:34px}.avatar.large{width:58px;height:58px;font-size:1.25rem}.avatar.hero{width:86px;height:86px;font-size:1.8rem;background:#e7eee8}.avatar.student{background:var(--green-soft)}.mobile-header{display:none}.main-content{margin-left:264px;min-height:100vh;padding:44px clamp(24px,4vw,64px) 72px;max-width:1680px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.page-header h1{margin-bottom:9px;color:#1f382e}.page-header p:not(.eyebrow){color:var(--muted);margin:0}.eyebrow{margin-bottom:8px;color:var(--green-2);font-size:.78rem;font-weight:800;letter-spacing:.06em}.header-actions,.button-group{display:flex;gap:10px;flex-wrap:wrap}.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 17px;border:1px solid transparent;border-radius:11px;font-weight:750;font-size:.88rem;transition:transform .12s ease,box-shadow .12s ease,background .12s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.58}.button svg{width:18px;height:18px}.button.primary{color:#fff;background:var(--green);box-shadow:0 6px 15px #35584a2e}.button.primary:hover:not(:disabled){background:#294c3e}.button.secondary{color:var(--green);border-color:#bccdc4;background:#fff}.button.google-login{color:#26352e;border-color:#c8d3cd;background:#fff;box-shadow:0 5px 14px #27463914}.button.google-login:hover:not(:disabled){border-color:#9eb3a8;background:#fbfdfc}.button.google-login svg{width:20px;height:20px}.button.ghost{background:transparent;color:var(--muted)}.button.wide{width:100%}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:10px;background:transparent;color:var(--muted)}.icon-button:hover{background:#35584a14;color:var(--green)}.icon-button svg{width:19px;height:19px}.icon-button.danger:hover{background:#faeaea;color:var(--danger)}.text-link{display:inline-flex;align-items:center;gap:5px;color:var(--green-2);font-size:.82rem;font-weight:750}.text-link svg{width:15px}.card{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.card-heading{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.card-heading h2{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat-grid.compact{margin-top:20px}.stat-card{min-height:130px;display:flex;flex-direction:column;background:#f0e9d9;border-color:transparent;box-shadow:none}.stat-card.sage{background:#e4eee8}.stat-card.blue{background:#e5edf4}.stat-card.peach{background:#f7e9df}.stat-card span{color:#5b6962;font-size:.84rem;font-weight:650}.stat-card strong{margin:auto 0 2px;color:#273d34;font-size:2.15rem;line-height:1;font-variant-numeric:tabular-nums}.stat-card small{color:#728078}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:20px}.wide-card{grid-column:1 / -1}.student-quick-list{display:flex;flex-direction:column;gap:5px}.student-row{min-height:64px;display:flex;align-items:center;gap:12px;padding:7px 9px;border-radius:12px}.student-row:hover{background:#f5f8f5}.student-row>span{flex:1;display:flex;flex-direction:column}.student-row small{color:var(--muted);margin-top:3px}.student-row>svg{width:18px;color:#93a099}.next-schedule{display:flex;gap:16px;align-items:flex-start;padding:5px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.calendar-toolbar strong{font-size:1rem;color:var(--green)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekday{padding:6px 0;text-align:center;color:var(--muted);font-size:.72rem;font-weight:700}.calendar-day{min-height:62px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 3px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;transition:background .12s,border-color .12s}.calendar-day:hover{background:#35584a12}.calendar-day.outside .calendar-daynum{color:#c2ccc6}.calendar-day.today .calendar-daynum{background:var(--green);color:#fff}.calendar-day.selected{border-color:var(--green);background:var(--green-soft)}.calendar-daynum{min-width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:.8rem;font-variant-numeric:tabular-nums}.calendar-dots{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px}.calendar-dot{width:6px;height:6px;border-radius:50%}.calendar-more{color:var(--muted);font-size:.62rem;font-weight:700}.calendar-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:.74rem}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend i,.student-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.student-dot{margin-right:5px}.calendar-side{display:grid;gap:16px;align-content:start}.category-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.category-list li{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:center}.category-list input[type=color],.category-add input[type=color]{width:44px;padding:3px}.category-fixed{color:var(--muted);font-size:.72rem;font-weight:700}.category-add{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.date-block{flex:0 0 auto;width:52px;min-height:59px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:var(--green-soft);color:var(--green)}.date-block strong{font-size:1.35rem;line-height:1;font-variant-numeric:tabular-nums}.date-block span{font-size:.72rem;margin-top:4px}.next-schedule h3{margin:9px 0 4px}.next-schedule p{color:var(--muted);font-size:.82rem}.tag{display:inline-flex;align-items:center;margin-right:5px;padding:4px 8px;border-radius:99px;background:var(--green-soft);color:var(--green);font-size:.72rem;font-weight:750}.tag.neutral{background:#eff1ef;color:#647069}.tag.lesson,.tag.수업{background:var(--blue-soft);color:#496b86}.tag.counseling,.tag.상담{background:#f2e8f1;color:#805d7c}.tag.행동{background:var(--peach-soft);color:#9b663f}.tag.현행{background:#e8eef7;color:#496884}.activity-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.activity-item{display:flex;gap:10px;align-items:flex-start;min-width:0}.activity-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--green-2);box-shadow:0 0 0 5px var(--green-soft)}.activity-dot.수업{background:#6687a4;box-shadow:0 0 0 5px var(--blue-soft)}.activity-dot.상담{background:#a782a8;box-shadow:0 0 0 5px #f2e8f1}.activity-item div{min-width:0;display:flex;flex-direction:column}.activity-item small{color:var(--muted)}.activity-item strong{margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.search-field{width:min(420px,100%);height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--border);border-radius:11px;background:#fafbfa}.search-field svg{width:18px;color:var(--muted)}.search-field input{flex:1;min-width:0;border:0;outline:0;background:transparent}.result-count{color:var(--muted);font-size:.84rem}.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.student-year-toolbar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:end;gap:12px;margin-bottom:18px}.student-year-toolbar>label:first-child{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:750}.student-card{min-height:210px;padding:20px;border:1px solid var(--border);border-radius:15px;transition:.15s ease}.student-card:hover{border-color:#aac0b4;box-shadow:0 8px 24px #2b4a3d14;transform:translateY(-2px)}.student-card.managed{display:flex;flex-direction:column;padding:0;overflow:hidden}.student-card-main{flex:1;padding:20px;color:inherit;text-decoration:none}.student-management-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:#f8faf8}.delete-warning{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #edc6c6;border-radius:11px;background:#fff1f1;color:#8c2525}.delete-warning svg{flex:0 0 auto;width:20px}.delete-warning p{margin:4px 0 0;font-size:.8rem;line-height:1.5}.delete-confirm-instruction{display:grid;gap:6px;padding:15px;border:2px solid #d8a5a5;border-radius:11px;background:#fff}.delete-confirm-instruction span{color:#a93636;font-size:.72rem;font-weight:850;text-transform:uppercase}.delete-confirm-instruction strong{font-size:.96rem;line-height:1.5}.delete-confirm-instruction p{margin:0;color:var(--muted);font-size:.78rem}.delete-name-field input{border-width:2px}.delete-name-field small{color:var(--green-2);font-weight:700}.delete-name-field small.mismatch{color:#a93636}.button.danger{background:#a93636;color:#fff}.button.danger:hover{background:#8d2929}.student-card-top{display:flex;justify-content:space-between;align-items:flex-start}.status{display:inline-flex;align-items:center;padding:4px 9px;border-radius:99px;font-size:.72rem;font-weight:800}.status.active,.status.reviewed{background:#e3f0e8;color:#34704e}.status.draft{background:#fff1d8;color:#85621c}.status.shared{gap:5px;background:#e8eef7;color:#496884}.status.shared svg{width:14px;height:14px}.student-card h2{margin:16px 0 5px;font-size:1.2rem}.student-card p{color:var(--muted);font-size:.84rem}.student-card-link{display:flex;align-items:center;gap:5px;margin-top:20px;color:var(--green-2);font-size:.82rem;font-weight:750}.student-card-link svg{width:15px}.student-summary{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px 30px;margin-bottom:18px;border-radius:20px;background:linear-gradient(120deg,#35584a,#527764);color:#fff;box-shadow:0 12px 30px #35584a2e}.student-identity{display:flex;align-items:center;gap:18px}.student-identity h2{font-size:1.5rem;margin:7px 0 3px}.student-identity p{color:#cbdad2;margin:0;font-size:.84rem}.student-identity .status{background:#ffffff26;color:#fff}.today-numbers{display:flex;gap:clamp(22px,4vw,60px)}.today-numbers div{display:flex;flex-direction:column}.today-numbers strong{font-size:1.65rem;font-variant-numeric:tabular-nums}.today-numbers span{color:#d3e0da;font-size:.75rem;margin-top:3px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.quick-actions a{min-height:82px;display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.quick-actions a:hover{border-color:#abc0b5}.quick-actions a>svg:first-child{width:23px;color:var(--green-2)}.quick-actions a>svg:last-child{width:17px;margin-left:auto;color:#99a49e}.quick-actions span{display:flex;flex-direction:column}.quick-actions small{color:var(--muted);margin-top:3px;font-size:.73rem}.mini-summary{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.big-number{font-size:2.7rem;font-weight:800;color:var(--green);text-align:center}.big-number small{display:block;color:var(--muted);font-size:.75rem;font-weight:500}.mini-summary>div:last-child{display:grid;grid-template-columns:auto auto;gap:8px 15px}.mini-summary span{color:var(--muted);font-size:.8rem}.schedule-inline{display:flex;align-items:center;gap:14px;padding:10px}.schedule-inline>svg{width:30px;color:var(--green-2)}.schedule-inline div{display:flex;flex-direction:column}.schedule-inline span{color:var(--muted);font-size:.8rem;margin-top:4px}.lesson-highlight{display:flex;align-items:center;gap:15px}.lesson-highlight>div:nth-child(2){flex:1}.lesson-highlight h3{margin:0 0 5px}.lesson-highlight p{margin:0;color:var(--muted)}.level-pill{padding:9px 12px;border-radius:10px;background:var(--blue-soft);color:#496b86;font-weight:750;font-size:.82rem}.iep-status{display:flex;align-items:center;gap:15px}.status-orb{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#eff1ef;color:#88928d;font-weight:800}.status-orb.ready{background:var(--green-soft);color:var(--green)}.iep-status>div:nth-child(2){flex:1}.iep-status h3{margin-bottom:4px}.iep-status p{color:var(--muted);margin:0;font-size:.84rem}.section-description{margin:-8px 0 15px;color:var(--muted);font-size:.84rem}.quick-chips{display:flex;flex-wrap:wrap;gap:9px}.quick-chips button{min-height:44px;display:flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid #cedbd4;border-radius:99px;background:#f8fbf9;color:var(--green);font-weight:700}.quick-chips button:hover{background:var(--green-soft)}.quick-chips svg{width:15px}.record-list,.lesson-list,.schedule-list{display:flex;flex-direction:column;gap:10px}.record-date{flex:0 0 auto;width:52px;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:var(--green-soft);color:var(--green)}.record-date strong{font-size:1.3rem;line-height:1;font-variant-numeric:tabular-nums}.record-date span{margin-top:4px;font-size:.72rem}.record-item{display:flex;gap:15px;padding:16px 8px;border-top:1px solid #edf0ed}.record-item:first-child{border-top:0}.record-main{flex:1;min-width:0}.record-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.record-title h3{margin-bottom:5px}.record-main>p{margin:0 0 9px;color:#53615a}.intensity{flex:0 0 auto;padding:4px 8px;border-radius:99px;background:#edf2ee;color:var(--green);font-size:.72rem;font-weight:750}.intensity.i4,.intensity.i5{background:#f8e5e2;color:#8a4941}.record-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.76rem}.record-meta span{display:flex;align-items:center;gap:4px}.record-meta svg{width:14px}.record-actions{display:flex;gap:1px;align-self:flex-start}.abc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.abc-row span{padding:9px;border-radius:9px;background:#f7f9f7;color:#526059;font-size:.76rem}.abc-row b,.abc-fields b{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:6px;border-radius:6px;background:var(--green-soft);color:var(--green)}.agreement-list{margin:10px 0;padding-left:20px;color:#526059;font-size:.84rem}.follow-up{display:flex;align-items:center;gap:6px;margin-top:10px;color:#6d5881;font-size:.78rem;font-weight:700}.follow-up svg{width:16px}.lesson-record{padding:18px;border:1px solid var(--border);border-radius:14px}.lesson-record-head{display:flex;justify-content:space-between;align-items:flex-start}.lesson-record-head time{color:var(--muted);font-size:.76rem}.lesson-record h3{display:flex;align-items:flex-start;gap:7px;margin:14px 0 6px;font-size:1.02rem}.lesson-record h3 svg{width:18px;color:#6687a4}.lesson-record>p{color:var(--muted)}.lesson-metrics{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:20px;padding:13px;border-radius:11px;background:#f7f9f8}.lesson-metrics div{display:flex;flex-direction:column}.lesson-metrics span{color:var(--muted);font-size:.73rem}.lesson-metrics strong{margin-top:5px;font-size:.79rem}.progress{width:100%;height:6px;margin-top:8px;border-radius:99px;background:#dfe6e2;overflow:hidden}.progress span{height:100%;background:#6687a4;border-radius:99px}.lesson-record blockquote{margin:13px 0 0;padding:10px 12px;border-left:3px solid #b9cbbf;background:#fafbfa;color:#536159;font-size:.8rem}.filter-bar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.filter-bar>svg{width:20px;margin-bottom:12px;color:var(--green-2)}.filter-bar label{min-width:150px;display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.73rem;font-weight:700}.filter-bar select{height:42px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.chart-card{min-width:0}.chart{width:100%;min-width:0}.chart-legend{list-style:none;margin:-5px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 15px}.chart-legend li{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.76rem}.chart-legend li>span{width:9px;height:9px;border-radius:50%}.chart-legend strong{color:var(--ink);margin-left:2px}.accessible-summary{display:flex;align-items:flex-start;gap:14px;padding:14px;border-radius:12px;background:var(--green-soft)}.accessible-summary>svg{flex:0 0 auto;color:var(--green)}.accessible-summary h3{margin-bottom:7px}.accessible-summary p{margin-bottom:7px;line-height:1.65}.accessible-summary small{color:var(--muted)}.calendar-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:20px}.schedule-item{display:flex;align-items:center;gap:12px;padding:12px 5px;border-top:1px solid #edf0ed}.schedule-item:first-child{border-top:0}.complete-button{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border:2px solid #b8c7bf;border-radius:50%;background:#fff;color:#fff}.complete-button.done{border-color:var(--green-2);background:var(--green-2)}.complete-button svg{width:15px}.schedule-content{flex:1;min-width:0}.schedule-content h3{margin:7px 0 3px}.schedule-content p{margin:0;color:var(--muted);font-size:.77rem}.schedule-list.completed .schedule-item{opacity:.67}.schedule-list.completed h3{text-decoration:line-through}.ai-warning{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;padding:15px 17px;border:1px solid #e9d2a1;border-radius:13px;background:#fff7e5;color:#6d5524}.ai-warning svg{flex:0 0 auto;width:20px}.ai-warning p{margin:3px 0 0;font-size:.82rem}.iep-layout{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);gap:20px;align-items:start}.iep-builder{position:sticky;top:24px}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-fields label,.full-field{display:flex;flex-direction:column;gap:6px;color:#5e6b64;font-size:.76rem;font-weight:700}.select-all{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px;color:var(--muted);font-size:.76rem}.evidence-list{max-height:330px;overflow-y:auto;border:1px solid var(--border);border-radius:11px}.evidence-list>label{min-height:58px;display:flex;align-items:center;gap:8px;padding:9px 11px;border-top:1px solid #edf0ed;cursor:pointer}.evidence-list>label:first-child{border-top:0}.evidence-list>label:hover{background:#f8faf8}.evidence-list>label>input[type=checkbox]{flex:0 0 18px;width:18px;min-width:18px;height:18px;min-height:18px;padding:0;accent-color:var(--green)}.evidence-list>label>.tag{flex:0 0 auto}.evidence-list>label>span:last-child{min-width:0;display:flex;flex:1;flex-direction:column}.evidence-list strong{display:block;overflow-wrap:anywhere;font-size:.8rem;line-height:1.35}.evidence-list small{display:block;color:var(--muted);font-size:.7rem;margin-top:3px}.full-field{margin-top:14px}.draft-area{min-width:0}.draft-disclaimer{display:flex;align-items:flex-start;gap:8px;margin-bottom:20px;padding:12px;border-radius:10px;background:#fff7e5;color:#6d5524;font-size:.78rem;line-height:1.5}.draft-disclaimer svg{width:18px;flex:0 0 auto}.draft-section,.draft-columns,.goal-card{margin-top:18px}.draft-section p{color:#46564e;line-height:1.7}.draft-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.draft-columns>div{padding:15px;border-radius:12px;background:#f7f9f7}.draft-columns ul,.goal-card ul,.goal-card ol{margin:8px 0 0;padding-left:20px}.draft-columns li,.goal-card li{margin-bottom:6px;line-height:1.5;font-size:.84rem}.goal-card{padding:18px;border:1px solid #cbd9d1;border-radius:14px}.goal-card>h3{margin:10px 0 16px;font-size:1.06rem;line-height:1.55}.goal-card dl{margin:0}.goal-card dl>div{display:grid;grid-template-columns:125px 1fr;gap:14px;padding:11px 0;border-top:1px solid #edf0ed}.goal-card dt{color:var(--muted);font-size:.76rem;font-weight:750}.goal-card dd{margin:0;line-height:1.55;font-size:.84rem}.goal-card code{display:inline-block;padding:2px 5px;margin:2px;border-radius:4px;background:#f0f2f0;font-size:.68rem}.iep-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.iep-settings label{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:750}.period-preview{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:12px;border-radius:11px;background:#f5f8f6}.period-preview strong{margin-right:4px;font-size:.76rem}.period-preview span{padding:5px 9px;border:1px solid #cbd9d1;border-radius:999px;background:#fff;color:var(--green);font-size:.73rem;font-weight:750}.draft-toolbar{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-bottom:12px}.goal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.goal-heading>div{min-width:0}.goal-heading h3{margin:10px 0 16px;font-size:1.06rem;line-height:1.55}.goal-label{display:block;margin-top:10px;color:var(--text);font-size:.78rem;font-weight:850}.goal-heading .goal-label+h3{margin-top:4px}.period-goal-list{display:grid;gap:12px;margin-top:18px}.period-goal{padding:15px;border:1px solid #dce6e0;border-radius:12px;background:#fafcfb}.period-goal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.period-goal>header span{color:var(--green);font-size:.75rem;font-weight:800}.period-goal>header .goal-label{display:inline-block;margin:0 8px 0 0;color:var(--text)}.period-goal h4{margin:5px 0 12px;line-height:1.5}.period-details{display:grid;grid-template-columns:1fr 1fr;gap:10px}.period-details section{padding:11px;border-radius:9px;background:#fff}.evaluation-guidance{display:flex;align-items:center;gap:10px;margin:18px 0;padding:12px 14px;border-radius:10px;background:#eef5f1;color:var(--muted);font-size:.82rem;line-height:1.5}.evaluation-guidance strong{flex:0 0 auto;color:var(--green)}.evaluation-plan-block{display:grid;gap:8px;margin-top:14px}.evaluation-plan-block>strong{font-size:.78rem}.evaluation-result{display:grid;gap:10px;margin-top:14px;padding:13px;border:1px solid #d5e2da;border-radius:10px;background:#fff}.evaluation-result>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.evaluation-result>div strong{font-size:.88rem}.evaluation-result>div small{color:var(--muted);font-size:.7rem}.evaluation-result p{margin:0;line-height:1.7;white-space:pre-wrap}.evaluation-result .evaluation-empty{color:var(--muted)}.evaluation-result .button{justify-self:start}.semester-result{margin-top:18px;background:#f6faf7}.period-details strong,.evaluation-result strong,.semester-evaluation strong{font-size:.77rem}.period-details ul{margin:7px 0 0;padding-left:18px}.evaluation-plan{display:grid;gap:6px;margin-top:10px}.evaluation-plan span{display:grid;grid-template-columns:48px 1fr;gap:8px;font-size:.78rem;line-height:1.45}.evaluation-plan b{color:var(--muted)}.evaluation-result{margin-top:12px;padding:12px;border-left:3px solid var(--green);border-radius:0 9px 9px 0;background:#edf6f1}.evaluation-result p,.semester-evaluation p{margin:5px 0 0;line-height:1.55}.not-yet{margin:12px 0 0;color:var(--muted);font-size:.76rem}.semester-evaluation{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:14px;border-radius:11px;background:#f2f5f3}.button.compact{min-height:34px;padding:7px 10px;white-space:nowrap;font-size:.74rem}.review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.iep-independent-layout{display:grid;grid-template-columns:minmax(410px,.92fr) minmax(0,1.08fr);gap:20px;align-items:start}.iep-independent-layout .iep-builder{position:static}.iep-settings .full-span{grid-column:1 / -1}.iep-settings label small,.section-heading small,.full-field small{color:var(--muted);font-weight:500;line-height:1.4}.custom-periods,.optional-source,.pdf-source,.observation-source{margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8faf8}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.mode-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:62px;padding:12px 15px;border:1px solid var(--border);border-radius:13px;background:#fff;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.mode-tabs button strong{color:var(--green);font-size:.92rem;font-weight:750}.mode-tabs button small{color:var(--muted);font-size:.74rem;line-height:1.35}.mode-tabs button.active{border-color:var(--green);background:#eef4f0;box-shadow:inset 0 0 0 1px var(--green)}.mode-tabs button:hover:not(.active){border-color:#b9cbc1}.builder-lead{margin:0 0 14px;color:var(--muted);font-size:.82rem;line-height:1.55}.builder-note{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:#eef4f0;color:#3d5a4c;font-size:.79rem;line-height:1.5}.builder-note.warn{background:#fdf3e2;color:#7a5518}.observation-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.observation-fields .full-span{grid-column:1 / -1}.evaluation-basis{margin:6px 0 0;color:var(--muted);font-size:.74rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.section-heading>div{display:flex;flex-direction:column;gap:3px}.section-heading strong{font-size:.82rem}.custom-period-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(125px,1fr) minmax(125px,1fr) 40px;gap:8px;align-items:end;padding:10px 0;border-top:1px solid #e5ebe7}.custom-period-row:first-of-type{border-top:0}.custom-period-row label{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:700}.custom-period-row .icon-button{margin-bottom:2px}@media(min-width:1101px){.custom-period-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.custom-period-row label:first-child{grid-column:1 / -1}.custom-period-row .icon-button{justify-self:end}}.attachment-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.attachment-list li{min-height:44px;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#fff;font-size:.78rem}.attachment-list svg{width:17px;color:var(--green)}.attachment-list span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-list small,.source-empty{color:var(--muted);font-size:.72rem}.source-empty{margin:8px 0 0;line-height:1.5}.privacy-confirm{margin-top:10px;align-items:flex-start;line-height:1.45}.loading-inline{min-height:70px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.78rem}.period-goal>header small{display:block;margin-top:-5px;color:var(--muted);font-size:.7rem}.draft-editor{display:grid;gap:18px;padding:22px}.draft-editor label{display:grid;gap:6px;color:#4f5e56;font-size:.76rem;font-weight:750}.draft-editor label small{color:var(--muted);font-weight:500}.editor-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.draft-editor-goal{display:grid;gap:13px;padding:16px;border:1px solid #bfd0c6;border-radius:12px}.draft-editor-goal>legend,.draft-editor-period>legend{padding:0 7px;color:var(--green);font-weight:800}.draft-editor-period{display:grid;gap:12px;padding:14px;border:1px solid #dde6e1;border-radius:10px;background:#fafcfb}.editor-period-heading{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.evaluation-plan-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:12px;border-radius:9px;background:#f1f6f3}.evaluation-plan-editor>strong{grid-column:1 / -1;font-size:.76rem}.report-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start}.report-layout>.card{position:sticky;top:20px}.report-options{display:flex;flex-direction:column;gap:9px;margin:18px 0 0;padding:14px;border:1px solid var(--border);border-radius:12px}.report-options legend{padding:0 5px;font-size:.78rem;font-weight:750}.checkbox-field{min-height:42px;display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important;color:#405048!important;cursor:pointer}.checkbox-field input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--green)}.checkbox-field>span{display:grid;gap:2px}.checkbox-field>span small{color:var(--muted);font-size:.74rem;font-weight:500;line-height:1.4}.checkbox-field.excluded{color:#8c938f!important;text-decoration:line-through}.privacy-check{display:flex;gap:10px;margin:16px 0;padding:12px;border-radius:10px;background:var(--green-soft);color:var(--green)}.privacy-check svg{flex:0 0 auto;width:20px}.privacy-check p{margin:3px 0 0;color:#576a60;font-size:.75rem}.report-preview{min-width:0}.print-report{max-width:860px;margin:0 auto;padding:clamp(28px,5vw,54px);border:1px solid var(--border);border-radius:3px;background:#fff;box-shadow:var(--shadow);color:#263a31}.print-report>header{display:flex;gap:16px;align-items:flex-start;padding-bottom:25px;border-bottom:3px solid var(--green)}.report-logo{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:var(--green);color:#fff;font-family:serif;font-size:1.4rem;font-weight:800}.print-report header>div:nth-child(2){flex:1}.print-report header p{margin-bottom:5px;color:var(--green-2);font-size:.76rem;font-weight:800}.print-report header h1{margin:0 0 7px;font-size:1.65rem}.print-report header span{color:var(--muted);font-size:.75rem}.print-report>section{margin-top:28px}.print-report section h2{color:var(--green);font-size:.95rem}.print-report section p,.print-report section li{line-height:1.72;font-size:.88rem}.report-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.report-two-columns section,.home-support,.teacher-note{padding:18px;border-radius:12px;background:#f5f8f5}.report-two-columns ul,.home-support ul{margin:0;padding-left:19px}.home-support{background:#f8f0e6}.teacher-note{background:#eef2f6}.print-report footer{display:flex;align-items:center;gap:9px;margin-top:30px;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:.74rem}.print-report footer svg{width:19px}.print-report footer p{margin:0}.print-report footer p+p{margin-top:4px}.ai-disclosure{font-weight:700}.danger-zone{margin-top:22px;padding:15px;border:1px solid #e6c6c4;border-radius:12px;background:#fdf6f5}.danger-zone>strong{display:block;margin-bottom:6px;color:#8d2929;font-size:.88rem}.danger-zone p{margin:0 0 12px;color:#6f4a48;font-size:.78rem;line-height:1.55}.danger-zone label{display:grid;gap:6px;margin-bottom:12px;color:#6f4a48;font-size:.78rem;font-weight:700}.report-chart{height:180px;display:flex;align-items:flex-end;gap:10px;padding:20px 10px 4px;border-left:1px solid #ccd5d0;border-bottom:1px solid #ccd5d0}.report-chart>div{height:100%;min-width:26px;flex:1;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;position:relative}.report-chart>div>span{width:min(28px,75%);min-height:12px;border-radius:6px 6px 0 0;background:var(--green-2)}.report-chart small{margin-top:5px;color:var(--muted);font-size:.62rem}.report-chart b{position:absolute;top:-16px;font-size:.65rem}.chart-caption{margin-top:8px;color:var(--muted);font-size:.7rem!important}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:#13241d87;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(760px,100%);max-height:calc(100vh - 36px);overflow-y:auto;overscroll-behavior:contain;background:#fff;border-radius:18px;box-shadow:0 25px 80px #00000040}.modal>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:19px 22px;border-bottom:1px solid var(--border);background:#fffffff7}.modal>header h2{margin:0;font-size:1.15rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px}.form-grid label,.form-grid fieldset{min-width:0;display:flex;flex-direction:column;gap:6px;margin:0;color:#4f5e56;font-size:.78rem;font-weight:750}.form-grid label small{color:var(--muted);font-weight:500}.form-grid label:has(>.required){flex-flow:row wrap;align-items:baseline;column-gap:0;row-gap:6px}.form-grid label:has(>.required)>small,.form-grid label:has(>.required)>input,.form-grid label:has(>.required)>select,.form-grid label:has(>.required)>textarea{flex:1 0 100%}.form-grid .full{grid-column:1 / -1}.required{margin-left:5px;color:#b34e48;font-size:.68rem}input,select,textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid #cdd5d0;border-radius:9px;background:#fff;color:var(--ink);transition:border-color .12s,box-shadow .12s}.form-grid>*,.iep-settings>*,.custom-period-row>*,.observation-fields>*,.inline-fields>*,.abc-fields>*,.abc-row>*{min-width:0}input[type=month],input[type=date],input[type=datetime-local],input[type=time]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%}textarea{min-height:90px;resize:vertical;line-height:1.55}input:hover,select:hover,textarea:hover{border-color:#9fb2a8}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green-2);box-shadow:0 0 0 3px #52776421}fieldset{padding:0;border:0}fieldset legend{margin-bottom:8px}.scale-options{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.scale-options label{cursor:pointer}.scale-options input{position:absolute;opacity:0;pointer-events:none}.scale-options label>span{min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #d4dbd7;border-radius:9px;background:#fafbfa;font-size:1rem}.scale-options label>span small{font-size:.62rem;margin-top:3px;text-align:center}.scale-options input:checked+span{border-color:var(--green-2);background:var(--green-soft);color:var(--green);box-shadow:inset 0 0 0 1px var(--green-2)}.scale-options input:focus-visible+span{outline:3px solid #e5a45f}.abc-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.abc-fields label{padding:10px;border-radius:10px;background:#f7f9f7}.abc-fields textarea{min-height:110px}.privacy-note{margin:0;padding:10px 12px;border-radius:9px;background:#f7f3e8;color:#6c613e;font-size:.74rem;font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.save-notice{position:fixed;top:20px;left:calc(50% + 132px);z-index:120;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:12px 17px;border-radius:12px;background:#244b3a;color:#fff;box-shadow:0 12px 35px #193c2b40;font-size:.85rem;font-weight:700;animation:enter .22s ease}.save-notice svg{width:18px}@keyframes enter{0%{opacity:0;transform:translate(-50%,-8px)}}.empty-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;color:var(--muted)}.empty-state>svg{width:34px;height:34px;color:#aab6b0;margin-bottom:12px}.empty-state h3{margin-bottom:6px;color:#526159}.empty-state p{max-width:380px;font-size:.82rem}.error-message,.alert.error{color:#913e3e;background:#fcebea;border-radius:9px;padding:10px 12px;font-size:.8rem}.alert.warning{color:#7a5518;background:#fdf3e2;border-radius:9px;padding:10px 12px;font-size:.8rem;margin-bottom:12px}.alert.error,.alert.warning{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.alert.warning .button.small{padding:8px 14px;font-size:.8rem;color:#7a5518;border-color:#e6cfa6;background:#fff}.alert.error .button.small{padding:8px 14px;font-size:.8rem;color:#913e3e;border-color:#e2b6b3;background:#fff}.loading-bar{position:fixed;top:0;left:264px;right:0;z-index:90;padding:7px;background:#35584a;color:#fff;text-align:center;font-size:.73rem}.center-screen,.page-placeholder{min-height:70vh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.spinner{width:19px;height:19px;border:2px solid #ced9d3;border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 20% 10%,#f6e7d2 0,transparent 32%),linear-gradient(145deg,#e7eee8,#f7f6f1 55%)}.login-card{width:min(460px,100%);padding:42px;border:1px solid rgba(255,255,255,.7);border-radius:25px;background:#ffffffe8;box-shadow:0 30px 80px #27463921}.login-card .brand-mark{margin-bottom:28px}.login-card h1{color:var(--green);font-size:2.25rem}.login-card .muted{color:var(--muted);line-height:1.6;margin-bottom:25px}.login-card form{display:flex;flex-direction:column;gap:14px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:750}.login-card .login-privacy-check{min-height:44px;flex-direction:row;align-items:flex-start;gap:10px;padding:10px;border-radius:9px;background:#f3f7f5;line-height:1.5;cursor:pointer}.login-privacy-check input{width:20px;min-height:20px;margin-top:1px;flex:0 0 auto}.login-privacy-check button{padding:0;border:0;background:transparent;color:var(--green);font:inherit;text-decoration:underline;cursor:pointer}.device-use{display:grid;gap:8px;margin:0 0 14px;padding:0;border:0;text-align:left}.device-use legend{padding:0 0 8px;color:var(--green);font-size:.84rem;font-weight:750}.device-use label{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px;border:1px solid #dfe7e2;border-radius:9px;background:#fff;line-height:1.45;cursor:pointer}.device-use label:has(input:checked){border-color:var(--green);background:#f3f7f5}.device-use input{width:20px;min-height:20px;margin-top:2px;flex:0 0 auto}.device-use strong{display:block;font-size:.86rem}.device-use small{display:block;margin-top:2px;color:var(--muted);font-size:.76rem}.device-use-hint{margin:2px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}.privacy-notice{display:grid;gap:18px;padding:22px;color:#405047;font-size:.85rem;line-height:1.65}.privacy-notice section,.privacy-notice p{margin:0}.privacy-notice h3{margin:0 0 7px;color:var(--green);font-size:1rem}.privacy-notice ul{margin:0;padding-left:20px}.privacy-notice li+li{margin-top:6px}.privacy-notice .privacy-warning{padding:12px 14px;border-radius:10px;background:var(--green-soft);color:var(--green);font-weight:700}.privacy-notice dl{display:grid;gap:7px;margin:0}.privacy-notice dl div{display:grid;grid-template-columns:130px 1fr;gap:10px}.privacy-notice dt{font-weight:750}.privacy-notice dd{margin:0}.privacy-notice .privacy-updated{color:var(--muted);font-size:.75rem}.share-scope-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.share-scope-options label{display:flex;flex-direction:row;align-items:flex-start;gap:9px;padding:13px;border:1px solid var(--border);border-radius:11px;cursor:pointer}.share-scope-options label:has(input:checked){border-color:#7ea08e;background:var(--green-soft)}.share-scope-options label:has(input:disabled){cursor:not-allowed;opacity:.55}.share-scope-options span{display:flex;flex-direction:column;gap:3px}.share-scope-options small{color:var(--muted);font-weight:500}.share-code-result{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;border-radius:13px;background:#f3f7f5;text-align:center}.share-code-result>span,.share-code-result small{color:var(--muted);font-size:.78rem}.share-code-result strong{color:var(--green);font-size:1.35rem;letter-spacing:.08em}.share-code-result .invite-link-text{max-width:100%;overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.82rem;letter-spacing:0}.invite-page{max-width:680px;margin:32px auto}.invite-result{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.invite-result>svg{width:54px;height:54px;color:var(--green)}.invite-result>p{max-width:520px;color:var(--muted)}.invite-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:#edf5f1;color:var(--green)}.collaborator-list{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.collaborator-list>div{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#f7f9f8}.collaborator-list>div>span{display:flex;flex:1;flex-direction:column}.collaborator-list small{color:var(--muted)}.present-level-list{display:grid;gap:10px}.present-level-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--border);border-radius:12px}.present-level-list h3{margin:8px 0;font-size:1rem}.present-level-list p{margin:4px 0;color:var(--muted);font-size:.86rem}.report-layout.read-only>.card,.report-layout.read-only .review-actions{display:none}.demo-note{margin:14px 0 0;text-align:center;color:var(--muted);font-size:.73rem}@media(max-width:1100px){.stat-grid,.student-grid,.activity-strip{grid-template-columns:repeat(2,1fr)}.calendar-layout,.report-layout{grid-template-columns:1fr}.report-layout>.card{position:static}.iep-layout,.iep-independent-layout{grid-template-columns:1fr}.iep-builder{position:static}}@media(max-width:760px){.mobile-header{position:sticky;top:0;z-index:20;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--border);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-brand{font-family:serif;color:var(--green);font-size:1.25rem;font-weight:800}.sidebar{transform:translate(-105%);transition:transform .2s ease;box-shadow:15px 0 45px #0000002e}.sidebar.open{transform:translate(0)}.close-menu{display:inline-grid!important}.scrim{position:fixed;inset:0;z-index:25;border:0;background:#12221c73}.main-content{margin-left:0;padding:25px 15px calc(55px + env(safe-area-inset-bottom,0px))}.sidebar{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.loading-bar{left:0;top:60px}.save-notice{top:72px;left:50%;width:calc(100% - 30px);justify-content:center}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:22px}.page-header .header-actions,.page-header .button,.header-actions{width:100%}.stat-grid{gap:10px}.stat-card{min-height:110px;padding:17px}.dashboard-grid,.chart-grid{grid-template-columns:1fr}.wide-card{grid-column:auto}.student-grid{grid-template-columns:1fr}.student-year-toolbar{grid-template-columns:1fr;align-items:stretch}.student-summary{align-items:flex-start;flex-direction:column;padding:22px}.today-numbers{width:100%;justify-content:space-between;gap:15px}.quick-actions{grid-template-columns:1fr}.record-item{gap:9px}.record-date{display:none}.record-title{align-items:flex-start}.abc-row,.abc-fields{grid-template-columns:1fr}.lesson-metrics{grid-template-columns:1fr;gap:12px}.chart-grid{margin-top:12px}.report-two-columns{grid-template-columns:1fr}.print-report{padding:24px 18px}.print-report>header{flex-wrap:wrap}.form-grid{grid-template-columns:1fr;padding:18px}.form-grid .full{grid-column:auto}.scale-options{grid-template-columns:repeat(5,minmax(0,1fr))}.scale-options label>span{min-height:54px}.scale-options label>span small{display:none}.draft-columns,.inline-fields,.iep-settings,.period-details,.editor-two-columns,.editor-period-heading,.evaluation-plan-editor,.observation-fields,.mode-tabs{grid-template-columns:1fr}.custom-period-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.custom-period-row label:first-child{grid-column:1 / -1}.custom-period-row .icon-button{justify-self:end}.period-goal>header,.semester-evaluation{align-items:stretch;flex-direction:column}.section-heading{align-items:stretch;flex-direction:column;gap:10px}.section-heading .button{width:100%}.section-heading .button.compact{min-height:44px;font-size:.8rem}.goal-card dl>div{grid-template-columns:1fr;gap:5px}.review-actions{flex-direction:column}.review-actions .button{width:100%}}@media(max-width:430px){.stat-grid{grid-template-columns:1fr 1fr}.card{padding:17px;border-radius:15px}.stat-card strong{font-size:1.75rem}.activity-strip{grid-template-columns:1fr}.today-numbers span{max-width:70px}.toolbar{align-items:stretch;flex-direction:column}.result-count{text-align:right}.modal-backdrop{padding:0;align-items:end}.modal{max-height:94vh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}}@media print{@page{size:A4;margin:14mm}body{background:#fff}.sidebar,.mobile-header,.no-print,.save-notice,.review-actions{display:none!important}.main-content{margin:0;padding:0}.report-layout{display:block}.report-preview{width:100%}.print-report{max-width:none;padding:0;border:0;box-shadow:none}.print-report>section,.report-two-columns{break-inside:avoid}}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.quick-chips.suggestions{margin-top:8px}.quick-chips.suggestions button{border-style:dashed}.quick-type-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.quick-type-list li{display:grid;grid-template-columns:minmax(0,1fr) 40px 40px 40px;gap:4px;align-items:center;padding:4px 4px 4px 12px;border:1px solid var(--border);border-radius:11px;background:#f8faf8}.quick-type-list .icon-button{width:40px;height:40px}.quick-type-list .icon-button:disabled{opacity:.3;cursor:not-allowed}.quick-type-list .icon-button:disabled:hover{background:transparent;color:var(--muted)}.quick-type-name{min-width:0;font-weight:700;font-size:.88rem;overflow-wrap:anywhere}.quick-type-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.tag.needs-detail{display:inline-flex;align-items:center;gap:4px;border:0;padding:3px 9px;background:#fdf0e2;color:#8a5a2b;font-weight:700;cursor:pointer}.tag.needs-detail:hover{background:#f8e3cd}.tag.needs-detail svg{width:13px;height:13px}.quick-chips button:disabled{opacity:.55;cursor:not-allowed}.alert.warning svg{width:16px;height:16px;vertical-align:-3px;margin-right:6px}.pattern-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.pattern-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#f8faf8}.pattern-facets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.pattern-facet{display:flex;flex-direction:column;gap:2px;color:var(--ink);font-weight:750;font-size:.9rem}.pattern-facet small{color:var(--muted);font-size:.68rem;font-weight:600}.pattern-times{color:var(--muted);font-size:.85rem}.pattern-figures{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.pattern-figures strong{color:var(--green);font-size:1.05rem}.pattern-lift{padding:3px 8px;border-radius:999px;background:var(--peach-soft);color:#8a5a2b;font-weight:700}.student-color{display:inline-flex}.student-color input[type=color]{width:40px;min-height:40px;padding:3px}.academic-list{display:grid;gap:8px;margin:0;padding:0;max-height:46vh;overflow-y:auto;overscroll-behavior:contain;list-style:none}.academic-list li{display:grid;grid-template-columns:24px minmax(0,150px) minmax(0,1fr);gap:8px;align-items:center}.academic-list li.excluded{opacity:.45}.academic-list input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--green)}
