@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700;800&family=Fraunces:wght@600;700&display=swap";:root{font-family:Manrope,sans-serif;color:#102033;background:radial-gradient(circle at top left,rgba(255,196,82,.35),transparent 24%),radial-gradient(circle at bottom right,rgba(43,110,117,.2),transparent 28%),linear-gradient(180deg,#f5f1e8,#eef3f7);--navy: #12314d;--teal: #2b6e75;--amber: #d98b27;--mist: #f8fbfd;--ink: #102033;--muted: #5d6c7d;--border: rgba(18, 49, 77, .12);--shadow: 0 24px 60px rgba(16, 32, 51, .12)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at top left,rgba(255,196,82,.35),transparent 24%),radial-gradient(circle at bottom right,rgba(43,110,117,.2),transparent 28%),linear-gradient(180deg,#f5f1e8,#eef3f7)}#root{min-height:100vh}a{color:inherit}button,input,textarea,select{max-width:100%;font:inherit}input,textarea,select{width:100%;border:1px solid var(--border);border-radius:16px;padding:.9rem 1rem;background:#fff}textarea{resize:vertical}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:.85rem 1.2rem;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease;text-align:center}.primary-button{color:#fff;background:linear-gradient(135deg,var(--navy),var(--teal));box-shadow:0 14px 30px #12314d40}.secondary-button{color:var(--navy);background:#12314d14}.ghost-button{color:var(--navy);background:transparent;border:1px solid rgba(255,255,255,.25)}.danger-button{color:#9c2f2f;border-color:#9c2f2f4d}.primary-button:hover,.secondary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled{transform:none;cursor:not-allowed;opacity:.62}.app-shell{min-height:100vh;display:block}.builder-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.builder-topbar{display:grid;gap:1rem;padding:1.2rem 1.5rem;border-bottom:1px solid rgba(18,49,77,.08);background:#ffffffdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.builder-topbar-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.builder-topbar-panel{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.builder-topbar-links,.builder-page-actions{display:flex;gap:.75rem;flex-wrap:wrap}.builder-page-actions{justify-content:flex-end;flex:1}.builder-menu-toggle,.sidebar-toggle{display:none}.builder-main{padding:1.5rem;display:grid;gap:1.5rem;align-content:start}.sidebar{display:flex;flex-direction:column;padding:2rem 1.5rem;color:#fff;background:linear-gradient(180deg,#071a2beb,#12314deb),linear-gradient(120deg,rgba(217,139,39,.25),transparent);position:fixed;top:0;left:0;width:300px;min-height:100vh;height:100vh;overflow-y:auto}.sidebar-header{display:grid;gap:1rem}.sidebar-panel{display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:2rem;margin-top:1.5rem}.brand-block h1,.auth-hero h1,.page-header h2{margin:0;font-family:Fraunces,serif;letter-spacing:-.03em}.brand-block span,.sidebar-footer p,.page-copy,.muted-copy{line-height:1.6;color:#ffffffb8}.sidebar-nav{display:grid;gap:.55rem;flex:1}.nav-link{color:#ffffffbf;text-decoration:none;padding:.85rem 1rem;border-radius:16px}.nav-link.active{background:#ffffff1f;color:#fff}.sidebar-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem}.sidebar .ghost-button{color:#fff;background:#ffffff14;border-color:#fff6}.sidebar .ghost-button:hover{background:#ffffff29}.main-content{min-width:0;padding:2rem;margin-left:300px;display:grid;gap:1.5rem;align-content:start}.page-stack{min-width:0;display:grid;gap:1.5rem}.page-footer{display:flex;justify-content:center;padding:.5rem 0 1rem}.brand-signature{display:flex;align-items:center;justify-content:center}.brand-signature img{display:block;width:100%;height:auto}.brand-signature-footer{max-width:180px}.brand-signature-login{max-width:150px;margin:.25rem auto 0}.brand-signature-dashboard{max-width:220px}.dashboard-brand-row{display:flex;justify-content:flex-end}.page-header{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:1.5rem;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:linear-gradient(135deg,#fffffff0,#f8fbfde0),linear-gradient(120deg,#d98b2714,#2b6e7514);box-shadow:var(--shadow)}.page-header>div{min-width:0}.page-actions{display:flex;gap:.75rem;flex-wrap:wrap}.page-actions>*,.inline-toolbar>*,.table-actions>*,.builder-topbar-links>*,.builder-page-actions>*{max-width:100%}.page-actions select,.page-actions input{min-width:180px}.topbar-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.page-copy,.muted-copy{color:var(--muted)}.page-copy{max-width:62ch;margin:.65rem 0 0}.eyebrow{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:800;color:var(--amber)}.stats-grid,.content-grid{display:grid;gap:1.25rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.content-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.content-grid.two-col{align-items:start}.stat-card,.panel-card,.table-card,.auth-card{border:1px solid rgba(255,255,255,.7);background:#ffffffdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;box-shadow:var(--shadow)}.stat-card{padding:1.5rem}.stat-card span{display:block;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.stat-card strong{display:block;margin-top:.75rem;font-size:clamp(2rem,4vw,2.7rem);line-height:1;color:var(--navy)}.stat-card p{margin:.7rem 0 0;color:var(--muted)}.panel-card{padding:1.4rem}.panel-title{margin-bottom:1rem}.panel-title h3{margin:0;color:var(--navy)}.table-card{overflow:hidden}.table-scroll-area{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll-area-vertical{max-height:560px;overflow-y:auto}.table-scroll-area-vertical .data-table thead th{position:sticky;top:0;z-index:1;background:#fffffff5}.table-scroll-hint{display:none;margin:0;padding:0 1.2rem 1rem;color:var(--muted);font-size:.82rem}.data-table{width:100%;min-width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(18,49,77,.08);vertical-align:top;overflow-wrap:anywhere}.data-table th{color:var(--navy);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.sort-button{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.sort-button.active{color:var(--teal)}.sort-indicator{font-size:.72rem}.empty-cell{text-align:center;color:var(--muted)}.table-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem}.table-pagination{display:flex;align-items:center;gap:.75rem}.table-meta{color:var(--muted);font-size:.92rem}.stack-form,.auth-card,.button-row{display:grid;gap:1rem}.form-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.compact-grid{align-items:center}.field-label{display:grid;gap:.45rem;color:var(--navy);font-weight:700}.toolbar-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.inline-toolbar{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}.register-toolbar{margin-bottom:1rem}.feature-list{margin:0;padding-left:1.1rem;color:var(--muted)}.class-picker-card{border:1px solid rgba(18,49,77,.08);border-radius:20px;padding:1rem;background:#f8fbfdcc}.class-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;margin-top:1rem}.class-check-item{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border:1px solid rgba(18,49,77,.08);border-radius:16px;background:#fff}.class-check-item input{width:auto}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:3rem}.auth-page{min-height:100vh;display:grid;grid-template-rows:1fr auto}.auth-hero{padding:2rem}.auth-hero p{max-width:560px;color:var(--muted)}.auth-card{width:min(100%,460px);padding:2rem}.auth-card label{display:grid;gap:.45rem;color:var(--navy);font-weight:700}.error-text{margin:0;color:#b52a2a}.success-text{margin:0;color:#1d6b3d}.hint-text{margin:0;color:var(--muted)}.check-row{display:flex;align-items:center;gap:.7rem;color:var(--navy);font-weight:700}.check-row input{width:auto}.compact-check{justify-content:center}.screen-center{min-height:100vh;display:grid;place-items:center;padding:1.5rem;text-align:center}.loading-card{width:min(100%,420px);padding:2rem;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:#ffffffe6;box-shadow:var(--shadow)}.loading-card h2{margin:0;font-family:Fraunces,serif;letter-spacing:-.03em;color:var(--navy)}.loading-card p:last-child{margin:.75rem 0 0}.loading-pulse{width:54px;height:54px;margin:0 auto 1rem;border-radius:18px;background:linear-gradient(135deg,#12314d29,#2b6e753d);box-shadow:inset 0 0 0 1px #12314d14;animation:pulse-glow 1.2s ease-in-out infinite}.schedule-table small{color:var(--muted)}.slot-entry{display:grid;gap:.2rem}.builder-summary{display:grid;gap:.65rem}.builder-table th{min-width:190px}.special-grid-table th{min-width:200px}.builder-cell{min-width:220px}.builder-select{min-width:100%}.builder-select-warning{border-color:#b52a2a73;background:#fff6edf2}.builder-meta{margin:.45rem 0 0;color:var(--muted);font-size:.82rem}.warning-text{margin:.45rem 0 0;color:#b5691c;font-size:.82rem}.cell-break{background:#d98b271f}.cell-free{background:#2b6e751f}.free-teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem}.free-teacher-card{display:grid;gap:.25rem;padding:.9rem 1rem;border:1px solid rgba(18,49,77,.08);border-radius:16px;background:#fff}.free-teacher-card strong{color:var(--navy)}.free-teacher-card span{color:var(--muted)}.substitution-teacher-list{display:grid;gap:.75rem;max-height:360px;overflow:auto}.substitution-teacher-list .class-check-item span{display:grid;gap:.15rem}.substitution-teacher-list small{color:var(--muted)}.substitution-teacher-list select{width:min(100%,220px);min-height:34px;margin-top:.25rem}.substitution-table select,.substitution-table input{min-width:220px}.substitution-table th,.substitution-table td{min-width:240px}.substitution-table th:first-child,.substitution-table td:first-child{min-width:180px}.substitution-cell{vertical-align:top;min-width:180px}.substitution-cell-stack{display:grid;gap:.65rem}.substitution-empty{text-align:center;color:var(--muted)}.date-picker-field{position:relative;display:inline-flex}.native-date-picker{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none}.daily-update-form,.daily-report-list,.daily-update-card,.daily-report-class,.daily-report-period{display:grid;gap:1rem}.daily-update-card,.daily-report-class{padding:1rem;border:1px solid rgba(18,49,77,.08);border-radius:16px;background:#f8fbfde0}.daily-update-card-header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.daily-update-card-header div,.daily-report-period{min-width:0}.daily-update-card-header strong,.daily-update-card-header span{display:block}.daily-update-card-header strong,.daily-report-class h4,.daily-report-period strong{color:var(--navy)}.daily-update-card-header span,.daily-report-period span{color:var(--muted)}.daily-report-class h4,.daily-report-period p{margin:0}.daily-report-period{padding:.85rem 0;border-top:1px solid rgba(18,49,77,.08)}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:.35rem .7rem;border-radius:999px;font-weight:800;font-size:.84rem}.status-complete{color:#1d6b3d;background:#1d6b3d1f}.status-partial{color:#9a5b10;background:#d98b2729}.status-not_updated{color:#9c2f2f;background:#9c2f2f1f}.status-on_leave{color:#315a7d;background:#315a7d24}.daily-share-grid{display:grid;gap:1.25rem}.daily-share-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.share-text-preview{margin:0;padding:1rem;border:1px solid rgba(18,49,77,.08);border-radius:16px;background:#fff;color:var(--ink);font:500 .98rem/1.7 Manrope,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.app-footer{display:flex;justify-content:center;padding:.35rem 1rem 1rem}.app-footer p{margin:0;text-align:center;color:var(--muted);font-size:.92rem}@media (max-width: 1080px){.auth-layout,.stats-grid,.content-grid{grid-template-columns:1fr}.main-content{margin-left:0}.sidebar{position:static;width:auto;min-height:auto;height:auto;overflow:visible}.sidebar-toggle,.builder-menu-toggle{display:inline-flex}.sidebar-panel,.builder-topbar-panel{display:none;width:100%}.sidebar-panel-open,.builder-topbar-panel-open{display:flex}.sidebar-panel-open{flex-direction:column}.builder-topbar{align-items:stretch}.builder-topbar-panel-open{flex-direction:column}.page-header{align-items:start;flex-direction:column}.page-header>div,.page-actions,.builder-topbar-links,.builder-page-actions{width:100%}.form-grid,.class-check-grid{grid-template-columns:1fr}.table-footer{flex-direction:column;align-items:start}}@media (max-width: 720px){.main-content,.auth-layout,.builder-main,.builder-topbar,.sidebar{padding:1.2rem}.panel-card,.auth-card,.stat-card,.page-header,.loading-card{padding:1.1rem}.sidebar-footer,.toolbar-row,.daily-update-card-header,.daily-share-actions,.inline-toolbar,.table-actions,.table-pagination,.builder-topbar-links,.builder-page-actions,.page-actions{align-items:stretch;flex-direction:column}.page-actions>*,.inline-toolbar>*,.table-actions>*,.table-pagination>*,.builder-topbar-links>*,.builder-page-actions>*{width:100%}.table-footer{align-items:stretch}.table-meta{text-align:center}.table-scroll-hint{display:block}.data-table th,.data-table td{padding:.85rem .75rem}.builder-table th,.special-grid-table th,.substitution-table th,.substitution-table td,.builder-cell,.substitution-table select,.substitution-table input{min-width:180px}.dashboard-brand-row{justify-content:center}.brand-signature-footer{max-width:130px}.brand-signature-login{max-width:110px}.brand-signature-dashboard{max-width:150px}}@keyframes pulse-glow{0%,to{transform:scale(.96);opacity:.85}50%{transform:scale(1);opacity:1}}
