:root{--ink:#172221;--muted:#72807e;--line:#e8ecea;--green:#135b51;--soft:#f6f8f7;--cream:#fbfcfb;--red:#bb514d;--yellow:#b78019}*{box-sizing:border-box}body{margin:0;background:var(--cream);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:15px}.shell{min-height:100vh}.sidebar{width:256px;background:#fff;border-right:1px solid var(--line);padding:24px 14px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:750;padding:0 10px}.brand-mark{display:grid;place-items:center;background:var(--green);color:#fff;width:30px;height:30px;border-radius:9px;font-family:Georgia;font-weight:700}.center-name{margin:29px 4px 20px;padding:10px 11px;background:#f5f7f6;border-radius:9px;font-weight:600;font-size:13px}.center-name span{float:right;color:#74817f}nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;padding:11px 12px;border-radius:9px;text-align:left;color:#61706d;font-size:14px;cursor:pointer}.nav-item i{font-style:normal;font-size:18px;width:25px;display:inline-block;text-align:center;margin-right:8px}.nav-item.active,.nav-item:hover{background:#eaf3f1;color:#14584f;font-weight:650}.side-bottom{margin-top:auto}.profile{margin:14px 5px 0;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:9px;align-items:center;font-size:12px}.profile small,.profile span{display:block;color:var(--muted);margin-top:3px}.profile>span{margin-left:auto}.avatar{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:#d4e4e0;color:#155d52;font-weight:700;font-size:11px}main{margin-left:256px;min-height:100vh}.topbar{height:73px;padding:0 42px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between}.search{width:350px;display:flex;align-items:center;gap:8px;color:#899492;background:#f5f7f6;padding:9px 12px;border-radius:8px}.search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:13px}.top-actions{display:flex;align-items:center;gap:16px}.icon-btn,.help,.more,.hamburger{border:0;background:transparent;cursor:pointer;color:#4d5c59;font-size:18px;position:relative}.icon-btn em{position:absolute;width:6px;height:6px;background:#df625d;border-radius:50%;right:0;top:0}.help{border:1px solid #dce2e0;border-radius:50%;font-size:12px;width:22px;height:22px}.hamburger{display:none}.view{display:none;padding:42px;max-width:1440px;margin:auto}.active-view{display:block}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:1.2px;color:#778582;font-weight:750;margin:0 0 8px}.page-heading h1{font-size:30px;margin:0 0 7px;letter-spacing:-.8px}.subcopy,.section-title p{margin:0;color:var(--muted);font-size:14px}.primary{border:0;border-radius:8px;padding:11px 15px;background:var(--green);color:#fff;font:600 14px inherit;cursor:pointer;box-shadow:0 2px 4px #0d483b22}.today-layout{display:grid;grid-template-columns:1fr 310px;gap:20px}.today-card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px}.today-card{padding:24px}.section-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.section-title h2,.panel h2{margin:0 0 5px;font-size:17px;letter-spacing:-.2px}.text-button{border:0;background:transparent;color:#176054;font:650 13px inherit;cursor:pointer}.lesson{display:flex;align-items:center;border-top:1px solid var(--line);padding:17px 0;gap:16px}.time{width:44px;display:grid;gap:4px;font-size:12px}.time b{font-size:14px}.time span{color:var(--muted)}.lesson-line{height:42px;width:3px;background:#44a08f;border-radius:5px}.lesson-line.violet{background:#8a79bb}.lesson-main{flex:1}.lesson h3{font-size:15px;margin:0 0 5px}.lesson p{margin:0;color:var(--muted);font-size:13px}.attendance-btn,.pay-small{border:1px solid #c8ddd8;background:#f5fbf9;color:#155b51;border-radius:7px;padding:8px 10px;font:650 12px inherit;cursor:pointer}.message-card{border-radius:13px;background:#145b51;color:#fff;padding:25px;min-height:239px;position:relative;overflow:hidden}.message-card:after{content:"";position:absolute;width:160px;height:160px;border:22px solid #ffffff12;border-radius:50%;right:-72px;bottom:-75px}.telegram{font-size:12px;opacity:.85}.telegram span{font-size:15px}.message-card h3{font-size:20px;line-height:1.23;margin:21px 0 11px;letter-spacing:-.4px}.message-card>p{font-size:12px;line-height:1.55;opacity:.78;margin:0 0 17px}.sent-row{display:flex;gap:10px;align-items:center;margin-bottom:15px;font-size:11px}.sent-row small{display:block;opacity:.7;margin-top:3px}.sent-icon{display:grid;place-items:center;border-radius:50%;width:27px;height:27px;background:#ffffff1c}.white-button{background:#fff;border:0;border-radius:7px;color:#155b51;padding:8px 10px;font:650 12px inherit;cursor:pointer;position:relative;z-index:1}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.metrics article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:18px;display:flex;gap:13px;align-items:center}.metrics p{margin:0 0 5px;font-size:12px;color:var(--muted)}.metrics b{font-size:24px;letter-spacing:-.8px;margin-right:7px}.metrics span{font-size:11px}.metric-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;font-size:18px}.mint{background:#e5f3ef;color:#15725f}.red{background:#fbeceb;color:#ba514c}.gold{background:#fff4dc;color:#b27d1b}.blue{background:#eaf1fb;color:#527fb9}.danger{color:#b9504c}.muted{color:var(--muted)}.lower-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.panel{padding:23px}.debt-row{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.student-mini{width:29px;height:29px;border-radius:50%;display:inline-grid;place-items:center;font-size:10px;font-weight:750;margin-right:8px}.peach{background:#f9e6d8;color:#a56039}.lavender{background:#e9e3f6;color:#7056a7}.sky{background:#dceef4;color:#377889}.debt-row b{font-size:13px}.debt-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.debt-row strong{font-size:12px}.activity-row{display:flex;gap:11px;padding:11px 0;border-top:1px solid var(--line)}.activity-row p{margin:0;font-size:12px}.activity-row small{display:block;color:var(--muted);margin-top:4px}.activity-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;font-size:13px;flex:0 0 auto}.green{background:#e4f3ef;color:#237762}.purple{background:#efebf8;color:#7259a8}.amber{background:#fff2d8;color:#ad7816}.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.group-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px}.course-chip{display:inline-block;border-radius:5px;font-size:10px;font-weight:750;letter-spacing:.6px;padding:5px 7px}.green-chip{color:#176d5d;background:#e6f4f0}.purple-chip{color:#6c55a1;background:#efebf8}.orange-chip{color:#a75f22;background:#fcebd9}.group-card h2{margin:22px 0 7px;font-size:19px}.group-card p{color:var(--muted);font-size:13px}.group-card div{border-top:1px solid var(--line);padding-top:17px;margin-top:20px;color:var(--muted);font-size:12px}.group-card div b{font-size:16px;color:var(--ink)}.group-card div span{float:right;color:var(--ink);font-weight:650}.group-card button{margin-top:18px;width:100%;border:1px solid #d6e3e0;background:#fff;color:var(--green);border-radius:7px;padding:9px;font:650 13px inherit;cursor:pointer}.table-panel{padding:0;overflow:hidden}.table-toolbar{padding:16px;display:flex;gap:10px;border-bottom:1px solid var(--line)}.compact{width:280px}.filter{background:#fff;border:1px solid #dce4e1;border-radius:7px;padding:8px 10px;color:#53615e;font:13px inherit}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-size:10px;letter-spacing:.6px;color:#83908d;padding:14px 17px;background:#fafbfb}td{padding:15px 17px;border-top:1px solid var(--line);color:#42504d}td:first-child{color:var(--ink);font-weight:650}td .student-mini{vertical-align:middle}.status{padding:4px 7px;border-radius:10px;font-size:11px}.status.active{background:#e9f4f0;color:#20705f}.status.paid{background:#e8f4ef;color:#197158}.due{color:#bc514c!important;font-weight:650}.quick-actions{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);padding-bottom:16px}.quick-actions button,.modal-actions button{border:1px solid #dce5e2;background:#fff;border-radius:7px;padding:8px 10px;color:#455451;font:650 12px inherit}.quick-actions .present-all,.modal-actions .present-all{background:#eaf6f2;color:#176454;border-color:#d0e8df}.quick-actions span{flex:1}.quick-actions p{font-size:11px;color:var(--muted);margin:0}.attendance-list{padding-top:5px}.attendance-item{display:flex;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line)}.attendance-item>div:nth-child(2){flex:1}.attendance-item b{font-size:13px}.attendance-item small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.mark-controls{display:flex;gap:5px}.mark{width:28px;height:28px;border:1px solid #dfe5e3;background:#fff;border-radius:7px;cursor:pointer;font-weight:700;color:#7c8987}.mark.selected-present{background:#e4f2ed;border-color:#a8d6c7;color:#17725d}.mark.selected-absent{background:#fce9e8;border-color:#f1c3c0;color:#bb514c}.mark.selected-late{background:#fff3de;border-color:#f0d398;color:#ad7615}.empty-state{text-align:center;padding:70px 20px}.empty-state>span{display:grid;place-items:center;margin:auto auto 16px;width:48px;height:48px;border-radius:14px;background:#e9f3f0;color:var(--green);font-size:22px}.empty-state p{color:var(--muted);max-width:360px;margin:8px auto 20px;line-height:1.5;font-size:13px}.payment-summary{display:flex;align-items:center;gap:45px;padding:20px;border-bottom:1px solid var(--line)}.payment-summary p{font-size:12px;color:var(--muted);margin:0 0 5px}.payment-summary b{font-size:18px}.payment-summary button{margin-left:auto}.parent-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.connection{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:15px 0}.connection p{color:var(--muted);margin:4px 0 0;font-size:12px}.telegram-preview{border-radius:13px;background:#dcebee;padding:20px}.chat-head{background:#fff;padding:12px;border-radius:9px 9px 0 0;color:#145b51;font-size:13px}.bubble{margin:13px 5px;background:#fff;padding:13px;border-radius:4px 12px 12px 12px;font-size:13px;line-height:1.4;box-shadow:0 1px 2px #0000000c}.telegram-preview small{font-size:11px;color:#5f7374}.mobile-nav{display:none}.modal-backdrop{display:none;position:fixed;inset:0;background:#10231f66;z-index:10;align-items:center;justify-content:center;padding:20px}.modal-backdrop.show{display:flex}.modal{background:#fff;border-radius:15px;width:min(630px,100%);box-shadow:0 20px 70px #0004}.modal-head{padding:21px 23px 16px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:21px}.close{border:0;background:#f2f5f4;border-radius:50%;font-size:22px;width:28px;height:28px;cursor:pointer;line-height:1}.modal-actions{display:flex;gap:8px;padding:14px 23px;border-bottom:1px solid var(--line);align-items:center}.modal-actions span{margin-left:auto;color:var(--muted);font-size:12px}.mark-list{max-height:380px;overflow:auto;padding:0 23px}.modal footer{display:flex;align-items:center;justify-content:space-between;padding:15px 23px;border-top:1px solid var(--line)}.modal footer p{font-size:11px;color:var(--muted);margin:0}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 3px 0 7px}.green-dot{background:#2f987c}.red-dot{background:#cd625e}.yellow-dot{background:#d49a27}.payment-modal{width:min(430px,100%);padding-bottom:22px}.payment-modal label{display:block;margin:15px 23px 0;font-size:12px;font-weight:650;color:#4c5c58}.payment-modal input,.payment-modal select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #d9e2df;border-radius:7px;font:14px inherit;background:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:0}.receipt-note{margin:18px 23px;color:var(--muted);font-size:12px;line-height:1.45}.full{width:calc(100% - 46px);margin:0 23px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,100px);background:#173f38;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:0 8px 25px #0003;font-size:13px;transition:.3s;z-index:20}.toast.show{transform:translate(-50%,0)}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.today-layout{grid-template-columns:1fr}.message-card{min-height:auto}.lower-grid{grid-template-columns:1fr}.group-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){body{padding-bottom:70px}.sidebar{display:none}main{margin:0}.topbar{height:61px;padding:0 17px}.hamburger{display:block}.topbar .search{width:calc(100% - 130px)}.top-actions{gap:10px}.top-actions .help,.top-actions .avatar{display:none}.view{padding:23px 16px}.page-heading{margin-bottom:21px}.page-heading h1{font-size:25px}.page-heading .primary{font-size:12px;padding:10px}.today-card{padding:17px}.lesson{gap:10px;flex-wrap:wrap}.lesson-main{min-width:130px}.lesson .attendance-btn{margin-left:auto}.lesson .more{display:none}.metrics{gap:9px;margin:12px 0}.metrics article{padding:13px;gap:9px}.metrics b{font-size:20px}.metric-icon{width:31px;height:31px}.metrics span{display:none}.today-layout{gap:12px}.message-card{padding:20px}.lower-grid{gap:12px}.panel{padding:17px}.debt-row{grid-template-columns:30px 1fr auto}.debt-row .pay-small{grid-column:2/4;width:max-content}.activity{display:none}.mobile-nav{position:fixed;z-index:5;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);height:64px;display:flex;justify-content:space-around}.mobile-nav button{border:0;background:#fff;color:#74817f;font-size:17px;padding:7px 8px 4px;display:grid;gap:2px;text-align:center}.mobile-nav span{font-size:10px}.mobile-nav .active{color:var(--green);font-weight:700}.group-grid{grid-template-columns:1fr}.table-panel{overflow-x:auto}.table-toolbar{min-width:640px}.table-panel table{min-width:700px}.quick-actions{flex-wrap:wrap}.quick-actions p{width:100%;margin-top:5px}.payment-summary{min-width:600px}.parent-layout{grid-template-columns:1fr}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:90vh}.mark-list{max-height:340px}.modal footer{padding:12px 17px}.modal footer p{display:none}.attendance-modal .modal-actions{padding:12px 17px}.modal-head{padding:17px}.payment-modal{padding-bottom:18px}.payment-modal label{margin-left:18px;margin-right:18px}.full{width:calc(100% - 36px);margin:0 18px}}
