:root{--background:#f6f8fb;--foreground:#19222c;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{line-height:1.5}p,button,textarea{margin:0}button{text-align:center}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);margin:0}button,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{width:min(1180px,100%);min-height:100svh;margin:0 auto;padding:32px 28px 48px}.topbar{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}h1{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1}.header-actions{gap:7px;display:flex}.view-button{color:#526170;cursor:pointer;background:#fff;border:1px solid #d8e0e8;border-radius:11px;place-items:center;width:40px;height:40px;transition:transform .16s,border-color .16s;display:grid;box-shadow:0 1px 3px #1a26320d}.view-button:hover{border-color:#aebbc7;transform:translateY(-1px)}.view-button svg{width:18px}.view-stage{animation:.28s cubic-bezier(.22,.8,.28,1) both view-in}.main-grid,.pillar-grid{view-transition-name:map-grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,720px);margin:0 auto;display:grid}.main-cell,.goal-cell,.pillar-center,.detail-cell{aspect-ratio:1;border:1px solid var(--tone-border,#dce3ea);background:var(--tone-bg,#fff);border-radius:13px;min-width:0;position:relative;overflow:hidden}.main-cell,.goal-cell,.pillar-center{justify-content:center;align-items:center;display:flex}.main-cell{cursor:pointer}.main-cell .cell-input{cursor:text}.goal-cell{--tone-bg:#ffe9e7;--tone-border:#efc1bd;flex-direction:column}.cell-kicker{color:#a05450;letter-spacing:.09em;text-transform:uppercase;margin-bottom:2px;font-size:.68rem;font-weight:800}.cell-input{resize:none;color:#263440;text-align:center;background:0 0;border:0;outline:0;align-content:center;width:100%;height:6.5rem;padding:12px 34px;font-size:1.02rem;font-weight:600;line-height:1.25;overflow:auto}.cell-input::placeholder{color:#91a0ad;font-weight:500}.open-button{color:#596b79;cursor:pointer;opacity:.72;background:#ffffffa6;border:0;border-radius:8px;place-items:center;width:30px;height:30px;transition:opacity .15s,transform .15s;display:grid;position:absolute;bottom:8px;right:8px}.open-button:hover{opacity:1;transform:scale(1.04)}.open-button svg{width:15px}.pillar-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,820px)}.detail-cell{border-color:var(--tone-border);background:var(--tone-bg);font-weight:500}.detail-preview{color:#263440;cursor:pointer;background:0 0;border:0;place-items:center;width:100%;height:100%;padding:20px;display:grid;position:relative}.detail-preview span{text-align:center;overflow-wrap:anywhere;white-space:pre-wrap;-webkit-line-clamp:7;-webkit-box-orient:vertical;max-width:100%;font-size:1rem;line-height:1.35;display:-webkit-box;overflow:hidden}.detail-preview svg{opacity:.58;width:15px;position:absolute;bottom:10px;right:10px}.detail-preview.is-empty{color:#7a8a98}.detail-preview:hover{background:#ffffff38}.detail-preview:focus-visible{outline-offset:-4px;border-radius:inherit;outline:2px solid #526170}.pillar-center{background:var(--tone-center);border-color:var(--tone-border)}.pillar-center .cell-input{font-size:1.2rem;font-weight:750}.pillar-return{color:#263440;text-align:center;overflow-wrap:anywhere;white-space:pre-wrap;cursor:pointer;background:0 0;border:0;place-items:center;width:100%;height:100%;padding:16px 24px;font-size:1.2rem;font-weight:750;line-height:1.25;display:grid;position:absolute;inset:0;overflow:auto}.pillar-return:focus-visible{outline-offset:-4px;border-radius:inherit;outline:2px solid #526170}.editor-dialog{color:#263440;background:0 0;border:0;border-radius:18px;width:min(620px,100% - 32px);max-height:min(720px,100dvh - 32px);padding:0;box-shadow:0 24px 80px #19222c47}.editor-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#141d277a}.editor-sheet{background:#fff;gap:18px;padding:24px;display:grid}.editor-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.editor-heading h2{margin:1px 0 0;font-size:1.18rem;line-height:1.25}.editor-kicker{color:#758291;letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:800}.close-button{color:#526170;cursor:pointer;background:#f7f9fb;border:1px solid #d8e0e8;border-radius:11px;flex:none;place-items:center;width:42px;height:42px;display:grid}.close-button svg{width:19px}.expanded-input{resize:vertical;color:#263440;background:#fbfcfd;border:1px solid #cdd7e0;border-radius:12px;outline:0;width:100%;min-height:260px;max-height:55dvh;padding:17px 18px;font-size:1rem;line-height:1.55}.expanded-input:focus{border-color:#73889b;box-shadow:0 0 0 3px #73889b29}.expanded-input::placeholder{color:#8b99a6}.done-button{color:#fff;cursor:pointer;background:#263440;border:0;border-radius:11px;justify-self:end;min-width:96px;min-height:44px;padding:10px 18px;font-weight:750}.close-button:hover,.done-button:hover{filter:brightness(.96)}.full-panel{padding:2px;overflow-x:auto}.full-grid{view-transition-name:map-grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;min-width:720px;display:grid}.mini-pillar,.mini-main-grid{aspect-ratio:1;border:2px solid var(--tone-border,#dce3ea);background:#fff;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:1px;padding:0;display:grid;overflow:hidden}.mini-pillar{color:#33414c;cursor:pointer}.mini-pillar>span,.mini-main-grid>*{background:var(--tone-bg);color:#40505d;text-align:center;border:0;justify-content:center;align-items:center;min-width:0;padding:4px;font-size:clamp(.5rem,.9vw,.72rem);line-height:1.15;display:flex;overflow:hidden}.mini-pillar .mini-center{background:var(--tone-center);font-weight:800}.mini-main-grid{border-color:#efc1bd}.mini-main-grid .mini-goal{color:#713d39;cursor:pointer;background:#f5c7c2;font-weight:800}.mini-main-grid .mini-category{background:var(--tone-center);color:#263440;cursor:pointer;font-weight:750}.tone-mint{--tone-bg:#eef8f4;--tone-center:#cce9dc;--tone-border:#a9d4c1}.tone-sand{--tone-bg:#fff8e8;--tone-center:#f1dfb4;--tone-border:#dfc681}.tone-blue{--tone-bg:#eef6fc;--tone-center:#cce3f5;--tone-border:#a6cce8}.tone-rose{--tone-bg:#fff1f2;--tone-center:#f0ced2;--tone-border:#dda9b0}.tone-lilac{--tone-bg:#f7f2fc;--tone-center:#dfd1ef;--tone-border:#c5addf}.tone-green{--tone-bg:#f2f8eb;--tone-center:#d5e7c2;--tone-border:#b6d394}.tone-peach{--tone-bg:#fff3ec;--tone-center:#efd1bd;--tone-border:#dcaf92}.tone-slate{--tone-bg:#f0f5f7;--tone-center:#d0dee4;--tone-border:#abc3cd}@keyframes view-in{0%{opacity:0;transform:scale(.975)}to{opacity:1;transform:scale(1)}}::view-transition-old(map-grid){animation-duration:.34s;animation-timing-function:cubic-bezier(.22,.8,.28,1)}::view-transition-new(map-grid){animation-duration:.34s;animation-timing-function:cubic-bezier(.22,.8,.28,1)}@media (width<=700px){.app-shell{padding:18px 12px 28px}.topbar{align-items:center;gap:12px;margin-bottom:20px}h1{white-space:nowrap;font-size:1.65rem}.main-grid,.pillar-grid{gap:5px}.main-cell,.goal-cell,.detail-cell,.pillar-center{border-radius:9px}.cell-input{height:4.5rem;padding:8px 24px 8px 8px;font-size:.88rem}.goal-cell .cell-input,.pillar-center .cell-input{padding:8px}.cell-kicker{font-size:.58rem}.open-button{border-radius:8px;width:32px;height:32px;bottom:4px;right:4px}.open-button svg{width:13px}.detail-preview{padding:12px 9px 26px}.detail-preview span{-webkit-line-clamp:5;font-size:.86rem;line-height:1.28}.detail-preview svg{width:13px;bottom:6px;right:6px}.pillar-return{padding:10px 8px 34px;font-size:1rem}.full-grid{gap:7px;min-width:630px}.editor-dialog{border-radius:20px 20px 0 0;width:100%;max-width:none;max-height:calc(100dvh - 20px);margin:auto 0 0}.editor-sheet{min-height:min(68dvh,560px);padding:20px 16px max(18px, env(safe-area-inset-bottom))}.expanded-input{resize:none;min-height:240px}.done-button{justify-self:stretch;width:100%;min-height:48px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}
