@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,700;1,700&display=swap";.entity-form{border-left:4px solid var(--lime)}.entity-form label,.call-card label{display:grid;gap:6px;font-size:11px;font-weight:700}.entity-form input,.entity-form select,.call-card input{padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.row-actions,.card-actions{display:flex;align-items:center;gap:7px}.row-actions>button,.delete-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green-2);display:grid;place-items:center}.row-actions svg,.delete-button svg,.card-actions svg{width:15px;height:15px}.row-actions .pay-action{width:auto;padding:0 9px;font-size:9px;font-weight:700}.delete-button{color:#a64230}.card-actions{margin-top:16px}.card-actions .secondary{flex:1}.card-actions .delete-button{flex:0 0 40px;height:40px}.danger{border:1px solid #a64230;background:#a64230;color:#fff;border-radius:9px;padding:11px 16px;font-weight:700}.dialog-overlay{position:fixed;inset:0;background:#0008;z-index:40}.dialog-content{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:50;width:min(430px,calc(100% - 30px));background:var(--paper);border-radius:14px;padding:24px;box-shadow:0 20px 25px #0003}.dialog-content h2{font:700 22px Playfair Display;margin:0 0 8px}.dialog-content p{font-size:12px;line-height:1.6;color:var(--muted)}.loading-bar,.page-error{margin:0 0 16px;padding:12px 14px;border-radius:9px;background:#fffefa;border:1px solid var(--line);font-size:11px}.loading-bar{color:var(--green-2);border-left:4px solid var(--lime)}.empty-state{text-align:center;padding:48px 24px}.empty-state>svg{width:34px;height:34px;color:var(--green-2)}.empty-state h2{font:700 20px Playfair Display;margin:12px 0 5px}.empty-state p{color:var(--muted);font-size:12px;margin:0 auto 18px;max-width:360px}:root{--green:#173f35;--green-2:#245d4d;--lime:#d5e65b;--cream:#f5f3ea;--paper:#fffefa;--ink:#18231f;--muted:#78817d;--line:#e6e7df;--gold:#e5a83b;--coral:#dd6e55;--blue:#5f8fa8;font-family:DM Sans,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--green);color:#fff;padding:26px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:250px;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 32px}.brand-mark{width:39px;height:39px;border-radius:50% 50% 46% 54%;display:grid;place-items:center;background:var(--lime);color:var(--green);font:italic 700 24px Playfair Display}.brand strong{display:block;font:700 22px Playfair Display}.brand span{font-size:10px;opacity:.65;letter-spacing:.08em}.sidebar nav{display:grid;gap:5px}.sidebar nav button{display:flex;align-items:center;gap:13px;border:0;background:transparent;color:#c4d0cc;padding:12px 14px;border-radius:10px;text-align:left}.sidebar nav button svg{width:19px}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff13;color:#fff}.sidebar nav button.active:before{content:"";position:absolute;left:0;width:3px;height:27px;border-radius:3px;background:var(--lime)}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff1f;padding-top:18px}.user-mini{display:flex;gap:10px;align-items:center;padding:5px}.user-mini strong,.user-mini span{display:block;font-size:12px}.user-mini span{color:#9cb0a9;margin-top:3px}.avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;background:#dbe6c7;color:var(--green);font-weight:700;border-radius:50%}.avatar.large{width:86px;height:86px;font-size:24px;border:5px solid var(--paper)}.logout{border:0;background:none;color:#aebdb8;display:flex;gap:8px;padding:14px 6px 0}.app-shell>main{grid-column:2;min-width:0}.topbar{height:72px;background:#ffffffc7;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:10}.top-title span,.top-title small{display:block}.top-title span{font-weight:700}.top-title small{font-size:11px;color:var(--muted);margin-top:2px}.top-actions{display:flex;gap:8px}.icon-button,.menu-button,.mobile-close{border:0;background:transparent;color:var(--green);padding:8px}.icon-button svg{width:20px}.notification{position:relative}.notification i{position:absolute;right:7px;top:7px;width:7px;height:7px;border:2px solid white;background:var(--coral);border-radius:50%}.menu-button,.mobile-close{display:none}.page{padding:38px;max-width:1440px;margin:auto}.page-intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.page-intro h1{font:700 34px Playfair Display;margin:3px 0 7px}.page-intro>div>p:last-child{color:var(--muted);margin:0}.eyebrow{font-size:10px!important;font-weight:700;letter-spacing:.14em;color:var(--green-2);margin:0}.eyebrow.light{color:var(--lime)}.primary,.secondary{border-radius:9px;padding:11px 16px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:700;font-size:13px}.primary{border:1px solid var(--green);background:var(--green);color:#fff}.primary:hover{background:var(--green-2)}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.full{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:19px;display:flex;gap:14px;align-items:flex-start}.stat-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex:none}.stat-icon svg{width:21px}.stat-icon.green{background:#dfece5;color:var(--green-2)}.stat-icon.blue{background:#dfeaf0;color:var(--blue)}.stat-icon.gold{background:#f5ead3;color:#b37712}.stat-icon.coral{background:#f3e2de;color:var(--coral)}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card span{color:var(--muted);font-size:11px}.stat-card strong{font:700 24px Playfair Display;margin:5px 0}.stat-card small{font-size:10px;color:var(--green-2)}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-head h2{font:700 18px Playfair Display;margin:0}.section-head button{border:0;background:none;color:var(--green-2);font-size:11px;font-weight:700;display:flex;align-items:center}.section-head button svg{width:14px}.schedule-row{display:grid;grid-template-columns:44px 1fr auto;gap:13px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.date-box{background:var(--green);color:#fff;border-radius:8px;text-align:center;padding:5px}.date-box b,.date-box span{display:block}.date-box b{font:700 17px Playfair Display}.date-box span{font-size:8px;color:var(--lime)}.schedule-row>div:nth-child(2)>strong,.schedule-row>div:nth-child(2)>span{display:block}.schedule-row>div:nth-child(2)>strong{font-size:13px}.schedule-row>div:nth-child(2)>span{color:var(--muted);font-size:10px;margin-top:4px;display:flex;align-items:center;gap:4px}.tag{background:#edf1e8;color:var(--green-2);font-size:9px;font-weight:700;padding:5px 8px;border-radius:20px}.tag.coral{background:#f5e3de;color:#a84634}.payment-summary{display:flex;align-items:center;justify-content:space-around;padding:14px 0}.donut{width:135px;height:135px;border-radius:50%;display:grid;place-items:center}.donut>div{width:100px;height:100px;background:var(--paper);border-radius:50%;display:grid;place-content:center;text-align:center}.donut strong,.donut span{display:block}.donut strong{font:700 25px Playfair Display}.donut span{font-size:9px;color:var(--muted)}.payment-summary p{font-size:11px;color:var(--muted)}.payment-summary p strong{float:right;color:var(--ink);margin-left:28px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.dot.paid{background:var(--green-2)}.dot.pending{background:var(--gold)}.dot.overdue{background:var(--coral)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick{border:1px solid var(--line);border-radius:10px;background:#fff;padding:13px;text-align:left;display:flex;align-items:center;gap:10px}.quick>span{width:31px;height:31px;border-radius:8px;background:#edf1e8;color:var(--green);display:grid;place-items:center}.quick svg{width:17px}.quick>svg{margin-left:auto;color:#a2a8a5}.quick strong{font-size:11px}.student-hero{background:var(--green);color:#fff;border-radius:17px;padding:28px 34px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;overflow:hidden;position:relative}.student-hero:after{content:"G";position:absolute;right:120px;font:italic 700 170px Playfair Display;color:#ffffff08;transform:rotate(-10deg)}.student-hero h2{font:700 27px Playfair Display;margin:12px 0 5px}.student-hero p{max-width:570px;color:#c3d0cc;margin:0;font-size:13px}.belt{background:var(--lime);color:var(--green);border-radius:20px;padding:5px 10px;font-size:10px;font-weight:700}.frequency{width:115px;height:115px;border:8px solid var(--lime);border-left-color:#ffffff30;border-radius:50%;display:grid;place-content:center;text-align:center;z-index:1}.frequency strong{font:700 26px Playfair Display}.frequency span{font-size:9px;color:#c3d0cc}.student-stats{grid-template-columns:repeat(3,1fr)}.class-line,.history-row{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.round-icon{width:40px;height:40px;border-radius:50%;background:#e7eee9;color:var(--green);display:grid;place-items:center;flex:none}.round-icon svg{width:18px}.round-icon.gold{background:#f5ead3;color:#a96d0c}.class-line strong,.class-line span,.history-row strong,.history-row span{display:block}.class-line strong,.history-row strong{font-size:13px}.class-line span,.history-row span{font-size:10px;color:var(--muted);margin-top:3px}.event-feature{display:flex;align-items:center;gap:20px;padding:17px;background:#f2f1e9;border-radius:12px}.big-date{background:var(--green);color:#fff;padding:13px 16px;border-radius:9px;text-align:center}.big-date b,.big-date span{display:block}.big-date b{font:700 27px Playfair Display}.big-date span{font-size:9px;color:var(--lime)}.event-feature h3{margin:8px 0 3px;font:700 16px Playfair Display}.event-feature p{margin:0;font-size:10px;color:var(--muted)}.table-card{padding:0;overflow:hidden}.table-tools{display:flex;justify-content:space-between;padding:18px}.search-field{border:1px solid var(--line);background:#fff;border-radius:9px;display:flex;align-items:center;padding:0 10px;width:300px}.search-field svg{width:17px;color:var(--muted)}.search-field input{border:0;outline:0;padding:9px;width:100%}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:14px 20px;border-top:1px solid var(--line);font-size:12px}th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;background:#fafaf6}.person{display:flex;align-items:center;gap:9px}.person .avatar{width:31px;height:31px;flex-basis:31px;font-size:10px}.status{display:inline-block;padding:5px 9px;border-radius:20px;font-size:9px;font-weight:700}.status.paid{background:#dcece3;color:#29654e}.status.pending{background:#f5ead3;color:#9b6816}.status.overdue{background:#f3dfda;color:#a64230}.text-button{border:0;background:none;color:var(--green-2);font-weight:700;font-size:10px}.call-card,.inline-form{border-left:4px solid var(--lime)}.check-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:17px 0}.check-list button{border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;align-items:center;gap:10px;padding:10px;text-align:left}.check-list button.checked{border-color:var(--green-2);background:#f3f7f3}.check-list span{font-size:12px;font-weight:700}.check-list small{display:block;color:var(--muted);font-size:9px}.check-list i{margin-left:auto;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#fff}.check-list .checked i{background:var(--green)}.check-list i svg{width:14px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.history-row .presence-pill{margin-left:auto;background:#dcece3;color:#29654e;padding:5px 9px;border-radius:20px;display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700}.presence-pill svg{width:12px}.automation-banner{background:#fff7df;border:1px solid #eadcb7;border-radius:13px;padding:15px 18px;display:flex;align-items:center;gap:13px;margin-bottom:18px}.automation-banner strong,.automation-banner span{display:block}.automation-banner strong{font-size:13px}.automation-banner span{font-size:10px;color:var(--muted);margin-top:3px}.automation-banner .active-label{margin-left:auto;color:#796020;background:#f0df9f;padding:5px 8px;border-radius:20px;font-size:8px;font-weight:700}.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.inline-form label,.login-card label{display:grid;gap:6px;font-size:11px;font-weight:700}.inline-form input,.inline-form select,.login-card input{padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff;outline:none}.inline-form input:focus,.inline-form select:focus,.login-card input:focus{border-color:var(--green-2)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.event-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px}.event-top{display:flex;justify-content:space-between}.event-date{text-align:center}.event-date b,.event-date span{display:block}.event-date b{font:700 24px Playfair Display}.event-date span{font-size:9px;text-transform:uppercase;color:var(--muted)}.event-card h3{font:700 18px Playfair Display;margin:14px 0}.event-card p{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.event-card p svg{width:15px}.event-card .secondary{margin-top:12px}.profile-card{padding:0 0 22px;overflow:hidden}.profile-cover{height:120px;background:linear-gradient(120deg,var(--green),#387460);position:relative}.profile-cover:after{content:"GINGA";position:absolute;right:30px;top:10px;color:#ffffff0c;font:700 75px Playfair Display}.profile-main{display:flex;align-items:center;gap:15px;padding:0 25px;margin-top:-38px;position:relative}.profile-main h2{margin:35px 0 3px;font:700 23px Playfair Display}.profile-main span{font-size:11px;color:var(--muted)}.profile-main button{margin-left:auto;margin-top:38px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:28px 25px 0}.detail-grid div{border-left:2px solid var(--lime);padding-left:10px}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{font-size:9px;color:var(--muted);text-transform:uppercase}.detail-grid strong{font-size:12px;margin-top:5px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--paper)}.login-visual{background:var(--green);color:#fff;display:grid;place-items:center;position:relative;overflow:hidden;padding:60px}.visual-content{max-width:500px;z-index:1}.login-symbol{width:70px;height:70px;border-radius:50%;background:var(--lime);color:var(--green);display:grid;place-items:center;font:italic 700 42px Playfair Display;margin-bottom:50px}.login-visual h1{font:700 48px/1.12 Playfair Display;margin:12px 0 20px}.login-visual h1 em{color:var(--lime)}.login-visual p:last-child{color:#b7c9c3;max-width:400px}.visual-ring{position:absolute;border:1px solid #ffffff12;border-radius:50%}.ring-one{width:580px;height:580px;right:-230px;bottom:-260px}.ring-two{width:370px;height:370px;right:-100px;bottom:-150px;border-color:#d5e65b22}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.login-card h2{font:700 34px Playfair Display;margin:8px 0}.muted{color:var(--muted);font-size:12px}.role-switch{display:grid;grid-template-columns:1fr 1fr;background:#eeeee7;border-radius:9px;padding:4px;margin:28px 0 22px}.role-switch button{border:0;background:transparent;padding:9px;border-radius:7px;font-size:11px;font-weight:700;color:var(--muted)}.role-switch button.active{background:#fff;color:var(--green);box-shadow:0 2px 8px #0000000b}.login-card label{margin-bottom:15px}.password{display:flex;border:1px solid var(--line);border-radius:8px}.password:focus-within{border-color:var(--green-2)}.password input{border:0;flex:1;min-width:0}.password button{border:0;background:none;color:var(--green-2);font-size:10px;font-weight:700}.login-card .primary{margin-top:8px}.form-error{color:#a64230;font-size:11px}.demo-hint{display:flex;justify-content:center;gap:5px;color:var(--muted);font-size:10px;margin-top:17px}.mobile-brand{display:none}@media(max-width:1000px){.stats-grid,.quick-grid,.event-grid,.detail-grid{grid-template-columns:repeat(2,1fr)}.login-visual{padding:35px}.login-visual h1{font-size:38px}}@media(max-width:760px){.app-shell{display:block}.sidebar{transform:translate(-100%);transition:.25s}.sidebar.open{transform:translate(0);box-shadow:10px 0 40px #0004}.mobile-close{display:block;position:absolute;right:10px;top:16px;color:#fff}.overlay{position:fixed;inset:0;background:#0006;z-index:15}.app-shell>main{display:block}.menu-button{display:block}.topbar{padding:0 15px}.page{padding:24px 15px}.page-intro{align-items:flex-start;gap:15px}.page-intro h1{font-size:27px}.page-intro .primary{padding:10px;font-size:0}.page-intro .primary svg{margin:0}.stats-grid,.student-stats{grid-template-columns:1fr 1fr}.dashboard-grid,.event-grid,.check-list,.form-grid{grid-template-columns:1fr}.student-hero{padding:24px;gap:18px}.frequency{width:90px;height:90px;flex:none}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{padding:28px}.mobile-brand{display:flex;align-items:center;gap:10px;font:700 23px Playfair Display;margin-bottom:45px}}@media(max-width:470px){.stats-grid,.student-stats,.quick-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:44px 1fr}.schedule-row>.tag{display:none}.payment-summary{gap:10px}.donut{width:115px;height:115px}.donut>div{width:84px;height:84px}.student-hero{align-items:flex-start}.frequency{width:75px;height:75px;border-width:6px}.frequency strong{font-size:20px}.student-hero h2{font-size:23px}.detail-grid{grid-template-columns:1fr}.profile-main{flex-wrap:wrap}.profile-main button{margin:10px 0 0 100px}}.school-logo{width:42px;height:42px;flex:0 0 42px;border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden}.school-logo.large{width:92px;height:92px;border-radius:18px;margin-bottom:42px}.school-logo img{width:100%;height:100%;object-fit:contain}.settings-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:18px}.logo-upload{display:flex;align-items:center;gap:12px;padding:14px;background:#f6f6f0;border-radius:12px;margin-bottom:20px;flex-wrap:wrap}.logo-upload .school-logo.large{margin:0;background:#fff;border:1px solid var(--line)}.logo-upload label input{display:none}.school-fields{grid-template-columns:1fr 1fr}.school-fields label,.color-fields label{display:grid;gap:6px;font-size:11px;font-weight:700}.school-fields input{padding:11px;border:1px solid var(--line);border-radius:8px;outline:none}.subheading{font-size:12px;margin:23px 0 12px}.color-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-fields label>div{height:43px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;padding:5px 10px;gap:9px;background:#fff}.color-fields input{border:0;width:30px;height:30px;padding:0;background:none}.color-fields span{font-size:11px;color:var(--muted)}.save-success{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--green-2);font-size:10px;font-weight:700}.preview-card{background:#ecece6}.preview-phone{max-width:280px;margin:20px auto 0;border:7px solid #202523;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 10px 15px #0002}.preview-head{background:var(--preview-primary);color:#fff;padding:18px;display:flex;align-items:center;gap:10px}.preview-head strong,.preview-head span{display:block}.preview-head strong{font-family:Playfair Display;font-size:14px}.preview-head span{font-size:7px;opacity:.7}.preview-head .school-logo{width:34px;height:34px;flex-basis:34px}.preview-body{padding:25px 18px 22px}.preview-body>span{font-size:9px;color:var(--muted)}.preview-body h3{font:700 19px Playfair Display;margin:5px 0 18px}.preview-stat{background:#f3f3ed;border-radius:9px;padding:14px;border-left:4px solid var(--preview-accent)}.preview-stat b,.preview-stat span{display:block}.preview-stat b{font:700 22px Playfair Display;color:var(--preview-primary);font-variant-numeric:tabular-nums}.preview-stat span{font-size:8px;color:var(--muted)}.preview-body button{border:0;border-radius:8px;background:var(--preview-primary);color:#fff;width:100%;padding:10px;margin-top:13px;font-size:9px;font-weight:700}.auth-mode{display:block;margin:14px auto 0;border:0;background:transparent;color:var(--green-2);font-size:11px;font-weight:700}.primary:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--lime) 65%,white);outline-offset:2px}.page-intro h1,.login-card h2,.login-visual h1{text-wrap:balance}.page-intro p,.muted{text-wrap:pretty}.stat-card strong,.date-box b,.big-date b,.event-date b{font-variant-numeric:tabular-nums}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}@media(max-width:600px){.school-fields,.color-fields{grid-template-columns:1fr}}:root{--surface-raised: #fff;--surface-soft: #f1f0e8;--shadow-sm: 0 1px 2px rgb(20 36 30 / 5%), 0 6px 18px rgb(20 36 30 / 4%);--shadow-md: 0 2px 4px rgb(20 36 30 / 5%), 0 18px 45px rgb(20 36 30 / 8%);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px}body{background:#efeee7}.app-shell{background:#efeee7;grid-template-columns:268px 1fr}.sidebar{width:268px;padding:28px 20px max(22px,env(safe-area-inset-bottom));border-right:1px solid rgb(255 255 255 / 10%)}.app-shell>main{margin-left:0}.brand{padding:0 8px 38px}.brand strong{font-size:20px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand span{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:normal}.brand-mark{border-radius:12px}.sidebar nav{gap:7px}.sidebar nav button{min-height:44px;padding:12px 13px;border-radius:12px;font-weight:600}.sidebar nav button.active{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff14}.sidebar nav button.active:before{display:none}.sidebar-bottom{padding-top:20px}.topbar{height:78px;padding:0 42px;background:#efeee7;border-bottom-color:#deddd5;-webkit-backdrop-filter:none;backdrop-filter:none}.top-title span{font-size:14px}.top-actions{padding:5px;background:#ffffff9e;border:1px solid var(--line);border-radius:12px}.icon-button{display:grid;place-items:center;border-radius:8px}.icon-button:hover{background:#fff}.page{padding:44px 42px 60px}.page-intro{margin-bottom:32px}.page-intro h1{font-size:clamp(30px,4vw,42px);line-height:1.08}.page-intro>div>p:last-child{max-width:620px;line-height:1.65}.card,.stat-card,.event-card{background:var(--surface-raised);border-color:#173f351a;box-shadow:var(--shadow-sm)}.card{border-radius:var(--radius-md);padding:26px}.stat-card{border-radius:var(--radius-md);padding:22px;min-height:126px}.stat-card:hover,.event-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card,.event-card,.quick,.sidebar nav button,.icon-button{transition:transform .18s ease-out,box-shadow .18s ease-out,background-color .18s ease-out}.stat-icon{width:46px;height:46px;border-radius:13px}.stat-card strong{font-size:28px}.dashboard-grid{gap:20px}.section-head h2{font-size:20px}.quick-grid{gap:12px}.quick{min-height:64px;border-radius:12px;padding:15px}.quick:hover{transform:translateY(-2px);border-color:#173f3538;box-shadow:var(--shadow-sm)}.empty-state{background:var(--surface-soft);border-style:dashed;box-shadow:none;border-radius:12px}.primary,.secondary,.danger{min-height:42px;border-radius:var(--radius-sm)}.primary{box-shadow:0 6px 14px #173f3524}.primary:hover{transform:translateY(-1px)}.primary,.secondary,.danger{transition:transform .18s ease-out,background-color .18s ease-out}.entity-form,.call-card,.inline-form{border-left-width:1px;border-top:4px solid var(--lime)}.school-fields input,.school-fields select,.inline-form input,.inline-form select,.call-card input{min-height:44px;border-radius:10px}.table-card{border-radius:var(--radius-md)}.table-tools{padding:20px 22px}th{background:#f6f5ef;letter-spacing:normal}th,td{padding:16px 20px}tbody tr:hover{background:#fafaf6}.row-actions>button,.delete-button{border-radius:9px}.event-grid{gap:20px}.event-card{border-radius:var(--radius-md);padding:24px}.student-hero{border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.profile-cover{background:var(--green)}.automation-banner{border-radius:var(--radius-md)}.login-page{min-height:100dvh;background:#f4f2eb}.login-visual{min-height:100dvh;padding:clamp(48px,8vw,96px)}.visual-content{max-width:560px}.login-visual h1{font-size:clamp(42px,5vw,66px);line-height:1.03}.login-visual>.visual-ring{opacity:.65}.login-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.login-features span{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;color:#d7e1dd;font-size:10px;font-weight:700}.login-features svg{width:13px;height:13px;color:var(--lime)}.login-form-wrap{padding:clamp(30px,7vw,80px)}.login-card{max-width:430px;padding:34px;background:#fff;border:1px solid rgb(23 63 53 / 9%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-card h2{font-size:38px}.login-card input{min-height:46px}.auth-mode{min-height:38px}.test-access{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px}.test-access>span{grid-column:1 / -1;font-size:9px;font-weight:700;color:var(--muted)}.test-access button{padding:10px;text-align:left;border:1px solid var(--line);border-radius:10px;background:#f8f7f2;color:var(--ink)}.test-access button:hover{border-color:var(--green)}.test-access strong,.test-access small{display:block}.test-access strong{font-size:11px}.test-access small{margin-top:3px;color:var(--muted);font-size:8px;white-space:nowrap}.dialog-content{border:1px solid rgb(23 63 53 / 10%);box-shadow:var(--shadow-md)}@media(max-width:1000px){.sidebar{width:250px}.app-shell>main{margin-left:0}.page{padding:34px 26px 50px}.topbar{padding:0 26px}}@media(max-width:900px){.app-shell{display:block}.app-shell>main{display:block}.sidebar{transform:translate(-100%);transition:transform .18s ease-out;z-index:30}.sidebar.open{transform:translate(0);box-shadow:10px 0 35px #00000038}.mobile-close{display:block;position:absolute;right:10px;top:16px;color:#fff}.menu-button{display:block}.overlay{position:fixed;inset:0;background:#00000073;z-index:20}.topbar{padding:0 18px}.dashboard-grid,.settings-grid,.form-grid{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{padding-bottom:max(20px,env(safe-area-inset-bottom))}.topbar{height:66px;padding:0 14px}.page{padding:26px 15px 44px}.card{padding:20px}.stat-card{min-height:112px}.login-form-wrap{min-height:100dvh;padding:18px}.login-card{padding:28px 22px}.login-card h2{font-size:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important}}
