:root{color-scheme:dark;--bg:#090f1a;--bg2:#0d1625;--panel:#111d2d;--panel2:#172537;--border:#253448;--ink:#f0f5fc;--muted:#8e9eb0;--low:#65758c;--mint:#64e2c3;--mint2:#092f2d;--amber:#f5c073;--blue:#90b9fa;--red:#ef9997;--r:18px;--shadow:0 20px 70px rgba(0,0,0,.18);font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei","Noto Sans TC",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.56;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:clamp(24px,3vw,32px);line-height:1.25;letter-spacing:-.8px}h2{font-size:18px;line-height:1.35}h3{font-size:15px}small{color:var(--muted)}.app-shell{min-height:100vh}.sidebar{background:#0c1522;border-right:1px solid var(--border);width:246px;position:fixed;inset:0 auto 0 0;padding:30px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 14px 30px}.brand-mark{height:39px;width:39px;border:1px solid #396b67;display:grid;place-items:center;border-radius:12px;background:linear-gradient(150deg,#163e39,#102331);color:var(--mint)}.brand-name{font-weight:850;font-size:18px;letter-spacing:2.5px;line-height:1.1}.brand-sub{font-size:9px;letter-spacing:1.2px;color:var(--muted);margin-top:3px}.sidebar-section{font-size:10px;color:#687c91;letter-spacing:2px;font-weight:700;margin:18px 14px 10px}.navitem{display:flex;gap:12px;align-items:center;width:100%;padding:13px 14px;border:1px solid transparent;background:transparent;border-radius:12px;color:#93a6bb;text-align:left;margin-bottom:5px;font-weight:600}.navitem:hover{background:#152337;color:var(--ink)}.navitem.active{color:var(--mint);background:#142d32;border-color:#244c49}.navitem .ic{width:19px;height:19px}.sidefoot{margin-top:auto;border-top:1px solid var(--border);padding:20px 12px 0}.sidefoot .version{font-size:11px;color:var(--low);margin-top:12px}.sidefoot .softpill{margin-top:10px}.main{margin-left:246px;min-height:100vh}.main-inner{max-width:1170px;margin:0 auto;padding:34px 42px 90px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:29px}.top-left{display:flex;align-items:center;gap:14px}.mobile-brand{display:none}.date-line{font-size:12px;color:var(--muted);letter-spacing:.3px}.top-actions{display:flex;align-items:center;gap:10px}.icon-button{border:1px solid var(--border);background:#122033;color:var(--muted);height:40px;width:40px;display:grid;place-items:center;border-radius:13px;position:relative}.icon-button:hover{color:var(--mint)}.icon-button .dot{width:6px;height:6px;border-radius:10px;background:var(--amber);position:absolute;right:9px;top:9px}.identity{height:36px;width:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#375d66,#1b3546);color:#d6f7ed;font-size:12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mint);font-weight:750;text-transform:uppercase}.heading-sub{margin-top:10px;color:var(--muted);max-width:700px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 14px}.section-title .label{display:flex;gap:8px;align-items:center}.link-btn{display:flex;align-items:center;gap:4px;color:var(--mint);background:transparent;border:0;font-size:12px;font-weight:650;padding:7px}.link-btn:hover{text-decoration:underline}.notice-strip{display:flex;align-items:flex-start;gap:10px;border:1px solid #6a5430;background:#2c251b;color:#efcf98;padding:12px 15px;border-radius:12px;font-size:12px;margin:0 0 21px}.notice-strip .ic{flex:0 0 17px;margin-top:2px}.hero{background:radial-gradient(ellipse 83% 180% at 95% -25%,#235653 0%,transparent 56%),linear-gradient(125deg,#142637,#0d1928);border:1px solid #31505a;border-radius:23px;position:relative;overflow:hidden;padding:28px 30px;min-height:225px;display:flex;justify-content:space-between;gap:30px;box-shadow:var(--shadow)}.hero:after{content:"";position:absolute;width:290px;height:290px;right:-80px;top:-54px;border-radius:50%;border:1px solid #365e6059;box-shadow:0 0 0 31px #234d4e1f,0 0 0 65px #234d4e15,0 0 0 105px #234d4e11;pointer-events:none}.hero-content{position:relative;z-index:1;max-width:480px}.hero-kicker{display:flex;gap:9px;align-items:center;color:#adf4e0;font-size:11px;letter-spacing:1px;font-weight:750}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #d6a34a26}.hero h1{font-size:29px;margin-top:15px}.hero p{font-size:13px;color:#a9bdca;margin-top:13px;max-width:430px}.hero-buttons{display:flex;gap:9px;margin-top:21px;flex-wrap:wrap}.btn{border-radius:11px;padding:10px 15px;font-weight:750;border:1px solid var(--border);display:inline-flex;align-items:center;gap:8px;justify-content:center;transition:transform .12s,background .12s;background:#1a2c40;color:var(--ink)}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--mint);color:#082a29;border-color:var(--mint)}.btn.outline{background:#18303a;color:#baf6e8;border-color:#3c6b67}.btn.small{font-size:12px;padding:8px 11px}.btn .ic{width:16px;height:16px}.hero-panel{z-index:1;position:relative;flex:0 0 235px;align-self:center;border:1px solid #385657;background:#122937a8;border-radius:16px;padding:18px}.hero-panel-title{font-size:11px;color:#9db9bd}.hero-big{font-size:26px;font-weight:800;margin:5px 0;color:#f4d5a4}.hero-panel-info{border-top:1px solid #36505a;margin-top:13px;padding-top:11px;font-size:11px;color:#b2c3cb}.small-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:20px}.kpi{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:128px}.kpi-icon{height:39px;width:39px;border-radius:12px;display:grid;place-items:center;background:#21384a;color:#b5d3ef}.kpi-icon.green{color:var(--mint);background:#1b3939}.kpi-icon.orange{color:var(--amber);background:#3a3027}.kpi-label{font-size:12px;color:var(--muted)}.kpi-value{font-size:27px;line-height:1.25;font-weight:800;margin-top:12px}.kpi-hint{font-size:11px;color:var(--muted);margin-top:7px}.split{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.feed-empty{padding:28px 18px;text-align:center;border:1px dashed #35495f;border-radius:13px;background:#1220336e}.empty-illustration{height:58px;width:58px;margin:0 auto 13px;display:grid;place-items:center;border:1px solid #34505d;border-radius:50%;color:var(--mint);background:#1a333d}.feed-empty h3{font-size:15px}.feed-empty p{color:var(--muted);font-size:12px;margin:7px auto 0;max-width:390px}.source-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tag{border:1px solid #31475a;background:#1a2b3d;color:#abc1d2;border-radius:7px;font-size:11px;padding:4px 9px;display:inline-flex;gap:5px;align-items:center;white-space:nowrap}.tag.teal{color:var(--mint);border-color:#2f625b;background:#153231}.tag.warn{color:var(--amber);border-color:#5c472c;background:#34291e}.softpill{border:1px solid #2d554f;background:#14312e;color:#92dec9;padding:5px 9px;border-radius:7px;font-size:10px;font-weight:700;display:inline-flex;gap:6px;align-items:center}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.panel-header h2{font-size:16px}.panel-sub{font-size:11px;color:var(--muted);margin-top:4px}.metric-line{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);gap:10px}.metric-line:last-child{border-bottom:0}.metric-line strong{font-size:14px}.muted{color:var(--muted)}.micro{font-size:11px}.tiny{font-size:10px}.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:5px 9px;border-radius:8px;border:1px solid #47515d;color:#b5beca;background:#202a37;white-space:nowrap}.status.good{background:#123631;color:#7de6c6;border-color:#2a6457}.status.need{background:#39232a;color:#faabab;border-color:#654046}.status.unknown{background:#272b35;color:#bac4cf;border-color:#3c4858}.status.pending{background:#352d24;color:#efc68e;border-color:#5e4933}.progress-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.progress-track{height:8px;background:#2c3b4c;border-radius:10px;overflow:hidden}.progress-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,#3cbea5,#8cf3d7);transition:width .3s}.mini-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.readiness-list{display:flex;flex-direction:column;gap:11px}.readiness-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.readiness-name{display:flex;align-items:center;gap:9px;font-size:12px}.circle-mini{width:29px;height:29px;border-radius:9px;background:#20384a;color:#b5d3ef;display:grid;place-items:center}.bottom-nav{display:none}.page-title{margin-bottom:25px}.page-title h1{margin-top:7px}.page-title p{color:var(--muted);margin-top:9px;font-size:13px}.subtabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:17px 0 20px}.subtabs::-webkit-scrollbar{display:none}.tab{padding:9px 14px;border-radius:11px;border:1px solid var(--border);color:var(--muted);background:#142133;white-space:nowrap;font-weight:650;font-size:12px}.tab.active{color:var(--mint);border-color:#387069;background:#153632}.source-row{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid var(--border)}.source-row:last-child{border-bottom:0}.source-emblem{flex:0 0 43px;height:43px;width:43px;background:#203449;border-radius:12px;display:grid;place-items:center;color:#b5d3ef}.source-copy{flex:1;min-width:0}.source-name{font-weight:750;font-size:13px}.source-desc{font-size:11px;color:var(--muted);margin-top:4px}.priority{color:var(--mint);font-weight:700;font-size:11px}.priority.high{color:var(--amber)}.source-status{color:#72869e;font-size:10px;white-space:nowrap}.info-card{background:linear-gradient(125deg,#1b3040,#142437);border:1px solid #355367;border-radius:16px;padding:20px;display:flex;align-items:flex-start;gap:15px}.info-card .bigicon{height:42px;width:42px;background:#24495a;color:#91d7d4;border-radius:13px;flex:none;display:grid;place-items:center}.info-card p{font-size:12px;color:var(--muted);margin-top:6px}.simple-steps{counter-reset:stage;display:grid;gap:11px}.step-row{display:flex;gap:13px;align-items:flex-start;padding:14px;border-radius:12px;background:#172537;border:1px solid #253a4a}.step-number{display:grid;place-items:center;background:#25514e;color:var(--mint);height:28px;width:28px;border-radius:8px;font-size:12px;font-weight:800;flex:none}.step-row p{color:var(--muted);font-size:11px;margin-top:3px}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.member{display:flex;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.member:last-child{border-bottom:0}.member-avatar{height:38px;width:38px;border-radius:12px;display:grid;place-items:center;background:#253a4d;color:#c3d8e6;font-weight:800;font-size:12px;flex:none}.member-text{flex:1;min-width:0}.member-name{font-size:13px;font-weight:700}.member-meta{color:var(--muted);font-size:10px;margin-top:3px}.member button.status{cursor:pointer}.member button.status:hover{border-color:#71b6aa}.family-note{margin-top:18px}.route-card{border:1px solid var(--border);border-radius:16px;padding:20px;background:var(--panel);margin-bottom:14px}.route-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.route-flag{font-size:22px}.route-title{font-size:16px;font-weight:780}.route-sub{color:var(--muted);font-size:11px;margin-top:4px}.route-line{display:flex;align-items:center;gap:11px;margin:22px 0 15px;flex-wrap:wrap}.placebox{background:#203448;padding:10px 13px;border-radius:10px;min-width:80px}.placebox strong{display:block;font-size:13px}.placebox span{color:var(--muted);font-size:10px}.route-arrow{color:var(--mint)}.warning-note{display:flex;gap:9px;color:#eccca0;background:#2f281e;border:1px solid #5d4b34;border-radius:10px;padding:10px 12px;font-size:11px}.criteria{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.criterion{padding:13px 8px;border-radius:10px;background:#1a2b3b;text-align:center}.criterion .num{font-size:17px;font-weight:800;color:#9fdfd4}.criterion .txt{font-size:10px;color:var(--muted);margin-top:4px}.checkrow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer}.checkrow:last-child{border-bottom:none}.checkrow input{width:19px;height:19px;accent-color:#52dabc;cursor:pointer;flex:none}.checkrow .textblock{flex:1}.checkrow strong{font-size:12px}.checkrow .taskdesc{color:var(--muted);font-size:10px;margin-top:3px}.checkrow.completed strong{text-decoration:line-through;color:var(--low)}.group-label{font-size:12px;color:#9ac7c7;font-weight:750;letter-spacing:.4px;margin:22px 0 5px;display:flex;align-items:center;gap:7px}.group-label:first-of-type{margin-top:0}.settings-row{padding:17px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:20px}.settings-row:last-child{border-bottom:0}.settings-row .setting-title{font-weight:700;font-size:13px}.settings-row .setting-desc{font-size:11px;color:var(--muted);margin-top:4px;max-width:490px}.settings-val{color:#a6e8d5;font-size:12px;white-space:nowrap}.footer-disclaimer{margin-top:35px;color:#6f8499;font-size:10px;line-height:1.8;text-align:center}.modal-backdrop{position:fixed;inset:0;background:#020a15d9;display:flex;align-items:center;justify-content:center;padding:18px;z-index:80}.modal{border:1px solid #365264;background:#142335;width:min(440px,100%);border-radius:21px;padding:24px;box-shadow:0 20px 70px #0009}.modal-title{font-size:18px;font-weight:750}.modal-sub{font-size:12px;color:var(--muted);margin-top:7px}.modal-options{display:grid;gap:9px;margin:21px 0}.modal-option{display:flex;align-items:center;justify-content:space-between;background:#1d3243;border:1px solid #365064;color:var(--ink);border-radius:12px;padding:13px 15px;text-align:left;font-weight:700}.modal-option:hover{border-color:#5dbfae}.modal-option .ic{width:18px;height:18px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,24px);z-index:100;border:1px solid #367266;background:#153831;color:#d3fff2;border-radius:12px;padding:11px 17px;box-shadow:0 15px 30px #0006;font-size:12px;max-width:min(90vw,420px);text-align:center;opacity:0;pointer-events:none;transition:all .2s}.toast.show{opacity:1;transform:translate(-50%,0)}.ic{height:19px;width:19px;display:inline-block;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chev{height:13px;width:13px}.offline-indicator{font-size:10px;color:#d8ac7c}
@media(max-width:1160px){.main-inner{padding:28px 25px 90px}.sidebar{width:218px}.main{margin-left:218px}.split{grid-template-columns:1fr 1fr}.hero-panel{flex-basis:200px}}
@media(max-width:900px){.sidebar{display:none}.main{margin-left:0}.main-inner{padding:25px 22px 105px}.mobile-brand{display:flex;gap:9px;align-items:center}.mobile-brand .brand-mark{width:33px;height:33px;border-radius:10px}.mobile-brand .brand-name{font-size:15px}.topbar{margin-bottom:23px}.date-line{display:none}.bottom-nav{position:fixed;z-index:60;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:#0d1826f5;backdrop-filter:blur(18px);border-top:1px solid #283b4c;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.bottom-item{background:transparent;border:none;color:#7c92a5;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:4px;min-height:45px;font-size:9px;font-weight:700}.bottom-item.active{color:var(--mint)}.bottom-item .ic{height:20px;width:20px}.footer-disclaimer{padding-bottom:16px}.toast{bottom:calc(80px + env(safe-area-inset-bottom))}}
@media(max-width:630px){.main-inner{padding:20px 17px 106px}.notice-strip{font-size:11px;padding:10px 12px;margin-bottom:16px}.topbar{margin-bottom:23px}.icon-button{height:37px;width:37px}.identity{height:35px;width:35px}.hero{padding:21px 20px;min-height:auto;display:block;border-radius:19px}.hero h1{font-size:25px;margin-top:13px}.hero p{font-size:12px;margin-top:9px}.hero-buttons{margin-top:17px}.hero-panel{margin-top:20px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:8px}.hero-panel-title{font-size:10px}.hero-big{font-size:18px;margin:1px 0 0}.hero-panel-info{margin:0;padding:0 0 0 12px;border-top:none;border-left:1px solid #36505a;max-width:180px}.small-grid{gap:9px;margin-top:11px}.panel{padding:16px;border-radius:15px}.kpi{min-height:126px;display:block}.kpi-icon{width:33px;height:33px;border-radius:10px;float:right}.kpi-label{font-size:10px}.kpi-value{font-size:24px;margin-top:17px}.kpi-hint{font-size:10px;line-height:1.3}.split,.family-grid{grid-template-columns:1fr}.section-title{margin:26px 0 12px}.section-title h2{font-size:16px}.source-row{gap:10px}.source-emblem{flex-basis:38px;height:38px;width:38px}.source-status{display:none}.criteria{grid-template-columns:repeat(3,1fr)}.route-line{gap:7px}.placebox{padding:9px 10px}.heading-sub{font-size:12px}.settings-row{display:block}.settings-val{display:block;margin-top:7px}.toast{bottom:93px}}
@media(max-width:360px){.small-grid{grid-template-columns:1fr 1fr}.small-grid .panel:last-child{grid-column:1/-1}.hero-buttons .btn{flex:1}}

/* Reliable re-renderable checklist buttons */
button.checkrow{width:100%;background:transparent;border-left:0;border-top:0;border-right:0;border-radius:0;color:var(--ink);text-align:left}button.checkrow:hover{background:#1a2c3b;border-radius:9px}.custom-check{height:19px;width:19px;border:2px solid #5a7184;border-radius:5px;display:grid;place-items:center;flex:none}.custom-check.on{background:var(--mint);border-color:var(--mint);color:#07322c}.custom-check .ic{width:14px;height:14px;stroke-width:3}

/* v0.2: network context indicator. Online does not imply live intelligence feeds. */
.connection-tag{padding:4px 8px;border-radius:8px;border:1px solid #31576a;font-size:10px;font-weight:700;white-space:nowrap}
.connection-tag.online{background:#153437;color:#a4d7ca}
.connection-tag.offline{background:#422f22;color:#ffd29b;border-color:#8d6132}
@media(max-width:900px){.connection-tag{margin-left:auto}}
@media(max-width:450px){.connection-tag{position:absolute;top:72px;right:17px;font-size:9px}.topbar{margin-bottom:32px}}
