/* KS Associates Tax Portal
   Palette: pine #0B4A42 · leaf #12695E · paper #FAFAF8 · ink #1C2B28 · amber #C79A3B · line #E3E1D9 */
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;600;700&family=Noto+Nastaliq+Urdu:wght@400;600&display=swap');

:root{
  --pine:#0B4A42; --leaf:#12695E; --paper:#FAFAF8; --ink:#1C2B28;
  --amber:#C79A3B; --line:#E3E1D9; --soft:#F0EFE9; --red:#B3402A; --ok:#2E7D4F;
}
*{box-sizing:border-box} html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.5 'Public Sans',system-ui,sans-serif}
.ur{font-family:'Noto Nastaliq Urdu',serif;direction:rtl;line-height:2;font-size:.95em;color:#3E4E4A}

/* Header */
.topbar{background:var(--pine);color:#fff;padding:14px 16px;display:flex;align-items:center;gap:10px;justify-content:space-between}
.topbar .brand{font-weight:700;letter-spacing:.3px}
.topbar .brand small{display:block;font-weight:400;opacity:.75;font-size:12px}
.topbar a{color:#fff;text-decoration:none;font-size:14px;opacity:.9}

.wrap{max-width:680px;margin:0 auto;padding:16px}
.wide{max-width:1080px}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
.card h2{margin:0 0 2px;font-size:19px;color:var(--pine)}
.card h2 + .ur{margin-bottom:12px;display:block}

/* Progress */
.progress{background:var(--soft);border-radius:99px;height:10px;overflow:hidden;margin:10px 0 4px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--leaf),var(--pine));border-radius:99px;transition:width .4s}
.pct{font-size:13px;color:var(--leaf);font-weight:600}

/* Step rail */
.rail{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail a{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:600;text-decoration:none;border:1.5px solid var(--line);color:#7A857F;background:#fff}
.rail a.done{background:var(--leaf);border-color:var(--leaf);color:#fff}
.rail a.cur{border-color:var(--amber);color:var(--pine);box-shadow:0 0 0 3px rgba(199,154,59,.2)}
.rail a.flagged{border-color:var(--red);color:var(--red)}

/* Fields */
label{display:block;margin:14px 0 4px;font-weight:600;font-size:14px}
label .ur{font-weight:400;margin-right:6px}
input,select,textarea{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:9px;
  font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px rgba(18,105,94,.12)}
.help{font-size:12.5px;color:#6B776F;margin-top:3px}
.help.ur{font-size:13px}
input:disabled,select:disabled{background:var(--soft);color:#8A938D}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:520px){.grid2{grid-template-columns:1fr}}

/* Buttons */
.btn{display:inline-block;padding:12px 20px;border-radius:9px;border:none;font:600 15px 'Public Sans';cursor:pointer;text-decoration:none;text-align:center}
.btn-primary{background:var(--pine);color:#fff}
.btn-primary:active{background:var(--leaf)}
.btn-ghost{background:#fff;color:var(--pine);border:1.5px solid var(--line)}
.btn-danger{background:#fff;color:var(--red);border:1.5px solid #E7C7BE}
.btn-amber{background:var(--amber);color:#fff}
.btn-sm{padding:7px 12px;font-size:13px}
.btnrow{display:flex;gap:10px;justify-content:space-between;margin-top:18px;flex-wrap:wrap}

/* Repeatable rows */
.rowcard{border:1.5px solid var(--line);border-left:4px solid var(--leaf);border-radius:10px;padding:4px 14px 14px;margin:14px 0;background:#fff}
.rowcard .rowhead{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.rowcard .rowhead b{color:var(--pine)}

/* Status pills */
.pill{display:inline-block;padding:4px 11px;border-radius:99px;font-size:12.5px;font-weight:600}
.pill.draft,.pill.waiting_client{background:#F2EEDF;color:#8A6D1F}
.pill.submitted{background:#E3EDF7;color:#22557E}
.pill.under_review{background:#EFE7F6;color:#5D3B85}
.pill.info_required{background:#F8E7E1;color:var(--red)}
.pill.ready_for_filing{background:#E2F1E7;color:var(--ok)}
.pill.filed{background:var(--pine);color:#fff}

/* Alerts */
.alert{border-radius:10px;padding:12px 14px;margin:12px 0;font-size:14.5px}
.alert.warn{background:#FBF3E4;border:1px solid #EAD9AE;color:#7A5B14}
.alert.err{background:#FAEAE5;border:1px solid #ECC9BD;color:var(--red)}
.alert.ok{background:#E9F4EC;border:1px solid #C4E0CD;color:var(--ok)}

/* Save indicator */
#saveind{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;
  padding:8px 18px;border-radius:99px;font-size:13px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:50}
#saveind.show{opacity:.92}

/* Docs */
.doclist{list-style:none;padding:0;margin:8px 0}
.doclist li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;
  border:1px solid var(--line);border-radius:8px;margin:6px 0;font-size:14px;background:#fff}
.doclist a{color:var(--leaf);text-decoration:none;word-break:break-all}

/* Tables (admin/staff) */
table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.list th{background:var(--soft);text-align:left;padding:10px 12px;font-size:13px;color:#5A665F}
table.list td{padding:11px 12px;border-top:1px solid var(--line);font-size:14.5px}
table.list tr:hover td{background:#FBFAF6}
.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 14px;font-size:14.5px}
.kv b{color:#5A665F;font-weight:600}
@media(max-width:560px){.kv{grid-template-columns:1fr}}

/* Estimate card */
.estimate{border:1.5px solid var(--amber);background:#FDFBF4;border-radius:12px;padding:16px}
.estimate .row{display:flex;justify-content:space-between;padding:5px 0;font-size:15px}
.estimate .row.total{border-top:2px solid var(--amber);margin-top:8px;padding-top:10px;font-weight:700;font-size:17px;color:var(--pine)}

/* PIN / verify screens */
.gate{max-width:400px;margin:8vh auto;padding:0 16px}
.gate .logo{text-align:center;margin-bottom:18px}
.gate .logo b{font-size:22px;color:var(--pine)}
.bigpin{letter-spacing:12px;text-align:center;font-size:26px;font-weight:700}

/* Creds box (staff) */
.creds{background:var(--ink);color:#fff;border-radius:12px;padding:16px;margin-bottom:14px}
.creds .row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.creds .row:last-child{border:none}
.creds code{font-size:16px;letter-spacing:.5px}
.creds button{background:var(--amber);border:none;color:#fff;border-radius:7px;padding:6px 12px;font-weight:600;cursor:pointer}

footer{max-width:680px;margin:20px auto;padding:0 16px 30px;font-size:12.5px;color:#8A938D;text-align:center}

/* Income source selector (Employment step gate) */
.income-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
@media(max-width:520px){.income-source-grid{grid-template-columns:1fr}}
.src-btn{padding:14px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;
  font:600 14.5px 'Public Sans';color:var(--ink);cursor:pointer;text-align:center}
.src-btn.active{background:var(--pine);border-color:var(--pine);color:#fff}
.src-btn .ur{display:block;font-weight:400;margin-top:3px}
.src-btn.active .ur{color:#E7EDEA}
.src-btn:disabled{opacity:.6;cursor:not-allowed}

/* Toggle button group (e.g. Account Type) */
.toggle-group{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap}
.toggle-btn{flex:1;min-width:140px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;
  background:#fff;font:600 13.5px 'Public Sans';color:#5A665F;cursor:pointer}
.toggle-btn.active{background:var(--leaf);border-color:var(--leaf);color:#fff}
.toggle-btn:disabled{opacity:.6;cursor:not-allowed}
