@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;900&display=swap');
:root{--bg:#0a0f1e;--s1:#111827;--s2:#1a2235;--bd:#1e2d45;--ac:#3b82f6;--cy:#06b6d4;--gr:#10b981;--rd:#ef4444;--yl:#f59e0b;--t1:#f0f6ff;--t2:#a0b4cc;--t3:#4d6480;--r:14px;--r2:10px}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:'Cairo',sans-serif;background:var(--bg);color:var(--t1);direction:rtl}
.ts-portal{max-width:480px;margin:0 auto;min-height:100vh;padding-bottom:80px}
/* Auth screen */
.ts-auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.ts-auth-logo{font-size:48px;margin-bottom:16px}
.ts-auth-title{font-size:24px;font-weight:900;margin-bottom:6px}
.ts-auth-sub{font-size:14px;color:var(--t2);margin-bottom:32px;text-align:center}
.ts-auth-box{width:100%;max-width:360px;background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:24px}
/* Inputs */
.tf-label{font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:block}
.tf-input{width:100%;background:var(--s2);border:1.5px solid var(--bd);border-radius:var(--r2);padding:12px 14px;font-family:'Cairo',sans-serif;font-size:15px;color:var(--t1);outline:none;transition:.2s;-webkit-appearance:none;margin-bottom:14px}
.tf-input:focus{border-color:var(--ac)}
.tf-input::placeholder{color:var(--t3)}
/* Buttons */
.tf-btn{width:100%;padding:14px;border-radius:var(--r2);border:none;font-family:'Cairo',sans-serif;font-size:15px;font-weight:700;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center;gap:8px}
.tf-btn:active{transform:scale(.97)}
.tf-btn-p{background:var(--ac);color:#fff}
.tf-btn-g{background:var(--gr);color:#fff}
.tf-btn-o{background:transparent;border:1.5px solid var(--bd);color:var(--t2)}
.tf-btn-wa{background:#25d366;color:#fff}
.tf-btn-sm{padding:8px 16px;font-size:13px;border-radius:8px;width:auto}
/* Topbar */
.tf-topbar{position:sticky;top:0;z-index:50;background:rgba(10,15,30,.95);backdrop-filter:blur(20px);border-bottom:1px solid var(--bd);padding:14px 18px;display:flex;align-items:center;justify-content:space-between}
.tf-topbar-title{font-size:17px;font-weight:900}
.tf-topbar-name{font-size:12px;color:var(--t2);margin-top:2px}
/* Cards */
.tf-card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:16px;margin:0 14px 12px}
.tf-card-title{font-size:14px;font-weight:800;margin-bottom:12px;color:var(--t1)}
/* Stats */
.tf-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}
.tf-stat{background:var(--s1);border:1px solid var(--bd);border-radius:var(--r);padding:14px;text-align:center}
.tf-stat-n{font-size:26px;font-weight:900}
.tf-stat-l{font-size:11px;color:var(--t2);font-weight:700;margin-top:3px}
.tf-stat.ac .tf-stat-n{color:var(--ac)}
.tf-stat.gr .tf-stat-n{color:var(--gr)}
.tf-stat.yl .tf-stat-n{color:var(--yl)}
.tf-stat.rd .tf-stat-n{color:var(--rd)}
/* Next session card */
.tf-next{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(6,182,212,.1));border:1px solid rgba(59,130,246,.3);border-radius:var(--r);padding:20px;margin:14px}
.tf-next-label{font-size:11px;font-weight:700;color:var(--ac);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}
.tf-next-date{font-size:18px;font-weight:900;margin-bottom:4px}
.tf-next-time{font-size:14px;color:var(--t2);margin-bottom:12px}
/* Sections */
.tf-section{padding:14px 14px 0;font-size:11px;font-weight:800;color:var(--t2);text-transform:uppercase;letter-spacing:1px}
/* Item rows */
.tf-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--bd)}
.tf-row:last-child{border-bottom:none}
.tf-row-l{font-size:13px;color:var(--t2)}
.tf-row-v{font-size:14px;font-weight:700;color:var(--t1);text-align:left}
/* Badges */
.tf-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.tf-b-ac{background:rgba(59,130,246,.15);color:var(--ac)}
.tf-b-gr{background:rgba(16,185,129,.15);color:var(--gr)}
.tf-b-yl{background:rgba(245,158,11,.15);color:var(--yl)}
.tf-b-rd{background:rgba(239,68,68,.15);color:var(--rd)}
/* Progress bar */
.tf-progress{height:6px;background:var(--bd);border-radius:3px;overflow:hidden;margin-top:6px}
.tf-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac),var(--cy));transition:.5s}
/* Bottom nav */
.tf-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(17,24,39,.97);backdrop-filter:blur(20px);border-top:1px solid var(--bd);display:flex;padding:6px 0 calc(env(safe-area-inset-bottom)+6px)}
.tf-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:6px 0}
.tf-nav-icon{font-size:22px;transition:.2s}
.tf-nav-label{font-size:10px;color:var(--t3);font-weight:700}
.tf-nav-item.on .tf-nav-label{color:var(--ac)}
.tf-nav-item.on .tf-nav-icon{transform:translateY(-2px)}
/* Screens */
.tf-screen{display:none;animation:tfIn .2s ease}
.tf-screen.on{display:block}
@keyframes tfIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Toast */
#tf-toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(16px);background:var(--s1);border:1px solid var(--bd);border-radius:12px;padding:11px 20px;font-family:'Cairo',sans-serif;font-size:13px;font-weight:700;color:var(--t1);z-index:9999;opacity:0;transition:.3s;pointer-events:none;white-space:nowrap;box-shadow:0 8px 32px rgba(0,0,0,.5)}
#tf-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
#tf-toast.ok{border-color:rgba(16,185,129,.4)}
#tf-toast.er{border-color:rgba(239,68,68,.4)}
/* Loader */
.tf-loader{display:flex;gap:6px;align-items:center;justify-content:center;padding:40px}
.tf-loader span{width:8px;height:8px;background:var(--ac);border-radius:50%;animation:tfl 1s infinite}
.tf-loader span:nth-child(2){animation-delay:.15s}
.tf-loader span:nth-child(3){animation-delay:.3s}
@keyframes tfl{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-8px)}}
/* Empty */
.tf-empty{text-align:center;padding:40px 20px;color:var(--t2)}
.tf-empty-i{font-size:40px;margin-bottom:12px;opacity:.5}
/* File upload */
.tf-upload-area{border:2px dashed var(--bd);border-radius:var(--r2);padding:24px;text-align:center;cursor:pointer;transition:.2s}
.tf-upload-area:hover{border-color:var(--ac)}
/* Payment methods */
.tf-pay-method{display:flex;align-items:center;gap:12px;padding:14px;background:var(--s2);border:1.5px solid var(--bd);border-radius:var(--r2);margin-bottom:10px;cursor:pointer;transition:.2s}
.tf-pay-method:hover,.tf-pay-method.on{border-color:var(--ac);background:rgba(59,130,246,.08)}
.tf-pay-icon{font-size:24px}
.tf-pay-name{font-size:14px;font-weight:700}
.tf-pay-desc{font-size:12px;color:var(--t2)}
/* Child card */
.tf-child{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:16px;margin-bottom:12px}
.tf-child-name{font-size:16px;font-weight:900;margin-bottom:8px}
/* Rating stars */
.tf-stars{color:var(--yl);font-size:16px}
::-webkit-scrollbar{display:none}
