:root{--green:#123D34;--green2:#1E5B4B;--ivory:#F7F1E6;--paper:#FFFDF8;--sage:#DDE8D8;--sage2:#9CAF98;--gold:#C99C42;--charcoal:#1D2724;--muted:#69766F;--line:rgba(18,61,52,.14);--red:#C75C52;--orange:#D88C35;--blue:#587EA6;--purple:#7163A8;--shadow:0 24px 70px rgba(18,61,52,.13);--radius:24px}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(135deg,#faf6ed 0%,#eef6ee 56%,#f7f1e6 100%);font-family:'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',system-ui,sans-serif;color:var(--charcoal)}
button{font:inherit;border:0;cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;padding:24px}.sidebar{position:sticky;top:24px;align-self:start;min-height:calc(100vh - 48px);border-radius:32px;padding:22px 17px;background:linear-gradient(180deg,var(--green),#0b2c25);color:white;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:13px;padding:4px 7px}.brand-mark{width:46px;height:46px;border-radius:16px;background:linear-gradient(145deg,#fff4d3,#c89a3e);color:var(--green);display:grid;place-items:center;font-weight:900;font-size:22px}.brand strong{display:block;font-size:20px;letter-spacing:-.5px}.brand span{display:block;font-size:12px;color:rgba(255,255,255,.65);margin-top:2px}.boundary-note{border-radius:20px;background:rgba(255,255,255,.10);padding:14px 15px;color:rgba(255,255,255,.82);font-size:12px;line-height:1.55}.boundary-note b{display:block;color:#fff;margin-bottom:4px}.nav{display:grid;gap:8px}.nav button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;border-radius:16px;background:transparent;color:rgba(255,255,255,.72);text-align:left}.nav button:hover{background:rgba(255,255,255,.09);color:white}.nav button.active{background:rgba(255,255,255,.16);color:#fff;font-weight:800}.nav small{padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.13);font-size:11px;color:rgba(255,255,255,.75)}.nav button.active small{background:var(--gold);color:var(--green)}.side-footer{margin-top:auto;font-size:12px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:8px;padding:8px}.dot{display:inline-block;width:9px;height:9px;border-radius:99px;background:var(--muted);flex:0 0 auto}.dot.live{background:#82d596;box-shadow:0 0 0 5px rgba(130,213,150,.14)}.main{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:6px 0 18px}.eyebrow{margin:0 0 7px;color:var(--green2);font-size:13px;font-weight:900;display:flex;align-items:center;gap:8px}.eyebrow:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold)}.eyebrow.small{font-size:12px}h1{margin:0;color:var(--green);font-size:34px;letter-spacing:-1.3px}h2{margin:0;color:var(--green);font-size:21px;letter-spacing:-.6px}.subtitle,.panel p{margin:7px 0 0;color:var(--muted);line-height:1.55;font-size:14px}.header-actions{display:flex;gap:10px;flex-wrap:wrap}.primary,.ghost{border-radius:14px;padding:11px 15px;font-weight:800}.primary{background:var(--green);color:white}.ghost{background:rgba(255,255,255,.72);color:var(--green);border:1px solid var(--line)}.status-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric-card{border-radius:22px;background:rgba(255,255,255,.74);border:1px solid rgba(18,61,52,.12);padding:15px 16px;box-shadow:0 15px 35px rgba(18,61,52,.07)}.metric-card.risk{background:#fff9f5;border-color:rgba(199,92,82,.2)}.metric-card strong{display:block;font-size:26px;color:var(--green);line-height:1}.metric-card.risk strong{color:var(--red)}.metric-card span{display:block;font-size:12px;color:var(--muted);margin-top:7px}.metric-card b{display:block;font-size:13px;margin-bottom:8px;color:var(--charcoal)}.panel{background:rgba(255,255,255,.80);border:1px solid rgba(18,61,52,.13);border-radius:var(--radius);box-shadow:0 16px 45px rgba(18,61,52,.08);padding:18px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.panel-head.wrap{flex-wrap:wrap}.control-room{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.filter-tabs button{border-radius:999px;padding:8px 12px;background:#eef4ed;color:var(--green);font-size:12px;font-weight:800}.filter-tabs button.active{background:var(--green);color:#fff}.filter-tabs button.tuition.active{background:var(--red)}.filter-tabs button.attendance.active{background:var(--blue)}.filter-tabs button.task.active{background:var(--purple)}.filter-tabs button.notice.active{background:#78549a}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{font-size:12px;color:var(--muted);font-weight:800;text-align:center;padding:4px}.day{min-height:112px;border-radius:17px;border:1px solid rgba(18,61,52,.12);background:linear-gradient(180deg,#fffdf8,#fbfaf5);padding:9px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.day.muted{background:rgba(255,255,255,.45);color:#aab3ad}.day.today{border:2px solid var(--green);background:#f4faf3}.date{font-weight:900;color:var(--green);display:flex;align-items:center;gap:4px}.date small{font-size:11px;color:var(--muted)}.chips{display:flex;flex-direction:column;gap:4px}.chip{display:block;border-radius:999px;padding:4px 7px;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#eef4ed;color:var(--green);font-weight:800}.chip.schedule{background:#e9f3eb;color:var(--green)}.chip.task{background:#efecfb;color:var(--purple)}.chip.attendance,.chip.makeup{background:#e9f0f8;color:var(--blue)}.chip.tuition{background:#fbebe7;color:var(--red)}.chip.notice{background:#f2eafa;color:#78549a}.chip.exam{background:#fff2d7;color:#966b15}.day-summary{font-size:11px;color:var(--muted);margin-top:auto}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:13px;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:50%;background:var(--green)}.legend .task{background:var(--purple)}.legend .attendance{background:var(--blue)}.legend .tuition{background:var(--red)}.legend .notice{background:#78549a}.right-column{display:grid;gap:16px;align-content:start}.selected-day{min-height:415px}.detail-list{display:grid;gap:10px}.detail-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:flex-start;border-radius:18px;background:#fbfaf6;border:1px solid rgba(18,61,52,.09);padding:12px}.detail-item strong{display:block;font-size:14px}.detail-item small{display:block;color:var(--muted);margin-top:3px;line-height:1.45}.pill{border-radius:999px;font-size:11px;font-weight:900;padding:4px 8px;background:#eef4ed;color:var(--green);white-space:nowrap}.red{background:var(--red)!important;color:white!important}.gold{background:var(--gold)!important;color:var(--green)!important}.blue{background:var(--blue)!important;color:white!important}.purple{background:var(--purple)!important;color:white!important}.dark-panel{background:linear-gradient(180deg,var(--green),#0e2f28);color:white}.dark-panel h2{color:white}.dark-panel ul{margin:12px 0 0;padding-left:18px;color:rgba(255,255,255,.84);line-height:1.7;font-size:14px}.mockup-page{display:grid;gap:16px}.mockup-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.page-badge{border-radius:999px;background:#eef4ed;color:var(--green);font-weight:900;padding:8px 12px;font-size:12px}.option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.option-card{background:rgba(255,255,255,.82);border:1px solid rgba(18,61,52,.13);border-radius:23px;padding:18px;box-shadow:0 14px 36px rgba(18,61,52,.07);min-height:320px;display:flex;flex-direction:column}.option-card h3{margin:0;color:var(--green);font-size:19px;letter-spacing:-.4px}.option-card p{margin:7px 0 14px;color:var(--muted);font-size:13px;line-height:1.55}.fake-screen{border-radius:20px;background:#fbfaf5;border:1px solid rgba(18,61,52,.10);padding:12px;min-height:150px;display:grid;gap:8px;margin-top:auto}.mini-row{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid rgba(18,61,52,.08);font-size:12px}.mini-row b{color:var(--green)}.bar{height:9px;border-radius:99px;background:#e6eee4;overflow:hidden}.bar i{display:block;height:100%;border-radius:99px;background:var(--green);width:60%}.decision-panel{background:#fffaf0}.decision-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.decision-item{padding:12px;border-radius:16px;background:#fff;border:1px solid rgba(18,61,52,.10);font-size:13px;line-height:1.5}.toast{position:fixed;right:24px;bottom:24px;background:var(--green);color:white;border-radius:18px;padding:13px 16px;box-shadow:var(--shadow);transform:translateY(24px);opacity:0;pointer-events:none;transition:.22s}.toast.show{transform:translateY(0);opacity:1}
@media (max-width:1180px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;min-height:0}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.control-room{grid-template-columns:1fr}.status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.option-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.app-shell{padding:12px;gap:12px}.sidebar{border-radius:24px}.nav{grid-template-columns:1fr}.topbar{display:grid}.status-strip{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:1fr}.weekday{display:none}.day{min-height:auto}.option-grid,.decision-list{grid-template-columns:1fr}.mockup-intro{display:grid}.header-actions{width:100%}.header-actions button{flex:1}h1{font-size:28px}.control-room{gap:12px}.panel{padding:15px}}

/* v0.1 login + core pages */
.auth-checking .app-shell,.auth-checking .login-view{display:none}.is-guest .app-shell{display:none}.is-authenticated .login-view{display:none}.is-authenticated .app-shell{display:grid}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(201,156,66,.18),transparent 28%),linear-gradient(135deg,#123d34,#1e5b4b 52%,#f7f1e6 52%)}.login-card{width:min(560px,100%);background:rgba(255,253,248,.96);border:1px solid rgba(255,255,255,.7);border-radius:34px;box-shadow:0 30px 90px rgba(0,0,0,.22);padding:30px}.login-brand{display:flex;gap:16px;align-items:center;margin-bottom:22px}.brand-mark.large{width:60px;height:60px;border-radius:22px;font-size:28px}.login-brand h1{margin:4px 0 8px;font-size:32px}.login-brand p:last-child{margin:0;color:var(--muted);line-height:1.55}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:7px;font-weight:800}.login-form input{width:100%;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px 15px;font:inherit;color:var(--charcoal);outline:none}.login-form input:focus{border-color:var(--green2);box-shadow:0 0 0 4px rgba(30,91,75,.11)}.login-submit{width:100%;justify-content:center;margin-top:6px}.login-message{min-height:22px;margin:0;color:var(--red);font-weight:800}.login-boundary{margin-top:18px;border-radius:18px;background:#eef6ee;padding:14px;color:var(--muted);line-height:1.55}.login-boundary b{display:block;color:var(--green);margin-bottom:3px}.user-chip{border:1px solid var(--line);background:var(--paper);color:var(--green);border-radius:999px;padding:10px 14px;font-weight:900;white-space:nowrap}.work-page{display:grid;gap:18px}.section-hero{display:flex;justify-content:space-between;align-items:center;gap:18px}.section-hero h2{margin:4px 0 8px;font-size:28px;letter-spacing:-.8px}.section-hero p{margin:0;color:var(--muted);line-height:1.65}.classroom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.group-card{display:grid;gap:12px}.group-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.group-head h3{margin:0;font-size:18px}.group-head span,.secure-badge{border-radius:999px;background:#edf5ed;color:var(--green);font-weight:900;font-size:12px;padding:6px 10px;white-space:nowrap}.group-card.warn .group-head span{background:#fff0d8;color:#9b5a09}.group-card.full .group-head span,.money-card.risk span{background:#ffe9e6;color:var(--red)}.capacity-line{display:grid;gap:3px}.capacity-line b{font-size:25px;color:var(--green)}.capacity-line small,.group-card p{color:var(--muted);line-height:1.55;margin:0}.two-column{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.two-column.wide-left{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.table-like,.summary-list{display:grid;gap:10px}.table-row,.summary-list div{display:grid;grid-template-columns:140px minmax(0,1fr) minmax(0,1.1fr);gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:13px;background:#fff}.table-row small,.summary-list span{color:var(--muted);line-height:1.45}.view-switch,.filter-tabs{display:flex;flex-wrap:wrap;gap:8px}.view-switch button{border-radius:999px;background:#eef6ee;color:var(--green);padding:9px 12px;font-weight:800}.view-switch button.active{background:var(--green);color:white}.timeline-list{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:start;border-left:4px solid var(--sage);background:#fff;border-radius:18px;padding:14px}.timeline-item time{font-weight:900;color:var(--green)}.timeline-item span{display:inline-block;border-radius:999px;background:#edf5ed;color:var(--green);font-size:12px;font-weight:900;padding:4px 8px;margin-bottom:6px}.timeline-item strong{display:block;font-size:17px}.timeline-item p{margin:4px 0 0;color:var(--muted)}.kanban-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kanban-column{display:grid;gap:12px;align-content:start}.column-head{display:flex;justify-content:space-between;align-items:center}.column-head h2{margin:0}.column-head span{border-radius:999px;padding:5px 10px;background:#eef6ee;color:var(--green);font-weight:900}.task-card{display:grid;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.task-card strong{display:block;font-size:17px}.task-card p{margin:5px 0 0;color:var(--muted);line-height:1.45}.task-card footer{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--muted)}.task-card footer b{color:var(--charcoal)}.money-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.money-card{display:grid;gap:8px}.money-card span{width:max-content;border-radius:999px;background:#eef6ee;color:var(--green);font-weight:900;padding:5px 10px}.money-card strong{font-size:27px;color:var(--green);letter-spacing:-.8px}.money-card small{color:var(--muted)}.protected-hero{border:1px solid rgba(201,156,66,.35)}.payment-table{display:grid;gap:8px;overflow-x:auto}.payment-head,.payment-row{min-width:680px;display:grid;grid-template-columns:1fr 1fr 1fr .8fr 1.6fr;gap:12px;align-items:center}.payment-head{color:var(--muted);font-size:12px;font-weight:900;padding:0 12px}.payment-row{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.payment-row.risk{border-color:rgba(199,92,82,.35);background:#fff9f8}.payment-row em{font-style:normal;width:max-content;border-radius:999px;background:#eef6ee;color:var(--green);font-weight:900;padding:4px 8px}.payment-row.risk em{background:#ffe9e6;color:var(--red)}.payment-row small{color:var(--muted)}.kanban-column.red{border-top:5px solid var(--red)}.kanban-column.gold{border-top:5px solid var(--gold)}.kanban-column.blue{border-top:5px solid var(--blue)}
.today-home-grid{display:grid;grid-template-columns:minmax(0,1.55fr) 360px;gap:18px}.learning-plan-panel{min-height:560px}.today-side-stack{display:grid;gap:18px;align-content:start}.learning-plan-table{display:grid;gap:8px}.learning-head,.learning-row{display:grid;grid-template-columns:128px minmax(0,1.05fr) minmax(0,.95fr) 64px;gap:12px;align-items:center}.learning-head{padding:0 12px;color:var(--muted);font-size:12px;font-weight:900}.learning-row{border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px}.learning-row.risk{background:#fff9f8;border-color:rgba(199,92,82,.32)}.learning-row.watch{background:#fffdf6;border-color:rgba(201,156,66,.28)}.learning-row.ok{background:#fbfefb}.student-cell,.plan-cell,.check-cell{display:grid;gap:2px}.student-cell b{color:var(--green);font-size:13px}.student-cell strong,.learning-row div>strong{font-size:15px;color:var(--charcoal)}.check-cell small{margin-top:4px;color:var(--green);font-weight:900}.student-cell small,.learning-row small,.learning-row span{color:var(--muted);font-size:12px;line-height:1.45}.learning-row em{font-style:normal;text-align:center;border-radius:999px;background:#edf5ed;color:var(--green);font-weight:900;font-size:12px;padding:6px 8px}.learning-row.risk em{background:#ffe9e6;color:var(--red)}.learning-row.watch em{background:#fff0d8;color:#9b5a09}.today-task-list{display:grid;gap:10px}.today-task-list article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;border:1px solid var(--line);background:#fff;border-radius:17px;padding:12px}.today-task-list b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf5ed;color:var(--green);font-weight:900}.today-task-list strong{display:block;font-size:15px}.today-task-list span{display:block;color:var(--muted);font-size:13px;line-height:1.45;margin-top:4px}.today-task-list small{display:inline-block;margin-top:7px;border-radius:999px;background:#fff0d8;color:#9b5a09;font-weight:900;padding:4px 8px}.empty-hint{margin-top:12px;border-radius:15px;background:#f4faf3;color:var(--muted);font-size:12px;line-height:1.5;padding:11px}.panel-head.compact{margin-bottom:12px}.tuition-dashboard{display:grid;grid-template-columns:minmax(0,1.45fr) 380px;gap:18px}.payment-main-panel{min-height:430px}.tuition-side-stack{display:grid;gap:18px;align-content:start}.action-panel h2{margin-bottom:14px}.tuition-action-list{display:grid;gap:12px}.tuition-action-list article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}.tuition-action-list article.risk{border-color:rgba(199,92,82,.35);background:#fff9f8}.tuition-action-list b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#edf5ed;color:var(--green);font-weight:900}.tuition-action-list article.risk b{background:#ffe9e6;color:var(--red)}.tuition-action-list strong{display:block;font-size:16px}.tuition-action-list span{display:block;color:var(--muted);font-size:13px;line-height:1.45;margin-top:4px}.desktop-table{overflow-x:visible}.desktop-table .payment-head,.desktop-table .payment-row{min-width:0}.desktop-table .payment-row{min-height:54px}
@media (max-width:1180px){.classroom-grid,.kanban-grid{grid-template-columns:1fr 1fr}.money-grid{grid-template-columns:1fr 1fr}.two-column,.two-column.wide-left,.tuition-dashboard,.today-home-grid{grid-template-columns:1fr}.learning-head,.learning-row{grid-template-columns:128px minmax(0,1.05fr) minmax(0,.95fr) 64px}.section-hero{align-items:flex-start}}
@media (max-width:760px){.login-view{padding:12px}.login-card{padding:22px;border-radius:24px}.login-brand{align-items:flex-start}.login-brand h1{font-size:25px}.section-hero{display:grid}.classroom-grid,.kanban-grid,.money-grid{grid-template-columns:1fr}.table-row,.summary-list div{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr}.user-chip{width:100%;text-align:center}.payment-table{overflow:visible}.payment-head{display:none}.payment-row{min-width:0;grid-template-columns:1fr}.learning-head{display:none}.learning-row{grid-template-columns:1fr}.today-task-list article,.tuition-action-list article{grid-template-columns:1fr}.header-actions{flex-wrap:wrap}}


/* v0.2 PC portal bundle + student list */
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.as-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.portal-hub{border:1px solid rgba(18,61,52,.12);background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(247,241,230,.72))}.portal-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.module-card{display:grid;gap:8px;min-height:154px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--charcoal);padding:16px;text-decoration:none;box-shadow:0 12px 30px rgba(18,61,52,.06);transition:.16s ease}.module-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(18,61,52,.11)}.module-card span{width:max-content;border-radius:999px;background:#eef6ee;color:var(--green);font-size:12px;font-weight:900;padding:5px 9px}.module-card strong{font-size:18px;letter-spacing:-.4px}.module-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.module-card em{align-self:end;font-style:normal;color:var(--green);font-size:12px;font-weight:900}.module-card.gold span{background:#fff0d8;color:#9b5a09}.module-card.blue span{background:#edf3ff;color:#31537a}.module-card.gray span{background:#f0f1ef;color:#6f756e}.hub-note{margin-top:12px;border-radius:16px;background:#eef6ee;color:var(--green);font-size:13px;font-weight:800;padding:12px 14px}.student-table{display:grid;gap:8px}.student-head,.student-row{display:grid;grid-template-columns:minmax(120px,.9fr) 150px minmax(140px,.9fr) minmax(220px,1.3fr) 140px;gap:12px;align-items:center}.student-head{padding:0 12px;color:var(--muted);font-size:12px;font-weight:900}.student-row{border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px}.student-row.risk{background:#fff9f8;border-color:rgba(199,92,82,.32)}.student-row strong{display:block;color:var(--charcoal)}.student-row small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.student-row span{color:var(--muted);font-size:13px;line-height:1.45}.student-row em{font-style:normal;border-radius:999px;background:#edf5ed;color:var(--green);font-weight:900;font-size:12px;padding:6px 8px;text-align:center}@media (max-width:1180px){.portal-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-head,.student-row{grid-template-columns:1fr 1fr}}@media (max-width:760px){.hero-actions{justify-content:stretch}.hero-actions a{width:100%}.portal-module-grid{grid-template-columns:1fr}.student-head{display:none}.student-row{grid-template-columns:1fr}.module-card{min-height:auto}}

/* v0.3 one-week beta usable controls */
.beta-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid rgba(201,156,66,.28);background:linear-gradient(135deg,#fffdf8,#fff7e4)}
.beta-banner h2{margin:4px 0 6px;font-size:22px;letter-spacing:-.6px}.beta-banner p{margin:0;color:var(--muted);line-height:1.55}.beta-list{display:grid;gap:10px}.beta-row,.beta-form{border:1px solid var(--line);background:#fff;border-radius:18px;padding:12px}.beta-row{align-items:center}.beta-row.risk,.payment-row.risk,.attendance-row.risk,.notice-card.risk{background:#fff9f8;border-color:rgba(199,92,82,.34)}.beta-row.watch,.payment-row.watch,.attendance-row.watch,.notice-card.watch{background:#fffdf3;border-color:rgba(201,156,66,.32)}.beta-row.ok,.notice-card.ok{background:#fbfefb}.beta-form{display:grid;gap:10px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.form-grid textarea{grid-column:span 2}.inline-form{display:grid;grid-template-columns:minmax(92px,.7fr) minmax(0,1fr) auto;gap:7px;align-items:center}.row-actions{display:grid;gap:8px}.row-actions button{width:100%}label{display:grid;gap:6px;font-size:12px;font-weight:900;color:var(--green)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 11px;font:inherit;color:var(--charcoal);outline:none}textarea{min-height:58px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(30,91,75,.10)}button.tiny{border-radius:999px;background:#eef6ee;color:var(--green);font-weight:900;font-size:11px;padding:5px 8px;margin:2px}.attendance-row{display:grid;grid-template-columns:minmax(160px,1fr) 130px minmax(150px,1fr) 130px auto;gap:10px}.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.notice-card pre{white-space:pre-wrap;font-family:inherit;line-height:1.65;color:var(--charcoal);background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px}.notice-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.notice-head h3{margin:0}.notice-head span{border-radius:999px;background:#eef6ee;color:var(--green);font-weight:900;font-size:12px;padding:5px 9px}.timeline-item footer,.task-card footer{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.checklist-list div{grid-template-columns:minmax(160px,.8fr) minmax(0,1.3fr) minmax(180px,.8fr)}.empty-hint{color:var(--muted);line-height:1.6}.student-row .inline-form{grid-template-columns:120px minmax(180px,1fr) auto}.payment-row .inline-form{grid-template-columns:110px 110px minmax(160px,1fr) auto}.group-card label{margin-top:10px}.group-card textarea{min-height:76px}@media (max-width:1180px){.form-grid,.notice-grid{grid-template-columns:1fr}.form-grid textarea{grid-column:auto}.attendance-row{grid-template-columns:1fr 1fr}.student-row,.student-head{grid-template-columns:minmax(120px,.9fr) 130px minmax(130px,.8fr) minmax(180px,1fr) minmax(220px,1.1fr)}.inline-form,.student-row .inline-form,.payment-row .inline-form{grid-template-columns:1fr}}
@media (max-width:760px){.beta-banner{display:grid}.student-head,.payment-head{display:none}.student-row,.payment-row,.attendance-row{grid-template-columns:1fr}.form-grid,.notice-grid{grid-template-columns:1fr}.checklist-list div{grid-template-columns:1fr}.beta-row{gap:10px}.inline-form,.student-row .inline-form,.payment-row .inline-form{grid-template-columns:1fr}.row-actions{grid-template-columns:1fr 1fr}.learning-row{grid-template-columns:1fr}.beta-banner button{width:100%}}

/* v0.3.1 beta student table overflow fix */
.student-head,.student-row{grid-template-columns:minmax(105px,.75fr) 118px minmax(118px,.75fr) minmax(150px,1fr) minmax(210px,1.15fr)}
.student-row .inline-form{grid-template-columns:92px minmax(70px,1fr) 58px;min-width:0}.student-row .inline-form input{min-width:0}.student-row .inline-form button{padding-left:8px;padding-right:8px}
@media (max-width:1180px){.student-row .inline-form{grid-template-columns:1fr}.student-head,.student-row{grid-template-columns:minmax(120px,.9fr) 130px minmax(130px,.8fr) minmax(180px,1fr) minmax(200px,1fr)}}
@media (max-width:760px){.student-row{grid-template-columns:1fr}.student-row .inline-form{grid-template-columns:1fr}}


/* v0.4 living-learning-flow alignment */
.flow-learning-row{grid-template-columns:140px minmax(0,1.05fr) minmax(0,1fr) 120px;align-items:start}
.flow-learning-row .student-cell em{width:max-content;margin-top:6px;font-style:normal;text-align:center;border-radius:999px;background:#edf5ed;color:var(--green);font-weight:900;font-size:12px;padding:5px 8px}
.active-unit-toggle{border:1px solid var(--line);border-radius:16px;background:#fffdf8;padding:10px;min-width:0}
.active-unit-toggle summary{cursor:pointer;display:grid;gap:4px;list-style:none}
.active-unit-toggle summary::-webkit-details-marker{display:none}
.active-unit-toggle summary span{font-size:12px;font-weight:900;color:var(--green)}
.active-unit-toggle summary strong{font-size:15px;color:var(--charcoal);line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.active-unit-toggle[open] summary{border-bottom:1px dashed var(--line);padding-bottom:8px;margin-bottom:8px}
.flow-proof-cell textarea{min-height:88px}
.notice-card pre,.notice-full-text{max-height:none !important;overflow:visible !important;display:block !important;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;font-family:inherit;line-height:1.75;color:var(--charcoal);background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px}
.tuition-matrix-panel{overflow:hidden}.tu-mtx{overflow-x:auto;-webkit-overflow-scrolling:touch}.tu-mtx table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;min-width:520px}.tu-mtx th,.tu-mtx td{padding:7px 8px;border:1px solid var(--line);text-align:center;vertical-align:top;word-break:keep-all}.tu-mtx th{background:#f1f5f9;color:var(--muted)}.tu-mtx th:first-child,.tu-mtx td.s-name{width:132px}.tu-mtx td.s-name{text-align:left;font-weight:700;background:#fafafa;position:sticky;left:0;z-index:1}.tu-mtx td.s-name small{display:block;color:var(--muted);font-weight:500;margin-top:2px}.tu-mtx th.tu-cur-col{background:#fde68a;color:#92400e}.tu-mtx td.tu-cur-col{box-shadow:inset 3px 0 0 #f59e0b,inset -3px 0 0 #f59e0b}.tu-mtx tbody tr:hover td{filter:brightness(1.06)}.tu-mtx tbody tr:hover td.s-name{background:#fef3c7;filter:none}.tu-cell{font-weight:800}.tu-cell span{display:block}.tu-cell small{display:block;margin-top:3px}.tu-cell.unpaid{background:#dc2626;color:#fff}.tu-cell.scheduled{background:#fff;color:#64748b;border:1px dashed #cbd5e1;font-weight:600}.tu-cell.partial{background:#f59e0b;color:#fff}.tu-cell.urging{background:#ea580c;color:#fff}.tu-cell.paid{background:#16a34a;color:#fff}.tu-cell.exempt{background:#6366f1;color:#fff}.tu-cell.readonly{display:inline-block;width:100%;border-radius:6px;padding:5px 4px}.tu-stats .v.danger{color:#dc2626}.tu-stats .v.warn{color:#f59e0b}.tu-stats .v.ok{color:#16a34a}.tu-legend{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 10px}.tu-legend span{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900}.tu-legend .scheduled{background:#fff;border:1px dashed #cbd5e1;color:#64748b}.tu-legend .unpaid{background:#dc2626;color:#fff}.tu-legend .partial{background:#f59e0b;color:#fff}.tu-legend .urging{background:#ea580c;color:#fff}.tu-legend .paid{background:#16a34a;color:#fff}.tu-legend .exempt{background:#6366f1;color:#fff}.tu-note{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.curriculum-page{display:grid;gap:16px}.cur-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.cur-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);gap:14px;align-items:start}.cur-matrix-wrap{overflow:auto;-webkit-overflow-scrolling:touch;max-height:70vh;border:1px solid var(--line);border-radius:18px;background:#fff}.cur-matrix{border-collapse:collapse;width:100%;min-width:760px;font-size:12px}.cur-matrix th,.cur-matrix td{border:1px solid var(--line);padding:8px;vertical-align:top;text-align:center}.cur-matrix th{position:sticky;top:0;z-index:1;background:#f1f5f9;color:var(--green);font-weight:900}.cur-term{position:sticky;left:0;background:#fffdf8;color:var(--green);z-index:1;min-width:82px}.cur-cell{min-width:118px;background:#fff;line-height:1.35}.cur-cell b{display:block;color:var(--green);font-size:15px}.cur-cell span{display:block;margin-top:3px;color:var(--charcoal);font-weight:800}.cur-cell small{display:block;margin-top:4px;color:var(--muted)}.cur-cell.ok{background:#ecfdf5}.cur-cell.watch{background:#fffbeb}.cur-cell.risk{background:#fef2f2}.cur-cell.empty{background:#f8fafc;color:#94a3b8}.cur-student-list{display:grid;gap:8px;max-height:560px;overflow:auto}.cur-student-row{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr) auto;gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff}.cur-student-row strong,.cur-student-row span,.cur-student-row small{display:block}.cur-student-row span,.cur-student-row small{color:var(--muted);font-size:12px}.cur-student-row p{margin:0;font-size:12px;line-height:1.45}.cur-student-row.ok{border-left:4px solid #16a34a}.cur-student-row.risk{border-left:4px solid #dc2626}.cur-workbench{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:14px;align-items:start}.cur-matrix-panel{overflow:hidden}.cur-cell{padding:0!important}.cur-cell button{width:100%;height:100%;border:0;background:transparent;padding:9px 8px;text-align:center;cursor:pointer}.cur-cell button:hover{background:rgba(18,61,52,.08)}.cur-cell.active{outline:3px solid var(--green);outline-offset:-3px}.cur-cell.active button{background:#123d34;color:#fff}.cur-cell.active b,.cur-cell.active span,.cur-cell.active small{color:#fff}.cur-detail-panel{position:sticky;top:12px}.cur-student-select-label{display:grid;gap:6px;min-width:260px;color:var(--muted);font-size:12px;font-weight:900}.cur-student-select-label select{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;color:var(--charcoal);font-weight:800}.cur-bundle-box{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px;padding:12px;border:1px dashed #cdbb97;border-radius:16px;background:#fff8e5}.cur-bundle-box b,.cur-bundle-box span{display:block}.cur-bundle-box b{color:var(--green);font-size:15px}.cur-bundle-box span{color:var(--muted);font-size:12px;font-weight:800;margin-top:3px}.cur-book-list{display:grid;gap:9px;max-height:620px;overflow:auto}.cur-book-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:16px;background:#fff}.cur-book-card.ok{border-left:4px solid #16a34a}.cur-book-card.risk{border-left:4px solid #dc2626}.cur-book-card b,.cur-book-card span,.cur-book-card small{display:block}.cur-book-card b{color:var(--green);font-size:15px}.cur-book-card span,.cur-book-card small{color:var(--muted);font-size:12px;line-height:1.45}.cur-book-card button,.cur-bundle-box button{white-space:nowrap}.panel-head.wrap{flex-wrap:wrap}
.cur-book-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.cur-chapter-list{grid-column:1/-1;margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}.cur-chapter-list summary{cursor:pointer;font-weight:950;color:var(--green)}.cur-chapter-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(18,61,52,.08)}.cur-chapter-row:last-child{border-bottom:0}.cur-chapter-row span{font-size:12px;font-weight:850;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cur-book-card .cur-book-actions .ghost,.cur-book-card .cur-book-actions .primary{padding:7px 9px;font-size:12px;border-radius:999px}
@media (max-width:760px){.flow-learning-row{grid-template-columns:1fr}.active-unit-toggle{padding:12px}.tu-mtx table{min-width:500px}.notice-card pre,.notice-full-text{font-size:13px}.cur-layout{grid-template-columns:1fr}.cur-student-row{grid-template-columns:1fr}.cur-matrix{min-width:680px}.cur-stats{grid-template-columns:1fr 1fr}.cur-chapter-row{grid-template-columns:1fr 1fr 1fr}.cur-chapter-row span{grid-column:1/-1}.cur-book-actions{justify-content:stretch}.cur-book-actions button{flex:1}}

/* v0.5 live flow + tuition write */
.live-flow-row{grid-template-columns:132px minmax(190px,.9fr) minmax(220px,1.1fr) minmax(190px,.85fr);gap:12px}
.flow-input-stack{display:grid;gap:8px;min-width:0}.flow-input-stack input,.flow-input-stack textarea{min-width:0}.flow-input-stack textarea{min-height:74px}.flow-change-board{grid-column:1/-1;border:1px solid rgba(18,61,52,.14);background:linear-gradient(135deg,#fffdf8,#f3f8f1);border-radius:18px;padding:12px;margin-top:4px}.flow-change-board.has-record{border-color:rgba(30,91,75,.35);box-shadow:inset 4px 0 0 var(--green2)}.flow-board-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.flow-board-title strong{color:var(--green);font-size:14px}.flow-board-title span{color:var(--muted);font-size:12px}.flow-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.flow-steps span{display:block;border:1px solid var(--line);background:#fff;border-radius:13px;padding:8px;min-height:62px;font-size:12px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}.flow-steps b{display:block;color:var(--gold);font-size:11px;margin-bottom:3px}.tuition-detail-panel{margin-top:16px}.tuition-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.tuition-detail-grid div{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px}.tuition-detail-grid b{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.tuition-detail-grid strong{font-size:18px;color:var(--green)}.tuition-open{margin-top:5px;background:rgba(255,255,255,.88)!important;color:var(--green)!important;border:1px solid rgba(18,61,52,.2)!important}.tu-cell button.readonly{border:1px dashed #cbd5e1}.hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:1180px){.live-flow-row{grid-template-columns:1fr 1fr}.flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.tuition-detail-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.live-flow-row{grid-template-columns:1fr}.flow-steps{grid-template-columns:1fr}.flow-board-title{display:grid}.tuition-detail-grid{grid-template-columns:1fr}.hero-actions{justify-content:stretch}.hero-actions button{width:100%}}

/* v0.6 today-class as source of truth */
.today-source-banner{border-color:rgba(30,91,75,.25);background:linear-gradient(135deg,#f7fbf4,#fffdf8)}
.today-journal-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.today-journal-card{display:grid;gap:12px}.today-journal-card.risk{border-color:rgba(199,92,82,.34);background:#fff9f8}.today-journal-card.watch{border-color:rgba(201,156,66,.32);background:#fffdf3}.today-journal-card.ok{border-color:rgba(30,91,75,.22);background:#fbfefb}.journal-flow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.journal-flow-grid div{border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px;min-height:72px}.journal-flow-grid b{display:block;color:var(--green);font-size:12px;margin-bottom:5px}.journal-flow-grid span{display:block;color:var(--charcoal);font-size:13px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.journal-parent-summary{border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px}.journal-parent-summary summary{cursor:pointer;font-weight:900;color:var(--green)}.journal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.today-class-summary .tu-stats{margin-bottom:0}
@media (max-width:1180px){.today-journal-board{grid-template-columns:1fr}}
@media (max-width:760px){.journal-flow-grid{grid-template-columns:1fr}.journal-actions{justify-content:stretch}.journal-actions a,.journal-actions button{flex:1}}


/* v0.7 exam analysis PoC */
.exam-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px}.exam-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:10px 0}.exam-upload-form input[type=file]{background:#fff}.exam-result-list{display:grid;gap:14px}.exam-result-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:14px}.exam-result-card.sent{background:#fbfefb}.exam-preview{border:1px solid var(--line);border-radius:16px;background:#f8faf8;overflow:hidden;max-height:340px;display:grid;place-items:start center;padding:0;color:var(--green);position:relative}.exam-preview img{width:100%;height:auto;display:block}.exam-preview-button:hover{box-shadow:0 0 0 4px rgba(30,91,75,.12);border-color:var(--green2)}.exam-preview-button span{position:absolute;left:10px;right:10px;bottom:10px;border-radius:999px;background:rgba(18,61,52,.92);color:#fff;font-size:12px;font-weight:900;padding:7px 10px;text-align:center}.exam-result-body{display:grid;gap:8px;align-content:start}.exam-result-body h3{margin:0;color:var(--green);font-size:22px}.exam-result-body p{margin:0;color:var(--muted);line-height:1.55}.exam-result-body .row-actions{display:flex;flex-wrap:wrap;gap:8px}.exam-result-body .row-actions button,.exam-result-body .row-actions a{width:auto}.exam-guide-panel ul{margin:8px 0 0;padding-left:18px;color:var(--muted);line-height:1.7}.exam-hero{border-color:rgba(18,61,52,.25);background:linear-gradient(135deg,#f7fbf4,#fff7e4)}.exam-record-panel summary,.exam-failed-panel summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--green)}.exam-record-panel summary span,.exam-failed-panel summary span{border-radius:999px;background:#eef6ee;color:var(--green);font-size:12px;font-weight:900;padding:5px 9px}.exam-record-panel[open] summary,.exam-failed-panel[open] summary{margin-bottom:14px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
@media (max-width:1180px){.exam-grid,.exam-result-card{grid-template-columns:1fr}.exam-preview{max-height:460px}.exam-upload-form{grid-template-columns:1fr}}
@media (max-width:760px){.exam-result-body .row-actions{display:grid;grid-template-columns:1fr 1fr}.exam-result-body .row-actions button,.exam-result-body .row-actions a{width:100%}}


/* v0.7 control-room date calendar + duplicate reduction */
.control-date-layout{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.45fr);gap:18px;align-items:start}.control-calendar-panel{position:sticky;top:18px}.control-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.control-day{min-height:92px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;color:var(--charcoal);padding:10px;display:grid;align-content:start;gap:5px;text-align:left;box-shadow:0 10px 24px rgba(18,61,52,.05)}.control-day span{font-weight:900;font-size:18px}.control-day b{font-size:20px;color:var(--green)}.control-day small{font-size:11px;color:var(--muted);line-height:1.35}.control-day.ok{border-color:rgba(30,91,75,.28);background:#f8fff8}.control-day.watch{border-color:rgba(201,156,66,.38);background:#fffaf0}.control-day.risk{border-color:rgba(199,92,82,.4);background:#fff8f7}.control-day.selected{outline:3px solid rgba(18,61,52,.22);background:#123d34;color:white}.control-day.selected b,.control-day.selected small{color:white}.control-selected-stack{display:grid;gap:14px}.today-journal-board.compact{grid-template-columns:1fr}.duplicate-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;background:#fff0d7;color:#7a4d00;border:1px solid rgba(201,156,66,.4);padding:6px 10px;font-size:12px}.duplicate-list p{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;margin:8px 0 0}.v.danger{color:#c75c52}
@media (max-width:1180px){.control-date-layout{grid-template-columns:1fr}.control-calendar-panel{position:static}.control-calendar-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:760px){.control-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-day{min-height:78px}.today-journal-board.compact{display:grid}}


/* v0.8 control-room calendar-first + tabs */
.control-room-v2{gap:12px}.control-topline{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:6px 2px}.control-topline h2{margin:2px 0 0;font-size:28px;letter-spacing:-.8px;color:var(--green)}.control-metric-bar{display:flex;gap:8px;flex-wrap:wrap}.control-metric-bar span{border:1px solid var(--line);background:rgba(255,253,248,.85);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:13px;font-weight:800}.control-metric-bar b{color:var(--green);font-size:16px}.control-metric-bar b.warn{color:#d88c35}.control-metric-bar b.ok{color:#16a34a}.control-metric-bar b.danger{color:#c75c52}.control-calendar-panel.full{position:static;padding:18px}.control-calendar-grid.big{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.control-calendar-grid.big .control-day{min-height:118px;padding:13px;border-radius:20px}.control-calendar-grid.big .control-day span{font-size:22px}.control-calendar-grid.big .control-day b{font-size:26px}.control-calendar-grid.big .control-day small{font-size:12px}.selected-day.compact{padding:16px 18px}.selected-day.compact .panel-head{margin-bottom:12px}.control-tabs{display:flex;gap:8px;flex-wrap:wrap}.control-tabs button{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--green);font-weight:900;padding:9px 13px}.control-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.control-tab-panel{display:grid;gap:14px}.control-tab-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.control-tab-summary div{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}.control-tab-summary b{display:block;color:var(--muted);font-size:12px}.control-tab-summary strong{display:block;color:var(--green);font-size:28px;margin-top:4px}.control-tab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.control-tab-grid.single{grid-template-columns:1fr}.control-tab-grid section{border:1px solid var(--line);border-radius:22px;background:rgba(255,253,248,.9);padding:16px;display:grid;gap:10px}.control-tab-grid h3{margin:0;color:var(--green)}.control-mini-card,.control-issue-row{border:1px solid var(--line);border-radius:17px;background:#fff;padding:12px;display:grid;gap:7px}.control-mini-card>div{display:flex;justify-content:space-between;gap:8px;align-items:center}.control-mini-card strong,.control-issue-row strong{color:var(--charcoal)}.control-mini-card span,.control-issue-row b{border-radius:999px;background:#eef6ee;color:var(--green);font-size:12px;font-weight:900;padding:5px 8px}.control-mini-card p,.control-issue-row span{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.control-mini-card.risk,.control-issue-row.risk{background:#fff9f8;border-color:rgba(199,92,82,.34)}.control-mini-card.watch,.control-issue-row.watch{background:#fffdf3;border-color:rgba(201,156,66,.32)}.control-help summary{cursor:pointer;color:var(--green);font-weight:900}.control-help .today-source-banner{margin-top:12px}.control-notice-grid{grid-template-columns:1fr}
@media (max-width:1180px){.control-calendar-grid.big{grid-template-columns:repeat(7,minmax(0,1fr))}.control-tab-grid{grid-template-columns:1fr}}
@media (max-width:760px){.control-topline{display:grid}.control-topline .hero-actions{justify-content:stretch}.control-topline .hero-actions a{width:100%}.control-metric-bar{display:grid;grid-template-columns:1fr 1fr}.control-calendar-grid.big{grid-template-columns:repeat(2,minmax(0,1fr))}.control-calendar-grid.big .control-day{min-height:96px}.control-tabs{display:grid;grid-template-columns:1fr 1fr}.control-tab-summary{grid-template-columns:1fr}.control-tab-grid section{padding:13px}}

/* v0.9 embedded modules inside independent portal */
.embedded-module-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(135deg,#fffdf8,#eef6ee)}
.embedded-module-hero h2{margin:4px 0 8px;font-size:28px;color:var(--green)}
.embedded-module-hero p{margin:0;color:var(--muted);line-height:1.6}
.embedded-module-frame-wrap{padding:0;overflow:hidden;min-height:76vh;background:#fff}
.embedded-module-frame{display:block;width:100%;height:76vh;border:0;background:#fff}
@media (max-width:760px){.embedded-module-hero{display:grid}.embedded-module-hero .as-link{width:100%}.embedded-module-frame{height:78vh}.embedded-module-frame-wrap{min-height:78vh}}

/* Integrated today-class board inside 3820 portal */
.integrated-today-class-page{display:grid;gap:18px}.integrated-schedule-panel{display:grid;gap:14px}.integrated-schedule-grid{display:grid;grid-template-columns:62px repeat(7,minmax(54px,1fr));gap:5px}.schedule-corner,.schedule-day,.schedule-time{min-height:38px;border-radius:12px;background:#f1eadb;color:var(--muted);display:grid;place-items:center;font-size:12px;font-weight:950}.schedule-day.today{background:#fff1da;color:#7a4d05}.schedule-time{color:var(--green)}.schedule-cell{min-height:42px;border-radius:12px;border:1px solid var(--line);background:white;color:var(--muted);font-weight:950;display:grid;place-items:center;gap:2px}.schedule-cell.has{background:#e9f3ee;color:var(--green)}.schedule-cell.selected{background:var(--green);color:#fffaf0;outline:2px solid var(--gold)}.schedule-cell.today:not(.selected){border-color:var(--gold)}.schedule-cell.empty{opacity:.35;cursor:default}.schedule-cell span{font-size:10px}.integrated-board-panel{display:grid;gap:13px}.integrated-board-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;border:1px solid var(--line);border-radius:20px;background:var(--paper);padding:16px;box-shadow:var(--shadow)}.integrated-board-head h2{margin:0;color:var(--green);font-size:20px}.integrated-board-head p{margin:4px 0 0;color:var(--muted);font-size:13px;font-weight:800}.integrated-board-head>span{max-width:46%;color:var(--green);font-size:13px;font-weight:950;text-align:right;line-height:1.55}.integrated-card-list{display:grid;gap:13px}.integrated-student-card{border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:0 12px 30px rgba(18,61,52,.09);padding:14px}.integrated-student-card.active{box-shadow:inset 5px 0 0 var(--green),0 12px 30px rgba(18,61,52,.09)}.student-main-row{display:grid;grid-template-columns:132px minmax(0,1fr) minmax(0,1.3fr) 130px 94px;gap:10px;align-items:stretch}.student-namebox{display:grid;align-content:center;gap:5px}.student-namebox strong{font-size:22px;color:var(--green);line-height:1.1}.student-namebox span{color:var(--muted);font-size:12px;font-weight:850}.lesson-mini{min-width:0;border:1px solid var(--line);border-radius:16px;background:#fbf8f1;padding:11px}.lesson-mini small{display:block;color:var(--muted);font-size:12px;font-weight:950}.lesson-mini b{display:block;margin:5px 0 3px;color:var(--charcoal);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.lesson-mini p{margin:0;color:var(--muted);font-size:12px;font-weight:780;line-height:1.35;overflow-wrap:anywhere}.state-box{display:grid;gap:6px;align-content:center}.state-box small{font-size:11px;color:#126236;font-weight:900;text-align:center}.status-pill{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:950;background:#f1efe8;color:var(--muted)}.status-pill.ok{background:#e6f5eb;color:#126236}.status-pill.watch{background:#fff1da;color:#7a4d05}.status-pill.risk{background:#fff0ed;color:#b14437}.entry-done{align-self:center;border:1px solid var(--line);border-radius:999px;background:#f1efe8;color:var(--green);padding:9px 10px;font-weight:950}.entry-done.done{background:#126236;color:white;border-color:#126236}.integrated-state-panel{margin-top:14px;border:1px solid #c6d8cf;border-radius:20px;background:#f6fbf7;padding:13px;display:grid;gap:12px}.integrated-state-panel[hidden]{display:none}.problem-panel,.unit-status-panel,.unit-pool-panel{border:1px solid #c6d8cf;border-radius:17px;background:#fffdf8;padding:13px}.panel-head.mini{margin-bottom:10px}.panel-head.mini h3{margin:0;color:var(--green);font-size:16px}.panel-head.mini p{margin:3px 0 0;color:var(--muted);font-size:12px;font-weight:800}.problem-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.problem-check{display:flex;align-items:center;gap:7px;border:1px solid #bdd6ca;border-radius:999px;background:white;color:var(--green);padding:8px 10px;font-size:12px;font-weight:920}.problem-check input{width:14px;height:14px}.unit-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.unit-status-col{border:1px solid var(--line);border-radius:16px;background:white;overflow:hidden;min-height:130px}.unit-status-col h4{margin:0;padding:10px;text-align:center;font-size:14px}.unit-status-col.progress h4{background:#e4edff;color:#587ea6}.unit-status-col.check h4{background:#fff1da;color:#7a4d05}.unit-status-col.wrong h4{background:#fff0ed;color:#b14437}.unit-status-col.done h4{background:#e6f5eb;color:#126236}.unit-status-col>div{display:grid;gap:7px;padding:9px}.unit-status-chip,.unit-pool-row{text-align:left;border:1px solid #d8c9ad;border-radius:12px;background:#fffdf8;color:var(--charcoal);padding:9px;display:grid;gap:3px}.unit-status-chip small,.unit-pool-row small{color:var(--muted);font-size:11px;font-weight:850}.unit-status-chip b,.unit-pool-row b{font-size:12px;line-height:1.35;overflow-wrap:anywhere}.none{margin:0;border:1px dashed #d8c9ad;border-radius:12px;padding:14px 8px;color:#9a8f7d;text-align:center;font-size:12px;font-weight:900}.unit-pool-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.unit-pool-tab{border:1px solid #bdd6ca;border-radius:999px;background:white;color:var(--green);padding:7px 10px;font-size:12px;font-weight:950}.unit-pool-tab.active{background:var(--green);color:#fffaf0}.unit-pool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unit-pool-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.unit-pool-row em{font-style:normal;padding:4px 7px;border-radius:999px;background:#e4edff;color:#587ea6;font-size:11px;font-weight:950}.quick-record-strip{margin-top:12px;border:1px solid #c6d8cf;border-radius:17px;background:#f6fbf7;padding:12px}.quick-record-strip h3{margin:0 0 9px;color:var(--green);font-size:15px}.quick-record-strip>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.quick-record-strip p{margin:0;border:1px solid var(--line);border-radius:14px;background:white;padding:10px;display:grid;gap:5px}.quick-record-strip b{color:var(--green);font-size:12px}.quick-record-strip span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.4}@media(max-width:1100px){.student-main-row{grid-template-columns:1fr 1fr}.student-namebox,.lesson-mini.wide{grid-column:1/-1}.problem-check-grid,.unit-status-grid,.unit-pool-grid,.quick-record-strip>div{grid-template-columns:1fr 1fr}}@media(max-width:760px){.integrated-schedule-grid{grid-template-columns:48px repeat(7,minmax(36px,1fr));font-size:11px}.student-main-row,.problem-check-grid,.unit-status-grid,.unit-pool-grid,.quick-record-strip>div{grid-template-columns:1fr}.integrated-board-head{display:grid}.integrated-board-head>span{max-width:none;text-align:left}}

.integrated-alrim-section{display:grid;gap:13px}.integrated-alrim-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.integrated-alrim-card{border:1px solid rgba(18,61,52,.16);border-radius:22px;background:#fffdf8;overflow:hidden;box-shadow:0 10px 28px rgba(18,61,52,.08)}.integrated-alrim-card.has-notice{border-color:rgba(18,98,54,.35);background:linear-gradient(180deg,#eef9f1 0%,#fffdf8 44%)}.alrim-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:14px 15px;background:linear-gradient(135deg,var(--green),#1e5b4b);color:white}.alrim-card-head strong{display:block;font-size:17px}.alrim-card-head span{display:block;margin-top:3px;color:rgba(255,255,255,.76);font-size:12px;font-weight:800}.alrim-card-head b{padding:5px 8px;border-radius:999px;background:#f1cf7a;color:var(--green);font-size:11px}.alrim-flow-lines{display:grid;gap:8px;padding:13px}.alrim-flow-lines p{margin:0;border:1px solid var(--line);border-radius:14px;background:white;padding:9px;display:grid;gap:4px}.alrim-flow-lines b{color:var(--green);font-size:12px}.alrim-flow-lines span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.4}.integrated-alrim-card pre{white-space:pre-wrap;margin:0 13px 13px;padding:12px;border-radius:15px;background:#f8faf8;border:1px solid var(--line);color:var(--charcoal);font-family:inherit;font-size:12px;font-weight:800;line-height:1.55}.integrated-alrim-card.draft pre{color:#7a6b51;background:#fffaf0}@media(max-width:1100px){.integrated-alrim-grid{grid-template-columns:1fr}}
/* 2026-07-04 integrated today-class unit state save/move */
.unit-status-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;text-align:left}
.unit-status-chip span{display:grid;gap:3px;min-width:0}
.unit-move-btn{border-radius:999px;background:#e9f3ee;color:var(--green);padding:4px 7px;font-weight:950}
.unit-move-btn:hover{background:var(--green);color:#fffaf0}
.unit-pool-row[hidden]{display:none!important}
/* 2026-07-04 full integrated unit-pool controls */
.integrated-textbook-tools{display:grid;gap:8px;margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fffdf8}
.integrated-textbook-tools>div:first-child{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.integrated-textbook-tools span{color:var(--muted);font-size:12px;font-weight:800}.integrated-textbook-picker[hidden]{display:none}.textbook-search-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px}.integrated-textbook-result{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:white;margin-top:6px}.integrated-textbook-result span{display:grid;gap:3px}.integrated-textbook-result small{color:var(--muted);font-size:11px;font-weight:800}
.unit-pool-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;padding:8px;border:1px dashed #cdbb97;border-radius:13px;background:#fffaf0}.unit-pool-bulk label{font-size:12px;font-weight:950;color:var(--green)}.unit-pool-bulk .danger,.unit-pool-row .danger,.tiny-unit-btn.danger{background:#b65743!important;color:#fff!important}
.unit-pool-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left}.unit-pool-row>label{display:flex;gap:7px;align-items:center;min-width:0}.unit-pool-row>label>span,.unit-pool-row.excluded>span{display:grid;gap:3px;min-width:0}.unit-pool-row>div{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.unit-pool-row button{border-radius:999px;background:#e9f3ee;color:var(--green);padding:5px 8px;font-size:11px;font-weight:950}.unit-pool-row[hidden]{display:none!important}.integrated-excluded-units{margin-top:10px}.integrated-excluded-units summary{cursor:pointer;color:var(--green);font-weight:950}
.unit-status-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:6px;align-items:center;text-align:left}.unit-status-chip span{display:grid;gap:3px;min-width:0}.unit-status-chip.next-unit{outline:2px solid var(--gold);background:#fff8df}.unit-move-btn,.tiny-unit-btn{border-radius:999px;background:#e9f3ee;color:var(--green);padding:4px 7px;font-weight:950;font-size:11px}.unit-move-btn:hover,.tiny-unit-btn:hover{background:var(--green);color:#fffaf0}
@media(max-width:760px){.textbook-search-row{grid-template-columns:1fr}.integrated-textbook-result,.unit-pool-row{grid-template-columns:1fr}.unit-pool-row>div{justify-content:stretch}.unit-pool-row button{flex:1}.unit-status-chip{grid-template-columns:auto minmax(0,1fr) auto;}.tiny-unit-btn{grid-column:span 1}}
/* 2026-07-04 unit-pool row: title above actions */
.unit-pool-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important;text-align:left!important;padding:10px 11px!important}
.unit-pool-title-line{display:flex!important;gap:8px!important;align-items:flex-start!important;min-width:0!important;width:100%!important}
.unit-pool-title-line>span,.unit-pool-row.excluded>.unit-pool-title-line{display:grid!important;gap:3px!important;min-width:0!important;width:100%!important}
.unit-pool-title-line small{font-size:11px!important;color:var(--muted)!important;font-weight:850!important;line-height:1.2!important}
.unit-pool-title-line b{font-size:14px!important;color:var(--green)!important;line-height:1.25!important;word-break:keep-all!important;overflow-wrap:anywhere!important}
.unit-pool-action-line{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;width:100%!important;justify-content:stretch!important}
.unit-pool-action-line button{width:100%!important;border-radius:999px!important;padding:7px 8px!important;font-size:12px!important;font-weight:950!important}
.integrated-excluded-units .unit-pool-action-line{grid-template-columns:1fr!important}
/* 2026-07-04 timetable slot -> names -> selected student card */
.integrated-student-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0 14px;padding:10px;border:1px dashed rgba(18,61,52,.22);border-radius:16px;background:#fffaf0}
.integrated-student-picker.empty{display:block;color:var(--muted);font-weight:900}
.student-name-pill{display:grid;gap:3px;text-align:left;border:1px solid rgba(18,61,52,.18);border-radius:14px;background:#fffdf8;color:var(--green);padding:10px 11px;box-shadow:0 5px 14px rgba(18,61,52,.06)}
.student-name-pill strong{font-size:15px;line-height:1.15}.student-name-pill span{font-size:11px;color:var(--muted);font-weight:850;line-height:1.25}.student-name-pill.selected{background:var(--green);color:#fffaf0;border-color:var(--green)}.student-name-pill.selected span{color:#f7e7bf}
/* 2026-07-04 unit lifecycle: pool -> progress -> checking -> confirmed complete */
.unit-progress-panel{display:grid;gap:10px;border:1px solid rgba(18,61,52,.14);border-radius:18px;background:#fffdf8;padding:12px;margin-top:12px}
.unit-progress-list{display:grid;gap:8px}.unit-progress-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(90px,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:white}.unit-progress-row>div:first-child{display:grid;gap:2px}.unit-progress-row b{color:var(--green);font-size:13px}.unit-progress-row span{color:var(--muted);font-size:11px;font-weight:850}.unit-progress-row strong{color:var(--green);font-size:13px}.unit-progress-bar{height:9px;border-radius:999px;background:#eadfc9;overflow:hidden}.unit-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#d7a947)}
.course-range-mini{margin-top:10px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px;display:grid;gap:8px}.integrated-alrim-card .course-range-mini{margin:0 13px 12px}.course-range-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.course-range-top b{color:var(--green);font-size:12px}.course-range-top span{color:var(--muted);font-size:12px;font-weight:900}.course-range-bar{height:8px;border-radius:999px;background:#eadfc9;overflow:hidden}.course-range-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1e5b4b,#c99c42)}.course-range-mini.empty .course-range-bar i{background:#cbd5c7}.course-range-mini.soon{border-color:rgba(201,156,66,.35);background:#fffaf0}.course-range-mini.over{border-color:rgba(199,92,82,.35);background:#fff8f7}.course-range-mini.over .course-range-top span{color:var(--red)}.course-range-form{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr)) auto;gap:8px;align-items:end}.course-range-form label{font-size:11px}.course-range-form input{padding:8px 9px;border-radius:11px}.course-range-form button{padding:8px 10px;border-radius:999px}
.confirmed-completed-units{border:1px dashed #cdbb97;border-radius:14px;background:#fffaf0;padding:8px}.confirmed-completed-units summary{cursor:pointer;font-weight:950;color:var(--green)}.completed-unit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border-bottom:1px solid rgba(18,61,52,.09)}.completed-unit-row:last-child{border-bottom:0}.completed-unit-row span{display:grid;gap:3px}.completed-unit-row small{color:var(--muted);font-size:11px;font-weight:850}.completed-unit-row b{color:var(--green);font-size:13px}.tiny-unit-btn.confirm{background:#123D34!important;color:#fffaf0!important}.unit-status-col h4 small{display:block;margin-top:2px;color:#9a7d3a;font-size:10px;font-weight:900}.unit-pool-tab.book-tab{background:#fffdf8;border-color:#d8c495;color:#7a4d05}.unit-pool-tab.book-tab.active{background:#7a4d05;color:#fffaf0}
.unit-status-chip{grid-template-columns:auto minmax(0,1fr) auto auto auto auto!important}.unit-status-chip .tiny-unit-btn{min-width:42px}
@media(max-width:760px){.unit-progress-row{grid-template-columns:1fr}.course-range-form{grid-template-columns:1fr 1fr}.course-range-form button{grid-column:1/-1}.completed-unit-row{grid-template-columns:1fr}.unit-status-chip{grid-template-columns:auto minmax(0,1fr) auto!important}.unit-status-chip .tiny-unit-btn{grid-column:auto}}
/* 2026-07-04 status chip: full title above, actions below */
.unit-status-chip{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important;text-align:left!important;padding:12px!important;min-width:0!important}
.unit-chip-title{display:grid!important;gap:4px!important;min-width:0!important;width:100%!important}
.unit-chip-title small{display:block!important;color:var(--muted)!important;font-size:12px!important;font-weight:900!important;line-height:1.25!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important}
.unit-chip-title b{display:block!important;color:#1d2c27!important;font-size:15px!important;font-weight:950!important;line-height:1.35!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important}
.unit-chip-actions{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:7px!important;width:100%!important;align-items:center!important}
.unit-chip-actions .unit-move-btn,.unit-chip-actions .tiny-unit-btn{width:100%!important;min-width:0!important;padding:8px 7px!important;border-radius:999px!important;font-size:12px!important;line-height:1.1!important;text-align:center!important}
.unit-status-chip.problem-checked{border-color:rgba(182,87,67,.55)!important;background:#fff7f2!important}
.unit-chip-actions .tiny-unit-btn.problem.active{background:#b65743!important;color:#fff!important}
.unit-chip-actions .tiny-unit-btn.homework{background:#fff2c6!important;color:#7a4d05!important}
.unit-chip-actions .tiny-unit-btn.homework:hover{background:var(--gold)!important;color:#1d2c27!important}
.unit-chip-actions:has(.confirm){grid-template-columns:repeat(8,minmax(0,1fr))!important}
.integrated-homework-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px;padding:12px;border:1px dashed rgba(201,156,66,.45);border-radius:16px;background:#fffaf0}
.integrated-homework-form label{display:grid;gap:6px;min-width:0}.integrated-homework-form label span{font-size:12px;font-weight:950;color:var(--green)}
.integrated-homework-input{width:100%;min-height:76px;border:1px solid var(--line);border-radius:14px;padding:11px 12px;font:inherit;line-height:1.5;background:#fff;resize:vertical}
.integrated-homework-input:focus{outline:3px solid rgba(201,156,66,.28);border-color:var(--gold)}
@media(max-width:760px){.unit-chip-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}.unit-chip-actions:has(.confirm){grid-template-columns:repeat(2,minmax(0,1fr))!important}.unit-chip-title b{font-size:15px!important}.integrated-homework-form{grid-template-columns:1fr}.integrated-homework-form button{width:100%}}
/* 2026-07-04 next lesson order input */
.unit-chip-main{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:10px!important;align-items:start!important;width:100%!important;min-width:0!important}
.unit-order-label{display:grid!important;gap:3px!important;justify-items:center!important;align-self:start!important;min-width:48px!important}
.unit-order-label span{font-size:10px!important;font-weight:950!important;color:var(--muted)!important;line-height:1!important}
.unit-order-input{width:44px!important;height:38px!important;border:2px solid rgba(18,61,52,.2)!important;border-radius:12px!important;text-align:center!important;font-size:17px!important;font-weight:950!important;color:var(--green)!important;background:#fffaf0!important;padding:0!important}
.unit-order-input:focus{outline:3px solid rgba(215,169,71,.28)!important;border-color:var(--green)!important;background:#fff!important}
@media(max-width:760px){.unit-chip-main{grid-template-columns:auto minmax(0,1fr)!important}.unit-order-input{width:42px!important;height:36px!important}}
/* 2026-07-04 collapsible unit pool */
.unit-pool-panel.collapsible{padding:12px!important;border:1px solid rgba(18,61,52,.14)!important;border-radius:18px!important;background:#fffdf8!important}
.unit-pool-toggle-head{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;margin:0!important}
.unit-pool-toggle-btn{min-width:118px!important;font-weight:950!important;background:#e9f3ee!important;color:var(--green)!important;border-radius:999px!important}
.unit-pool-collapsible-body{display:grid!important;gap:10px!important;margin-top:10px!important}
.unit-pool-collapsible-body[hidden]{display:none!important}
@media(max-width:760px){.unit-pool-toggle-head{align-items:stretch!important}.unit-pool-toggle-btn{width:100%!important}}
/* 2026-07-04 existing completed units */
.unit-pool-bulk .done,.unit-pool-row .done{background:#7a4d05!important;color:#fffaf0!important}
.completion-source{display:inline-block;margin-right:5px;padding:2px 6px;border-radius:999px;font-style:normal;font-size:10px;font-weight:950;line-height:1;background:#e9f3ee;color:var(--green)}
.completion-source.existing{background:#fff1da;color:#7a4d05}.completion-source.confirmed{background:#e9f3ee;color:var(--green)}
.completed-unit-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.completed-unit-actions .tiny-unit-btn{min-width:64px}
@media(max-width:760px){.completed-unit-actions{justify-content:stretch}.completed-unit-actions .tiny-unit-btn{flex:1}}
/* 2026-07-04 compact unit-pool action buttons */
.unit-pool-row .unit-pool-action-line{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important;align-items:center!important;justify-content:stretch!important;width:100%!important}
.unit-pool-row .unit-pool-action-line button{width:100%!important;min-width:0!important;padding:7px 4px!important;border-radius:14px!important;font-size:12px!important;font-weight:950!important;line-height:1.05!important;white-space:nowrap!important;text-align:center!important}
.unit-pool-row{gap:7px!important;padding:9px 10px!important}
.unit-pool-title-line{align-items:start!important}.unit-pool-title-line input{margin-top:2px!important}.unit-pool-title-line small{font-size:12px!important;line-height:1.15!important}.unit-pool-title-line b{font-size:14px!important;line-height:1.2!important}
@media(max-width:760px){.unit-pool-row .unit-pool-action-line{grid-template-columns:repeat(4,minmax(0,1fr))!important}.unit-pool-row .unit-pool-action-line button{font-size:11px!important;padding:7px 3px!important}}
/* 2026-07-04 current textbook progress filter */
.current-textbook-selector{display:grid;gap:8px;padding:10px;border:1px dashed rgba(18,61,52,.2);border-radius:14px;background:#fffaf0;margin-bottom:10px}
.current-textbook-selector>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.current-textbook-selector b{color:var(--green);font-size:13px}.current-textbook-selector span{color:var(--muted);font-size:11px;font-weight:850}
.current-textbook-chips{display:flex;flex-wrap:wrap;gap:6px}.current-textbook-chip{border:1px solid #d8c495;border-radius:999px;background:#fffdf8;color:#7a4d05;padding:7px 9px;font-size:12px;font-weight:950;line-height:1.1}.current-textbook-chip.active{background:var(--green);border-color:var(--green);color:#fffaf0}
@media(max-width:760px){.current-textbook-selector>div:first-child{display:grid}.current-textbook-chip{flex:1;min-width:110px}}


/* 2026-07-04 lesson date + past textbook records */
.integrated-date-tools{display:flex;gap:8px;align-items:end;flex-wrap:wrap;justify-content:flex-end}.integrated-date-tools label{min-width:150px;color:var(--green);font-size:12px;font-weight:950}.integrated-date-tools input{padding:8px 10px;border-radius:999px;background:#fffdf8;font-size:13px}.current-textbook-chip-wrap{display:inline-flex;align-items:center;border:1px solid #d8c495;border-radius:999px;background:#fffdf8;overflow:hidden}.current-textbook-chip-wrap .current-textbook-chip{border:0;border-radius:0;background:transparent}.current-textbook-chip-wrap .current-textbook-chip.active{background:var(--green);color:#fffaf0}.current-textbook-past{align-self:stretch;border-left:1px solid #eadbb8;background:#fff7e4;color:#8a5b12;padding:6px 8px;font-size:10px;font-weight:950}.past-textbook-records{border:1px dashed rgba(18,61,52,.2);border-radius:14px;background:#fbfaf4;padding:10px;margin:10px 0}.past-textbook-records summary{cursor:pointer;color:var(--green);font-weight:950;font-size:13px}.past-textbook-row{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px;margin-top:8px}.past-textbook-row span{display:grid;gap:2px}.past-textbook-row b{color:var(--charcoal);font-size:13px}.past-textbook-row small{color:var(--muted);font-size:11px;font-weight:850}@media(max-width:760px){.integrated-date-tools{display:grid;grid-template-columns:1fr}.past-textbook-row{display:grid}.current-textbook-chip-wrap{width:100%}.current-textbook-chip-wrap .current-textbook-chip{flex:1}}


.weekend-class-host{gap:12px}.weekend-class-host .embedded-module-hero{margin-bottom:0}.weekend-compact-hero{padding:14px 18px}.weekend-class-frame{display:block;width:100%;height:calc(100vh - 170px);min-height:760px;border:0;border-radius:24px;background:#efe8db;box-shadow:0 14px 40px rgba(18,61,52,.10);overflow:hidden}.hero-action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}@media(max-width:760px){.weekend-class-frame{height:calc(100vh - 120px);min-height:820px;border-radius:18px}.weekend-compact-hero{padding:12px}}


/* 2026-07-07 control-room pending 1-2: tuition popup + student consultation calendar */
.tuition-workbench{display:grid;gap:12px;background:linear-gradient(135deg,#fffdf8,#eef6ee)}
.tuition-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.tuition-action-card{display:grid;gap:6px;text-align:left;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--charcoal);padding:13px;box-shadow:0 8px 22px rgba(18,61,52,.07)}
.tuition-action-card strong{font-size:18px;color:var(--green)}
.tuition-action-card span{font-size:13px;font-weight:950}.tuition-action-card small{color:var(--muted);font-size:12px;line-height:1.4}
.tuition-action-card.unpaid,.tuition-action-card.urging{border-color:rgba(199,92,82,.36);background:#fff8f7}.tuition-action-card.partial,.tuition-action-card.scheduled{border-color:rgba(201,156,66,.4);background:#fffaf0}.tuition-action-card.paid{border-color:rgba(22,163,74,.25);background:#f5fff7}
.tuition-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(12,30,25,.52);padding:18px;overflow:auto}
.tuition-modal{width:min(980px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 90px rgba(0,0,0,.24)}
.tuition-modal .panel-head{align-items:flex-start}.tuition-modal .summary-list{margin-top:12px}
.consultation-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:16px;align-items:start}
.consult-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.consult-day{min-height:82px;border:1px solid var(--line);border-radius:16px;background:#fffdf8;color:var(--charcoal);padding:9px;display:grid;align-content:start;gap:4px;text-align:left}
.consult-day span{font-size:18px;font-weight:950}.consult-day b{font-size:20px;color:var(--green)}.consult-day small{font-size:11px;color:var(--muted);font-weight:850;line-height:1.25}
.consult-day.watch{background:#fffaf0;border-color:rgba(201,156,66,.42)}.consult-day.ok{background:#f6fff7;border-color:rgba(22,163,74,.26)}.consult-day.selected{background:var(--green);color:#fffaf0;outline:3px solid rgba(201,156,66,.35)}.consult-day.selected b,.consult-day.selected small{color:#fffaf0}
.consult-list{display:grid;gap:10px}.consult-item{border:1px solid var(--line);border-radius:18px;background:#fff;padding:13px;display:grid;gap:8px}.consult-item.watch{background:#fffaf0;border-color:rgba(201,156,66,.32)}.consult-item.ok{background:#f8fff8;border-color:rgba(22,163,74,.24)}
.consult-item>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.consult-item strong{color:var(--green);font-size:17px}.consult-item span{color:var(--muted);font-size:12px;font-weight:850}.consult-item h3{margin:0;font-size:17px}.consult-item p{margin:0;color:var(--charcoal);line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.consult-item footer{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.consultation-form textarea{grid-column:span 2}
@media(max-width:1180px){.consultation-layout{grid-template-columns:1fr}.consult-calendar{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:760px){.tuition-modal-backdrop{padding:8px;place-items:start}.tuition-modal{max-height:none}.consult-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.consult-item>div{display:grid}.consultation-form textarea{grid-column:auto}}

/* 2026-07-07 image-style parent notice preview */
.notice-report-preview{border:1px solid rgba(18,61,52,.16);border-radius:24px;background:#f7f1e6;padding:12px;display:grid;gap:10px;box-shadow:0 12px 30px rgba(18,61,52,.09)}
.notice-report-hero{display:flex;justify-content:space-between;gap:12px;align-items:center;border-radius:22px;background:var(--green);color:#f7f1e6;padding:16px 18px}.notice-report-hero span{display:block;font-weight:950;font-size:16px}.notice-report-hero small{display:block;margin-top:4px;color:#d8caa8;font-weight:850}.notice-report-hero h3{margin:4px 0 0;font-size:30px;line-height:1}.notice-report-hero p{margin:5px 0 0;color:#eadfc9;font-weight:850}.notice-report-hero>b{font-size:54px;line-height:1}
.notice-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.notice-report-summary div{border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px}.notice-report-summary small{display:block;color:var(--muted);font-size:11px;font-weight:900}.notice-report-summary strong{display:block;margin-top:4px;color:var(--green);font-size:16px;font-weight:950}
.notice-report-flow{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:8px;align-items:center;color:var(--green);font-size:12px;font-weight:950}.notice-report-flow i{height:3px;border-radius:999px;background:#d7a947}
.notice-report-box,.notice-report-progress{border:1px solid var(--line);border-radius:18px;background:#fff;padding:13px}.notice-report-box h4,.notice-report-progress h4{margin:0 0 7px;color:var(--green);font-size:16px}.notice-report-box p,.notice-report-progress p{margin:0;color:var(--charcoal);line-height:1.55;font-size:13px;word-break:keep-all;overflow-wrap:anywhere}.notice-report-box dl{margin:10px 0 0;display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;align-items:start;border-top:1px dashed #dfd3bb;padding-top:9px}.notice-report-box dt{color:#9a7d3a;font-weight:950;font-size:12px}.notice-report-box dd{margin:0;color:var(--charcoal);font-size:13px;line-height:1.45}.notice-report-box.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.notice-report-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;background:#eef6ee}.notice-report-progress strong{color:var(--green);font-size:36px;font-weight:950}.notice-report-progress small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:850}.notice-progress-bar{grid-column:1/-1;height:10px;border-radius:999px;background:#d9e1d3;overflow:hidden}.notice-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#d7a947)}
.notice-report-next{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:center;border-radius:16px;background:var(--green);color:#f7f1e6;padding:12px}.notice-report-next b{color:#e7cd86}.notice-report-next span{font-size:13px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}.notice-report-comment{margin:0;color:var(--muted);font-size:12px;line-height:1.45;text-align:center}
@media(max-width:760px){.notice-report-box.two,.notice-report-summary{grid-template-columns:1fr}.notice-report-hero h3{font-size:26px}.notice-report-progress strong{font-size:30px}}

/* 2026-07-07 human-style notice + entry/sent workflow */
.student-name-pill strong{display:flex;gap:8px;align-items:center;justify-content:space-between}.student-name-pill em{font-style:normal;font-size:11px;border-radius:999px;padding:4px 7px;background:#f1eadb;color:var(--green);white-space:nowrap}.student-name-pill.stage-입력완료 em,.student-name-pill.stage-발송완료 em{background:#e9f3ee}.student-name-pill.stage-입력중 em{background:#fff2c6;color:#7a4d05}.schedule-cell small{display:block;margin-top:2px;font-size:10px;color:var(--muted);font-weight:950;line-height:1.2}.schedule-cell.selected small,.schedule-cell.today small{color:inherit}
.integrated-notice-queue{background:linear-gradient(135deg,#fffdf8,#eef6ee)}.notice-queue-list{display:grid;gap:9px}.notice-queue-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px}.notice-queue-row strong{color:var(--green);font-size:15px}.notice-queue-row span{font-size:12px;font-weight:950;color:#7a4d05}.notice-queue-row.sent{background:#f6fff7;border-color:rgba(18,61,52,.18)}
.notice-report-preview.human{border:1px solid #e0d6c6;border-radius:26px;background:#fbfaf4;padding:14px;gap:12px;box-shadow:0 16px 36px rgba(18,61,52,.08);max-width:680px;margin:0 auto}.notice-report-preview.human .notice-report-hero{border-radius:24px;padding:22px 26px;background:linear-gradient(135deg,#003f30,#086047);min-height:128px}.notice-report-preview.human .notice-report-hero span{font-size:17px}.notice-report-preview.human .notice-report-hero small{font-size:14px;color:#f1e9d4}.notice-report-preview.human .notice-report-hero h3{font-size:34px;letter-spacing:-1px;margin-top:13px}.notice-report-preview.human .notice-report-hero>b{background:#fff;border-radius:22px;min-width:96px;height:96px;display:grid;place-items:center;font-size:62px}
.notice-report-preview.human .notice-report-summary{grid-template-columns:repeat(3,1fr);gap:12px}.notice-report-preview.human .notice-report-summary div{min-height:98px;border-radius:20px;background:#fff;border-color:#e0d6c6;display:grid;align-content:center;justify-items:center;text-align:center;gap:4px}.notice-report-preview.human .notice-report-summary i{font-style:normal;width:34px;height:34px;border-radius:999px;background:#eef6ee;color:var(--green);display:grid;place-items:center;font-weight:950}.notice-report-preview.human .notice-report-summary small{font-size:13px;color:#3e4b44}.notice-report-preview.human .notice-report-summary strong{font-size:18px;line-height:1.35;color:var(--green)}
.notice-report-main{border:1px solid #e0d6c6;border-radius:24px;background:#fff;padding:22px;display:grid;gap:14px}.notice-report-titleline{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:start}.notice-report-titleline>b{width:34px;height:34px;border-radius:999px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:18px}.notice-report-titleline h4{margin:2px 0 0;color:var(--green);font-size:20px}.notice-report-titleline em{font-style:normal;color:#31584b;font-size:12px;line-height:1.35;transform:rotate(-3deg);justify-self:start}.notice-report-main>p{margin:0;color:#222;line-height:1.75;font-size:16px;word-break:keep-all}.notice-homework-box{border:1px solid #dbe4d8;border-radius:18px;background:#f7fbf6;padding:14px 18px}.notice-homework-box h5,.notice-progress-card h5,.notice-two-box h5{margin:0 0 8px;color:var(--green);font-size:15px}.notice-homework-box p{margin:0;line-height:1.65;font-size:15px;color:#222}.notice-progress-card{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px;align-items:center;border:1px solid #e0d6c6;border-radius:18px;background:#fff;padding:16px}.notice-progress-card strong{display:block;color:var(--green);font-size:44px;line-height:1}.notice-progress-card p{margin:6px 0 0;color:#3e4b44;font-size:13px;line-height:1.5}.notice-ring{width:100px;height:100px;border-radius:50%;border:14px solid var(--green);border-left-color:#d9ded8;display:grid;place-items:center;color:var(--green);font-size:42px}.notice-progress-card .notice-progress-bar{grid-column:1/-1;height:12px;background:#e4e4e4;border-radius:999px;overflow:hidden}.notice-progress-card .notice-progress-bar i{display:block;height:100%;border-radius:999px;background:var(--green)}
.notice-report-main.second{background:#fff}.notice-two-box{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice-two-box>div{border:1px solid #e0d6c6;border-radius:18px;background:#fffdf8;padding:15px}.notice-two-box p{margin:0;font-size:14px;line-height:1.65;color:#222;word-break:keep-all}.notice-heart-box{border:1px solid #ead8b4;border-radius:22px;background:#fffaf0;padding:18px 22px}.notice-heart-box h4{margin:0 0 8px;color:#123d34;font-size:17px}.notice-heart-box p{margin:0;color:#222;line-height:1.7;font-size:14px;word-break:keep-all}.notice-heart-box em{display:block;text-align:center;margin-top:12px;color:#5a4b36;font-style:normal;font-weight:850}.notice-report-footer{border-radius:22px;background:var(--green);color:#fffaf0;padding:18px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:center}.notice-report-footer b{display:block;margin-bottom:5px}.notice-report-footer span,.notice-report-footer p{margin:0;color:#f1e9d4;font-size:13px;line-height:1.5}
@media(max-width:760px){.notice-report-preview.human .notice-report-summary,.notice-two-box,.notice-report-footer{grid-template-columns:1fr}.notice-report-preview.human .notice-report-hero{grid-template-columns:1fr}.notice-report-preview.human .notice-report-hero h3{font-size:28px}.notice-queue-row{grid-template-columns:1fr 1fr}.notice-queue-row button{width:100%}}

/* 2026-07-07 notice text-confirm + kakao copy mode */
.notice-queue-list.text-mode{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.notice-queue-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:14px;display:grid;gap:10px}.notice-queue-card.sent{background:#f6fff7}.notice-queue-card header{display:flex;justify-content:space-between;gap:10px;align-items:center}.notice-queue-card strong{color:var(--green);font-size:17px}.notice-queue-card header span{font-size:12px;font-weight:950;color:#7a4d05}.notice-queue-card pre,.notice-copy-text{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;font-family:inherit;line-height:1.72;color:#1f2925;background:#fffdf8;border:1px solid #eadfc9;border-radius:16px;padding:13px;margin:0;max-height:none}.notice-queue-card footer{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.notice-text-check{display:grid;gap:12px}.notice-text-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.notice-text-head b{display:block;color:var(--green);font-size:18px}.notice-text-head span{display:block;color:var(--muted);font-size:12px;font-weight:850;margin-top:3px}.notice-key-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.notice-key-lines p{margin:0;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.notice-key-lines b{display:block;color:var(--green);font-size:12px;margin-bottom:4px}.notice-key-lines span{display:block;color:var(--charcoal);font-size:13px;line-height:1.5;word-break:keep-all}.integrated-alrim-card.text-check-only{background:#fbfaf4}@media(max-width:760px){.notice-key-lines{grid-template-columns:1fr}.notice-text-head{display:grid}.notice-queue-card footer button{flex:1}}

/* 2026-07-07 notice queue toggle + chatgpt-like visual card */
.integrated-notice-queue.notice-toggle{padding:0;overflow:hidden}.integrated-notice-queue.notice-toggle>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px 20px;background:linear-gradient(135deg,#fffdf8,#eef6ee)}.integrated-notice-queue.notice-toggle>summary::-webkit-details-marker{display:none}.integrated-notice-queue.notice-toggle>summary:after{content:'접기/펼치기';font-size:12px;font-weight:950;color:var(--green);border:1px solid rgba(18,61,52,.18);border-radius:999px;padding:7px 10px;background:#fff}.integrated-notice-queue.notice-toggle .notice-queue-list{padding:16px}.notice-copy-details{border:1px dashed #d8c495;border-radius:16px;background:#fffdf8;padding:10px}.notice-copy-details>summary{cursor:pointer;color:var(--green);font-weight:950}.notice-copy-details pre{margin-top:10px}.notice-report-preview.chatgpt-like{transform:none;max-width:560px}.notice-queue-card .notice-report-preview.chatgpt-like{max-width:620px;width:100%}.notice-queue-card{align-content:start}.notice-queue-card>header{border-bottom:1px solid rgba(18,61,52,.08);padding-bottom:8px}@media(max-width:760px){.integrated-notice-queue.notice-toggle>summary{display:grid}.integrated-notice-queue.notice-toggle>summary:after{justify-self:start}.notice-report-preview.chatgpt-like{max-width:100%}}

/* 2026-07-07 compact 12-up notice thumbnails */
.notice-queue-list.compact-12{grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:14px}.notice-queue-card.compact{padding:12px;border-radius:20px;gap:10px}.notice-queue-card.compact>header{padding-bottom:7px}.notice-queue-card.compact>header strong{font-size:15px}.notice-queue-card.compact>header span{font-size:11px}.notice-thumb-shell{height:710px;overflow:hidden;border-radius:18px;background:#fbfaf4;border:1px solid #eadfc9}.notice-thumb-shell .notice-report-preview.chatgpt-like{width:520px;max-width:none;transform:scale(.72);transform-origin:top left;margin:0;box-shadow:none;border-radius:26px}.notice-queue-card.compact .notice-copy-details{padding:7px;border-radius:12px}.notice-queue-card.compact .notice-copy-details>summary{font-size:11px}.notice-queue-card.compact footer{gap:5px}.notice-queue-card.compact footer button{font-size:12px;padding:8px 9px;border-radius:999px}.sent-notice-history{padding:0 16px 16px}.sent-notice-history summary{cursor:pointer;color:var(--green);font-weight:950;margin-bottom:8px}.sent-notice-history button{margin:0 6px 6px 0}@media(max-width:760px){.notice-queue-list.compact-12{grid-template-columns:1fr}.notice-thumb-shell{height:680px}.notice-thumb-shell .notice-report-preview.chatgpt-like{transform:scale(.68)}}

/* 2026-07-08 simple curriculum matrix like original program */
.simple-matrix-page{gap:10px;background:#f3f6fb;padding:12px;border-radius:20px;min-width:0;max-width:100%}.cur-simple-top{display:flex;justify-content:space-between;gap:14px;align-items:center}.cur-title h2{margin:0;color:#132c42;font-size:20px}.cur-title p{margin:5px 0 0;color:#65758b;font-size:12px;font-weight:850}.cur-top-actions,.cur-add-bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.cur-top-actions .blue{background:#3b82f6;color:#fff}.cur-add-bar{background:#fff;border:1px solid #e6edf5;border-radius:14px;padding:8px}.cur-add-bar.compact{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(360px,1fr) auto;gap:8px;align-items:center}.cur-add-group{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:6px;align-items:center}.cur-add-group.wide{grid-template-columns:minmax(140px,1fr) auto 92px}.cur-add-bar input,.cur-add-bar select{height:34px;border:1px solid #dbe3ef;border-radius:9px;background:#fff;padding:0 10px;font-weight:800;color:#26364a;min-width:0}.cur-add-bar .green{background:#10b981;color:#fff;border-radius:9px;padding:8px 12px;font-weight:950;white-space:nowrap}.cur-add-bar .pink{background:#ec4899;color:#fff;border-radius:9px;padding:8px 12px;font-weight:950;white-space:nowrap}.cur-click-help{margin-left:0;color:#65758b;font-size:12px;font-weight:900;white-space:nowrap}.cur-help-strip{border-left:4px solid #3b82f6;background:#eff6ff;color:#526276;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:850}.cur-simple-panel{padding:10px;background:#fff;min-width:0;max-width:100%}.cur-matrix-wrap.simple{max-height:72vh;border-radius:12px;border-color:#dbe3ef;min-width:0;width:100%;max-width:100%}.cur-matrix.simple{min-width:1220px;table-layout:fixed;border-color:#e5eaf2}.cur-matrix.simple th{height:46px;background:#f8fafc;color:#1f2f46;font-size:12px;border-color:#e5eaf2;padding:0}.cur-matrix.simple td{height:86px;border-color:#e5eaf2;padding:0;text-align:center;vertical-align:middle}.cur-matrix.simple .cur-term{background:#eef3ff;min-width:78px}.cur-term button,.cur-head-btn{width:100%;height:100%;border:0;background:transparent;display:grid;place-items:center;gap:2px;color:#3730a3;font-weight:950;cursor:pointer}.cur-head-btn{color:#26364a;font-size:12px;line-height:1.25}.cur-drag-dot{font-size:10px;letter-spacing:-2px;color:#cbd5e1}.cur-simple-cell.filled{background:#fff}.cur-check{width:34px;height:34px;border:0;border-radius:999px;background:#3b82f6;color:#fff;font-size:19px;font-weight:950;box-shadow:0 8px 18px rgba(59,130,246,.22);cursor:pointer}.cur-plus{width:52px;height:70px;border:1.5px dashed #d1d8e5;border-radius:999px;background:#fff;color:#c3cad6;font-size:16px;font-weight:900;cursor:pointer}.cur-plus:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.cur-row-action button{background:#7c3aed;color:#fff;border-radius:8px;padding:10px 11px;font-size:12px;font-weight:950;line-height:1.15}.cur-grade-head{width:78px}.cur-row-action{width:82px}.cur-check:hover,.cur-row-action button:hover{filter:brightness(.95)}@media(max-width:760px){.simple-matrix-page{padding:10px}.cur-simple-top{display:grid}.cur-add-bar.compact{grid-template-columns:1fr}.cur-add-group,.cur-add-group.wide{grid-template-columns:1fr auto}.cur-add-group.wide select{grid-column:1/-1}.cur-click-help{white-space:normal}.cur-matrix.simple{min-width:1080px}}

/* 2026-07-08 active unit card action redesign */
.unit-status-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;align-items:start!important}.unit-status-col{min-width:0!important}.unit-status-col h4{padding:8px 6px!important;font-size:clamp(11px,.95vw,14px)!important}.unit-status-col>div{gap:8px!important;padding:8px!important}.unit-status-chip{overflow:hidden!important;min-width:0!important;padding:clamp(7px,.8vw,10px)!important;border-radius:14px!important}.unit-chip-main{grid-template-columns:clamp(42px,4.8vw,60px) minmax(0,1fr)!important;gap:clamp(5px,.7vw,8px)!important;align-items:start!important}.unit-order-label{width:clamp(40px,4.8vw,58px)!important;min-width:0!important}.unit-order-label span{font-size:clamp(9px,.75vw,11px)!important}.unit-order-input{width:clamp(38px,4.6vw,54px)!important;height:clamp(36px,4.8vw,50px)!important;font-size:clamp(17px,1.6vw,24px)!important}.unit-chip-title{overflow:hidden!important;min-width:0!important}.unit-chip-title small{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:clamp(9px,.8vw,11px)!important;line-height:1.2!important}.unit-chip-title b{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;white-space:normal!important;font-size:clamp(12px,1.05vw,15px)!important;line-height:1.25!important;word-break:keep-all!important;overflow-wrap:anywhere!important}.unit-chip-actions.redesigned{display:grid!important;grid-template-columns:1fr!important;gap:clamp(5px,.6vw,7px)!important;width:100%!important;align-items:stretch!important}.unit-chip-move-row,.unit-chip-sub-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(4px,.55vw,6px)!important}.unit-chip-actions.redesigned .unit-move-btn,.unit-chip-actions.redesigned .tiny-unit-btn{width:100%!important;min-width:0!important;padding:clamp(7px,.75vw,9px) clamp(3px,.45vw,6px)!important;border-radius:999px!important;font-size:clamp(10px,.8vw,12px)!important;line-height:1.05!important;text-align:center!important;white-space:nowrap!important}.unit-chip-actions.redesigned .wide-problem{height:auto!important;min-height:clamp(34px,3.7vw,40px)!important;border-radius:999px!important;background:#e9f7ef!important;color:var(--green)!important;border:1px solid rgba(18,61,52,.15)!important;font-size:clamp(10px,.85vw,13px)!important}.unit-chip-actions.redesigned .wide-problem.active{background:#fff0e8!important;color:#b65743!important;border-color:rgba(182,87,67,.35)!important}.unit-status-chip.problem-checked .wide-problem{box-shadow:inset 0 0 0 2px rgba(182,87,67,.16)!important}@media(max-width:720px){.unit-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}.unit-status-col>div{padding:5px!important}.unit-status-chip{padding:6px!important}.unit-chip-main{grid-template-columns:1fr!important}.unit-order-label{width:100%!important;justify-items:start!important}.unit-order-input{width:100%!important;max-width:46px!important}.unit-chip-actions.redesigned .unit-move-btn,.unit-chip-actions.redesigned .tiny-unit-btn{font-size:9px!important;padding:6px 2px!important}.unit-chip-actions.redesigned .wide-problem{font-size:9px!important;min-height:32px!important}.unit-chip-title small{font-size:9px!important}.unit-chip-title b{font-size:11px!important}}

/* 2026-07-08 left popup sidebar drawer */
.is-authenticated .app-shell{display:block}.app-shell{position:relative;min-height:100vh;padding:20px 22px 20px 86px!important}.main{min-width:0;max-width:none}.sidebar{position:fixed!important;z-index:80;left:18px;top:18px;bottom:18px;width:min(320px,calc(100vw - 38px));min-height:0!important;max-height:calc(100vh - 36px);overflow:auto;transition:transform .24s ease,opacity .2s ease;will-change:transform}.sidebar-toggle{position:fixed;z-index:95;left:20px;top:20px;width:52px;height:52px;border-radius:18px;background:var(--gold);color:var(--green);font-weight:950;font-size:24px;box-shadow:0 14px 40px rgba(18,61,52,.24);display:grid;place-items:center}.sidebar-scrim{position:fixed;inset:0;z-index:70;background:rgba(10,25,20,.28);opacity:1;pointer-events:auto;transition:opacity .2s ease}.sidebar-collapsed .sidebar{transform:translateX(calc(-100% - 34px));opacity:.08;pointer-events:none}.sidebar-collapsed .sidebar-scrim{opacity:0;pointer-events:none}.sidebar-collapsed .sidebar-toggle{left:12px;background:var(--green);color:#fffaf0;border-radius:0 18px 18px 0}.sidebar-collapsed .app-shell{padding-left:66px!important}@media(max-width:760px){.app-shell{padding:78px 10px 12px 10px!important}.sidebar{left:10px;top:10px;bottom:10px;width:min(360px,calc(100vw - 20px));border-radius:28px}.sidebar-toggle{left:12px;top:12px}.sidebar-collapsed .app-shell{padding-left:10px!important}.sidebar-collapsed .sidebar-toggle{left:0}}

/* 2026-07-08 problem check popup */
.problem-popup-overlay{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:22px}.problem-popup-backdrop{position:absolute;inset:0;background:rgba(10,25,20,.42);backdrop-filter:blur(2px)}.problem-popup{position:relative;z-index:1;width:min(620px,100%);max-height:calc(100vh - 44px);overflow:auto;border-radius:28px;background:#fffdf8;border:2px solid rgba(18,61,52,.22);box-shadow:0 28px 90px rgba(18,61,52,.32);padding:18px;display:grid;gap:14px}.problem-popup header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-radius:22px;background:var(--green);color:#fffaf0;padding:16px 18px}.problem-popup header b{display:block;font-size:22px}.problem-popup header span{display:block;margin-top:4px;color:rgba(255,250,240,.76);font-size:13px;line-height:1.35}.problem-popup header button{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:22px}.problem-popup>p{margin:0;color:var(--muted);font-size:13px;font-weight:850;line-height:1.55}.problem-popup-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.problem-popup-tag{border:1px solid var(--line);border-radius:999px;background:#eef6ee;color:var(--green);padding:11px 12px;text-align:left;font-weight:950}.problem-popup-tag.active{background:var(--green);color:#fffaf0;border-color:var(--green)}.problem-popup-memo textarea{min-height:92px}.problem-popup footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.problem-popup footer button{border-radius:999px;padding:10px 14px;font-weight:950}@media(max-width:560px){.problem-popup-overlay{padding:10px}.problem-popup{border-radius:22px;padding:12px}.problem-popup-tags{grid-template-columns:1fr}.problem-popup footer{display:grid;grid-template-columns:1fr}.problem-popup footer button{width:100%}}

/* 2026-07-08 lesson unit status popup drawer */
.integrated-state-popup-overlay{position:fixed;inset:0;z-index:115;display:grid;place-items:center;padding:20px}
.integrated-state-popup-backdrop{position:absolute;inset:0;background:rgba(10,25,20,.38);backdrop-filter:blur(2px);border:0;border-radius:0}
.integrated-state-popup{position:relative;z-index:1;width:min(1180px,calc(100vw - 34px));max-height:calc(100vh - 34px);overflow:auto;border:2px solid rgba(18,61,52,.22);border-radius:30px;background:#fffdf8;box-shadow:0 28px 90px rgba(18,61,52,.32);padding:16px;display:grid;gap:14px}
.integrated-state-popup-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-radius:24px;background:linear-gradient(135deg,var(--green),#1f6b58);color:#fffaf0;padding:16px 18px}
.integrated-state-popup-head h2{margin:3px 0 4px;font-size:24px;color:#fffaf0}
.integrated-state-popup-head p{margin:0;color:rgba(255,250,240,.78);font-weight:850;line-height:1.45}
.integrated-state-popup-head .ghost{background:rgba(255,255,255,.14);color:#fffaf0;border-color:rgba(255,255,255,.32)}
.integrated-state-popup .unit-status-grid{grid-template-columns:repeat(4,minmax(160px,1fr))!important}
.integrated-state-popup .unit-status-panel,.integrated-state-popup .unit-pool-panel,.integrated-state-popup .unit-progress-panel{margin:0}
@media(max-width:840px){.integrated-state-popup-overlay{padding:8px}.integrated-state-popup{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:22px;padding:10px}.integrated-state-popup-head{display:grid}.integrated-state-popup .unit-status-grid{grid-template-columns:1fr!important}}


/* 2026-07-10 full curriculum matrix editor */
.cur-simple-cell.filled{position:relative;display:grid;place-items:center;gap:4px;padding:5px!important}.cur-simple-cell.filled small{font-size:10px;color:#607086;font-weight:850;line-height:1.15}.cur-mini-manage{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:950}.cur-create-dot{width:34px;height:34px;border-radius:999px;border:2px dashed #94a3b8;background:#f8fafc;color:#64748b;font-size:20px;font-weight:950}.cur-row-action{background:#f8fafc}.cur-row-action .blue{background:#3b82f6;color:#fff;border-radius:10px;padding:8px 9px;font-weight:950}.cur-gen-head{width:86px}.cur-editor-modal{width:min(1180px,100%);display:grid;gap:12px}.curriculum-editor-backdrop{z-index:1250}.cur-editor-tools{display:flex;gap:8px;align-items:end;flex-wrap:wrap;background:#f8fafc;border:1px solid #e5edf6;border-radius:16px;padding:10px}.cur-editor-tools label{display:grid;gap:5px;font-size:12px;font-weight:950;color:#475569;flex:1;min-width:240px}.cur-editor-tools input,.cur-editor-tools select,.cur-editor-tools textarea{border:1px solid #dbe3ef;border-radius:10px;background:#fff;padding:9px 10px;font-weight:850;color:#1f2937}.cur-editor-tools textarea{min-height:76px;flex:1;min-width:360px}.cur-edit-list{display:grid;gap:6px;max-height:46vh;overflow:auto;border:1px solid #e5edf6;border-radius:16px;padding:8px;background:#fff}.cur-edit-row{display:grid;grid-template-columns:28px minmax(74px,.25fr) minmax(220px,1fr) 40px 40px 58px;gap:6px;align-items:center;border-bottom:1px solid #eef2f7;padding:5px}.cur-edit-row:last-child{border-bottom:0}.cur-edit-row .drag{color:#94a3b8;font-weight:950;text-align:center}.cur-edit-row input{border:1px solid #dbe3ef;border-radius:9px;padding:8px;font-weight:850}.cur-edit-row .danger,.cur-editor-footer .danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.cur-editor-footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.cur-book-card small{display:block;color:#64748b}@media(max-width:760px){.cur-add-bar.compact{grid-template-columns:1fr}.cur-editor-tools,.cur-editor-tools textarea{min-width:0;width:100%}.cur-edit-row{grid-template-columns:24px 1fr 1fr}.cur-edit-row input[name="name"]{grid-column:1/-1}.cur-edit-row button{min-height:34px}}

.cur-edit-row.dragging{opacity:.55;background:#eff6ff}.cur-edit-row .drag{cursor:grab}.cur-edit-row:active .drag{cursor:grabbing}
/* 2026-07-10 minimal owner-first routing in existing today-class schedule */
.schedule-cell .owner-count{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fff1da;color:#7a4d05;padding:2px 7px;font-size:10px;font-style:normal;font-weight:950;line-height:1.2}.schedule-cell.selected .owner-count{background:#f1cf7a;color:#123D34}.student-name-picker-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:stretch;min-width:0}.student-name-picker-row .student-name-pill{width:100%;min-width:0}.owner-first-toggle{display:grid;align-content:center;justify-items:center;gap:4px;min-width:58px;border:1px solid rgba(18,61,52,.18);border-radius:14px;background:#fff;color:var(--muted);padding:8px 7px;font-size:11px;font-weight:950;cursor:pointer}.owner-first-toggle input{width:18px;height:18px;margin:0;accent-color:var(--gold)}.student-name-picker-row.owner-first .owner-first-toggle{background:#fff1da;border-color:#d8c495;color:#7a4d05}.student-name-picker-row.owner-first .student-name-pill{border-color:#d8c495;background:#fffaf0}.student-name-picker-row.owner-first .student-name-pill.selected{background:var(--green);border-color:var(--gold)}@media(max-width:760px){.student-name-picker-row{grid-template-columns:1fr}.owner-first-toggle{grid-template-columns:auto 1fr;justify-items:start;min-width:0}.schedule-cell .owner-count{font-size:9px;padding:2px 5px}}
/* 2026-07-10 owner-first checkbox visual cleanup: keep it inside the student name card */
.student-name-picker-row{position:relative!important;display:block!important;min-width:0!important}.student-name-picker-row .student-name-pill{width:100%!important;min-height:86px!important;padding:10px 12px!important;padding-right:58px!important}.owner-first-toggle{position:absolute!important;top:8px!important;right:8px!important;z-index:2!important;display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;width:auto!important;border:1px solid rgba(18,61,52,.16)!important;border-radius:999px!important;background:rgba(255,253,248,.92)!important;color:var(--muted)!important;padding:4px 7px!important;font-size:10px!important;font-weight:950!important;line-height:1!important;box-shadow:0 4px 12px rgba(18,61,52,.06)!important}.owner-first-toggle input{width:14px!important;height:14px!important;margin:0!important;accent-color:var(--gold)!important}.student-name-picker-row.owner-first .owner-first-toggle{background:#fff1da!important;border-color:#d8c495!important;color:#7a4d05!important}.student-name-picker-row.owner-first .student-name-pill{border-color:#d8c495!important;background:#fffaf0!important}.student-name-picker-row.owner-first .student-name-pill.selected{background:var(--green)!important;border-color:var(--gold)!important}.student-name-picker-row.owner-first .student-name-pill.selected+*,.student-name-picker-row.selected .owner-first-toggle{box-shadow:0 4px 12px rgba(0,0,0,.08)!important}.student-name-picker-row.selected .owner-first-toggle{background:#f1cf7a!important;color:#123D34!important;border-color:#f1cf7a!important}.student-name-picker-row .owner-first-toggle span{white-space:nowrap!important}@media(max-width:760px){.student-name-picker-row{display:block!important}.owner-first-toggle{top:7px!important;right:7px!important}.student-name-picker-row .student-name-pill{padding-right:58px!important}}
/* 2026-07-10 journal H notice context: lesson status + homework purpose */
.journal-context-form{grid-template-columns:1fr 1fr!important;align-items:stretch!important}.journal-context-form .integrated-choice-field{border:1px dashed rgba(18,61,52,.18);border-radius:16px;background:#fffdf8;padding:10px;margin:0;min-width:0}.journal-context-form .integrated-choice-field legend{padding:0 6px;color:var(--green);font-size:12px;font-weight:950}.integrated-choice-chips{display:flex;flex-wrap:wrap;gap:7px}.integrated-choice-chip{display:inline-flex;align-items:center;border:1px solid rgba(18,61,52,.14);border-radius:999px;background:#fff;color:var(--muted);padding:7px 10px;font-size:12px;font-weight:950;cursor:pointer;line-height:1.1}.integrated-choice-chip input{position:absolute;opacity:0;pointer-events:none}.integrated-choice-chip.active{border-color:#d8c495;background:#fff1da;color:#7a4d05;box-shadow:0 4px 12px rgba(201,156,66,.12)}.journal-context-form button[type=submit]{align-self:end}.quick-record-strip>div{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media(max-width:1180px){.journal-context-form{grid-template-columns:1fr!important}.quick-record-strip>div{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:760px){.quick-record-strip>div{grid-template-columns:1fr!important}.integrated-choice-chip{flex:1;justify-content:center;min-width:118px}}
/* 2026-07-10 make journal choice buttons real clickable controls */
.integrated-choice-chip{position:relative}.integrated-choice-chip input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;pointer-events:auto!important;cursor:pointer!important}.integrated-choice-chip:has(input:checked){border-color:#d8c495!important;background:#fff1da!important;color:#7a4d05!important;box-shadow:0 4px 12px rgba(201,156,66,.12)!important}.integrated-choice-chip:has(input:checked) span{font-weight:950!important}

/* 2026-07-11 today-class integrated regular/weekend/vacation calendar */
.integrated-mode-panel{padding:12px!important;background:rgba(255,253,248,.88)}
.integrated-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.integrated-mode-tab{display:grid;gap:4px;text-align:left;border:1px solid var(--line);border-radius:18px;background:#fffdf8;color:var(--green);padding:13px 15px;box-shadow:0 8px 18px rgba(18,61,52,.05)}
.integrated-mode-tab b{font-size:17px}.integrated-mode-tab span{font-size:12px;color:var(--muted);font-weight:850;line-height:1.35}.integrated-mode-tab.active{background:var(--green);color:#fffaf0;border-color:var(--green)}.integrated-mode-tab.active span{color:#f5e8c9}
.today-unified-calendar{display:grid;gap:12px;background:linear-gradient(180deg,#fffdf8,#f8fbf6)}
.today-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.today-calendar-weekdays b{text-align:center;color:var(--muted);font-size:12px}
.today-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.today-calendar-cell{min-height:96px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--charcoal);padding:9px;text-align:left;display:grid;grid-template-rows:auto 1fr;align-content:start;gap:6px;box-shadow:0 8px 18px rgba(18,61,52,.04)}
.today-calendar-cell.blank{background:transparent;border:0;box-shadow:none}.today-calendar-cell.today{outline:2px solid rgba(201,156,66,.45)}.today-calendar-cell.selected{background:#f0f8ef;border-color:#86b98a;box-shadow:0 10px 24px rgba(49,95,75,.12)}
.calendar-date-btn{display:inline-flex;align-items:center;justify-content:flex-start;width:max-content;min-width:32px;border-radius:999px;background:transparent;color:var(--green);padding:2px 5px;font-weight:950}.calendar-date-btn strong{font-size:15px}.calendar-date-btn:hover{background:#e9f3ee}
.calendar-chip-row{display:flex;flex-wrap:wrap;gap:4px;align-content:start}.calendar-chip{border-radius:999px;padding:4px 7px;font-size:11px;font-weight:950;line-height:1.2;border:0}.calendar-chip.regular{background:#e3f1df;color:#285941}.calendar-chip.weekend{background:#fff1d7;color:#8a5211}.calendar-chip.vacation{background:#ebe7ff;color:#53469d}.calendar-chip:hover{filter:brightness(.96);transform:translateY(-1px)}
.special-calendar-detail{display:grid;gap:14px}.special-calendar-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.special-calendar-cards article{display:grid;gap:6px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;padding:14px}.special-calendar-cards b{color:var(--green);font-size:17px}.special-calendar-cards span{color:var(--muted);font-size:12px;font-weight:850;line-height:1.4}.special-calendar-detail.vacation{background:#fffaf0}.vacation-slots article{background:#f6f3ff;border-color:#d9d1ff}
@media(max-width:900px){.integrated-mode-tabs{grid-template-columns:1fr}.today-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-calendar-weekdays{display:none}.special-calendar-cards{grid-template-columns:1fr}.today-calendar-cell{min-height:84px}}

/* 2026-07-11 actual KIT notice preview + prewarmed copy */
.integrated-notice-image-preview{width:100%;max-width:607px;margin:0 auto;border:1px solid rgba(18,61,52,.12);border-radius:18px;background:#f7f1e6;overflow:hidden;box-shadow:0 12px 28px rgba(18,61,52,.08)}
.integrated-notice-image-preview img{display:block;width:100%;height:auto;object-fit:contain;background:#f7f1e6}
.notice-thumb-shell{height:auto!important;min-height:360px;overflow:visible!important;display:grid;place-items:start center;background:#fbfaf4}
.notice-thumb-shell .integrated-notice-image-preview{max-width:430px;border:0;border-radius:16px;box-shadow:none}
.notice-image-preparing{min-height:360px;width:100%;display:grid;place-content:center;justify-items:center;gap:9px;padding:24px;text-align:center;color:var(--green);background:linear-gradient(145deg,#fffdf8,#eef6ee)}
.notice-image-preparing span{width:34px;height:34px;border:4px solid rgba(18,61,52,.15);border-top-color:var(--green);border-radius:50%;animation:notice-image-spin .8s linear infinite}.notice-image-preparing b{font-size:16px}.notice-image-preparing small{max-width:260px;color:var(--muted);font-size:12px;line-height:1.45}
@keyframes notice-image-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.integrated-notice-image-preview{border-radius:14px}.notice-thumb-shell{min-height:280px}.notice-image-preparing{min-height:280px}}

/* 2026-07-11 attendance, makeup, weekend and vacation integrated operation */
.calendar-chip.attendance-present{background:#e7f6e9;color:#24623a}.calendar-chip.attendance-absent{background:#fee9e7;color:#a33a2d}.calendar-chip.attendance-makeup{background:#eee9ff;color:#5d45a7}.calendar-chip.special{background:#fff0d8;color:#89510a}
.integrated-attendance-panel{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center;margin:10px 0 12px;padding:13px 14px;border:1px solid rgba(18,61,52,.14);border-radius:18px;background:#f7fbf6}.integrated-attendance-panel p{margin:0 0 4px}.lesson-context-link{display:block;color:var(--green);font-size:13px;font-weight:950}.attendance-choices{display:flex;gap:7px;flex-wrap:wrap}.attendance-choice{border:1px solid rgba(18,61,52,.16);border-radius:999px;background:#fff;color:var(--muted);padding:9px 14px;font-weight:950}.attendance-choice.active{background:var(--green);border-color:var(--green);color:#fffaf0}.attendance-choice[data-status="결석"].active{background:#b44a3c;border-color:#b44a3c}.attendance-choice[data-status="보강"].active{background:#6650a8;border-color:#6650a8}.integrated-makeup-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(190px,1fr) 150px 130px minmax(220px,1fr) auto;gap:8px;align-items:end;border-top:1px dashed rgba(18,61,52,.18);padding-top:12px}.integrated-makeup-form>div{display:grid;gap:3px}.integrated-makeup-form>div span{font-size:11px;color:var(--muted);font-weight:800}.integrated-makeup-form label{display:grid;gap:4px;font-size:11px;font-weight:950;color:var(--muted)}.integrated-makeup-form input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 10px;font-weight:850}
.weekend-timetable{display:grid;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.weekend-time-head,.weekend-time-row{display:grid;grid-template-columns:90px repeat(3,minmax(0,1fr))}.weekend-time-head{background:var(--green);color:#fffaf0}.weekend-time-head b{padding:12px;border-right:1px solid rgba(255,255,255,.14);text-align:center}.weekend-time-row{border-top:1px solid var(--line)}.weekend-time{display:grid;place-items:center;background:#f1f6f2;color:var(--green);font-size:16px}.weekend-cell{min-height:86px;padding:10px;border-left:1px solid var(--line);display:grid;align-content:start;gap:7px}.weekend-cell>span{font-size:11px;font-weight:950;color:var(--muted)}.weekend-cell>div{display:flex;gap:5px;flex-wrap:wrap}.weekend-cell em,.weekend-student-link,.weekend-class-link{display:inline-flex;border:1px solid rgba(18,61,52,.13);border-radius:999px;background:#f8faf7;color:var(--green);padding:5px 8px;font-size:11px;font-style:normal;font-weight:950}.weekend-student-link{background:#eee9ff;color:#5d45a7}.weekend-class-link{background:#fff0d8;color:#89510a}.weekend-class-link.active{background:#89510a;color:#fff}.weekend-cell>button{justify-self:start;color:#577469;background:transparent;font-size:11px;font-weight:950}.weekend-special-create{border:1px dashed rgba(18,61,52,.24);border-radius:18px;background:#f9fbf8;padding:12px}.weekend-special-create summary{cursor:pointer;color:var(--green);font-weight:950}.weekend-special-create form{display:grid;grid-template-columns:1.4fr repeat(4,minmax(120px,.7fr)) auto;gap:8px;align-items:end;margin-top:12px}.weekend-special-create label{display:grid;gap:4px;font-size:11px;font-weight:950;color:var(--muted)}.weekend-special-create input,.weekend-special-create select{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;font-weight:850}
.weekend-special-editor{display:grid;gap:12px;border:2px solid #ecd7ae;border-radius:22px;background:#fffaf0;padding:16px}.special-common-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.special-common-grid label,.special-direct-form label{display:grid;gap:6px;color:var(--green);font-size:12px;font-weight:950}.special-common-grid textarea,.special-direct-form textarea{min-height:88px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;resize:vertical}.special-student-records{display:grid;gap:7px;margin:12px 0}.special-student-record{display:grid;grid-template-columns:140px 100px 130px minmax(220px,1fr);gap:7px;align-items:center;border-top:1px solid rgba(18,61,52,.1);padding-top:7px}.special-student-record select,.special-student-record input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px}.ghost.danger{color:#a33a2d;border-color:#efc7c1}
.vacation-slot-card{min-height:130px}.vacation-slot-card header{display:flex;justify-content:space-between;gap:10px;align-items:center}.vacation-slot-card header button{border-radius:999px;background:#ebe7ff;color:#53469d;padding:7px 10px;font-size:11px;font-weight:950}.vacation-slot-card>div{display:flex;flex-wrap:wrap;gap:7px}.vacation-student-item{display:inline-flex;align-items:stretch;border:1px solid #d9d1ff;border-radius:999px;background:#fff;overflow:hidden}.vacation-student-item .vacation-student-link{border:0;border-radius:0;background:#fff;color:#53469d;padding:8px 11px;font-weight:950}.vacation-student-link.active{background:#53469d!important;color:#fff!important}.vacation-student-link.external{display:grid;gap:1px;cursor:default}.vacation-student-link.external small{font-size:10px;color:#7c70b5}.vacation-cancel-assignment{border-left:1px solid #e1dcf8;background:#fff8f7;color:#a84432;padding:7px 9px;font-size:10px;font-weight:950}.special-direct-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border-radius:18px;background:#f8f6ff}.special-direct-form .wide{grid-column:1/-1}.compact-special .student-main-row.compact{grid-template-columns:minmax(180px,.8fr) minmax(280px,1.6fr) auto}
.vacation-notice-panel{display:grid;gap:12px;margin:14px;border:2px solid #d8cff7;border-radius:20px;background:#fff;padding:15px}.vacation-notice-panel.sent{border-color:#9fc8aa;background:#f8fff9}.vacation-notice-panel>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.vacation-notice-panel>header h3{margin:2px 0 4px;color:#493d91}.vacation-notice-panel>header span{color:var(--muted);font-size:11px;font-weight:850}.vacation-notice-panel>header>b{border-radius:999px;background:#eee9ff;color:#58489a;padding:7px 10px;font-size:11px;white-space:nowrap}.vacation-notice-panel.sent>header>b{background:#e4f4e7;color:#2e6740}.vacation-notice-panel>footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.vacation-notice-blocked{border:1px dashed #d8cff7;border-radius:14px;background:#faf8ff;padding:14px}.vacation-notice-blocked b{color:#58489a}.vacation-notice-blocked p{margin:5px 0 0;color:var(--muted);font-size:12px}.vacation-notice-panel .notice-text-check{min-width:0}.vacation-notice-panel .integrated-notice-image-preview img{max-height:760px;object-fit:contain}
.integrated-assignment-overlay{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:20px}.assignment-backdrop{position:absolute;inset:0;background:rgba(10,25,20,.46);backdrop-filter:blur(2px)}.assignment-dialog{position:relative;z-index:1;width:min(900px,calc(100vw - 30px));max-height:calc(100vh - 30px);overflow:auto;border-radius:26px;background:#fffdf8;box-shadow:0 28px 90px rgba(18,61,52,.34);padding:16px;display:grid;gap:14px}.assignment-dialog header,.assignment-dialog footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.assignment-dialog header h3{margin:3px 0}.assignment-dialog header>button{width:38px;height:38px;border-radius:999px;background:#eef4ef;font-size:22px}.assignment-search{display:grid;gap:6px}.assignment-search span,.assignment-external-fields span{color:var(--green);font-size:11px;font-weight:950}.assignment-search input,.assignment-external-fields input{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 12px;font-weight:850}.assignment-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:38vh;overflow:auto;padding-right:3px}.assignment-student{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px;cursor:pointer}.assignment-student.selected{background:#edf7eb;border-color:#86b98a}.assignment-student input,.assignment-external input{width:18px;height:18px;accent-color:var(--green)}.assignment-student span,.assignment-external span{display:grid;gap:2px}.assignment-student small,.assignment-external small{color:var(--muted);font-size:10px}.assignment-search-empty{margin:0;padding:10px;border-radius:12px;background:#fff8e8;color:#85601e;font-size:12px;font-weight:850}.assignment-external-section{display:grid;gap:10px;border:1px solid #d9d1ff;border-radius:18px;background:#f8f6ff;padding:13px}.assignment-external-section>div:first-child>b{color:#53469d}.assignment-external-section>div:first-child>p{margin:3px 0 0;color:var(--muted);font-size:11px;font-weight:750}.assignment-external-list{display:flex;flex-wrap:wrap;gap:7px}.assignment-external{display:flex;align-items:center;gap:8px;border:1px solid #d9d1ff;border-radius:12px;background:#fff;padding:8px 10px;cursor:pointer}.assignment-external.selected{background:#eeeaff}.assignment-external-fields{display:grid;grid-template-columns:1fr 150px;gap:9px}.assignment-external-fields label{display:grid;gap:5px}.assignment-dialog footer{justify-content:flex-end}
@media(max-width:1100px){.integrated-makeup-form{grid-template-columns:1fr 1fr}.integrated-makeup-form>div,.integrated-makeup-form .wide{grid-column:1/-1}.weekend-special-create form{grid-template-columns:repeat(2,minmax(0,1fr))}.special-student-record{grid-template-columns:110px 90px 120px minmax(160px,1fr)}}
@media(max-width:760px){.integrated-attendance-panel{grid-template-columns:1fr}.attendance-choices{width:100%}.attendance-choice{flex:1}.integrated-makeup-form{grid-template-columns:1fr}.weekend-timetable{overflow-x:auto}.weekend-time-head,.weekend-time-row{min-width:720px}.weekend-special-create form,.special-common-grid,.special-direct-form{grid-template-columns:1fr}.special-direct-form .wide{grid-column:auto}.special-student-record{grid-template-columns:1fr}.assignment-student-grid,.assignment-external-fields{grid-template-columns:1fr}.compact-special .student-main-row.compact{grid-template-columns:1fr}.assignment-dialog{padding:12px}.vacation-notice-panel{margin:10px;padding:11px}.vacation-notice-panel>header{display:grid}.vacation-notice-panel>header>b{justify-self:start}.vacation-notice-panel>footer{display:grid;grid-template-columns:1fr}.vacation-notice-panel>footer button{width:100%}}

/* 2026-07-15 parent-facing vacation calendar review build */
.vacation-school-bars{display:grid;gap:8px;border:1px solid rgba(18,61,52,.13);border-radius:18px;background:#f8fbf7;padding:13px}.vacation-school-bars>header{display:flex;justify-content:space-between;gap:12px;align-items:center}.vacation-school-bars>header>div{display:grid;gap:2px}.vacation-school-bars>header b{color:var(--green);font-size:14px}.vacation-school-bars>header span,.vacation-school-bars.empty span{color:var(--muted);font-size:11px;font-weight:800}.vacation-school-bars.empty{grid-template-columns:auto 1fr;align-items:center}.vacation-school-bar-row{display:grid;grid-template-columns:110px minmax(180px,1fr) 200px;gap:10px;align-items:center}.vacation-school-bar-row>b{font-size:12px;color:var(--charcoal)}.vacation-school-bar-row>span{font-size:11px;color:var(--muted);font-weight:850;text-align:right}.vacation-school-track{position:relative;height:12px;border-radius:999px;background:#e8e4dc;overflow:hidden}.vacation-school-track i{position:absolute;top:0;height:100%;border-radius:999px}.vacation-school-track.missing{border:1px dashed #c2aa78;background:#fff8e9}
.vacation-parent-guide{display:grid;gap:14px;border:2px solid rgba(18,61,52,.14);background:linear-gradient(180deg,#fffdf8,#f4f8f3)}.vacation-parent-guide.empty{padding:20px}.vacation-parent-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.vacation-parent-head h2{margin:3px 0 4px;color:var(--green)}.vacation-parent-head p{margin:0}.vacation-parent-steps{display:flex;gap:6px;flex-wrap:wrap}.vacation-parent-steps span{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:7px 10px;font-size:11px;font-weight:950}.vacation-parent-steps span.done{background:#e7f2e9;border-color:#b9d3bf;color:#285a42}.vacation-parent-workspace{display:grid;grid-template-columns:210px minmax(430px,1fr) 280px;gap:12px;align-items:start}.vacation-parent-students{display:grid;gap:7px;max-height:650px;overflow:auto}.vacation-parent-students>b{color:var(--green);font-size:13px;padding:0 2px}.vacation-parent-student{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 11px;color:var(--charcoal)}.vacation-parent-student span{display:grid;gap:2px}.vacation-parent-student small{color:var(--muted);font-size:10px}.vacation-parent-student em{font-style:normal;color:#6a51a0;font-size:11px;font-weight:950}.vacation-parent-student.active{background:var(--green);border-color:var(--green);color:#fff}.vacation-parent-student.active small,.vacation-parent-student.active em{color:#f0dfbb}.vacation-parent-preview{border:1px solid var(--line);border-radius:18px;background:#f4eee3;padding:10px;overflow:hidden}.vacation-parent-preview-head{display:flex;justify-content:space-between;gap:10px;margin:1px 2px 9px}.vacation-parent-preview-head b{color:var(--green)}.vacation-parent-preview-head span{color:var(--muted);font-size:11px;font-weight:850}.vacation-parent-preview img{display:block;width:100%;max-height:650px;object-fit:contain;object-position:top center;border-radius:12px;background:#fff}.vacation-parent-check{display:grid;gap:10px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}.vacation-parent-check h3{margin:0;color:var(--green)}.vacation-parent-check dl{display:grid;gap:0;margin:0}.vacation-parent-check dl>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #ece7de;padding:9px 0}.vacation-parent-check dt{font-size:11px;color:var(--muted);font-weight:850}.vacation-parent-check dd{margin:0;font-size:11px;font-weight:950;text-align:right}.vacation-parent-check dd.ok{color:#24623a}.vacation-parent-check dd.warn{color:#a15a20}.vacation-parent-ready,.vacation-parent-block{margin:0;border-radius:12px;padding:9px 10px;font-size:11px;font-weight:900}.vacation-parent-ready{background:#e7f3e9;color:#24623a}.vacation-parent-block{background:#fff1df;color:#8a5211}.vacation-parent-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.vacation-parent-actions button{width:100%}.vacation-parent-actions button:disabled{opacity:.45;cursor:not-allowed}.vacation-parent-check>small{color:var(--muted);line-height:1.45}.vacation-school-settings{border:1px dashed rgba(18,61,52,.25);border-radius:16px;background:#fff;padding:12px}.vacation-school-settings summary{cursor:pointer;color:var(--green);font-weight:950}.vacation-school-settings form{display:grid;gap:8px;margin-top:12px}.vacation-school-period-input{display:grid;grid-template-columns:150px minmax(180px,1fr) minmax(180px,1fr);gap:8px;align-items:end}.vacation-school-period-input>b{align-self:center;color:var(--green)}.vacation-school-period-input label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:900}.vacation-school-period-input input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;font-weight:850}.vacation-school-settings footer{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:10px}.vacation-school-settings footer span,.vacation-school-missing{color:var(--muted);font-size:11px;font-weight:850}.vacation-school-missing{margin:0;border-radius:10px;background:#fff3df;color:#8a5211;padding:9px}
.vacation-student-item{border-radius:14px;overflow:hidden}.vacation-student-actions{display:inline-flex}.vacation-move-assignment,.vacation-cancel-assignment{border-left:1px solid #e1dcf8;padding:7px 9px;font-size:10px;font-weight:950}.vacation-move-assignment{background:#f1f6f2;color:#285941}.vacation-cancel-assignment{background:#fff8f7;color:#a84432}.vacation-student-link.external{cursor:pointer}
.vacation-move-overlay{position:fixed;inset:0;z-index:175;display:grid;place-items:center;padding:20px}.vacation-move-backdrop{position:absolute;inset:0;background:rgba(10,25,20,.5);backdrop-filter:blur(2px)}.vacation-move-dialog{position:relative;z-index:1;width:min(520px,calc(100vw - 28px));display:grid;gap:13px;border-radius:24px;background:#fffdf8;box-shadow:0 26px 80px rgba(18,61,52,.35);padding:18px}.vacation-move-dialog header,.vacation-move-dialog footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.vacation-move-dialog header h3{margin:3px 0}.vacation-move-dialog header p{margin:2px 0}.vacation-move-dialog header>button{width:38px;height:38px;border-radius:999px;background:#eef4ef;font-size:22px}.vacation-move-dialog>label,.vacation-move-times label{display:grid;gap:5px;color:var(--green);font-size:12px;font-weight:950}.vacation-move-dialog input,.vacation-move-dialog select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;font-weight:850}.vacation-move-times{display:grid;grid-template-columns:1fr 1fr;gap:9px}.vacation-move-warning{margin:0;border-radius:12px;background:#fff2df;color:#875210;padding:10px;font-size:11px;font-weight:850;line-height:1.5}
.vacation-parent-placeholder{min-height:360px;display:grid;place-content:center;text-align:center;color:var(--green);padding:28px}.vacation-parent-placeholder b{font-size:20px}.vacation-parent-placeholder p{max-width:360px;margin:8px auto 0;color:var(--muted);font-size:12px;line-height:1.6}
@media(max-width:1200px){.vacation-parent-workspace{grid-template-columns:190px minmax(380px,1fr)}.vacation-parent-check{grid-column:1/-1}.vacation-parent-check dl{grid-template-columns:repeat(4,1fr);gap:8px}.vacation-parent-check dl>div{display:grid;border:1px solid var(--line);border-radius:10px;padding:8px}.vacation-parent-actions{max-width:420px}}
@media(max-width:760px){.vacation-school-bar-row{grid-template-columns:90px 1fr}.vacation-school-bar-row>span{grid-column:1/-1;text-align:left}.vacation-parent-head{align-items:flex-start;flex-direction:column;padding-left:34px}.vacation-parent-workspace{grid-template-columns:1fr}.vacation-parent-students{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-parent-students>b{grid-column:1/-1}.vacation-parent-preview img{max-height:none}.vacation-parent-check{grid-column:auto}.vacation-parent-check dl{grid-template-columns:1fr 1fr}.vacation-school-period-input{grid-template-columns:1fr}.vacation-school-settings footer{align-items:stretch;flex-direction:column}.vacation-move-times{grid-template-columns:1fr}.vacation-student-item{width:100%;justify-content:space-between}.vacation-student-actions{margin-left:auto}}

/* 2026-07-16 quick record autosave alignment */
.journal-context-form{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"lesson-status homework" "homework-purpose next-task" "journal-save teacher-memo";gap:16px 18px;align-items:stretch}
.integrated-status-field{grid-area:lesson-status;position:relative;height:100%;padding-top:25px!important}.integrated-homework-field{grid-area:homework}.integrated-purpose-field{grid-area:homework-purpose;height:100%}.integrated-next-field{grid-area:next-task}.integrated-journal-save{grid-area:journal-save;align-self:stretch!important;min-height:110px;height:100%}.integrated-teacher-memo-panel{grid-area:teacher-memo;min-height:110px;display:grid;grid-template-rows:auto minmax(52px,1fr) auto;gap:6px;border:2px solid #b8d9a8;border-radius:14px;background:#f5faef;padding:10px 12px;box-shadow:inset 0 0 0 1px rgba(74,119,60,.04)}
.integrated-homework-field,.integrated-next-field{display:grid!important;grid-template-rows:auto minmax(0,1fr);min-height:0}.integrated-homework-field textarea,.integrated-next-field textarea{height:100%;min-height:118px}.integrated-choice-field{align-self:stretch}.integrated-autosave-badge{position:absolute;top:8px;right:10px;border-radius:999px;background:#e6f4e0;color:#34672d;padding:4px 8px;font-size:10px;font-weight:950;letter-spacing:-.02em}.integrated-autosave-badge.saving{background:#fff1d7;color:#8a5a0d}.integrated-autosave-badge.error{background:#fde8e5;color:#a43b32}
.integrated-teacher-memo-panel header,.integrated-teacher-memo-panel footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.integrated-teacher-memo-panel header b{color:var(--green);font-size:13px}.integrated-teacher-memo-panel header>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.memo-auto-badge,.memo-private-badge{border-radius:999px;padding:4px 7px;font-size:9px;font-weight:950}.memo-auto-badge{background:#e6f4e0;color:#34672d}.memo-private-badge{background:#f0e9ff;color:#6048a0}.integrated-teacher-memo-panel textarea{width:100%;height:100%;min-height:52px;resize:vertical;border:1px solid #b9cdb2;border-radius:10px;background:#fff;padding:9px 10px;color:var(--charcoal);font:inherit;font-size:12px;line-height:1.45}.integrated-teacher-memo-panel textarea:focus{outline:2px solid rgba(77,122,63,.2);border-color:#6f9a61}.integrated-teacher-memo-panel footer{align-items:flex-end}.integrated-teacher-memo-panel footer>span{color:var(--muted);font-size:9px;font-weight:800}.integrated-teacher-memo-save-state{color:#34672d;font-size:10px;white-space:nowrap}.integrated-teacher-memo-save-state.saving,.integrated-teacher-memo-save-state.queued{color:#8a5a0d}.integrated-teacher-memo-save-state.error,.integrated-teacher-memo-save-state.conflict{color:#a43b32}
@media(max-width:1180px){.journal-context-form{grid-template-columns:1fr;grid-template-areas:"lesson-status" "homework" "homework-purpose" "next-task" "teacher-memo" "journal-save"}.integrated-journal-save{min-height:64px}}

/* 2026-07-18 weekend roster actions and cumulative-test attendance */
.weekend-roster-student{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:6px 8px;align-items:center;border:1px solid #e1e8e2;border-radius:11px;background:#fff;padding:7px 8px;margin:5px 0}.weekend-roster-student>b,.weekend-roster-student>.weekend-student-link{min-width:0;overflow-wrap:anywhere;text-align:left}.weekend-roster-student.makeup{grid-template-columns:minmax(90px,1fr) auto}.weekend-roster-student.makeup>small{grid-column:1;color:var(--muted);font-size:9px}.weekend-roster-actions{display:flex;gap:4px;justify-content:flex-end}.weekend-roster-actions button{border:1px solid #cad8cc;border-radius:999px;background:#f4f8f4;color:var(--green);padding:5px 8px;font-size:9px;font-weight:950}.weekend-roster-actions button.danger{border-color:#efd2cd;background:#fff7f5;color:#a84432}.weekend-roster-locked{border-radius:999px;background:#eef1ee;color:#68766b;padding:5px 8px;font-size:9px;font-weight:900}.cumulative-attendance{display:flex;gap:4px}.cumulative-attendance button{border:1px solid #d5ded6;border-radius:999px;background:#fff;color:#667269;padding:6px 9px;font-size:10px;font-weight:950}.cumulative-attendance button.active.present{border-color:#82b895;background:#e8f5ea;color:#246440}.cumulative-attendance button.active.absent{border-color:#df998e;background:#fff0ed;color:#a23f32}.weekend-roster-student.cumulative{grid-template-columns:minmax(80px,1fr) auto auto}.weekend-move-source,.assignment-note{margin:0;border-radius:12px;background:#f3f7f3;color:#49604f;padding:10px;font-size:11px;font-weight:850}.weekend-move-overlay .assignment-dialog.compact{width:min(480px,calc(100vw - 28px))}.weekend-move-overlay .assignment-dialog>label{display:grid;gap:6px;color:var(--green);font-size:12px;font-weight:950}.weekend-move-overlay select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;font-weight:850}.special-student-record .weekend-roster-actions{grid-column:auto}
@media(max-width:760px){.weekend-roster-student,.weekend-roster-student.cumulative,.weekend-roster-student.makeup{grid-template-columns:1fr}.weekend-roster-actions,.cumulative-attendance{justify-content:flex-start}.weekend-roster-student.makeup>small{grid-column:1}.weekend-roster-actions button,.cumulative-attendance button{min-height:34px;padding:7px 10px}.special-student-record .weekend-roster-actions{grid-column:1/-1;justify-content:flex-start}}

/* 2026-07-20 session-safe absence records */
.absence-session-list{display:grid;gap:9px;margin:10px 0 14px;padding:12px;border:1px solid #efc7c1;border-radius:16px;background:#fff7f5}.absence-session-list header>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.absence-session-list header b{color:#8f352b;font-size:14px}.absence-session-list header span{color:#83645f;font-size:10px;font-weight:850}.absence-session-list>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:7px}.absence-session-item{display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;border:1px solid #efd4cf;border-radius:12px;background:#fff;color:#6f2c25;padding:9px 10px}.absence-session-item span{display:grid;gap:3px}.absence-session-item b{font-size:13px}.absence-session-item small{color:#80615d;font-size:10px;font-weight:850}.absence-session-item em{color:#a04437;font-size:10px;font-style:normal;font-weight:900}.absence-session-item:hover,.absence-session-item:focus-visible{border-color:#c96859;background:#fff0ed;outline:0}
@media(max-width:760px){.absence-session-list header>div{display:grid}.absence-session-list>div{grid-template-columns:1fr}.absence-session-item{min-height:48px}}

/* 2026-07-18 curriculum cell-folder parity */
.cur-simple-cell.filled{position:relative;display:table-cell;padding:6px!important;text-align:center;vertical-align:middle}.cur-simple-cell .cur-check{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:999px;background:#3b82f6;color:#fff;font-size:17px;font-weight:950;box-shadow:0 3px 8px rgba(59,130,246,.2)}.cur-simple-cell .cur-check:hover,.cur-simple-cell .cur-check:focus-visible{background:#2563eb;box-shadow:0 0 0 4px rgba(59,130,246,.17);outline:0}.curriculum-editor-backdrop{z-index:190;padding:18px;align-items:center}.curriculum-editor-modal{width:min(1120px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto;display:grid;gap:16px;border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(15,23,42,.3);padding:18px}.cur-editor-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start;border-bottom:1px solid #e7edf4;padding-bottom:14px}.cur-editor-head>div{text-align:center}.cur-editor-head h2{margin:2px 0 6px;color:#173a56}.cur-editor-head p{margin:0;color:#718096;font-size:12px;line-height:1.5}.cur-delete-folder{width:40px;height:38px;padding:0}.cur-editor-section{display:grid;gap:12px;border:1px solid #e1e8f0;border-radius:14px;background:#f8fafc;padding:14px}.cur-editor-section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.cur-editor-section-head h3{margin:0 0 4px}.cur-editor-section-head p{margin:0;color:#718096;font-size:11px}.cur-editor-inline{display:flex;gap:8px;align-items:center}.cur-editor-inline select{min-width:230px}.cur-title-tools{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:end}.cur-title-tools label{display:grid;gap:6px;color:#31536d;font-size:11px;font-weight:900}.cur-title-tools input,.cur-editor-tools textarea,.cur-editor-tools input,.cur-editor-tools select{border:1px solid #cfd9e5;border-radius:10px;background:#fff}.cur-editor-tools textarea{min-height:118px}.cur-edit-list{display:grid;gap:7px;max-height:46vh;overflow:auto;padding:2px}.cur-edit-row{display:grid;grid-template-columns:26px 120px minmax(260px,1fr) 38px 38px 60px;gap:7px;align-items:center;border:1px solid #e1e8f0;border-radius:10px;background:#fff;padding:7px}.cur-edit-row input{min-width:0;border:1px solid #d6dee8;border-radius:8px;background:#fff;padding:9px}.cur-edit-row button{padding:8px 7px}.cur-editor-footer{position:sticky;bottom:-18px;z-index:2;margin:0 -18px -18px;padding:12px 18px;background:rgba(255,255,255,.96);border-top:1px solid #e1e8f0;box-shadow:0 -8px 18px rgba(15,23,42,.05)}
@media(max-width:760px){.curriculum-editor-backdrop{padding:8px}.curriculum-editor-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:12px;border-radius:16px}.cur-editor-head{grid-template-columns:auto minmax(0,1fr) auto;gap:7px}.cur-editor-head>button{padding:8px}.cur-editor-head h2{font-size:17px}.cur-editor-head p{font-size:10px}.cur-title-tools{grid-template-columns:1fr 1fr}.cur-title-tools label{grid-column:1/-1}.cur-editor-section-head{display:grid}.cur-editor-inline{display:grid;grid-template-columns:1fr}.cur-editor-inline select{min-width:0;width:100%}.cur-editor-tools{display:grid;grid-template-columns:1fr 1fr}.cur-editor-tools textarea,.cur-editor-tools input{grid-column:1/-1}.cur-edit-list{overflow:auto}.cur-edit-row{min-width:670px}.cur-editor-footer{bottom:-12px;margin:0 -12px -12px;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr}.cur-editor-footer .danger{grid-column:1/-1}}

/* 2026-07-23 explicit lesson-entry completion undo */
.entry-done-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}.entry-done-controls .entry-done{min-width:0}.entry-undo{border:1px solid #e7beb7;border-radius:10px;background:#fff7f5;color:#9c4034;padding:7px 9px;font-size:9px;font-weight:950}.entry-undo:hover,.entry-undo:focus-visible{border-color:#c96859;background:#fff0ed;outline:0}
@media(max-width:760px){.entry-done-controls{grid-template-columns:minmax(0,1fr) auto}.entry-undo{min-height:42px;padding:7px 9px}}

/* Required lesson-entry completion gate */
.entry-incomplete-controls{display:grid;gap:5px;min-width:0;max-width:260px}.entry-incomplete-controls .entry-done.incomplete{min-width:0;border:1px solid #dc9d43;background:#fff4dd;color:#87520a;box-shadow:none}.entry-incomplete-controls small{color:#8a5a18;font-size:10px;font-weight:850;line-height:1.35;overflow-wrap:anywhere}.entry-missing-highlight{outline:3px solid rgba(220,120,32,.38)!important;outline-offset:3px;border-radius:12px;animation:entry-missing-pulse 1.1s ease 2}@keyframes entry-missing-pulse{50%{outline-color:rgba(220,120,32,.85);background:#fff8e9}}@media(max-width:760px){.entry-incomplete-controls{max-width:none}.entry-incomplete-controls small{font-size:11px}.student-main-row .entry-incomplete-controls{grid-column:1/-1}}

/* 2026-07-23 vacation schedule tuition preview validation */
.vacation-fee-panel{display:grid;gap:14px;border:2px solid rgba(18,61,52,.16);background:linear-gradient(180deg,#fff,#f6faf6)}.vacation-fee-panel .panel-head p{max-width:760px}.vacation-fee-revision{border-radius:999px;background:#e8f2e9;color:#285a42;padding:7px 10px;font-size:10px;font-weight:950;white-space:nowrap}.vacation-fee-form{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr auto;gap:9px;align-items:end}.vacation-fee-form label,.tuition-payment-allocation label{display:grid;gap:5px;color:var(--green);font-size:11px;font-weight:950}.vacation-fee-form input,.tuition-payment-allocation input{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;font-weight:850}.vacation-fee-result{display:grid;gap:12px}.vacation-fee-result.stale{opacity:.78}.vacation-fee-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.vacation-fee-summary span{display:grid;gap:3px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;color:var(--muted);font-size:10px;font-weight:850}.vacation-fee-summary b{color:var(--green);font-size:14px}.vacation-fee-table{display:grid;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.vacation-fee-row{display:grid;grid-template-columns:minmax(110px,1fr) 90px 120px minmax(180px,1.3fr);gap:10px;align-items:center;padding:9px 11px;border-top:1px solid #edf0eb;font-size:11px}.vacation-fee-row.head{border-top:0;background:#edf5ee;color:var(--green)}.vacation-fee-row em{display:block;color:#285a42;font-style:normal;font-weight:950}.vacation-fee-row small{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.35}.vacation-fee-row.needs-link,.vacation-fee-row.student-missing,.vacation-fee-row.no-tuition,.vacation-fee-row.manual-review{background:#fff9ee}.vacation-fee-row.needs-link em,.vacation-fee-row.student-missing em,.vacation-fee-row.no-tuition em,.vacation-fee-row.manual-review em{color:#965d13}.tu-note.danger{background:#fff0ed;color:#9a3c31}.danger-safe{background:#2e684b}.tuition-special-charges{display:grid;gap:7px}.tuition-special-charges article{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #d9e5da;border-radius:12px;background:#f7fbf7;padding:10px}.tuition-special-charges article>div{display:grid;gap:3px}.tuition-special-charges article span,.tuition-special-charges article em{color:var(--muted);font-size:10px;font-style:normal;font-weight:850}.tuition-payment-allocation{border:1px solid #cfe0d1;background:#f6faf6}.tu-special{display:block;color:#6a51a0!important;font-size:9px!important;line-height:1.35}.tuition-detail-grid small{display:block;margin-top:4px;color:var(--muted);font-size:9px}
@media(max-width:1000px){.vacation-fee-form{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-fee-form button{min-height:42px}.vacation-fee-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.vacation-fee-form,.vacation-fee-summary{grid-template-columns:1fr}.vacation-fee-row{grid-template-columns:minmax(90px,1fr) 62px 92px}.vacation-fee-row>span:last-child{grid-column:1/-1}.vacation-fee-row.head>b:last-child{display:none}.tuition-special-charges article{align-items:flex-start;flex-direction:column}}

/* 2026-07-28 tuition regular/special separated payment */
.tuition-payment-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.tuition-payment-section{display:grid;align-content:start;gap:10px;border:1px solid var(--line);border-radius:18px;background:#f9fcf9;padding:13px}.tuition-payment-section.special{background:#fffaf0;border-color:rgba(201,156,66,.35)}.tuition-payment-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tuition-payment-section h3{margin:2px 0 0;color:var(--green);font-size:17px}.tuition-payment-section>header>strong{color:var(--green);font-size:18px;white-space:nowrap}.tuition-component-payment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end}.tuition-component-payment label,.tuition-charge-update .date-input-field{display:grid;gap:5px;color:var(--green);font-size:11px;font-weight:950}.tuition-component-payment input,.tuition-component-payment select,.tuition-charge-update input[type="date"]{width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;color:var(--charcoal);font:inherit;font-weight:850}.tuition-component-payment button{grid-column:1/-1}.tuition-component-payment button:disabled{cursor:not-allowed;opacity:.55}.tuition-special-charge-card{display:grid!important;gap:10px!important;align-items:stretch!important}.tuition-special-charge-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tuition-special-charge-card>header>div{display:grid;gap:3px}.tuition-charge-update{margin-top:14px}
@media(max-width:1000px){.tuition-payment-sections{grid-template-columns:1fr}}
@media(max-width:760px){.tuition-component-payment{grid-template-columns:1fr}.tuition-special-charge-card>header{align-items:flex-start;flex-direction:column}}

/* 2026-07-24 release navigation grouping */
.nav{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}.nav-group{display:grid;gap:6px}.nav-group>b{padding:0 9px;color:#c9d9ce;font-size:10px;font-weight:950;letter-spacing:.08em}.nav-group button{width:100%}

/* 2026-07-25 compact absence-to-makeup connection rail */
.makeup-exception-rail{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;margin:-2px 0 2px}.makeup-rail-group{min-width:210px;max-width:100%;border:1px solid #d9e2d9;border-radius:14px;background:#fff;overflow:hidden}.makeup-rail-group.pending{border-color:#e7cda0;background:#fffaf0}.makeup-rail-group.completed{background:#f6faf6}.makeup-rail-group[open]{flex:1 1 430px}.makeup-rail-group summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px;padding:8px 11px;list-style:none;color:var(--green);cursor:pointer}.makeup-rail-group summary::-webkit-details-marker{display:none}.makeup-rail-group summary span{font-size:12px;font-weight:950;white-space:nowrap}.makeup-rail-group summary b{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:3px;border-radius:999px;background:#f2e0ba;color:#845411;font-size:11px}.makeup-rail-group.completed summary b{background:#dfeee0;color:#2b6840}.makeup-rail-group summary small{color:var(--muted);font-size:9px;font-weight:850;white-space:nowrap}.makeup-rail-group summary:after{content:'⌄';color:#708078;font-size:13px;font-weight:950}.makeup-rail-group[open] summary:after{content:'⌃'}.makeup-rail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;border-top:1px solid rgba(18,61,52,.09);padding:8px}.makeup-rail-list>p{grid-column:1/-1;margin:0;color:var(--muted);font-size:10px;font-weight:850}.makeup-rail-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;border:1px solid #e4e8e2;border-radius:10px;background:#fff;color:var(--green);padding:8px 9px;text-align:left}.makeup-rail-row span{display:grid;gap:2px;min-width:0}.makeup-rail-row b{overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}.makeup-rail-row small{color:var(--muted);font-size:9px;font-weight:850}.makeup-rail-row em{border-radius:999px;background:#eef4ee;color:#285a42;padding:5px 8px;font-size:9px;font-style:normal;font-weight:950;white-space:nowrap}.makeup-rail-row.pending em{background:#fff0d2;color:#875511}.makeup-rail-row:hover,.makeup-rail-row:focus-visible{border-color:#8ab696;background:#f7fbf7;outline:0}.calendar-chip.makeup-completed-student{background:#e9f3e7;color:#2c6941;border:1px solid #cbe0ca;padding:3px 6px}
@media(max-width:760px){.makeup-exception-rail{display:grid;grid-template-columns:1fr 1fr}.makeup-rail-group{min-width:0;width:100%}.makeup-rail-group[open]{grid-column:1/-1}.makeup-rail-group summary{padding:8px}.makeup-rail-group summary small{display:none}.makeup-rail-list{grid-template-columns:1fr}.makeup-rail-row{min-height:44px}}

/* 2026-08-08 direct scheduled-makeup editing */
.makeup-rail-group.scheduled{border-color:#cfc5f2;background:#f8f6ff}.makeup-rail-group.scheduled summary b{background:#e6e0fb;color:#563f9c}.makeup-rail-row.scheduled{border-color:#dcd4f6}.makeup-rail-row.scheduled em{background:#6650a8;color:#fff}.makeup-rail-row.scheduled.protected{border-color:#c8d4cc;background:#f6f8f6}.makeup-rail-row.scheduled.protected em{background:#51685a;color:#fff}.makeup-rail-row:disabled{cursor:not-allowed;opacity:.62}
.makeup-edit-overlay{position:fixed;inset:0;z-index:190;display:grid;place-items:center;padding:20px}.makeup-edit-backdrop{position:absolute;inset:0;background:rgba(10,25,20,.5);backdrop-filter:blur(2px)}.makeup-edit-dialog{position:relative;z-index:1;width:min(680px,calc(100vw - 30px));max-height:calc(100vh - 30px);overflow:auto;border:0;border-radius:24px;background:#fffdf8;box-shadow:0 28px 90px rgba(18,61,52,.34);padding:18px;display:grid;gap:16px}.makeup-edit-dialog header,.makeup-edit-dialog footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.makeup-edit-dialog header h3{margin:3px 0;color:var(--green);font-size:24px}.makeup-edit-dialog header span{color:var(--muted);font-size:12px;font-weight:850}.makeup-edit-dialog header>button{width:38px;height:38px;border-radius:999px;background:#eef4ef;font-size:22px}.makeup-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.makeup-edit-grid label{display:grid;gap:6px;color:var(--green);font-size:12px;font-weight:950}.makeup-edit-grid label.wide{grid-column:1/-1}.makeup-edit-grid input{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 12px;font-weight:850}.makeup-edit-guide{margin:0;border-radius:12px;background:#f4f7f2;color:var(--muted);padding:10px 12px;font-size:11px;font-weight:850}.makeup-edit-dialog footer{justify-content:flex-end;flex-wrap:wrap}.makeup-edit-locked{color:#a33a2d;font-size:12px;font-weight:950}
@media(max-width:600px){.makeup-edit-overlay{padding:10px}.makeup-edit-dialog{padding:14px}.makeup-edit-grid{grid-template-columns:1fr}.makeup-edit-grid label.wide{grid-column:auto}.makeup-edit-dialog footer{display:grid;grid-template-columns:1fr}.makeup-edit-dialog footer button{width:100%}}

/* 2026-07-28 today-class task inbox */
.task-inbox-link{display:inline-flex;align-items:center;gap:7px}.task-inbox-link[hidden]{display:none}.task-inbox-link span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#e7eee8;color:var(--green);font-size:11px;font-weight:950}.task-inbox-link.has-open{border-color:#d6b364;background:#fff8e8;color:#744b0a}.task-inbox-link.has-open span{background:var(--gold);color:#fff}.task-summary-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.task-summary-bar>div{border:1px solid var(--line);border-radius:18px;background:#fffdf8;padding:13px 15px}.task-summary-bar small{display:block;color:var(--muted);font-size:11px;font-weight:900}.task-summary-bar strong{display:block;margin-top:4px;color:var(--green);font-size:22px}.task-compose-panel{display:grid;gap:12px}.task-compose-form{display:grid;grid-template-columns:.8fr 1.4fr .9fr .8fr auto;gap:10px;align-items:end}.task-compose-form label,.task-reply-form label{display:grid;gap:5px;color:var(--green);font-size:11px;font-weight:950}.task-compose-form label.wide{grid-column:1/-2}.task-compose-form input,.task-compose-form select,.task-compose-form textarea,.task-reply-form textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;color:var(--charcoal);font:inherit}.task-compose-form textarea{min-height:76px}.task-kanban{align-items:start}.task-card-v2{gap:10px}.task-card-v2>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-card-v2>header small{color:var(--muted);font-size:10px;font-weight:850}.task-kind{border-radius:999px;background:#e8f2e9;color:#285a42;padding:5px 8px;font-size:10px;font-weight:950}.task-kind.inquiry{background:#edf0ff;color:#53469d}.task-card-v2.inquiry{border-color:#d9d1ff}.task-card-v2>div p{white-space:pre-wrap;overflow-wrap:anywhere}.task-reply-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px dashed var(--line);padding-top:10px}.task-reply-form textarea{min-height:60px;resize:vertical}.task-status-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.task-status-actions .tiny.active{background:var(--green);color:#fff;border-color:var(--green)}
@media(max-width:1000px){.task-compose-form{grid-template-columns:1fr 1fr}.task-compose-form label.wide{grid-column:1/-1}.task-compose-form button{min-height:42px}.task-kanban{grid-template-columns:1fr}}
@media(max-width:760px){.task-summary-bar,.task-compose-form,.task-reply-form{grid-template-columns:1fr}.task-compose-form label.wide{grid-column:auto}.task-card-v2>header,.task-card-v2 footer{align-items:flex-start;display:grid}.task-status-actions{justify-content:flex-start}.task-status-actions .tiny{min-height:34px}.task-inbox-link{flex:1;justify-content:center}}

/* 2026-07-28 explicit student selection order */
.student-order-guide{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dce7de;border-radius:12px;background:#f7faf7;padding:9px 11px;color:var(--green)}.student-order-guide b{font-size:12px}.student-order-guide span{border-radius:999px;background:#e7f0e8;padding:5px 9px;color:#285a42;font-size:10px;font-weight:950;white-space:nowrap}.student-list-panel>.student-order-guide{margin-bottom:10px}.today-class-order{margin:10px 0 8px}.student-select-field{display:grid;gap:6px;min-width:220px}.student-select-field>span{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--green);font-size:11px;font-weight:950}.student-select-field>span em{border-radius:999px;background:#e7f0e8;padding:4px 7px;color:#285a42;font-size:9px;font-style:normal;white-space:nowrap}.student-select-field select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;color:var(--charcoal);font:inherit}.assignment-grade-heading{grid-column:1/-1;border-bottom:1px solid #dce7de;padding:6px 3px 4px;color:var(--green)}.assignment-grade-heading b{font-size:12px}.vacation-parent-students>b:after{content:' · 가나다순';color:#4f735f;font-size:9px;font-weight:900}.assignment-grade-heading[hidden]{display:none!important}
@media(max-width:760px){.student-order-guide{align-items:flex-start;flex-direction:column}.student-order-guide span{white-space:normal}.student-select-field{min-width:0;width:100%}.student-select-field>span{align-items:flex-start;flex-direction:column}.today-class-order{margin-top:8px}}

/* 2026-07-29 regular/vacation session-pass separation */
.session-pass-panel,.special-only-student-list{display:grid;gap:14px}.pass-subhead{margin-top:12px;padding-top:18px;border-top:1px solid var(--line)}.session-pass-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.session-pass-card{display:grid;gap:12px;border:1px solid #dce7de;border-radius:18px;background:#fff;padding:15px}.session-pass-card.external{border-color:#dbc998;background:#fffaf0}.session-pass-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.session-pass-card>header div{display:grid;gap:3px}.session-pass-card>header small{color:var(--muted);font-size:10px;font-weight:850}.session-pass-card>header em{border-radius:999px;background:#edf4ee;padding:5px 8px;color:#285a42;font-size:10px;font-style:normal;font-weight:950}.session-pass-card form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.session-pass-card form label{display:grid;gap:5px;color:var(--green);font-size:10px;font-weight:950}.session-pass-card input,.session-pass-card select{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;color:var(--charcoal);font:inherit}.session-pass-card form button{align-self:end;min-height:40px}.session-pass-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.session-pass-summary b{font-size:20px;color:var(--green)}.session-pass-summary span{border-radius:999px;background:#f1f5f1;padding:6px 9px;color:#466052;font-size:10px;font-weight:900}@media(max-width:760px){.session-pass-grid{grid-template-columns:1fr}.session-pass-card form{grid-template-columns:1fr 1fr}.session-pass-card form button{grid-column:1/-1}}

.session-pass-start-form{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(110px,.6fr) minmax(160px,.8fr) auto;gap:10px;align-items:end;border:1px solid #dce7de;border-radius:14px;background:#f7faf7;padding:12px}.session-pass-start-form label{display:grid;gap:5px;color:var(--green);font-size:10px;font-weight:950}.session-pass-start-form input,.session-pass-start-form select{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;color:var(--charcoal);font:inherit}@media(max-width:760px){.session-pass-start-form{grid-template-columns:1fr}.session-pass-start-form .primary{width:100%}}

/* 2026-07-30 optional detail / required observation choice */
.journal-context-form{grid-template-areas:"lesson-status homework" "homework-purpose next-task" "observation observation" "journal-save teacher-memo"}
.integrated-observation-field{grid-area:observation;display:grid;gap:10px;min-width:0;border:1px solid rgba(18,61,52,.14);border-radius:16px;background:#f7faf7;padding:12px}
.special-direct-form .integrated-observation-field{grid-column:1/-1}
.integrated-observation-field>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.integrated-observation-field>header>div{display:grid;gap:3px}.integrated-observation-field h4{margin:0;color:var(--green);font-size:14px}.integrated-observation-field p{margin:0;color:var(--muted);font-size:10px;font-weight:850;line-height:1.45}.integrated-observation-badges{display:flex!important;gap:5px!important;flex-wrap:wrap;justify-content:flex-end}.integrated-observation-badges span{border-radius:999px;background:#e8f2e9;color:#285a42;padding:5px 8px;font-size:9px;font-weight:950;white-space:nowrap}.integrated-observation-field .integrated-choice-chips{display:flex;flex-wrap:wrap;gap:6px}.integrated-observation-field>label{display:grid;gap:6px;color:var(--green);font-size:11px;font-weight:950}.integrated-observation-input{width:100%;min-height:76px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;font:inherit;line-height:1.45;resize:vertical}.integrated-observation-input:focus{outline:3px solid rgba(201,156,66,.24);border-color:var(--gold)}.integrated-observation-input:disabled{min-height:50px;background:#edf1ed;color:#718077;cursor:not-allowed}.integrated-observation-field>footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:9px;font-weight:850}.integrated-observation-field>footer b{color:var(--green)}
.special-student-record{grid-template-columns:110px 90px 120px minmax(150px,.8fr) minmax(210px,1.2fr) minmax(210px,1.2fr)!important}.special-student-record .special-observation-type-label,.special-student-record .special-observation-text-label{display:grid;gap:4px;min-width:0;color:var(--green);font-size:9px;font-weight:950}.special-student-record .special-observation-type,.special-student-record .special-observation-text{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px;color:var(--charcoal);font:inherit}.special-student-record .special-observation-text{min-height:42px;resize:vertical}.special-student-record .special-observation-text:disabled{background:#edf1ed;color:#718077}
@media(max-width:1180px){.journal-context-form{grid-template-areas:"lesson-status" "homework" "homework-purpose" "next-task" "observation" "teacher-memo" "journal-save"}.special-student-record{grid-template-columns:110px 90px 120px minmax(160px,1fr)!important}.special-student-record .special-observation-type-label,.special-student-record .special-observation-text-label{grid-column:span 2}}
@media(max-width:760px){.integrated-observation-field>header,.integrated-observation-field>footer{display:grid}.integrated-observation-field>header>span{white-space:normal}.special-student-record{grid-template-columns:1fr!important}.special-student-record .special-observation-type-label,.special-student-record .special-observation-text-label{grid-column:auto}}

/* 2026-08-06 calendar task entry points */
.calendar-task-bars{display:grid;gap:8px}.calendar-task-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;border-radius:16px;padding:10px 12px}.calendar-task-bar.monthly{background:#064b40;color:#fff;border:1px solid #064b40}.calendar-task-bar.range{background:#fffaf0;color:var(--green);border:1px solid #e1ad4d}.calendar-task-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.13);font-size:18px;font-weight:950}.calendar-task-bar.range .calendar-task-icon{background:#f7e3b9;color:#8a5310}.calendar-task-copy{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0}.calendar-task-copy b{font-size:14px;white-space:nowrap}.calendar-task-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;opacity:.9}.calendar-task-copy em{font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}.calendar-task-copy.empty span{opacity:.72}.calendar-task-bar>button{border-radius:999px;padding:8px 12px;font-size:11px;font-weight:950;white-space:nowrap}.calendar-task-bar.monthly>button[data-action="calendar-task-open"]{background:#f6dfaa;color:#7a4b06}.calendar-task-bar.range>button[data-action="calendar-task-open"]{background:#fff0c9;color:#8a5310;border:1px solid #e1ad4d}.calendar-task-inbox{background:#fff!important;color:var(--green)!important}.calendar-task-bar.range .calendar-task-inbox{background:var(--green)!important;color:#fff!important}.calendar-cell-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.calendar-task-date-chip{display:inline-flex;align-items:stretch;border:1px solid #e3e8e3;border-radius:999px;background:#f8faf8;color:#708078;overflow:hidden;font-size:9px;font-weight:950}.calendar-task-date-view,.calendar-task-date-add{border:0;background:transparent;color:inherit;font:inherit;font-weight:950}.calendar-task-date-view{padding:5px 7px}.calendar-task-date-label{display:inline-flex;align-items:center;padding:5px 7px}.calendar-task-date-add{display:grid;place-items:center;min-width:27px;border-left:1px solid currentColor;font-size:13px}.calendar-task-date-view:hover,.calendar-task-date-view:focus-visible,.calendar-task-date-add:hover,.calendar-task-date-add:focus-visible{background:rgba(255,255,255,.68)}.calendar-task-date-chip.has-task{border-color:#efaaa5;background:#fff0ef;color:#a72620}.task-calendar-label{display:inline-flex;width:max-content;margin-bottom:6px;border-radius:999px;background:#fff0d8;color:#8a5310;padding:4px 7px;font-size:9px;font-weight:950}.calendar-task-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}.calendar-task-backdrop{position:absolute;inset:0;background:rgba(10,35,29,.52);backdrop-filter:blur(2px)}.calendar-task-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid #dce7de;border-radius:22px;background:#fffdf8;padding:18px;box-shadow:0 30px 80px rgba(10,35,29,.28)}.calendar-task-dialog>header,.calendar-task-dialog>footer{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calendar-task-dialog>header h3{margin:3px 0 0;color:var(--green);font-size:21px}.calendar-task-dialog>header>button{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:#edf3ee;color:var(--green);font-size:22px}.calendar-task-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.calendar-task-form-grid label{display:grid;gap:5px;color:var(--green);font-size:11px;font-weight:950}.calendar-task-form-grid label.wide{grid-column:1/-1}.calendar-task-form-grid input,.calendar-task-form-grid select,.calendar-task-form-grid textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;color:var(--charcoal);font:inherit}.calendar-task-form-grid textarea{min-height:104px;resize:vertical}.calendar-task-dialog>footer{justify-content:flex-end}.calendar-task-detail-list{display:grid;gap:10px;margin:16px 0}.calendar-task-detail-card{display:grid;gap:9px;border:1px solid #dfe8e1;border-radius:15px;background:#fff;padding:13px}.calendar-task-detail-card>header,.calendar-task-detail-card>footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-task-detail-card>header strong{color:var(--green);font-size:15px}.calendar-task-detail-card>header span{border-radius:999px;background:#edf5ee;color:#285a42;padding:5px 8px;font-size:9px;font-weight:950}.calendar-task-detail-card>p{margin:0;color:var(--charcoal);font-size:12px;font-weight:750;line-height:1.55;white-space:pre-wrap}.calendar-task-detail-card>footer{color:var(--muted);font-size:9px;font-weight:850}.calendar-task-detail-empty{margin:0;border-radius:14px;background:#f1f5f1;padding:18px;color:var(--muted);text-align:center;font-weight:850}
@media(max-width:900px){.calendar-task-bar{grid-template-columns:auto minmax(0,1fr) auto}.calendar-task-bar .calendar-task-inbox{display:none}.calendar-task-copy{grid-template-columns:1fr}.calendar-task-copy span{white-space:normal}.calendar-task-copy em{display:none}.calendar-task-date-chip:not(.has-task) .calendar-task-date-label{display:none}}
@media(max-width:600px){.calendar-task-bar{grid-template-columns:auto 1fr}.calendar-task-bar>button[data-action="calendar-task-open"]{grid-column:1/-1;width:100%}.calendar-task-form-grid{grid-template-columns:1fr}.calendar-task-form-grid label.wide{grid-column:auto}.calendar-task-dialog{padding:14px}.calendar-task-overlay{padding:10px}}
/* 2026-08-06 student status / enrollment / billing separation */
.student-management-page{gap:16px}.student-management-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#fffdf8,#eef6ee)}.student-management-hero h2{margin:4px 0 8px;color:var(--green);font-size:28px;letter-spacing:-.8px}.student-management-hero p{margin:0;color:var(--muted);line-height:1.55}.student-management-legend{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.student-management-legend span{border:1px solid #d7e4d8;border-radius:999px;background:#fff;color:#285a42;padding:7px 10px;font-size:10px;font-weight:950;white-space:nowrap}.student-management-list{display:grid;gap:13px;overflow:hidden}.student-management-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px}.student-status-tabs{display:flex;gap:7px;flex-wrap:wrap}.student-status-tabs button{border:1px solid #d5e1d7;border-radius:999px;background:#fff;color:#4f6659;padding:8px 12px;font-size:12px;font-weight:950}.student-status-tabs button b{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:4px;border-radius:999px;background:#edf3ed;color:var(--green)}.student-status-tabs button.active{background:var(--green);border-color:var(--green);color:#fff}.student-status-tabs button.active b{background:#fff;color:var(--green)}.student-management-search{display:grid;gap:5px;min-width:260px;color:var(--green);font-size:10px;font-weight:950}.student-management-search input{width:100%;border:1px solid var(--line);border-radius:999px;background:#fff;padding:10px 13px;color:var(--charcoal);font:inherit}.student-management-table{overflow-x:auto;border:1px solid #dce6dd;border-radius:16px;background:#fff}.student-management-head,.student-management-row{display:grid;grid-template-columns:minmax(135px,1.05fr) 72px minmax(150px,1.08fr) 82px minmax(108px,.8fr) minmax(150px,1.05fr) minmax(150px,1fr);gap:10px;align-items:center;min-width:1080px}.student-management-head{padding:9px 12px;background:#edf5ee;color:#53705e;font-size:10px;font-weight:950}.student-management-row{min-height:72px;padding:11px 12px;border-top:1px solid #edf0ed}.student-management-row>div:first-child{display:grid;gap:4px}.student-management-row strong{color:var(--green);font-size:16px}.student-management-row small{color:var(--muted);font-size:10px;font-weight:850}.student-management-row>span{min-width:0;color:#46584e;font-size:12px;font-weight:850;overflow-wrap:anywhere}.student-status-badge,.student-enrollment-badge,.student-billing-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:10px;font-style:normal;font-weight:950;white-space:nowrap}.student-status-badge{background:#e8f2e9;color:#285a42}.student-status-badge.status-휴원{background:#fff0d5;color:#845411}.student-status-badge.status-퇴원{background:#eceff0;color:#5a6360}.student-enrollment-badge.regular{background:#edf4ef;color:#285a42}.student-enrollment-badge.special_only{background:#f0efff;color:#584a9d}.student-billing-badge.monthly{background:#f0f3f2;color:#52625a}.student-billing-badge.session{background:#fff0d5;color:#845411}.student-billing-badge.risk{background:#ffe6e2;color:#9a3f37}.student-session-cell.risk{color:#a1443b!important}.student-management-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.student-management-actions button{min-width:0;padding:7px 6px;border-radius:10px;font-size:10px;white-space:nowrap}.student-management-safety-note{display:flex;align-items:flex-start;gap:10px;border:1px solid #e6d8b7;border-radius:13px;background:#fffaf0;padding:10px 12px;color:#6d6048;font-size:10px;line-height:1.5}.student-management-safety-note b{color:#805712;white-space:nowrap}.student-management-overlay{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:18px}.student-management-backdrop{position:absolute;inset:0;background:rgba(12,30,25,.58)}.student-management-dialog{position:relative;width:min(900px,100%);max-height:92vh;overflow:auto;border:1px solid rgba(255,255,255,.4);border-radius:26px;background:#fffdf8;box-shadow:0 32px 100px rgba(0,0,0,.3)}.student-management-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fffdf8,#eef6ee)}.student-management-dialog>header h3{margin:3px 0 6px;color:var(--green);font-size:28px}.student-management-dialog>header p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.student-management-dialog>header>button{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:#fff;color:var(--green);font-size:22px}.student-management-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:20px 24px}.student-management-form-grid>.wide{grid-column:1/-1}.student-management-form-grid>label{display:grid;gap:6px;color:var(--green);font-size:11px;font-weight:950}.student-management-form-grid input,.student-management-form-grid textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px;color:var(--charcoal);font:inherit}.student-management-form-grid textarea{min-height:86px;resize:vertical}.student-management-form-grid fieldset{min-width:0;margin:0;border:1px solid #dce6dd;border-radius:17px;background:#f9fcf9;padding:13px}.student-management-form-grid legend{padding:0 6px;color:var(--green);font-size:12px;font-weight:950}.student-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.student-choice-grid.three{grid-template-columns:repeat(3,1fr)}.student-choice{display:flex;align-items:flex-start;gap:9px;border:2px solid #dce6dd;border-radius:15px;background:#fff;padding:11px;cursor:pointer}.student-choice:has(input:checked){border-color:var(--green);background:#edf5ee;box-shadow:0 7px 18px rgba(18,61,52,.08)}.student-choice.locked{opacity:.55;cursor:not-allowed}.student-choice input{width:auto;margin-top:3px;accent-color:var(--green)}.student-choice span{display:grid;gap:3px}.student-choice b{color:var(--green);font-size:13px}.student-choice small{color:var(--muted);font-size:10px;line-height:1.4}.field-help{margin:9px 2px 0;color:#79643b;font-size:10px;line-height:1.45}.student-readonly-card{display:grid;gap:5px;border:1px solid #e5d7b4;border-radius:15px;background:#fffaf0;padding:13px}.student-readonly-card small{color:#816835;font-size:10px;font-weight:950}.student-readonly-card b{color:var(--green);font-size:15px}.student-management-dialog>footer{display:flex;justify-content:flex-end;gap:9px;padding:15px 24px 20px;border-top:1px solid var(--line)}
@media(max-width:1000px){.student-management-hero,.student-management-toolbar{align-items:stretch;display:grid}.student-management-legend{justify-content:flex-start}.student-management-search{min-width:0}.student-management-form-grid{grid-template-columns:1fr}.student-management-form-grid>.wide{grid-column:auto}}
@media(max-width:760px){.student-management-hero h2{font-size:23px}.student-status-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.student-status-tabs button{padding:7px}.student-management-overlay{padding:8px}.student-management-dialog{border-radius:20px}.student-management-dialog>header,.student-management-form-grid,.student-management-dialog>footer{padding-left:15px;padding-right:15px}.student-choice-grid,.student-choice-grid.three{grid-template-columns:1fr}.student-management-dialog>footer{display:grid;grid-template-columns:1fr 1fr}.student-management-safety-note{display:grid}}

/* 2026-08-11 canonical student registration */
.student-management-main-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-registration-open{min-height:42px;padding:10px 17px;border-radius:13px;box-shadow:0 8px 18px rgba(18,61,52,.16);white-space:nowrap}.student-registration-dialog{width:min(820px,100%)}.student-registration-form-grid label>span b{color:#a45a14;font-size:9px}.student-registration-duplicate{display:grid;gap:7px;margin:0 24px 4px;border:1px solid #e5b760;border-radius:14px;background:#fff8e8;padding:12px;color:#70450b}.student-registration-duplicate>b{font-size:13px}.student-registration-duplicate p{margin:0;font-size:11px;line-height:1.5}.student-registration-duplicate label{display:flex;align-items:flex-start;gap:8px;font-size:11px;font-weight:900;line-height:1.45}.student-registration-duplicate input{width:18px;height:18px;flex:0 0 auto}.student-registration-saturday{display:flex!important;align-items:center;gap:10px;border:1px solid #dbe6dc;border-radius:14px;background:#f7faf7;padding:11px 12px}.student-registration-saturday>input{width:19px!important;height:19px;flex:0 0 auto}.student-registration-saturday>span{display:grid;gap:2px}.student-registration-saturday small{color:var(--muted);font-size:10px}.student-registration-dialog textarea{min-height:90px}
@media(max-width:1000px){.student-management-main-actions{align-items:stretch}.student-registration-open{flex:1 0 150px}.student-status-tabs{flex:1 1 auto}}
@media(max-width:760px){.student-management-main-actions{display:grid;grid-template-columns:1fr}.student-registration-open{width:100%}.student-registration-duplicate{margin-left:15px;margin-right:15px}.student-registration-dialog{max-width:100%;min-width:0}.student-registration-form-grid>*{min-width:0}.student-registration-form-grid input,.student-registration-form-grid textarea{max-width:100%;min-width:0}}

/* 2026-08-07 calendar task storage + image lifecycle */
.calendar-task-inbox-page{display:grid;gap:16px}.calendar-task-inbox-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(135deg,#f6fbf7,#fff9ea)}.calendar-task-inbox-hero h2{margin:4px 0 7px;color:var(--green)}.calendar-task-inbox-hero p{margin:0;color:var(--muted)}.calendar-task-inbox-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.calendar-task-storage,.calendar-task-storage-list{display:grid;gap:13px}.calendar-task-stored-card{display:grid;gap:11px;border:1px solid #dbe6dc;border-radius:18px;background:#fff;padding:15px}.calendar-task-stored-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.calendar-task-stored-card>header>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-task-stored-card>header strong{color:var(--green);font-size:16px}.calendar-task-stored-card>header small{color:var(--muted);font-weight:850}.calendar-task-stored-card>header .tag{border-radius:999px;background:#eaf4eb;color:#285a42;padding:5px 8px;font-size:9px;font-weight:950}.calendar-task-stored-card>p{margin:0;white-space:pre-wrap;color:var(--charcoal);line-height:1.55}.calendar-task-stored-card>footer{color:var(--muted);font-size:10px;font-weight:850}.calendar-task-attachments{display:grid;gap:9px;border-top:1px solid #e4ebe5;padding-top:11px}.calendar-task-attachments-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.calendar-task-attachments-head b{color:var(--green);font-size:12px}.calendar-task-attachments-head span,.calendar-task-empty-images{margin:0;color:var(--muted);font-size:10px}.calendar-task-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.calendar-task-image-item{display:grid;gap:6px;margin:0;border:1px solid #dce6dd;border-radius:13px;background:#f7faf7;padding:7px;overflow:hidden}.calendar-task-image-item>a{display:block;aspect-ratio:4/3;border-radius:9px;background:#e9eeea;overflow:hidden}.calendar-task-image-item img{display:block;width:100%;height:100%;object-fit:cover}.calendar-task-image-item figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px}.calendar-task-image-item figcaption span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px;font-weight:850}.calendar-task-image-item .tiny{padding:5px 7px;white-space:nowrap}.calendar-task-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end}.calendar-task-upload-form label,.calendar-task-create-images{display:grid;gap:6px;color:var(--green);font-size:10px;font-weight:950}.calendar-task-upload-form input,.calendar-task-create-images input{width:100%;min-width:0;border:1px dashed #b9cbbb;border-radius:11px;background:#f8fbf8;padding:8px;color:var(--charcoal);font:inherit}.calendar-task-detail-dialog{width:min(860px,100%)}.calendar-task-detail-list{max-height:min(66vh,720px)}.calendar-task-detail-list .calendar-task-stored-card{box-shadow:none}.legacy-task-archive{display:grid;gap:12px}.legacy-task-archive>summary{cursor:pointer;color:var(--green);font-weight:950}.legacy-task-archive>.task-compose-panel{padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:760px){.calendar-task-inbox-hero{display:grid}.calendar-task-inbox-actions{display:grid;grid-template-columns:1fr;justify-content:stretch}.calendar-task-inbox-actions button{width:100%}.calendar-task-stored-card>header{display:grid}.calendar-task-stored-card>header>.danger{justify-self:start}.calendar-task-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-task-upload-form{grid-template-columns:1fr}.calendar-task-upload-form button{width:100%}.calendar-task-attachments-head{align-items:flex-start;display:grid}.calendar-task-detail-dialog{padding:12px}.calendar-task-detail-dialog>footer{grid-template-columns:1fr}.calendar-task-detail-dialog>footer button{width:100%}}
@media(max-width:420px){.calendar-task-image-grid{grid-template-columns:1fr}}

/* 2026-08-07 unified special-class schedule + direct time entry */
.unified-special-detail{background:linear-gradient(180deg,#fffdf8,#f7fbf6)!important}.unified-special-classes,.unified-vacation-slots{display:grid;gap:12px;border:1px solid #dbe6dc;border-radius:20px;background:#fff;padding:15px}.unified-special-classes>header,.unified-vacation-slots>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.unified-special-classes>header>div,.unified-vacation-slots>header>div{display:grid;gap:3px}.unified-special-classes>header b,.unified-vacation-slots>header b{color:var(--green);font-size:16px}.unified-special-classes>header span,.unified-vacation-slots>header span{color:var(--muted);font-size:11px;font-weight:850}.unified-special-classes>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.unified-special-class-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d8e4d9;border-radius:15px;background:#f8fbf7;padding:12px;text-align:left;color:var(--green)}.unified-special-class-card span{display:grid;gap:3px}.unified-special-class-card b{font-size:14px}.unified-special-class-card small{color:var(--muted);font-size:10px;font-weight:850}.unified-special-class-card em{border-radius:999px;background:#fff0d8;padding:6px 9px;color:#89510a;font-size:11px;font-style:normal;font-weight:950;white-space:nowrap}.unified-special-class-card.active{border-color:var(--green);background:#edf6ee;box-shadow:0 8px 20px rgba(18,61,52,.1)}.unified-special-create{border:1px solid #ddcda8;border-radius:16px;background:#fffaf0;padding:12px}.unified-special-create summary{cursor:pointer;color:#7b4e09;font-size:13px;font-weight:950}.unified-special-create form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.unified-special-create label,.vacation-time-create label{display:grid;gap:5px;color:var(--green);font-size:10px;font-weight:950}.unified-special-create input,.unified-special-create select,.vacation-time-create input{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;color:var(--charcoal);font:inherit}.unified-special-create button{align-self:end;min-height:40px}.unified-special-note{margin:9px 0 0;color:var(--muted);font-size:10px;font-weight:850}.vacation-time-create{display:grid;grid-template-columns:minmax(230px,1fr) minmax(130px,.45fr) minmax(130px,.45fr) auto;gap:10px;align-items:end;border:1px dashed #cfc4ef;border-radius:15px;background:#faf8ff;padding:12px}.vacation-time-create>div{display:grid;gap:3px;align-self:center}.vacation-time-create>div b{color:#53469d;font-size:13px}.vacation-time-create>div span{color:var(--muted);font-size:10px;font-weight:850}.vacation-time-create button{min-height:40px}.weekend-special-moved{margin:0;border:1px solid #ecd9b8;border-radius:14px;background:#fffaf0;padding:11px 13px;color:#785827;font-size:11px;font-weight:850}.calendar-chip.special{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unified-special-detail+.vacation-parent-guide{margin-top:0}
@media(max-width:1050px){.unified-special-create form{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-time-create{grid-template-columns:1fr 1fr}.vacation-time-create>div,.vacation-time-create button{grid-column:1/-1}}
@media(max-width:760px){.unified-special-classes,.unified-vacation-slots{padding:12px}.unified-special-create form,.vacation-time-create{grid-template-columns:1fr}.vacation-time-create>div,.vacation-time-create button{grid-column:auto}.unified-special-class-card{align-items:flex-start}.calendar-chip.special{font-size:10px}}

/* 2026-08-12 tuition adjustments + session-pass alerts */
.session-pass-alert{display:inline-flex;width:max-content;max-width:100%;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:950;line-height:1.25}.session-pass-alert.warning,.tuition-alert-card.warning{background:#fff1d5;color:#8a5310;border:1px solid #e6b75c}.session-pass-alert.ended,.tuition-alert-card.ended{background:#fee7e4;color:#9b3027;border:1px solid #e49b94}.session-pass-alert.check,.tuition-alert-card.check{background:#eee9ff;color:#5c4598;border:1px solid #b9ace2}.session-pass-alert.compact{margin-top:4px;padding:4px 7px;font-size:9px}.session-pass-card.warning{border-color:#e6b75c;background:#fffaf0}.session-pass-card.ended{border-color:#e49b94;background:#fff5f4}.session-pass-card.check{border-color:#b9ace2;background:#faf8ff}.session-pass-finance{display:grid;gap:8px;border-top:1px solid #e4ebe5;padding-top:10px}.session-pass-finance>p{margin:0;color:var(--charcoal);font-size:11px}.tuition-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.tuition-alert-card{display:grid;gap:5px;border-radius:14px;padding:11px;text-align:left}.tuition-alert-card b{font-size:13px}.tuition-alert-card span{font-size:10px;font-weight:850}.tuition-alert-card.danger,.tuition-integrity-alert.danger{background:#fee7e4;color:#8f2922;border:1px solid #e49b94}.tuition-integrity-alert,.tuition-adjustment-note{display:grid;gap:5px;margin:10px 0;border-radius:14px;padding:11px}.tuition-integrity-alert span,.tuition-adjustment-note span{font-size:11px;line-height:1.5}.tuition-adjustment-note{background:#eef6ee;color:#285a42;border:1px solid #c8dccb}.tuition-adjustment-note.excluded{background:#f2f2ef;color:#59625d}.tuition-exclusion-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;border:1px solid #e2c2be;border-radius:14px;background:#fff8f7;padding:11px}.tuition-exclusion-form .tu-note{grid-column:1/-1}.tuition-proration-panel{display:grid;gap:12px}.tuition-proration-form{display:grid;grid-template-columns:1.2fr repeat(4,minmax(120px,.7fr)) auto;gap:9px;align-items:end}.tuition-proration-form label,.tuition-proration-confirm label{display:grid;gap:5px;color:var(--green);font-size:10px;font-weight:950}.tuition-proration-form input,.tuition-proration-form select,.tuition-proration-confirm input{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px;color:var(--charcoal);font:inherit}.tuition-proration-preview{display:grid;gap:10px;border:1px solid #d5e3d6;border-radius:16px;background:#f7faf7;padding:13px}.tuition-proration-preview>div{display:grid;gap:4px}.tuition-proration-preview span{color:var(--muted);font-size:11px;font-weight:850}.tuition-proration-preview.blocked{border-color:#e2c2be;background:#fff7f5}.tuition-proration-confirm{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr)) auto;gap:9px;align-items:end}
@media(max-width:1100px){.tuition-proration-form,.tuition-proration-confirm{grid-template-columns:repeat(2,minmax(0,1fr))}.tuition-proration-form button,.tuition-proration-confirm button{grid-column:1/-1}.session-pass-start-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.tuition-proration-form,.tuition-proration-confirm,.tuition-exclusion-form{grid-template-columns:1fr}.tuition-proration-form button,.tuition-proration-confirm button,.tuition-exclusion-form .tu-note{grid-column:auto}.tuition-alert-grid{grid-template-columns:1fr}.session-pass-card form{grid-template-columns:1fr}}
