/* ===== Tuition ERP - Maximalist colour theme ===== */
.tte-wrap{--ink:#1b1245;--cream:#fff4dc;--ind:#4b2fd6;--pur:#8e44ff;--pink:#ff3f81;--yel:#ffc42e;--teal:#00c2b3;--org:#ff7b2e;--sky:#3ea6ff;--lime:#a6e22e;--mu:#6c6592;
 --hs:5px 5px 0 var(--ink);--hs-s:3px 3px 0 var(--ink);--bd:2.5px solid var(--ink);
 color:var(--ink);font-size:14.5px;line-height:1.5;font-family:"Poppins","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
 background:var(--cream);background-image:radial-gradient(rgba(27,18,69,.14) 1.4px,transparent 1.5px),radial-gradient(rgba(255,63,129,.12) 1.4px,transparent 1.5px);background-size:24px 24px,24px 24px;background-position:0 0,12px 12px}
.tte-wrap *{box-sizing:border-box}
.tte-wrap.wrap{padding:20px;margin:12px 20px 0 2px;border-radius:26px;border:var(--bd);box-shadow:8px 8px 0 var(--ind);min-height:80vh}
.tte-front{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99990;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;border:0;border-radius:0;box-shadow:none;margin:0;padding:22px clamp(12px,3vw,40px) 48px}
body.admin-bar .tte-front{top:32px}
body.tte-page{overflow:hidden}
.tte-front>.tte-topbar,.tte-front>.tte-layout,.tte-front>.tte-note{max-width:1500px;margin-left:auto;margin-right:auto}
.tte-fa-page{min-width:0}
.tte-wrap .nav-tab-wrapper{display:flex;flex-wrap:wrap;gap:10px}
.tte-wrap .nav-tab{display:inline-block;float:none;margin:0;padding:8px 18px;border:var(--bd);border-radius:12px;background:#fff;color:var(--ink)!important;font-weight:700;box-shadow:var(--hs-s)}
.tte-wrap .nav-tab-active{background:var(--ind);color:#fff!important}
.tte-wrap h1,.tte-wrap h2,.tte-wrap h3,.tte-wrap h4{color:var(--ink);font-weight:800;letter-spacing:-.01em}
.tte-wrap h3{margin:0 0 14px;font-size:17px;display:flex;align-items:center;gap:8px}
.tte-wrap h3:before{content:"";width:12px;height:12px;border-radius:50%;background:var(--pink);border:2px solid var(--ink);flex:none}
.tte-wrap h2.nav-tab-wrapper{border:0;padding:0;margin:16px 0 8px}
.tte-wrap hr.wp-header-end{border:0;margin:0}
.tte-wrap a{color:var(--ind);font-weight:600;text-decoration:none}.tte-wrap a:hover{color:var(--pink)}
.tte-muted{color:var(--mu)}
/* admin banner */
.tte-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;border-radius:20px;border:var(--bd);box-shadow:var(--hs);color:#fff;background:linear-gradient(120deg,var(--ind) 0%,var(--pur) 45%,var(--pink) 100%);position:relative;overflow:hidden;margin-bottom:6px}
.tte-banner:after{content:"";position:absolute;right:-30px;top:-40px;width:150px;height:150px;border-radius:50%;background:var(--yel);opacity:.9;border:var(--bd)}
.tte-banner>*{position:relative;z-index:1}
.tte-banner-t{flex:1;min-width:180px}
.tte-wrap .tte-banner h1,.tte-wrap h1.wp-heading-inline{color:#fff;font-size:24px;margin:0;padding:0;line-height:1.2}
.tte-banner-sub{opacity:.9;font-size:12.5px}
.tte-banner-logo{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:14px;border:var(--bd);padding:4px}
.tte-banner-ico{font-size:32px;width:54px;height:54px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:14px;border:var(--bd)}
.tte-banner-btn{margin-right:70px}
/* boxes & cards */
.tte-box{background:#fff;border:var(--bd);border-radius:20px;box-shadow:var(--hs);padding:20px;margin:20px 0;overflow-x:auto}
.tte-box>summary{cursor:pointer;list-style:none;font-size:15px}.tte-box>summary::-webkit-details-marker{display:none}
details.tte-box[open]>summary{margin-bottom:14px}
.tte-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.tte-grid2>.tte-box{margin:20px 0 0}
.tte-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:20px 0}
.tte-card{border:var(--bd);border-radius:18px;box-shadow:var(--hs);padding:16px 18px;position:relative;overflow:hidden;background:var(--yel)}
.tte-card:nth-child(5n+1){background:var(--yel)}.tte-card:nth-child(5n+2){background:#ff9ec0}.tte-card:nth-child(5n+3){background:#7ee8de}.tte-card:nth-child(5n+4){background:#a9d4ff}.tte-card:nth-child(5n+5){background:#ffb98a}
.tte-card:after{content:"";position:absolute;right:-18px;bottom:-18px;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.45);border:2px solid var(--ink)}
.tte-card b{display:block;font-size:24px;line-height:1.25;font-weight:800}
.tte-card span{font-size:12.5px;font-weight:600;position:relative;z-index:1}
.tte-card a{color:var(--ink)}
/* hero */
.tte-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;border-radius:24px;border:var(--bd);box-shadow:var(--hs);color:#fff;margin-bottom:20px;position:relative;overflow:hidden;background:linear-gradient(125deg,var(--ind),var(--pur) 55%,var(--pink))}
.tte-hero:before{content:"";position:absolute;left:-40px;bottom:-60px;width:160px;height:160px;border-radius:50%;background:var(--teal);border:var(--bd);opacity:.9}
.tte-hero>*{position:relative;z-index:1}
.tte-hero small{font-weight:600;opacity:.95}
.tte-hero h2{color:#fff;margin:2px 0 10px;font-size:26px;line-height:1.15}
.tte-chips{display:flex;flex-wrap:wrap;gap:8px}
.tte-chips span{background:var(--yel);color:var(--ink);font-weight:700;font-size:12px;padding:3px 12px;border-radius:99px;border:2px solid var(--ink)}
.tte-chips span:nth-child(2n){background:#fff}.tte-chips span:nth-child(3n){background:#7ee8de}
.tte-hero-art{font-size:54px;background:#fff;border:var(--bd);border-radius:22px;width:92px;height:92px;display:flex;align-items:center;justify-content:center;transform:rotate(6deg);box-shadow:var(--hs-s);flex:none}
/* forms */
.tte-formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px 20px;margin-bottom:16px}
.tte-f label,.tte-filter label{display:block;font-weight:700;font-size:12.5px;margin-bottom:5px;color:var(--ink)}
.tte-f.tte-wide{grid-column:1/-1}
.tte-wrap input[type=text],.tte-wrap input[type=number],.tte-wrap input[type=email],.tte-wrap input[type=url],.tte-wrap input[type=date],.tte-wrap input[type=time],.tte-wrap input[type=password],.tte-wrap input[type=search],.tte-wrap input:not([type]),.tte-wrap select,.tte-wrap textarea{width:100%;max-width:100%;min-height:42px;padding:8px 14px;border:var(--bd)!important;border-radius:12px;background:#fff!important;box-shadow:none!important;color:var(--ink);font-size:14.5px;outline:0}
.tte-wrap input:focus,.tte-wrap select:focus,.tte-wrap textarea:focus{box-shadow:0 0 0 4px var(--yel)!important}
.tte-wrap input[type=file]{width:100%;padding:8px 10px;border:2.5px dashed var(--ind);border-radius:12px;background:#f4f0ff;font-size:13px}
.tte-wrap input[type=checkbox],.tte-wrap input[type=radio]{accent-color:var(--pink);width:18px;height:18px;min-height:0;box-shadow:none!important;border:0!important}
.tte-filter,.tte-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.tte-filter select,.tte-filter input,.tte-row input,.tte-row select{width:auto!important;min-width:150px}
.tte-filter label{display:flex;align-items:center;gap:8px;margin:0}.tte-filter label input{min-width:100px}
.tte-checks{display:flex;flex-wrap:wrap;gap:8px 12px;padding:12px;border:var(--bd);border-radius:14px;background:#f4f0ff}
.tte-checks label{font-weight:600;display:inline-flex;gap:6px;align-items:center;margin:0;background:#fff;padding:3px 10px;border-radius:99px;border:2px solid var(--ink)}
.tte-prev{display:block;max-width:120px;max-height:90px;border:var(--bd);border-radius:12px;margin-bottom:8px;background:#fff;padding:4px}
.tte-thumb{width:64px;height:64px;object-fit:cover;border:var(--bd);border-radius:10px}
/* buttons */
.tte-wrap .button,.tte-wrap .button-primary,.tte-wrap .page-title-action,.tte-btn{display:inline-block;border:var(--bd)!important;border-radius:12px!important;background:#fff!important;color:var(--ink)!important;box-shadow:var(--hs-s)!important;padding:7px 18px!important;min-height:40px;line-height:22px!important;font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:none;text-shadow:none!important;transition:transform .1s,box-shadow .1s}
.tte-wrap .button:hover,.tte-btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)!important;color:var(--ink)!important}
.tte-wrap .button:active,.tte-btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)!important}
.tte-wrap .button-primary,.tte-btn{background:linear-gradient(135deg,var(--pink),var(--org))!important;color:#fff!important}
.tte-wrap .button-primary:hover,.tte-btn:hover{color:#fff!important}
.tte-btn-alt{background:#fff!important;color:var(--ink)!important}
.tte-wrap .button-small,.tte-btn-s{padding:2px 12px!important;min-height:32px;line-height:24px!important;font-size:12.5px}
.tte-wrap .button-large{padding:10px 26px!important;font-size:15px}
.tte-link-del{background:none;border:0;color:var(--pink);cursor:pointer;padding:0;font-size:inherit;font-weight:700;text-decoration:underline}
.tte-inline{display:inline}
/* tables */
.tte-wrap table.widefat,.tte-front .tte-table,.tte-wrap .tte-table{width:100%;border:var(--bd);border-radius:14px;border-collapse:separate;border-spacing:0;background:#fff;box-shadow:var(--hs-s);overflow:hidden}
.tte-wrap .widefat thead th,.tte-front .tte-table th{background:var(--ind);color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border:0;padding:11px 12px;text-align:left}
.tte-wrap .widefat tfoot th{background:var(--yel);color:var(--ink);border-top:var(--bd);padding:10px 12px}
.tte-wrap .widefat td,.tte-front .tte-table td{border-bottom:2px solid #ece7ff;padding:11px 12px;vertical-align:top;color:var(--ink)}
.tte-wrap .widefat tbody tr:last-child td{border-bottom:0}
.tte-wrap .striped>tbody>:nth-child(odd),.tte-front .tte-table tbody tr:nth-child(odd){background:#faf7ff}
.tte-wrap .striped>tbody>:nth-child(even){background:#fff}
.tte-wrap .widefat tbody tr:hover td{background:#fff4c9}
.tte-searchbox{margin:0 0 12px}.tte-searchbox input{max-width:340px}
.tte-sub-row td{background:#fff4c9!important}
.tte-subform{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.tte-subform input[type=file],.tte-subform input:not([type]){width:auto!important;min-width:200px}
/* badges & notices */
.tte-badge{display:inline-block;padding:1px 11px;border-radius:99px;font-size:11.5px;font-weight:800;border:2px solid var(--ink);background:#fff}
.tte-ok{background:#9df3c4}.tte-warn{background:var(--yel)}.tte-bad{background:#ff9ec0}
.tte-note{padding:12px 18px;border-radius:14px;margin:14px 0;border:var(--bd);box-shadow:var(--hs-s);font-weight:700}
.tte-n-ok{background:#9df3c4}.tte-n-err{background:#ff9ec0}
.tte-chart svg{width:100%;height:auto;max-height:260px}.tte-chart text{fill:var(--ink);font-weight:600}
/* brand + topbar */
.tte-brand{display:inline-flex;align-items:center;gap:10px;font-size:16px;color:var(--ink)}
.tte-brand img{width:44px;height:44px;object-fit:contain;background:#fff;border:var(--bd);border-radius:12px;padding:3px}
.tte-brand-dot{font-style:normal;font-size:24px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--yel);border:var(--bd);border-radius:12px}
.tte-topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;padding:10px 16px;border-radius:18px;border:var(--bd);box-shadow:var(--hs-s);background:#fff}
.tte-top-r{display:flex;align-items:center;gap:12px}.tte-hi{font-weight:700}
/* sidebar (desktop) */
.tte-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:start}
.tte-tabs{display:flex;flex-direction:column;gap:12px;position:sticky;top:20px}
.tte-tabs a{display:block;padding:12px 16px;border-radius:14px;border:var(--bd);background:#fff;color:var(--ink)!important;font-weight:700;font-size:13.5px;box-shadow:var(--hs-s);transition:.1s}
.tte-tabs a:nth-child(5n+1):hover{background:var(--yel)}.tte-tabs a:nth-child(5n+2):hover{background:#ff9ec0}.tte-tabs a:nth-child(5n+3):hover{background:#7ee8de}.tte-tabs a:nth-child(5n+4):hover{background:#a9d4ff}.tte-tabs a:nth-child(5n+5):hover{background:#ffb98a}
.tte-tabs a.active{background:var(--ind);color:#fff!important;box-shadow:5px 5px 0 var(--pink)}
.tte-kids{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;align-items:center;font-weight:700}
.tte-kids a{padding:5px 16px;border-radius:99px;border:var(--bd);background:#fff;font-size:13px;color:var(--ink)!important}.tte-kids a.active{background:var(--pink);color:#fff!important}
.tte-main>.tte-box:first-child,.tte-main>.tte-cards:first-child{margin-top:0}
.tte-login{max-width:420px;margin:26px auto;border-radius:26px;border:var(--bd);box-shadow:8px 8px 0 var(--pink);padding:28px;background:#fff}
.tte-login-brand{text-align:center;margin-bottom:6px}.tte-login h2{text-align:center;margin:0 0 18px;font-size:22px}.tte-login .tte-f{margin-bottom:16px}.tte-rem{display:block;margin-bottom:16px;font-size:13px;font-weight:600}
.tte-login .tte-btn{width:100%;min-height:46px;font-size:15px}
.tte-marks input[type=number]{width:100px!important}
.tte-payinfo{display:flex;gap:16px;align-items:center;padding:12px;border:var(--bd);border-radius:16px;background:#f4f0ff;margin-bottom:12px}.tte-payinfo img{width:120px;height:120px;object-fit:contain;background:#fff;border:var(--bd);border-radius:12px;padding:4px}
/* calendar */
.tte-cal-wrap{overflow-x:auto;border-radius:18px;border:var(--bd);padding:12px;background:#fff;box-shadow:var(--hs-s)}
.tte-cal{min-width:760px}
.tte-cal-head,.tte-cal-body{display:grid;grid-template-columns:58px repeat(var(--cols),minmax(0,1fr))}
.tte-cal-head div{text-align:center;font-weight:800;padding:7px 0;color:#fff;background:var(--ind);border:2px solid var(--ink);border-radius:10px;margin:0 3px 8px}
.tte-cal-head div:nth-child(5n+3){background:var(--pink)}.tte-cal-head div:nth-child(5n+4){background:var(--teal)}.tte-cal-head div:nth-child(5n+5){background:var(--org)}.tte-cal-head div:nth-child(5n+6){background:var(--pur)}.tte-cal-head div:first-child{background:none;border:0}
.tte-cal-hours div{font-size:11px;font-weight:700;color:var(--mu);text-align:right;padding:0 8px 0 0;position:relative;top:-7px}
.tte-cal-col{position:relative;border-left:2px dashed #d9d2f5;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hp) - 1px),#e8e2fb calc(var(--hp) - 1px),#e8e2fb var(--hp))}
.tte-cal-click{cursor:cell}.tte-cal-click:hover{background-color:#fff9e0}
.tte-ev{position:absolute;left:4px;right:4px;border-radius:12px;padding:5px 9px;background:var(--ev);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);overflow:hidden;font-size:12px;line-height:1.3}
.tte-ev b{display:block;font-size:12.5px}.tte-ev small{display:block;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tte-cal-click .tte-ev{cursor:pointer}.tte-cal-click .tte-ev:hover{transform:translate(-1px,-1px)}
/* modal */
.tte-modal{position:fixed;inset:0;z-index:100000;background:rgba(27,18,69,.6);display:flex;align-items:center;justify-content:center;padding:14px}
.tte-modal[hidden],.tte-sheet[hidden]{display:none}
.tte-modal-card{background:#fff;color:var(--ink);border-radius:24px;border:var(--bd);box-shadow:8px 8px 0 var(--pink);padding:24px;width:100%;max-width:560px;max-height:92vh;overflow:auto}
.tte-modal-btns{display:flex;gap:12px;flex-wrap:wrap}
/* bottom app nav (phone) */
.tte-bnav,.tte-sheet{display:none}
@media(max-width:900px){
 .tte-layout{display:block}.tte-tabs{display:none}
 .tte-front{padding:12px 12px 100px}
 .tte-front>.tte-topbar{margin:-12px -12px 14px;max-width:none}
 .tte-topbar{position:sticky;top:0;z-index:50;margin:-12px -12px 14px;border-radius:0 0 20px 20px;border-top:0;background:linear-gradient(110deg,var(--ind),var(--pur) 60%,var(--pink));color:#fff}
 .tte-topbar .tte-brand{color:#fff;font-size:14px}.tte-hi{display:none}
 .tte-bnav{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:9999;background:#fff;border:var(--bd);border-radius:24px;box-shadow:0 6px 0 var(--ink);padding:6px;gap:4px;justify-content:space-between}
 .tte-bnav a,.tte-bnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px;border-radius:18px;border:2px solid transparent;background:none;color:var(--ink)!important;font-size:11px;font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit}
 .tte-bnav i{font-style:normal;font-size:21px;line-height:1.1}
 .tte-bnav a.active,.tte-bnav button.active{background:var(--yel);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}
 .tte-sheet{display:block;position:fixed;inset:0;z-index:10000;background:rgba(27,18,69,.55);align-items:flex-end}
 .tte-sheet:not([hidden]){display:flex}
 .tte-sheet-card{width:100%;background:#fff;border:var(--bd);border-bottom:0;border-radius:28px 28px 0 0;padding:18px 18px calc(24px + env(safe-area-inset-bottom,0px));animation:tteup .22s ease-out}
 .tte-sheet-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:18px}
 .tte-sheet-h button{border:var(--bd);background:var(--pink);color:#fff;width:34px;height:34px;border-radius:50%;font-weight:800;cursor:pointer}
 .tte-sheet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
 .tte-sheet-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;border:var(--bd);border-radius:18px;box-shadow:var(--hs-s);font-weight:800;color:var(--ink)!important;text-align:center;font-size:13px}
 .tte-sheet-grid i{font-style:normal;font-size:30px}
 .tte-sheet-grid a:nth-child(4n+1){background:var(--yel)}.tte-sheet-grid a:nth-child(4n+2){background:#ff9ec0}.tte-sheet-grid a:nth-child(4n+3){background:#7ee8de}.tte-sheet-grid a:nth-child(4n+4){background:#a9d4ff}
 .tte-sheet-grid a.active{outline:3px solid var(--ind)}
 .tte-hero{padding:18px}.tte-hero h2{font-size:21px}.tte-hero-art{width:68px;height:68px;font-size:38px;border-radius:18px}
 .tte-cards{grid-template-columns:repeat(2,1fr);gap:12px}.tte-card{padding:13px}.tte-card b{font-size:19px}
 .tte-box{padding:14px;border-radius:18px}
 .tte-front .tte-table th,.tte-front .tte-table td{padding:9px 8px;font-size:13px}
 .tte-payinfo{flex-direction:column;align-items:flex-start}
}
@media(max-width:782px){body.admin-bar .tte-front{top:46px}.tte-grid2{grid-template-columns:1fr}.tte-wrap.wrap{padding:12px;margin:8px 8px 0 0;box-shadow:5px 5px 0 var(--ind)}.tte-banner-btn{margin-right:0}.tte-banner:after{display:none}.tte-wrap table.widefat{display:block;overflow-x:auto}}
@keyframes tteup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.tte-btn,.tte-wrap .button{white-space:nowrap}
