:root{--ink:#193238;--muted:#6b7c7d;--teal:#c62828;--mint:#fff0f0;--line:#e3e9e5;--gold:#e8b45b;--shadow:0 14px 40px #183c3510}*{box-sizing:border-box}body{margin:0;background:#f7f8f5;color:var(--ink);font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.top{height:70px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(4vw,18px);position:sticky;top:0;z-index:2}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:800}.brandmark{width:38px;height:38px;border-radius:12px;background:var(--teal);color:white;display:grid;place-items:center;font-size:19px}#userbar{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--muted)}main{min-height:calc(100vh - 70px)}.auth{max-width:1100px;margin:auto;min-height:calc(100vh - 70px);padding:50px 24px;display:grid;grid-template-columns:1fr 410px;align-items:center;gap:65px}.intro h1{font-size:clamp(38px,5vw,58px);line-height:1.06;letter-spacing:-.045em;margin:14px 0}.intro p{font-size:17px;color:var(--muted);max-width:520px}.kicker{color:var(--teal);font-size:11px;font-weight:850;letter-spacing:.12em}.card,.panel,.stat{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.card{padding:25px}.tabs{display:flex;padding:4px;border-radius:10px;background:#f5eeee;margin-bottom:18px}.tab{flex:1;border:0;background:none;color:var(--muted);font-weight:750;border-radius:8px;padding:9px}.tab.on{background:white;color:var(--teal);box-shadow:0 2px 7px #17392d12}.card label{display:block;font-size:13px;font-weight:750;margin:13px 0}.card input,.field input,.field select{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid #d9e2dd;border-radius:9px;outline-color:var(--teal);background:white}.primary,.secondary{border:0;border-radius:9px;padding:10px 15px;font-weight:750}.primary{background:var(--teal);color:white}.primary:hover{background:#a61f24}.secondary{background:#f4eeee;color:var(--ink)}.full{width:100%;margin-top:7px}.link{display:block;border:0;background:none;color:var(--teal);font-weight:750;padding:12px 0}.muted,.helper{font-size:12px;color:var(--muted)}.msg{font-size:13px;color:var(--teal);min-height:0}.msg:not(:empty){background:var(--mint);padding:9px;border-radius:8px}.notice{max-width:920px;margin:18px auto 0;padding:13px 16px;background:#fff1d5;border-radius:12px;color:#604c21}.notice p{margin:3px 0;font-size:13px}#portal{max-width:1320px;margin:auto;padding:25px 22px 55px;display:grid;grid-template-columns:215px minmax(0,1fr);gap:22px}.sidebar{height:max-content;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;position:sticky;top:88px}.sidebar strong{display:block;font-size:10px;letter-spacing:.12em;color:var(--muted);padding:10px}.navbtn{display:block;width:100%;text-align:left;border:0;background:none;padding:11px;border-radius:9px;color:var(--muted);font-weight:700}.navbtn.on,.navbtn:hover{background:var(--mint);color:var(--teal)}.content{min-width:0}.heading{display:flex;justify-content:space-between;align-items:center;margin:2px 0 19px}.heading h1{font-size:26px;letter-spacing:-.03em;margin:4px 0}.avatar{width:43px;height:43px;border-radius:50%;background:#f2daba;color:#765a34;display:grid;place-items:center;font-weight:850}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.stat{padding:15px}.stat small{font-weight:700;color:var(--muted)}.stat strong{display:block;font-size:24px;margin:5px 0}.stat em{font-style:normal;color:var(--teal);font-size:12px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:13px}.panel{padding:17px;margin-bottom:13px}.panel h2{font-size:17px;margin:0 0 13px}.package{background:linear-gradient(120deg,#c62828,#8e1b20);color:white;padding:16px;border-radius:13px}.package small{color:#d7ebe5}.package h3{margin:3px 0 8px}.progress{height:8px;border-radius:9px;background:#ffffff40;margin:14px 0 7px;overflow:hidden}.progress i{display:block;background:var(--gold);height:100%}.row{display:flex;gap:11px;align-items:center;border-top:1px solid var(--line);padding:11px 0}.row:first-of-type{border-top:0}.date{width:47px;flex:none;text-align:center;background:var(--mint);color:var(--teal);border-radius:9px;padding:4px;font-weight:800}.date small{display:block;font-size:9px}.rowmain{flex:1;min-width:0}.rowmain strong{display:block}.rowmain small{color:var(--muted)}.row a.button{white-space:nowrap;text-decoration:none}.tutors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tutor{border:1px solid var(--line);border-radius:12px;padding:13px}.tutor h3{font-size:15px;margin:0}.tutor p{font-size:12px;color:var(--muted);margin:5px 0}.tutor button{width:100%;margin-top:8px}.field{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:10px 0}.field input,.field select{color:var(--ink)}.slot{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;border-top:1px solid var(--line);padding:11px 0}.slot:first-of-type{border:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:10px;text-transform:uppercase}.empty{color:var(--muted);padding:12px 0}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#8e1b20;color:white;border-radius:10px;padding:11px 15px;display:none;z-index:6}.toast.show{display:block}[hidden]{display:none!important}@media(max-width:850px){.auth{grid-template-columns:1fr 380px;gap:20px}#portal{grid-template-columns:1fr}.sidebar{position:static;display:flex;overflow:auto}.sidebar strong{display:none}.navbtn{width:auto;white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr)}.tutors{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.auth{display:block;padding:27px 14px}.intro h1{font-size:37px}.intro p{font-size:15px}.card{padding:18px;margin-top:20px}#portal{padding:14px 11px 40px;gap:13px}.cols{grid-template-columns:1fr}.tutors{grid-template-columns:1fr}.heading h1{font-size:22px}.slot{grid-template-columns:1fr auto}.slot .helper{grid-column:1/-1}}.profilepic,.tutorpic,.personpic{object-fit:cover;border-radius:50%;background:#f4eeee}.profilepic{width:112px;height:112px;display:block;margin:8px 0 15px}.tutorpic{width:72px;height:72px}.personpic{width:38px;height:38px;float:left;margin-right:8px}.introvideo,.profilevideo{display:block;width:100%;max-width:420px;max-height:320px;border-radius:12px;margin:10px 0}.adminsession{border-top:1px solid var(--line);padding:12px 0}.adminsession>strong,.adminsession>span{display:block}.adminsession>span{font-size:12px;color:var(--muted)}.sessionlink{min-width:190px}.row{flex-wrap:wrap}.rowmain{min-width:170px}.tutor .introvideo{max-height:180px}.slot .slotlink{min-width:190px}
/* Warm Speak Clearly Coach palette: deep red, coral highlights, soft gradients. */
:root{--ink:#341116;--muted:#82676a;--teal:#a81424;--mint:#fff0f1;--line:#f0dfe1;--gold:#ffd276;--shadow:0 18px 45px rgba(85,12,24,.09)}
body{background:radial-gradient(ellipse at 8% 0%,rgba(255,206,212,.65),transparent 36%),radial-gradient(ellipse at 95% 16%,rgba(255,229,202,.55),transparent 34%),linear-gradient(145deg,#fff9f7 0%,#fff 46%,#fff5f6 100%);background-attachment:fixed}
.top{background:linear-gradient(105deg,#fff 0%,#fff8f7 58%,#fff0f2 100%);box-shadow:0 4px 22px rgba(110,18,31,.05)}
.card,.panel,.stat{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,249,248,.94));border-color:rgba(168,20,36,.10);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}
.stat:hover,.tutor:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(85,12,24,.12)}
.brandmark,.package{background:linear-gradient(135deg,#bd1f31,#74101b 80%)}
.primary{background:linear-gradient(130deg,#c62838,#8c101d);box-shadow:0 7px 18px rgba(155,20,36,.18)}
.primary:hover{background:linear-gradient(130deg,#a91d2b,#6f0e18)}
.secondary{background:linear-gradient(130deg,#fff0f1,#ffe4e7);color:#74101b}
.navbtn.on,.navbtn:hover{background:linear-gradient(100deg,#ffe8eb,#fff3ed);color:#8c101d}
.daily-card{position:relative;overflow:hidden;margin:15px 0;padding:22px;border:1px solid rgba(168,20,36,.12);border-radius:18px;background:radial-gradient(circle at 95% 5%,rgba(255,255,255,.7),transparent 24%),linear-gradient(125deg,#fff0e6 0%,#ffe2e6 48%,#f8e9ff 100%);box-shadow:0 16px 35px rgba(114,25,44,.10)}
.daily-card:after{content:"✦";position:absolute;right:22px;top:6px;font-size:42px;color:rgba(168,20,36,.17)}
.daily-kicker{font-size:10px;font-weight:900;letter-spacing:.15em;color:#9e1b2a}.daily-card h2{margin:4px 0 12px;color:#5b1119;font-size:20px}
.flashcard{max-width:600px;padding:16px 18px;border:1px solid rgba(129,24,38,.10);border-radius:14px;background:linear-gradient(135deg,#fff,#fffaf0);box-shadow:0 8px 20px rgba(100,30,35,.07)}
.flashcard strong{font-size:23px;color:#9d1727}.flashcard p{margin:5px 0;color:#482329}.flashcard small{color:#76575b}
.daily-card blockquote{margin:14px 0 0;padding:10px 14px;border-left:3px solid #c62838;color:#6c1c25;font-weight:700;background:rgba(255,255,255,.42);border-radius:0 10px 10px 0}
.feedback-note{flex-basis:100%;margin:5px 0;padding:12px 14px;border-radius:11px;background:linear-gradient(100deg,#fff0f1,#fff9ee);color:#4b1a20}.feedback-note b{color:#a81424}
textarea{display:block;width:100%;min-height:82px;margin-top:5px;padding:11px 12px;border:1px solid #ead3d6;border-radius:9px;font:inherit;resize:vertical}
@media(max-width:600px){.daily-card{padding:17px}.flashcard strong{font-size:20px}.feedback-note{min-width:100%}}.pending-alert{margin:0 0 14px;padding:17px 19px;border:1px solid rgba(168,20,36,.2);border-radius:16px;background:linear-gradient(120deg,#ffe5e8,#fff3de);box-shadow:0 12px 28px rgba(121,17,33,.08)}.pending-alert.clear{background:linear-gradient(120deg,#effaf1,#fff)}.pending-alert strong{display:block;color:#7d101b;font-size:16px}.pending-alert p{margin:4px 0 8px;color:#76575b;font-size:13px}.pending-alert a{display:inline-block;margin:4px 10px 8px 0;color:#901522;font-weight:750}.pending-alert button{display:block}.feedback-form{flex-basis:100%;padding:15px;border:1px solid #f0d6da;border-radius:13px;background:linear-gradient(135deg,#fff8f2,#fff0f2)}.feedback-form>b{color:#79121c}.feedback-form .field{display:inline-block;vertical-align:top;width:calc(50% - 12px);margin:8px 12px 6px 0}.feedback-form textarea{min-height:68px}.feedback-graph{margin-top:8px;max-width:500px}.score{display:grid;grid-template-columns:minmax(130px,1.2fr) 2fr 42px;gap:9px;align-items:center;margin:6px 0;font-size:12px}.scoretrack{height:9px;border-radius:8px;background:#f1dadd;overflow:hidden}.scoretrack i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#e89156,#b51b2d)}.score b{color:#84131f}.adminsession{scroll-margin-top:85px}
@media(max-width:600px){.feedback-form .field{width:100%;margin-right:0}.pending-alert a{display:block}}.cancel-form,.cancellation-note{flex-basis:100%;padding:12px 14px;border:1px solid rgba(168,20,36,.13);border-radius:12px;background:linear-gradient(130deg,#fff7f4,#fff0f1)}.cancellation-note p{margin:5px 0 0}.cancel-form textarea,.field textarea{display:block;width:100%;min-height:72px;margin-top:5px;padding:11px 12px;border:1px solid #e3cfd2;border-radius:9px;outline-color:var(--teal);font:inherit}.cancel-form .helper{margin:4px 0}.recording-editor{margin-top:8px}.student-review-form,.attendance-confirmed{flex-basis:100%;padding:13px 15px;border:1px solid rgba(168,20,36,.14);border-radius:13px;background:linear-gradient(130deg,#fff7f4,#fff0f1)}.student-review-form>b,.attendance-confirmed>b{color:#79121c}.reviewstars{color:#bd1f31;font-size:20px;letter-spacing:2px;margin:4px 0}.reviewstars span{font-size:13px;letter-spacing:0;color:var(--muted);font-weight:750}.attendance-confirmed p{margin:5px 0;color:var(--ink)}.join-disabled,.primary:disabled,.secondary:disabled{background:#e5e7eb!important;color:#77808b!important;border:1px solid #d9dee4!important;box-shadow:none!important;cursor:not-allowed;opacity:1}/* Dashboard polish: breathing room, profile cards, recording controls. */
.panelhead{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.panelhead h2{margin:0}
.tutor-rating{margin:4px 0;color:#bd1f31;font-size:17px;letter-spacing:1px}
.tutor-rating span{color:var(--muted);font-size:11px;letter-spacing:0;font-weight:700}
.tutor-placeholder{display:grid;place-items:center;color:#8c101d;font-weight:850;font-size:24px}
.tutor-stats .stat{min-height:98px}
.session-actions{display:flex;flex-wrap:wrap;gap:10px;flex-basis:100%;align-items:flex-start}
.session-actions>.cancel-form,.session-actions>[data-reschedule-form]{flex-basis:100%}
.recording-open{display:inline-block;text-decoration:none}
.danger-button{border:0;border-radius:9px;padding:10px 15px;font:inherit;font-weight:750;background:#fff0f1;color:#9e1424;cursor:pointer}
.danger-button:hover{background:#ffe0e4}
.recording-editor .secondary,.recording-editor .danger-button{margin:0 8px 8px 0}
.recording-editor .field{max-width:520px}
.panel:has(>h2):has(.row) .row{margin-top:8px}
@media(max-width:600px){.panelhead{align-items:flex-start;flex-direction:column}.tutor-stats .stat{min-height:90px}}
.load-warning{margin:0 0 14px;padding:14px 16px;border:1px solid #efc7cd;border-radius:12px;background:linear-gradient(120deg,#fff0f1,#fff8f0);color:#74101b}
.load-warning strong{display:block;margin-bottom:4px}.load-warning p{margin:4px 0;font-size:13px}
/* Gold stars for tutor profile cards and session reviews. */
.tutor-rating{color:#d4af37!important}
.reviewstars{color:#d4af37!important}

.brandmark{display:block;width:46px;height:46px;object-fit:contain;border-radius:50%;background:transparent;flex:none}
.portal-logo{display:block;width:126px;height:126px;object-fit:contain;margin:0 0 16px}
@media(max-width:600px){.portal-logo{width:96px;height:96px}}
