:root { color-scheme:light; --navy:#102a38; --navy2:#173747; --accent:#168775; --accent2:#1ea68c; --ink:#18333d; --muted:#657b83; --bg:#f4f7f7; --line:#e2eaeb; --white:#fff; --soft:#eaf5f2; --warning:#a05b16; --warningBg:#fff6e8; --red:#c13f4a; --redBg:#fff1f1; --radius:20px; }
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #53bdad;outline-offset:2px} .app-shell{width:min(100%,480px);margin:0 auto;min-height:100dvh;background:#f6f9f9;box-shadow:0 0 55px rgba(13,45,60,.1);padding-bottom:calc(91px + env(safe-area-inset-bottom))}.topbar{padding:calc(17px + env(safe-area-inset-top)) 22px 18px;background:linear-gradient(146deg,#122f3f,#1b4350);color:#fff;border-radius:0 0 28px 28px}.brandrow{display:flex;align-items:center;gap:12px}.logo{height:42px;width:42px;display:grid;place-items:center;background:#ffffff20;border:1px solid #ffffff36;border-radius:14px;font-size:24px}.brand{font-size:17px;font-weight:790;letter-spacing:-.4px}.brand small{display:block;margin-top:2px;color:#d1e5e7;letter-spacing:.5px;font-size:10px;font-weight:700;text-transform:uppercase}.pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#fff2d4;color:#7c560c;font-size:10px;font-weight:830;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}.banner{display:flex;gap:10px;margin:17px 0 0;padding:12px 13px;background:#ffffff18;border:1px solid #ffffff30;border-radius:14px;font-size:12px;line-height:1.5;color:#f2fcff}.banner strong{color:#fff}main{padding:22px 17px}.page-title{font-size:26px;line-height:1.18;letter-spacing:-.8px;margin:0 0 5px;font-weight:800}.lead{margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.48}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:13px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:0 5px 22px rgba(15,65,73,.03)}.card.soft{background:var(--soft);border-color:#cae5de}.card.amber{background:var(--warningBg);border-color:#fae1bd}.card.red{background:var(--redBg);border-color:#f4d5da}.card h2{font-size:16px;letter-spacing:-.3px;margin:0 0 8px}.card p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.eyebrow{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:1.15px;text-transform:uppercase;margin-bottom:9px}.hero{background:linear-gradient(120deg,#f1fbf7,#e1f5ef);border:1px solid #bfe8db;border-radius:22px;padding:20px}.hero h2{margin:0 0 8px;font-size:23px;letter-spacing:-.8px;line-height:1.13}.hero p{color:#4d716d;margin:0 0 17px;font-size:13px;line-height:1.5}.statusdot{width:8px;height:8px;background:var(--accent2);border-radius:100%;display:inline-block;margin-right:6px}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:10px}.strong{font-weight:750}.value{font-size:24px;font-weight:850;letter-spacing:-1px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;background:#edf4f4;border-radius:8px;font-size:11px;color:#526b73;font-weight:730}.chip.good{background:#e0f6ea;color:#216f57}.chip.off{background:#fbebea;color:#ad484d}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{background:#fff;border:1px solid var(--line);border-radius:17px;padding:13px}.metric strong{display:block;font-size:20px;letter-spacing:-.3px;margin:4px 0}.metric span{font-size:11px;color:var(--muted)}.btn{appearance:none;border:0;padding:12px 14px;border-radius:12px;background:var(--accent);color:#fff;font-weight:780;font-size:13px;text-align:center;min-height:44px}.btn.secondary{background:#e8f1f1;color:#21464e}.btn.outline{background:#fff;border:1px solid #bdd4d4;color:#266c67}.btn.danger{background:#c03c48;color:#fff}.btn.ghost-danger{background:#fff1f1;color:#b63c49}.btn.wide{width:100%}.btn.compact{min-height:37px;padding:8px 12px;font-size:12px}.btn-row{display:flex;flex-wrap:wrap;gap:9px}.btn-row>*{flex:1 1 auto}.btn:active{transform:scale(.99)}.form-field{display:grid;gap:7px;margin-bottom:14px}.form-field label,.fieldlabel{font-size:12px;font-weight:770;color:#37555b}.input{width:100%;background:#f9fbfb;border:1px solid #d5e2e2;border-radius:12px;min-height:46px;padding:10px 12px;color:var(--ink);outline:0}.input:focus{border-color:#4ead9e;background:#fff}.helper{font-size:11px;color:var(--muted);line-height:1.4}.seg{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.seg.three{grid-template-columns:repeat(3,1fr)}.seg button{border:1px solid #d5e5e5;background:#f7faf9;border-radius:11px;min-height:42px;padding:8px 4px;font-size:12px;font-weight:700;color:#627c7c}.seg button.selected{background:#dcf5ed;border-color:#60bda8;color:#167a67}.switchrow{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.switchrow:first-of-type{border-top:0}.switchrow strong{display:block;font-size:13px}.switchrow small{display:block;font-size:11px;color:var(--muted);line-height:1.4;margin-top:4px}.switch{appearance:none;width:48px;height:29px;border-radius:999px;background:#cbd6d7;position:relative;flex-shrink:0;border:0;transition:background .18s}.switch:after{content:'';position:absolute;left:4px;top:4px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:0 1px 2px #0002}.switch[aria-checked="true"]{background:var(--accent)}.switch[aria-checked="true"]:after{transform:translateX(19px)}.event{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #edf1f1}.event:last-child{border:0}.event .circle{display:grid;place-items:center;width:30px;height:30px;border-radius:11px;flex-shrink:0;background:#e9f4f2;color:#237c72;font-weight:bold}.event strong{display:block;font-size:12px;color:#24434a;margin-bottom:3px}.event p{margin:0;font-size:11px;line-height:1.45}.event time{color:#81949a;font-size:10px;display:block;margin-top:5px}.emptystate{text-align:center;padding:19px;color:var(--muted);font-size:12px;line-height:1.6}.progress{background:#e7eeee;height:7px;border-radius:5px;overflow:hidden}.progress span{display:block;background:var(--accent);height:100%;border-radius:5px}.demo-note{font-size:11px;line-height:1.5;color:#73898e}.safe-icon{font-size:32px;margin-bottom:12px}.bottomnav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);display:flex;justify-content:space-around;width:min(100%,480px);background:#fff;border-top:1px solid #e1ebeb;padding:9px 8px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 28px #122d3210}.navbtn{border:0;background:transparent;color:#809396;min-width:59px;padding:6px 3px;display:flex;align-items:center;flex-direction:column;gap:3px;font-size:10px;font-weight:700}.navbtn .emoji{font-size:19px;line-height:1.3}.navbtn.active{color:var(--accent)}.mini-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:10px}.mini-list li{display:flex;align-items:center;gap:9px;font-size:12px;color:#38555d}.mini-list .num{height:23px;width:23px;border-radius:8px;background:#def4ec;color:#237d68;display:grid;place-items:center;font-weight:800;font-size:11px}.divider{height:1px;background:var(--line);margin:12px 0}.toast{position:fixed;z-index:20;top:calc(20px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(94%,440px);padding:13px 15px;background:#173943;color:#fff;box-shadow:0 9px 22px #0003;border-radius:13px;font-size:12px;line-height:1.35}.sosline{border:1px solid #f1ced3;background:#fff9f9;color:#a53541;border-radius:14px;padding:12px;font-size:12px;line-height:1.5}.tag{font-size:10px;background:#e5f0f1;border-radius:6px;padding:4px 6px;color:#607a7e;font-weight:800;letter-spacing:.4px} .notice{background:#fff8e9;color:#865d24;border:1px solid #f4dcad;border-radius:12px;padding:11px;font-size:11px;line-height:1.5;margin-top:12px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
