@font-face{font-family:system;src:local('Segoe UI')}*{box-sizing:border-box} :root{font-family:system,'Segoe UI',Arial,sans-serif;color:#252c3b;background:#f5f6fa;font-synthesis:none;--brand:#922f49;--dark:#642237;--line:#e4e6ed;--muted:#646c7c;--light:#f9edf0;--green:#166446;--red:#ac263a}body{margin:0;font-size:17px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}a{color:var(--brand)}button:focus-visible,a:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid #c25f7d;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.8rem,3vw,2.45rem);line-height:1.2;letter-spacing:-.035em;font-weight:720}h2{font-size:1.3rem;letter-spacing:-.02em}h3{font-size:1.05rem}small,.small{font-size:.875rem}.muted{color:var(--muted)}.overline{text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:750;color:var(--brand)}.loading{padding:4rem;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;border-radius:10px;padding:.65rem 1.1rem;background:var(--brand);color:white;font-weight:650;text-decoration:none;border:1px solid transparent}.btn:hover{background:var(--dark)}.btn.secondary{background:white;color:#343b4a;border-color:var(--line)}.btn.secondary:hover{background:#f2f3f7}.btn.soft{background:var(--light);color:var(--brand)}.btn.danger{color:var(--red);background:#fff1f2}.btn.wide{width:100%}.btn.tiny{min-height:40px;padding:.45rem .7rem;font-size:.9rem}.icon{width:24px;height:24px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand{display:flex;align-items:center;gap:.75rem}.brand img{width:50px;height:65px;object-fit:contain}.brand strong{font-size:1.2rem;letter-spacing:-.04em}.brand small{display:block;color:var(--muted);font-size:.8rem}.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:1.6rem 1.1rem;gap:1.8rem}.sidebar .brand{padding:0 .4rem}.nav{display:grid;gap:.35rem}.nav button{display:flex;gap:.8rem;align-items:center;padding:.85rem 1rem;border-radius:10px;font-weight:600;color:#606879;background:transparent;text-align:left;min-height:50px}.nav button:hover{background:#f5f6fa}.nav button.active{background:var(--light);color:var(--brand)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:1rem}.avatar{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border-radius:50%;color:var(--brand);background:var(--light);font-weight:750}.profile{display:flex;gap:.6rem;align-items:center;margin-bottom:.9rem}.profile strong{display:block;font-size:.9rem}.profile small{color:var(--muted)}.work{min-width:0}.topbar{min-height:91px;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border-bottom:1px solid var(--line);padding:1rem 2.4rem}.site-switch{display:flex;align-items:center;gap:.75rem;background:#fff;color:var(--brand);text-align:left;border:1px solid #ead0d8;border-radius:10px;padding:.45rem .85rem}.site-switch span{display:block}.site-switch small{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.site-switch strong{font-size:1rem}.searchbar{display:flex;align-items:center;gap:.65rem;color:var(--muted);width:min(410px,45%)}.searchbar input{border:0;background:#f6f7f9;margin:0}.main{padding:2.1rem 2.4rem 3rem;max-width:1500px;margin:auto}.heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.7rem}.heading p{margin-top:.6rem;color:var(--muted)}.date-label{color:var(--muted);font-size:.9rem;text-align:right}.demo{padding:.4rem 1rem;background:#fff4d9;text-align:center;font-size:.8rem;color:#805c1a}.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.8rem}.action{padding:1.25rem 1.3rem;background:white;border:1px solid var(--line);border-radius:14px;text-align:left;display:flex;gap:1rem;align-items:center;box-shadow:0 3px 10px #252c3b03;transition:transform .15s,border-color .15s}.action:hover{transform:translateY(-2px);border-color:#b67588}.action.primary{background:var(--brand);color:white;border-color:var(--brand)}.action .tile-icon{width:48px;height:48px;border-radius:12px;background:var(--light);color:var(--brand);display:grid;place-items:center;flex-shrink:0}.action.primary .tile-icon{background:#ffffff20;color:white}.action strong{display:block;font-size:1.05rem}.action small{display:block;color:var(--muted);margin-top:.3rem;font-weight:400}.action.primary small{color:#f5d9e1}.action .arrow{margin-left:auto;width:18px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:1.4rem}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:1.4rem;margin-bottom:1.2rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.15rem}.pill{display:inline-flex;gap:.35rem;align-items:center;border-radius:7px;padding:.25rem .6rem;font-size:.8rem;font-weight:650;background:#eef1f7;color:#59657b;white-space:normal}.pill.rose{background:var(--light);color:var(--brand)}.pill.green{background:#e9f5ee;color:var(--green)}.pill.amber{background:#fff4dc;color:#865710}.pill.red{background:#ffedf0;color:var(--red)}.filters{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem}.filter{padding:.45rem .9rem;background:#f2f3f7;border:1px solid transparent;border-radius:8px;color:var(--muted);font-weight:600;min-height:42px}.filter.active{background:var(--light);border-color:#eac6d0;color:var(--brand)}.lesson{display:flex;gap:1.1rem;align-items:center;padding:1.15rem 0;border-top:1px solid var(--line)}.lesson:first-child{border-top:0}.time{font-size:1.15rem;font-weight:720;min-width:65px}.time small{display:block;font-weight:400;color:var(--muted);font-size:.8rem}.lesson-info{flex:1}.lesson-info strong{display:block}.lesson-info p{color:var(--muted);font-size:.87rem;margin:.25rem 0 .4rem}.lesson .btn{font-size:.9rem}.trial-item{padding:1rem 0;border-top:1px solid var(--line)}.trial-item:first-of-type{border-top:0}.trial-item p{color:var(--muted);font-size:.9rem;margin:.3rem 0 .8rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.4rem}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem}.stat strong{display:block;font-size:1.6rem;margin:.15rem 0}.stat span{color:var(--muted);font-size:.9rem}.stat.alert{border-color:#e8c2ce;background:#fffafb}.stat.alert strong{color:var(--brand)}.note{padding:1rem 1.2rem;background:#f8edf1;border-radius:10px;color:#743347;margin:.9rem 0}.note.neutral{background:#f0f3f8;color:#4d596e}.empty{padding:2rem 1rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}.empty .icon{width:32px;height:32px;margin-bottom:.6rem}.empty p{margin-bottom:1rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.95rem}th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:650;background:#f8f9fb}td,th{padding:.9rem .8rem;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.toolbar input{max-width:360px}.toolbar .spacer{flex:1}.person{display:flex;align-items:center;gap:.7rem}.person .avatar{width:36px;height:36px;font-size:.8rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}label{display:block;font-size:.95rem;font-weight:600;color:#343b4a;margin-bottom:.9rem}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;min-height:48px;border:1px solid #cfd4df;background:#fff;color:#252c3b;border-radius:8px;padding:.7rem .8rem;margin-top:.35rem}textarea{min-height:100px;resize:vertical}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--brand);margin:0;flex-shrink:0}.check{display:flex;align-items:center;gap:.7rem;padding:.8rem;border:1px solid var(--line);border-radius:9px;font-weight:500}.check:has(input:checked){background:var(--light);border-color:#bd6d85}fieldset{border:0;padding:0;margin:0}legend{font-weight:650;margin-bottom:1rem}dialog{border:0;border-radius:18px;padding:0;width:min(700px,calc(100% - 2rem));max-height:90vh;box-shadow:0 24px 100px #151b3340;color:inherit}dialog::backdrop{background:#24263688;backdrop-filter:blur(3px)}.dialog-head{padding:1.4rem 1.7rem 1rem;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}.dialog-body{padding:1.5rem 1.7rem}.dialog-head h2{font-size:1.4rem}.close{background:#f3f4f8;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;color:var(--muted)}.dialog-actions{display:flex;justify-content:space-between;gap:1rem;padding-top:1.4rem;margin-top:1.1rem;border-top:1px solid var(--line)}.step-track{display:flex;gap:.4rem;margin:.75rem 0 1.6rem}.step-track span{height:5px;border-radius:5px;flex:1;background:#e9eaf0}.step-track .done{background:var(--brand)}.step-info{font-size:.85rem;color:var(--muted)}.question{font-size:1.5rem;margin-bottom:.6rem}.hint{color:var(--muted);margin-bottom:1.4rem}.error{color:#a32036;background:#ffedf0;border-radius:8px;padding:.8rem 1rem;margin-bottom:1rem}.error:empty{display:none}.success{padding:1.3rem 0;text-align:center}.success .success-icon{width:72px;height:72px;border-radius:50%;margin:0 auto 1rem;background:#e6f4ed;color:var(--green);display:grid;place-items:center}.success .icon{width:36px;height:36px}.success p{margin:.7rem 0 1.5rem;color:var(--muted)}.summary{background:#f6f7fa;border-radius:12px;padding:1.2rem}.summary div{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.summary div:last-child{border:0}.summary span{color:var(--muted)}.summary strong{text-align:right}.pick-list{display:grid;gap:.55rem;margin-top:1rem;max-height:330px;overflow:auto}.pick{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;text-align:left;color:inherit}.pick:hover,.pick.selected{border-color:var(--brand);background:var(--light)}.pick strong{display:block}.pick small{color:var(--muted)}.amount{font-size:2.5rem;font-weight:750;letter-spacing:-.04em;color:var(--brand)}.login-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:white}.login-art{background:#69273d;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:white;text-align:center}.login-art img{width:min(310px,70%);height:auto;margin-bottom:1rem}.login-art h1{font-size:2.6rem}.login-art p{color:#eccbd5;margin-top:.75rem}.login-form{display:flex;align-items:center;justify-content:center;padding:3rem}.login-card{width:100%;max-width:410px}.login-card h1{margin:.4rem 0 1rem}.login-card>p{color:var(--muted);margin-bottom:1.7rem}.login-demo{border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1.4rem}.demo-buttons{display:grid;gap:.5rem;margin-top:.8rem}.site-page{max-width:780px;margin:6vh auto;padding:2rem}.site-page .brand{justify-content:center;margin-bottom:2rem}.site-page h1,.site-page>p{text-align:center}.site-page>p{color:var(--muted);margin:1rem 0 2.5rem}.site-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.site-card{padding:2rem;background:#fff;border:2px solid var(--line);border-radius:16px;text-align:left;color:#252c3b}.site-card:hover{border-color:var(--brand)}.site-card .icon{color:var(--brand);width:40px;height:40px;margin-bottom:1.5rem}.site-card strong{display:block;font-size:1.5rem}.site-card span{display:block;color:var(--muted);margin-top:.6rem}.attendance-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.attendance-options{display:flex;gap:.4rem}.attendance-options button{min-height:46px;padding:.5rem .85rem;border-radius:8px;background:#f2f3f7;color:#5b6474;border:1px solid transparent;font-size:.9rem;font-weight:600}.attendance-options button.selected[data-status=present]{background:#e4f3eb;color:#166446;border-color:#79b69a}.attendance-options button.selected[data-status=absent]{background:#ffe9ed;color:#a02841;border-color:#da94a4}.attendance-options button.selected[data-status=excused]{background:#fff2d6;color:#80581e;border-color:#d7b56e}.sticky-save{position:sticky;bottom:0;background:#fff;padding:1rem;border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 -5px 25px #22222207}.detail-grid{display:grid;grid-template-columns:1fr 2fr;gap:1.3rem}.detail-list dt{font-size:.85rem;color:var(--muted);margin-top:1rem}.detail-list dd{margin:0;overflow-wrap:anywhere}.tabs{display:flex;gap:.5rem;overflow:auto;margin-bottom:1.3rem}.tabs button{white-space:nowrap}.course-card h2{margin:.6rem 0}.course-card p{margin:.5rem 0;color:var(--muted)}.course-card .btn{margin-top:1rem}.calendar-day{margin:1.6rem 0 .7rem;font-size:1.05rem;text-transform:capitalize}.settings-section{margin-bottom:1.5rem}.inline{display:flex;align-items:center;gap:.7rem}.schedule-row{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:.5rem;align-items:end;margin-bottom:.8rem}.schedule-row label{margin:0}.schedule-row .btn{margin-bottom:0}.badge-count{background:var(--light);color:var(--brand);padding:.15rem .55rem;border-radius:6px;font-size:.8rem}.link-btn{color:var(--brand);font-weight:650;background:transparent;padding:.3rem}.mobile-brand{display:none}#toast{position:fixed;bottom:1.4rem;left:50%;transform:translateX(-50%);max-width:90vw;border-radius:12px;background:#203c30;color:#fff;padding:1rem 1.4rem;box-shadow:0 6px 20px #0002;z-index:20;display:none}#toast.show{display:block}.break{overflow-wrap:anywhere}
@media(min-width:1600px){.main{padding-top:3rem}.actions{gap:1.3rem}.action{padding:1.6rem}}
@media(max-width:1150px){.shell{grid-template-columns:205px minmax(0,1fr)}.main{padding:1.5rem}.topbar{padding:1rem 1.5rem}.actions{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{padding:1rem .7rem}.brand strong{font-size:1.05rem}.grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative;padding:.6rem .8rem;gap:.5rem;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand,.sidebar-foot{display:none}.nav{display:flex;overflow:auto;gap:.4rem}.nav button{padding:.6rem .8rem;font-size:.85rem;white-space:nowrap;flex-shrink:0;gap:.4rem}.nav .icon{width:19px;height:19px}.topbar{padding:.8rem 1rem;flex-wrap:wrap;min-height:auto}.mobile-brand{display:flex}.mobile-brand img{width:30px;height:38px;object-fit:contain}.searchbar{width:100%;order:3}.topbar>.date-label{display:none}.main{padding:1.4rem 1rem}.heading{align-items:flex-start}.heading .date-label{display:none}.actions{gap:.65rem}.action{padding:1rem;align-items:flex-start;flex-direction:column;gap:.7rem}.action strong{font-size:1rem}.action .tile-icon{width:40px;height:40px}.action .arrow{display:none}.action small{font-size:.8rem}.stats{gap:.6rem}.stat{padding:.8rem}.stat strong{font-size:1.3rem}.stat span{font-size:.8rem}.panel{padding:1rem}.lesson{gap:.7rem;flex-wrap:wrap}.lesson-info{min-width:130px}.lesson .btn{margin-left:auto}.grid2,.grid3,.detail-grid{grid-template-columns:1fr}.login-wrap{display:block}.login-art{padding:1.3rem}.login-art img{width:90px;margin:0}.login-art h1{font-size:1.5rem}.login-art p{display:none}.login-form{padding:2rem 1.2rem}.site-page{padding:1.2rem;margin:2vh auto}.site-grid{grid-template-columns:1fr}.site-card{padding:1.2rem;display:flex;align-items:center;gap:1rem}.site-card .icon{margin:0;width:30px;height:30px}.site-card strong{font-size:1.25rem}.site-card span{display:none}.attendance-row{align-items:flex-start;flex-direction:column}.attendance-options{width:100%}.attendance-options button{flex:1;padding:.6rem .4rem}.dialog-body{padding:1.2rem}.dialog-head{padding:1rem 1.2rem}.sticky-save{flex-wrap:wrap}.schedule-row{grid-template-columns:1fr 1fr}.schedule-row label:first-child{grid-column:1/-1}.toolbar{gap:.6rem}.summary div{flex-wrap:wrap}.summary strong{text-align:left}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}
.actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.site-switch small{display:block}
.dialog-head{position:sticky;top:0;background:white;z-index:2}
.dialog-actions{position:sticky;bottom:-1.5rem;background:white;padding-bottom:1rem;z-index:1;box-shadow:0 -12px 18px #ffffffed}
@media(max-width:760px){.dialog-actions{bottom:-1.2rem}.heading:has(>.btn){flex-wrap:wrap}.heading>.btn{flex-shrink:0}}
