:root{--bg:#f2f6fb;--bg2:#e8eef7;--surface:rgba(255,255,255,0.78);--surface-solid:#ffffff;--border:rgba(30,60,110,0.12);--text:#17263d;--muted:#5d6f8a;--primary:#2563eb;--primary-soft:#dbeafe;--green:#16a34a;--amber:#d97706;--red:#dc2626;--radius:14px;--shadow:0 1px 3px rgba(23,38,61,0.06),0 8px 24px rgba(23,38,61,0.07)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 15% -10%,#dce9fa 0,var(--bg) 55%),var(--bg);color:var(--text);min-height:100vh}a{color:var(--primary);text-decoration:none}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px;color:var(--text)}.shell{max-width:1240px;margin:0 auto;padding:0 20px 190px}.topnav{position:-webkit-sticky;position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(242,246,251,.85);border-bottom:1px solid var(--border);margin-bottom:22px}.topnav-inner{max-width:1240px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.brand{font-weight:800;font-size:16px;margin-right:10px;letter-spacing:-.3px}.navtab{padding:7px 13px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--muted);border:1px solid transparent;background:none;cursor:pointer;white-space:nowrap}.navtab:hover{background:rgba(255,255,255,.8);color:var(--text)}.navtab.active{background:var(--surface-solid);color:var(--text);border-color:var(--border)}.card,.navtab.active{box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card h2{margin:0 0 12px;font-size:15px;letter-spacing:-.2px;display:flex;align-items:center;gap:8px}.card h2 .sub{font-weight:500;color:var(--muted);font-size:12.5px;margin-left:auto}.grid{display:grid;grid-gap:16px;gap:16px}.btn{border:1px solid var(--border);background:var(--surface-solid);color:var(--text);border-radius:9px;padding:7px 13px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s}.btn:hover{color:var(--primary)}.btn.primary,.btn:hover{border-color:var(--primary)}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{filter:brightness(1.08);color:#fff}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--primary)}.btn.sm{padding:4px 9px;font-size:12px}.btn:disabled{opacity:.5;cursor:default}.input,select.input,textarea.input{width:100%;border:1px solid var(--border);border-radius:9px;padding:8px 11px;background:var(--surface-solid);outline:none}.input:focus{border-color:var(--primary)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700}button.pill{border:none;cursor:pointer;font-family:inherit;transition:filter .1s}button.pill:hover{filter:brightness(.95)}.pill.blue{background:var(--primary-soft);color:#1d4ed8}.pill.green{background:#dcfce7;color:#15803d}.pill.amber{background:#fef3c7;color:#b45309}.pill.gray{background:#e9edf3;color:#576b84}.muted{color:var(--muted)}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-gap:12px;gap:12px;overflow-x:auto;padding-bottom:6px}.kcol{background:rgba(230,238,248,.7);border:1px solid var(--border);border-radius:12px;padding:10px;min-height:160px}.kcol.dragover{border-color:var(--primary);background:var(--primary-soft)}.kcol h3{margin:2px 4px 10px;font-size:12.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);display:flex;justify-content:space-between}.tcard{background:var(--surface-solid);border:1px solid var(--border);border-radius:10px;padding:9px 11px;margin-bottom:8px;cursor:-webkit-grab;cursor:grab;box-shadow:0 1px 2px rgba(23,38,61,.05);font-size:13.5px;line-height:1.35}.tcard:active{cursor:-webkit-grabbing;cursor:grabbing}.tcard .meta{display:flex;gap:6px;margin-top:5px;font-size:11px;color:var(--muted);align-items:center;flex-wrap:wrap}.tcard.done{opacity:.55;text-decoration:line-through}.tcard.overdue .due{color:var(--red);font-weight:700}.top3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.top3slot{border:1.5px dashed var(--border);border-radius:12px;min-height:64px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:4px;background:rgba(255,255,255,.5);position:relative}.top3slot.filled{border-style:solid;background:var(--surface-solid);box-shadow:var(--shadow)}.top3slot.dragover{border-color:var(--primary);background:var(--primary-soft)}.top3slot .rank{position:absolute;top:-9px;left:10px;background:var(--primary);color:#fff;font-size:10.5px;font-weight:800;padding:1px 8px;border-radius:999px}.top3slot .clear{position:absolute;top:4px;right:8px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px}table.sheet{width:100%;border-collapse:collapse;font-size:13.5px}table.sheet th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:7px 9px;border-bottom:1px solid var(--border)}table.sheet td{padding:6px 9px;border-bottom:1px solid rgba(30,60,110,.07)}table.sheet input,table.sheet select{border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 6px;width:100%}table.sheet input:focus,table.sheet select:focus{border-color:var(--primary);background:#fff;outline:none}.cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.calday{border:1px solid var(--border);border-radius:10px;min-height:84px;padding:6px 7px;background:rgba(255,255,255,.55);font-size:11.5px}.calday .dnum{font-weight:700;color:var(--muted);margin-bottom:4px}.calday.today{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.calday .ct{background:var(--primary-soft);color:#1d4ed8;border-radius:6px;padding:1px 5px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.calday.dim{opacity:.45}.chatbox{display:flex;flex-direction:column;height:380px}.chatlog{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px 10px}.msg{max-width:88%;padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.45;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:4px}.msg.assistant{align-self:flex-start;background:var(--surface-solid);border:1px solid var(--border);border-bottom-left-radius:4px}.chatrow{display:flex;gap:8px;align-items:flex-end}.chatrow .chatinput{resize:none;line-height:1.45;min-height:58px;max-height:220px;overflow-y:auto}.habitbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -6px 24px rgba(23,38,61,.08)}.habitbar-inner{max-width:1240px;margin:0 auto;padding:8px 20px 10px}.habitbar-head{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.hb-grid{display:grid;grid-template-columns:minmax(140px,220px) repeat(7,34px) auto;grid-gap:3px 6px;gap:3px 6px;align-items:center;margin-top:6px;max-height:32vh;overflow-y:auto}.hb-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:7px;padding:2px 4px}.hb-name .hb-grip{color:var(--muted);opacity:.45;font-size:11px;cursor:-webkit-grab;cursor:grab}.hb-name.dragging{opacity:.4}.hb-name.droptarget{background:var(--primary-soft);box-shadow:inset 0 0 0 1.5px var(--primary)}.hb-cell{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--border);background:#fff;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;position:relative;padding:0}.hb-cell.checked{background:var(--green);border-color:var(--green);color:#fff;font-weight:800}.hb-cell.partial{background:#bbf7d0;border-color:#86efac;color:#166534;font-weight:700;font-size:11px}.hb-cell.measure{background:var(--primary-soft);border-color:#b9cdf5;color:#1d4ed8;font-weight:800;font-size:9.5px;letter-spacing:-.3px}.hb-cell.offday{opacity:.28}.hb-cell.future{opacity:.45;cursor:default}.hb-cell .notedot{position:absolute;top:2px;right:3px;width:5px;height:5px;border-radius:50%;background:var(--amber)}.hb-daylabel{font-size:10.5px;font-weight:800;color:var(--muted);text-align:center}.hb-tally{font-size:11px;color:var(--muted);white-space:nowrap}.dealcard{background:var(--surface-solid);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font-size:13px}.dealcard:hover{border-color:var(--primary)}.dealcard .amt{font-weight:800;color:var(--green)}.overlay{position:fixed;inset:0;background:rgba(15,25,45,.45);z-index:90;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--bg);border-radius:16px;max-width:720px;width:100%;max-height:88vh;overflow-y:auto;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.modal h2{margin-top:0}.vision{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:10px;gap:10px}.vision .vimg{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);aspect-ratio:4/3;background:#dde6f2}.vision .vimg img{width:100%;height:100%;object-fit:cover;display:block}.vision .vimg .cap{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-size:11.5px;padding:14px 8px 6px}.vision .vimg .del{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:11px;padding:2px 6px}.goalrow{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid rgba(30,60,110,.07);font-size:14px}.goalrow input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}.goalrow.done .gtitle{text-decoration:line-through;opacity:.55}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.stat{background:var(--surface-solid);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.stat .n{font-size:24px;font-weight:800;letter-spacing:-.5px}.stat .l{font-size:12px;color:var(--muted);font-weight:600}.subtabs{display:flex;gap:6px;margin:4px 0 16px;flex-wrap:wrap}.notice{background:#fff8e6;border:1px solid #f2dc9d;color:#8a6f2e;border-radius:10px;padding:10px 14px;font-size:13px}@media (max-width:760px){.top3{grid-template-columns:1fr}.hb-grid{grid-template-columns:minmax(100px,140px) repeat(7,30px) auto}}.mdblock>:first-child{margin-top:0}.mdblock h3,.mdblock h4,.mdblock h5,.mdblock h6{margin:14px 0 5px;font-size:13px}.mdblock p{margin:0 0 8px}.mdblock ol,.mdblock ul{margin:0 0 8px;padding-left:20px}.mdblock li{margin-bottom:3px}.mdblock code{background:var(--chip,rgba(0,0,0,.05));padding:1px 4px;border-radius:3px;font-size:12px}.tablewrap{overflow-x:auto;margin:0 0 10px}.mdblock table{border-collapse:collapse;width:100%;font-size:12.5px}.mdblock td,.mdblock th{border:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top}.mdblock th{background:var(--chip,rgba(0,0,0,.04));font-weight:600}@media print{body *{visibility:hidden!important}[data-print=plan],[data-print=plan] *{visibility:visible!important}[data-print=plan]{position:absolute;left:0;top:0;width:100%;padding:0;margin:0;border:none;box-shadow:none;background:#fff;color:#000}[data-print=plan] .no-print,[data-print=plan] button{display:none!important}[data-print=plan] h3{font-size:18pt;margin:0 0 10pt}[data-print=plan] div{line-height:1.5}@page{margin:2cm}}