:root{
  --navy:#0b2340;
  --blue:#1769aa;
  --blue-soft:#edf5fb;
  --orange:#e87722;
  --green:#39ba26;
  --ink:#17202b;
  --muted:#6d7783;
  --line:#e8e4df;
  --bg:#f7f8fa;
  --white:#fff;
  --shadow:0 10px 28px rgba(12,35,64,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden}
body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:Poppins,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.app{width:100%;max-width:480px;min-height:100vh;margin:0 auto;background:var(--white);padding:18px 18px 108px;position:relative}
.app-public{padding-bottom:24px}
.head,.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand-logo{width:40px;height:40px;border-radius:12px;object-fit:contain;background:var(--navy);flex:0 0 40px}
.brand strong{display:block;font-size:16px;line-height:1.1;color:var(--navy)}
.brand small{display:block;margin-top:2px;font-size:12px;color:var(--muted);font-weight:500}
.bell{position:relative;width:42px;height:42px;border-radius:14px;background:#f3f5f8;display:grid;place-items:center;font-size:18px;text-decoration:none;color:inherit}
.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#d44a2a;color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center}
.hello{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:6px 0 18px}
.hello h1{margin:0;font-size:26px;line-height:1.15;letter-spacing:-.03em;color:var(--navy);font-weight:800}
.hello p{margin:6px 0 0;font-size:14px;color:var(--muted)}
.online{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;max-width:46%;padding:7px 10px;border-radius:999px;background:#eaf8ea;color:#1f7a28;font-size:11px;font-weight:700;line-height:1.2}
.online i{width:8px;height:8px;border-radius:50%;background:var(--green);flex:0 0 8px}
.online.is-off{background:#f3f5f8;color:var(--muted)}
.online.is-off i{background:#b7bec6}
.sos{display:flex;align-items:center;gap:14px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#e87722,#d44a2a);color:#fff;text-decoration:none;box-shadow:var(--shadow);margin-bottom:22px}
.sos-ico{width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,.16);display:grid;place-items:center;flex:0 0 56px}
.sos-ico img{width:36px;height:36px;object-fit:contain}
.sos-copy b{display:block;font-size:16px;line-height:1.25}
.sos-copy small{display:block;margin-top:4px;font-size:13px;line-height:1.35;color:rgba(255,255,255,.88)}
.section-title{margin:0 0 12px;font-size:20px;color:var(--navy);font-weight:700}
.row-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 0 12px}
.row-title .section-title{margin:0}
.see-all{color:var(--blue);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}
.quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.qcard{display:flex;flex-direction:column;align-items:flex-start;min-height:132px;padding:14px;border:0;border-radius:20px;text-decoration:none;color:#fff;text-align:left;font:inherit;cursor:pointer;box-shadow:var(--shadow)}
.qcard b{display:block;font-size:16px;line-height:1.25;font-weight:700;margin-top:auto}
.qcard small{display:block;margin-top:4px;font-size:13px;opacity:.88;font-weight:500}
.q-navy{background:var(--navy)}
.q-blue{background:var(--blue)}
.q-green{background:#1f8f4a}
.q-soft{background:#3d5a80}
.qcard.is-off{opacity:.7;cursor:default}
.qico{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;margin-bottom:12px}
.qico img{width:26px;height:26px;object-fit:contain}
.qico-text{font-size:11px;font-weight:800;letter-spacing:.04em}
.policy-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 10px;margin:0 -2px}
.policy-track::-webkit-scrollbar{display:none}
.pcard{flex:0 0 82%;scroll-snap-align:start;background:var(--blue-soft);border-radius:22px;padding:16px;box-shadow:var(--shadow);color:var(--navy)}
.pcard-logo{height:28px;width:auto;max-width:120px;object-fit:contain;display:block;margin-bottom:10px}
.pcard-fallback{display:inline-block;margin-bottom:10px;padding:6px 10px;border-radius:10px;background:#fff;font-size:12px;font-weight:700;color:var(--blue)}
.pcard-fallback.sm{margin:0}
.pcard h3{margin:0 0 4px;font-size:17px;line-height:1.25}
.pcard p,.slist p{margin:0 0 3px;font-size:14px;color:#4a5560}
.pcard-type{font-weight:600;color:var(--blue)!important}
.pcard-range{font-size:13px!important}
.pcard-btn{display:inline-block;margin-top:10px;padding:8px 12px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;font-family:inherit;text-decoration:none;cursor:pointer}
.policy-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:rgba(11,35,64,.45)}
.policy-modal.hide{display:none}
.policy-modal-card{width:100%;max-width:420px;max-height:min(80vh,640px);overflow:auto;background:#fff;border-radius:20px;padding:20px;color:var(--navy)}
.policy-modal-card h2{margin:0 0 8px;font-size:20px;line-height:1.25}
.policy-detail{margin:0}
.policy-detail div{padding:8px 0;border-top:1px solid var(--line)}
.policy-detail dt{font-size:12px;font-weight:700;color:var(--muted)}
.policy-detail dd{margin:2px 0 0;font-size:15px;font-weight:600}
.policy-modal-card .btn{margin-top:16px}
.dots{display:flex;justify-content:center;gap:6px;margin:4px 0 8px}
.dots i{width:7px;height:7px;border-radius:50%;background:#d5dde6}
.dots i.on{background:var(--blue)}
.empty,.lead{font-size:14px;line-height:1.55;color:var(--muted)}
.page-head h1{margin:0;font-size:22px;color:var(--navy);flex:1}
.back{width:40px;height:40px;border-radius:12px;background:#f3f5f8;display:grid;place-items:center;color:var(--navy);text-decoration:none;font-size:18px}
.ghost-link{font-size:12px;font-weight:700;color:var(--muted);text-decoration:none;white-space:nowrap}
.slist{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:18px;background:var(--blue-soft);margin-bottom:12px}
.slist img{height:28px;width:auto;max-width:72px;object-fit:contain;margin-top:4px}
.slist h3{margin:0 0 4px;font-size:16px;color:var(--navy)}
.soon,.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}
.soon p{margin:0 0 16px;font-size:15px;line-height:1.55;color:#4a5560}
.btn,button[type="submit"]{display:block;width:100%;padding:14px 16px;border:0;border-radius:14px;background:var(--navy);color:#fff;font-size:15px;font-weight:700;text-align:center;text-decoration:none;font-family:inherit;cursor:pointer}
.platform-credit{margin:40px 0 0;padding:0 12px;text-align:center;font-size:11px;line-height:1.45;font-weight:400;color:#9aa3ad}
.platform-credit strong,.platform-credit span{display:block;font-weight:400;color:#9aa3ad}
.platform-credit span{margin-top:2px;font-size:10px;color:#b5bcc3}
.welcome-actions{margin:0 0 18px}
.welcome-actions .btn{margin:0 0 10px}
.welcome-actions .btn-install{margin-top:0;margin-bottom:14px;text-align:center;text-decoration:none}
label{display:block;margin:0 0 14px;font-size:13px;font-weight:700;color:var(--navy)}
input{width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;font-family:inherit}
input[readonly]{background:#f4f6f8;color:#4a5560}
.ok,.error{margin:0 0 14px;padding:12px 14px;border-radius:12px;font-size:14px}
.ok{background:#e7f4ec;color:#24613c;font-weight:700}
.error{background:#fdecea;color:#8a1f11}
.assist{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;background:#fff}
.assist img{width:42px;height:42px;object-fit:contain}
.assist strong{display:block;font-size:14px;color:var(--navy)}
.assist span{font-size:15px;font-weight:700;color:var(--blue)}
.call{margin-left:auto;padding:8px 12px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:700;text-decoration:none}
.info-note{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#faf8f5;font-size:13px;line-height:1.5;color:#4a5560}
.assist-broker{display:block;margin:16px 0 0;padding:14px;border-radius:16px;background:var(--blue-soft);color:var(--navy);font-size:14px;font-weight:600;text-decoration:none;line-height:1.45}
.dock{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 8px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.dock.dock-single{grid-template-columns:1fr}
.dock.dock-single a{max-width:140px;margin:0 auto}
.dock a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:600}
.dock a.on{color:var(--navy)}
.dock img{width:22px;height:22px;object-fit:contain}
.nav-mark{width:22px;height:22px;border-radius:8px;background:#edf1f5;color:var(--navy);display:grid;place-items:center;font-size:11px;font-weight:800}
.dock a.on .nav-mark{background:var(--navy);color:#fff}
.contact-row{display:flex;flex-direction:column;align-items:flex-start;width:100%;margin:0 0 10px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:inherit;text-decoration:none;font:inherit;text-align:left;cursor:pointer}
.contact-row b{font-size:15px;color:var(--navy)}
.contact-row span{margin-top:2px;font-size:14px;color:var(--blue);font-weight:600}
.ncard{display:block;margin:0 0 10px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:inherit;text-decoration:none}
.ncard b{display:block;font-size:16px;color:var(--navy)}
.ncard span{display:block;margin-top:4px;font-size:14px;line-height:1.45;color:#4a5560}
.ncard small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.ncard.is-new{background:var(--blue-soft);border-color:#c5dcf0}
.scard{margin:0 0 12px;padding:16px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.scard-num{margin:0;font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--navy)}
.scard-type{margin:6px 0 0;font-size:17px;font-weight:700;line-height:1.3;color:var(--navy)}
.scard p{margin:4px 0 0;font-size:14px;line-height:1.4;color:#4a5560}
.scard-status{display:inline-block;margin-top:10px;padding:6px 10px;border-radius:999px;background:#e7f4ec;color:#24613c;font-size:12px;font-weight:700}
.scard .pcard-btn{margin-top:12px}
.sblock{margin:18px 0 0;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--orange)}
.srow{padding:10px 0;border-top:1px solid var(--line)}
.srow span{display:block;font-size:12px;font-weight:700;color:var(--muted)}
.srow b{display:block;margin-top:2px;font-size:15px;font-weight:600;line-height:1.4;color:var(--navy)}
.sdesc{margin:8px 0 0;font-size:15px;line-height:1.5;color:var(--navy)}
.sfile{display:block;margin:8px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);text-decoration:none;font-size:15px;font-weight:700}
.sfile small{display:block;margin-top:3px;font-size:12px;font-weight:500;color:var(--muted)}
.s-pdf{margin-top:18px}
.s-back{display:block;margin-top:18px;text-align:center;color:var(--blue);font-size:15px;font-weight:700;text-decoration:none}
.smiss{margin:0;font-size:15px;line-height:1.5;color:#4a5560}
.btn-install{display:block;width:100%;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer}
.install-invite{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%;margin:0 0 22px;padding:16px;border:0;border-radius:22px;background:#edf5fb;color:var(--navy);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow)}
.install-invite-copy b{display:block;font-size:17px;line-height:1.25;font-weight:800}
.install-invite-copy small{display:block;margin-top:4px;font-size:13px;font-weight:500;color:#4a5560;line-height:1.4}
.install-invite-btn{display:inline-block;padding:10px 16px;border-radius:999px;background:#1769aa;color:#fff;font-size:14px;font-weight:700}
.install-invite.hide{display:none}
.hide{display:none}
.install-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:rgba(11,35,64,.45)}
.install-modal.hide{display:none}
.install-modal-card{width:100%;max-width:420px;background:#fff;border-radius:20px;padding:20px;color:var(--navy)}
.install-modal-card ol{margin:8px 0 16px;padding-left:18px;font-size:14px;line-height:1.5}
@media (min-width:720px){
  body{background:#eef1f5;padding:24px 0}
  .app{border-radius:28px;box-shadow:0 20px 50px rgba(12,35,64,.1);min-height:calc(100vh - 48px)}
  .pcard{flex-basis:70%}
}
