*{box-sizing:border-box}:root{--bg:#f4f5f1;--card:#fff;--text:#111827;--muted:#667085;--line:#e5e7eb;--gold:#c9a227;--green:#027a48;--red:#b42318;--orange:#b54708;--blue:#175cd3;--dark:#162033;--shadow:0 18px 50px rgba(15,23,42,.08);--radius:24px}body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 10% 0%,rgba(201,162,39,.14),transparent 35%),linear-gradient(180deg,#fcfcfa 0%,var(--bg) 100%)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;padding:22px}.login-card{width:min(470px,100%);background:var(--card);border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);padding:28px}.brand-row{display:flex;align-items:center;gap:14px;margin-bottom:12px}.brand-mark{width:60px;height:60px;border-radius:20px;background:var(--dark);color:#f9e7a1;display:grid;place-items:center;font-weight:950}.eyebrow{margin:0 0 4px;color:var(--gold);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}h1,h2,h3{margin-top:0}h1{margin-bottom:6px;font-size:clamp(25px,5vw,38px)}h2{margin-bottom:5px}h3{margin-bottom:5px}.muted{color:var(--muted)}.form-stack{display:grid;gap:10px}.form-stack label{color:#344054;font-weight:900;font-size:13px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px 13px;outline:none;background:#fff;color:var(--text)}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,39,.14)}input[type=file]{border:1px dashed var(--line);background:#f8fafc}.primary-btn,.secondary-btn,.ghost-light-btn,.mini-btn,.danger-btn,.tiny-light-btn,.primary-small-btn{border:0;border-radius:16px;font-weight:950;padding:12px 14px}.primary-btn,.primary-small-btn{background:var(--dark);color:#fff}.primary-small-btn{padding:10px 12px;font-size:13px}.secondary-btn{background:#fff3bf;color:#4d3b00}.ghost-light-btn{background:rgba(255,255,255,.13);color:#fff}.tiny-light-btn{padding:8px 10px;background:rgba(255,255,255,.13);color:#fff;font-size:12px}.mini-btn{background:#f2f4f7;color:#344054;padding:9px 12px;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:fit-content}.danger-btn{background:#fee4e2;color:var(--red)}.round-btn{border:0;width:42px;height:42px;border-radius:15px;background:var(--dark);color:#fff;font-size:19px;flex:0 0 auto}.message{min-height:20px;margin:0;font-size:13px;font-weight:850}.message.error{color:var(--red)}.message.success{color:var(--green)}.small-muted{margin:-4px 0 4px;color:var(--muted);font-size:12px;line-height:1.4}.app-shell{min-height:100vh;padding-bottom:96px}.app-header{position:sticky;top:0;z-index:20;background:rgba(244,245,241,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(229,231,235,.9);display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;transition:.18s}.app-header.shrink{padding:8px 14px}.app-header.shrink h1{font-size:18px}.app-header h1{font-size:23px;margin-bottom:2px}.app-main{max-width:1080px;margin:0 auto;padding:14px}.view{display:none}.active-view{display:block;animation:fadeIn .18s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.hero-card,.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:0 13px 34px rgba(15,23,42,.05);padding:16px;margin-bottom:14px}.hero-card{background:radial-gradient(circle at top right,rgba(249,231,161,.18),transparent 34%),linear-gradient(135deg,#162033,#30394b);color:#fff}.hero-card .muted,.hero-card p{color:rgba(255,255,255,.76)}.hero-card h2{font-size:27px;margin:14px 0 6px}.hero-top,.card-head,.item-top,.feed-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-head{margin-bottom:12px}.split{align-items:center}.hero-actions,.filter-row,.item-actions,.month-controls{display:flex;flex-wrap:wrap;gap:8px}.hero-actions{margin-top:14px}.pill,.status-pill{display:inline-flex;width:fit-content;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:950;text-transform:uppercase}.pill.light{background:rgba(255,255,255,.14);color:#f9e7a1}.pill.gray{background:#f2f4f7;color:#475467}.pill.blue{background:#dbeafe;color:var(--blue)}.pill.green,.status-done,.status-approved{background:#dcfae6;color:var(--green)}.pill.orange,.status-pending,.status-submitted{background:#fff7ed;color:var(--orange)}.pill.red,.status-missed,.status-rejected{background:#fee4e2;color:var(--red)}.status-rescheduled,.status-upcoming,.status-today{background:#dbeafe;color:var(--blue)}.status-moved{background:#ede9fe;color:#5b21b6}.notification-badge{position:absolute;transform:translate(8px,-10px);background:var(--red);color:#fff;font-size:10px;font-weight:950;border-radius:99px;min-width:18px;height:18px;display:inline-grid;place-items:center}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.stat-card{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:20px;padding:14px;display:grid;gap:2px;text-align:left;box-shadow:0 8px 22px rgba(15,23,42,.04)}.stat-card small{color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase}.stat-card strong{font-size:30px}.stat-card.danger{background:#fff7f6}.stat-card.good{background:#f6fef9}.list-stack{display:grid;gap:10px}.empty{color:var(--muted);text-align:center;padding:18px}.item-card,.feed-card,.class-card{border:1px solid var(--line);background:#fff;border-radius:19px;padding:14px;display:grid;gap:8px}.item-card.clickable,.feed-card{cursor:pointer;transition:.15s ease}.item-card.clickable:hover,.feed-card:hover,.class-card:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 14px 30px rgba(15,23,42,.08)}.item-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px;font-weight:800}.feed-card.urgent{border-color:#f97066;background:#fff7f6}.attachment-pill{display:inline-flex;background:#f2f4f7;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.student-selector{display:flex;gap:8px;overflow-x:auto;margin-bottom:12px;padding-bottom:4px}.student-chip{border:1px solid var(--line);background:#fff;border-radius:16px;padding:10px 12px;text-align:left;min-width:150px}.student-chip.active{border-color:var(--gold);background:#fff7d6}.student-chip small{display:block;color:var(--muted);margin-top:3px}.summary-strip,.payment-summary-grid,.profile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.summary-strip div,.payment-summary-grid article,.profile-box,.class-meta-grid div,.payment-history-grid div{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:12px}.summary-strip small,.payment-summary-grid small,.profile-box small,.class-meta-grid small,.payment-history-grid small{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;margin-bottom:4px}.summary-strip strong,.payment-summary-grid strong{font-size:23px}.progress-wrap{display:grid;gap:6px}.progress-bar{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden}.progress-bar span{display:block;height:100%;background:var(--gold);border-radius:999px}.class-meta-grid,.payment-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.month-strip{display:flex;gap:7px;overflow-x:auto;padding:4px 0}.mini-session{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:56px;padding:8px 7px;display:grid;gap:2px}.mini-session small{font-size:10px}.detail-note,.payment-history-body{white-space:pre-wrap;line-height:1.5}.soft-note{border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:16px;padding:12px;font-weight:750;margin-top:12px}.card-subhead{margin:14px 0 10px}.payment-receipt-link,.link-button{display:inline-flex;width:fit-content;text-decoration:none}.receipt-thumb{width:100%;max-height:220px;object-fit:cover;border-radius:14px;border:1px solid var(--line);margin-top:8px}.request-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.request-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:16px;font-weight:950;text-align:left}.request-card:hover{border-color:var(--gold);background:#fffdf0}.chat-bubbles{display:grid;gap:10px;margin-bottom:12px}.chat-bubble{border:1px solid var(--line);background:#f8fafc;border-radius:18px;padding:12px;max-width:86%}.chat-bubble.mine{justify-self:end;background:#ecfdf3;border-color:#bbf7d0}.reply-form{display:grid;gap:10px}.modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.58);z-index:50;padding:16px;overflow-y:auto}.modal.show{display:block}.modal-box{width:min(760px,100%);margin:24px auto;background:#fff;border-radius:24px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.24)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.close-btn{border:0;background:#f2f4f7;width:38px;height:38px;border-radius:999px;font-size:24px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;color:#667085;border-radius:16px;padding:7px 2px;display:grid;gap:2px;place-items:center;font-weight:900}.bottom-nav button.active{background:#fff7d6;color:#4d3b00}.bottom-nav span{font-size:20px}.bottom-nav small{font-size:10px}.qaj-student-feed-image{width:100%;max-height:360px;object-fit:cover;border-radius:18px;border:1px solid var(--line);margin-top:10px}.qaj-feed-body{white-space:pre-wrap;line-height:1.55}.qaj-feed-comments{margin-top:12px}@media(max-width:800px){.stats-grid,.summary-strip,.payment-summary-grid,.profile-grid{grid-template-columns:repeat(2,1fr)}.class-meta-grid,.payment-history-grid{grid-template-columns:1fr}.request-grid{grid-template-columns:1fr}.hero-card h2{font-size:23px}.card-head.split{align-items:flex-start;display:grid}.month-controls{width:100%}.month-controls .mini-btn{flex:1}.chat-bubble{max-width:100%}}@media(max-width:420px){.stats-grid,.summary-strip,.payment-summary-grid,.profile-grid{grid-template-columns:1fr}.app-main{padding:10px}.hero-card,.card{border-radius:20px;padding:14px}.modal-box{margin:8px auto}}
