@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#f2f5fa;--card:#fff;--card2:#f7f9fd;--border:#d9e2f0;--ink:#0d1b34;--ink-soft:#0b2a5b;--muted:#4f5f7b;--faint:#7d8aa3;--head:#0b2a5b;--headtext:#fff;--headsub:#bfd2f2;--headtab:#cfe0fb;--action:#1f6feb;--action-ink:#fff;--gold:#ffc72c;--gold-ink:#0d1b34;--red:#a82116;--red-bg:#fde3e0;--red-dot:#a82116;--amber:#7a4e00;--amber-bg:#ffefc2;--amber-val:#b7791f;--green:#17803f;--green-bg:#dff3e7;--blue-bg:#e9eff9;--banner:#e1ecfd;--banner-ink:#154aa8;--input:#fff;--chip:#e9eff9;--shadow:0 1px 2px #0b2a5b0f, 0 8px 24px #0b2a5b0f;--radius:14px;--dark-navy:#0b2a5b}.dark{--bg:#061325;--card:#0f1e36;--card2:#0c1628;--border:#1e3556;--ink:#f1f5fb;--ink-soft:#fff;--muted:#94a3b8;--faint:#64748b;--head:#0b1b3d;--headtext:#fff;--headsub:#94a3b8;--headtab:#a8b8d8;--action:#2563eb;--action-ink:#fff;--gold:#e5a93b;--gold-ink:#10151e;--red:#f87171;--red-bg:#4c1d24;--red-dot:#f87171;--amber:#f2b835;--amber-bg:#3d3014;--amber-val:#e5a93b;--green:#4caf50;--green-bg:#113622;--blue-bg:#152542;--banner:#1d3b6f;--banner-ink:#bfdbfe;--input:#152542;--chip:#1c335a;--shadow:0 1px 2px #0006, 0 8px 24px #00000040}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}html,body{max-width:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:Inter,-apple-system,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3,.sora{font-family:Sora,Inter,-apple-system,system-ui,sans-serif}a{color:var(--action);text-decoration:none}button{font-family:inherit}.app{flex-direction:column;max-width:100%;min-height:100dvh;display:flex;overflow-x:clip}.boot{min-height:100dvh;color:var(--muted);place-items:center;font-size:15px;display:grid}.auth-wrap{background:var(--head);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--card);border:1px solid var(--border);width:400px;max-width:min(400px,92vw);box-shadow:var(--shadow);border-radius:18px;padding:26px 26px 24px}.auth-logo{background:var(--gold);color:#0b2a5b;border-radius:12px;place-items:center;width:46px;height:46px;margin-bottom:14px;font-size:22px;display:grid}.auth-card h1{color:var(--ink-soft);margin:0 0 6px;font-size:19px}.auth-card .login-top h1{padding-right:6px;font-size:17px;line-height:1.25}.auth-card .login-top{gap:10px}.auth-sub{color:var(--muted);margin:0 0 18px;font-size:12.5px}.auth-label{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:12px 0 5px;font-size:12px;font-weight:600;display:block}.auth-input{border:1px solid var(--border);background:var(--input);width:100%;color:var(--ink);border-radius:10px;padding:10px 12px;font-size:14px}.auth-btn{width:100%;margin-top:18px}.auth-error{color:var(--red);margin-top:10px;font-size:13px}.auth-msg{background:var(--green-bg);color:var(--green);border-radius:10px;margin-top:12px;padding:10px 12px;font-size:13px}.auth-link{color:var(--action);cursor:pointer;background:0 0;border:none;margin-top:14px;padding:0;font-size:13px}.login-top{align-items:flex-start;gap:0;display:flex}.hdr{background:var(--head);color:var(--headtext);padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 0;z-index:90;max-width:100%;position:sticky;top:0}.hdr-top{align-items:center;gap:10px;max-width:1200px;margin:0 auto;display:flex}.hdr-logo{background:var(--gold);color:#0b2a5b;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.hdr-id{min-width:0;margin-right:auto}.hdr-id h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;overflow:hidden}@media (width<=720px){.hdr-id h1{max-width:40vw;font-size:13.5px}.hdr-id h1:after{content:""}}.hdr-id p{color:var(--headsub);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.hdr-ctrls{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.lang-toggle{border:1px solid var(--border);border-radius:999px;flex:none;height:44px;display:flex;overflow:hidden}.lang-toggle button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;padding:0 18px;font-size:13px;font-weight:600}.lang-toggle button.on{background:var(--action);color:var(--action-ink)}.sheet-lang{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.sheet-lang-label{color:var(--muted);min-width:0;font-size:13px;font-weight:600}.sheet-lang .lang-toggle{height:40px}.sheet-lang .lang-toggle button{min-height:40px;padding:0 14px}.sheet-theme{flex:none;margin-left:auto}.login-lang{flex:none;height:40px;margin-left:auto}.login-lang button{min-height:40px;padding:0 12px}.auth-card .lang-toggle{border-color:var(--border)}.auth-card .lang-toggle button{color:var(--ink-soft)}.auth-card .lang-toggle button.on{background:var(--action);color:#fff}.sys-btn{color:var(--headtext);cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:999px;min-width:44px;min-height:44px;padding:5px 12px;font-size:12px}.sys-btn:disabled{opacity:.55;cursor:default}.push-debug{max-width:1200px;margin:8px auto 0;padding:0 16px}.push-msg{color:#ffd76a;font-size:12px;font-weight:600;line-height:1.35}.push-diag{color:var(--headsub);word-break:break-word;font-size:12px;line-height:1.35}.bell{width:44px;height:44px;color:var(--headtext);cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:999px;flex:none;font-size:17px;position:relative}.bell-badge{background:var(--gold);color:#0b2a5b;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.hdr-mid{align-items:center;gap:10px;max-width:1200px;margin:8px auto 0;display:flex}.search{box-sizing:border-box;background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;flex:1;align-items:stretch;gap:8px;max-width:100%;height:44px;min-height:44px;padding:0 20px;display:flex}.search input{width:100%;color:var(--headtext);background:0 0;border:none;outline:none;flex:1;align-self:stretch;min-width:0;height:44px;padding:0;font-size:16px}.search input::placeholder{color:var(--headsub)}.sync-chip{color:var(--headsub);white-space:nowrap;font-size:12px}.dark .sync-chip{color:#bfd2f2}.hdr-tabs{scrollbar-width:none;gap:2px;max-width:1200px;margin:6px auto 0;display:flex;overflow-x:auto}.hdr-tabs::-webkit-scrollbar{display:none}.hdr-tab{color:var(--headtab);cursor:pointer;white-space:nowrap;background:0 0;border:none;min-height:44px;padding:10px 14px 12px;font-size:13.5px;position:relative}.hdr-tab.on{color:var(--headtext);font-weight:700}.hdr-tab.on:after{content:"";background:var(--gold);border-radius:2px;height:3px;position:absolute;bottom:6px;left:12px;right:12px}.tab-badge{color:#fff;background:#dc2626;border-radius:999px;margin-left:4px;padding:1px 5px;font-size:12px;font-weight:700}.search-pop{background:var(--card);max-width:1200px;color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow);z-index:95;border-radius:12px;width:100%;max-height:46vh;margin:8px auto 10px;padding:6px;overflow:auto}.search-pop-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:4px 8px 6px;font-size:13px;display:flex}.search-close{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;min-height:44px;padding:6px 12px;font-size:13px}.search-pop .sp-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;width:100%;min-height:44px;padding:12px 10px;display:block}.search-pop .sp-item:hover{background:var(--blue-bg)}.sp-kind{letter-spacing:.5px;color:var(--faint);text-transform:uppercase;font-size:12px}.sp-title{color:var(--ink);font-size:14px;font-weight:600}.sp-sub{color:var(--muted);font-size:12px}.sheet-bg{z-index:120;background:#0208148c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bell-sheet{background:var(--card);color:var(--ink);border:1px solid var(--border);width:100%;max-width:520px;max-height:82dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:16px 16px 0 0;flex-direction:column;display:flex;box-shadow:0 -8px 30px #0000004d}.sheet-grab{background:var(--border);border-radius:999px;width:44px;height:4px;margin:10px auto 2px}.sheet-head{justify-content:space-between;align-items:center;padding:8px 16px 6px;display:flex}.sheet-head h4{color:var(--ink-soft);margin:0;font-size:15px}.sheet-close{color:var(--muted);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;font-size:18px}.sheet-body{padding:0 16px 16px;overflow:auto}.sheet-signout{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.notif-banner-wrap{max-width:1200px;margin:12px auto 0;padding:0 16px}.notif-banner{background:var(--gold);color:#0b2a5b;width:100%;max-width:100%;box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;font-weight:600;display:flex}.notif-banner-text{flex:1;min-width:0;font-size:13.5px;line-height:1.35}.notif-banner-actions{align-items:center;gap:8px;display:flex}.notif-banner .btn{min-height:44px}.notif-x{color:inherit;border:none;font-size:16px}.banner-ex{background:var(--banner);color:var(--banner-ink);padding:7px 16px;font-size:12px}.banner-urgent{background:var(--red-bg);color:var(--red);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:9px 16px;font-size:13.5px;display:flex}.review-btn{background:var(--card);color:var(--ink-soft);border:1px solid var(--border);cursor:pointer;border-radius:999px;min-width:44px;min-height:44px;margin-left:auto;padding:10px 16px;font-size:13px;font-weight:600}.dark .review-btn{color:#dbeafe;background:#1a2e4c;border-color:#2a4a7a}.main{width:100%;max-width:1200px;padding:18px 16px calc(96px + env(safe-area-inset-bottom,0px));flex:1;margin:0 auto}.main-narrow{max-width:960px}.grid2{grid-template-columns:1fr 340px;align-items:start;gap:20px;display:grid}@media (width<=980px){.grid2{grid-template-columns:1fr}}.sec-head{overflow-wrap:anywhere;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;max-width:100%;margin:26px 0 12px;display:flex}.sec-head h2{color:var(--ink-soft);min-width:0;margin:0;font-size:19px}.sec-sub{color:var(--muted);text-align:right;font-size:12px}@media (width<=720px){.sec-head{flex-wrap:wrap}.sec-sub{text-align:left}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);box-sizing:border-box;overflow-wrap:anywhere;min-width:0;max-width:100%;margin-bottom:12px;padding:16px}.card-urgent{border:1.5px solid var(--red-dot);border-radius:var(--radius)}.error-card{border:1.5px solid var(--red-dot)}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.pill{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill .dot{background:currentColor;border-radius:999px;width:6px;height:6px;display:inline-block}.pill-ok{background:var(--green-bg);color:var(--green)}.pill-warn{background:var(--amber-bg);color:var(--amber)}.pill-bad{background:var(--red-bg);color:var(--red)}.pill-mute,.pill-neutral{background:var(--blue-bg);color:var(--muted)}.dark .pill-ok{color:#7ee2a0}.dark .pill-warn{color:#ffd76a}.dark .pill-bad{color:#ff9d94}.dark .pill-mute,.dark .pill-neutral{color:#b7c6e0}.dark .fld-err{color:#ff9d94}.btn{border:1px solid var(--border);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:10px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:600}.btn-primary{background:var(--action);border-color:var(--action);color:var(--action-ink)}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.btn-ghost{background:0 0}.btn-sm{border-radius:8px;min-height:44px;padding:6px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.fld label{letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin:12px 0 5px;font-size:12px;font-weight:600;display:block}.fld input,.fld select,.fld textarea{border:1px solid var(--border);background:var(--input);width:100%;color:var(--ink);border-radius:10px;min-height:44px;padding:10px 12px;font-family:inherit;font-size:16px}.fld textarea{resize:vertical;min-height:88px}.fld-err{color:var(--red);margin-top:4px;font-size:13px;font-weight:600}.row2{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row2>.fld{flex:1;min-width:150px}.stepper{gap:4px;margin:4px 0 2px;display:flex}.step{background:var(--blue-bg);min-width:18px;height:20px;color:var(--muted);border-radius:6px;flex:1;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.step.done{background:var(--action);color:#fff}.step.current{color:#fff;background:#1c5d99;box-shadow:0 0 0 2px #1c5d9959}.stepper-labels{gap:4px;margin-top:3px;display:flex}.stepper-labels span{color:var(--muted);text-align:center;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}@media (width<=720px){.stepper-labels{flex-wrap:wrap;gap:2px 4px}.stepper-labels span{white-space:normal;text-overflow:ellipsis;flex:calc(25% - 4px);min-width:0;max-height:2.4em;font-size:9px;line-height:1.15;overflow:hidden}.stepper-labels span.is-current{color:var(--action);font-weight:800}}.phase-now{color:var(--ink-soft);align-items:center;gap:8px;margin:8px 0 2px;font-size:13px;font-weight:700;display:flex}.phase-now .phase-ico{background:var(--action);color:#fff;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:14px;display:grid}.phase-now .phase-sub{color:var(--muted);font-size:12px;font-weight:500}.pct-big{color:var(--ink-soft);font-size:22px;font-weight:800}.proj-row{border-top:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:14px;padding:13px 4px;display:flex}.proj-row:first-of-type{border-top:none}.proj-row:hover{background:var(--card2)}.proj-name{color:var(--ink-soft);margin-bottom:4px;font-size:14.5px;font-weight:700}.proj-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.proj-right{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:5px;margin-left:auto;display:flex}.proj-mid{flex:1;min-width:0;max-width:100%}.chips{flex-wrap:wrap;gap:8px;max-width:100%;margin:12px 0 4px;display:flex}.chip{background:var(--card);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:999px;min-height:44px;padding:8px 14px;font-size:13px}.chip.on{background:var(--action);border-color:var(--action);color:#fff;font-weight:600}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;min-height:44px;padding:10px 12px;font-size:13px}.tabs button.on{color:var(--ink-soft);border-bottom-color:var(--action);font-weight:700}.inbox-top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.inbox-meta{color:var(--muted);font-size:12px}.inbox-title{color:var(--ink-soft);overflow-wrap:anywhere;margin:4px 0;font-size:14.5px;font-weight:700}.inbox-sum{color:var(--muted);overflow-wrap:anywhere;margin:2px 0 10px;font-size:13px}.assign-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assign-row select{flex:1;min-width:0;max-width:100%;min-height:44px;padding:10px 12px;font-size:16px}.assign-label{color:var(--muted);font-size:12px;font-weight:600}.suggest{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;font-size:13px;display:flex}.oneclick{background:var(--card);border:1px solid var(--border);cursor:pointer;color:var(--ink-soft);border-radius:999px;min-height:44px;padding:8px 14px;font-size:13px}.oneclick:hover{border-color:var(--action);color:var(--action)}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=980px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.kpi-grid{grid-template-columns:1fr}}.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;max-width:100%;padding:14px 16px}.kpi-name{color:var(--muted);margin-bottom:6px;font-size:12px}.kpi-val{color:var(--ink-soft);font-size:28px;font-weight:800;line-height:1.1}.kpi-val.off{color:var(--red)}.kpi-val.near{color:var(--amber-val)}.kpi-val.on{color:var(--green)}.kpi-unit{color:var(--muted);margin:3px 0 10px;font-size:12px}.kpi-extra{color:var(--muted);margin-top:10px;font-size:12.5px}.kpi-tgt{color:var(--muted);margin-top:8px;font-size:13px}.kpi-tgt b{color:var(--ink)}.talk{background:var(--card2);border:1px dashed var(--border);border-radius:10px;margin:12px 0;padding:12px 14px}.talk-k{letter-spacing:.8px;color:var(--muted);margin-bottom:5px;font-size:12px;font-weight:700}.talk-body{color:var(--ink);font-size:14px}.spark{align-items:flex-end;gap:3px;height:34px;margin-top:10px;display:flex}.spark i{background:var(--blue-bg);border-radius:3px 3px 0 0;flex:1;min-width:8px}.spark i.hi{background:var(--action)}.conn-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.conn-pill{background:var(--card);border:1px solid var(--border);color:var(--ink-soft);border-radius:999px;align-items:center;min-height:44px;padding:8px 14px;font-size:13px;display:inline-flex}.goal-card{background:linear-gradient(160deg, var(--head) 0%, #10305f 100%);border-radius:var(--radius);color:#fff;max-width:100%;margin-bottom:12px;padding:18px}.dark .goal-card{border:1px solid var(--border);background:linear-gradient(160deg,#0b1b3d 0%,#102a52 100%)}.goal-card h3{color:#fff;margin:0 0 4px;font-size:14px}.goal-metric{color:var(--gold);margin:2px 0 8px;font-size:21px;font-weight:800}.goal-card ul{color:#d5e2fa;margin:10px 0 0;padding-left:18px;font-size:13px}.goal-card li{margin:5px 0}.goal-foot{color:#bfd2f2;margin-top:12px;font-size:12px}.side-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);max-width:100%;margin-bottom:12px;padding:16px}.side-card h3{color:var(--ink-soft);margin:0 0 10px;font-size:15px}.rem-line{border-top:1px solid var(--border);padding:8px 0}.rem-line:first-of-type{border-top:none}.rem-title{color:var(--action);font-size:14px;font-weight:600}.dark .rem-title{color:#7ab3ff}.rem-when{color:var(--muted);font-size:12px}.result-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=980px){.result-grid{grid-template-columns:1fr}}.result{background:var(--card);border:1px solid var(--border);border-top:4px solid var(--gold);border-radius:var(--radius);overflow-wrap:anywhere;min-width:0;max-width:100%;padding:14px 16px}.result-k{letter-spacing:.8px;color:var(--muted);font-size:12px;font-weight:700}.result h3{color:var(--ink-soft);margin:6px 0;font-size:15px}.result p{color:var(--muted);margin:0 0 12px;font-size:13px}.react-banner{background:var(--amber-bg);color:var(--amber);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:14px;display:flex}.modal-bg{z-index:100;background:#0208148c;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--card);color:var(--ink);border:1px solid var(--border);width:560px;min-width:0;max-width:calc(100vw - 24px);max-height:86dvh;box-shadow:var(--shadow);overflow-wrap:anywhere;border-radius:16px;padding:20px;overflow:auto}.modal h3{color:var(--ink-soft);overflow-wrap:anywhere;min-width:0;margin:0 0 4px;font-size:16px}.modal .msg-body{overflow-wrap:anywhere;min-width:0}.modal-x{color:var(--muted);cursor:pointer;float:right;background:0 0;border:none;min-width:44px;min-height:44px;font-size:18px}.tier{color:var(--ink-soft);align-items:center;gap:8px;margin:10px 0 6px;font-size:14px;font-weight:700;display:flex}.tier-dot{background:var(--green);border-radius:999px;width:9px;height:9px}.tier-dot.mid{background:var(--gold)}.tier-dot.plan{background:var(--muted)}.sys-item{color:var(--muted);align-items:baseline;gap:8px;margin:6px 0;font-size:14px;display:flex}.sys-item:before{content:"•";color:var(--faint)}.bell-pop{background:var(--card);width:330px;max-width:calc(100vw - 16px);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow);z-index:95;border-radius:14px;max-height:70dvh;padding:12px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.bell-pop h4{letter-spacing:.5px;text-transform:uppercase;color:var(--faint);margin:8px 0 4px;font-size:12px}.bell-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;width:100%;min-height:44px;padding:12px 8px;font-size:14px;display:block}.bell-item:hover{background:var(--blue-bg)}.toast{bottom:calc(96px + env(safe-area-inset-bottom,0px));background:var(--ink-soft);color:var(--card);z-index:200;box-shadow:var(--shadow);text-align:center;border-radius:999px;max-width:calc(100vw - 24px);padding:10px 18px;font-size:14px;position:fixed;left:50%;transform:translate(-50%)}.dark .toast{color:#fff;background:#2563eb}.dark .tab-badge,.dark .bn-badge{color:#fff;background:#c53030}.dark .bn-btn.on{color:#e8eef8}.dark .bn-btn{color:#8ea3c2}.dark .bell-pop,.dark .search-pop{background:#10203a}.dark .notif-x{color:#0b2a5b}.chain-head{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 6px;display:flex}.chain-title{color:var(--ink-soft);font-size:14.5px;font-weight:700}.msg{border-top:1px solid var(--border);margin-top:10px;padding:10px 0}.msg-top{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px;display:flex}.msg-sender{color:var(--ink);font-size:13px;font-weight:700}.msg-date{color:var(--muted);font-size:12px}.msg-body{color:var(--ink);white-space:pre-wrap;font-size:14px}.flag-pill{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.flag-dec{background:var(--red-bg);color:var(--red)}.flag-rec{background:var(--blue-bg);color:var(--action)}.flag-key{background:var(--amber-bg);color:var(--amber)}.note-row{border-top:1px solid var(--border);padding:9px 0}.note-date{color:var(--faint);margin-bottom:3px;font-size:12px}.note-text{color:var(--ink);white-space:pre-wrap;font-size:14px}.dec-row{border-top:1px solid var(--border);padding:10px 0}.dec-who{color:var(--ink);font-size:14px;font-weight:700}.dec-when{color:var(--muted);font-size:12px}.dec-text{color:var(--ink);margin-top:3px;font-size:14px}.bottom-nav{z-index:110;background:var(--card);border-top:1px solid var(--border);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0b2a5b14}.bn-btn{cursor:pointer;min-width:0;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:52px;padding:6px 2px 8px;font-size:12px;display:flex;position:relative}@media (width>=721px){.bn-btn .bn-txt{white-space:nowrap}}.bn-btn .bn-ico{font-size:19px;line-height:1}.bn-btn .bn-txt{white-space:normal;word-break:break-word;max-width:100%;padding:0 2px;font-size:11.5px;font-weight:600;line-height:1.15}.bn-btn.on{color:var(--ink-soft)}.bn-btn.on:after{content:"";background:var(--gold);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:25%;right:25%}.bn-badge{color:#fff;background:#dc2626;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:12px;font-weight:700;display:grid;position:absolute;top:2px;right:18%}@media (width<=720px){.hdr-tabs,.sync-chip{display:none}.hdr-mid{margin-top:8px}.hdr-id h1{font-size:13.5px}.search{min-width:0}.notif-banner-wrap{margin-top:10px;padding:0 12px}}@media (width<=560px){.main{padding:14px 12px calc(96px + env(safe-area-inset-bottom,0px))}.hdr-id p{display:none}.card{padding:14px 12px}.proj-right{text-align:left;align-items:flex-start;margin-left:0}.proj-row{flex-wrap:wrap}.hdr-ctrls{gap:4px}.lang-toggle button{padding:0 12px}}@media print{body{background:#fff!important}.app{display:block!important}.hdr,.bottom-nav,.notif-banner-wrap,.banner-ex,.banner-urgent,.modal-bg,.sheet-bg,.toast,.push-debug,.brief-actions,.pct-big{display:none!important}.main{max-width:none!important;margin:0!important;padding:0!important}.card{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important;border:1px solid #d9e2f0!important;margin-bottom:8px!important}.btn,.fld,.tabs{display:none!important}h1,h2,h3{color:#0b2a5b!important}.muted{color:#4f5f7b!important}}.rem-chips{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.rem-chip{border:1px solid var(--line,#d8d2c6);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px}.rem-chip.on{background:var(--ink-soft,#2b2b28);color:#fff;border-color:var(--ink-soft,#2b2b28)}.rem-card{border:1px solid var(--line,#d8d2c6);background:var(--card,#fff);border-radius:12px;margin:8px 0;padding:12px 14px}.rem-card.overdue{border-color:#c0392b;box-shadow:inset 3px 0 #c0392b}.rem-card.rem-hl{outline-offset:2px;border-color:#1c5d99;outline:2px solid #1c5d99;box-shadow:0 0 0 5px #1c5d9926}.rem-card.compact{padding:8px 12px}.rem-card.done{opacity:.75}.rem-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.rem-title{font-size:15px;font-weight:600}.rem-when{white-space:nowrap;font-size:12px}.rem-when.overdue{color:#c0392b;font-weight:700}.rem-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.rem-chip-chip{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line,#d8d2c6);border-radius:999px;padding:2px 8px;font-size:10px}.cat-personal{background:#f4efe2}.cat-work{background:#e7f0fa}.cat-family{background:#fdeaea}.cat-project{background:#e9f7ee}.cat-other{background:#f0f0f0}.rem-voice-badge,.rem-meeting-badge{color:#5b3d8c;background:#efe9f7;border-radius:999px;padding:2px 8px;font-size:10px}.rem-alarm-badge{color:#9a3412;letter-spacing:.02em;background:#ffe8cc;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.rem-proj-chip{cursor:pointer;background:#f4efe2;border-radius:999px;padding:2px 10px;font-size:11px}.rem-phrase{color:var(--muted,#6b6b63);margin-top:8px;font-size:13px;font-style:italic}.rem-phrase-inline{color:var(--muted,#6b6b63);font-size:11px;font-style:italic}.rem-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.rem-sec-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#6b6b63);margin:14px 0 4px;font-size:11px}.rem-sec-head.overdue{color:#c0392b}.rem-sec-head.today{color:var(--ink-soft,#2b2b28);font-weight:700}.rem-search{border:1px solid var(--line,#d8d2c6);border-radius:8px;width:100%;margin:8px 0;padding:8px 10px}.rem-due-card{border:2px solid var(--ink-soft,#2b2b28);text-align:center;margin:10px 0;padding:20px}.rem-due-label{font-size:30px}.rem-due-text{margin:6px 0;font-size:22px;font-weight:700}.rem-due-when{color:var(--muted,#6b6b63);margin-bottom:12px;font-size:13px}.rem-due-btns{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.rem-due-btns .btn{border-radius:12px;padding:14px 10px;font-size:16px}.rem-toast-undo{background:var(--ink-soft,#2b2b28);color:#fff;z-index:60;border-radius:999px;align-items:center;gap:14px;padding:10px 18px;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.rem-toast-undo .btn{color:#ffd66b;background:0 0;border:none;font-weight:700}.meet-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:10px}.meet-badge.ok{color:#1e7c46;background:#e9f7ee}.meet-badge.info{color:#1c5d99;background:#e7f0fa}.meet-badge.neutral{color:#555;background:#f0f0f0}.meet-badge.danger{color:#c0392b;background:#fdeaea;text-decoration:line-through}.meet-status{display:inline-block}.meet-grid{grid-template-columns:110px 1fr;gap:6px 12px;font-size:13px;display:grid}.meet-ribbon{border:1px solid var(--line,#d8d2c6);background:#f7fafd;border-left:4px solid #1c5d99;border-radius:10px;margin:10px 0;padding:10px 12px}.meet-ribbon-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.meet-ribbon-text{font-size:13px;font-weight:600}.meet-today-card{border:1px solid var(--line,#d8d2c6);border-radius:12px;margin:8px 0;padding:10px 12px}.meet-today-main{cursor:pointer}.meet-list-row{cursor:pointer;border-bottom:1px solid var(--line,#eee);align-items:center;gap:10px;padding:8px 0;display:flex}.rem-page{padding-bottom:8px}.rem-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.rem-head-sub{margin:0 0 8px;font-size:13px}.rem-head-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.rem-empty{text-align:center;border-style:dashed;padding:22px 14px}.rem-swipe-wrap{border-radius:14px;margin:8px 0;position:relative;overflow:hidden}.rem-swipe-archive{color:#fff;letter-spacing:.02em;cursor:pointer;background:#c0392b;border:none;width:88px;font-size:12px;font-weight:700;position:absolute;inset:0 0 0 auto}.rem-swipe-wrap .rem-card{z-index:1;will-change:transform;border-radius:14px;margin:0;position:relative}.rem-hl-wrap{outline:none}.rem-card{transition:box-shadow .15s,border-color .15s;box-shadow:0 1px 2px #1018280a}.rem-card:active{box-shadow:0 0 0 3px #1c5d991f}.rem-card.rem-hl{border-color:#1c5d99}.rem-sheet-bg{justify-content:center;align-items:flex-end;padding:0;display:flex}.rem-sheet{width:100%;max-width:520px;max-height:88dvh;padding:8px 18px 22px;padding-bottom:calc(22px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;margin:0}.rem-sheet .sheet-grab{margin-bottom:6px}.rem-sheet-when{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;font-size:13px;display:flex}.rem-sheet-when.overdue{color:#c0392b;font-weight:700}.rem-sheet-title{color:var(--ink-soft);margin-bottom:4px;font-size:20px;font-weight:750;line-height:1.25}.rem-sheet-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.rem-sheet-actions .btn{border-radius:12px;min-height:48px;font-weight:650}.rem-sheet-actions .btn-primary{grid-column:1/-1}.rem-sheet-actions .rem-dismiss{color:#c0392b;grid-column:1/-1}.rem-add-card h3{margin-top:0}
