*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f4f5fa;--bg2: #eceef5;--bg3: #e2e4ef;--border: #d8dae8;--card: #ffffff;--ink: #1e1e1e;--muted: #6b6d8a;--faint: #a0a3be;--blue: #2c37cc;--blue-lt: #eceeff;--navy: #191964;--green: #02fccf;--green-lt: #e0fff9;--orange: #ff9875;--orange-lt: #fff1ec;--red: #ff4664;--red-lt: #ffe8ec;--heading: "League Spartan", system-ui, sans-serif;--sans: "Montserrat", system-ui, sans-serif;--serif: "Montserrat", system-ui, sans-serif}html{scroll-behavior:smooth}html,body{overflow-x:clip}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}nav.sticky-nav{position:sticky;top:0;z-index:100;background:#0a0a0aeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;padding:0 48px;height:52px;gap:0}nav.sticky-nav .nav-logo{font-family:var(--heading);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-right:8px;padding-right:24px;border-right:1px solid rgba(255,255,255,.15);white-space:nowrap}nav.sticky-nav a{text-decoration:none;color:#ffffffa6;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:0 14px;height:52px;display:flex;align-items:center;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}nav.sticky-nav a:hover{color:#fff}nav.sticky-nav a.active{color:var(--blue);border-bottom-color:var(--blue)}.app-layout{--chantier-w: 320px;--tasks-w: 280px;--notes-w: 420px;--dates-w: 220px;display:grid;grid-template-columns:1fr var(--chantier-w) var(--tasks-w) var(--dates-w);align-items:start}.app-layout.has-notes{grid-template-columns:1fr var(--chantier-w) var(--tasks-w) var(--dates-w) var(--notes-w)}.app-layout.is-chantier-folded{--chantier-w: 44px}.app-layout.is-todo-folded{--tasks-w: 44px}.app-layout.is-dates-folded{--dates-w: 44px}.main-content{min-width:0}.sidebar-header{display:flex;align-items:center;gap:10px;padding:22px 18px 14px;flex-shrink:0}.sidebar-header-icon{flex-shrink:0;color:#fff}.sidebar-header-title{font-family:var(--heading);font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;margin:0;white-space:nowrap;overflow:hidden}.is-folded .sidebar-header{justify-content:center;padding:22px 0 14px}.is-folded .sidebar-header-title{display:none}.todo-sidebar{position:sticky;top:52px;height:calc(100vh - 52px);background:#1c1c22;border-left:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;overflow:hidden;color:#e7e7ee}.todo-sidebar-content{flex:1;min-height:0;overflow-y:auto;padding:0 18px 18px;display:flex;flex-direction:column;gap:16px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.todo-sidebar-content::-webkit-scrollbar{width:8px}.todo-sidebar-content::-webkit-scrollbar-track{background:transparent}.todo-sidebar-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.todo-sidebar-content::-webkit-scrollbar-thumb:hover{background:#ffffff47}.todo-sidebar.is-folded .todo-sidebar-content{display:none}.todo-sidebar.is-folded{cursor:pointer}.todo-sidebar.is-folded:hover{background:#25252c}.todo-add-form{margin:0}.todo-add-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;font-family:var(--sans);font-size:13px;color:#f5f5fb;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.todo-add-input:focus{border-color:var(--blue);background:#ffffff1a;box-shadow:0 0 0 3px #2c37cc40}.todo-add-input::placeholder{color:#fff6}.todo-section{display:flex;flex-direction:column;gap:8px}.todo-section-title{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#ffffff8c;margin:0}.todo-empty{font-size:11px;color:#fff6;font-style:italic;margin:0}.todo-list{list-style:none;display:flex;flex-direction:column;gap:2px;padding:0;margin:0}.todo-item{display:flex;align-items:flex-start;gap:8px;padding:6px;border-radius:4px;font-size:13px;cursor:pointer;outline:1px solid transparent;transition:background .1s,outline-color .15s}.todo-item:hover{background:#ffffff0d}.todo-item.is-selected{background:#2c37cc40;outline-color:var(--blue)}.todo-check{width:16px;height:16px;border:1.5px solid rgba(255,255,255,.25);border-radius:4px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:1;margin-top:1px;position:relative;transition:background .15s,border-color .15s}.todo-check:before{content:"✓";color:#fff;font-size:11px;font-weight:800;opacity:0;transition:opacity .15s}.todo-check:hover{border-color:var(--blue);background:var(--blue)}.todo-check:hover:before{opacity:1}.todo-text{flex:1;color:#f0f0f5;word-break:break-word;line-height:1.4}.todo-priority{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);background:transparent;cursor:pointer;padding:0;flex-shrink:0;margin-top:4px;transition:background .15s,border-color .15s,transform .15s}.todo-priority:hover{transform:scale(1.2)}.todo-priority.p-important{background:var(--orange);border-color:var(--orange)}.todo-priority.p-urgent{background:var(--red);border-color:var(--red)}.todo-today-toggle{background:none;border:none;color:#ffffff73;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s,transform .15s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.todo-today-toggle svg{display:block}.todo-today-toggle:hover{color:#fff;transform:scale(1.15)}.todo-today-toggle.is-today{color:#6ec1ff}@media (max-width: 1380px){.app-layout,.app-layout.has-notes{grid-template-columns:1fr}.todo-sidebar,.chantier-sidebar,.chantier-notes-panel,.dates-sidebar{position:relative;height:auto;border-left:none;border-bottom:1px solid var(--border)}.todo-sidebar-content,.chantier-sidebar-content,.dates-sidebar-content{height:auto}}.chantier-sidebar{position:sticky;top:52px;height:calc(100vh - 52px);background:#0d0d12;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;overflow:hidden;color:#e7e7ee}.chantier-sidebar-content{flex:1;min-height:0;overflow-y:auto;padding:0 18px 18px;display:flex;flex-direction:column;gap:12px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.chantier-sidebar-content::-webkit-scrollbar{width:8px}.chantier-sidebar-content::-webkit-scrollbar-track{background:transparent}.chantier-sidebar-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.chantier-sidebar-content::-webkit-scrollbar-thumb:hover{background:#ffffff47}.chantier-sidebar.is-folded .chantier-sidebar-content{display:none}.chantier-sidebar.is-folded{cursor:pointer}.chantier-sidebar.is-folded:hover{background:#15151d}.chantier-add-form{margin:0}.chantier-add-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;font-family:var(--sans);font-size:13px;color:#f5f5fb;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.chantier-add-input:focus{border-color:var(--blue);background:#ffffff1a;box-shadow:0 0 0 3px #2c37cc40}.chantier-add-input::placeholder{color:#fff6}.chantier-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:#ffffff0a;border-radius:8px;padding:3px}.chantier-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:transparent;border:none;border-radius:6px;padding:6px 4px;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:600;color:#ffffff8c;transition:background .15s,color .15s;line-height:1.1}.chantier-tab:hover{color:#fff}.chantier-tab.is-active{background:#2a2a32;color:#fff}.chantier-tab-label{white-space:nowrap}.chantier-tab-count{font-size:9px;font-weight:700;color:#ffffff73;font-variant-numeric:tabular-nums}.chantier-tab.is-active .chantier-tab-count{color:#ffffffb3}.chantier-list{display:flex;flex-direction:column;gap:6px}.chantier-empty{font-size:11px;color:#fff6;font-style:italic;margin:0;padding:8px 4px}.chantier-card{background:var(--card);border:1px solid var(--border);border-left:3px solid transparent;border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:box-shadow .15s,outline-color .15s;outline:2px solid transparent;outline-offset:-2px}.chantier-card:hover{box-shadow:0 2px 8px #0000002e}.chantier-card.is-selected{outline-color:var(--blue);box-shadow:0 2px 12px #2c37cc59}.chantier-card.s-done{background:var(--bg)}.chantier-card.s-done .chantier-title{color:var(--faint);text-decoration:line-through}.chantier-card.s-in-progress{border-color:#2c37cc40}.chantier-state{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);background:transparent;cursor:pointer;padding:0;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;line-height:1;font-size:10px;font-weight:800;color:#fff;transition:background .15s,border-color .15s,transform .15s}.chantier-state:hover{transform:scale(1.15)}.chantier-state.s-in-progress{background:var(--blue);border-color:var(--blue)}.chantier-state.s-in-progress:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.chantier-state.s-done{background:#92d050;border-color:#92d050}.chantier-state.s-done:before{content:"✓"}.chantier-card-row{display:flex;align-items:flex-start;gap:8px}.chantier-title{flex:1;font-size:13px;font-weight:600;color:var(--ink);line-height:1.3;cursor:text;word-break:break-word;min-width:0}.chantier-title-input{flex:1;font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:var(--blue-lt);border:1px solid var(--blue);border-radius:4px;padding:1px 5px;outline:none;box-shadow:0 0 0 3px #2c37cc1f;min-width:0}.chantier-priority{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--border);background:transparent;cursor:pointer;padding:0;flex-shrink:0;margin-top:3px;transition:background .15s,border-color .15s,transform .15s}.chantier-priority:hover{transform:scale(1.2)}.chantier-priority.p-important{background:var(--orange);border-color:var(--orange)}.chantier-priority.p-urgent{background:var(--red);border-color:var(--red)}.chantier-link-select{width:100%;background:transparent;border:none;font-family:var(--sans);font-size:11px;color:var(--muted);cursor:pointer;padding:0;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;text-overflow:ellipsis}.chantier-link-select:focus{color:var(--blue)}.chantier-card-actions{display:flex;align-items:center;gap:2px;margin-top:2px;opacity:0;transition:opacity .15s}.chantier-card:hover .chantier-card-actions,.chantier-card:focus-within .chantier-card-actions{opacity:1}.chantier-action{width:22px;height:22px;border:none;background:transparent;border-radius:4px;color:var(--muted);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:background .15s,color .15s}.chantier-action:hover:not(:disabled){background:var(--bg2);color:var(--ink)}.chantier-action:disabled{opacity:.25;cursor:not-allowed}.chantier-action.chantier-remove{margin-left:auto}.chantier-action.chantier-remove:hover:not(:disabled){background:var(--red-lt);color:var(--red)}.chantier-sidebar .sidebar-fold-toggle,.todo-sidebar .sidebar-fold-toggle{border-top:1px solid rgba(255,255,255,.08);color:#ffffff80}.chantier-sidebar .sidebar-fold-toggle:hover,.todo-sidebar .sidebar-fold-toggle:hover{background:#ffffff0d;color:#fff}.batch-tab{display:flex;flex-direction:column;gap:10px}.batch-add-btn{align-self:flex-start;background:transparent;border:1px dashed rgba(255,255,255,.2);border-radius:6px;padding:6px 12px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;color:#ffffffa6;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.batch-add-btn:hover{border-color:var(--blue);color:#fff;background:#2c37cc33}.batch-section{display:flex;flex-direction:column;gap:6px;padding:10px;background:#ffffffe6;border-radius:8px;border:1px solid rgba(255,255,255,.7)}.batch-section.is-active{border-color:var(--blue);background:var(--blue-lt)}.batch-section.is-completed{opacity:.65}.batch-active-pill{font-family:var(--heading);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:#ffffffb3;padding:2px 8px;border-radius:99px;flex-shrink:0}.batch-completed-header{display:flex;align-items:center;gap:10px;margin:12px 0 4px;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff6;flex-shrink:0}.batch-completed-line{flex:1;height:1px;background:#ffffff1f}.batch-completed-label{flex-shrink:0;white-space:nowrap}.batch-header{display:flex;align-items:center;gap:8px}.batch-number{font-family:var(--heading);font-size:12px;font-weight:800;color:var(--blue);letter-spacing:.04em;flex-shrink:0;font-variant-numeric:tabular-nums}.batch-title{flex:1;font-size:13px;font-weight:700;color:var(--ink);cursor:text;word-break:break-word;min-width:0}.batch-title-input{flex:1;font:inherit;font-size:13px;font-weight:700;color:var(--ink);background:var(--card);border:1px solid var(--blue);border-radius:4px;padding:1px 5px;outline:none;box-shadow:0 0 0 3px #2c37cc26;min-width:0}.batch-remove{width:22px;height:22px;border:none;background:transparent;border-radius:4px;color:var(--faint);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;flex-shrink:0;transition:background .15s,color .15s,opacity .15s;opacity:0}.batch-section:hover .batch-remove{opacity:1}.batch-remove:hover{background:var(--red-lt);color:var(--red)}.batch-empty{font-size:11px;color:var(--faint);font-style:italic;margin:0;padding:4px 0}.sidebar-fold-toggle{flex-shrink:0;margin-top:auto;border:none;background:transparent;border-top:1px solid var(--border);color:var(--muted);cursor:pointer;padding:10px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.sidebar-fold-toggle:hover{background:var(--bg2);color:var(--blue)}.sidebar-fold-toggle svg{display:block}@media (max-width: 1280px){.sidebar-fold-toggle{display:none}}.section{padding:72px 48px;max-width:1100px;margin:0 auto}.section+.section{border-top:1px solid var(--border)}.vision-hero{padding:72px 48px 64px;max-width:1100px;margin:0 auto;container-type:inline-size}.pill{display:inline-flex;align-items:center;gap:8px;background:var(--blue-lt);border:1px solid rgba(44,55,204,.25);border-radius:99px;padding:5px 14px 5px 8px}.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0}.pill>span{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}.vision-pill{margin-bottom:32px}.vision-headline{font-family:var(--serif);font-size:clamp(20px,4cqw,32px);font-weight:500;line-height:1.3;letter-spacing:-.01em;color:var(--ink);margin-bottom:20px;text-wrap:pretty}.vision-pillars{display:flex;gap:10px;margin-bottom:48px;flex-wrap:wrap}.vision-pillar{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:13px;font-weight:500;box-shadow:0 1px 3px #0000000a}.image-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:48px}.image-placeholder{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:8px;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--faint);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;text-align:center;padding:20px;cursor:pointer;overflow:hidden;transition:border-color .2s}.image-placeholder svg{opacity:.35}.image-placeholder img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.image-remove{position:absolute;top:8px;right:8px;background:#0000008c;color:#fff;border:none;width:26px;height:26px;border-radius:50%;font-size:16px;font-weight:400;cursor:pointer;opacity:0;transition:opacity .15s,background .15s;display:flex;align-items:center;justify-content:center;line-height:1;z-index:1}.image-placeholder:hover .image-remove{opacity:1}.image-remove:hover{background:var(--red)}.quotes-list{display:flex;flex-direction:column}.quote-item{padding:18px 0}.quote-item p{font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.65;color:var(--muted);text-wrap:pretty}.quote-item .quote-author{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-top:6px}.quote-featured{position:relative;border-left:3px solid var(--blue);padding:20px 56px 20px 28px;background:var(--blue-lt);border-radius:0 8px 8px 0;margin-top:8px}.quote-featured p{font-size:clamp(17px,2vw,22px);color:var(--ink);font-style:italic;line-height:1.5}.quote-refresh{position:absolute;top:12px;right:12px;background:#ffffff80;border:1px solid rgba(44,55,204,.25);border-radius:50%;width:30px;height:30px;font-size:14px;color:var(--blue);cursor:pointer;opacity:.55;transition:opacity .15s,background .15s,transform .3s;display:flex;align-items:center;justify-content:center;line-height:1}.quote-featured:hover .quote-refresh{opacity:1}.quote-refresh:hover{background:#ffffffd9;transform:rotate(90deg)}.quote-refresh:active{transform:rotate(180deg)}.hero-row{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start;margin-bottom:48px}.hero-left{display:flex;flex-direction:column;gap:24px}.hero-row .vision-headline,.hero-row .vision-pillars{margin-bottom:0}.now-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px #0000000a;transition:border-color .15s,box-shadow .15s,transform .15s}.now-card-clickable{cursor:pointer}.now-card-clickable:active{transform:translateY(1px)}.now-card-clickable:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.now-card-top{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.now-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.now-line+.now-line{margin-top:2px}.now-line-label-year{font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue)}.now-line-pct-year{font-family:var(--heading);font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1}.now-line-label-q{font-size:10px;font-weight:500;color:var(--muted)}.now-line-pct-q{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.now-rows{display:flex;flex-direction:column;gap:4px}.now-row{display:grid;grid-template-columns:6px 1fr 50px 32px;align-items:center;gap:8px;font-size:11px}.now-row+.now-row.is-kr{margin-top:0}.now-row:not(.is-kr)+.now-row:not(.is-kr),.now-row.is-kr+.now-row:not(.is-kr){margin-top:6px}.now-row-dot{width:6px;height:6px;border-radius:50%}.now-row-name{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.now-row-track{height:3px;background:var(--bg3);border-radius:99px;overflow:hidden}.now-row-fill{height:100%;border-radius:99px}.now-row-pct{font-weight:700;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.now-row.is-kr{grid-template-columns:1fr 50px 32px;padding-left:14px;font-size:10px}.now-row.is-kr .now-row-name{color:var(--faint);font-weight:400}.now-row.is-kr .now-row-pct{color:var(--muted);font-weight:600}@media (max-width: 900px){.hero-row{grid-template-columns:1fr}}.section-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:8px}.section-title{font-family:var(--serif);font-size:clamp(22px,2.5vw,30px);font-weight:500;letter-spacing:-.01em;line-height:1.2;margin-bottom:40px;text-wrap:pretty;color:var(--ink)}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:48px}.journal-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px 22px;box-shadow:0 1px 4px #0000000a}.journal-q{font-size:11px;font-weight:600;color:var(--faint);margin-bottom:8px;line-height:1.4;text-wrap:pretty}.journal-a{font-family:var(--serif);font-size:14px;line-height:1.65;color:var(--ink);font-style:italic;text-wrap:pretty}.obj-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.obj-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:22px;position:relative;overflow:hidden;transition:box-shadow .2s,border-color .2s;box-shadow:0 1px 4px #0000000a}.obj-card:hover{box-shadow:0 4px 16px #00000012}.obj-card.obj-1{border-top:2px solid var(--green)}.obj-card.obj-2{border-top:2px solid var(--orange)}.obj-card.obj-3{border-top:2px solid var(--blue)}.obj-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.obj-num{font-size:9px;letter-spacing:.16em;font-weight:700;text-transform:uppercase}.obj-card.obj-1 .obj-num{color:var(--green)}.obj-card.obj-2 .obj-num{color:var(--orange)}.obj-card.obj-3 .obj-num{color:var(--blue)}.obj-pct-badge{font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--blue-lt);color:var(--blue)}.obj-card.obj-2 .obj-pct-badge{background:var(--orange-lt);color:var(--orange)}.obj-title{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:5px;text-wrap:pretty;color:var(--ink)}.obj-desc{font-size:12px;color:var(--muted);line-height:1.45}.quarter-hero{position:relative;padding:36px 0 24px;margin-bottom:32px;overflow:clip}.quarter-hero-watermark{position:absolute;top:50%;left:-4px;transform:translateY(-55%);font-family:var(--heading);font-size:clamp(72px,10vw,110px);font-weight:800;line-height:1;color:var(--bg3);letter-spacing:-.04em;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap}.quarter-hero-content{position:relative;z-index:1}.quarter-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--blue)}.quarter-title{font-family:var(--heading);font-size:clamp(28px,4vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}.quarter-obj-pills{display:flex;gap:8px;flex-wrap:wrap}.q-obj-pill{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:9px 14px;font-size:12px;box-shadow:0 1px 3px #0000000a}.q-obj-pill .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.q-obj-pill .pill-name{color:var(--muted);font-size:12px}.q-obj-pill .pill-pct{font-family:var(--heading);font-weight:800;font-size:17px;letter-spacing:-.01em;margin-left:2px}.quarter-toggle{width:28px;height:28px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;transition:transform .25s,background .2s;flex-shrink:0}.quarter-section.expanded .quarter-toggle{background:var(--blue-lt);color:var(--blue)}.quarter-section{padding-bottom:40px}.quarter-section:not(.expanded){padding-bottom:32px}.kr-block{margin-bottom:28px}.kr-block-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.kr-block-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.kr-block-obj-title{font-size:10px;letter-spacing:.1em;font-weight:700;text-transform:uppercase}.kr-table{width:100%;border-collapse:collapse}.kr-table thead tr{border-bottom:1px solid var(--border)}.kr-table thead th{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--faint);padding:0 0 10px;text-align:right}.kr-table thead th:first-child{text-align:left}.kr-table tbody tr{border-bottom:1px solid var(--bg3)}.kr-table tbody tr:last-child{border-bottom:none}.kr-table tbody td{padding:10px 0;vertical-align:top;font-size:13px;color:var(--ink)}.kr-table tbody td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);width:70px}.kr-table .td-current{font-weight:600;color:var(--ink)!important}.kr-table .td-progress{width:150px!important;padding-left:20px}.kr-bar-wrap{display:flex;align-items:center;gap:8px}.kr-bar-track{flex:1;height:4px;background:var(--bg3);border-radius:99px;overflow:hidden}.kr-bar-fill{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.4,0,.2,1)}.kr-bar-pct{font-size:11px;font-weight:700;min-width:34px;text-align:right;color:var(--ink)}.kr-section-sep{height:1px;background:var(--border);margin:28px 0}.kr-table .td-actions{width:32px;padding:0 0 0 8px!important;text-align:right!important;vertical-align:middle}.kr-delete-btn{background:none;border:none;color:var(--faint);font-size:18px;font-weight:400;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px;opacity:0;transition:opacity .15s,background .15s,color .15s}.kr-row:hover .kr-delete-btn,.kr-delete-btn:focus-visible{opacity:1}.kr-delete-btn:hover{background:var(--red-lt);color:var(--red)}.kr-add-btn{margin-top:12px;background:none;border:1px dashed var(--border);border-radius:6px;padding:8px 16px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.kr-add-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt)}.quarters-layout{display:grid;grid-template-columns:1fr 220px;align-items:start;max-width:1100px;margin:0 auto;padding:0 48px;border-top:1px solid var(--border)}.quarters-main{min-width:0}.quarters-main .section{max-width:100%;padding-left:0;padding-right:0;overflow:clip}.quarters-main .section+.section{border-top:1px solid var(--border)}.obj-sidebar{position:sticky;top:64px;margin:40px 0 0 24px;padding:18px;background:#0a0a0a;border-radius:12px;display:flex;flex-direction:column;gap:8px;align-self:start;box-shadow:0 4px 16px #00000038}.obj-sidebar-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#fff;margin-bottom:4px;padding-left:4px}.obj-sidebar-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 14px;box-shadow:0 1px 3px #0000000a;transition:box-shadow .2s}.obj-sidebar-card:hover{box-shadow:0 3px 12px #00000040}.obj-sidebar-card.s-obj-1{border-left:2px solid var(--green)}.obj-sidebar-card.s-obj-2{border-left:2px solid var(--orange)}.obj-sidebar-card.s-obj-3{border-left:2px solid var(--blue)}.s-obj-title{font-size:11px;font-weight:600;line-height:1.35;margin-bottom:8px;text-wrap:pretty;color:var(--ink)}.s-bar-row{display:flex;align-items:center;gap:6px}.s-bar-track{flex:1;height:3px;background:var(--bg3);border-radius:99px;overflow:hidden}.s-bar-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.4,0,.2,1)}.s-bar-pct{font-size:10px;font-weight:700;min-width:28px;text-align:right;color:var(--ink)}.q-journal{margin-top:36px;border-top:1px solid var(--border);padding-top:28px}.q-journal-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;cursor:pointer;-webkit-user-select:none;user-select:none}.q-journal-header .j-eyebrow{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--blue)}.q-journal-header .j-title{font-size:14px;font-weight:600;flex:1;color:var(--ink)}.q-journal-toggle{width:20px;height:20px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:10px;transition:transform .25s,background .2s;flex-shrink:0;margin-left:auto}.q-journal-toggle.open{transform:rotate(180deg);background:var(--blue-lt);color:var(--blue)}.q-journal-body{display:grid;grid-template-columns:1fr 1fr;gap:12px}.q-journal-q{font-size:11px;font-weight:600;color:var(--faint);margin-bottom:5px;line-height:1.4}.q-journal-textarea{width:100%;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:10px 12px;color:var(--ink);font-family:var(--serif);font-size:13px;font-style:italic;line-height:1.6;resize:vertical;min-height:80px;outline:none;transition:border-color .2s,box-shadow .2s}.q-journal-textarea::placeholder{color:var(--faint)}.q-journal-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2c37cc1a}.q-journal-notes-item{grid-column:1 / -1}.q-journal-save-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}.q-journal-saved{font-size:11px;color:var(--blue);opacity:0;transition:opacity .4s}.q-journal-saved.show{opacity:1}.q-journal-btn{background:var(--blue-lt);border:1px solid rgba(44,55,204,.25);border-radius:6px;color:var(--blue);font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;cursor:pointer;transition:background .15s}.q-journal-btn:hover{background:#d8dbff}.editable-text{cursor:text;border-radius:3px;outline:1px dashed transparent;outline-offset:3px;transition:outline-color .15s,background .15s}.editable-text:hover{outline-color:#2c37cc59;background:#2c37cc0a}.editable-text-empty{color:var(--faint);font-style:italic;font-weight:400}.kr-comment{font-size:11px;color:var(--muted);font-style:italic;margin-top:4px;line-height:1.45}.kr-comment.editable-text-empty{color:var(--faint)}.editable-text-input{font:inherit;color:var(--ink);background:var(--blue-lt);border:1px solid var(--blue);border-radius:4px;padding:2px 6px;margin:-3px -7px;outline:none;box-shadow:0 0 0 3px #2c37cc1f;width:100%;display:inline-block}.editable-text-textarea{display:block;resize:vertical;line-height:inherit;min-height:2.4em}.td-editable{cursor:text;position:relative}.td-editable:hover .td-edit-val{background:var(--blue-lt);border-radius:4px;outline:1px solid var(--blue)}.td-edit-val{display:inline-block;padding:2px 6px;border-radius:4px;transition:background .15s;min-width:28px;text-align:right}.td-edit-input{width:64px;background:var(--blue-lt);border:1px solid var(--blue);border-radius:4px;padding:2px 6px;color:var(--ink);font-family:var(--sans);font-size:13px;font-weight:600;text-align:right;outline:none;box-shadow:0 0 0 3px #2c37cc1f}.year-mini-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.year-mini-pill{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:12px;box-shadow:0 1px 2px #00000008}.year-mini-pill .ymp-name{color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.year-mini-pill .ymp-pct{font-weight:700;color:var(--ink);margin-left:2px}.year-mini-pill.obj-1{border-left:3px solid var(--green)}.year-mini-pill.obj-2{border-left:3px solid var(--orange)}.year-mini-pill.obj-3{border-left:3px solid var(--blue)}.add-year-wrap{border-top:1px solid var(--border);padding:48px;display:flex;justify-content:center}.add-year-btn{display:flex;align-items:center;gap:8px;background:var(--card);border:2px dashed var(--border);border-radius:10px;padding:14px 32px;font-family:var(--heading);font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s,background .2s;letter-spacing:.02em}.add-year-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt)}.app-footer{text-align:center;padding:40px 48px;color:var(--faint);font-size:11px;letter-spacing:.06em;border-top:1px solid var(--border)}.year-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;cursor:pointer}.year-section-header .quarter-toggle{margin-top:6px}.chantier-notes-panel{position:sticky;top:52px;height:calc(100vh - 52px);background:var(--card);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-width:0}.notes-header{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.notes-title{flex:1;font-family:var(--heading);font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.25;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;border-radius:4px;padding:2px 6px;margin:0 0 0 -6px;transition:background .15s,outline-color .15s;outline:1px dashed transparent;outline-offset:1px}.notes-title:hover{background:var(--bg);outline-color:#2c37cc4d}.notes-title-input{flex:1;font-family:var(--heading);font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.25;color:var(--ink);background:var(--blue-lt);border:1px solid var(--blue);border-radius:4px;padding:2px 6px;margin-left:-6px;outline:none;box-shadow:0 0 0 3px #2c37cc26;min-width:0}.notes-close{width:28px;height:28px;border:none;background:transparent;border-radius:6px;color:var(--muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;flex-shrink:0;transition:background .15s,color .15s}.notes-close:hover{background:var(--bg2);color:var(--ink)}.notes-toolbar{display:flex;align-items:center;gap:2px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;flex-wrap:wrap}.notes-toolbar-btn{background:transparent;border:1px solid transparent;border-radius:4px;padding:4px 9px;cursor:pointer;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--muted);min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s;line-height:1}.notes-toolbar-btn:hover{background:var(--card);color:var(--ink);border-color:var(--border)}.notes-toolbar-btn:active{background:var(--blue-lt);color:var(--blue)}.notes-toolbar-sep{width:1px;height:18px;background:var(--border);margin:0 6px}.notes-editor{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 36px;font-family:var(--sans);font-size:14px;line-height:1.65;color:var(--ink);outline:none;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.notes-editor::-webkit-scrollbar{width:8px}.notes-editor::-webkit-scrollbar-track{background:transparent}.notes-editor::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}.notes-editor::-webkit-scrollbar-thumb:hover{background:#00000038}.notes-editor:empty:before{content:attr(data-placeholder);color:var(--faint);font-style:italic;pointer-events:none}.notes-editor h1,.notes-editor h2,.notes-editor h3{font-family:var(--heading);letter-spacing:-.01em;line-height:1.2;margin:1.1em 0 .4em;color:var(--ink)}.notes-editor h1{font-size:22px;font-weight:800}.notes-editor h2{font-size:18px;font-weight:800}.notes-editor h3{font-size:15px;font-weight:700}.notes-editor p{margin:.6em 0}.notes-editor ul,.notes-editor ol{padding-left:24px;margin:.6em 0}.notes-editor li{margin:.2em 0}.notes-editor strong{font-weight:700}.notes-editor em{font-style:italic}.notes-editor u{text-decoration:underline}.notes-editor a{color:var(--blue);text-decoration:underline;cursor:pointer;word-break:break-word}.notes-editor a:hover{color:var(--navy)}.dates-sidebar{position:sticky;top:52px;height:calc(100vh - 52px);background:#1c1c22;border-left:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;overflow:hidden;color:#e7e7ee}.dates-sidebar-content{flex:1;min-height:0;overflow-y:auto;padding:0 14px 14px;display:flex;flex-direction:column;gap:14px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.dates-sidebar-content::-webkit-scrollbar{width:8px}.dates-sidebar-content::-webkit-scrollbar-track{background:transparent}.dates-sidebar-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.dates-sidebar-content::-webkit-scrollbar-thumb:hover{background:#ffffff47}.dates-sidebar.is-folded .dates-sidebar-content{display:none}.dates-sidebar.is-folded{cursor:pointer}.dates-sidebar.is-folded:hover{background:#25252c}.dates-add-form{display:flex;flex-direction:column;gap:6px}.dates-add-date,.dates-add-desc{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:7px 10px;font-family:var(--sans);font-size:12px;color:#f5f5fb;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.dates-add-date{color-scheme:dark}.dates-add-date::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.dates-add-date:focus,.dates-add-desc:focus{border-color:var(--blue);background:#ffffff1a;box-shadow:0 0 0 3px #2c37cc40}.dates-add-desc::placeholder{color:#fff6}.dates-section{display:flex;flex-direction:column;gap:4px}.dates-section-title{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#ffffff8c;margin:0 0 4px}.dates-empty{font-size:11px;color:#fff6;font-style:italic;margin:0;padding:4px 0}.dates-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.date-item{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;background:#ffffff08;border-left:2px solid rgba(255,255,255,.1);outline:1px solid transparent;cursor:pointer;transition:background .15s,outline-color .15s}.date-item.is-selected{outline-color:var(--blue);background:#2c37cc2e}.date-item:hover{background:#ffffff12}.date-item.is-today{border-left-color:var(--orange);background:#ff98751a}.date-item.is-soon{border-left-color:var(--blue)}.date-item.is-past{opacity:.45}.date-item-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.date-item-date{font-family:var(--heading);font-size:11px;font-weight:800;color:#fff;letter-spacing:.04em;text-transform:uppercase}.date-item.is-today .date-item-date{color:var(--orange)}.date-item-relative{font-size:10px;color:#ffffff73;font-variant-numeric:tabular-nums}.date-item-desc{font-size:12px;color:#ffffffe0;line-height:1.4;word-break:break-word;cursor:text;border-radius:3px;padding:1px 2px;margin:0 -2px}.date-item-desc:hover{background:#ffffff0d}.date-item-desc-input{font:inherit;font-size:12px;font-family:var(--sans);background:#ffffff1a;border:1px solid var(--blue);border-radius:4px;padding:1px 5px;color:#f5f5fb;outline:none;box-shadow:0 0 0 3px #2c37cc40;width:100%}.date-item-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;background:transparent;border:none;color:#fff6;cursor:pointer;border-radius:4px;font-size:14px;line-height:1;opacity:0;transition:opacity .15s,background .15s,color .15s}.date-item:hover .date-item-remove{opacity:1}.date-item-remove:hover{background:#ff466433;color:var(--red)}.dates-past-toggle{display:flex;align-items:center;gap:6px;background:transparent;border:none;padding:4px 0;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#ffffff73;cursor:pointer;transition:color .15s;margin-bottom:4px}.dates-past-toggle:hover{color:#ffffffbf}.dates-past-chevron{display:inline-block;transition:transform .2s}.dates-past-chevron.is-open{transform:rotate(90deg)}.data-menu-fab{position:fixed;top:10px;right:14px;width:32px;height:32px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ffffffb3;font-size:18px;font-weight:800;cursor:pointer;z-index:200;display:flex;align-items:center;justify-content:center;line-height:1;padding:0 0 4px;transition:background .15s,color .15s,border-color .15s}.data-menu-fab:hover{background:#ffffff2e;color:#fff;border-color:#ffffff4d}.data-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199}.data-menu-popover{position:fixed;top:52px;right:14px;width:260px;background:#1c1c22;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px;box-shadow:0 8px 24px #0006;z-index:201;display:flex;flex-direction:column;gap:4px}.data-menu-title{font-family:var(--heading);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff9;padding:4px 8px 8px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}.data-menu-action{background:transparent;border:none;color:#f0f0f5;font-family:var(--sans);font-size:13px;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .15s,color .15s}.data-menu-action:hover{background:#ffffff14;color:#fff}.data-menu-icon{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:4px;background:#2c37cc4d;color:#fff;font-size:12px;font-weight:700}.data-menu-hint{font-size:11px;color:#ffffff73;line-height:1.5;margin:8px 10px 4px}.data-menu-hint code{background:#ffffff14;padding:1px 5px;border-radius:3px;font-size:10px}.data-menu-action-danger{color:#ff4664d9}.data-menu-action-danger:hover{background:#ff46641f;color:#ff4664}.data-menu-action-danger .data-menu-icon{background:#ff466433}.data-menu-status-row{display:flex;align-items:center;gap:8px;padding:6px 10px 8px;font-size:12px;color:#ffffffb3}.data-menu-dot,.data-menu-fab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.data-menu-fab-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border:1.5px solid #0d0d12}.data-menu-dot.is-disabled,.data-menu-fab-dot.is-disabled{background:#ffffff40}.data-menu-dot.is-idle,.data-menu-fab-dot.is-idle{background:#ffffff80}.data-menu-dot.is-saving,.data-menu-fab-dot.is-saving{background:var(--orange);animation:data-menu-pulse 1s ease-in-out infinite}.data-menu-dot.is-saved,.data-menu-fab-dot.is-saved{background:#92d050}.data-menu-dot.is-error,.data-menu-fab-dot.is-error{background:var(--red)}@keyframes data-menu-pulse{0%,to{opacity:1}50%{opacity:.35}}.sync-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px}.sync-dialog{background:#fff;border-radius:12px;width:100%;max-width:440px;padding:28px;box-shadow:0 8px 28px #00000052;color:var(--ink)}.sync-dialog-title{font-family:var(--heading);font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0 0 12px}.sync-dialog-text{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 18px}.sync-dialog-text code{background:var(--bg);padding:1px 6px;border-radius:4px;font-size:12px}.sync-dialog-form{display:flex;flex-direction:column;gap:12px}.sync-dialog-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-family:var(--sans);font-size:14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.sync-dialog-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2c37cc26}.sync-dialog-error{font-size:12px;color:var(--red);margin:0;padding:8px 10px;background:var(--red-lt);border-radius:6px}.sync-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.sync-dialog-actions-stacked{flex-direction:column;align-items:stretch}.sync-dialog-btn{background:transparent;border:1px solid var(--border);border-radius:6px;padding:9px 16px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.sync-dialog-btn:hover:not(:disabled){background:var(--bg2)}.sync-dialog-btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.sync-dialog-btn-primary:hover:not(:disabled){background:#1f29a3;border-color:#1f29a3}.sync-dialog-btn-ghost{border-color:transparent;color:var(--muted)}.sync-dialog-btn:disabled{opacity:.5;cursor:not-allowed}
