:root{
  --navy:#0b2545; --navy2:#13315c; --steel:#3e7cb1; --ice:#eef3fa; --line:#d0dae8;
  --muted:#5a6b85; --bg:#f3f6fb; --card:#fff;
  --amber:#fce8b2; --amberT:#7a4f01; --green:#d9ead3; --greenT:#1e5631;
  --grey:#e8e8e8; --greyT:#555; --teal:#1f8a70; --gold:#c98a0b; --warn:#c2410c;
  --radius:12px; --shadow:0 4px 18px rgba(11,37,69,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:#1d2433;font-size:15px;line-height:1.45}
a{color:var(--steel);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit}

/* top bar */
.topbar{background:var(--navy);color:#fff;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.topbar h1{margin:0;font-size:20px;letter-spacing:-.2px}
.topbar .sub{color:#c9d6ea;font-size:12px;margin-top:2px}
.topbar .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sync{font-size:12px;padding:5px 10px;border-radius:12px;background:rgba(255,255,255,.12);color:#dfe7f2;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sync.saving{background:#fce8b2;color:#7a4f01}.sync.ok{background:rgba(217,234,211,.18);color:#d9ead3}.sync.err{background:#fdecec;color:#9b1c1c}

.btn{border:1px solid var(--line);background:#fff;color:var(--navy);padding:9px 14px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}
.btn:hover{background:var(--ice)}
.btn.primary{background:var(--steel);color:#fff;border-color:var(--steel)}
.btn.dark{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn:disabled{opacity:.55;cursor:default}
.btn.sm{padding:6px 10px;font-size:12px}

main{max-width:1100px;margin:0 auto;padding:20px 20px 60px}
.page{display:none}.page.on{display:block}

/* home summary + filters */
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--navy2);border-radius:var(--radius);padding:14px 16px;cursor:pointer;box-shadow:var(--shadow)}
.stat .n{font-size:28px;font-weight:700;color:var(--navy);line-height:1}
.stat .l{color:var(--muted);font-size:12px;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.stat.warn{border-left-color:#d99a1e}.stat.mtg{border-left-color:var(--steel)}.stat.flag{border-left-color:var(--warn)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow)}
.filters select,.filters input[type=search]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.filters input[type=search]{flex:1;min-width:160px}
.filters label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--navy)}
.count{color:var(--muted);font-size:12px;margin-left:auto}
.legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:-4px 0 14px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;cursor:pointer;transition:box-shadow .15s,transform .15s;box-shadow:var(--shadow)}
.card:hover{box-shadow:0 8px 24px rgba(11,37,69,.14);transform:translateY(-1px)}
.card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card .nm{font-weight:700;color:var(--navy);font-size:16px}
.badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:10px;white-space:nowrap}
.badge.out{background:var(--amber);color:var(--amberT)}.badge.ok{background:var(--green);color:var(--greenT)}
.badge.flag{background:#fde7d3;color:#8a3b00;border:1px solid #f3b58a}
.stage-pill{display:inline-block;margin-top:8px;font-size:12px;color:var(--navy2);background:var(--ice);padding:3px 9px;border-radius:6px}
.bar{height:8px;background:#e3e9f2;border-radius:5px;overflow:hidden;margin:12px 0 6px}
.bar>div{height:100%;background:linear-gradient(90deg,var(--navy2),#8da9c4);transition:width .25s}
.meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}
.split{font-size:11px;color:var(--muted);margin-top:6px}
.empty,.loading{text-align:center;color:var(--muted);padding:48px 16px;background:var(--card);border:1px dashed var(--line);border-radius:var(--radius)}
.privacy{color:var(--muted);font-size:11px;text-align:center;margin:24px 0 0}

/* owner chips */
.own{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;color:#fff;background:#8a97ab}
.own.Mike{background:#0b2545}.own.Chelsea{background:#3e7cb1}.own.Yasin{background:#1f8a70}
.own.Client{background:#c98a0b}.own.MikeYasin{background:#0b2545}

/* client page */
.back{display:inline-flex;align-items:center;gap:6px;color:#c9d6ea;font-size:13px;font-weight:600}
.back:hover{color:#fff;text-decoration:none}
.client-hero{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}
.client-hero h2{margin:0 0 4px;font-size:26px;color:var(--navy);letter-spacing:-.3px}
.client-hero .meta-row{color:var(--muted);font-size:13px;display:flex;gap:14px;flex-wrap:wrap}
.progress{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:18px}
.progress .step{background:var(--ice);border-radius:8px;padding:10px 8px;text-align:center;border:2px solid transparent;cursor:pointer;transition:all .15s}
.progress .step .num{font-size:11px;font-weight:700;color:var(--muted)}
.progress .step .lab{font-size:11px;color:var(--navy2);margin-top:2px;line-height:1.25}
.progress .step.done{background:var(--green);border-color:#b7d7a8}
.progress .step.done .num,.progress .step.done .lab{color:var(--greenT)}
.progress .step.current{background:#fff;border-color:var(--navy2);box-shadow:0 0 0 3px rgba(19,49,92,.12)}
.progress .step.current .num{color:var(--navy)}
.progress .step.future{opacity:.55}

.workflow{display:flex;flex-direction:column;gap:16px}
.stage{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:opacity .2s,border-color .2s}
.stage.future{opacity:.72}
.stage.current{border-color:var(--navy2);box-shadow:0 6px 22px rgba(11,37,69,.12)}
.stage.done{border-color:#b7d7a8}
.stage-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;cursor:pointer;user-select:none;background:var(--navy2);color:#fff}
.stage.done .stage-hd{background:#2f6b3a}
.stage.future .stage-hd{background:#6b7c93}
.stage-hd h3{margin:0;font-size:17px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stage-hd .lead{font-weight:400;font-size:12px;opacity:.85}
.stage-hd .status{font-size:12px;font-weight:700;background:rgba(255,255,255,.18);padding:4px 10px;border-radius:20px;white-space:nowrap}
.stage-bd{display:none;padding:20px;border-top:1px solid var(--line)}
.stage.open .stage-bd{display:block}
.stage.done:not(.open) .stage-bd{display:none}

.email-card{background:linear-gradient(180deg,#f7fafc,#eef5ff);border:1px solid #c5d6ef;border-radius:10px;padding:16px 18px;margin-bottom:18px}
.email-card h4{margin:0 0 6px;color:var(--navy);font-size:15px}
.email-card .to{font-size:12px;color:var(--muted);margin-bottom:10px}
.email-card .preview{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:13px;white-space:pre-wrap;max-height:480px;overflow:auto;color:#2a3344}
.email-card .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.email-card .queued{font-size:13px;color:var(--teal);font-weight:600}
.email-card .sent{font-size:13px;color:var(--greenT);font-weight:600}

.rule{background:#e8f6f2;border-left:4px solid var(--teal);padding:12px 14px;border-radius:6px;margin-bottom:16px;font-size:13px;color:#145a4a}
.rule b{color:#0f4a3d}
.task-flag{background:#fff4eb;border-left:4px solid var(--warn);padding:12px 14px;border-radius:6px;margin-bottom:16px;font-size:14px;color:#8a3b00}

.check-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #e8eef6}
.check-row:first-of-type{border-top:none;padding-top:0}
.check-row .q{font-size:15px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.check-row .hint{font-size:12px;font-weight:400;color:var(--muted);width:100%;margin-top:2px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg button{border:none;background:#fff;padding:10px 14px;font-size:13px;cursor:pointer;color:var(--muted);border-left:1px solid var(--line);min-width:88px}
.seg button:first-child{border-left:none}
.seg button.on.Waiting{background:var(--amber);color:var(--amberT);font-weight:700}
.seg button.on.Yes{background:var(--green);color:var(--greenT);font-weight:700}
.seg button.on.NotNeeded,.seg button.on.No{background:var(--grey);color:var(--greyT);font-weight:700}
.seg button.on.Flag{background:#f9cb9c;color:#8a3b00;font-weight:700}
.seg button.on.No{background:var(--green);color:var(--greenT)}

.fields-block{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 18px;padding:14px;background:var(--ice);border-radius:10px}
.fields-block label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.fields-block input,.fields-block select,.fields-block textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.fields-block .full{grid-column:1/-1}
.fields-block .row-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 18px;border-radius:8px;font-size:13px;z-index:40;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90%}
.toast.show{opacity:1}.toast.err{background:#9b1c1c}

.modal-bg{position:fixed;inset:0;background:rgba(11,37,69,.45);display:none;z-index:30}
.modal-bg.on{display:block}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;width:min(420px,94%);z-index:31;display:none;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.modal.on{display:block}
.modal .mh{background:var(--navy);color:#fff;padding:14px 18px;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;align-items:center}
.modal .mh h2{margin:0;font-size:17px}
.modal .mb{padding:18px}
.modal .x{background:none;border:none;color:#fff;font-size:26px;cursor:pointer;line-height:1}

@media (max-width:860px){
  .summary{grid-template-columns:1fr 1fr}
  .progress{grid-template-columns:repeat(3,1fr)}
  .check-row{grid-template-columns:1fr;gap:10px}
  .seg{width:100%}.seg button{flex:1;min-width:0;padding:10px 6px}
  .fields-block{grid-template-columns:1fr}
}
@media (max-width:520px){
  .summary{grid-template-columns:1fr}
  .progress{grid-template-columns:repeat(2,1fr)}
  main{padding:14px 12px 48px}
  .client-hero h2{font-size:22px}
}
