*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font: "Karbon", Arial, sans-serif;--lcr-brand-900: #4A5662;--lcr-navy: #243142;--lcr-brand-800: #6B7B88;--lcr-brand-700: #8B9BA8;--lcr-brand-600: #A1AEB9;--lcr-brand-500: #B1BDC7;--lcr-brand-400: #C3CDD5;--lcr-brand-300: #ECEEF1;--lcr-brand-200: #E5EAED;--lcr-brand-100: #F2F4F6;--lcr-brand-50: #F8F9FA;--lcr-ink-800: #566673;--lcr-ink-700: #5C6B78;--lcr-line-strong: #869299;--lcr-secondary-800: #885C3F;--lcr-secondary-700: #9C765C;--lcr-secondary-300: #EEE2D9;--lcr-secondary-100: #FAF6F3;--color-construction: #5B9BD5;--color-presales: #7FB83D;--color-fnf: #9DBF6A;--color-unconfirmed: #F59E0B;--priority-glow-ring: #DC2626;--priority-glow: rgba(220, 38, 38, .18);--color-header-bg: var(--lcr-brand-200);--color-group-bg: var(--lcr-brand-100);--color-row-hover: var(--lcr-brand-200);--color-row-selected: var(--lcr-secondary-100);--color-border: #CDD4DA;--color-border-group: #B1BDC7;--color-bg: #ffffff;--color-surface: var(--lcr-brand-100);--color-text: #000000;--color-text-muted: #3D4A54;--color-primary: var(--lcr-navy);--color-danger: #C4392E;--xls-head-bg: #000000;--xls-head-fg: #FFFFFF;--xls-ink: #000000;--xls-rule: #000000;--xls-hair: #9A9A9A;--xls-own-bg: #E8E8E8;--xls-hover-bg: #F2F2F2;--xls-font: Arial, "Helvetica Neue", Helvetica, sans-serif;--color-success: #2E7D4F;--color-success-bg: #E8F5ED;--color-warning: #C27E1A;--color-warning-text: #96610D;--color-warning-bg: #FFF4E0;--color-info: var(--lcr-brand-700);--color-info-bg: var(--lcr-brand-100);--color-text-secondary: #3D4A54;--color-text-tertiary: #5A6872;--radius-sm: .5rem;--radius-md: .875rem;--radius-lg: 1.25rem;--radius-xl: 1.5rem;--radius-2xl: 1.75rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 8px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 20px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.04);--shadow-bento: 0 0 0 1px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.06);--shadow-bento-hover: 0 0 0 1px rgba(0,0,0,.1), 0 8px 24px rgba(0,0,0,.12);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--z-base: 0;--z-sticky: 5;--z-topbar: 100;--z-dropdown: 100;--z-modal: 1000;--z-popover: 2000;--col-name: 200px;--col-quarter: 80px;--col-sales-bar: 210px;--cell-height: 24px;--project-row-height: 35px;--cell-height-mob: 48px;--topbar-h: 56px;--glass-track-bg: linear-gradient(180deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .28) 100%);--glass-track-border: 1px solid rgba(255, 255, 255, .55);--glass-track-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), inset 0 -1px 0 rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .06);--glass-track-backdrop: blur(14px) saturate(180%);--glass-pill-bg: linear-gradient(180deg, rgba(255, 255, 255, .98) 0%, rgba(255, 255, 255, .86) 100%);--glass-pill-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(15, 23, 42, .08), 0 1px 3px rgba(15, 23, 42, .12), 0 0 0 .5px rgba(15, 23, 42, .08);--glass-pill-shadow-hover: inset 0 1px 0 rgba(255, 255, 255, 1), inset 0 -1px 0 rgba(15, 23, 42, .1), 0 2px 6px rgba(15, 23, 42, .14), 0 0 0 .5px rgba(15, 23, 42, .1);--glass-surface-bg: linear-gradient(180deg, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .62) 100%);--glass-surface-border: 1px solid rgba(255, 255, 255, .6);--glass-surface-backdrop: blur(20px) saturate(180%);--glass-surface-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 10px 26px -16px rgba(15, 23, 42, .4);--glass-surface-shadow-hover: inset 0 1px 0 rgba(255, 255, 255, .9), 0 16px 36px -16px rgba(15, 23, 42, .5);--glass-elevated-bg: linear-gradient(180deg, rgba(255, 255, 255, .88) 0%, rgba(255, 255, 255, .74) 100%);--glass-elevated-border: 1px solid rgba(255, 255, 255, .65);--glass-elevated-backdrop: blur(28px) saturate(190%);--glass-elevated-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 24px 60px -20px rgba(15, 23, 42, .45), 0 8px 24px -16px rgba(15, 23, 42, .3);--glass-menu-bg: linear-gradient(180deg, rgba(252, 253, 254, .95) 0%, rgba(243, 246, 249, .9) 100%);--glass-menu-border: 1px solid rgba(255, 255, 255, .85);--glass-menu-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 0 18px 40px -12px rgba(15, 23, 42, .3), 0 4px 12px -6px rgba(15, 23, 42, .2);--glass-pop-bg: linear-gradient(180deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .84) 100%);--glass-btn-primary-bg: linear-gradient(180deg, rgba(58, 74, 95, .98) 0%, rgba(36, 49, 66, .98) 52%, rgba(29, 40, 55, .98) 100%);--glass-btn-primary-bg-hover: linear-gradient(180deg, rgba(68, 85, 107, .99) 0%, rgba(40, 54, 72, .99) 100%);--glass-btn-primary-border: 1px solid rgba(255, 255, 255, .4);--glass-btn-primary-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .55), inset 0 -1px 1px rgba(15, 23, 42, .18), 0 1px 0 rgba(255, 255, 255, .5), 0 8px 18px -6px rgba(36, 49, 66, .5);--glass-btn-primary-shadow-hover: inset 0 1.5px 0 rgba(255, 255, 255, .6), inset 0 -1px 1px rgba(15, 23, 42, .2), 0 12px 26px -8px rgba(36, 49, 66, .6);--glass-btn-secondary-bg: linear-gradient(180deg, rgba(255, 255, 255, .85) 0%, rgba(232, 237, 241, .7) 100%);--glass-btn-secondary-bg-hover: linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(226, 232, 237, .82) 100%);--glass-btn-secondary-border: 1px solid rgba(15, 23, 42, .12);--glass-btn-secondary-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .95), inset 0 -1px 1px rgba(15, 23, 42, .04), 0 4px 12px -6px rgba(15, 23, 42, .22);--glass-btn-danger-bg: linear-gradient(180deg, rgba(206, 72, 61, .96) 0%, rgba(196, 57, 46, .96) 100%);--glass-btn-danger-bg-hover: linear-gradient(180deg, rgba(196, 57, 46, .98) 0%, rgba(168, 47, 37, .98) 100%);--glass-btn-danger-border: 1px solid rgba(255, 255, 255, .32);--glass-btn-danger-shadow: inset 0 1px 0 rgba(255, 255, 255, .32), 0 6px 16px -6px rgba(196, 57, 46, .5);--glass-btn-backdrop: blur(10px) saturate(160%);--glass-input-bg: rgba(255, 255, 255, .45);--glass-input-bg-focus: rgba(255, 255, 255, .78);--glass-input-border: 1px solid rgba(15, 23, 42, .14);--glass-input-backdrop: blur(8px) saturate(150%);--glass-input-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 2px 4px rgba(15, 23, 42, .05);--glass-input-focus-ring: 0 0 0 3px rgba(139, 155, 168, .32)}.skip-nav{position:absolute;top:-100px;left:8px;z-index:9999;padding:8px 16px;background:var(--lcr-navy);color:#fff;border-radius:var(--radius-md);font-weight:600;text-decoration:none;transition:top .2s}.skip-nav:focus{top:8px}html,body,#root{height:100%;font-family:var(--font);font-size:14px;color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;touch-action:manipulation}html{background-color:#d2dadf;background-image:linear-gradient(180deg,#d2dadf,#cdd5db 13%,#dccfc4 37%,#dfd3c9 55%,#c8d0d7 77%,#d2dadf);background-repeat:no-repeat;background-attachment:fixed}body,#root{background-color:transparent}@media screen{html,body{overflow:hidden;overscroll-behavior:none}}button{font-family:var(--font);cursor:pointer;border:none;background:none}input,select,textarea{font-family:var(--font);font-size:13px;color:var(--color-text)}:focus-visible{outline:2px solid var(--lcr-brand-300);outline-offset:2px}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;overflow:clip;padding:calc(.5rem + env(safe-area-inset-top,0px)) .75rem .75rem;gap:.5rem;background:transparent}@media(min-width:768px){.app{padding:calc(.5rem + env(safe-area-inset-top,0px)) 1rem .75rem;gap:.5rem}}.top-edge{display:none}@media(display-mode:standalone)and (pointer:coarse){.top-edge{--top-edge-color: #d2dadf;display:block;position:fixed;top:0;left:0;right:0;height:calc(.5rem + env(safe-area-inset-top,0px));z-index:99;background-color:var(--top-edge-color)}.top-edge:after{content:"";position:absolute;top:100%;left:0;right:0;height:4.5rem;background:linear-gradient(180deg,var(--top-edge-color) 0%,transparent 100%);pointer-events:none}}@media(display-mode:standalone)and (pointer:coarse)and (max-width:767px){.top-edge{--top-edge-color: #eef2f6;height:calc(.75rem + env(safe-area-inset-top,0px));z-index:101}.top-edge:after{display:none}}@media(display-mode:standalone)and (pointer:coarse){.top-edge.top-edge--login{--top-edge-color: #7b909f;height:calc(.5rem + env(safe-area-inset-top,0px));z-index:99}.top-edge.top-edge--login:after{display:block}}.app__body{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column}.app__main{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;gap:.5rem}@media(min-width:1025px){.app__body{flex-direction:row;gap:.5rem;align-items:stretch}}.nav-rail{flex:0 0 128px;position:relative;align-self:stretch}.nav-rail__panel{position:absolute;top:0;bottom:0;left:0;width:128px;display:flex;flex-direction:column;gap:3px;padding:10px 8px;background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent;z-index:var(--z-dropdown, 50)}.nav-rail__panel::-webkit-scrollbar{width:6px}.nav-rail__panel::-webkit-scrollbar-track{background:transparent}.nav-rail__panel::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:3px}.nav-rail--pbi{flex-basis:336px}.nav-rail__panel--pbi{left:138px;width:198px}.nav-rail__panel--pbi .nav-rail__item{height:28px;font-size:12px;font-weight:500}.nav-rail__pbi-title{padding:2px 9px 6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.nav-rail__group{display:flex;flex-direction:column;gap:3px}.nav-rail__item{display:flex;align-items:center;justify-content:flex-start;gap:8px;height:34px;padding:0 9px;border:1px solid transparent;background:transparent;border-radius:var(--radius-lg);color:var(--lcr-ink-800);cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:600;letter-spacing:.005em;text-align:left;white-space:nowrap;overflow:hidden;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.nav-rail__item:hover{background:linear-gradient(180deg,#ffffff8c,#ffffff4d);border-color:#ffffffd9;box-shadow:inset 0 1px #fffffff2,0 2px 5px -2px #0f172a38;-webkit-backdrop-filter:blur(6px) saturate(150%);backdrop-filter:blur(6px) saturate(150%);color:var(--lcr-brand-900)}.nav-rail__item--active,.nav-rail__item--active:hover{background:var(--glass-btn-primary-bg);border-color:#ffffff59;box-shadow:inset 0 1px #ffffff73,inset 0 -1px 1px #0f172a24;color:#fff}.nav-rail__item:disabled{color:var(--lcr-ink-700);opacity:.6;cursor:not-allowed}.nav-rail__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-rail__subgroup{position:relative;display:flex;flex-direction:column;gap:2px;margin:2px 0 6px 8px;padding:2px 0 2px 13px;max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.nav-rail__subgroup::-webkit-scrollbar{width:6px}.nav-rail__subgroup::-webkit-scrollbar-track{background:transparent}.nav-rail__subgroup::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:3px}.nav-rail__subgroup:before{content:"";position:absolute;left:4px;top:2px;bottom:12px;width:1.5px;background:var(--lcr-line-strong);border-radius:1px}.nav-rail__subgroup .nav-rail__item{position:relative;overflow:visible;height:auto;min-height:28px;padding:4px 8px;font-size:11.5px;font-weight:500;line-height:1.2;white-space:normal;color:var(--lcr-ink-700);flex-shrink:0}.nav-rail__subgroup .nav-rail__label{overflow:visible}.nav-rail__subgroup .nav-rail__item:before{content:"";position:absolute;left:-9px;top:50%;width:9px;height:1.5px;background:var(--lcr-line-strong);border-radius:1px}.nav-rail__subempty{padding:6px 8px;font-size:11.5px;color:var(--lcr-ink-700)}.nav-rail__subgroup .nav-rail__item:hover{background:linear-gradient(180deg,#ffffff8c,#ffffff4d);border-color:#ffffffd9;box-shadow:inset 0 1px #fffffff2,0 2px 5px -2px #0f172a38;color:var(--lcr-brand-900)}.nav-rail__subgroup .nav-rail__item--active,.nav-rail__subgroup .nav-rail__item--active:hover{background:var(--glass-btn-primary-bg);border-color:#ffffff59;box-shadow:inset 0 1px #ffffff73,inset 0 -1px 1px #0f172a24;color:#fff;font-weight:600}.nav-rail__divider{flex:0 0 auto;height:1px;border-radius:1px;background:var(--lcr-ink-800);opacity:.5;margin:8px 6px}.nav-rail__spacer{flex:1 1 auto;min-height:8px}.nav-rail__profile{position:relative;flex:0 0 auto;display:flex;flex-direction:column}.nav-rail__profile-btn{height:42px}.nav-rail__profile-btn:hover,.nav-rail__profile-btn--open,.nav-rail__profile-btn--open:hover{background:var(--lcr-brand-100);border-color:transparent;box-shadow:none;color:var(--lcr-ink-800)}.nav-rail__profile-btn--open:hover{background:var(--lcr-brand-200)}.nav-rail__avatar{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--lcr-navy);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.nav-rail__avatar--photo{background:transparent}.nav-rail__avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.nav-rail__menu{position:fixed;width:232px;z-index:var(--z-popover, 2000);display:flex;flex-direction:column;padding:6px;background:var(--glass-pop-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-lg);box-shadow:var(--glass-elevated-shadow);animation:nav-rail-menu-in .16s cubic-bezier(.22,1,.36,1)}@keyframes nav-rail-menu-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.nav-rail__menu-name{padding:8px 10px 10px;font-size:13px;font-weight:700;color:var(--color-text);display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--lcr-brand-100);margin-bottom:4px}.nav-rail__menu-role{font-size:11px;font-weight:600;color:var(--color-text-muted)}.nav-rail__menu-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--lcr-ink-800);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.nav-rail__menu-item:hover{background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.nav-rail__menu-item:disabled{color:var(--lcr-ink-700);opacity:.6;cursor:not-allowed}.nav-rail__menu-item--danger{color:var(--color-danger, #dc2626)}.nav-rail__menu-item--danger:hover{background:#dc262614;color:var(--color-danger, #dc2626)}.nav-rail__menu-item--err{color:var(--color-danger, #dc2626)}.nav-rail__menu-sync{padding:4px 10px 8px;font-size:11px;color:var(--color-text-muted)}.nav-rail__menu-sync--err{color:var(--color-danger, #dc2626)}.nav-rail__spin{animation:nav-rail-spin .8s linear infinite}@keyframes nav-rail-spin{to{transform:rotate(360deg)}}.topbar{display:flex;align-items:center;gap:clamp(4px,.6vw,8px);padding:6px 8px 6px 6px;min-height:var(--topbar-h);background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-elevated-border);border-radius:var(--radius-2xl);box-shadow:var(--glass-surface-shadow);flex-shrink:0;flex-wrap:nowrap;position:relative;z-index:var(--z-topbar)}.topbar-shell{position:relative;z-index:var(--z-topbar);flex-shrink:0}.topbar-shell>.topbar{position:relative;z-index:2}.topbar-ext{position:relative;z-index:1;margin-top:-18px;background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);border-top:none;border-radius:0 0 var(--radius-2xl) var(--radius-2xl);box-shadow:var(--glass-surface-shadow);padding:26px 16px 14px}.topbar-ext__inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px}.topbar__status-group--wrap{flex-wrap:wrap;height:auto;min-height:34px;align-content:center;row-gap:3px}.topbar__status-group--wrap .topbar__status-btn{height:28px}.topbar-ext__expand{display:none;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-xl);border:1.5px solid var(--color-border);background:#fff;color:var(--lcr-ink-800);font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition-fast)}.topbar-ext__expand:hover{border-color:var(--lcr-brand-700);background:var(--lcr-brand-100)}.topbar-ext__expand svg{width:15px;height:15px}.topbar-ext__expand-caret{font-size:10px;transition:transform .2s ease}.topbar-ext__expand-caret--open{transform:rotate(180deg)}@media(max-width:1600px){.topbar-ext .topbar-ext__box--extra{display:none}.topbar-ext--expanded .topbar-ext__box--extra,.topbar-ext__expand{display:inline-flex}}.brand-switch{position:relative;display:inline-flex;align-items:stretch;height:50px;padding:4px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-2xl);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0;margin-right:clamp(4px,.6vw,8px)}.brand-switch .seg-thumb{top:4px;bottom:4px}.brand-switch__btn{position:relative;z-index:1;isolation:isolate;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:none;background:transparent;border-radius:calc(var(--radius-2xl) - 4px);cursor:pointer;color:var(--lcr-ink-700);white-space:nowrap;transition:color .18s ease,transform .14s ease}.brand-switch__btn:active{transform:scale(.97)}.brand-switch__btn--active{color:var(--lcr-brand-900)}.topbar__app-icon--standalone{flex-shrink:0;margin-right:clamp(4px,.6vw,10px)}.brand-switch__name{display:flex;flex-direction:column;line-height:1.1;text-align:left}.brand-switch__title{font-size:1.05rem;font-weight:800;letter-spacing:-.02em}.brand-switch__subtitle{font-size:.6rem;align-self:flex-end;margin-top:-1px;opacity:.8}.brand-switch__alt-icon{flex-shrink:0}.brand-switch__label{font-size:.95rem;font-weight:700;letter-spacing:-.01em}@media(max-width:1280px){.brand-switch{height:46px}.topbar__app-icon--standalone{height:40px}.brand-switch__subtitle{display:none}.brand-switch__title{font-size:.95rem}.brand-switch__label{font-size:.85rem}}.topbar__brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0;padding-right:.5rem;margin-right:.25rem;border-right:1px solid var(--lcr-brand-300)}.topbar__app-icon{height:48px;width:auto;border-radius:var(--radius-md)}.topbar__app-name{display:flex;flex-direction:column;line-height:1.15}.topbar__app-title{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text)}.topbar__app-subtitle{font-size:.625rem;color:var(--color-text-secondary);align-self:flex-end;margin-top:-2px}.topbar__divider{width:1px;height:24px;background:var(--lcr-brand-300);flex-shrink:0;margin:0 .25rem}.topbar__btn--outline{border:1.5px solid var(--color-border);color:var(--lcr-ink-800);background:transparent}.topbar__btn--outline:hover{border-color:var(--lcr-brand-800);background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.topbar__btn--hub{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.topbar__btn--hub:hover{background:var(--lcr-brand-900)}.mob-menu__item--hub{color:#fff;background:var(--lcr-brand-800);border-radius:10px}.mob-menu__item--hub:hover{background:var(--lcr-brand-900)}.topbar__company-logo{height:24px;width:auto;flex-shrink:0;margin-left:.25rem}.topbar__btn--sync{border:1.5px solid var(--color-success);color:var(--color-success);background:transparent}.topbar__btn--sync:hover:not(:disabled){background:var(--color-success-bg);border-color:var(--color-success)}.topbar__btn--sync-error{border-color:var(--color-danger);color:var(--color-danger)}.topbar__btn--sync-error:hover:not(:disabled){background:#fdeceb}.topbar__btn--sync-syncing{border-color:var(--lcr-brand-400);color:var(--lcr-ink-700)}.topbar__btn--sync-syncing:hover:not(:disabled){background:var(--lcr-brand-100)}@media(max-width:1200px){.topbar__brand{border-right:none;padding-right:0;margin-right:0}.topbar__app-subtitle,.topbar__company-logo{display:none}}.topbar__sync-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;cursor:pointer;color:var(--color-success);border-radius:50%;transition:color var(--transition-fast),background var(--transition-fast)}.topbar__sync-btn:hover{background:var(--lcr-brand-100)}.topbar__sync-btn--error{color:var(--color-danger)}.topbar__sync-btn--syncing{color:var(--lcr-ink-700)}.topbar__sync-btn:disabled{cursor:default;opacity:.7}@keyframes sync-spin{to{transform:rotate(360deg)}}.topbar__sync-spinner{animation:sync-spin .8s linear infinite}.topbar__sync-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-success);flex-shrink:0;transition:color .2s}.topbar__sync-icon--error{color:#ef4444;animation:sync-pulse 1.5s ease-in-out infinite}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.5}}.topbar__select{height:28px;padding:0 10px;border:1.5px solid var(--color-border);border-radius:var(--radius-xl);background:transparent;font-size:12px;cursor:pointer;transition:border-color var(--transition-fast)}.topbar__select:hover{border-color:var(--lcr-brand-800)}.topbar__btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border:var(--glass-track-border);border-radius:var(--radius-xl);background:var(--glass-track-bg);color:var(--lcr-ink-800);font-size:12px;font-weight:600;cursor:pointer;line-height:1;white-space:nowrap;flex-shrink:0;box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);transition:color .18s ease,background .18s ease,transform .14s ease}.topbar__btn--ghost{background:var(--glass-track-bg);border:var(--glass-track-border);color:var(--lcr-ink-800)}.topbar__btn--ghost:hover{color:var(--lcr-brand-900);background:linear-gradient(180deg,#ffffffb3,#ffffff6b)}.topbar__btn--ghost:active{transform:scale(.97)}.topbar__btn--ghost[aria-expanded=true]{color:var(--lcr-brand-900);background:linear-gradient(180deg,#ffffff6b,#ffffff1f),#6b7b885c;box-shadow:0 2px 6px #141e2d1f,0 1px 2px #141e2d14,inset 0 1px #ffffff8c,inset 0 -.5px #0000000a}@media(max-width:1200px){.topbar__btn-label--wide{display:none}}.topbar__view-toggle-label--short{display:none}@media(max-width:1100px){.topbar{gap:4px;padding:6px 6px 6px 4px}.topbar__btn,.topbar__view-toggle-btn{padding:0 6px}.topbar__search-input{width:clamp(200px,16vw,240px)}.topbar__divider{margin:0 2px}.topbar__view-toggle-label--full{display:none}.topbar__view-toggle-label--short{display:inline;font-weight:600}.topbar__btn-label--display{display:none}}.topbar__btn--active{background:var(--lcr-brand-800);border:1.5px solid var(--lcr-brand-800);color:#fff}.topbar__btn--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900);color:#fff}.topbar__sync-result{font-size:11px;color:var(--color-primary);white-space:nowrap;animation:fade-in .2s ease-out}.topbar__sync-result--err{color:#e74c3c}.topbar__view-toggle{display:inline-flex;height:28px;border-radius:var(--radius-xl);overflow:hidden;border:1.5px solid var(--color-border);flex-shrink:0}.topbar__view-toggle-btn{padding:0 10px;font-family:var(--font);font-size:12px;font-weight:500;color:var(--lcr-ink-700);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);line-height:1}.topbar__view-toggle-btn:not(:last-child){border-right:1.5px solid var(--color-border)}.topbar__view-toggle-btn:hover{background:var(--lcr-brand-100)}.topbar__view-toggle-btn--active{background:var(--lcr-brand-700);color:#fff}.topbar__view-toggle-btn--active:hover{background:var(--lcr-brand-800)}.topbar__display-menu{position:relative;flex-shrink:0}.topbar__display-dropdown{position:absolute;top:100%;left:0;margin-top:8px;background:var(--glass-menu-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-menu-border);border-radius:var(--radius-md);box-shadow:var(--glass-menu-shadow);padding:4px;z-index:var(--z-dropdown);min-width:200px;animation:dropdown-in .15s ease-out}.topbar__display-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.topbar__display-item:hover{background:var(--lcr-brand-100)}.topbar__display-item--reset{justify-content:center;font-size:12px;color:var(--color-text-muted)}.topbar__display-item--reset:hover{color:var(--color-primary)}.topbar__display-divider{height:1px;background:var(--color-border);margin:4px 6px}.topbar__display-label{font-size:11px;font-weight:600;color:var(--color-text-muted);padding:4px 10px 2px;text-transform:uppercase;letter-spacing:.04em}.topbar__spacer{flex:1}.topbar__search{display:flex;align-items:center;flex:0 0 auto;min-width:200px}.topbar__search-input{width:clamp(200px,16vw,260px);min-width:200px;height:34px;border:var(--glass-input-border);border-radius:var(--radius-xl);padding:0 14px;font-size:12px;background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.topbar__search-input:focus{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.topbar__search-input::placeholder{color:var(--lcr-ink-700);font-size:12px}.topbar__search{position:relative}.topbar__search--debouncing .topbar__search-input{padding-right:28px}.topbar__search-spinner{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid var(--lcr-brand-300);border-top-color:var(--lcr-brand-800);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.topbar__undo-group{display:flex;gap:2px}.topbar__undo-btn{min-width:34px;height:34px;border-radius:var(--radius-xl);border:1.5px solid var(--color-border);color:var(--lcr-ink-700);display:flex;align-items:center;justify-content:center;gap:3px;font-size:12px;padding:0 6px;cursor:pointer;transition:all var(--transition-fast)}.topbar__undo-btn:hover:not(:disabled){background:var(--lcr-brand-100);border-color:var(--lcr-brand-800);color:var(--lcr-brand-900)}.topbar__undo-btn:disabled{opacity:.4;cursor:not-allowed}.topbar__undo-label{font-size:10px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-loading-bar{height:3px;background:linear-gradient(90deg,transparent 0%,var(--lcr-brand-800) 50%,transparent 100%);background-size:200% 100%;animation:loading-slide 1.5s ease-in-out infinite;flex-shrink:0;border-radius:2px}@keyframes loading-slide{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-error-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-md);color:#991b1b;font-size:13px;font-weight:500;flex-shrink:0}.sync-error-banner__btn{background:none;border:none;color:#991b1b;cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:4px}.sync-error-banner__btn:hover{background:#fee2e2}.sync-error-banner__btn--retry{font-size:12px;font-weight:600;border:1px solid #991b1b;border-radius:4px;padding:2px 8px}.sync-error-banner--warning{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning-text)}.sync-error-banner__close{margin-left:auto;background:transparent;border:none;font-size:18px;line-height:1;cursor:pointer;color:inherit;padding:0 4px}.viewport-warning-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--color-info-bg);border:1px solid var(--lcr-brand-400);border-radius:var(--radius-md);color:var(--lcr-brand-900);font-size:13px;font-weight:500;flex-shrink:0}.viewport-warning-banner svg{color:var(--lcr-ink-700);flex-shrink:0}.viewport-warning-banner__btn{background:none;border:1px solid var(--lcr-brand-600);color:var(--lcr-ink-800);cursor:pointer;font-size:12px;font-weight:600;line-height:1;padding:4px 10px;border-radius:var(--radius-sm);transition:background var(--transition-fast),border-color var(--transition-fast)}.viewport-warning-banner__btn:hover{background:var(--lcr-brand-200);border-color:var(--lcr-brand-700)}.viewport-warning-banner__btn:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:2px}.grid-scroll{flex:1;min-width:0;overflow:auto;overscroll-behavior:contain;position:relative;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-bento);will-change:scroll-position;-webkit-overflow-scrolling:touch}.grid-scroll{background:transparent;box-shadow:none;border-radius:0}.grid-body{position:relative;min-width:max-content;transform:translateZ(0);backface-visibility:hidden}.grid-playhead{display:none}.grid-current-range{position:absolute;top:0;bottom:0;background:#dc262614;border-left:2px solid var(--color-danger);border-right:2px solid var(--color-danger);pointer-events:none;z-index:10}.grid-empty-state{padding:32px 24px;text-align:center;color:var(--color-text-muted);font-size:13px;grid-column:1 / -1}.grid-empty-state--filtered,.grid-empty-state--no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;min-height:200px}.grid-empty-state__icon{color:var(--color-text-muted);opacity:.6;margin-bottom:8px}.grid-empty-state__title{font-size:16px;font-weight:600;color:var(--color-text);margin:0}.grid-empty-state__desc{font-size:13px;color:var(--color-text-muted);max-width:360px;line-height:1.5}.grid-empty-state__stats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;font-size:11px;color:var(--color-text-muted);margin-top:4px}.grid-empty-state__stats span{background:var(--lcr-brand-100);padding:2px 8px;border-radius:var(--radius-sm)}.grid-empty-state__btn{margin-top:12px;padding:8px 20px;font-size:13px;font-weight:600;color:var(--lcr-ink-800);background:#fff;border:1px solid var(--lcr-brand-400);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.grid-empty-state__btn:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-800)}.grid-empty-state__btn:focus-visible{outline:2px solid var(--lcr-brand-300);outline-offset:2px}.row{display:flex;contain:layout style}.project-row{contain:layout style}.building-row{contain:layout style;content-visibility:auto;contain-intrinsic-size:auto var(--cell-height)}.col-frozen{position:sticky;left:0;z-index:2;flex-shrink:0;width:var(--col-name)}.col-scroll{display:grid;grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),var(--col-quarter));flex-shrink:0;position:relative;z-index:1;contain:layout style}.row--header{position:sticky;top:0;z-index:4}.row--header .col-frozen{z-index:5}.row--header .cell{background:var(--lcr-brand-100);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--lcr-ink-800)}.row--header .col-frozen .cell--name{height:100%}.row--header .cell--sales-bar{height:100%;align-self:stretch}.row--group .col-frozen{z-index:3}.row--group .cell--group{flex:1}.cell--group-fill>.cell{border-bottom-color:var(--color-border-group)}.row--group .cell--sales-bar.cell--quarter-group{opacity:1;justify-content:flex-start}.group-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:14px;height:16px;margin-right:16px;color:var(--lcr-ink-700);cursor:grab;opacity:.55;flex-shrink:0}.group-drag-handle:hover{opacity:1}.group-drag-handle:active{cursor:grabbing}.row--group-dragging{opacity:.45}.row--group-drop-target{outline:2px dashed var(--lcr-brand-600);outline-offset:-2px}.group-sell-pct{position:relative;z-index:1;text-transform:none;letter-spacing:normal;font-size:10px;font-weight:700;color:var(--lcr-brand-900);display:flex;align-items:baseline;width:100%;gap:2px;padding:0 2px 0 4px}.cell--quarter-group{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);opacity:.5;display:flex;align-items:center;justify-content:center}.density-compact{--cell-height: 24px;--project-row-height: 30px}.header-add-btn,.group-add-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:3px;background:transparent;color:var(--lcr-ink-700);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;line-height:1;padding:0;opacity:.5;transition:opacity .15s,background .15s}.group-add-btn{color:inherit;background:#ffffff40}.header-add-btn:hover,.group-add-btn:hover{background:#00000026}.row--header:hover .header-add-btn,.row--group:hover .group-add-btn{opacity:1}.header-add-btn:focus-visible,.group-add-btn:focus-visible{opacity:1}.group-delete-btn{position:absolute;right:28px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:3px;background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;padding:0;opacity:0;transition:opacity .15s,background .15s,color .15s}.group-delete-btn:hover{background:#dc262626;color:var(--color-danger)}.row--group:hover .group-delete-btn{opacity:1}.group-delete-btn:focus-visible{opacity:1}@media(hover:none){.header-add-btn,.group-add-btn,.group-delete-btn{opacity:1}}.group-color-chip{width:14px;height:14px;padding:0;border:1px solid rgba(0,0,0,.25);border-radius:3px;cursor:pointer;background:transparent;margin-right:6px;flex:0 0 auto;appearance:none;-webkit-appearance:none}.group-color-chip::-webkit-color-swatch-wrapper{padding:0}.group-color-chip::-webkit-color-swatch{border:none;border-radius:2px}.group-color-chip::-moz-color-swatch{border:none;border-radius:2px}.color-picker-row{display:flex;align-items:center;gap:10px;margin:12px 0 4px}.color-picker-label{font-size:12px;font-weight:600;color:var(--color-text-muted)}.color-picker-swatches{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.color-swatch{width:22px;height:22px;border-radius:4px;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 1px #00000026;transition:transform .1s}.color-swatch:hover{transform:scale(1.1)}.color-swatch--active{border-color:var(--lcr-brand-900, #000);box-shadow:0 0 0 1px #0000004d}.color-picker-custom{width:26px;height:26px;padding:0;border:1px dashed var(--color-text-muted);border-radius:4px;cursor:pointer;background:transparent;appearance:none;-webkit-appearance:none}.color-picker-custom::-webkit-color-swatch-wrapper{padding:2px}.color-picker-custom::-webkit-color-swatch{border:none;border-radius:3px}.cell--quarter-header{cursor:default!important;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.cell--quarter-header:after{content:"";margin-left:-.04em}.cell--quarter-header:hover{background:var(--lcr-brand-100)!important}.cell--year-start{border-left:1.5px solid var(--lcr-brand-500)!important}.cell--year-start:before{content:"";position:absolute;top:0;left:-1.5px;width:1.5px;height:100%;background:var(--lcr-brand-500)}.viewport--single-quarter .cell--quarter{min-width:240px;flex-direction:column;padding:8px 12px}.viewport--single-quarter .cell--quarter-header{font-size:14px;padding:12px 16px}.viewport--narrow .cell--quarter{min-width:60px;padding:0 4px}.viewport--narrow .cell--quarter-header{font-size:10px;letter-spacing:0}@media(max-width:480px){.viewport--narrow .cell--quarter{min-height:44px}}.viewport--wide .cell--quarter{font-size:11px}.viewport--wide .cell--quarter-header{font-size:10px}.viewport--wide .cell--quarter-header:nth-child(2n) .quarter-label-text{opacity:.6}.viewport--multi-year .cell--quarter[data-year-start=true]{border-left:1.5px solid var(--lcr-brand-400)}.viewport--partial-year .cell--quarter[data-partial=true]{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(251,191,36,.05) 4px,rgba(251,191,36,.05) 8px)}.viewport-nav-hint{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:var(--radius-full);color:var(--lcr-ink-700);cursor:pointer;opacity:.5;transition:opacity var(--transition-fast);z-index:var(--z-sticky)}.viewport-nav-hint--left{left:8px}.viewport-nav-hint--right{right:8px}.grid-scroll:hover .viewport-nav-hint{opacity:.8}.viewport-nav-hint:hover,.viewport-nav-hint:focus-visible{opacity:1!important;background:var(--lcr-brand-200)}.viewport-nav-hint svg{width:16px;height:16px}@media(hover:none){.viewport-nav-hint{opacity:1}}.viewport-quick-jump{position:fixed;bottom:80px;right:24px;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--lcr-brand-800);color:#fff;border:none;border-radius:var(--radius-xl);font-size:12px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(20px);transition:opacity var(--transition-normal),transform var(--transition-normal);z-index:var(--z-dropdown)}.viewport-quick-jump--visible{opacity:1;transform:translateY(0)}.viewport-quick-jump:hover{background:var(--lcr-brand-900)}.viewport-quick-jump svg{width:14px;height:14px}.cell{display:flex;align-items:center;height:var(--cell-height);padding:0 10px;border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid var(--lcr-brand-300);font-size:13px;background:#fff;position:relative}.cell--name{font-weight:500;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-row .cell--name{padding-right:50px}.cell--units{display:none}.cell--quarter{justify-content:center;padding:0;cursor:pointer;-webkit-user-select:none;user-select:none;scroll-snap-align:start;border-right:none}@supports selector(:has(*)){.cell--quarter:has(.cell-micro-bar){flex-direction:column;gap:2px}}.cell--quarter:hover{background-color:var(--color-row-hover)}.col-lines .cell--quarter{border-right:1px dotted var(--color-border)}.view-mode-monthly.col-lines .cell--quarter{position:relative}.view-mode-yearly .cell--quarter{border-right:none!important}.grid-year-divider{position:absolute;top:0;bottom:0;width:0;border-left:1.5px solid var(--lcr-line-strong);pointer-events:none;z-index:1}.cell--year-row{justify-content:center;font-size:11px;font-weight:700;color:var(--lcr-ink-800);letter-spacing:.02em;cursor:default}.cell--year-row:hover{background:var(--lcr-brand-100)!important}.view-mode-monthly.col-lines .cell--quarter:not(.cell--year-row){background-image:linear-gradient(180deg,var(--color-border) 50%,transparent 50%),linear-gradient(180deg,var(--color-border) 50%,transparent 50%);background-size:1px 2px,1px 2px;background-position:33.333% 0,66.666% 0;background-repeat:repeat-y,repeat-y}.cell--group{background:transparent;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-brand-900);border-bottom:none;line-height:var(--cell-height)}.row--group .cell{height:var(--project-row-height, var(--cell-height));border-top:2px solid var(--lcr-brand-700);border-bottom:none;background:transparent}.grid-body--with-summary .summary-rows+.row--group .cell{border-top:6px double var(--color-border-group)}.project-row:hover .cell{background-color:var(--color-row-hover)}.project-row .cell{height:var(--project-row-height, var(--cell-height))}.project-row,.row--group{position:relative}.project-row:after,.prediction-expanded-block:after,.row--group:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--lcr-brand-500);z-index:10;pointer-events:none}.prediction-expanded-block{position:relative}.drag-handle{cursor:grab;color:#9ca3af;margin-left:4px;margin-right:4px;flex-shrink:0;transition:color .15s;opacity:.5}.drag-handle:hover{color:#4b5563;opacity:1}.drag-handle:active{cursor:grabbing}.project-row--dragging{opacity:.4}.project-row--drag-over-above>.col-frozen .cell,.project-row--drag-over-above>.col-scroll .cell{box-shadow:inset 0 2px 0 0 var(--lcr-brand-800)}.project-row--drag-over-below>.col-frozen .cell,.project-row--drag-over-below>.col-scroll .cell{box-shadow:inset 0 -2px 0 0 var(--lcr-brand-800)}.project-row--focused>.col-frozen .cell,.project-row--focused>.col-scroll .cell{box-shadow:inset 0 0 0 1.5px var(--color-primary)}.grid-body .building-box{--bx-radius: 12px;--bx-glass: #ffffff;--bx-frozen: #ffffff;position:relative;background:var(--bx-glass);border:1px solid rgba(15,23,42,.06);border-radius:var(--bx-radius);margin:0 0 8px;box-shadow:0 1px 2px #0f172a0d,0 6px 16px #0f172a17;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.grid-body .building-box:hover{box-shadow:0 2px 4px #0f172a12,0 10px 26px #0f172a24}.grid-body .building-box .project-row .cell--quarter,.grid-body .building-box .project-row .cell--sales-bar{background-color:transparent}.grid-body .building-box .project-row .col-frozen .cell{background:var(--bx-frozen)}.grid-body--kpi .building-box .project-row .cell,.kpi-board__body .building-box .project-row .cell{background-color:#fff}.grid-body--kpi .building-box .project-row .col-scroll .cell--quarter:not(:last-child),.kpi-board__body .building-box .project-row .col-scroll .cell--quarter:not(:last-child){border-right:1px solid var(--lcr-brand-300, #C3CDD5)}.grid-body .building-box .project-row .cell{border-bottom-color:transparent}.grid-body .building-box .project-row:hover .cell--quarter,.grid-body .building-box .project-row:hover .cell--sales-bar{background-color:#ffffff57}.grid-body .building-box .project-row:hover .col-frozen .cell{background-color:#fffffff5}.grid-body .building-box .project-row .col-frozen .cell--name{border-top-left-radius:var(--bx-radius)}.grid-body .building-box:not(.building-box--expanded) .project-row .col-frozen .cell--name{border-bottom-left-radius:var(--bx-radius)}.grid-body .building-box--expanded .prediction-expanded-block .pred-section:last-child .building-pred-row:last-child .col-frozen .cell{border-bottom-left-radius:var(--bx-radius)}.grid-body .building-box .project-row:after,.grid-body .building-box .prediction-expanded-block:after{display:none}.grid-body .row--group{margin-top:14px;margin-bottom:8px}.grid-body .summary-rows+.row--group,.grid-body .row--header+.row--group{margin-top:0}.grid-body .row--group .cell{border-top:none;background:color-mix(in srgb,var(--lcr-brand-400) 75%,#ffffff);border-right-color:transparent;background-image:none;box-shadow:inset 0 1px 0 0 var(--lcr-brand-600),inset 0 -1px 0 0 var(--lcr-brand-600)}.grid-body .row--group .col-frozen .cell--group{border-top-left-radius:10px;border-bottom-left-radius:10px;box-shadow:inset 5px 0 0 0 var(--lcr-brand-900),inset 0 1px 0 0 var(--lcr-brand-600),inset 0 -1px 0 0 var(--lcr-brand-600)}.grid-body .row--group .cell--quarter-group{opacity:1}.grid-body .row--group .col-scroll .cell:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px;box-shadow:inset -1px 0 0 0 var(--lcr-brand-600),inset 0 1px 0 0 var(--lcr-brand-600),inset 0 -1px 0 0 var(--lcr-brand-600)}.grid-body .row--group .cell--group{color:var(--lcr-brand-900)}.grid-body .row--group:after{display:none}.grid-body .row--header{margin-bottom:10px;border-radius:12px;box-shadow:0 0 0 1px #0f172a0f,0 2px 4px #0f172a14,0 12px 26px #0f172a29}.grid-body .row--header .col-frozen .cell--name{border-top-left-radius:12px;border-bottom-left-radius:12px}.grid-body .row--header .col-scroll .cell--year-row-last{border-top-right-radius:12px}.grid-body .row--header .col-scroll .cell:last-child{border-bottom-right-radius:12px}.grid-body .row--header .cell{border-right-color:transparent;border-bottom-color:transparent}.grid-body .summary-rows{position:relative;background:#ffffff9e;-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);border:1px solid rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.75);border-radius:12px;margin-bottom:8px;box-shadow:0 1px 2px #0f172a0d,0 6px 16px #0f172a17}.unit-type-toggle-row{cursor:pointer;-webkit-user-select:none;user-select:none}.unit-type-toggle-row:hover .cell{background-color:var(--color-row-hover)}.unit-type-row{position:relative;z-index:100;background:#fff}.unit-type-row .cell{height:calc(var(--cell-height) - 2px);border-bottom:1px solid rgba(224,224,224,.5)}.unit-type-row:last-child .cell{border-bottom:1px solid var(--color-border)}.unit-type-name{padding-left:24px!important;font-size:11px!important;font-weight:400!important;color:var(--color-text-muted)}.unit-type-row .cell--units{font-size:11px;color:var(--color-text-muted)}.unit-type-quarter{cursor:default!important;pointer-events:none}.unit-type-row:hover .cell{background-color:var(--color-row-hover)}.building-row .cell{height:calc(var(--cell-height) - 2px);border-bottom:1px solid rgba(224,224,224,.5)}.building-row:last-child .cell{border-bottom:1px solid var(--color-border)}.building-name{padding-left:20px!important;font-size:11px!important;font-weight:700!important;color:var(--color-text-muted)}.building-row .cell--units{font-size:11px;color:var(--color-text-muted)}.building-quarter{cursor:default!important;pointer-events:none}.building-row:hover .cell{background-color:var(--color-row-hover)}.cell--note{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:14px;padding:0 5px;border-radius:7px;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:var(--col-quarter);color:#92400e;background:#fef3c7;border:1.5px solid var(--color-unconfirmed);z-index:2;pointer-events:none}.cell--has-note{background:#f59e0b1a!important}.cell-context-menu{position:fixed;z-index:var(--z-popover);background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;min-width:180px;animation:dropdown-in .12s ease-out}.cell-context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;font-size:13px;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);text-align:left;transition:background var(--transition-fast)}.cell-context-menu button:hover{background:var(--lcr-brand-100)}.ctx-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.ctx-dot--presales{background:var(--color-presales)}.ctx-dot--construction{background:var(--color-construction)}.ctx-dot--note{background:var(--color-warning)}.ctx-dot--empty{background:var(--color-border)}.save-toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);background:var(--lcr-brand-900);color:#fff;padding:10px 24px;border-radius:var(--radius-full);font-size:13px;font-weight:500;z-index:200;pointer-events:none;box-shadow:var(--shadow-lg);animation:toast-in .2s ease-out,toast-out .3s 1.7s ease-in forwards}.save-toast--error{background:var(--color-danger, #b42318);z-index:var(--z-modal);animation:toast-in .2s ease-out,toast-out .3s 3.6s ease-in forwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-family:var(--font);color:var(--lcr-brand-900);text-align:center;padding:24px}.error-boundary h2{font-size:20px;font-weight:600;margin:0 0 8px}.error-boundary p{font-size:14px;color:var(--lcr-ink-700);margin:0 0 20px;max-width:400px}.error-boundary button{padding:10px 24px;border:none;border-radius:var(--radius-sm);background:var(--lcr-brand-800);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.error-boundary button:hover{background:var(--lcr-brand-900);transform:translateY(-1px)}.cell-label{position:absolute;left:2px;right:2px;display:inline-flex;align-items:flex-end;justify-content:center;height:var(--cell-label-h, 10px);padding:0 4px;overflow:visible;border-radius:5px;font-size:var(--cell-label-font, 9px);font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:1;white-space:nowrap;z-index:5;pointer-events:none;border:1px solid}.cell-label__text{position:relative;top:1.3px;display:inline-block;line-height:1}.cell-label--construction{color:#2b5f8a;background:var(--label-construction-bg, #E0EEF9);border-color:var(--label-construction-border, #5B9BD5);bottom:calc(var(--gantt-bar-inset, 4px) - .25px)}.cell-label--presales{color:#1f2937;background:transparent;border-color:transparent;text-transform:uppercase;letter-spacing:.04em;top:calc(var(--gantt-bar-inset, 4px) + .25px)}.cell-label--half{font-size:var(--cell-label-font, 9px);height:var(--cell-label-h, 10px);padding:1px 2px 0;border-radius:5px}.cell-micro-bar{display:block;width:70%;height:4px;border-radius:2px;z-index:2;pointer-events:none}.cell-micro-bar--construction{background:#5b9bd5}.cell-micro-bar--presales{background:repeating-linear-gradient(45deg,#92d050,#92d050 2px,#7ab840 2px 4px)}.gantt-bar{pointer-events:auto;cursor:pointer;z-index:3;min-width:0;position:relative;display:flex;align-items:center;height:calc((var(--project-row-height, var(--cell-height)) - var(--gantt-bar-inset, 4px) * 2) / 2);border-radius:3px}.gantt-bar__label{z-index:10;pointer-events:none;align-self:center;min-width:0;font-size:10px;font-weight:700;text-transform:none;letter-spacing:.02em;white-space:nowrap;line-height:1;text-align:center;overflow:hidden;text-overflow:ellipsis;padding:0 4px;color:#1a1a1a}.gantt-bar--presales{align-self:start;margin-top:var(--gantt-bar-inset, 4px);background:var(--gantt-presales-bg, #B5D47A);color:#1f2937;border:none;border-radius:var(--radius-sm)}.gantt-bar--construction{align-self:end;margin-bottom:var(--gantt-bar-inset, 4px);background:var(--gantt-construction-bg, #9EC3E2);color:#2b5f8a;border:1.5px solid var(--gantt-construction-border, #5B9BD5)}.gantt-bar--fnf{display:flex;align-items:center;align-self:start;margin-top:var(--gantt-bar-inset, 4px);background:var(--gantt-fnf-bg, #D9E8BE);color:#1f2937;border:none;border-radius:var(--radius-sm);overflow:hidden}.gantt-bar__fnf-label{padding:0 4px;font-size:var(--cell-label-font, 9px);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1f2937;pointer-events:none}.project-row--with-tracks{min-height:var(--project-row-height)}.project-row--with-tracks .gantt-bar{height:13px!important}.project-row--with-tracks .gantt-bar--presales{align-self:start!important;margin-top:calc(3px + var(--presales-track, 0) * 16px)!important;margin-bottom:0!important}.project-row--with-tracks .gantt-bar--construction{align-self:start!important;margin-top:calc(3px + var(--construction-track, 0) * 16px)!important;margin-bottom:0!important}.project-row--with-tracks .gantt-bar--fnf{align-self:start!important;margin-top:calc(3px + var(--presales-track, 0) * 16px)!important;margin-bottom:0!important}.project-row--with-tracks .cell-label--presales:not(.gantt-bar__start-badge){top:calc(3.25px + var(--presales-track, 0) * 16px)!important;bottom:auto!important}.project-row--with-tracks .cell-label--construction{top:calc(6.25px + var(--construction-track, 0) * 16px)!important;bottom:auto!important}.gantt-bar--m-phase{display:flex;align-items:center;padding:0 4px;border-radius:var(--radius-sm);border:none;color:#1f2937;overflow:hidden}.gantt-bar--priority{box-shadow:0 0 0 1.5px var(--priority-glow-ring),0 0 6px 2px var(--priority-glow);z-index:4}.gantt-bar--priority:after{content:"";position:absolute;top:0;right:0;bottom:0;width:min(60px,75%);border-radius:0 3px 3px 0;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--priority-glow-ring) 65%,transparent) 0 4px,transparent 4px 10px);pointer-events:none}.gantt-bar__m-label{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gantt-bar__start-badge{position:absolute;left:2px;right:auto;top:50%;transform:translateY(-50%);z-index:11}.cell-label--presales.gantt-bar__start-badge{border:none;padding:0 2px;height:auto;border-radius:0}@supports selector(:has(*)){.gantt-bar:has(.gantt-bar__start-badge){z-index:4}}.gantt-bar__hint{align-self:center;justify-self:center;display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%;padding:4px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-danger);background:#fff;border:1px solid var(--color-danger);border-radius:6px;box-shadow:var(--shadow-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:6;animation:gantt-hint-fade 2s ease-out forwards}.gantt-bar__hint>span{overflow:hidden;text-overflow:ellipsis}@keyframes gantt-hint-fade{0%,70%{opacity:1}to{opacity:0}}.actual-bar{pointer-events:auto;z-index:2;min-width:0;border-radius:0}.actual-bar--actual-sales{background:#e67e2280;align-self:start;height:25%;border-radius:0;display:none}.units-input{width:100%;border:none;background:transparent;text-align:center;font-size:13px;padding:0;outline:none;-moz-appearance:textfield}.units-input::-webkit-inner-spin-button,.units-input::-webkit-outer-spin-button{-webkit-appearance:none}.units-input:focus{background:#fff;outline:2px solid var(--color-primary);border-radius:3px}.units-input:disabled{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.drawer-backdrop{position:fixed;inset:0;background:#28303e42;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);z-index:200;display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.drawer{position:relative;z-index:201;background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-elevated-border);border-radius:var(--radius-2xl);overflow:hidden;max-height:96vh;max-height:96dvh;width:1840px;max-width:calc(100vw - 24px);min-height:min(92vh,980px);display:flex;flex-direction:column;animation:modal-pop .2s cubic-bezier(.32,.72,0,1);box-shadow:0 25px 50px #00000024}@keyframes modal-pop{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.drawer__handle{display:none}.drawer__header{display:flex;align-items:center;gap:18px;padding:12px 20px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-xs);height:60px}.drawer__header-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0;min-width:0}.drawer__header-controls{display:flex;align-items:center;gap:14px;flex:1;justify-content:center}.drawer__header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.drawer-header-pills{display:inline-flex;align-items:center;gap:6px}.drawer-pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:none;background:var(--lcr-brand-100);border-radius:var(--radius-full);font-family:inherit;font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.drawer-pill:hover{background:var(--lcr-brand-200);color:var(--color-text)}.drawer-pill--active{background:#fff;color:var(--color-text);box-shadow:var(--shadow-xs),0 0 0 1px var(--lcr-brand-300)}.drawer-pill__dot{width:8px;height:8px;border-radius:50%;background:var(--lcr-brand-400);flex-shrink:0}.drawer-pill--active .drawer-pill__dot--sales{background:var(--color-presales)}.drawer-pill--active .drawer-pill__dot--construction{background:var(--color-construction)}.drawer-segmented{display:inline-flex;align-items:stretch;height:30px;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-md);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop)}.drawer-segmented__btn{min-width:28px;padding:0 10px;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--color-text-muted);background:transparent;border:none;border-radius:calc(var(--radius-md) - 3px);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;line-height:1}.drawer-segmented__btn:hover{color:var(--color-text)}.drawer-segmented__btn--active{background:var(--glass-pill-bg);color:var(--color-text);box-shadow:var(--glass-pill-shadow)}.drawer__breadcrumb{font-size:12px;font-weight:500;color:var(--color-text-muted)}.drawer__title{font-size:18px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.drawer__autosave-badge{font-size:11px;font-weight:500;white-space:nowrap;padding:2px 8px;border-radius:4px;transition:opacity .3s ease,background .3s ease,color .3s ease;animation:badge-pulse .3s ease}@keyframes badge-pulse{0%{transform:scale(.9);opacity:.5}to{transform:scale(1);opacity:1}}.drawer__autosave-badge--dirty{color:#92400e;background:#fef3c7}.drawer__autosave-badge--saved{color:var(--color-success);background:#f0fdf4}.drawer__close{width:36px;height:36px;border-radius:50%;background:var(--lcr-brand-100);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--lcr-ink-700);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.drawer__close:hover{background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.drawer__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.drawer__layout{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:16px;padding:16px;overflow:hidden}.drawer__row-top{display:grid;grid-template-columns:minmax(360px,420px) 1fr;gap:16px;flex-shrink:0}.drawer__box{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);padding:18px 22px;display:flex;flex-direction:column;gap:14px;min-height:0;min-width:0}.drawer__box-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.drawer__box--plan{flex:1 1 auto;min-height:0}.drawer__strip-left{display:flex;flex-direction:column;gap:14px;min-width:0}.drawer__strip-right{display:flex;align-items:stretch;justify-content:flex-start;background:transparent;border-radius:0;padding:0}.drawer__strip-left .drawer__field{min-width:0}.drawer__project-strip .drawer__input{padding:10px 12px;font-size:15px}.drawer__project-strip .drawer__label{font-size:13px;font-weight:600;margin-bottom:2px}.drawer__project-strip .drawer__toggle{padding:5px 8px;font-size:12px;min-height:32px}.drawer__btn-delete-icon{flex:0 0 auto;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--radius-lg);color:var(--color-text-muted);cursor:pointer;transition:all .15s;align-self:flex-end}.drawer__btn-delete-icon:hover{color:var(--color-danger);background:#fef2f2;border-color:#fca5a5}.drawer__section{border-bottom:1px solid var(--color-border)}.drawer__section-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:10px 12px;font-size:13px;font-weight:700;color:var(--color-text);background:var(--color-surface);border:none;cursor:pointer;text-align:left;transition:background .15s}.drawer__section-toggle:hover{background:var(--color-row-hover)}.drawer__section-chevron{font-size:11px;color:var(--color-text-muted);width:12px;text-align:center}.drawer__section-content{padding:4px 12px 12px}.drawer__tabs{display:flex;gap:0;padding:0 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.drawer__tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--lcr-ink-700);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast)}.drawer__tab:hover{color:var(--lcr-brand-900)}.drawer__tab--active{color:var(--lcr-ink-800);border-bottom-color:var(--lcr-brand-800)}.drawer__tab:disabled{opacity:.4;cursor:not-allowed}.drawer__tab-badge{display:inline-block;width:16px;height:16px;font-size:10px;font-weight:700;line-height:16px;text-align:center;background:#f59e0b;color:#fff;border-radius:50%;margin-left:4px;vertical-align:middle}.drawer__body{padding:0;display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c1c7cd transparent}.drawer__body::-webkit-scrollbar{width:10px}.drawer__body::-webkit-scrollbar-track{background:transparent}.drawer__body::-webkit-scrollbar-thumb{background:#c1c7cd;border-radius:5px;border:2px solid transparent;background-clip:padding-box}.drawer__body::-webkit-scrollbar-thumb:hover{background:#a0a8b0;border:2px solid transparent;background-clip:padding-box}.drawer__fields-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.drawer__fields-row .drawer__field{flex:1;min-width:120px}.drawer__fields-row .drawer__field--name{flex:2;min-width:180px}.drawer__fields-row .drawer__field--notes{flex:2;min-width:160px}.drawer__fields-row .drawer__field--units{flex:0 0 auto}.drawer__field{display:flex;flex-direction:column;gap:4px}.drawer__label{font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--color-text-muted)}.drawer__required{color:var(--color-danger);font-weight:700}.drawer__input{width:100%;padding:8px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:14px;outline:none;transition:border-color var(--transition-fast);background:#fff}.drawer__input:focus{border-color:var(--lcr-brand-800)}.drawer__input:disabled{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.drawer__row{display:flex;gap:8px;align-items:stretch}.drawer__divider{border:none;border-top:1px solid var(--color-border);margin:0}.drawer__section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);padding:4px 0 0;display:flex;align-items:center;gap:8px}.drawer__section-label:after{content:"";flex:1;height:1px;background:var(--color-border)}.drawer__toggles{display:flex;gap:8px;flex-wrap:wrap}.drawer__toggle{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:13px;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;min-height:38px}.drawer__toggle--match{padding:8px 10px;font-size:14px}.drawer__toggle.active-confirmed{background:#e6ffec;border-color:#22c55e;color:#15803d}.drawer__btn{flex:1;padding:10px 16px;border-radius:var(--radius-xl);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast)}.drawer__btn--save{background:var(--lcr-brand-800);color:#fff}.drawer__btn--save:hover{background:var(--lcr-brand-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}.drawer__btn--secondary{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer}.drawer__btn:disabled,.drawer__btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.plan-tl{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;background:transparent;overflow:hidden}.plan-tl__summary{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--lcr-brand-300);flex-wrap:nowrap;min-height:40px;min-width:0}.plan-tl__title{flex:0 0 auto}.plan-tl__save-status{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plan-tl__summary-actions{flex:0 0 auto}.plan-tl__title{font-weight:700;font-size:16px;color:var(--color-text);margin-right:4px}.plan-tl__title--toggle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;padding:0;cursor:pointer;font:inherit;font-weight:700;font-size:14px}.plan-tl__title--toggle:hover{color:var(--lcr-ink-700)}.plan-tl__summary-actions{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.plan-tl__summary-metrics{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--lcr-brand-900);flex:1}.plan-tl__metric strong{font-weight:700;color:var(--color-text)}.plan-tl__metric--year,.plan-tl__pct{color:var(--lcr-ink-700);font-size:11px}.plan-tl__warning{color:#dc2626;font-weight:600;font-size:11px}.plan-tl__save-status{margin-left:auto;flex-shrink:0}.plan-tl__toolbar{display:flex;align-items:stretch;justify-content:space-between;gap:12px;padding:8px 12px 8px 0;border-bottom:1px solid var(--lcr-brand-300);flex-wrap:wrap}.plan-tl__toolbar-left{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}.plan-tl__toolbar-right{display:flex;gap:6px;align-items:center;flex:0 0 auto}.plan-tl__toolbar-right .pred-help-btn{width:24px;height:24px;font-size:13px;margin:0 4px}.plan-tl__auto-range{flex:1 1 auto;padding:12px 14px;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);background:var(--lcr-brand-50)}.plan-tl__auto-range-title{font-size:11px;font-weight:700;color:var(--lcr-ink-800);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em}.plan-tl__auto-range-grid{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.plan-tl__auto-range-field{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;flex:1 1 140px;min-width:130px}.plan-tl__auto-range-field input,.plan-tl__auto-range-field select{height:32px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font);font-size:13px;font-weight:500;background:#fff;color:var(--color-text);outline:none;text-transform:none;letter-spacing:normal;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.plan-tl__auto-range-field input:focus,.plan-tl__auto-range-field select:focus{border-color:var(--lcr-brand-800);box-shadow:0 0 0 3px #38535f1a}.plan-tl__auto-range-field>span{display:flex;gap:4px}.plan-tl__auto-range-field>span>select{flex:1 1 0;min-width:0}.plan-tl__auto-range-meta{flex:1 1 100%;font-size:12px;color:var(--color-text-secondary);line-height:1.4;padding-top:2px}.plan-tl__auto-range-reset{background:none;border:none;padding:0;font-size:12px;color:var(--lcr-ink-800);text-decoration:underline;cursor:pointer}.plan-tl__auto-range-reset:hover{color:var(--lcr-brand-900)}.plan-tl__auto-range-btn{align-self:flex-end;height:32px;padding:0 18px;background:var(--lcr-brand-800);border:none;border-radius:var(--radius-full);color:#fff;font-family:var(--font);font-weight:600;font-size:12.5px;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast);flex:0 0 auto}.plan-tl__auto-range-btn:hover:not(:disabled){background:var(--lcr-brand-900)}.plan-tl__auto-range-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.plan-tl__auto-range{padding:10px 12px}.plan-tl__auto-range-title{margin-bottom:8px}.plan-tl__auto-range-grid{flex-direction:column;align-items:stretch;gap:8px}.plan-tl__auto-range-field{flex:1 1 auto;width:100%;min-width:0}.plan-tl__auto-range-btn{width:100%;height:36px}.plan-tl__auto-range-meta{text-align:center;padding-top:4px}}.plan-tl__more-wrap{position:relative}.plan-tl__more-btn{padding:6px 8px!important;min-width:32px;font-size:18px!important;line-height:1}.plan-tl__more-menu{position:absolute;top:100%;right:0;z-index:10;background:#fff;border:1px solid var(--lcr-brand-300);border-radius:6px;box-shadow:0 4px 12px #0000001a;min-width:180px;padding:4px 0;margin-top:2px}.plan-tl__more-item{display:block;width:100%;text-align:left;padding:8px 12px;font-size:13px;border:none;background:none;cursor:pointer;color:var(--color-text);transition:background .1s}.plan-tl__more-item:hover{background:var(--lcr-brand-100)}.plan-tl__more-item--delete{color:#dc2626}.plan-tl__more-item--delete:hover{background:#fef2f2}.plan-tl__more-item--restore{color:var(--lcr-ink-800)}.plan-tl__more-item--restore:hover{background:var(--lcr-brand-100)}.plan-tl__more-item:disabled{opacity:.5;cursor:not-allowed}.plan-tl__scroll{overflow-x:auto;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;scroll-padding-left:84px}@media(max-width:900px){.plan-tl{overflow:visible;flex:0 0 auto}.plan-tl__scroll{overflow-y:visible;flex:0 0 auto}}@media(max-width:640px){.plan-tl__scroll{scroll-padding-left:72px}}.plan-tl__scroll{scrollbar-color:var(--lcr-brand-400) transparent}.plan-tl__scroll::-webkit-scrollbar{height:6px;width:6px}.plan-tl__scroll::-webkit-scrollbar-track{background:transparent}.plan-tl__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:3px}.plan-tl__scroll::-webkit-scrollbar-corner{background:transparent}.plan-tl__grid{display:flex;flex-direction:column;padding:0 0 8px}.plan-tl__header-sticky{position:sticky;top:0;z-index:4;background:var(--lcr-brand-50)}.plan-tl__header-sticky .plan-tl__label{z-index:5}.plan-tl__row{display:flex;align-items:center;min-height:28px}.plan-tl__row--header{border-bottom:1px solid var(--lcr-brand-300)}.plan-tl__row+.plan-tl__row{border-top:1px solid var(--lcr-brand-200)}.plan-tl__row--phase{min-height:18px;padding:4px 0 2px}.plan-tl__row--phase+.plan-tl__row--phase{padding-top:2px}.plan-tl__row--phase .plan-tl__month-group{gap:0}.plan-tl__row--phase .plan-phase-block{height:10px;border-radius:0}.plan-tl__row--phase .plan-phase-block--seg-start{border-top-left-radius:6px;border-bottom-left-radius:6px}.plan-tl__row--phase .plan-phase-block--seg-end{border-top-right-radius:6px;border-bottom-right-radius:6px}.plan-tl__label--phase{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.plan-tl__row--phase-presales .plan-tl__label--phase{color:var(--color-presales)}.plan-tl__row--phase-construction .plan-tl__label--phase{color:var(--color-construction)}.plan-tl__row--years{min-height:20px}.plan-tl__label{width:84px;min-width:84px;position:sticky;left:0;z-index:3;background:var(--lcr-brand-50);font-size:11px;font-weight:700;padding:0 6px 0 10px;flex-shrink:0;box-shadow:2px 0 4px -2px #00000014;align-self:stretch;display:flex;align-items:center;white-space:nowrap}.plan-tl__label--stock{color:var(--color-text);font-weight:600}.plan-tl__year-label{font-size:11px;font-weight:700;color:var(--lcr-ink-700);text-align:center;width:100%}.plan-tl__year-label--current{color:var(--lcr-ink-800)}.plan-tl__row--years .plan-tl__quarter{justify-content:center}.plan-tl__quarter{flex:1;display:flex;flex-direction:column;align-items:center;padding:0 2px;border-left:1px dotted var(--color-border);min-width:0}.plan-tl__quarter--year-start{border-left:1.5px solid var(--lcr-brand-400)}.plan-tl--monthly .plan-tl__quarter,.plan-tl--quarterly .plan-tl__quarter{background-image:linear-gradient(180deg,var(--color-border) 50%,transparent 50%),linear-gradient(180deg,var(--color-border) 50%,transparent 50%);background-size:1px 2px,1px 2px;background-position:33.333% 0,66.666% 0;background-repeat:repeat-y,repeat-y}.plan-tl__q-label{font-size:10px;font-weight:700;color:var(--lcr-ink-700);margin-bottom:1px}.plan-tl__month-group{display:flex;width:100%;justify-content:space-around;align-items:center;gap:2px}.plan-tl__month-group--header span{flex:1;text-align:center;font-size:10px;color:var(--lcr-ink-700);font-weight:600}.plan-tl__month-group .month-num{flex:1;min-width:0;overflow:hidden;text-align:center}.plan-tl__month-group .plan-input{flex:1;min-width:0}.plan-tl__row--section{min-height:20px;border-bottom:1px solid var(--lcr-brand-300);background:var(--lcr-brand-50)}.plan-tl__label--section{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);padding-top:6px;padding-bottom:2px;background:var(--lcr-brand-50)}.plan-tl__label--plan,.plan-tl__label--actual,.plan-tl__label--muted{color:var(--color-text)}.plan-tl__row--plan{background:var(--lcr-brand-50)}.plan-tl__row--plan .plan-tl__label,.plan-tl__row--plan .month-num,.plan-tl__row--plan .plan-input{color:var(--color-text);font-weight:700}.plan-tl__row--data .month-num,.plan-tl__row--data .plan-input{font-size:13px}.plan-tl__row--actual{background:transparent}.plan-tl__row--actual .plan-tl__label{background:#fff}.plan-tl__row--actual .plan-tl__label,.plan-tl__row--actual .month-num{color:var(--color-text);font-weight:400}.plan-tl__row--section~.plan-tl__row--section{padding-top:8px;border-top:1px solid var(--lcr-brand-400);background:transparent}.plan-tl__row--section~.plan-tl__row--section .plan-tl__label--section{background:#fff}.plan-tl__phase-legend{display:flex;gap:12px;padding:4px 12px 6px;font-size:10px}.plan-tl__horizon-hint{padding:8px 12px;font-size:12px;color:var(--color-text-muted);line-height:1.4;text-align:center}@media(max-width:640px){.plan-tl__label{width:72px;min-width:72px;font-size:10px;padding:0 4px 0 6px}.plan-tl__quarter{min-width:80px}.plan-tl__scroll{scroll-snap-type:x mandatory;max-height:320px}.plan-tl__quarter{scroll-snap-align:start}.plan-input{font-size:16px}.plan-tl__summary{gap:6px;padding:8px 10px}.plan-tl__save-status{margin-left:0}.plan-tl__summary .plan-action-btn--delete{min-height:28px;padding:4px 8px;font-size:12px;border-radius:var(--radius-sm)}.plan-tl__toolbar .plan-action-btn{min-height:44px;padding:10px 14px;font-size:14px}}.plan-timeline .drawer__btn{flex:0 0 auto}.drawer__btn--primary{background:var(--lcr-brand-800);color:#fff;flex:1}.drawer__btn--primary:hover{background:var(--lcr-brand-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}.drawer__btn--icon{flex:0 0 auto;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.drawer__btn--icon:hover{background:var(--color-row-hover)}.drawer__btn--delete,.drawer__btn--delete-subtle{background:none;color:var(--color-danger);border:1px solid #fca5a5;font-size:13px;font-weight:500;cursor:pointer;padding:8px 16px;border-radius:var(--radius-xl);flex:0 0 auto;transition:background .15s,border-color .15s}.drawer__btn--delete:hover,.drawer__btn--delete-subtle:hover{background:#fef2f2;border-color:var(--color-danger)}.drawer__btn--inline-delete{margin-top:12px;align-self:flex-start}@media(max-width:900px){.drawer-backdrop{align-items:flex-start;justify-content:center;padding:calc(var(--topbar-h, 130px) + 8px) .75rem .75rem}.drawer{border-radius:var(--radius-xl);width:100%;max-width:100%;min-height:0;max-height:calc(100vh - var(--topbar-h, 130px) - 16px);max-height:calc(100dvh - var(--topbar-h, 130px) - 16px);animation:modal-pop .2s cubic-bezier(.32,.72,0,1)}}@media(max-width:640px){.drawer__handle{display:none}.drawer__header{padding:12px 16px 6px}.drawer__title{font-size:16px;max-width:200px}.drawer__body{padding:12px 16px;gap:12px}.drawer__fields-row{flex-direction:column;gap:8px}.drawer__project-strip{flex-wrap:wrap;padding:8px 16px;gap:8px}.drawer__project-strip .drawer__field--name,.drawer__project-strip .drawer__field--notes{flex:1 1 100%}.drawer__project-strip .drawer__input{font-size:16px;padding:10px 12px}.drawer__tabs{padding:0 16px;overflow-x:auto;scrollbar-width:none}.drawer__tabs::-webkit-scrollbar{display:none}.drawer__tab{padding:10px 12px;font-size:12px;white-space:nowrap;flex-shrink:0}input,select,textarea{font-size:16px}.drawer__section-toggle{padding:12px;min-height:44px}.drawer__toggle{min-height:44px;padding:8px 12px}}.modal-overlay{position:fixed;inset:0;background:#28303e42;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-elevated-border);border-radius:var(--radius-xl);padding:24px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--glass-elevated-shadow)}.modal__title{font-size:18px;font-weight:700}.modal__desc{font-size:13px;color:var(--color-text-muted)}.modal__input{padding:10px 12px;border:var(--glass-input-border);border-radius:var(--radius-lg);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);font-size:15px;outline:none;width:100%;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.modal__input:focus{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.modal__input:disabled{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.modal__textarea{padding:10px 12px;border:var(--glass-input-border);border-radius:var(--radius-lg);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);font-size:14px;font-family:inherit;outline:none;width:100%;resize:vertical;min-height:80px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.modal__textarea:focus{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.modal__actions{display:flex;gap:8px}.modal__btn{padding:10px 16px;border:1px solid transparent;border-radius:var(--radius-xl);font-size:14px;cursor:pointer;-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);transition:all var(--transition-fast)}.modal__btn--primary{flex:1;font-weight:600;background:var(--glass-btn-primary-bg);border:var(--glass-btn-primary-border);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.modal__btn--primary:hover{background:var(--glass-btn-primary-bg-hover);transform:translateY(-1px);box-shadow:var(--glass-btn-primary-shadow-hover)}.modal__btn--secondary{flex:0 0 auto;font-weight:500;background:var(--glass-btn-secondary-bg);border:var(--glass-btn-secondary-border);box-shadow:var(--glass-btn-secondary-shadow);color:var(--color-text-secondary)}.modal__btn--secondary:hover{background:var(--glass-btn-secondary-bg-hover);color:var(--color-text)}.modal__btn--delete{flex:0 1 auto;font-weight:500;background:var(--glass-btn-danger-bg);border:var(--glass-btn-danger-border);box-shadow:var(--glass-btn-danger-shadow);color:#fff}.modal__btn--delete:hover{background:var(--glass-btn-danger-bg-hover);transform:translateY(-1px)}.modal__close{position:absolute;top:8px;right:8px;background:none;border:none;color:#dc2626;font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px}.modal__close:hover{background:#fee2e2}.pred-help-btn{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--lcr-brand-600);background:none;color:var(--lcr-ink-700);font-size:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;line-height:1;flex-shrink:0}.pred-help-btn:hover{border-color:var(--lcr-brand-800);color:var(--lcr-ink-800);background:var(--lcr-brand-100)}.pred-help-modal{max-width:420px;text-align:left}.pred-help__section{margin-bottom:14px}.pred-help__section:last-child{margin-bottom:0}.pred-help__subtitle{font-size:13px;font-weight:700;color:var(--color-text);margin-bottom:4px}.pred-help__formula{font-family:monospace;font-size:12px;background:var(--lcr-brand-100);border-radius:6px;padding:8px 12px;color:var(--lcr-brand-900);border:1px solid var(--lcr-brand-300)}.pred-help-modal p{font-size:12px;color:var(--lcr-brand-900);margin:0 0 4px;line-height:1.5}.pred-help__list{font-size:12px;color:var(--lcr-brand-900);margin:4px 0 0;padding-left:18px}.pred-help__list li{margin-bottom:2px}.pred-help__meta{border-top:1px solid var(--lcr-brand-300);padding-top:10px}.pred-help__table{font-size:12px;width:100%}.pred-help__table td{padding:2px 0}.pred-help__table td:first-child{color:var(--lcr-ink-700)}.pred-help__table td:last-child{text-align:right}.pred-help__confidence{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px}.pred-help__confidence--high{background:#dcfce7;color:#166534}.pred-help__confidence--medium{background:#fef9c3;color:#854d0e}.pred-help__confidence--low{background:var(--lcr-brand-100);color:var(--lcr-ink-700)}.timeline-slider-simple{position:sticky;bottom:0;left:0;right:0;padding:2px 12px 0;margin-bottom:-1px;background:#fff;border-top:1px solid var(--lcr-brand-200);-webkit-user-select:none;user-select:none;touch-action:none;z-index:10}.timeline-slider-simple__track{position:relative;height:8px;background:transparent;border-radius:4px;cursor:pointer}.timeline-slider-simple__thumb{position:absolute;top:0;bottom:0;background:var(--lcr-brand-400);border-radius:4px;cursor:grab;transition:background var(--transition-fast)}.timeline-slider-simple__thumb:hover{background:var(--lcr-brand-700)}.timeline-slider-simple__thumb:active{background:var(--lcr-brand-700);cursor:grabbing}.pred-sellout-label{font-size:10px;font-weight:600;color:var(--lcr-ink-800);white-space:nowrap}.plan-inline-btn{margin-left:8px;font-size:11px;font-weight:600;color:var(--color-primary);background:#fff;border:1px solid var(--lcr-brand-400);border-radius:var(--radius-sm);padding:1px 8px;cursor:pointer;transition:background .15s,border-color .15s}.plan-inline-btn:hover{background:var(--lcr-brand-200);border-color:var(--lcr-brand-500)}.cell--sales-bar{padding:0 4px;gap:2px;justify-content:flex-start;overflow:hidden;position:relative}.sell-pct-bar{position:absolute;left:0;top:0;bottom:0;pointer-events:none}.sell-pct-bar--reserved{background:#dcfce766;z-index:0}.sell-pct-bar--sold{background:#dcfce7d9;z-index:1}.sell-pct-bar--last{border-right:4px solid #3c8214}.building-row .sell-pct-bar--sold{background:#dcfce7b3}.building-row .sell-pct-bar--reserved{background:#dcfce74d}.unit-type-row .sell-pct-bar{display:none}.cell--sales-bar .building-stats{gap:2px;position:relative;z-index:1}.cell--sales-bar .stat-pill{min-width:16px;height:14px;padding:0 3px;font-size:10px}.cell--sales-bar .stat-sell-pct{font-size:10px;position:relative;z-index:2;background:#ffffffd9;padding:0 2px;border-radius:2px;display:flex;align-items:baseline;width:100%;gap:2px}.project-row:hover .cell--sales-bar .stat-sell-pct,.building-row:hover .cell--sales-bar .stat-sell-pct{background:transparent}.cell--sales-bar .stat-sell-pct:not(.stat-sell-pct--cols) .stock-part--pct{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:2px}.cell--sales-bar--clickable{cursor:pointer;position:relative}.cell--sales-bar--clickable .building-stats,.cell--sales-bar--clickable .stat-pill,.cell--sales-bar--clickable .stat-sell-pct{pointer-events:none}.cell--sales-bar--clickable:hover .building-stats{filter:brightness(1.1)}.sales-bar-open-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--lcr-ink-700, #5C6B78);opacity:.75;cursor:pointer;line-height:1;font-size:13px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:opacity .15s,background .15s}.sales-bar-open-btn:hover{opacity:1}.sales-bar-chart-icon{position:absolute;right:2px;top:50%;transform:translateY(-50%);color:var(--color-primary);opacity:.5;transition:opacity .15s;pointer-events:none}.cell--sales-bar--clickable:hover .sales-bar-chart-icon,.cell--sales-bar--clickable:focus-visible .sales-bar-chart-icon{opacity:1}@media(hover:none){.sales-bar-chart-icon{opacity:1}}.sales-curve-popover{position:fixed;z-index:var(--z-popover);width:440px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:12px 14px 10px;font-family:var(--font)}.sales-curve-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.sales-curve-title{font-size:12px;font-weight:700;color:#111827}.sales-curve-badge{font-size:10px;font-weight:600;color:#fff;padding:1px 6px;border-radius:8px}.sales-curve-close{margin-left:auto;background:none;border:none;font-size:16px;color:#9ca3af;cursor:pointer;line-height:1;padding:2px 4px}.sales-curve-close:hover{color:#374151}.sales-curve-svg{width:100%;height:auto;display:block}.sales-curve-footer{font-size:11px;color:#374151;text-align:center;padding:4px 0 0;border-top:1px solid #f3f4f6;margin-top:4px}.sales-curve-footer strong{color:var(--lcr-ink-800)}.sales-curve-remaining{color:#6b7280}.sales-curve-footer--unknown{color:#9ca3af;font-style:italic}.sales-curve-loading,.sales-curve-error{font-size:11px;color:#6b7280;text-align:center;padding:16px}.sales-curve-loading{display:flex;align-items:center;justify-content:center;gap:8px}.sales-curve-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--lcr-brand-300);border-top-color:var(--lcr-brand-800);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.sales-curve-error{color:#ef4444}@media(max-width:767px){:root{--col-name: 120px;--col-quarter: 68px;--col-sales-bar: 40px;--cell-height: 40px;--topbar-h: 130px}.app{padding:calc(.375rem + env(safe-area-inset-top,0px)) .5rem .5rem;gap:.375rem}@media(display-mode:standalone)and (pointer:coarse){.app{padding-top:calc(.75rem + env(safe-area-inset-top,0px))}}.cell--sales-bar .sell-pct-bar,.cell--sales-bar .stat-pill{display:none}.cell--sales-bar .stat-sell-pct{font-size:10px;font-weight:700}.cell--units{font-size:11px;padding:0 2px}.cell--name{font-size:12px;padding:0 4px}.project-row .cell--name{padding-right:28px}.drag-handle{display:none}.row-action{opacity:1}.row-action--edit{display:none}.row-category-dot{width:6px;height:6px;margin-right:3px}.project-row .cell--sales-bar,.building-pred-row .cell--sales-bar,.building-pred-header .cell--sales-bar,.row--header .cell--sales-bar{display:none}.project-row .col-scroll,.building-pred-row .col-scroll,.building-pred-header .col-scroll,.row--header .col-scroll{grid-template-columns:0px repeat(var(--quarter-count, 8),var(--col-quarter))}.cell--group{font-size:10px;letter-spacing:.04em}.group-add-btn{min-width:32px;min-height:32px}.group-delete-btn{min-width:32px;min-height:32px;right:40px}.header-add-btn{display:none}.grid-scroll{scroll-snap-type:x proximity;scroll-padding-left:calc(var(--col-name) + var(--col-sales-bar));border-radius:var(--radius-md);overflow:auto;-webkit-overflow-scrolling:touch}.cell--quarter{scroll-snap-align:start;font-size:10px}.gantt-bar{border-radius:3px}.gantt-bar__label{font-size:8px}.col-scroll{grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),var(--col-quarter))}input,select,textarea{font-size:16px}.phase-picker__row{grid-template-columns:28px 56px 1fr 1fr;gap:4px}.desktop-input__year{width:56px;padding:0 4px;font-size:13px}.desktop-input__q{padding:0 4px;font-size:13px}.row--header .cell{font-size:9px;letter-spacing:.02em}.building-row,.unit-type-toggle-row,.unit-type-row{display:none}.mob-expand-detail{display:flex;flex-direction:column;gap:0;padding:4px 10px 6px;background:var(--color-row-hover);border-bottom:1px solid var(--color-border);font-size:11px;animation:mob-detail-in .15s ease-out}@keyframes mob-detail-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mob-expand-detail__row{display:flex;align-items:center;justify-content:space-between;padding:1px 0}.mob-expand-detail__label{font-size:10px;font-weight:500;color:var(--color-text-muted, #888)}.mob-expand-detail__value{font-weight:700;font-size:11px}.mob-expand-detail__value--sold{color:#3c8214}.mob-expand-detail__value--reserved{color:#7bb954}.mob-expand-detail__value--free{color:var(--color-text-muted, #888)}.mob-expand-detail__bar-wrap{padding-top:2px}.mob-expand-detail__bar-track{position:relative;height:4px;width:100%;background:var(--color-border);border-radius:2px;overflow:hidden}.mob-expand-detail__bar-fill{position:absolute;top:0;bottom:0}.mob-expand-detail__bar-fill--sold{left:0;background:#3c8214;border-radius:2px 0 0 2px}.mob-expand-detail__bar-fill--reserved{background:#7bb954;border-radius:0 2px 2px 0}}@media(min-width:768px){.grid-body,.row{min-width:unset}.mob-expand-detail{display:none}.col-scroll{flex:1;min-width:0;grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),minmax(var(--col-quarter),1fr))}.grid-scroll{overflow-x:hidden;border-radius:var(--radius-lg)}.grid-scroll--kpi{overflow-x:auto}}.grid-scroll{scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.grid-scroll::-webkit-scrollbar{width:8px;height:8px}.grid-scroll::-webkit-scrollbar-track{background:transparent}.grid-scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.grid-scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.timeline-picker{display:flex;flex-direction:column;gap:12px;width:100%;max-width:760px}.ui-switch{position:relative;display:inline-flex;width:38px;height:22px;flex-shrink:0;vertical-align:middle}.ui-switch__track{position:absolute;inset:0;background:#78788038;border-radius:var(--radius-full);transition:background .26s cubic-bezier(.32,.72,.32,1)}.ui-switch__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 3px 6px #00000026,0 1px 2px #0000001f,0 0 0 .5px #0000000a;transition:transform .26s cubic-bezier(.32,.72,.32,1)}.ui-switch--on .ui-switch__track{background:var(--color-primary)}.ui-switch--on .ui-switch__thumb{transform:translate(16px)}.ui-switch__input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.phase-link-toggle{display:flex;justify-content:flex-end;padding:0 4px}.phase-link-toggle__label{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:var(--radius-full);background:var(--glass-track-bg);border:var(--glass-track-border);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.phase-link-toggle__label:hover{background:var(--lcr-brand-200)}.phase-link-toggle__label--on{background:var(--glass-pill-bg);color:var(--color-text);box-shadow:var(--glass-pill-shadow)}.phase-link-toggle__text{display:inline-flex;flex-direction:column;line-height:1.2}.phase-link-toggle__hint{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--color-text-muted);text-transform:uppercase;margin-top:2px}.phase-card{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:24px;padding:18px 22px;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);transition:box-shadow .18s ease}.phase-card:hover{box-shadow:var(--shadow-bento-hover)}.phase-card__head{display:flex;align-items:center;gap:12px;min-width:0}.phase-card__accent{width:10px;height:32px;border-radius:4px;flex-shrink:0;background:var(--lcr-brand-300)}.phase-card--presales .phase-card__accent{background:var(--color-presales)}.phase-card--construction .phase-card__accent{background:var(--color-construction)}.phase-card--mphase .phase-card__accent{background:#2b5f9e}.phase-card__title{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.phase-card__warning{display:inline-flex;align-items:center}.phase-card__fields{display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-width:0}.phase-card__field{display:flex;flex-direction:column;gap:6px;min-width:0}.phase-card__field-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.phase-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:background .15s;flex-shrink:0}.phase-toggle:hover{background:var(--lcr-brand-100)}.phase-picker-ctl{display:inline-flex;align-items:center;gap:10px}.phase-picker-ctl--disabled{opacity:.5;pointer-events:none}.phase-picker-ctl__seg{display:inline-flex;align-items:stretch;height:30px;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-md);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop)}.phase-picker-ctl__seg-btn{min-width:26px;padding:0 10px;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--color-text-muted);background:transparent;border:none;border-radius:calc(var(--radius-md) - 3px);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;line-height:1}.phase-picker-ctl__seg-btn:hover{color:var(--color-text)}.phase-picker-ctl__seg-btn--active{background:var(--glass-pill-bg);color:var(--color-text);box-shadow:var(--glass-pill-shadow)}.phase-picker-ctl__fields{display:inline-flex;align-items:center;gap:6px}.phase-drop{position:relative;min-width:64px}.phase-drop__trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:30px;padding:0 12px;border:var(--glass-btn-secondary-border);background:var(--glass-btn-secondary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);border-radius:var(--radius-md);font-family:inherit;font-size:12.5px;font-weight:600;color:var(--color-text);cursor:pointer;transition:background .15s,box-shadow .15s;box-shadow:var(--glass-btn-secondary-shadow)}.phase-drop__trigger:hover{background:var(--glass-btn-secondary-bg-hover)}.phase-drop__trigger--open{background:var(--glass-btn-secondary-bg-hover);box-shadow:var(--glass-btn-secondary-shadow),var(--glass-input-focus-ring)}.phase-drop__trigger--disabled{opacity:.5;cursor:not-allowed}.phase-drop__chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.phase-drop__trigger--open .phase-drop__chevron{transform:rotate(180deg)}.phase-drop__list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;padding:6px;scrollbar-width:thin}.phase-drop__list--portal{position:fixed;top:auto;left:auto;right:auto;z-index:var(--z-popover, 2000);background:var(--glass-pop-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);box-shadow:var(--glass-elevated-shadow)}.phase-drop__list::-webkit-scrollbar{width:6px}.phase-drop__list::-webkit-scrollbar-thumb{background:var(--lcr-brand-300);border-radius:3px}.phase-drop__item{display:block;width:100%;padding:8px 10px;border:none;background:none;text-align:left;font-family:inherit;font-size:13px;font-weight:500;color:var(--color-text);border-radius:calc(var(--radius-md) - 4px);cursor:pointer;transition:background .12s}.phase-drop__item:hover{background:var(--lcr-brand-100)}.phase-drop__item--active{background:var(--color-text);color:#fff;font-weight:700}.phase-drop__item--active:hover{background:#000}@media(max-width:1100px){.phase-card{grid-template-columns:1fr;gap:14px}.phase-card__head{min-width:0}}.phase-picker{display:flex;flex-direction:column;gap:6px}.phase-picker+.phase-picker{border-top:1px solid var(--color-border);padding-top:16px;margin-top:16px}.phase-picker__header{display:flex;align-items:center;justify-content:center;gap:6px}.phase-picker__row{display:grid;grid-template-columns:32px 72px 1fr 1fr;align-items:end;gap:8px}.phase-picker__row .phase-picker__title{padding-bottom:7px;white-space:nowrap}.phase-picker__row .phase-toggle{margin-bottom:2px}.phase-picker__row--marker{grid-template-columns:32px 72px 1fr 1fr}.phase-picker__row--marker .phase-picker__title{grid-column:2 / 4}.phase-picker__title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.phase-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;background:none;cursor:pointer;border-radius:6px;transition:background .15s;flex-shrink:0}.phase-toggle:hover{background:var(--color-row-hover)}.phase-picker--presales .phase-picker__title{color:var(--color-success)}.phase-picker--construction .phase-picker__title{color:#2563eb}.desktop-input{display:flex;flex-direction:column;align-items:center;gap:4px}.desktop-input__label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.desktop-input__fields{display:flex;gap:6px;align-items:center}.desktop-input__q{height:34px;padding:0 8px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:14px;font-weight:500;cursor:pointer;outline:none}.desktop-input__q:focus{border-color:var(--color-primary)}.desktop-input__year{width:82px;height:34px;padding:0 8px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:14px;font-weight:500;text-align:center;outline:none;cursor:pointer;-moz-appearance:textfield}.desktop-input__year::-webkit-inner-spin-button,.desktop-input__year::-webkit-outer-spin-button{-webkit-appearance:none}.desktop-input__year:focus{border-color:var(--color-primary)}.desktop-input__year--select{cursor:pointer;text-align:center;-moz-appearance:none}.yr-drop{position:relative}.yr-drop__trigger{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-weight:500}.yr-drop__trigger--disabled{opacity:.4;cursor:not-allowed}.yr-drop__list{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--color-border);border-radius:6px;box-shadow:0 4px 12px #0000001f;max-height:180px;overflow-y:auto;margin-top:2px;scrollbar-width:thin}.yr-drop__list::-webkit-scrollbar{width:4px}.yr-drop__list::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:2px}.yr-drop__item{display:block;width:100%;padding:6px 8px;border:none;background:none;text-align:center;font-size:13px;font-weight:500;cursor:pointer;color:var(--color-text)}.yr-drop__item:hover{background:var(--lcr-brand-100)}.yr-drop__item--active{background:var(--lcr-brand-800);color:#fff;font-weight:700}.yr-drop__item--active:hover{background:var(--lcr-brand-900)}.desktop-input__year--invalid{animation:year-shake .4s ease-out;border-color:var(--color-danger)}@keyframes year-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.desktop-input--disabled .desktop-input__label{opacity:.85}.desktop-input--disabled .desktop-input__q,.desktop-input--disabled .desktop-input__year{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.timeline-bar{margin-top:12px;padding:0 4px}.timeline-bar__track{position:relative;height:20px;background:var(--color-group-bg);border-radius:4px;overflow:hidden}.timeline-bar__segment{position:absolute;top:2px;height:16px;border-radius:3px;font-size:9px;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap}.timeline-bar__segment--presales{background:var(--color-presales)}.timeline-bar__segment--construction{background:var(--color-construction)}.timeline-bar__marker{position:absolute;top:0;width:2px;height:100%;background:#eab308}.timeline-bar__labels{display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-muted);margin-top:2px}.login-page{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:100%;overflow:hidden;background-image:linear-gradient(180deg,#7b909f,#6a7d8c 13%,#8a5f44 37%,#9a7058 55%,#45515f 77%,#738a9b);padding:2rem 1.5rem;box-sizing:border-box;font-family:var(--font);font-size:16px}.login-page:before{content:"";position:absolute;top:-25%;left:50%;width:820px;height:820px;max-width:130vw;transform:translate(-50%);background:radial-gradient(closest-side,rgba(255,255,255,.14) 0%,transparent 70%);pointer-events:none;animation:login-glow 18s ease-in-out infinite alternate}@keyframes login-glow{0%{transform:translate(-52%) translateY(0) scale(1);opacity:.8}to{transform:translate(-46%) translateY(48px) scale(1.2);opacity:1}}html:has(.login-page),body:has(.login-page),#root:has(.login-page){background-color:#738a9b;background-image:linear-gradient(180deg,#7b909f,#6a7d8c 13%,#8a5f44 37%,#9a7058 55%,#45515f 77%,#738a9b);background-repeat:no-repeat;background-attachment:fixed}.login-glass{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;width:100%;max-width:460px}.login-wordmark{display:inline-flex;align-items:center;gap:.875rem}.login-badge{display:flex;align-items:center;justify-content:center;width:74px;height:74px;flex-shrink:0;border-radius:1.375rem;background:#fff;box-shadow:0 10px 26px -10px #141e2d73,0 1px 3px #141e2d2e}.login-badge img{width:84%;height:84%;object-fit:contain}.login-wordmark-text{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.05;gap:4px}.login-wordmark-title{font-family:var(--font);font-weight:800;font-size:1.875rem;letter-spacing:.04em;color:#fff}.login-wordmark-byline{font-size:.875rem;letter-spacing:.02em;color:#ffffffa6}.login-headline{margin:.25rem 0 0;font-family:var(--font);font-weight:500;font-size:1.5rem;line-height:1.35;color:#ffffffeb}.login-action{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;margin-top:3rem}.login-tagline-logo{position:absolute;z-index:1;right:calc(env(safe-area-inset-right,0px) + 1.5rem);bottom:calc(env(safe-area-inset-bottom,0px) + 1.25rem);width:132px;max-width:38vw;height:auto;object-fit:contain;opacity:.5}.login-error{position:absolute;bottom:100%;left:0;right:0;margin-bottom:.75rem;box-sizing:border-box;padding:12px 16px;border-radius:16px;background:linear-gradient(180deg,#c4392e4d,#c4392e2e);border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px #ffffff40,0 8px 20px -10px #00000073;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)}.login-error-text{color:#fff!important;font-size:13px;font-weight:500;margin:0}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 16px;font-size:15px;font-weight:600;font-family:var(--font);color:#fff;background:linear-gradient(180deg,#ffffff2e,#ffffff14);border:1px solid rgba(255,255,255,.32);border-radius:1rem;cursor:pointer;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent;box-shadow:inset 0 1px #ffffff4d,0 8px 20px -10px #141e2d73;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);transition:background .15s,transform .1s,box-shadow .15s,border-color .15s}.login-btn:hover:not(:disabled){background:linear-gradient(180deg,#ffffff47,#ffffff29);border-color:#ffffff73;transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-btn__icon{display:inline-flex;align-items:center;flex-shrink:0}.login-btn__spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media(prefers-reduced-motion:reduce){.login-page:before{animation:none}}@media(max-width:480px){.login-page{justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 2rem) 1.5rem 5rem}.login-glass{transform:translateY(-1.5rem)}.login-action{position:absolute;top:100%;left:0;right:0;margin-top:4.5rem}.login-badge{width:60px;height:60px}.login-wordmark-title{font-size:1.5rem}.login-headline{font-size:1.25rem}.login-tagline-logo{width:116px;right:auto;left:50%;transform:translate(-50%)}}.topbar__user{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.row-category-dot{width:10px;height:10px;display:inline-block;flex-shrink:0;margin-right:4px;vertical-align:middle}.category-dot{width:10px;height:10px;display:inline-block;flex-shrink:0;vertical-align:middle}.building-stats,.group-stats-summary{display:flex;gap:3px;align-items:center}.stat-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 4px;border-radius:8px;font-size:10px;font-weight:700;font-style:normal;line-height:1}.stat-pill--sold{background:#dcfce7;color:#15803d}.stat-pill--reserved{background:#fef3c7;color:#92400e}.stat-pill--rented{background:var(--lcr-brand-200);color:#1e40af}.stat-pill--free{background:#f3f4f6;color:#374151}.stat-pill--blocked{background:#fee2e2;color:#991b1b}.stat-sell-pct{font-size:14px;font-weight:700;font-style:normal;color:var(--lcr-brand-900);white-space:nowrap;margin-left:2px}.stock-val{font-size:1.1em;font-weight:800}.stock-val:last-child{margin-left:auto}.stock-sep{font-size:1.1em;font-weight:400;opacity:.4}.stat-sell-detail{font-size:10px;font-weight:500;color:var(--lcr-ink-700)}.row-name{flex:1;min-width:0;cursor:pointer;padding:3px 8px;margin-left:-4px;border-radius:var(--radius-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--transition-fast),color var(--transition-fast)}.row-name:hover{background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.row-name:focus-visible{outline:2px solid var(--color-success);outline-offset:2px;border-radius:2px}.row-actions{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;align-items:center}.row-action{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--lcr-ink-700);cursor:pointer;border-radius:5px;opacity:.5;transition:opacity var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);padding:0}.row-action svg{transition:transform var(--transition-fast)}.project-row:hover .row-action,.row--prediction-expanded .row-action,.row-action--menu,.row-action--expand{opacity:1}.row-action:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-400);color:var(--lcr-ink-800)}.row-action:focus-visible{outline:2px solid var(--lcr-brand-300);outline-offset:1px;opacity:1}.row-action--edit:hover{color:var(--lcr-ink-800)}.row-action--expand{width:24px;height:24px;border-radius:50%;border-color:transparent;color:var(--lcr-ink-700)}.row-action--expand:hover{background:var(--lcr-brand-100);border-color:transparent;color:var(--lcr-brand-900)}.row-action--expand.row-action--expanded{opacity:1;color:#fff;background:var(--lcr-brand-800);border-color:transparent}.row-action--expand.row-action--expanded:hover{background:var(--lcr-brand-900);color:#fff}.row-action--expand.row-action--expanded svg{transform:rotate(180deg)}.row-action--loading{opacity:.5;animation:spin 1s linear infinite}.row-action--notes.row-action--has-notes{opacity:1;color:var(--lcr-ink-800)}.row-action--notes:hover{color:var(--lcr-ink-800)}.row-action--delete:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.row-action--menu.row-action--has-notes{opacity:1;color:var(--lcr-ink-800)}.row-action--menu.row-action--menu-open{opacity:1;background:var(--lcr-brand-100);border-color:var(--lcr-brand-400);color:var(--lcr-ink-800)}.row-action-menu{position:fixed;z-index:1000;display:flex;flex-direction:column;min-width:180px;padding:4px;background:#fff;border:1px solid var(--lcr-brand-300);border-radius:6px;box-shadow:0 4px 12px #0000001f;opacity:1}.row-action-menu__item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;background:transparent;color:var(--lcr-ink-800);font-size:12px;text-align:left;cursor:pointer;border-radius:4px;white-space:nowrap}.row-action-menu__item:hover{background:var(--lcr-brand-100)}.row-action-menu__item svg{flex:0 0 auto;color:var(--lcr-ink-700)}.row-action-menu__item--has-notes svg{color:var(--lcr-ink-800)}.row-action-menu__item--delete{color:#dc2626}.row-action-menu__item--delete:hover{background:#fef2f2}.row-action-menu__item--delete svg{color:#dc2626}@media(hover:none){.row-action{opacity:1}}.project-row.row--prediction-expanded:hover>.col-frozen .cell--name{background:var(--color-row-hover)}.prediction-empty-state{display:flex;align-items:center;gap:12px;padding:10px 16px;font-size:12px;color:var(--lcr-ink-700);border-bottom:1px solid var(--lcr-brand-300);background:var(--lcr-brand-50)}.prediction-empty-state__text{font-weight:500}.prediction-empty-state__hint{font-size:11px;color:var(--lcr-ink-700)}.prediction-empty-state__btn{padding:4px 12px;font-size:11px;font-weight:600;color:var(--lcr-ink-800);background:#fff;border:1px solid var(--lcr-brand-400);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;margin-left:auto}.prediction-empty-state__btn:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-800)}.prediction-empty-state__btn:focus-visible{outline:2px solid var(--lcr-brand-300);outline-offset:1px}.building-pred-row .cell{height:calc(var(--cell-height) - 2px);border-bottom:1px solid rgba(224,224,224,.5)}.building-pred-row .cell--in-plan-range{background:var(--lcr-brand-100)}.building-pred-row .cell--current-year-plan{background:#fef9c3}.building-pred-row--last{margin-bottom:0}.building-pred-row--planned-stock,.building-pred-row--last{position:relative}.building-pred-row--planned-stock:after,.building-pred-row--last:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lcr-brand-300);z-index:10;pointer-events:none}.building-pred-row .cell--name{padding-left:20px!important;font-size:11px!important;font-weight:700!important;color:var(--color-text-muted)}.building-pred-row .cell--units{font-size:11px;color:var(--color-text-muted)}.building-pred-row:hover .cell--in-plan-range{background:var(--lcr-brand-200)}.building-pred-header .cell{height:16px!important;border-bottom:none}.building-pred-header--with-years .col-scroll{grid-template-rows:auto auto}.building-pred-header--with-years .cell--year-bracket{height:18px!important;display:flex;align-items:flex-end;justify-content:center;border-bottom:none;background:transparent;position:relative;overflow:visible;border-right:none}.building-pred-header--with-years .cell--year-bracket--left-edge{border-left:1px solid var(--lcr-brand-500)}.building-pred-header--with-years .cell--year-bracket--right-edge,.building-pred-header--with-years .cell--year-bracket--divider{border-right:1px solid var(--lcr-brand-500)}.building-pred-header--with-years .cell--year-bracket--active{background:transparent}.year-bracket{display:block;position:absolute;top:3px;left:-4px;right:-4px;font-size:11px;font-weight:600;color:var(--color-text-muted);padding:2px 4px 0;text-align:center;z-index:10}.year-bracket:before{content:"";position:absolute;left:0;right:0;top:17px;height:10px;border-left:1.5px solid transparent;border-right:1.5px solid transparent;border-top:1.5px solid transparent;border-radius:3px 3px 0 0;z-index:10}.year-bracket--current{font-weight:700}.cell--year-bracket--current{background:#fef9c3}.building-pred-header .cell--in-plan-range{border-top:none}.building-pred-header--with-years .cell--quarter.cell--in-plan-range{border-top:2px solid var(--lcr-brand-300)}.building-pred-header--with-years .cell--yearly.cell--quarter{height:0!important;padding:0;overflow:hidden}.cell--current-quarter{position:relative}.cell--now-m1:after{right:calc(100% / 3 * 2)}.cell--now-m2:after{left:calc(100% / 3);right:calc(100% / 3)}.cell--now-m3:after{left:calc(100% / 3 * 2)}.month-group{display:flex;justify-content:space-around;align-items:center;width:100%;font-size:11px;gap:1px}.month-header{font-size:10px;color:var(--color-text-muted);font-weight:600;letter-spacing:0}.month-group--quarterly{justify-content:center}.month-group--quarterly .month-num{flex:none;font-size:12px;font-weight:600}.month-group--quarterly.month-header{font-size:10px}.cell--yearly{border-right:none!important}.cell--yearly-last{border-right:1px solid var(--lcr-brand-500)!important}.month-group--yearly{justify-content:center;overflow:visible;position:relative}.cell--yearly-first{overflow:visible;z-index:1}.cell--yearly-first .month-group--yearly{width:100%;margin-left:300%}.cell--yearly-first[style*="--yearly-span: 3"] .month-group--yearly{margin-left:200%}.cell--yearly-first[style*="--yearly-span: 2"] .month-group--yearly{margin-left:100%}.cell--yearly-first[style*="--yearly-span: 1"] .month-group--yearly{margin-left:0%}.cell--yearly:not(.cell--yearly-first) .month-group--yearly{display:none}.month-group--yearly.month-header{font-size:11px;font-weight:700}.month-num{flex:1;text-align:center;min-width:0}.month-num--actual{font-weight:700;color:#374151}.month-num--partial{font-weight:600;color:#1a1a1a}.month-num--predicted{color:var(--lcr-ink-700);font-weight:400}.month-num--current-year{color:var(--lcr-ink-800)}.month-num--excel-actual{font-weight:600;color:var(--color-success);opacity:.75}.month-num--planned{color:var(--lcr-ink-800);font-weight:600}.month-num--future,.month-num--not-yet{color:transparent}.month-num--missing{color:var(--lcr-ink-700);font-style:italic}.month-num--muted{color:var(--lcr-ink-700);opacity:.7}.month-num--zero-dash,.month-num--zero{color:var(--lcr-ink-700)}.delta--positive{color:#059669;font-weight:600}.delta--negative{color:#dc2626;font-weight:600}.comparison--future{opacity:.3}.comparison--incomparable{opacity:.5}.cell--future{background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px)}.cell--current-month{background-color:#0596690f}.building-name--planned{color:var(--lcr-ink-800)!important;font-style:italic;overflow:visible!important;text-overflow:clip!important}.building-free-label{font-size:10px;font-weight:600;color:var(--color-text-muted);white-space:nowrap}@media(max-width:767px){.building-pred-row .cell--name{font-size:10px!important;padding-left:10px!important}.building-pred-row .cell--quarter{font-size:10px}.building-pred-header .cell{height:14px!important}.pred-section__tag,.desk-frozen__label{display:none}}@media(min-width:768px){.pred-section{position:relative}.unit-type-inline-detail{display:inline-block;position:absolute;left:4px;z-index:200;font-size:11px;font-weight:400;font-style:normal;color:var(--color-text-muted);white-space:nowrap}.unit-type-inline-detail b{font-weight:600;color:var(--color-text-secondary);margin-right:4px}.pred-section__tag{position:absolute;top:0;bottom:0;left:calc(var(--col-name) + var(--col-sales-bar) - 48px - 20px);width:20px;z-index:3;writing-mode:vertical-rl;transform:rotate(180deg) translateZ(0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--color-text);background:#fff;border-right:1px solid var(--lcr-brand-300)}.desk-frozen{display:flex!important;align-items:stretch!important;justify-content:flex-end!important;padding:0!important;gap:0;overflow:visible!important;border-right:none!important;border-top:none!important;border-left:none!important;background:transparent!important;border-bottom:1px solid rgba(224,224,224,.5)!important;box-shadow:none!important}.desk-frozen__label{display:flex;align-items:center;justify-content:center;font-weight:600;font-size:10px;color:var(--color-text);background:#fff;padding:0;width:48px;min-width:48px;max-width:48px;height:calc(var(--cell-height) - 2px);border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid rgba(224,224,224,.5);box-shadow:none}.pred-section .cell--name{background:transparent!important;border-right:none!important;border-top:none!important;border-left:none!important;border-bottom:1px solid rgba(224,224,224,.5)!important;box-shadow:none!important}.pred-section .col-frozen{background:transparent}.pred-section .cell--units{background:transparent!important;border-right:none!important;border-top:none!important;border-left:none!important;border-bottom:1px solid rgba(224,224,224,.5)!important;box-shadow:none!important;color:transparent}.pred-section .building-pred-row{background:transparent}.pred-section .cell--name{font-size:0!important;color:transparent!important}.pred-section .cell--name *{display:none}.pred-section .cell--name,.pred-section .col-frozen{overflow:visible!important}.pred-section .cell--name .unit-type-inline-detail,.pred-section .cell--name .unit-type-inline-detail *{display:inline!important;font-size:11px!important;color:var(--color-text-muted)!important}.pred-section .cell--name .unit-type-inline-detail b{font-weight:600!important;color:var(--color-text-secondary)!important}.pred-section .cell--name .summary-row__top-label{display:inline-block!important;font-size:13px!important;font-weight:700!important;font-style:normal!important;color:var(--lcr-ink-800, #222)!important;text-transform:uppercase;letter-spacing:.3px;padding-left:12px}.building-pred-header .cell--name,.building-pred-header .cell--units,.building-pred-header .cell--sales-bar{background:transparent!important;border:none!important;box-shadow:none!important}.building-pred-header .col-frozen{background:transparent}.building-pred-header .cell--in-plan-range{background:#f5f5f5}.pred-section--plan .building-pred-row{font-style:italic}.pred-section--plan .pred-section__tag{font-style:normal;background:#f5f5f5}.pred-section--plan .desk-frozen__label,.pred-section--plan .cell--in-plan-range{background:#f5f5f5}.pred-section--actual .cell--in-plan-range,.pred-section--actual .cell--current-year-plan{background:#fff}}.summary-rows{--summary-bg: #f3f4f6;border-bottom:1px solid var(--lcr-brand-300)}.summary-rows .building-pred-row{display:flex}.summary-rows .cell--name,.summary-rows .desk-frozen,.summary-rows .desk-frozen__label,.summary-rows .pred-section--plan .cell--sales-bar,.summary-rows .pred-section--actual .cell--sales-bar{background:transparent!important}.summary-rows .pred-section--plan .desk-frozen__label{background:#f5f5f5!important}.summary-rows .pred-section--actual .desk-frozen__label{background:#fff!important}.summary-rows .cell--name,.summary-rows .cell--sales-bar,.summary-rows .desk-frozen,.summary-rows .desk-frozen__label,.building-pred-row .cell--name,.building-pred-row .cell--sales-bar,.building-pred-row .desk-frozen,.building-pred-row .desk-frozen__label{border-right:none!important;border-bottom:none!important}.summary-rows .col-frozen{position:sticky;left:0;z-index:2;flex-shrink:0;width:var(--col-name)}.summary-rows .summary-header,.summary-rows .summary-header .col-frozen{background:var(--lcr-brand-100)}.summary-rows .summary-row__label{font-weight:600;font-size:11px;color:var(--lcr-ink-800);text-transform:none;letter-spacing:.02em}.summary-rows .pred-section{position:relative}.summary-rows .pred-section__tag{position:absolute;top:0;bottom:0;left:calc(var(--col-name) + var(--col-sales-bar) - 48px - 20px);width:20px;height:auto;writing-mode:vertical-rl;transform:rotate(180deg) translateZ(0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;font-size:8px;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-align:center;padding:0;color:var(--color-text);z-index:3;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--lcr-brand-300)}.summary-rows .pred-section--plan .pred-section__tag{background:#f5f5f5}.summary-rows .pred-section--actual .pred-section__tag{background:#fff}.pred-section--plan .month-num,.psm-section--plan .psm-month-num{font-style:italic!important;font-weight:700!important;color:#374151!important}.pred-section--actual .month-num,.psm-section--actual .psm-month-num{font-style:normal!important;font-weight:400!important;color:#000!important}.summary-rows .pred-section--plan .building-pred-row{font-style:italic}.summary-rows .pred-section--plan .col-frozen{background:transparent}.summary-rows .pred-section--plan .cell--in-plan-range{background:#f5f5f5}.summary-rows .pred-section--actual{border-top:none}.summary-rows .pred-section--actual .col-frozen{background:transparent}.summary-rows .pred-section--actual .cell--in-plan-range{background:#fff}.summary-rows .building-pred-row--last{margin-bottom:0}.summary-rows .desk-frozen__label{font-size:10px;font-weight:600;color:var(--color-text);font-style:normal}@media(max-width:767px){.summary-rows .pred-section__tag{display:none}.summary-rows .summary-row__label{font-size:10px;padding-left:8px}.summary-rows .col-frozen{width:var(--col-name)}.summary-rows .col-scroll{grid-template-columns:0px repeat(var(--quarter-count, 8),var(--col-quarter))}.summary-rows .desk-frozen__label{font-size:9px}}.ps-timeline{display:flex;position:relative;background:var(--lcr-brand-100);border-top:1px solid var(--lcr-brand-300);border-bottom:2px solid var(--lcr-brand-400)}.ps-timeline .col-frozen{position:sticky;left:0;z-index:3;flex-shrink:0;width:var(--col-name);background:var(--lcr-brand-100)}.ps-timeline__label{display:flex;align-items:center;height:40px;padding:0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--lcr-ink-800)}.ps-timeline .col-scroll{display:grid;grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),var(--col-quarter));flex-shrink:0;position:relative;z-index:1}.ps-timeline__cell{display:flex;flex-direction:column;justify-content:center;align-items:center;height:40px;padding:4px 2px;border-left:1px solid var(--lcr-brand-200);background:var(--lcr-brand-100);gap:1px}.ps-timeline__cell--bar{background:var(--lcr-brand-150, var(--lcr-brand-100));border-left:none;justify-content:center;align-items:flex-start;padding-left:8px}.ps-timeline__value{font-size:10px;font-weight:600;color:var(--lcr-brand-900);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.ps-timeline__value--units{font-weight:700;color:var(--color-text)}.ps-timeline__value--revenue{font-size:9px;color:var(--lcr-ink-700)}.ps-timeline__value--avg{font-size:9px;color:var(--lcr-ink-700);font-style:italic}.ps-timeline__cell--empty{opacity:.5}.ps-timeline__cell--empty .ps-timeline__value{color:var(--lcr-ink-700)}.ps-timeline__cell--current{background:var(--lcr-brand-200)}.ps-timeline__cell--year-start{border-left:1.5px solid var(--lcr-brand-400)}.ps-timeline__cell--in-plan{background:var(--lcr-brand-50)}@media(max-width:767px){.ps-timeline .col-frozen{width:var(--col-name)}.ps-timeline .col-scroll{grid-template-columns:0px repeat(var(--quarter-count, 8),var(--col-quarter))}.ps-timeline__cell--bar{display:none}.ps-timeline__label{font-size:10px;padding:0 8px}.ps-timeline__value{font-size:9px}.ps-timeline__value--revenue,.ps-timeline__value--avg{font-size:8px}}@media(min-width:768px)and (max-width:1023px){.ps-timeline .col-scroll{grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),var(--col-quarter))}}@media(min-width:1600px){.ps-timeline .col-scroll{flex:1;min-width:0;grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count, 8),minmax(var(--col-quarter),1fr))}}.plan-timeline{border:1px solid var(--lcr-brand-300);border-radius:var(--radius-lg);background:var(--lcr-brand-50);overflow:hidden}.plan-timeline--locked{display:flex;align-items:center;justify-content:center;min-height:100px;border-style:dashed;border-color:var(--lcr-brand-400)}.plan-timeline__locked-msg{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;text-align:center;color:var(--lcr-ink-700);font-size:13px;line-height:1.5}.plan-locked__checklist{display:flex;gap:12px;font-size:13px;font-weight:600}.plan-locked__ok{color:var(--color-success)}.plan-locked__missing{color:#dc2626}.drawer__status-badge{display:inline-block;padding:1px 8px;border-radius:9999px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fff;white-space:nowrap}.drawer__status-badge--planned{background:var(--lcr-brand-800)}.drawer__status-badge--active{background:var(--color-success)}.drawer__status-badge--closed{background:#f97316}.plan-timeline__info-banner{padding:6px 12px;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:6px;font-size:12px;color:var(--lcr-ink-700);margin-bottom:8px;text-align:center}.plan-timeline__info-banner--warning{background:#fef9c3;border-color:#fde68a;color:#92400e}.plan-timeline__info-banner--success{background:var(--color-success-bg);border-color:#bbf7d0;color:var(--color-success)}.plan-auto-hint{font-size:10px;color:var(--lcr-ink-700);margin-top:2px;text-align:center}.plan-timeline__header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--lcr-brand-300);flex-wrap:wrap;gap:4px}.plan-timeline__title{font-weight:700;font-size:13px;color:var(--color-text)}.plan-timeline__meta{font-size:12px;color:var(--lcr-ink-700)}.plan-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.plan-status--saving{color:var(--lcr-ink-700);background:var(--lcr-brand-100)}.plan-status--error{color:#dc2626;background:#fef2f2}.plan-status--success{color:var(--color-success);background:#f0fdf4}.plan-status__retry-btn{padding:2px 8px;margin-left:6px;font-size:11px;font-weight:600;color:#dc2626;background:#fef2f2;border:1px solid #dc2626;border-radius:4px;cursor:pointer;transition:background .15s,color .15s}.plan-status__retry-btn:hover{color:#fff;background:#dc2626}.plan-timeline__actions{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-top:1px solid var(--lcr-brand-300)}.plan-timeline__actions-primary{display:flex;gap:4px;flex-wrap:wrap;justify-content:space-between}.plan-timeline__actions-danger{display:flex;gap:4px;padding-top:8px;margin-top:4px;border-top:1px dashed #fecaca;justify-content:flex-end}.plan-action-btn{font-size:13px;padding:6px 14px;min-height:36px;border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.plan-action-btn:hover{background:var(--color-row-hover)}.plan-action-btn:disabled{opacity:.5;cursor:not-allowed}.plan-action-btn kbd{font-size:9px;padding:1px 4px;background:#0000000f;border-radius:3px;margin-left:4px;font-family:inherit}.plan-action-btn--secondary{background:var(--color-bg);border-color:var(--color-border)}.plan-action-btn--primary{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff;font-weight:600}.plan-action-btn--primary:hover:not(:disabled){background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.plan-action-btn--delete{color:var(--color-danger);border-color:var(--color-border)}.plan-action-btn--delete:hover{background:#fef2f2}.plan-action-btn--restore{color:var(--lcr-ink-800);border-color:var(--lcr-brand-400);background:var(--lcr-brand-100)}.plan-action-btn--restore:hover{background:var(--lcr-brand-200)}.plan-action-btn--undo{color:var(--lcr-ink-800);border-color:var(--lcr-brand-300);background:var(--lcr-brand-100);font-weight:500}.plan-action-btn--undo:hover:not(:disabled){background:var(--lcr-brand-200);border-color:var(--lcr-brand-400)}.plan-action-btn--ghost{background:transparent;border-color:transparent;color:var(--lcr-ink-800)}.plan-action-btn--ghost:hover:not(:disabled){background:var(--lcr-brand-100);border-color:var(--lcr-brand-300)}.plan-tl__actions{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border-bottom:1px solid var(--lcr-brand-200);flex-wrap:wrap;background:var(--lcr-brand-50, #f8fafc)}.plan-tl__edit-anchor{position:relative;display:flex}.plan-tl__edit-toggle{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--lcr-brand-300);background:#fff;color:var(--lcr-ink-800);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s,color .12s,border-color .12s}.plan-tl__edit-toggle:hover:not(:disabled){background:var(--lcr-brand-100);border-color:var(--lcr-brand-500)}.plan-tl__edit-toggle--active{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.plan-tl__edit-toggle--active:hover:not(:disabled){background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.plan-tl__edit-toggle__caret{flex-shrink:0;opacity:.85;transition:transform var(--transition-fast)}.plan-tl__edit-toggle[aria-expanded=true] .plan-tl__edit-toggle__caret{transform:rotate(180deg)}.plan-tl__edit-actions{display:inline-flex;align-items:center;gap:6px}.plan-tl__undo-pill{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--lcr-brand-300);background:var(--lcr-brand-100);color:var(--lcr-ink-800);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .12s,border-color .12s}.plan-tl__undo-pill:hover:not(:disabled){background:var(--lcr-brand-200);border-color:var(--lcr-brand-400)}.plan-tl__undo-pill:disabled{opacity:.55;cursor:not-allowed}.plan-tl__edit-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--lcr-brand-200);background:var(--lcr-brand-50, #f8fafc);animation:plan-tl-popover-in .14s ease-out}.plan-tl__edit-row .plan-action-card{flex:0 0 auto;min-height:52px}.plan-tl__edit-row--range{flex-direction:column;align-items:stretch;gap:8px}.plan-tl__edit-range{display:flex;flex-direction:column;gap:10px}.plan-tl__edit-dropdown__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.plan-tl__edit-back{align-self:flex-start;background:transparent;border:none;color:var(--color-text-secondary);font-size:12px;font-weight:600;padding:2px 4px;margin:0 0 4px -4px;cursor:pointer;border-radius:var(--radius-sm);font-family:inherit}.plan-tl__edit-back:hover{color:var(--color-text);background:var(--lcr-brand-100)}.plan-tl__range-inline__field{display:flex;flex-direction:column;gap:4px;margin:0}.plan-tl__range-inline__field>span:first-child{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.plan-action-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:52px;padding:7px 14px;border-radius:var(--radius-md);border:1px solid var(--lcr-brand-300);background:#fff;color:var(--color-text);cursor:pointer;font-family:inherit;text-align:left;transition:border-color .15s,background .15s,color .15s}.plan-action-card:hover:not(:disabled){border-color:var(--lcr-brand-500);background:var(--lcr-brand-100)}.plan-action-card:disabled{opacity:.55;cursor:not-allowed}.plan-action-card__title{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap}.plan-action-card__caret{flex-shrink:0;opacity:.7;transition:transform var(--transition-fast)}.plan-action-card[aria-expanded=true] .plan-action-card__caret{transform:rotate(180deg)}.plan-action-card__caption{font-size:11px;font-weight:400;color:var(--color-text-secondary);line-height:1.25;white-space:nowrap}.plan-action-card--primary{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.plan-action-card--primary .plan-action-card__caption{color:#ffffffc7}.plan-action-card--primary:hover:not(:disabled){background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.plan-action-card--undo{background:var(--lcr-brand-100);border-color:var(--lcr-brand-300);color:var(--lcr-ink-800)}.plan-action-card--undo .plan-action-card__caption{color:var(--lcr-ink-700)}.plan-action-card--undo:hover:not(:disabled){background:var(--lcr-brand-200);border-color:var(--lcr-brand-400)}.plan-action-card--delete{color:var(--color-danger);border-color:var(--color-border)}.plan-action-card--delete .plan-action-card__caption{color:var(--color-text-secondary)}.plan-action-card--delete:hover:not(:disabled){background:#fef2f2;border-color:var(--color-danger)}.plan-action-card--ghost{background:transparent;border-color:var(--lcr-brand-200);color:var(--color-text-secondary)}.plan-action-card--ghost:hover:not(:disabled),.plan-action-card--ghost[aria-expanded=true]{background:var(--lcr-brand-100);border-color:var(--lcr-brand-400);color:var(--color-text)}.plan-tl__edit-menu-wrap{position:relative;display:flex}.plan-tl__edit-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;display:flex;flex-direction:column;min-width:320px;padding:6px;border-radius:var(--radius-md);border:1px solid var(--lcr-brand-300);background:#fff;box-shadow:var(--shadow-bento);animation:plan-tl-popover-in .14s ease-out}.plan-tl__edit-menu__item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);text-align:left;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}.plan-tl__edit-menu__item:hover:not(:disabled){background:var(--lcr-brand-100)}.plan-tl__edit-menu__item:disabled{opacity:.5;cursor:not-allowed}.plan-tl__edit-menu__title{font-size:13px;font-weight:600;line-height:1.25}.plan-tl__edit-menu__caption{font-size:11.5px;color:var(--color-text-secondary);line-height:1.3}.plan-tl__edit-menu__item--danger{color:var(--color-danger)}.plan-tl__edit-menu__item--danger:hover:not(:disabled){background:#fef2f2}.plan-tl__edit-menu__item--danger .plan-tl__edit-menu__caption{color:var(--color-text-secondary)}.plan-tl__edit-menu__divider{height:1px;margin:4px 6px;background:var(--lcr-brand-200)}.plan-tl__edit-menu__item .plan-tl__edit-menu__title{display:flex;align-items:center;gap:6px}.plan-tl__edit-menu__chevron{margin-left:auto;font-size:16px;color:var(--color-text-secondary);font-weight:400}.plan-tl__edit-menu--actions{min-width:380px}.plan-tl__edit-menu--range{min-width:480px;padding:12px 14px 14px;gap:10px}.plan-tl__edit-menu__back{align-self:flex-start;background:transparent;border:none;color:var(--color-text-secondary);font-size:12px;font-weight:600;padding:2px 4px;margin:0 0 4px -4px;cursor:pointer;border-radius:var(--radius-sm);font-family:inherit}.plan-tl__edit-menu__back:hover{color:var(--color-text);background:var(--lcr-brand-100)}.plan-tl__range-popover-wrap{position:relative;display:flex}.plan-tl__range-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:200;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--radius-md);border:1px solid var(--lcr-brand-300);background:#fff;box-shadow:var(--shadow-bento);min-width:520px;animation:plan-tl-popover-in .14s ease-out}@keyframes plan-tl-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.plan-tl__range-popover__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.plan-tl__range-popover__row{display:flex;gap:10px;align-items:flex-start}.plan-tl__range-popover__field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.plan-tl__range-popover__field>span:first-child{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.plan-tl__range-popover__field input,.plan-tl__range-popover__field select{height:36px;border-radius:var(--radius-md);font-size:13px}.month-select{display:flex;gap:6px;align-items:stretch}.month-select__field{height:36px;padding:0 28px 0 10px;border-radius:var(--radius-md);border:1px solid var(--lcr-brand-300);background:#fff;color:var(--color-text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23475569' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .12s,background-color .12s}.month-select__field:hover{border-color:var(--lcr-brand-500)}.month-select__field:focus{outline:none;border-color:var(--lcr-brand-700);box-shadow:0 0 0 3px color-mix(in srgb,var(--lcr-brand-500) 18%,transparent)}.month-select__field--year{flex:0 0 90px}.month-select__field--month{flex:1 1 auto;min-width:130px}.plan-tl__range-popover__meta{font-size:12px;color:var(--color-text-secondary);line-height:1.4}.plan-tl__range-popover__actions{display:flex;justify-content:flex-end;gap:8px}.plan-tl__actions .plan-action-btn,.plan-tl__range-inline input,.plan-tl__range-inline select{height:36px;border-radius:var(--radius-md);font-size:13px}.plan-tl__actions .plan-action-btn{min-height:36px;padding:0 16px;font-weight:600;line-height:1}.plan-tl__range-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plan-tl__range-inline .plan-tl__auto-range-field{flex-direction:row;align-items:center;gap:6px;flex:0 0 auto;min-width:0;margin:0;text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;color:var(--color-text-secondary);font-weight:700}.plan-tl__range-inline .plan-tl__auto-range-field>span:first-child{display:inline-block;white-space:nowrap}.plan-tl__range-inline .plan-tl__auto-range-reset{align-self:center;margin:0 0 0 4px;font-size:11.5px}.plan-years{position:relative;display:flex;align-items:center;gap:4px;padding:6px 12px;overflow:hidden}.plan-years:before,.plan-years:after{content:"";position:absolute;top:0;bottom:0;width:24px;pointer-events:none;z-index:1}.plan-years:before{left:0;background:linear-gradient(to right,var(--lcr-brand-50),transparent)}.plan-years:after{right:0;background:linear-gradient(to left,var(--lcr-brand-50),transparent)}.plan-years__scroll{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1}.plan-years__scroll::-webkit-scrollbar{display:none}.plan-years__pill{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;border:1px solid var(--lcr-brand-300);background:#fff;cursor:pointer;white-space:nowrap;position:relative;transition:all .15s}.plan-years__pill:hover{border-color:var(--lcr-brand-400);background:var(--lcr-brand-100)}.plan-years__pill--active{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.plan-years__pill--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.plan-years__pill--has-data:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--lcr-brand-800)}.plan-years__pill--active.plan-years__pill--has-data:after{background:#fff}.plan-years__bars{display:flex;gap:4px;padding:0 12px 4px;align-items:flex-end;height:40px}.plan-years__bar-col{flex:1;display:flex;flex-direction:column;align-items:center;cursor:pointer;max-width:48px}@media(hover:hover){.plan-years__bar-col:hover{filter:brightness(1.08)}}.plan-years__bar{width:100%;background:var(--lcr-brand-300);border-radius:2px 2px 0 0;transition:height .2s;min-width:12px}.plan-years__bar-col--active .plan-years__bar{background:var(--color-primary)}.plan-years__bar-val{font-size:9px;color:var(--lcr-ink-700);line-height:1.2}.plan-years__bar-col--active .plan-years__bar-val{color:var(--color-primary);font-weight:600}.plan-years__arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;font-size:16px;font-weight:700;color:var(--lcr-ink-700);flex-shrink:0;cursor:pointer;background:none;border:1px solid var(--lcr-brand-300);transition:background .15s}.plan-years__arrow:hover{background:var(--lcr-brand-300);color:var(--color-text)}.plan-year-grid{padding:8px 12px 12px}.plan-year-grid__header{display:flex;align-items:flex-end;gap:0;margin-bottom:4px}.plan-year-grid__label{width:48px;min-width:48px}.plan-year-grid__quarter{flex:1;display:flex;flex-direction:column;align-items:center;border-left:1px solid var(--lcr-brand-300);padding:0 2px}.plan-year-grid__quarter:first-of-type{border-left:none}.plan-year-grid__q-label{font-size:10px;font-weight:700;color:var(--lcr-ink-700);margin-bottom:2px}.plan-year-grid__months{display:flex;width:100%;justify-content:space-around}.plan-year-grid__months span{flex:1;text-align:center;font-size:10px;color:var(--lcr-ink-700);font-weight:600}.plan-year-grid__divider{height:10px;border-bottom:1px solid var(--lcr-brand-300);margin-top:2px}.plan-year-grid__section{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--lcr-ink-700);padding:6px 0 2px;border-bottom:1px solid var(--lcr-brand-300)}.plan-year-grid__section--toggle{cursor:pointer;background:none;border:none;border-bottom:1px solid var(--lcr-brand-300);text-align:left;width:100%;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--lcr-ink-700);padding:6px 0 2px;transition:color .15s}.plan-year-grid__section--toggle:hover{color:var(--color-text)}.plan-year-grid__row{display:flex;align-items:center;min-height:32px}.plan-year-grid__row+.plan-year-grid__row{border-top:1px solid rgba(224,224,224,.3)}.plan-year-grid__row-label{width:48px;min-width:48px;font-size:11px;font-weight:700}.plan-year-grid__row-label--stock{color:var(--lcr-ink-700);font-weight:600}.plan-year-grid__row-quarter{flex:1;display:flex;justify-content:space-around;align-items:center;gap:4px;padding:2px 4px;border-left:1px solid var(--lcr-brand-300)}.plan-year-grid__row-quarter:first-of-type{border-left:none}.month-num--stock{color:var(--color-text);font-weight:500;font-size:11px}.month-num--negative{color:#dc2626;font-weight:600}.plan-input{width:36px;flex:1;text-align:center;padding:4px 2px;border:1px solid var(--lcr-brand-500);border-radius:3px;font-size:13px;background:var(--lcr-brand-100);color:var(--lcr-ink-800);font-weight:600}.plan-input:focus{border-color:var(--lcr-brand-800);outline:none;box-shadow:0 0 0 2px #6b7b8833}.plan-input::-webkit-inner-spin-button,.plan-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.plan-input[type=number]{-moz-appearance:textfield}.plan-input--presales{border-left:3px solid var(--color-presales);background:#92d0501a}.plan-input--construction{border-left:3px solid var(--color-construction);background:#5b9bd51a}.plan-input--both{border-left:3px solid var(--color-presales);border-right:3px solid var(--color-construction);background:linear-gradient(90deg,#92d05024 0% 50%,#5b9bd524 50% 100%)}.plan-input--outside{background:var(--lcr-brand-50);color:var(--lcr-ink-700);cursor:not-allowed;opacity:.55;border-color:transparent}.plan-input--outside:focus,.plan-input--outside:hover{background:var(--lcr-brand-50);border-color:transparent;outline:none}.plan-input--readonly{background:var(--color-success-bg);color:var(--color-text-muted);cursor:not-allowed;border-color:transparent}.plan-input--readonly:focus,.plan-input--readonly:hover{background:var(--color-success-bg);border-color:transparent;outline:none}.plan-input--selected{background:var(--lcr-brand-200)!important;outline:2px solid var(--lcr-brand-800);outline-offset:-1px;z-index:1}.plan-input--selected:focus{outline:2px solid var(--lcr-brand-800);box-shadow:0 0 0 2px #6b7b8840}.plan-input--explicit-zero{background:var(--lcr-brand-50, #f3f4f6)}.plan-tl__preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;margin:8px 12px 0;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-300, #d1d8de);border-radius:var(--radius-lg, 12px);flex-wrap:wrap}.plan-tl__preview-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.plan-tl__preview-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-sm, 6px);background:var(--lcr-brand-800);color:#fff}.plan-tl__preview-label{font-weight:600;color:var(--color-text)}.plan-tl__preview-meta{font-size:12px;color:var(--color-text-muted)}.plan-tl__preview-actions{display:flex;align-items:center;gap:8px}.plan-input--preview{background:var(--lcr-brand-100)!important;border-color:var(--lcr-brand-400, #b0bcc7)!important;font-weight:600;color:var(--lcr-brand-900, #1f2937)}.plan-tl--preview .plan-input:not(.plan-input--preview):not(.plan-input--outside){opacity:.6}.ptg{border-collapse:collapse;font-size:12px;white-space:nowrap;font-family:var(--font);font-variant-numeric:tabular-nums}.ptg__corner,.ptg__period-corner{position:sticky;left:0;z-index:60;background:#fff;box-shadow:1px 0 0 var(--lcr-brand-200)}.ptg__period-corner{text-align:center;padding:4px 8px;border-bottom:1px solid var(--lcr-brand-300)}.ptg__cell--yr-span{padding:0;text-align:center;vertical-align:bottom;border-right:none}.ptg__year-bracket{display:block;position:relative;font-size:11px;font-weight:700;color:var(--lcr-ink-800);padding:6px 4px 3px;margin:0 3px}.ptg__year-bracket:before{content:"";position:absolute;left:0;right:0;top:18px;height:8px;border-left:1.5px solid var(--lcr-brand-400);border-right:1.5px solid var(--lcr-brand-400);border-top:1.5px solid var(--lcr-brand-400);border-radius:3px 3px 0 0}.ptg__year-bracket--current:before{border-color:var(--lcr-brand-700)}.ptg__cell{min-width:56px;padding:4px 6px;text-align:center;color:var(--color-text);border-right:1px solid var(--lcr-brand-100);font-weight:700}.ptg__cell--mh{font-weight:700;font-size:11px;color:var(--lcr-ink-800);border-bottom:1px solid var(--lcr-brand-300);padding:5px 6px}.ptg__cell--now{position:relative}.ptg__cell--now:after{content:"";position:absolute;inset:0;border-left:2px solid #e8890c;border-right:2px solid #e8890c;pointer-events:none;z-index:50}.ptg__cell--range-mark{position:relative}.ptg__cell--range-mark:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--lcr-brand-500) 14%,transparent);border-left:2px solid var(--lcr-brand-700);border-right:2px solid var(--lcr-brand-700);pointer-events:none;z-index:45}.ptg thead th.ptg__corner{min-width:90px}.ptg__label{position:sticky;left:26px;z-index:60;background:#fff;padding:5px 12px;font-weight:700;font-size:11px;color:var(--color-text);text-align:left;min-width:64px;box-shadow:1px 0 0 var(--lcr-brand-200)}.ptg__section--plan{font-style:italic}.ptg__section--plan .ptg__label,.ptg__section--plan .ptg__cell,.ptg__section--plan .ptg__row--stock,.ptg__section--plan .ptg__row--stock .ptg__label{background:#f5f5f5}.ptg__cell--neg{color:var(--color-danger);font-weight:700}.ptg__section--actual .ptg__row:first-child td{border-top:2px solid var(--lcr-brand-300)}.ptg__section--actual .ptg__cell,.ptg__section--actual .ptg__label,.ptg__section--actual .ptg__cell--actual,.ptg__section--actual .ptg__cell--free{color:var(--lcr-ink-800);font-size:11px;font-weight:700}.ptg__section--actual .ptg__cell--actual,.ptg__section--actual .ptg__cell--free{font-size:12px}.ptg__cell--input,.ptg__cell--agg{padding:2px}.ptg__input{width:100%;min-width:48px;height:28px;padding:2px 6px;border:1px solid transparent;border-radius:var(--radius-sm, 4px);background:transparent;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:700;text-align:center;color:var(--color-text);font-variant-numeric:tabular-nums;outline:none;transition:background .12s,border-color .12s;-moz-appearance:textfield;appearance:textfield}.ptg__section--plan .ptg__input{font-style:italic}.ptg__section--plan .ptg__row--plan .ptg__input:not(:read-only):not(.ptg__input--readonly){background:#fff;border-color:var(--lcr-brand-300)}.ptg__input::-webkit-outer-spin-button,.ptg__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ptg__input:hover:not(:read-only){background:#fff;border-color:var(--lcr-brand-300)}.ptg__input:focus{background:#fff;border-color:var(--lcr-brand-700);box-shadow:0 0 0 2px #6b7b8833}.ptg__input--agg{font-weight:600;background:#fff9;border-color:var(--lcr-brand-300)}.ptg__input--readonly,.ptg__input--outside{background:transparent;cursor:not-allowed;color:var(--color-text-muted)}.ptg__cell--selected,.ptg__input--selected{background:var(--lcr-brand-200)!important;outline:2px solid var(--lcr-brand-800);outline-offset:-2px;z-index:1}.ptg__cell--preview{background:var(--lcr-brand-100)!important}.ptg__input--preview{font-weight:700;color:var(--lcr-brand-900, #1f2937);background:transparent}.ptg__cell--outside{background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(0,0,0,.025) 4px 8px)}.mob-plan__preview-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;margin:8px 0;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-300, #d1d8de);border-radius:var(--radius-lg, 12px);flex-wrap:wrap}.mob-plan__preview-info{display:flex;align-items:center;gap:8px;font-size:13px}.mob-plan__preview-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:var(--radius-sm, 6px);background:var(--lcr-brand-800);color:#fff}.mob-plan__preview-label{font-weight:600;color:var(--color-text)}.mob-plan__preview-actions{display:flex;gap:6px}.mob-ycard__month--preview{background:var(--lcr-brand-100)}.mob-ycard__month--preview .mob-ycard__col--plan,.mob-ycard__month--preview .mob-ycard__input--static{font-weight:600;color:var(--lcr-brand-900, #1f2937)}.mob-plan__act-btn--primary{background:var(--color-success);border-color:var(--color-success);color:#fff;font-weight:600}.mob-plan__act-btn--primary:hover:not(:disabled){background:#15803d;border-color:#15803d}.plan-input:disabled{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.plan-tl__selection-info{font-size:11px;color:var(--lcr-ink-800);font-weight:600;padding:2px 8px;background:var(--lcr-brand-200);border-radius:4px;margin-left:8px}.plan-tl__selection-hint{color:var(--color-text-muted);font-weight:400;font-style:italic}.plan-phase-legend{display:flex;gap:12px;padding:2px 12px 4px;font-size:10px;margin-left:48px}.plan-phase-legend__item{display:flex;align-items:center;gap:4px;color:var(--lcr-ink-700)}.plan-phase-legend__item:before{content:"";width:10px;height:10px;border-radius:2px}.plan-phase-legend__item--presales:before{background:var(--color-presales)}.plan-phase-legend__item--construction:before{background:var(--color-construction)}.plan-month-header--presales{color:var(--color-presales);font-weight:700}.plan-month-header--construction,.plan-month-header--both{color:var(--color-construction);font-weight:700}.plan-phase-inline-bar{display:flex;align-items:center;gap:12px;padding:2px 12px 4px;margin-left:48px}.plan-phase-inline-bar__legend{display:flex;gap:12px;font-size:10px;flex-shrink:0}.plan-phase-inline-bar__blocks{display:flex;gap:2px;flex:1}.plan-phase-block{flex:1;height:10px;border-radius:0;transition:filter .18s}.plan-phase-block--presales{background:linear-gradient(180deg,color-mix(in srgb,var(--color-presales) 92%,white 8%),var(--color-presales));box-shadow:inset 0 -1px #0000000f}.plan-phase-block--construction{background:linear-gradient(180deg,color-mix(in srgb,var(--color-construction) 92%,white 8%),var(--color-construction));box-shadow:inset 0 -1px #0000000f}.plan-phase-block--both{background:linear-gradient(90deg,var(--color-presales) 0%,var(--color-presales) 50%,var(--color-construction) 50%,var(--color-construction) 100%);box-shadow:inset 0 -1px #0000000f}.plan-phase-block--outside{background:var(--lcr-brand-200)}.plan-tl__agg-cell{display:flex;align-items:center;justify-content:center;width:100%;height:26px;font-size:13px;font-weight:600;color:var(--color-text);background:var(--lcr-brand-50);border-radius:var(--radius-sm);margin:2px 4px}.plan-tl__agg-cell--year{font-weight:700;background:#fff;box-shadow:var(--shadow-xs),0 0 0 1px var(--lcr-brand-300)}.plan-tl__agg-cell--negative{color:var(--color-danger)}.plan-tl__agg-input{width:calc(100% - 8px);height:28px;margin:2px 4px;padding:0 8px;border:none;background:var(--lcr-brand-50);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:600;color:var(--color-text);text-align:center;outline:none;-moz-appearance:textfield;transition:background .15s,box-shadow .15s}.plan-tl__agg-input::-webkit-inner-spin-button,.plan-tl__agg-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.plan-tl__agg-input:hover{background:var(--lcr-brand-100)}.plan-tl__agg-input:focus{background:#fff;box-shadow:var(--shadow-xs),0 0 0 2px var(--lcr-brand-400)}.plan-tl__agg-input--year{height:30px;background:#fff;font-weight:700;box-shadow:var(--shadow-xs),0 0 0 1px var(--lcr-brand-300)}.plan-tl__agg-input--year:focus{box-shadow:var(--shadow-xs),0 0 0 2px var(--lcr-brand-800)}.plan-tl__agg-input--readonly{cursor:not-allowed;background:transparent}.plan-tl__row--header-yearly .plan-tl__quarter:not(.plan-tl__quarter--year-start) .plan-tl__q-label{visibility:hidden}.plan-summary{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;color:var(--lcr-brand-900);border-bottom:1px solid var(--lcr-brand-300)}.plan-summary strong{font-size:14px;color:var(--color-text)}.plan-summary__warning{color:#dc2626;font-weight:600;margin-left:auto}.plan-summary-card{display:flex;gap:1px;background:var(--lcr-brand-300);border-radius:var(--radius-lg);overflow:hidden;margin:0 0 4px}.plan-summary-card__metric{flex:1;display:flex;flex-direction:column;padding:8px 12px;background:#fff;min-width:0}.plan-summary-card__label{font-size:10px;font-weight:600;color:var(--lcr-ink-700);text-transform:uppercase;letter-spacing:.04em}.plan-summary-card__value{font-size:16px;font-weight:700;color:var(--color-text);white-space:nowrap}.plan-summary-card__sub{font-size:11px;color:var(--lcr-ink-700)}.plan-summary-card__metric--positive .plan-summary-card__value{color:var(--color-success)}.plan-summary-card__metric--negative .plan-summary-card__value{color:#dc2626}@media(max-width:640px){.plan-summary-card{flex-direction:column;gap:1px}.plan-summary-card__metric{padding:6px 10px}.plan-summary-card__value{font-size:14px}}.ps-empty{display:flex;align-items:center;justify-content:center;padding:16px 20px;font-size:12px;font-weight:500;color:var(--lcr-ink-700);background:var(--lcr-brand-50);border-radius:var(--radius-lg);text-align:center}.ps-error{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:12px;font-weight:500;color:var(--color-danger);background:#c4392e0f;border:1px solid rgba(196,57,46,.15);border-radius:var(--radius-lg);text-align:center}.ps-kpi--unavailable{opacity:.45;pointer-events:none}.ps-kpi--unavailable .plan-summary-card__value:after{content:"—"}.ps-kpi--unavailable .plan-summary-card__value>*{display:none}.plan-readonly{color:var(--lcr-ink-800);opacity:.6}@media(max-width:480px){.drawer__title{font-size:15px;max-width:160px}.drawer__breadcrumb{display:none}.drawer__autosave-badge{font-size:10px;padding:1px 6px}.drawer__close{width:32px;height:32px;font-size:16px}.plan-summary-card{flex-direction:column}.plan-summary-card__metric{padding:6px 12px}}@media(max-width:640px){.plan-year-grid{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.plan-year-grid__header,.plan-year-grid__row{min-width:500px}.plan-year-grid__quarter{scroll-snap-align:start}.plan-action-btn{min-height:44px;padding:10px 14px;font-size:14px}}.mob-navbar{display:none}@media(max-width:767px){.topbar{display:none}.mob-navbar{display:block}.m-portfolio{overscroll-behavior-y:contain}.mob-header{flex-shrink:0;display:flex;flex-direction:column;position:relative;z-index:var(--z-dropdown);padding:0 4px}.mob-header:before{content:"";position:absolute;top:calc(-.5rem - env(safe-area-inset-top,0px));left:-.75rem;right:-.75rem;bottom:-1rem;z-index:-1;background:linear-gradient(180deg,#ffffffc7,#ffffff9e);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 1rem),transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 1rem),transparent 100%);pointer-events:none}.mob-navbar{background:transparent;box-shadow:none;flex-shrink:0;position:relative;z-index:var(--z-dropdown);-webkit-tap-highlight-color:transparent}.mob-navbar__row{display:flex;align-items:center;padding:6px 8px;gap:8px}.mob-navbar__row+.mob-navbar__row{padding-top:0}.mob-navbar__row--brand{justify-content:space-between;padding-top:4px}.mob-navbar__row--actions{padding-bottom:10px}.mob-navbar__brand-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.mob-navbar__company-logo{height:18px;width:auto;flex-shrink:0;margin-right:6px}.mob-navbar__logo{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 0}.mob-navbar__icon{height:40px;width:auto;flex-shrink:0;border-radius:var(--radius-md)}.mob-navbar__name{display:flex;flex-direction:column;line-height:1.15;min-width:0}.mob-navbar__title{font-size:1.125rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mob-navbar__subtitle{font-size:.6875rem;color:var(--color-text-secondary);align-self:flex-end;margin-top:-2px}.mob-navbar__icon-btn{width:40px;height:40px;border:none;border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background var(--transition-normal);-webkit-tap-highlight-color:transparent}.mob-navbar__icon-btn:hover,.mob-navbar__icon-btn[aria-expanded=true]{background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.mob-navbar__icon-btn--avatar:hover,.mob-navbar__icon-btn--avatar[aria-expanded=true]{background:transparent}.mob-navbar__avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--lcr-navy);color:#fff;font-size:13px;font-weight:700;letter-spacing:.02em}.mob-navbar__icon-btn--avatar[aria-expanded=true] .mob-navbar__avatar{background:var(--lcr-navy)}.mob-navbar__avatar--photo{background:transparent;overflow:hidden}.mob-navbar__avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.mob-navbar__menu-wrap{position:relative;flex-shrink:0}@media(max-width:420px){.mob-navbar__row{padding:6px}.mob-navbar__icon{height:26px}.mob-navbar__title{font-size:.8125rem}.mob-navbar__subtitle{font-size:.5rem}.mob-navbar__brand-actions{gap:4px}.mob-navbar__icon-btn{width:36px;height:36px}}@media(max-width:360px){.mob-navbar__logo{gap:6px}.mob-navbar__subtitle{display:none}}.mob-menu{position:absolute;top:calc(100% + .25rem);right:0;min-width:220px;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:.25rem;z-index:var(--z-modal);animation:mob-menu-in .15s ease-out}@keyframes mob-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.mob-menu__user{padding:.625rem 1rem;font-size:.8125rem;font-weight:600;color:var(--color-text)}.mob-menu__divider{height:1px;background:var(--lcr-brand-300);margin:.25rem .75rem}.mob-menu__item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem 1rem;min-height:40px;border:none;border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);font-family:var(--font);font-size:.875rem;font-weight:600;cursor:pointer;text-align:left;transition:background var(--transition-normal),color var(--transition-normal);-webkit-tap-highlight-color:transparent}.mob-menu__item:hover{background:var(--lcr-brand-200);color:var(--lcr-ink-800)}.mob-menu__item--danger{color:var(--color-danger)}.mob-menu__item--danger:hover{background:#fdeceb;color:var(--color-danger)}.mob-menu__item:disabled{opacity:.6;cursor:not-allowed}.mob-actionbar__search{flex:1;min-width:0;display:flex;align-items:center;gap:.375rem;background:#fff;border:1.5px solid var(--lcr-brand-400);border-radius:var(--radius-lg);box-shadow:0 1px 2px #0f172a14;padding:0 .5rem;height:36px;transition:border-color var(--transition-fast)}@media(hover:hover){.mob-actionbar__search:focus-within{border-color:var(--lcr-brand-800);background:#fff}}.mob-actionbar__search-icon{flex-shrink:0;color:var(--lcr-ink-700)}.mob-actionbar__search-input{flex:1;border:none;background:transparent;font-size:14px;color:var(--color-text);outline:none;min-width:0}.mob-actionbar__search-input::placeholder{color:var(--lcr-ink-700)}.mob-actionbar__search--debouncing{border-color:var(--lcr-brand-500)}.mob-actionbar__search-spinner{flex-shrink:0;width:14px;height:14px;border:2px solid var(--lcr-brand-300);border-top-color:var(--lcr-brand-800);border-radius:50%;animation:spin .6s linear infinite}.mob-actionbar__btn{width:36px;height:36px;padding:0;flex-shrink:0;border:1.5px solid var(--lcr-brand-400);border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a14;color:var(--lcr-ink-700);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.mob-actionbar__btn:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-800);color:var(--lcr-brand-900)}}.mob-actionbar__btn:disabled{opacity:.4;cursor:not-allowed}.mob-actionbar__btn--filter{width:52px;border-radius:var(--radius-lg)}.mob-actionbar__btn--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}@media(hover:hover){.mob-actionbar__btn--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900);color:#fff}}.mob-filters-backdrop{position:absolute;top:100%;left:-100vw;right:-100vw;height:200vh;z-index:4;background:transparent;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:mob-filters-backdrop-in .18s ease-out}@keyframes mob-filters-backdrop-in{0%{opacity:0}to{opacity:1}}.mob-filters{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:5;padding:.75rem .625rem;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-xl);box-shadow:0 18px 38px #0f172a33,0 4px 12px #0f172a1a;display:flex;flex-direction:column;gap:.625rem;transform-origin:calc(100% - 34px) -12px;animation:mob-filters-in .34s cubic-bezier(.22,1,.36,1)}@keyframes mob-filters-in{0%{opacity:0;transform:scale(.08);border-radius:999px}40%{opacity:1}to{opacity:1;transform:scale(1);border-radius:var(--radius-xl)}}.mob-filters--closing{animation:mob-filters-out .2s cubic-bezier(.5,0,.75,.3) forwards}@keyframes mob-filters-out{0%{opacity:1;transform:scale(1);border-radius:var(--radius-xl)}to{opacity:0;transform:scale(.08);border-radius:999px}}.mob-filters-backdrop--closing{animation:mob-filters-backdrop-out .2s ease-in forwards}@keyframes mob-filters-backdrop-out{0%{opacity:1}to{opacity:0}}.mob-filters__group{display:flex;flex-direction:column;gap:.375rem}.mob-filters__label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-ink-700)}.mob-filters__pills{display:flex;gap:.25rem;flex-wrap:wrap}.mob-filters__pill{display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border-radius:var(--radius-xl);border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-family:var(--font);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.mob-filters__pill:hover{border-color:var(--lcr-brand-700)}.mob-filters__pill--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.mob-filters__pill--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.mob-filters__pills--wrap .mob-filters__pill--active:before{content:"✓";font-size:.75rem;line-height:1;font-weight:700}.mob-filters__pills--wrap .mob-filters__pill:not(.mob-filters__pill--active){text-decoration:line-through;text-decoration-color:var(--lcr-brand-400);text-decoration-thickness:1px}.mob-filters__pills--seg{display:flex;width:100%;flex-wrap:nowrap;gap:2px;padding:3px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);box-sizing:border-box}.mob-filters__pills--seg .mob-filters__pill{flex:1 1 0;min-width:0;justify-content:center;gap:4px;padding:6px 4px;background:transparent;border:none;border-radius:calc(var(--radius-xl) - 4px);color:var(--lcr-ink-800);font-size:11px;font-weight:600;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:break-word;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.mob-filters__pills--seg .mob-filters__pill:hover{border:none;color:var(--lcr-brand-900)}.mob-filters__pills--seg .mob-filters__pill--active{background:var(--glass-pill-bg);border:none;color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.mob-filters__pills--seg .mob-filters__pill--active:hover{background:var(--glass-pill-bg);border:none;box-shadow:var(--glass-pill-shadow-hover)}.mob-filters__pills--seg .mob-filters__pill:not(.mob-filters__pill--active){color:var(--lcr-ink-800)}.mob-filters__pills--seg .mob-filters__pill:not(.mob-filters__pill--active):hover{opacity:1;color:var(--lcr-brand-900)}.mob-filters__seg-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;background:var(--dot-color);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.mob-filters__seg-dot--status-active{--dot-color: #22c55e}.mob-filters__seg-dot--status-planned_short{--dot-color: #3b82f6}.mob-filters__seg-dot--status-planned_long{--dot-color: #94a3b8}.mob-filters__seg-dot--status-closed{--dot-color: #F97316}.mob-filters__seg-dot--bar-sales{--dot-color: #92D050}.mob-filters__seg-dot--bar-construction{--dot-color: #5B9BD5}.mob-filters__pills--seg .mob-filters__pill:not(.mob-filters__pill--active) .mob-filters__seg-dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--dot-color)}.mob-filters__order{position:relative;display:flex;flex-direction:column;gap:4px}.mob-filters__order-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:var(--radius-md);cursor:grab;user-select:none;-webkit-user-select:none;transition:box-shadow .12s,transform .12s}.mob-filters__order-row:active{cursor:grabbing}.mob-filters__order-row--dragging{background:#e5e7eb;border-color:var(--lcr-brand-600);box-shadow:0 4px 10px #0000001f;transform:scale(1.02);z-index:2}.mob-filters__order-handle{flex:0 0 auto;color:var(--lcr-ink-700);opacity:.7}.mob-filters__order-name{flex:1;font-size:.9375rem;font-weight:600;color:var(--lcr-ink-800)}.mob-filters__toggles{display:flex;flex-direction:column;gap:0}.mob-filters__toggle-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .25rem;background:none;border:none;font-family:var(--font);font-size:.8125rem;font-weight:500;color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.mob-filters__toggle-item:hover{background:var(--lcr-brand-100)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.grid-empty-state{padding:32px 20px;text-align:center;color:var(--color-text-muted);font-size:13px}.m-portfolio{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:0 12px 24px}.m-portfolio__list{display:flex;flex-direction:column;gap:10px;padding-bottom:env(safe-area-inset-bottom,0px)}.m-activity-widget{margin:8px 0;padding:10px;background:#fff;border-radius:var(--radius-lg);border:1px solid var(--lcr-brand-300);box-shadow:var(--shadow-sm)}.m-activity-widget--loading{display:flex;align-items:center;justify-content:center;min-height:80px}.m-activity-widget__spinner{width:20px;height:20px;border:2px solid var(--lcr-brand-300);border-top-color:var(--lcr-brand-800);border-radius:50%;animation:spin .8s linear infinite}.m-activity-widget__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.m-activity-widget--collapsed .m-activity-widget__header{margin-bottom:0}.m-activity-widget__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--lcr-ink-800)}.m-activity-widget__toggle{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:10px;font-weight:600;color:var(--lcr-ink-700);background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:5px;cursor:pointer}.m-activity-widget__toggle:active{background:var(--lcr-brand-200)}@media(hover:hover){.m-activity-widget__toggle:hover{background:var(--lcr-brand-200)}}.m-activity-widget__kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.m-activity-widget__kpi{padding:6px 8px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:10px;box-shadow:0 1px 2px #0f172a0a,0 3px 6px #0f172a0d}.m-activity-widget__kpi-label{font-size:8px;font-weight:700;letter-spacing:.03em;margin-bottom:2px;line-height:1.15}.m-activity-widget__kpi--sold .m-activity-widget__kpi-label{color:#15803d}.m-activity-widget__kpi--reserved .m-activity-widget__kpi-label{color:#92400e}.m-activity-widget__kpi-value{font-size:13px;font-weight:700;color:var(--color-text);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-activity-widget__more{display:block;width:100%;margin-top:6px;padding:7px 10px;font-size:11px;font-weight:600;color:var(--lcr-ink-800);background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-300);border-radius:6px;cursor:pointer}.m-activity-widget__more:active{background:var(--lcr-brand-100)}.m-activity-widget__list{display:flex;flex-direction:column}.m-activity-widget .rap-act{padding:6px 4px;margin:0;border-bottom:1px solid var(--lcr-brand-100);border-radius:0;gap:8px;flex-wrap:nowrap}.m-activity-widget .rap-act:last-child{border-bottom:none}.m-activity-widget .rap-act__left{min-width:72px;order:0;padding-top:0;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;row-gap:2px}.m-activity-widget .rap-act__left>.rap-type-badge{grid-column:1;grid-row:1}.m-activity-widget .rap-act__left>.rap-act__date{grid-column:1;grid-row:2}.m-activity-widget .rap-act__left>.rap-timeline{grid-column:2;grid-row:1 / -1;flex-direction:row;flex-wrap:wrap;align-items:center;width:auto;margin-top:0;gap:2px}.m-activity-widget .rap-timeline__node{padding:0;gap:3px}.m-activity-widget .rap-timeline__node:before{display:none}.m-activity-widget .rap-timeline__line{position:static;width:10px;height:1px;background:#cbd5e1;margin:0 3px;transform:none}.m-activity-widget .rap-timeline__badge{font-size:8px;padding:1px 4px}.m-activity-widget .rap-timeline__date{font-size:9px}.m-activity-widget .rap-act__date{font-size:10px;color:var(--text-secondary, #64748b);line-height:1.2}.m-activity-widget .rap-act__main{order:0;flex:1;flex-basis:auto;width:auto;gap:1px}.m-activity-widget .rap-act__left .rap-type-badge{font-size:8px;padding:2px 5px;letter-spacing:.01em}.m-activity-widget .rap-act__info{font-size:12px;line-height:1.25}.m-activity-widget .rap-act__price{font-size:13px}.m-activity-widget .rap-act__extra-name,.m-activity-widget .rap-act__extra-price{font-size:10px}.m-activity-widget .rap-act__salesman{margin-top:4px;font-size:10px}.m-activity-widget .rap-act__salesman-avatar{width:16px;height:16px;font-size:8px}.m-activity-widget__stats{display:flex;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--lcr-brand-200)}.m-activity-widget__stat{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.m-activity-widget__stat-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--lcr-ink-700)}.m-activity-widget__stat-value{font-size:14px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-activity-widget__stat-sub{font-size:10px;font-weight:500;color:var(--lcr-ink-700)}.m-activity-widget__list{display:flex;flex-direction:column;gap:6px}.m-activity-widget__item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--lcr-brand-100)}.m-activity-widget__item:last-child{border-bottom:none;padding-bottom:0}.m-activity-widget__badge{flex-shrink:0;width:18px;height:18px;border-radius:4px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.m-activity-widget__badge--sold{background:#dcfce7;color:#15803d}.m-activity-widget__badge--reserved{background:#fef3c7;color:#92400e}.m-activity-widget__item-main{flex:1;min-width:0;font-size:12px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-activity-widget__item-project{font-weight:600}.m-activity-widget__item-unit{color:var(--lcr-ink-700)}.m-activity-widget__item-type{font-size:10px;color:var(--lcr-ink-700)}.m-activity-widget__item-salesman{flex-shrink:0;font-size:10px;font-style:italic;color:var(--lcr-ink-700);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-activity-widget__item-extras{font-size:10px;color:var(--lcr-ink-700);margin-top:2px;white-space:normal}.m-group{display:flex;align-items:center;justify-content:space-between;padding:14px;position:sticky;top:calc(-1rem - 4px);z-index:5;margin:0;background:linear-gradient(180deg,#ffffffa1,#fff9);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:none;border-radius:0;box-shadow:none;color:var(--lcr-ink-800);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - .7rem),transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - .7rem),transparent 100%)}@media(max-width:767px){.m-portfolio{--m-pad-x: 24px;margin-left:-.75rem;margin-right:-.75rem;padding-left:var(--m-pad-x);padding-right:var(--m-pad-x)}.m-group{margin-left:calc(-1 * var(--m-pad-x, 24px));margin-right:calc(-1 * var(--m-pad-x, 24px));padding-left:var(--m-pad-x, 24px);padding-right:var(--m-pad-x, 24px)}}.m-group__name{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:inherit}.m-group__stats{font-size:11px;font-weight:600;color:inherit;opacity:.85}.m-group__add{flex:0 0 auto;width:24px;height:24px;border:none;border-radius:50%;background:#ffffff4d;color:inherit;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;margin-left:8px;position:relative}.m-group__add:before{content:"";position:absolute;inset:-10px}.m-group__add:active{background:#00000026}@media(hover:hover){.m-group__add:hover{background:#ffffff80}}.m-add-project{display:block;width:100%;margin-top:14px;margin-bottom:8px;padding:10px 16px;border:1px dashed var(--lcr-brand-400);border-radius:var(--radius-lg);background:transparent;color:var(--lcr-ink-700);font-size:14px;font-weight:600;cursor:pointer}.m-add-project:active{background:var(--lcr-brand-100)}@media(hover:hover){.m-add-project:hover{background:var(--lcr-brand-50)}}.new-version-toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);right:16px;display:flex;align-items:center;gap:12px;padding:12px 14px 12px 12px;background:#fff;color:var(--color-text, #111);border-radius:12px;box-shadow:0 10px 28px #00000029,0 1px 3px #00000014;border:1px solid rgba(0,0,0,.06);font-size:13px;z-index:var(--z-modal);max-width:360px;animation:new-version-toast-in .25s cubic-bezier(.16,1,.3,1)}@keyframes new-version-toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.new-version-toast__icon{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--lcr-brand-100, #eef2ff);color:var(--lcr-ink-700, #4338ca);display:flex;align-items:center;justify-content:center}.new-version-toast__body{flex:1;min-width:0}.new-version-toast__title{font-weight:600;font-size:13px;line-height:1.2;margin-bottom:2px}.new-version-toast__text{font-size:12px;color:var(--color-text-muted, #6b7280);line-height:1.3}.new-version-toast__btn{flex:0 0 auto;padding:8px 14px;background:var(--lcr-brand-700, #4338ca);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:filter .15s}.new-version-toast__btn:hover{filter:brightness(1.08)}.new-version-toast__btn:active{filter:brightness(.95)}.new-version-toast__close{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:transparent;border:none;color:var(--color-text-muted, #9ca3af);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.new-version-toast__close:hover{background:#0000000d;color:var(--color-text, #111)}@media(max-width:767px){.new-version-toast{left:12px;right:12px;max-width:none}}.update-modal-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:var(--z-modal);animation:update-modal-overlay-in .2s ease-out}@keyframes update-modal-overlay-in{0%{opacity:0}to{opacity:1}}.update-modal{background:#fff;border-radius:16px;padding:28px 28px 24px;max-width:420px;width:100%;box-shadow:0 20px 48px #0000003d,0 2px 6px #0000001a;text-align:center;animation:update-modal-in .25s cubic-bezier(.16,1,.3,1)}@keyframes update-modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.update-modal__icon{width:56px;height:56px;border-radius:50%;background:var(--lcr-brand-100, #eef2ff);color:var(--lcr-ink-700, #4338ca);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.update-modal__title{font-size:18px;font-weight:700;color:var(--color-text, #111);margin-bottom:8px}.update-modal__text{font-size:14px;color:var(--color-text-muted, #6b7280);line-height:1.5;margin-bottom:22px}.update-modal__actions{display:flex;gap:10px;justify-content:center}.update-modal__btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:filter .15s,background .15s;min-width:120px}.update-modal__btn--primary{background:var(--lcr-brand-700, #4338ca);color:#fff}.update-modal__btn--primary:hover{filter:brightness(1.08)}.update-modal__btn--primary:active{filter:brightness(.95)}.update-modal__btn--secondary{background:transparent;color:var(--color-text, #374151);border-color:#d1d5db}.update-modal__btn--secondary:hover{background:#f3f4f6}@media(max-width:480px){.update-modal__actions{flex-direction:column-reverse}.update-modal__btn{width:100%}}.m-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden;transition:box-shadow var(--transition-normal)}.m-card--expanded{box-shadow:var(--shadow-bento-hover)}.m-card__header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 14px 0;gap:8px}.m-card__identity{flex:1;min-width:0}.m-card__name{font-size:15px;font-weight:700;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.m-card__meta-row{display:flex;align-items:center;gap:8px;margin-top:4px}.m-card__cat{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:var(--lcr-brand-100);color:var(--color-text-secondary)}.m-card__cat--active{background:#e8f5ed;color:#2e7d4f}.m-card__cat--planned_short{background:#eff6ff;color:#2563eb}.m-card__cat--planned_long{background:#f1f5f9;color:#475569}.m-card__cat--closed{background:#f973161f;color:#c2410c}.m-card__units{font-size:11px;color:var(--color-text-tertiary);font-weight:500}.m-card__edit-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:var(--radius-full);font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;min-height:32px;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast)}.m-card__edit-btn:active{background:var(--lcr-brand-200)}@media(hover:hover){.m-card__edit-btn:hover{background:var(--lcr-brand-200)}}.m-card__sales{padding:10px 14px 0}.m-card__bar{height:8px;background:var(--lcr-brand-200);border-radius:var(--radius-full);overflow:hidden;display:flex;position:relative}.m-card__bar-sold{height:100%;background:#3c8214;border-radius:var(--radius-full) 0 0 var(--radius-full);min-width:0;transition:width var(--transition-normal)}.m-card__bar-res{height:100%;background:#f59e0b;min-width:0;transition:width var(--transition-normal)}.m-card__stats{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px;color:var(--color-text-secondary);flex-wrap:wrap}.m-card__pct{font-weight:700;font-size:13px;color:var(--color-text)}.m-card__s-sold{color:#3c8214;font-weight:600}.m-card__s-res{color:#b45309;font-weight:600}.m-card__s-free{color:var(--lcr-ink-700);font-weight:500}.m-phases{display:flex;gap:12px;padding:10px 14px 4px;flex-wrap:wrap}.m-phases__item{font-size:13px;font-weight:600}.m-phases__item--pre{color:#3a7a1a}.m-phases__item--con{color:#2b5f8a}.m-phases__item--delta{font-size:12px;color:#2b5f8a}.m-phases__item--delta strong{font-weight:800;font-size:14px}.m-phases__delta-val--pos{color:#2e7d4f}.m-phases__delta-val--neg{color:#c4392e}.m-card__expand{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 14px;margin-top:4px;background:none;border:none;border-top:1px solid var(--lcr-brand-200);font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-700);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px;transition:background var(--transition-fast)}.m-card__expand:active{background:var(--lcr-brand-50)}@media(hover:hover){.m-card__expand:hover{background:var(--lcr-brand-50)}}.m-card__expand--open{border-top:none;border-bottom:1px solid var(--lcr-brand-200)}.m-card__expand-icon{transition:transform var(--transition-fast)}.m-card__expand--open .m-card__expand-icon{transform:rotate(180deg)}.m-card__plan{animation:m-card-expand .2s ease}@keyframes m-card-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.m-pcard__phase-count{font-size:11px;color:var(--color-text-tertiary);font-weight:500}.m-pcard__phases{margin-top:10px;border-top:1px solid var(--lcr-brand-200)}.m-pcard__no-active{padding:12px 4px;font-size:12px;color:var(--color-text-tertiary);text-align:center}.m-prow{border-bottom:1px solid var(--lcr-brand-100)}.m-prow:last-child{border-bottom:none}.m-prow__head{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:none;border:none;font-family:var(--font);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:48px;transition:background var(--transition-fast)}.m-prow__head:active{background:var(--lcr-brand-50)}.m-prow__head:disabled{cursor:default}.m-prow--off .m-prow__head{opacity:.55}.m-prow--open .m-prow__head{background:var(--lcr-brand-50)}.m-prow__badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;padding:0 8px;border-radius:6px;border:1px solid var(--lcr-brand-300);background:var(--lcr-brand-100);color:var(--color-text-secondary);font-size:11px;font-weight:800;letter-spacing:.02em}.m-prow__badge--muted{background:var(--lcr-brand-300);color:var(--color-text-muted);border-color:var(--color-border)}.m-prow__name{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-prow__range{flex-shrink:0;font-size:11px;font-weight:600;color:var(--color-text-tertiary)}.m-prow__chev{flex-shrink:0;color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.m-prow--open .m-prow__chev{transform:rotate(180deg)}.m-prow__body{padding:12px 14px 14px;background:var(--lcr-brand-50);border-top:2px solid transparent;animation:m-card-expand .2s ease}.m-phase-detail__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.m-phase-detail__cell{display:flex;flex-direction:column;gap:2px;padding:6px 10px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);min-width:0}.m-phase-detail__lbl{font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.m-phase-detail__val{font-size:13px;font-weight:600;color:var(--color-text);word-break:break-word}.m-phase-detail__sec{margin-top:10px;margin-bottom:6px;font-size:11px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.m-phase-detail__list{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);padding:4px 0}.m-phase-detail__row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 10px;font-size:12px}.m-phase-detail__row .m-phase-detail__lbl{text-transform:none;letter-spacing:normal;font-size:12px;font-weight:500;color:var(--color-text-secondary);flex:1;min-width:0}.m-phase-detail__row .m-phase-detail__val{font-size:12px;font-weight:700;text-align:right;flex-shrink:0;max-width:60%;word-break:break-word}.m-phase-detail__notes{background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);padding:8px 10px;font-size:12px;color:var(--color-text);white-space:pre-wrap;line-height:1.4}.m-phase-detail__empty{font-size:12px;color:var(--color-text-tertiary);font-style:italic;padding:4px 0}.m-pgrid__toggle{display:inline-flex;align-items:center;justify-content:center;width:33px;height:27px;border-radius:5px;background:var(--lcr-brand-200);border:1px solid var(--lcr-brand-300);font-family:var(--font);font-size:15px;font-weight:700;color:var(--lcr-ink-800);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast);padding:0;line-height:1;position:relative;top:-7px}.m-pgrid__toggle:before{content:"";position:absolute;inset:-8px -6px}.m-pgrid__toggle:active{background:var(--lcr-brand-300)}@media(hover:hover){.m-pgrid__toggle:hover{background:var(--lcr-brand-300)}}.m-pgrid{padding:4px 0 8px}.m-pgrid__scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.m-pgrid__scroll::-webkit-scrollbar{display:none}.m-pgrid__table{border-collapse:collapse;font-size:11px;white-space:nowrap;font-family:var(--font)}.m-pgrid__label{position:sticky;left:0;z-index:1;background:#fff;padding:3px 8px 3px 10px;font-weight:600;font-size:10px;color:var(--lcr-ink-700);text-align:left;min-width:48px;border-right:none;box-shadow:1px 0 0 var(--lcr-brand-200)}.m-pgrid__cell{min-width:26px;padding:3px 4px;text-align:center;color:var(--color-text-secondary);border-right:1px solid var(--lcr-brand-100);font-variant-numeric:tabular-nums}.m-pgrid__cell--yr{font-size:9px;font-weight:700;color:var(--lcr-ink-700);padding:1px 4px;text-align:left}.m-pgrid__cell--yr-span{padding:0;text-align:center;vertical-align:bottom;border-right:none}.m-pgrid__year-bracket{display:block;position:relative;font-size:10px;font-weight:700;color:var(--lcr-ink-700);padding:5px 4px 2px;margin:0 2px}.m-pgrid__year-bracket:before{content:"";position:absolute;left:0;right:0;top:17px;height:7px;border-left:1.5px solid var(--lcr-brand-400);border-right:1.5px solid var(--lcr-brand-400);border-top:1.5px solid var(--lcr-brand-400);border-radius:3px 3px 0 0}.m-pgrid__row--year-header .m-pgrid__label{border-bottom:none}.m-pgrid__cell--mh{font-weight:700;font-size:10px;color:var(--lcr-ink-800);border-bottom:1px solid var(--lcr-brand-300)}.m-pgrid__cell--now{position:relative}.m-pgrid__cell--now:after{content:"";position:absolute;inset:-1px 0;border-left:2px solid var(--color-presales);border-right:2px solid var(--color-presales);pointer-events:none;z-index:0}.m-pgrid__row--plan .m-pgrid__label{color:var(--color-text)}.m-pgrid__cell--has{font-weight:700;color:var(--color-text);background:#fef9c3}.m-pgrid__row--stock,.m-pgrid__row--stock .m-pgrid__label{background:var(--lcr-brand-50)}.m-pgrid__cell--neg{color:var(--color-danger);font-weight:700}.m-pgrid__row--actual{border-top:1px solid var(--lcr-brand-200)}.m-pgrid__row--free{color:var(--lcr-ink-700)}.m-pgrid__empty{padding:16px 10px;text-align:center;font-size:12px;color:var(--lcr-ink-700);font-style:italic}.m-pgrid__section-label{position:sticky;left:0;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg) translateZ(0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;text-rendering:geometricPrecision;width:20px;min-width:20px;max-width:20px;padding:2px 0;text-align:center;font-size:8px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--lcr-ink-700);background:#fff;border-right:none;box-shadow:1px 0 0 var(--lcr-brand-200)}.m-pgrid__table tbody .m-pgrid__label{left:20px}.m-pgrid__table thead .m-pgrid__label{min-width:68px;text-align:center}.m-pgrid__section--plan{font-style:italic}.m-pgrid__section--plan .m-pgrid__section-label{font-style:normal;background:#f5f5f5}.m-pgrid__section--plan .m-pgrid__label,.m-pgrid__section--plan .m-pgrid__cell,.m-pgrid__section--plan .m-pgrid__row--stock,.m-pgrid__section--plan .m-pgrid__row--stock .m-pgrid__label{background:#f5f5f5}.m-pgrid__section--plan .m-pgrid__cell--has{background:#fef9c3}.m-pgrid__section--actual .m-pgrid__row:first-child td{border-top:2px solid var(--lcr-brand-300)}.m-pgrid__section--actual .m-pgrid__section-label{box-shadow:-1px 0 0 var(--lcr-brand-200),inset 0 -2px 0 0 var(--lcr-brand-300)}.m-pgrid__section--actual .m-pgrid__row--actual{border-top:none}.m-empty{text-align:center;padding:48px 16px;color:var(--lcr-ink-700)}.m-empty__title{font-size:16px;font-weight:700;color:var(--color-text-secondary);margin-bottom:6px}.m-empty__text{font-size:13px;line-height:1.5}@media(max-width:380px){.m-portfolio{--m-pad-x: 18px}.m-card__header{padding:12px 10px 0}.m-card__sales,.m-phases{padding-left:10px;padding-right:10px}.m-card__plan{padding:4px 4px 10px}}.period-detail-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden;margin:8px 0}.period-detail__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--lcr-brand-200)}.period-detail__title{font-size:15px;font-weight:700;color:var(--color-text)}.period-detail__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background:var(--lcr-brand-100);border:none;color:var(--lcr-ink-700);cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.period-detail__close:active{background:var(--lcr-brand-200)}.period-detail__rows{padding:8px 0}.period-detail__row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;min-height:48px}.period-detail__row--delta{background:var(--lcr-brand-50)}.period-detail__label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.period-detail__value{font-size:15px;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:6px}.period-detail__value--positive{color:var(--color-success)}.period-detail__value--negative{color:var(--color-danger)}.period-detail__delta-abs{font-weight:700}.period-detail__delta-pct{font-size:12px;font-weight:600;opacity:.8}.period-detail__na{color:var(--lcr-ink-700);font-weight:400}.period-detail__divider{height:1px;background:var(--lcr-brand-200);margin:4px 16px}.mob-editor{position:fixed;inset:0;z-index:200;background:var(--lcr-brand-50);display:flex;flex-direction:column;overflow:hidden;animation:mob-editor-in .2s ease-out}@keyframes mob-editor-in{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.mob-editor__header{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:#fff;border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:52px}.mob-editor__back{width:36px;height:36px;border-radius:50%;border:none;background:var(--lcr-brand-100);color:var(--lcr-ink-800);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s}.mob-editor__back:hover{background:var(--lcr-brand-200)}.mob-editor__title-area{flex:1;min-width:0;display:flex;align-items:baseline;gap:4px}.mob-editor__group{font-size:11px;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.mob-editor__name{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mob-editor__header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.mob-editor__save-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mob-editor__save-dot--dirty{background:#f59e0b}.mob-editor__save-dot--saved{background:#22c55e}.mob-editor__tabs{display:flex;background:#fff;border-bottom:1px solid var(--color-border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.mob-editor__tabs::-webkit-scrollbar{display:none}.mob-editor__tab{flex:1;padding:12px 8px;font-size:13px;font-weight:600;color:var(--lcr-ink-700);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;position:relative;min-height:44px}.mob-editor__tab:hover{color:var(--lcr-brand-900)}.mob-editor__tab--active{color:var(--lcr-brand-900);border-bottom-color:var(--lcr-brand-800)}.mob-editor__tab-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:#f59e0b}.mob-editor__content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,0px)}.mob-editor__section{padding:12px;display:flex;flex-direction:column;gap:10px}.mob-field{display:flex;flex-direction:column;gap:3px}.mob-field__label{font-size:11px;font-weight:600;color:var(--lcr-ink-700);text-transform:uppercase;letter-spacing:.04em}.mob-field__input{padding:7px 10px;font-size:13px;border:1px solid var(--color-border);border-radius:6px;background:#fff;outline:none;width:100%;transition:border-color .15s}.mob-field__input:focus{border-color:var(--lcr-brand-800)}.mob-field__input:disabled{background:var(--lcr-brand-100);color:var(--color-text-muted);border-style:dashed;cursor:not-allowed;opacity:.85}.mob-field__row{display:flex;gap:6px;align-items:center}.mob-field__row .mob-field__input{flex:1}.mob-field__badge{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.mob-field__badge--rp{background:#f0fdf4;color:var(--color-success);border:1px solid #bbf7d0}.mob-field__toggle{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:600;border:1px solid var(--color-border);background:#fff;cursor:pointer;white-space:nowrap;min-height:32px;transition:all .15s;flex-shrink:0}.mob-field__toggle--on{border-color:#86efac;background:#f0fdf4;color:var(--color-success)}.mob-editor__delete-btn{display:flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #fca5a5;border-radius:9999px;background:#fff5f5;color:var(--color-danger);font-size:12px;font-weight:600;cursor:pointer;margin-top:4px;min-height:32px;transition:background .15s}.mob-editor__delete-btn:hover{background:#fef2f2}.mob-editor__section--timeline .timeline-picker{max-width:100%;gap:12px}.mob-editor__section--timeline .phase-picker{background:#fff;border-radius:8px;padding:10px 12px;box-shadow:0 1px 2px #0000000a;border:1px solid var(--color-border)}.mob-editor__section--timeline .phase-picker+.phase-picker{margin-top:8px;padding-top:10px;border-top:none}.mob-editor__section--timeline .phase-picker__row{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}.mob-editor__section--timeline .phase-picker__row .phase-toggle{grid-column:1 / 2;grid-row:1;justify-self:start;width:28px;height:28px;z-index:1;position:relative}.mob-editor__section--timeline .phase-toggle svg{width:18px;height:18px}.mob-editor__section--timeline .phase-picker__row .phase-picker__title{grid-column:1 / -1;grid-row:1;padding-bottom:0;padding-left:36px;font-size:12px}.mob-editor__section--timeline .phase-picker__row .desktop-input:nth-of-type(1){grid-column:1;grid-row:2}.mob-editor__section--timeline .phase-picker__row .desktop-input:nth-of-type(2){grid-column:2;grid-row:2}.mob-editor__section--timeline .phase-picker__row--marker .phase-picker__title{grid-column:1 / -1}.mob-editor__section--timeline .phase-picker__row--marker .desktop-input{grid-column:2;grid-row:2}.mob-editor__section--timeline .desktop-input__fields{gap:4px}.mob-editor__section--timeline .desktop-input__q{height:32px;padding:0 6px;font-size:13px;border-radius:6px}.mob-editor__section--timeline .desktop-input__year{height:32px;width:68px;padding:0 6px;font-size:13px;border-radius:6px}.mob-editor__section--timeline .desktop-input__label{font-size:10px}.mob-plan{display:flex;flex-direction:column}.mob-plan__neg{color:#dc2626}.mob-plan__status{padding:8px 16px 0}.mob-plan__actions{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 6px 10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mob-plan__actions::-webkit-scrollbar{display:none}.mob-plan__actions .pred-help-btn{width:26px;height:26px;font-size:13px;margin:0 4px;position:relative}.mob-plan__actions .pred-help-btn:before{content:"";position:absolute;inset:-9px}.mob-plan__act-btn{padding:6px 8px;border-radius:9999px;border:1px solid var(--color-border);background:#fff;font-size:12px;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap;min-height:32px;flex-shrink:0;transition:all .15s}.mob-plan__act-btn:hover{background:var(--lcr-brand-100)}.mob-plan__act-btn:disabled{opacity:.5;cursor:not-allowed}.mob-plan__act-btn--outline{border-color:var(--lcr-brand-600);color:var(--lcr-ink-800)}.mob-plan__act-btn--cancel{border-color:var(--lcr-brand-800);background:var(--lcr-brand-800);color:#fff}.mob-plan__act-btn--danger{color:var(--color-danger);border-color:var(--color-border)}.mob-plan__act-btn--danger:hover{background:#fef2f2}.mob-plan__act-btn--undo{color:var(--lcr-ink-800);border-color:var(--lcr-brand-300);background:var(--lcr-brand-100);font-weight:500}.mob-plan__act-btn--undo:hover:not(:disabled){background:var(--lcr-brand-200);border-color:var(--lcr-brand-400)}.mob-plan__auto-range{margin:0 12px 10px;padding:12px 14px;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);background:var(--lcr-brand-50)}.mob-plan__auto-range-title{font-size:11px;font-weight:700;color:var(--lcr-ink-800);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em}.mob-plan__auto-range-grid{display:flex;align-items:stretch;flex-direction:column;gap:8px}.mob-plan__auto-range-field{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase}.mob-plan__auto-range-field input,.mob-plan__auto-range-field select{height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font);font-size:14px;font-weight:500;background:#fff;color:var(--color-text);outline:none;text-transform:none;letter-spacing:normal;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.mob-plan__auto-range-field input:focus,.mob-plan__auto-range-field select:focus{border-color:var(--lcr-brand-800);box-shadow:0 0 0 3px #38535f1a}.mob-plan__auto-range-field>span{display:flex;gap:6px}.mob-plan__auto-range-field>span>select{flex:1 1 0;min-width:0}.mob-plan__auto-range .mob-plan__act-btn{width:100%;margin-top:4px}.mob-plan__auto-range-meta{margin-top:6px;font-size:12px;color:var(--color-text-secondary);line-height:1.4}.mob-plan__auto-range-reset{background:none;border:none;padding:0;font-size:12px;color:var(--lcr-ink-800);text-decoration:underline;cursor:pointer}.mob-plan__cards{display:flex;flex-direction:column;gap:12px;padding:0 12px 16px}.mob-ycard{background:#fff;border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a;overflow:hidden;transition:box-shadow .15s}.mob-ycard--open{box-shadow:0 2px 8px #00000012}.mob-ycard--current{border-color:var(--lcr-brand-600)}.mob-ycard__header-wrap{position:relative}.mob-ycard__header{display:flex;align-items:center;justify-content:space-between;padding:12px 8px 12px 14px;width:100%;border:none;background:none;cursor:pointer;text-align:left;min-height:44px;transition:background .1s}.mob-ycard__header:active{background:var(--lcr-brand-50)}.mob-ycard__title{font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap;flex-shrink:0}.mob-ycard__right{display:flex;align-items:center;gap:8px;flex-shrink:0}.mob-ycard__meta{display:flex;gap:10px;text-align:right;font-size:11px;color:var(--lcr-ink-700)}.mob-ycard__meta strong{color:var(--color-text)}.mob-ycard__chevron{flex-shrink:0;color:var(--lcr-ink-700);transform:rotate(-90deg);transition:transform .2s}.mob-ycard__chevron--open{transform:rotate(0)}.mob-ycard__range-btn{position:absolute;left:calc(50% - 25px);top:50%;transform:translate(-50%,-50%);z-index:1;padding:6px 12px;border-radius:9999px;border:1px solid var(--lcr-brand-600);background:#fff;font-size:11px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .15s}.mob-ycard__range-btn:hover{background:var(--lcr-brand-100)}.mob-ycard__range-btn--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.mob-ycard__body{border-top:1px solid var(--lcr-brand-300)}.mob-ycard__month{display:flex;align-items:center;gap:6px;padding:2px 10px 2px 14px;border-bottom:1px solid var(--lcr-brand-200);height:36px;transition:background .1s}.mob-ycard__month:last-child{border-bottom:none}.mob-ycard__month--now{background:#fffbeb;border-left:3px solid #f59e0b;padding-left:11px}.mob-ycard__month--sel{background:var(--lcr-brand-100)}.mob-ycard__month--rng:active{background:var(--lcr-brand-200)}.mob-ycard__month-name{flex:1;font-size:13px;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:4px;min-width:0;white-space:nowrap;overflow:hidden}.mob-ycard__col-header{display:flex;align-items:center;gap:6px;padding:0 10px 0 14px;height:20px;border-bottom:1px solid var(--lcr-brand-300);background:var(--lcr-brand-50)}.mob-ycard__col-header .mob-ycard__col{font-size:10px;font-weight:700;color:var(--lcr-ink-700);text-transform:uppercase;letter-spacing:.03em}.mob-ycard__col-name{flex:1}.mob-ycard__col{flex-shrink:0;text-align:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.mob-ycard__col--skut{width:34px;color:var(--color-success)}.mob-ycard__col--zost{width:34px;color:var(--lcr-ink-700)}.mob-ycard__col--psk{width:38px;color:var(--lcr-ink-800)}.mob-ycard__col--plan{width:100px;text-align:center}.mob-plan__phase{display:inline-block;padding:0 4px;border-radius:3px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;line-height:16px}.mob-plan__phase--presales{background:#92d05026;color:var(--color-presales)}.mob-plan__phase--construction{background:#5b9bd526;color:#2b5f8a}.mob-plan__phase--both{background:#5b9bd51a;color:#7b68ee}.mob-ycard__stepper{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:6px;flex-shrink:0}.mob-ycard__step-btn{width:28px;height:28px;border:none;background:var(--lcr-brand-50);font-size:16px;font-weight:500;color:var(--lcr-ink-800);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s;user-select:none;-webkit-user-select:none;padding:0;position:relative}.mob-ycard__step-btn:active{background:var(--lcr-brand-200)}.mob-ycard__step-btn:disabled{opacity:.3;cursor:not-allowed}.mob-ycard__input{width:44px;height:28px;border:none;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:center;font-size:14px;font-weight:700;color:var(--color-text);background:#fff;outline:none;-moz-appearance:textfield}.mob-ycard__input::-webkit-inner-spin-button,.mob-ycard__input::-webkit-outer-spin-button{-webkit-appearance:none}.mob-ycard__input::placeholder{color:var(--lcr-ink-700);font-weight:400}.mob-ycard__input:focus{background:#fffbeb}.mob-ycard__input[readonly]{background:var(--color-success-bg);color:var(--color-text-muted);cursor:not-allowed;border-color:transparent}.mob-ycard__input--explicit-zero{background:var(--lcr-brand-50, #f3f4f6)}.mob-ycard__input--static{display:flex;align-items:center;justify-content:center;pointer-events:none;background:var(--color-success-bg);color:var(--color-text-muted);cursor:not-allowed;border-color:transparent}.mob-plan__range-check{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.mob-plan__tray{position:sticky;bottom:0;z-index:10;background:#fff;border-top:1px solid var(--color-border);box-shadow:0 -4px 16px #00000014;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px;animation:mob-tray-up .2s ease-out}@keyframes mob-tray-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mob-plan__tray-head{display:flex;justify-content:space-between;align-items:center}.mob-plan__tray-count{font-size:13px;font-weight:700;color:var(--lcr-ink-800)}.mob-plan__tray-close{width:32px;height:32px;border:none;background:var(--lcr-brand-100);border-radius:50%;font-size:14px;color:var(--lcr-ink-700);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.mob-plan__tray-close:before{content:"";position:absolute;inset:-6px}.mob-plan__tray-actions{display:flex;gap:6px;flex-wrap:wrap}.mob-plan__tray-btn{flex:1;min-width:100px;padding:10px 8px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#fff;font-size:13px;font-weight:600;cursor:pointer;min-height:44px;transition:background .15s}.mob-plan__tray-btn:hover{background:var(--lcr-brand-100)}.mob-plan__tray-btn--danger{color:var(--color-danger);border-color:#fca5a5}.mob-plan__tray-btn--danger:hover{background:#fef2f2}.mob-plan__tray-input{display:flex;gap:8px;align-items:center}.mob-plan__tray-field{flex:1;padding:10px 14px;border:1.5px solid var(--lcr-brand-600);border-radius:var(--radius-lg);font-size:16px;outline:none;min-height:44px;-moz-appearance:textfield}.mob-plan__tray-field::-webkit-inner-spin-button,.mob-plan__tray-field::-webkit-outer-spin-button{-webkit-appearance:none}.mob-plan__tray-field:focus{border-color:var(--lcr-brand-800)}.mob-plan__tray-confirm{padding:10px 16px;border-radius:var(--radius-lg);border:none;background:var(--lcr-brand-800);color:#fff;font-size:14px;font-weight:600;cursor:pointer;min-height:44px;white-space:nowrap}.mob-plan__tray-confirm:hover{background:var(--lcr-brand-900)}.mob-plan__tray-cancel{padding:10px 12px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#fff;font-size:14px;cursor:pointer;min-height:44px;white-space:nowrap}.mob-plan__horizon-hint{padding:10px 16px;margin:0 16px 12px;font-size:12px;color:var(--color-text-muted);line-height:1.4;text-align:center}.mob-plan__locked{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 24px;text-align:center}.mob-plan__locked-title{font-size:16px;font-weight:700;color:var(--color-text)}.mob-plan__locked-desc{font-size:13px;color:var(--color-text-muted);line-height:1.5}.mob-plan__locked-checklist{display:flex;gap:16px;font-size:14px;font-weight:600}.mob-plan__locked-cta{margin-top:8px;padding:12px 24px;border-radius:var(--radius-xl);border:none;background:var(--lcr-brand-800);color:#fff;font-size:14px;font-weight:600;cursor:pointer;min-height:44px;transition:background .15s}.mob-plan__locked-cta:hover{background:var(--lcr-brand-900)}.activity-panel-backdrop{position:fixed;inset:0;background:#00000073;z-index:200;animation:activity-fade-in var(--transition-normal) ease-out}@keyframes activity-fade-in{0%{opacity:0}to{opacity:1}}.activity-panel{position:fixed;top:16px;right:16px;bottom:16px;width:580px;max-width:calc(100vw - 32px);background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-elevated-border);border-radius:var(--radius-xl);z-index:201;display:flex;flex-direction:column;box-shadow:var(--glass-elevated-shadow);animation:activity-slide-in .25s cubic-bezier(.32,.72,0,1);overflow:hidden}@keyframes activity-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.activity-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.activity-panel-header__left{display:flex;flex-direction:column;gap:2px}.activity-panel-header__title{font-size:18px;font-weight:700;color:var(--color-text)}.activity-panel-header__subtitle{font-size:12px;font-weight:500;color:var(--color-text-muted)}.activity-panel-header__close{width:36px;height:36px;border-radius:50%;background:var(--lcr-brand-100);color:var(--lcr-ink-700);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.activity-panel-header__close:hover{background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.activity-panel-header__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.activity-summary{display:flex;gap:12px;padding:20px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.activity-summary__card{flex:1;background:var(--lcr-brand-50);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:4px}.activity-summary__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.activity-summary__value{font-size:24px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.activity-summary__value--positive{color:var(--color-success)}.activity-summary__value--negative{color:var(--color-danger)}.activity-filters{display:flex;gap:8px;padding:16px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.activity-filters__chip{height:28px;padding:0 12px;border-radius:14px;border:1px solid var(--color-border);background:#fff;font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.activity-filters__chip:hover{border-color:var(--lcr-brand-600);background:var(--lcr-brand-50)}.activity-filters__chip--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.activity-filters__chip--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.activity-projects{padding:16px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.activity-projects__header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin-bottom:12px}.activity-projects__list{display:flex;flex-direction:column;gap:0}.activity-projects__row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--lcr-brand-200);position:relative}.activity-projects__row:last-child{border-bottom:none}.activity-projects__name{font-size:13px;font-weight:600;color:var(--color-text);z-index:1}.activity-projects__amount-wrap{display:flex;align-items:center;gap:8px;position:relative}.activity-projects__share-bar{position:absolute;right:0;top:50%;transform:translateY(-50%);height:4px;background:#86efac;border-radius:2px;z-index:0}.activity-projects__amount{font-size:13px;font-weight:700;color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;z-index:1;position:relative}.activity-feed{flex:1;overflow-y:auto;padding:0;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.activity-feed::-webkit-scrollbar{width:8px}.activity-feed::-webkit-scrollbar-track{background:transparent}.activity-feed::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.activity-feed::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-500)}.activity-feed__day-group{padding:0}.activity-feed__day-header{position:sticky;top:0;z-index:2;background:var(--lcr-brand-100);padding:8px 24px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.activity-feed__item{display:flex;flex-direction:column;gap:4px;padding:12px 24px;transition:background var(--transition-fast);cursor:default}.activity-feed__item:hover{background:var(--lcr-brand-50)}.activity-feed__item-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.activity-feed__item-left{display:flex;align-items:center;gap:8px;min-width:0}.activity-feed__badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:2px 6px;border-radius:6px;white-space:nowrap;flex-shrink:0}.activity-feed__badge--sale{background:#dcfce7;color:#166534}.activity-feed__badge--cancel{background:#fee2e2;color:#991b1b}.activity-feed__badge--plan{background:#dbeafe;color:#1e40af}.activity-feed__badge--edit{background:#fef3c7;color:#92400e}.activity-feed__badge--create{background:#e0e7ff;color:#3730a3}.activity-feed__project-name{font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-feed__price{font-size:14px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right}.activity-feed__price--positive{color:var(--color-success)}.activity-feed__price--negative{color:var(--color-danger)}.activity-feed__item-bottom{display:flex;align-items:center;gap:8px;padding-left:0}.activity-feed__detail{font-size:12px;color:var(--color-text-muted)}.activity-feed__time{font-size:11px;color:var(--lcr-ink-700)}.activity-panel__loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 24px}.activity-panel__spinner{width:32px;height:32px;border:3px solid var(--lcr-brand-200);border-top-color:var(--lcr-brand-700);border-radius:50%;animation:activity-spinner .8s linear infinite}@keyframes activity-spinner{to{transform:rotate(360deg)}}.activity-panel__loading-text{font-size:14px;color:var(--color-text-muted)}.activity-panel__error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 24px;text-align:center}.activity-panel__error-icon{width:48px;height:48px;border-radius:50%;background:#fee2e2;color:var(--color-danger);display:flex;align-items:center;justify-content:center;font-size:20px}.activity-panel__error-title{font-size:14px;font-weight:600;color:var(--color-text)}.activity-panel__error-text{font-size:13px;color:var(--color-text-muted);line-height:1.5}.activity-panel__retry-btn{margin-top:8px;padding:10px 20px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#fff;font-size:13px;font-weight:600;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.activity-panel__retry-btn:hover{border-color:var(--lcr-brand-600);background:var(--lcr-brand-50)}.activity-panel__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 24px;text-align:center}.activity-panel__empty-icon{width:48px;height:48px;border-radius:50%;background:var(--lcr-brand-100);color:var(--lcr-ink-700);display:flex;align-items:center;justify-content:center;font-size:20px}.activity-panel__empty-text{font-size:14px;color:var(--color-text-muted)}@media(max-width:767px){.activity-panel{inset:auto 0 0;width:100%;max-width:100%;max-height:95vh;max-height:95dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:activity-slide-up .25s cubic-bezier(.32,.72,0,1)}@keyframes activity-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.activity-panel:before{content:"";display:block;width:36px;height:4px;background:var(--lcr-brand-400);border-radius:2px;margin:10px auto 0}.activity-panel-header{padding:12px 16px}.activity-panel-header__title{font-size:16px}.activity-panel-header__close{width:32px;height:32px}.activity-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px}.activity-summary__card{padding:12px}.activity-summary__value{font-size:20px}.activity-filters{padding:12px 16px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.activity-filters::-webkit-scrollbar{display:none}.activity-filters__chip{flex-shrink:0}.activity-projects{padding:12px 16px}.activity-projects__row{padding:10px 0}.activity-feed__day-header{padding:8px 16px}.activity-feed__item{padding:10px 16px}.activity-feed__project-name{font-size:12px}.activity-feed__price{font-size:13px}}@media(prefers-reduced-motion:reduce){.activity-panel,.activity-panel-backdrop{animation:none}}.rap-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);display:flex;align-items:stretch;justify-content:flex-start;animation:rap-fade-in .2s ease-out}@keyframes rap-fade-in{0%{opacity:0}to{opacity:1}}.rap-panel{width:600px;max-width:calc(100vw - 32px);height:calc(100vh - 32px);margin:16px;background:#fff;border-radius:24px;box-shadow:0 25px 50px -12px #00000026,0 12px 24px -8px #00000014,0 0 0 1px #00000008;display:flex;flex-direction:column;overflow:hidden;animation:rap-slide-in .3s cubic-bezier(.32,.72,0,1)}@keyframes rap-slide-in{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.rap-header{display:flex;align-items:center;justify-content:space-between;padding:20px;flex-shrink:0;border-bottom:1px solid var(--lcr-brand-200);background:#fff;position:sticky;top:0;z-index:10}.rap-header__text{display:flex;flex-direction:column;gap:4px}.rap-title{font-size:18px;font-weight:700;color:var(--color-text);margin:0;line-height:1.3}.rap-subtitle{font-size:12px;color:var(--lcr-ink-700);font-weight:500}.rap-meta,.rap-updated{font-size:11px;color:var(--lcr-ink-700);font-style:italic;margin-top:2px}.rap-close-btn{width:36px;height:36px;border-radius:50%;background:var(--lcr-brand-100);border:none;display:flex;align-items:center;justify-content:center;color:var(--lcr-ink-700);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.rap-close-btn:hover{background:var(--lcr-brand-200);color:var(--lcr-brand-900);transform:scale(1.05)}.rap-close-btn:focus-visible{outline:2px solid var(--lcr-brand-400);outline-offset:2px}.rap-content{flex:1;overflow-y:auto;padding:20px 24px 32px;display:flex;flex-direction:column;gap:24px;background:linear-gradient(white 30%,transparent) top / 100% 40px,linear-gradient(transparent,#fff 70%) bottom / 100% 40px,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.05),transparent) top / 100% 12px,radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.05),transparent) bottom / 100% 12px;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll}.rap-kpis,.rap-kpi-row,.rap-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rap-kpi{flex:1;min-width:0;padding:14px 16px;background:#fff;border-radius:14px;border:1px solid var(--lcr-brand-200);box-shadow:0 1px 2px #0f172a0a,0 4px 10px #0f172a0f;transition:all var(--transition-fast)}.rap-kpi--sold .rap-kpi__label{color:#15803d}.rap-kpi--reserved .rap-kpi__label{color:#92400e}.rap-kpi__label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--lcr-ink-700);margin-bottom:6px;line-height:1.2}.rap-kpi__value{font-size:24px;font-weight:700;color:var(--color-text);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rap-kpi__suffix{font-size:14px;font-weight:500;color:var(--lcr-ink-700);margin-left:2px}.rap-kpi__subvalue{font-size:11px;font-weight:500;color:var(--lcr-ink-700);margin-top:2px;line-height:1.2}.rap-kpi-row--compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.rap-kpi--small{padding:10px 12px;border-radius:8px}.rap-kpi--small .rap-kpi__label{font-size:9px;margin-bottom:4px}.rap-kpi--small .rap-kpi__value{font-size:16px}.rap-section{display:flex;flex-direction:column;gap:12px}.rap-section-header,.rap-section__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;margin-bottom:12px}.rap-section-header:first-child,.rap-section__header:first-child{margin-top:0}.rap-section-title,.rap-section__title{font-size:12px;font-weight:700;color:var(--lcr-ink-700);margin:0;text-transform:uppercase;letter-spacing:.06em}.rap-projects,.rap-proj-list,.rap-projects-list{display:flex;flex-direction:column}.rap-project-row,.rap-proj{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--lcr-brand-200);transition:background var(--transition-fast);margin:0 -4px;padding:12px 4px;border-radius:8px}.rap-project-row:last-child,.rap-proj:last-child{border-bottom:none}.rap-project-row:hover,.rap-proj:hover{background:var(--lcr-brand-50)}.rap-project-row__info,.rap-proj__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rap-project-row__name,.rap-proj__name{font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rap-project-row__stats,.rap-project-row__count,.rap-proj__stats{font-size:12px;color:var(--lcr-ink-700)}.rap-project-row__bar-wrap,.rap-proj__bar-wrap{width:60px;height:4px;background:var(--lcr-brand-200);border-radius:2px;overflow:hidden;flex-shrink:0;position:relative}.rap-project-row__bar,.rap-proj__bar{height:100%;background:var(--color-success);border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.rap-project-row__amount,.rap-proj__amount{font-size:14px;font-weight:700;color:var(--color-text);white-space:nowrap;min-width:90px;text-align:right}.rap-proj__amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:100px}.rap-proj__amount--sold{min-width:0}.rap-proj__amount--reserved{font-size:12px;font-weight:600;color:var(--color-warning, #f59e0b);min-width:0}.rap-filters,.rap-filter-chips,.rap-chips{display:flex;flex-wrap:wrap;gap:8px}.rap-filter-chip,.rap-chip{height:32px;padding:0 14px;border-radius:14px;border:none;background:var(--lcr-brand-100);font-size:12px;font-weight:600;color:var(--lcr-ink-700);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.rap-filter-chip:hover,.rap-chip:hover{background:var(--lcr-brand-200);color:var(--lcr-ink-800)}.rap-filter-chip--active,.rap-chip--active{background:var(--lcr-brand-800);color:#fff}.rap-filter-chip--active:hover,.rap-chip--active:hover{background:var(--lcr-brand-900);color:#fff}.rap-feed,.rap-activity-feed,.rap-act-list{display:flex;flex-direction:column;gap:0}.rap-no-activities,.rap-act-empty{padding:32px 24px;text-align:center;font-size:13px;color:var(--lcr-ink-700);font-style:italic;background:var(--lcr-brand-50);border-radius:var(--radius-md)}.rap-day-group,.rap-day{display:flex;flex-direction:column}.rap-day-label,.rap-day__label{display:block;width:100%;box-sizing:border-box;font-size:11px;font-weight:700;color:var(--lcr-ink-800);text-transform:uppercase;letter-spacing:.06em;padding:8px 14px;margin:8px 0;position:sticky;top:0;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:8px;z-index:5;border-bottom:1px solid var(--lcr-brand-100)}.rap-day-activities,.rap-day__list{display:flex;flex-direction:column}.rap-activity-row,.rap-act{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--lcr-brand-100);transition:background var(--transition-fast);margin:0 -8px;padding:14px 8px;border-radius:8px}.rap-activity-row:last-child,.rap-act:last-child{border-bottom:none}.rap-activity-left,.rap-act__left{flex-shrink:0;padding-top:2px;min-width:96px}.rap-act__left .rap-type-badge{width:100%;justify-content:center}.rap-act__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%}.rap-act__info{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--color-text);white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.rap-act__row--extra{margin-top:2px}.rap-act__row--extra .rap-act__extra-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rap-event-badge,.rap-badge,.rap-type-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.rap-event-badge svg,.rap-badge svg{width:12px;height:12px}.rap-badge__label{line-height:1}.rap-event-badge--sold,.rap-event-badge--sale,.rap-badge--sale,.rap-type-badge--sold{background:#dcfce7;color:#15803d}.rap-event-badge--reserved,.rap-event-badge--reservation,.rap-badge--reservation,.rap-type-badge--reserved{background:#fef3c7;color:#92400e}.rap-timeline{display:flex;flex-direction:column;margin-top:6px;width:100%}.rap-timeline__node{position:relative;display:flex;align-items:center;gap:6px;padding:2px 0 2px 14px}.rap-timeline__node:before{content:"";position:absolute;left:3px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:currentColor;z-index:1}.rap-timeline__node--sold{color:#15803d}.rap-timeline__node--reserved{color:#92400e}.rap-timeline__node--rented{color:#7c3aed}.rap-timeline__line{position:absolute;left:5px;top:50%;width:2px;height:calc(50% + 4px);background:#cbd5e1;z-index:0}.rap-timeline__badge{font-size:9px;font-weight:600;letter-spacing:.02em;padding:1px 5px;border-radius:3px;line-height:1.4}.rap-timeline__node--sold .rap-timeline__badge{background:#dcfce7;color:#15803d}.rap-timeline__node--reserved .rap-timeline__badge{background:#fef3c7;color:#92400e}.rap-timeline__node--rented .rap-timeline__badge{background:#f3e8ff;color:#7c3aed}.rap-timeline__date{font-size:10px;color:var(--text-secondary, #64748b);line-height:1.2}.rap-event-badge--document,.rap-event-badge--contract,.rap-badge--document{background:#dbeafe;color:#1e40af}.rap-event-badge--payment,.rap-badge--payment{background:#ccfbf1;color:#0f766e}.rap-badge--rental,.rap-type-badge--rented{background:#f3e8ff;color:#7c3aed}.rap-event-badge--cancellation,.rap-badge--cancellation{background:#fee2e2;color:#991b1b}.rap-event-badge--deal,.rap-badge--deal{background:#f3e8ff;color:#7c3aed}.rap-event-badge--other,.rap-badge--other,.rap-type-badge--other{background:var(--lcr-brand-100);color:var(--lcr-ink-700)}.rap-activity-main,.rap-act__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rap-activity-project,.rap-act__line1{font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rap-activity-unit,.rap-act__unit{font-weight:400;color:var(--lcr-ink-700)}.rap-activity-details,.rap-act__line2{display:flex;gap:6px;font-size:12px;color:var(--lcr-ink-700);flex-wrap:wrap;align-items:center}.rap-act--with-extras{padding-right:12px}.rap-act--with-extras .rap-act__main{flex:1}.rap-act--with-extras .rap-act__line1{display:flex;align-items:center}.rap-act__price-inline{margin-left:auto;font-size:13px;font-weight:600;color:var(--color-text);padding-left:12px;white-space:nowrap}.rap-act__extra-line{display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding-left:2px}.rap-act__extra-name{font-size:11px;color:var(--lcr-ink-700)}.rap-act__extra-price{font-size:11px;font-weight:600;color:var(--lcr-ink-700);white-space:nowrap}.rap-activity-details span:after{content:" ·";color:var(--lcr-brand-400);margin-left:6px}.rap-activity-details span:last-child:after{content:"";margin-left:0}.rap-activity-buyer,.rap-act__buyer,.rap-act__salesman{display:flex;align-items:center;gap:6px;font-size:11px;font-style:italic;color:var(--lcr-ink-700);margin-top:10px}.rap-act__salesman-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--lcr-brand-200);color:var(--lcr-ink-800);font-size:9px;font-style:normal;font-weight:700;letter-spacing:.02em;flex-shrink:0}.rap-activity-right,.rap-act__right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;text-align:right}.rap-activity-price,.rap-act__price{font-size:14px;font-weight:700;color:var(--color-success)}.rap-activity-time{font-size:11px;color:var(--lcr-ink-700)}@keyframes rap-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rap-skeleton{background:linear-gradient(90deg,var(--lcr-brand-200) 25%,var(--lcr-brand-100) 50%,var(--lcr-brand-200) 75%);background-size:200% 100%;animation:rap-shimmer 1.5s ease-in-out infinite;border-radius:6px}.rap-kpi__skeleton{height:28px;background:linear-gradient(90deg,var(--lcr-brand-200) 25%,var(--lcr-brand-100) 50%,var(--lcr-brand-200) 75%);background-size:200% 100%;animation:rap-shimmer 1.5s infinite;border-radius:4px}.rap-skeleton-kpi{flex:1;padding:16px;background:var(--lcr-brand-50);border-radius:12px;border-left:2px solid var(--lcr-brand-200)}.rap-skeleton-kpi__label{height:10px;width:60%;margin-bottom:10px}.rap-skeleton-kpi__value{height:28px;width:80%}.rap-skeleton-project,.rap-proj--skeleton{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--lcr-brand-200);height:60px}.rap-skeleton-project__name{height:14px;width:120px;flex-shrink:0}.rap-skeleton-project__stats{height:12px;width:80px;flex:1}.rap-skeleton-project__bar{height:4px;width:60px;flex-shrink:0}.rap-skeleton-project__amount{height:16px;width:70px;flex-shrink:0}.rap-skeleton-activity,.rap-act--skeleton{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--lcr-brand-100);height:56px}.rap-skeleton-activity__badge,.rap-skeleton--badge{height:22px;width:70px;border-radius:4px;flex-shrink:0}.rap-skeleton-activity__content{flex:1;display:flex;flex-direction:column;gap:6px}.rap-skeleton-activity__title,.rap-skeleton--title{height:14px;width:80px}.rap-skeleton-activity__details,.rap-skeleton--line{height:12px;width:100%}.rap-skeleton-activity__right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.rap-skeleton-activity__price{height:16px;width:60px}.rap-skeleton-activity__time{height:11px;width:40px}.rap-loading{display:flex;flex-direction:column;gap:24px}.rap-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:56px 24px;text-align:center;flex:1}.rap-state__icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.rap-state__icon--error{background:#fef2f2;color:var(--color-danger)}.rap-state__icon--empty{background:var(--lcr-brand-100);color:var(--lcr-ink-700)}.rap-state__icon--empty svg{width:24px;height:24px}.rap-state__msg{font-size:14px;color:var(--lcr-ink-700);max-width:300px;line-height:1.5}.rap-state__btn,.rap-retry-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:12px;border:1.5px solid var(--lcr-brand-300);background:#fff;color:var(--lcr-ink-800);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.rap-state__btn:hover,.rap-retry-btn:hover{border-color:var(--lcr-brand-600);background:var(--lcr-brand-50);box-shadow:var(--shadow-sm)}.rap-spinner{animation:rap-spin 1s linear infinite}@keyframes rap-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:767px){.rap-panel{position:fixed;inset:auto 0 0;width:100%;max-width:100%;height:auto;max-height:95vh;max-height:95dvh;margin:0;border-radius:20px 20px 0 0;animation:rap-slide-up .3s cubic-bezier(.32,.72,0,1)}@keyframes rap-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.rap-panel:before{content:none}.rap-header{padding:12px 16px 14px;position:sticky;top:0;background:#fff;z-index:10}.rap-title{font-size:16px}.rap-subtitle{font-size:11px}.rap-close-btn{width:44px;height:44px}.rap-content{padding:16px 16px calc(24px + env(safe-area-inset-bottom,0px));gap:20px}.rap-kpis,.rap-kpi-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.rap-kpi{padding:14px 12px;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-left:none;border-radius:10px}.rap-kpi__value{font-size:20px}.rap-kpi__label{font-size:9px;text-align:center}.rap-filters,.rap-filter-chips,.rap-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.rap-filters::-webkit-scrollbar,.rap-filter-chips::-webkit-scrollbar,.rap-chips::-webkit-scrollbar{display:none}.rap-filter-chip,.rap-chip{flex-shrink:0;height:44px;padding:0 16px;font-size:13px}.rap-project-row,.rap-proj{padding:12px 0}.rap-project-row__name,.rap-proj__name{font-size:12px}.rap-project-row__bar-wrap,.rap-proj__bar-wrap{width:40px}.rap-project-row__amount,.rap-proj__amount{min-width:70px;font-size:13px}.rap-activity-row,.rap-act{flex-wrap:wrap;padding:12px 10px;gap:6px 12px}.rap-act__left{order:1;padding-top:0;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;row-gap:2px}.rap-act__left>.rap-type-badge{grid-column:1;grid-row:1}.rap-act__left>.rap-timeline{grid-column:2;grid-row:1;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:flex-end;align-items:stretch;width:auto;margin-top:0;gap:0;padding:2px 0}.rap-act__left>.rap-timeline .rap-timeline__node{position:relative;display:grid;grid-template-rows:auto auto;grid-template-columns:1fr;justify-items:center;align-items:center;row-gap:2px;padding:0 12px;min-width:56px}.rap-act__left>.rap-timeline .rap-timeline__node:before{display:none}.rap-act__left>.rap-timeline .rap-timeline__badge{grid-row:1;grid-column:1;font-size:9px;padding:1px 4px;z-index:2;min-width:32px;box-sizing:border-box;text-align:center}.rap-act__left>.rap-timeline .rap-timeline__date{grid-row:2;grid-column:1;font-size:10px;z-index:2}.rap-act__left>.rap-timeline .rap-timeline__line{position:absolute;top:8px;left:auto;right:calc(50% + 23px);width:calc(100% - 46px);height:1px;margin:0;transform:translateY(-50%);background:#cbd5e1;pointer-events:none;z-index:0}.rap-act__right{order:2;margin-left:auto}.rap-act__main{order:3;flex-basis:100%;width:100%}.rap-activity-project,.rap-act__line1{font-size:13px}.rap-act__project{font-weight:600}.rap-activity-details,.rap-act__line2,.rap-act__buyer{font-size:12px;color:var(--lcr-ink-700)}.rap-act__price{font-size:14px}.rap-event-badge,.rap-badge,.rap-type-badge{font-size:10px;padding:4px 8px}.rap-section-header,.rap-section__header{margin-top:20px;margin-bottom:10px}.rap-section-title,.rap-section__title{font-size:11px}.rap-day-label,.rap-day__label{font-size:10px;padding:6px 12px;margin:8px 0}}@media(prefers-reduced-motion:reduce){.rap-backdrop,.rap-panel{animation:none}.rap-skeleton,.rap-kpi__skeleton{animation:none;background:var(--lcr-brand-200)}.rap-spinner{animation:none}.rap-project-row__bar,.rap-proj__bar{transition:none}}.ps-panel{background:var(--lcr-brand-200);border-top:2px solid var(--lcr-brand-400);border-radius:0;padding:16px;box-shadow:inset 0 2px 4px #0000000f;position:relative}.ps-panel--sticky{position:sticky;top:var(--topbar-h);z-index:var(--z-sticky)}.ps-panel:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--lcr-brand-400);box-shadow:0 1px 2px #0000000a}.ps-panel--collapsed{padding:8px 16px}.ps-panel--loading{opacity:.7;pointer-events:none}.ps-panel--error{border-top-color:var(--color-danger);box-shadow:inset 0 2px 4px #0000000f,inset 0 0 0 1px #dc35451a}.ps-panel:focus-within{outline:2px solid var(--lcr-brand-800);outline-offset:-2px}@media(forced-colors:active){.ps-panel{border:2px solid CanvasText;forced-color-adjust:none}}@media(max-width:767px){.ps-panel{padding:12px}.ps-panel--collapsed{padding:6px 12px}}@media(prefers-reduced-motion:reduce){.ps-panel{transition:none}}.ps-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.ps-header__left{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ps-header__title{font-size:16px;font-weight:600;color:var(--color-text);margin:0;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-header__scope{font-size:12px;font-weight:400;color:var(--color-text-muted);margin:0;line-height:1.35}.ps-header__close{width:32px;height:32px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--lcr-ink-700);font-size:18px;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.ps-header__close:hover{background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.ps-header__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ps-header__close:active{background:var(--lcr-brand-200)}@media(pointer:coarse){.ps-header__close{width:44px;height:44px;min-width:44px;min-height:44px}}@media(max-width:480px){.ps-header{padding:10px 12px}.ps-header__title{font-size:15px}.ps-header__scope{font-size:11px}}.ps-kpi-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px 24px}.ps-kpi{background:#fff;border-radius:var(--radius-md);border-left:3px solid var(--lcr-brand-600);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0;transition:all var(--transition-fast)}.ps-kpi:hover{background:var(--lcr-brand-50)}.ps-kpi__label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-kpi__value{font-size:22px;font-weight:700;color:var(--color-text);line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-kpi__secondary{font-size:11px;font-weight:500;color:var(--color-text-secondary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-kpi--positive{border-left-color:var(--color-success)}.ps-kpi--positive .ps-kpi__value{color:var(--color-success)}.ps-kpi--negative{border-left-color:var(--color-danger)}.ps-kpi--negative .ps-kpi__value{color:var(--color-danger)}.ps-kpi--neutral{border-left-color:var(--lcr-brand-600)}@media(max-width:1024px){.ps-kpi-strip{grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 20px}.ps-kpi{padding:12px 14px}.ps-kpi__value{font-size:20px}}@media(max-width:768px){.ps-kpi-strip{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 16px}.ps-kpi{padding:10px 12px}.ps-kpi__label{font-size:9px}.ps-kpi__value{font-size:18px}.ps-kpi__secondary{font-size:10px}}@media(prefers-reduced-motion:reduce){.mob-editor,.mob-plan__tray{animation:none}.ps-header__close,.ps-kpi{transition:none}}.ps-bucket{display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--col-quarter);min-height:var(--cell-height);padding:4px 2px;gap:2px;background:var(--color-bg);border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid var(--lcr-brand-300);cursor:default;transition:background-color var(--transition-fast)}.ps-bucket:hover{background-color:var(--color-row-hover)}.ps-bucket:focus-visible{outline:2px solid var(--lcr-brand-300);outline-offset:-2px;z-index:1}.ps-bucket--future{opacity:.5;background-color:var(--lcr-brand-50)}.ps-bucket--future:hover{opacity:.7;background-color:var(--lcr-brand-100)}.ps-bucket--current{background-color:var(--color-warning-bg);border-bottom-color:var(--color-warning)}.ps-bucket--current:hover{background-color:#fef08a}.ps-bucket--in-range{background-color:var(--lcr-brand-100)}.ps-bucket--in-range:hover{background-color:var(--lcr-brand-200)}.ps-bucket--empty .ps-bucket__actual{font-weight:400;color:var(--lcr-ink-700)}.ps-bucket--loading{animation:ps-bucket-pulse 1.5s ease-in-out infinite}@keyframes ps-bucket-pulse{0%,to{opacity:1}50%{opacity:.5}}.ps-bucket__actual{font-size:14px;font-weight:600;color:var(--color-text);line-height:1.2}.ps-bucket--future .ps-bucket__actual{color:var(--color-text-muted)}.ps-bucket__plan{font-size:10px;font-weight:500;color:var(--color-text-muted);line-height:1.2}.ps-bucket__plan:before{content:"P "}.ps-bucket__plan-prefix{font-weight:600;margin-right:2px;color:var(--lcr-ink-700)}.ps-bucket--future .ps-bucket__plan{color:var(--lcr-ink-700)}.ps-bucket__delta{font-size:10px;font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.ps-bucket__delta--positive{color:var(--color-success)}.ps-bucket__delta--negative{color:var(--color-danger);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.ps-bucket__delta--neutral{color:var(--color-text-muted)}.ps-bucket--future .ps-bucket__delta{color:var(--lcr-ink-700)}.ps-bucket-tooltip{position:fixed;z-index:var(--z-popover);transform:translate(-50%,-100%) translateY(-8px);min-width:140px;padding:10px 12px;background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:12px;pointer-events:auto}.ps-bucket-tooltip:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:#fff;border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid var(--lcr-brand-300)}.ps-bucket-tooltip__header{font-size:13px;font-weight:700;color:var(--color-text);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--lcr-brand-200)}.ps-bucket-tooltip__row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 0}.ps-bucket-tooltip__label{color:var(--lcr-ink-700)}.ps-bucket-tooltip__value{font-weight:600;color:var(--color-text)}.ps-bucket-tooltip__value.ps-bucket__delta--positive{color:var(--color-success)}.ps-bucket-tooltip__value.ps-bucket__delta--negative{color:#dc2626}.ps-bucket-tooltip__note{margin-top:6px;padding-top:6px;border-top:1px solid var(--lcr-brand-200);font-size:11px;font-style:italic;color:var(--lcr-ink-700)}@media(max-width:767px){.ps-bucket{min-height:var(--cell-height-mob);padding:6px 2px;gap:3px}.ps-bucket__actual{font-size:12px}.ps-bucket__plan,.ps-bucket__delta{font-size:9px}.ps-bucket-tooltip{min-width:120px;padding:8px 10px;font-size:11px}}.density-compact .ps-bucket{min-height:calc(var(--cell-height) - 2px);padding:2px;gap:1px}.density-compact .ps-bucket__actual{font-size:12px}.density-compact .ps-bucket__plan,.density-compact .ps-bucket__delta{font-size:9px}@media(prefers-reduced-motion:reduce){.ps-bucket{transition:none}.ps-bucket--loading{animation:none}}.ps-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:10px;padding:12px 16px;min-width:180px;max-width:280px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-popover);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.ps-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#fff;filter:drop-shadow(0 2px 2px rgba(0,0,0,.06))}.ps-tooltip:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:9px solid transparent;border-top-color:var(--color-border)}.ps-tooltip--visible,*:hover>.ps-tooltip,*:focus-within>.ps-tooltip{opacity:1;visibility:visible}@keyframes ps-tooltip-fade-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ps-tooltip--visible,*:hover>.ps-tooltip,*:focus-within>.ps-tooltip{animation:ps-tooltip-fade-in var(--transition-fast) ease-out forwards}.ps-tooltip--align-left{left:0;transform:translate(0)}.ps-tooltip--align-left:after,.ps-tooltip--align-left:before{left:20px;transform:translate(0)}.ps-tooltip--align-left.ps-tooltip--visible,*:hover>.ps-tooltip--align-left,*:focus-within>.ps-tooltip--align-left{animation-name:ps-tooltip-fade-in-left}@keyframes ps-tooltip-fade-in-left{0%{opacity:0;transform:translate(0) translateY(4px)}to{opacity:1;transform:translate(0) translateY(0)}}.ps-tooltip--align-right{left:auto;right:0;transform:translate(0)}.ps-tooltip--align-right:after,.ps-tooltip--align-right:before{left:auto;right:20px;transform:translate(0)}.ps-tooltip--align-right.ps-tooltip--visible,*:hover>.ps-tooltip--align-right,*:focus-within>.ps-tooltip--align-right{animation-name:ps-tooltip-fade-in-right}@keyframes ps-tooltip-fade-in-right{0%{opacity:0;transform:translate(0) translateY(4px)}to{opacity:1;transform:translate(0) translateY(0)}}.ps-tooltip--below{bottom:auto;top:100%;margin-bottom:0;margin-top:10px}.ps-tooltip--below:after{top:auto;bottom:100%;border:8px solid transparent;border-bottom-color:#fff;border-top-color:transparent}.ps-tooltip--below:before{top:auto;bottom:100%;border:9px solid transparent;border-bottom-color:var(--color-border);border-top-color:transparent}.ps-tooltip--below.ps-tooltip--visible,*:hover>.ps-tooltip--below,*:focus-within>.ps-tooltip--below{animation-name:ps-tooltip-fade-in-below}@keyframes ps-tooltip-fade-in-below{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ps-tooltip--below.ps-tooltip--align-left.ps-tooltip--visible,*:hover>.ps-tooltip--below.ps-tooltip--align-left,*:focus-within>.ps-tooltip--below.ps-tooltip--align-left{animation-name:ps-tooltip-fade-in-below-left}@keyframes ps-tooltip-fade-in-below-left{0%{opacity:0;transform:translate(0) translateY(-4px)}to{opacity:1;transform:translate(0) translateY(0)}}.ps-tooltip--below.ps-tooltip--align-right.ps-tooltip--visible,*:hover>.ps-tooltip--below.ps-tooltip--align-right,*:focus-within>.ps-tooltip--below.ps-tooltip--align-right{animation-name:ps-tooltip-fade-in-below-right}@keyframes ps-tooltip-fade-in-below-right{0%{opacity:0;transform:translate(0) translateY(-4px)}to{opacity:1;transform:translate(0) translateY(0)}}.ps-tooltip__title{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--lcr-brand-200)}.ps-tooltip__row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}.ps-tooltip__row:not(:last-child){border-bottom:1px dashed var(--lcr-brand-200)}.ps-tooltip__label{color:var(--color-text-secondary);font-weight:400}.ps-tooltip__value{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.ps-tooltip__value--positive{color:var(--color-success)}.ps-tooltip__value--negative{color:var(--color-danger)}.ps-tooltip__value--neutral{color:var(--color-text-secondary)}@media(max-width:767px){.ps-tooltip{padding:14px 18px;min-width:200px}.ps-tooltip__title{font-size:14px}.ps-tooltip__row{padding:6px 0;font-size:13px}}@media(prefers-reduced-motion:reduce){.ps-tooltip{animation:none;transition:opacity .01ms}}.ps-kpi__pct{display:inline-flex;align-items:center;gap:3px;font-weight:600}.ps-kpi__pct--positive{color:var(--color-success)}.ps-kpi__pct--negative{color:var(--color-danger)}.ps-kpi__pct--neutral{color:var(--color-text-secondary)}.ps-kpi__icon{font-size:9px;line-height:1}.ps-kpi__icon--positive{color:var(--color-success)}.ps-kpi__icon--negative{color:var(--color-danger)}.ps-skeleton{background:linear-gradient(90deg,var(--lcr-brand-200) 25%,var(--lcr-brand-100) 50%,var(--lcr-brand-200) 75%);background-size:200% 100%;animation:rap-shimmer 1.5s ease-in-out infinite;border-radius:6px}.ps-skeleton-container{display:flex;flex-direction:column;gap:16px;padding:16px}.ps-skeleton-kpi-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:16px 20px;border-bottom:1px solid var(--lcr-brand-200);background:var(--lcr-brand-50)}.ps-skeleton-kpi{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#fff;border-radius:10px;border-left:3px solid var(--lcr-brand-200);box-shadow:0 1px 2px #0000000a}.ps-skeleton-kpi__label{height:10px;width:60%}.ps-skeleton-kpi__value{height:26px;width:75%}.ps-skeleton-kpi__secondary{height:12px;width:50%}@media(max-width:1024px){.ps-skeleton-kpi-strip{grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 20px}}@media(max-width:768px){.ps-skeleton-kpi-strip{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 16px}.ps-skeleton-kpi{padding:10px 12px}.ps-skeleton-kpi__value{height:20px}}.summary-rows--empty{display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px dashed var(--lcr-brand-400);background:var(--lcr-brand-100)}.summary-rows__empty-message{font-size:13px;color:var(--lcr-ink-700);text-align:center;font-style:italic}.summary-rows__hint{padding:8px 16px;font-size:12px;color:var(--lcr-ink-700);background:var(--lcr-brand-100);border-bottom:1px solid var(--lcr-brand-300);text-align:center;font-style:italic}.summary-row__top-label{display:block;font-size:12px;font-weight:700;color:var(--lcr-ink-800, #222);letter-spacing:.3px;text-transform:uppercase;font-style:normal;margin-bottom:2px}.unit-types-popover{width:400px;padding:10px 12px}.unit-types-popover__list{margin-top:6px;border:1px solid var(--color-border);border-radius:4px;overflow:hidden}.unit-types-popover__row{display:grid;grid-template-columns:1.4fr 50px 52px 52px 84px;gap:6px;padding:6px 10px;font-size:12px;border-bottom:1px solid #f3f4f6;align-items:center}.unit-types-popover__row:last-child{border-bottom:none}.unit-types-popover__row--head{background:#f9fafb;font-weight:600;color:#6b7280;font-size:11px;text-transform:uppercase;letter-spacing:.3px}.unit-types-popover__label{font-weight:500;color:#111827}.unit-types-popover__row--head .unit-types-popover__label{color:#6b7280}.unit-types-popover__cell{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:767px){.summary-rows--empty{padding:12px}.summary-rows__empty-message{font-size:12px}.summary-rows__hint{padding:6px 12px;font-size:11px}}.grid-empty-state--filtered{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:12px;text-align:center}.grid-empty-state__icon{font-size:32px;color:var(--lcr-ink-700)}.grid-empty-state__title{font-size:16px;font-weight:600;color:var(--color-text)}.grid-empty-state__desc{font-size:13px;color:var(--lcr-ink-700);max-width:320px}.grid-empty-state__stats{display:flex;gap:16px;font-size:12px;color:var(--lcr-ink-700);padding-top:8px}.grid-empty-state__btn{margin-top:8px;padding:8px 16px;background:var(--lcr-brand-800);color:#fff;border-radius:var(--radius-lg);font-size:13px;font-weight:600;transition:background var(--transition-fast)}.grid-empty-state__btn:hover{background:var(--lcr-brand-900)}.variance--positive{color:var(--color-success)}.variance--negative{color:var(--color-danger)}.variance--neutral{color:var(--lcr-ink-700)}.month-num--future{opacity:.3}.month-num--muted,.month-num--zero-dash{color:var(--lcr-ink-700)}.delta--positive{color:var(--color-success);font-weight:600}.delta--negative{color:var(--color-danger);font-weight:600}.delta--neutral{color:var(--lcr-ink-700)}.ps-skeleton-timeline{border:1px solid var(--lcr-brand-300);border-radius:var(--radius-lg);background:var(--lcr-brand-50);overflow:hidden}.ps-skeleton-timeline__summary{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--lcr-brand-200)}.ps-skeleton-timeline__title{height:20px;width:120px}.ps-skeleton-timeline__metrics{display:flex;gap:16px;flex:1}.ps-skeleton-timeline__metric{height:16px;width:70px}.ps-skeleton-timeline__toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--lcr-brand-200)}.ps-skeleton-timeline__btn{height:32px;width:80px;border-radius:6px}.ps-skeleton-timeline__btn--icon{width:32px}.ps-skeleton-timeline__btn--wide{width:120px}.ps-skeleton-timeline__scroll{padding:8px;overflow:hidden}.ps-skeleton-timeline__grid{display:flex;flex-direction:column;gap:4px}.ps-skeleton-timeline__header-row{display:flex;align-items:center;min-height:24px;border-bottom:1px solid var(--lcr-brand-200);padding-bottom:4px}.ps-skeleton-timeline__row{display:flex;align-items:center;min-height:28px}.ps-skeleton-timeline__row+.ps-skeleton-timeline__row{border-top:1px solid rgba(224,224,224,.3)}.ps-skeleton-timeline__label{width:60px;min-width:60px;height:12px;margin-right:4px}.ps-skeleton-timeline__quarters{display:flex;flex:1;gap:0}.ps-skeleton-timeline__quarter{flex:1;display:flex;gap:2px;padding:4px;border-left:1px solid var(--lcr-brand-200)}.ps-skeleton-timeline__quarter--year-start{border-left:1.5px solid var(--lcr-brand-400)}.ps-skeleton-timeline__month{flex:1;height:24px;min-width:28px;border-radius:4px}.ps-skeleton-timeline__phase-row{display:flex;align-items:center;min-height:14px;padding:4px 0}.ps-skeleton-timeline__phase-bar{display:flex;flex:1;gap:2px;margin-left:64px}.ps-skeleton-timeline__phase-segment{height:6px;border-radius:2px}.ps-skeleton-timeline__phase-segment--presales{flex:3;background:linear-gradient(90deg,#eab3084d 25%,#eab30826,#eab3084d 75%);background-size:200% 100%;animation:rap-shimmer 1.5s ease-in-out infinite}.ps-skeleton-timeline__phase-segment--construction{flex:2;background:linear-gradient(90deg,#3b82f64d 25%,#3b82f626,#3b82f64d 75%);background-size:200% 100%;animation:rap-shimmer 1.5s ease-in-out infinite}.ps-skeleton-bucket-row{display:flex;gap:2px;padding:8px 0}.ps-skeleton-bucket{flex:1;min-width:48px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:#fff;border-radius:6px;border:1px solid var(--lcr-brand-200)}.ps-skeleton-bucket__actual{height:16px;width:70%}.ps-skeleton-bucket__plan{height:10px;width:50%}.ps-skeleton-bucket__delta{height:10px;width:40%}.ps-skeleton-wrap{position:relative}.ps-skeleton-wrap__skeleton{transition:opacity .2s ease-out}.ps-skeleton-wrap__content{opacity:0;transition:opacity .3s ease-out .1s}.ps-skeleton-wrap--loaded .ps-skeleton-wrap__skeleton{opacity:0;pointer-events:none;position:absolute;inset:0}.ps-skeleton-wrap--loaded .ps-skeleton-wrap__content{opacity:1}.ps-content{opacity:0;transform:translateY(4px);transition:opacity .3s ease-out,transform .3s ease-out}.ps-content--loaded{opacity:1;transform:translateY(0)}.ps-stagger-fade>*{opacity:0;transform:translateY(8px);animation:ps-fade-in .3s ease-out forwards}.ps-stagger-fade>*:nth-child(1){animation-delay:0ms}.ps-stagger-fade>*:nth-child(2){animation-delay:50ms}.ps-stagger-fade>*:nth-child(3){animation-delay:.1s}.ps-stagger-fade>*:nth-child(4){animation-delay:.15s}.ps-stagger-fade>*:nth-child(5){animation-delay:.2s}.ps-stagger-fade>*:nth-child(6){animation-delay:.25s}@keyframes ps-fade-in{to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ps-skeleton,.ps-skeleton-timeline__phase-segment--presales,.ps-skeleton-timeline__phase-segment--construction{animation:none;background:var(--lcr-brand-200)}.ps-content,.ps-skeleton-wrap__skeleton,.ps-skeleton-wrap__content{transition:none}.ps-stagger-fade>*{animation:none;opacity:1;transform:none}}@media(max-width:767px){.ps-panel{position:fixed;inset:auto 0 0;width:100%;max-width:100%;max-height:90vh;max-height:90dvh;margin:0;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -4px 24px #0000001f,0 -1px 4px #0000000f;z-index:var(--z-modal);display:flex;flex-direction:column;overflow:hidden;animation:ps-slide-up .3s cubic-bezier(.32,.72,0,1);will-change:transform}@keyframes ps-slide-up{0%{transform:translateY(100%);opacity:.8}to{transform:translateY(0);opacity:1}}.ps-panel:before{content:"";display:block;width:40px;height:4px;background:var(--lcr-brand-400);border-radius:2px;margin:12px auto 0;flex-shrink:0}.ps-panel--collapsed{max-height:auto}.ps-panel--collapsed .ps-content{max-height:0;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0;visibility:hidden}.ps-panel--collapsed .ps-header__collapse-icon{transform:rotate(180deg)}.ps-header{padding:12px 16px 14px;border-bottom:1px solid var(--lcr-brand-200);background:#fff;position:sticky;top:0;z-index:10;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.ps-header:active{background:var(--lcr-brand-50)}.ps-header__title{font-size:16px;line-height:1.25}.ps-header__scope{font-size:12px;line-height:1.35}.ps-header__close-btn{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:10px}.ps-header__collapse-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;color:var(--lcr-ink-700);transition:transform .25s cubic-bezier(.4,0,.2,1);flex-shrink:0}.ps-content{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 0 calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:0;max-height:calc(90vh - 80px);max-height:calc(90dvh - 80px);transition:max-height .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .25s ease;opacity:1;visibility:visible}.ps-kpi-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px 16px;width:100%}.ps-kpi,.ps-kpi__block{padding:14px 12px;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-left:none;border-radius:10px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);position:relative;min-height:70px}.ps-kpi__block--positive{border-top:3px solid var(--color-success);padding-top:11px}.ps-kpi__block--negative{border-top:3px solid var(--color-danger);padding-top:11px}.ps-kpi__block--positive .ps-kpi__value{color:var(--color-success)}.ps-kpi__block--negative .ps-kpi__value{color:var(--color-danger)}.ps-kpi__value{font-size:20px;line-height:1.2}.ps-kpi__label{font-size:9px;text-align:center;letter-spacing:.04em;margin-bottom:4px;order:-1}.ps-kpi__secondary{font-size:10px;margin-top:2px}.ps-kpi__icon{font-size:8px;margin-right:2px}.ps-kpi__pct{font-size:10px;font-weight:600}.ps-kpi__pct--positive{color:var(--color-success)}.ps-kpi__pct--negative{color:var(--color-danger)}.ps-kpi__pct--neutral{color:var(--lcr-ink-700)}.ps-timeline-container{position:relative;padding:0}.ps-timeline-tabs{display:flex;flex-wrap:nowrap;gap:8px;padding:14px 16px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0;border-bottom:1px solid var(--lcr-brand-200);background:var(--lcr-brand-50)}.ps-timeline-tabs::-webkit-scrollbar{display:none}.ps-timeline-tab{flex-shrink:0;min-width:44px;min-height:44px;padding:10px 16px;font-size:13px;font-weight:600;color:var(--lcr-ink-700);background:#fff;border:1.5px solid var(--lcr-brand-300);border-radius:var(--radius-xl);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;gap:6px}.ps-timeline-tab:active{transform:scale(.97)}.ps-timeline-tab--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.ps-timeline-tab--active:active{background:var(--lcr-brand-900)}.ps-timeline-tabs:after{content:"";position:sticky;right:0;top:0;bottom:0;width:24px;background:linear-gradient(to right,transparent,var(--lcr-brand-50));pointer-events:none;flex-shrink:0}.ps-timeline-nav{display:flex;align-items:center;gap:8px;padding:0 16px;margin-bottom:12px}.ps-timeline-nav__btn{width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--lcr-brand-300);border-radius:10px;background:#fff;color:var(--lcr-ink-700);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.ps-timeline-nav__btn:disabled{opacity:.4;cursor:not-allowed}.ps-timeline-nav__btn:active:not(:disabled){background:var(--lcr-brand-100);transform:scale(.97)}.ps-timeline-nav__label{flex:1;text-align:center;font-size:14px;font-weight:600;color:var(--lcr-ink-800)}.ps-timeline{display:block;position:relative}.ps-timeline .col-frozen{display:none}.ps-timeline .col-scroll{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 16px 16px;gap:8px;scroll-snap-type:x mandatory}.ps-timeline .col-scroll::-webkit-scrollbar{display:none}.ps-timeline__label,.ps-timeline__sales-bar{display:none}.ps-timeline__legend{display:flex;flex-direction:row;gap:12px;padding:8px 16px;background:var(--lcr-brand-50);border-bottom:1px solid var(--lcr-brand-200)}.ps-timeline__legend-actual,.ps-timeline__legend-plan,.ps-timeline__legend-delta{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--lcr-ink-700)}.ps-timeline__legend-actual:before,.ps-timeline__legend-plan:before,.ps-timeline__legend-delta:before{content:"";width:8px;height:8px;border-radius:2px}.ps-timeline__legend-actual:before{background:var(--lcr-brand-800)}.ps-timeline__legend-plan:before{background:var(--lcr-brand-400)}.ps-timeline__legend-delta:before{background:linear-gradient(135deg,var(--color-success) 50%,var(--color-danger) 50%)}.ps-timeline__cell{flex-shrink:0;min-width:80px;max-width:100px;padding:12px 10px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;scroll-snap-align:start;transition:all var(--transition-fast)}.ps-timeline__cell:active{background:var(--lcr-brand-50);transform:scale(.98)}.ps-timeline__cell--current{border-color:var(--lcr-brand-600);box-shadow:0 0 0 2px #6b7b8826}.ps-timeline__cell--yearly{min-width:100px;padding:14px 12px;background:var(--lcr-brand-50)}.ps-timeline__cell--yearly-first,.ps-timeline__cell--yearly-last{border-radius:10px}.ps-timeline__values{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%}.ps-timeline__actual{font-size:16px;font-weight:700;color:var(--color-text);line-height:1.2}.ps-timeline__plan{font-size:11px;font-weight:500;color:var(--lcr-ink-700);line-height:1.2}.ps-timeline__delta{font-size:11px;font-weight:600;line-height:1.2;padding:2px 6px;border-radius:4px;margin-top:2px}.ps-timeline__delta--positive{color:var(--color-success);background:var(--color-success-bg)}.ps-timeline__delta--negative{color:var(--color-danger);background:#c4392e14}.ps-timeline__delta--neutral{color:var(--lcr-ink-700);background:var(--lcr-brand-100)}.ps-timeline__empty{font-size:14px;color:var(--lcr-ink-700)}.ps-bucket{min-width:70px;padding:10px 8px;flex-shrink:0;scroll-snap-align:start}.ps-bucket__actual{font-size:15px}.ps-bucket__plan,.ps-bucket__delta{font-size:10px}.ps-bucket-tooltip{display:none}.ps-empty,.ps-error{margin:16px;padding:20px 16px}.ps-backdrop{position:fixed;inset:0;background:#0006;z-index:calc(var(--z-modal) - 1);animation:ps-backdrop-fade .2s ease;-webkit-tap-highlight-color:transparent}@keyframes ps-backdrop-fade{0%{opacity:0}to{opacity:1}}}@media(max-width:767px)and (prefers-reduced-motion:reduce){.ps-panel,.ps-backdrop{animation:none}.ps-content,.ps-header__collapse-icon,.ps-timeline-tab{transition:none}.ps-timeline-tab:active,.ps-timeline__cell:active,.ps-timeline-nav__btn:active:not(:disabled){transform:none}}.panel-animated{opacity:0;transform:translateY(8px);transition:opacity var(--transition-normal),transform var(--transition-normal);will-change:opacity,transform}.panel-animated--visible,.panel-animated.is-visible{opacity:1;transform:translateY(0)}.panel-animated--hidden,.panel-animated.is-hidden{opacity:0;transform:translateY(8px);pointer-events:none}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}.anim-panel-enter{animation:panel-enter var(--transition-normal) cubic-bezier(.4,0,.2,1) forwards}.anim-panel-exit{animation:panel-exit var(--transition-normal) cubic-bezier(.4,0,.2,1) forwards}.value-animated{transition:opacity var(--transition-fast)}.value-animated--updating,.value-animated.is-updating{opacity:.6}.value-animated--updated,.value-animated.is-updated{opacity:1}@keyframes value-flash{0%{opacity:1}25%{opacity:.5}to{opacity:1}}.anim-value-flash{animation:value-flash .3s ease-out}@keyframes value-pulse{0%{opacity:.4;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.anim-value-pulse{animation:value-pulse .2s ease-out}@keyframes value-highlight{0%{background-color:rgba(var(--lcr-brand-rgb, 45, 89, 60),.15)}to{background-color:transparent}}.anim-value-highlight{animation:value-highlight .6s ease-out}.collapse-animated{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-normal)}.collapse-animated--expanded,.collapse-animated.is-expanded{grid-template-rows:1fr}.collapse-animated__content{overflow:hidden;min-height:0}.collapse-maxh{max-height:0;overflow:hidden;opacity:0;transition:max-height var(--transition-normal),opacity var(--transition-normal)}.collapse-maxh--expanded,.collapse-maxh.is-expanded{max-height:1000px;opacity:1}@media(max-width:767px){.mob-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-normal)}.mob-collapse--expanded,.mob-collapse.is-expanded{grid-template-rows:1fr}.mob-collapse__inner{overflow:hidden;min-height:0}}.hover-transition{transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.hover-lift:active{transform:translateY(0)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.hover-scale:active{transform:scale(.98)}.hover-bg{transition:background-color var(--transition-fast)}.hover-border{transition:border-color var(--transition-fast)}.hover-opacity{transition:opacity var(--transition-fast)}.hover-opacity:hover{opacity:.8}.hover-rotate{transition:transform var(--transition-fast)}.hover-rotate:hover{transform:rotate(90deg)}.hover-flip{transition:transform var(--transition-fast)}.hover-flip--active,.hover-flip.is-active{transform:rotate(180deg)}.focus-ring{transition:outline-offset var(--transition-fast)}.focus-ring:focus-visible{outline:2px solid var(--lcr-brand-400);outline-offset:2px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--lcr-brand-100) 25%,var(--lcr-brand-200) 50%,var(--lcr-brand-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes content-reveal{0%{opacity:0}to{opacity:1}}.anim-reveal{animation:content-reveal var(--transition-normal) ease-out}.stagger-item{opacity:0;transform:translateY(8px);animation:stagger-in var(--transition-normal) ease-out forwards}@keyframes stagger-in{to{opacity:1;transform:translateY(0)}}.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:30ms}.stagger-item:nth-child(3){animation-delay:60ms}.stagger-item:nth-child(4){animation-delay:90ms}.stagger-item:nth-child(5){animation-delay:.12s}.stagger-item:nth-child(6){animation-delay:.15s}.stagger-item:nth-child(7){animation-delay:.18s}.stagger-item:nth-child(8){animation-delay:.21s}.stagger-item:nth-child(9){animation-delay:.24s}.stagger-item:nth-child(10){animation-delay:.27s}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-fade-out{0%{opacity:1}to{opacity:0}}.anim-backdrop-in{animation:backdrop-fade-in var(--transition-normal) ease-out forwards}.anim-backdrop-out{animation:backdrop-fade-out var(--transition-normal) ease-out forwards}@keyframes drawer-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes drawer-slide-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.anim-drawer-up{animation:drawer-slide-up var(--transition-normal) cubic-bezier(.32,.72,0,1) forwards}.anim-drawer-down{animation:drawer-slide-down var(--transition-normal) cubic-bezier(.32,.72,0,1) forwards}@keyframes modal-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modal-scale-out{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:0}}.anim-modal-in{animation:modal-scale-in var(--transition-normal) cubic-bezier(.32,.72,0,1) forwards}.anim-modal-out{animation:modal-scale-out var(--transition-fast) ease-out forwards}@keyframes panel-slide-right-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes panel-slide-right-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.anim-panel-right-in{animation:panel-slide-right-in var(--transition-normal) cubic-bezier(.32,.72,0,1) forwards}.anim-panel-right-out{animation:panel-slide-right-out var(--transition-normal) ease-in forwards}@media(prefers-reduced-motion:reduce){.panel-animated,.value-animated,.collapse-animated,.collapse-maxh,.mob-collapse,.hover-transition,.hover-lift,.hover-scale,.hover-bg,.hover-border,.hover-opacity,.hover-rotate,.hover-flip,.focus-ring,.skeleton{transition:none!important;animation:none!important}.hover-lift:hover,.hover-scale:hover,.hover-rotate:hover{transform:none!important}.hover-flip--active,.hover-flip.is-active{transform:rotate(180deg);transition:none!important}.panel-animated--visible,.panel-animated.is-visible{opacity:1;transform:none}.panel-animated--hidden,.panel-animated.is-hidden{opacity:0;transform:none}.collapse-animated{grid-template-rows:0fr}.collapse-animated--expanded,.collapse-animated.is-expanded{grid-template-rows:1fr}.collapse-maxh{max-height:0;opacity:0}.collapse-maxh--expanded,.collapse-maxh.is-expanded{max-height:none;opacity:1}.stagger-item{opacity:1;transform:none;animation:none!important}.anim-panel-enter,.anim-panel-exit,.anim-value-flash,.anim-value-pulse,.anim-value-highlight,.anim-reveal,.anim-backdrop-in,.anim-backdrop-out,.anim-drawer-up,.anim-drawer-down,.anim-modal-in,.anim-modal-out,.anim-panel-right-in,.anim-panel-right-out{animation:none!important}.anim-drawer-up,.anim-modal-in,.anim-panel-right-in,.anim-backdrop-in,.anim-reveal{opacity:1;transform:none}.anim-drawer-down,.anim-modal-out,.anim-panel-right-out,.anim-backdrop-out,.anim-panel-exit{opacity:0;transform:none}}.psm-container{border-bottom:2px solid var(--lcr-brand-400);background:var(--lcr-brand-50)}.psm-row{display:flex;min-height:var(--cell-height)}.psm-col-frozen{flex-shrink:0;width:var(--col-name);position:sticky;left:0;z-index:var(--z-sticky);background:inherit}.psm-col-scroll{flex:1;display:grid;grid-template-columns:var(--col-sales-bar) repeat(var(--quarter-count),minmax(var(--col-quarter),1fr));min-width:0}.psm-cell{display:flex;align-items:center;padding:0 8px;min-height:var(--cell-height);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);font-size:11px}.psm-cell--name{font-weight:600;font-size:11px;color:var(--lcr-ink-800);text-transform:uppercase;letter-spacing:.02em;background:var(--lcr-brand-100)}.psm-cell--quarter{justify-content:center;padding:0 2px}.psm-header{background:var(--lcr-brand-100)}.psm-header .psm-cell{border-bottom-color:var(--lcr-brand-300)}.psm-cell--header-label{font-size:12px;font-weight:700;color:var(--lcr-brand-900)}.psm-cell--year-bracket{justify-content:center;font-size:11px;font-weight:600;color:var(--lcr-ink-700);background:var(--lcr-brand-100);border-bottom:none;position:relative}.psm-cell--year-bracket--active{background:var(--lcr-brand-200)}.psm-cell--year-bracket--current{background:var(--lcr-secondary-100)}.psm-cell--year-bracket--divider:after{content:"";position:absolute;right:0;top:4px;bottom:4px;width:1px;background:var(--lcr-brand-400)}.psm-year-bracket{font-weight:700}.psm-year-bracket--current{color:var(--lcr-secondary-800)}.psm-month-group{display:flex;justify-content:space-around;width:100%;font-size:10px;color:var(--lcr-ink-700)}.psm-month-header{font-weight:600;text-transform:uppercase}.psm-month-group--quarterly{justify-content:center}.psm-month-group--quarterly .psm-month-num{flex:none;font-size:12px;font-weight:600}.psm-month-group--yearly{justify-content:center;overflow:visible}.psm-cell--yearly-first .psm-month-group--yearly{width:100%;margin-left:calc((var(--yearly-span, 4) - 1) * 50%)}.psm-cell--yearly:not(.psm-cell--yearly-first) .psm-month-group--yearly{display:none}.psm-month-num{flex:1;text-align:center;min-width:0;font-size:11px;color:var(--lcr-ink-700)}.psm-month-num--planned{color:var(--lcr-ink-800);font-weight:600}.psm-month-num--actual{font-weight:700;color:#374151}.psm-month-num--partial{font-weight:600;color:#059669}.psm-month-num--stock{color:var(--color-text);font-weight:500}.psm-cell--in-range{background:#fff}.psm-cell--current-year,.psm-cell--current-quarter{background:var(--lcr-secondary-100)}.psm-cell--yearly{border-right-color:transparent}.psm-cell--yearly-first{border-left:1px solid var(--lcr-brand-400)}.psm-cell--yearly-last{border-right:1px solid var(--lcr-brand-500)}.psm-cell--now-m1{box-shadow:inset calc(var(--col-quarter) / 3 * .5) 0 0 var(--lcr-secondary-300)}.psm-cell--now-m2{box-shadow:inset calc(var(--col-quarter) / 3 * 1.5) 0 0 var(--lcr-secondary-300)}.psm-cell--now-m3{box-shadow:inset calc(var(--col-quarter) / 3 * 2.5) 0 0 var(--lcr-secondary-300)}.psm-kpi-strip{background:var(--lcr-brand-50);border-bottom:1px solid var(--lcr-brand-300)}.psm-kpi-strip .psm-cell--name{background:var(--lcr-brand-50)}.psm-kpi-title{font-size:11px;font-weight:700;color:var(--lcr-brand-900)}.psm-kpi-values{padding:4px 12px;background:#fff}.psm-kpi-group{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.psm-kpi-item{display:flex;align-items:baseline;gap:4px;font-size:11px}.psm-kpi-item--pct{margin-left:auto}.psm-kpi-label{color:var(--lcr-ink-700);font-weight:500}.psm-kpi-value{font-weight:700;color:var(--color-text)}.psm-kpi-value--sold{color:var(--color-success)}.psm-kpi-value--reserved{color:#f59e0b}.psm-kpi-value--free{color:var(--lcr-ink-800)}.psm-kpi-value--pct{font-size:13px;color:var(--color-text);background:var(--lcr-brand-100);padding:2px 8px;border-radius:var(--radius-sm)}.psm-cell--kpi-bar{border-right:1px solid var(--color-border)}.psm-cell--kpi-empty{background:transparent;border-bottom-color:transparent}.psm-timeline-strip{background:var(--lcr-brand-50)}.psm-section{position:relative}.psm-section--actual{border-top:2px solid var(--lcr-brand-300)}.psm-section__tag{position:absolute;left:calc(var(--col-name) - 20px);top:0;bottom:0;width:20px;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-ink-700);background:var(--lcr-brand-100);border-right:1px solid var(--lcr-brand-300);z-index:2}.psm-section--plan .psm-section__tag{background:#f5f5f5}.psm-section--actual .psm-section__tag{background:#fff}.psm-row-label{font-weight:600;font-size:11px;color:var(--lcr-ink-700);text-transform:uppercase;letter-spacing:.02em;background:transparent}.psm-row--data .psm-col-frozen,.psm-row--data{background:transparent}.psm-row--last .psm-cell{border-bottom-color:var(--lcr-brand-400)}.psm-desk-frozen{display:flex;align-items:center;justify-content:flex-start;background:transparent}.psm-desk-frozen__label{font-size:10px;font-weight:600;color:var(--lcr-ink-700);font-style:italic}.psm-section--plan .psm-row--data{font-style:italic}.psm-section--plan .psm-cell--in-range,.psm-section--plan .psm-desk-frozen{background:#f5f5f5}.psm-section--actual .psm-cell--in-range,.psm-section--actual .psm-desk-frozen{background:#fff}@media(max-width:767px){.psm-section__tag{display:none}.psm-row-label{font-size:10px;padding-left:8px}.psm-desk-frozen__label{display:none}.psm-kpi-group{gap:8px}.psm-kpi-item{font-size:10px}.psm-kpi-value--pct{font-size:11px}}.design-test-panel{position:fixed;right:16px;bottom:16px;z-index:2100;width:280px;background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font);color:var(--lcr-brand-900);-webkit-user-select:none;user-select:none}.design-test-panel__head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--lcr-brand-200);font-size:13px}.design-test-panel__head strong{font-weight:700;letter-spacing:.02em}.design-test-panel__close{width:24px;height:24px;border:none;background:transparent;color:var(--lcr-ink-700);font-size:18px;line-height:1;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.design-test-panel__close:hover{background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.design-test-panel__body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:12px}.design-test-panel__row{display:flex;flex-direction:column;gap:4px}.design-test-panel__lbl{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:var(--lcr-ink-800);letter-spacing:.03em;text-transform:uppercase}.design-test-panel__lbl em{font-style:normal;font-weight:500;color:var(--lcr-brand-900);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:none;letter-spacing:0}.design-test-panel__row input[type=range]{width:100%;accent-color:var(--lcr-brand-800);cursor:pointer}.design-test-panel__meta{font-size:11px;color:var(--lcr-ink-700);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding-top:8px;border-top:1px dashed var(--lcr-brand-200)}.design-test-panel__reset{align-self:flex-start;padding:6px 14px;border:1px solid var(--lcr-brand-400);background:#fff;color:var(--lcr-brand-900);border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.design-test-panel__reset:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-700)}.design-test-fab{position:fixed;right:16px;bottom:16px;z-index:2100;width:40px;height:40px;border:1px solid var(--lcr-brand-300);background:#fff;color:var(--lcr-ink-800);border-radius:50%;box-shadow:var(--shadow-md);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,box-shadow .15s,transform .15s}.design-test-fab:hover{background:var(--lcr-brand-100);box-shadow:var(--shadow-lg);transform:translateY(-1px)}@media(max-width:640px){.design-test-panel{width:calc(100vw - 24px);right:12px;bottom:12px}.design-test-fab{right:12px;bottom:12px}}.topbar__seg-label{display:inline-flex;align-items:center;padding:0 8px 0 10px;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lcr-ink-700);white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;pointer-events:none}.view-switcher,.topbar__bar-cat-group,.topbar__status-group{position:relative;display:inline-flex;align-items:stretch;height:34px;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0}.view-switcher{margin-right:clamp(4px,.6vw,8px)}.view-switcher .view-switcher__btn{padding:0 18px;font-size:13px;min-width:72px;gap:8px}.view-switcher .view-switcher__btn svg{width:17px;height:17px}.seg-thumb{position:absolute;top:3px;bottom:3px;left:0;width:0;z-index:0;pointer-events:none;transition:transform .52s cubic-bezier(.34,1.56,.64,1),width .52s cubic-bezier(.34,1.56,.64,1),opacity .2s ease;will-change:transform,width}.seg-thumb__glass{position:absolute;inset:0;border-radius:calc(var(--radius-xl) - 4px);background:linear-gradient(180deg,#ffffff6b,#ffffff1f),#6b7b885c;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:.5px solid rgba(255,255,255,.55);box-shadow:0 2px 6px #141e2d1f,0 1px 2px #141e2d14,inset 0 1px #ffffff8c,inset 0 -.5px #0000000a;animation:seg-indicator-stretch .52s cubic-bezier(.34,1.56,.64,1)}@keyframes seg-indicator-stretch{0%{transform:scaleY(1) scaleX(1)}45%{transform:scaleY(1.22) scaleX(.92)}to{transform:scaleY(1) scaleX(1)}}.view-switcher--stacked .seg-thumb{top:4px;bottom:4px}.view-switcher__btn,.topbar__bar-cat-btn,.topbar__status-btn{position:relative;z-index:1;isolation:isolate;display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);background:transparent;border:none;border-radius:calc(var(--radius-xl) - 4px);cursor:pointer;transition:color .18s ease,opacity .18s ease,transform .14s ease;line-height:1;white-space:nowrap}.topbar__bar-cat-btn:before,.topbar__status-btn:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,#ffffff6b,#ffffff1f),#6b7b885c;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:.5px solid rgba(255,255,255,.55);box-shadow:0 2px 6px #141e2d1f,0 1px 2px #141e2d14,inset 0 1px #ffffff8c,inset 0 -.5px #0000000a;opacity:0;transition:opacity .18s cubic-bezier(.4,0,.2,1);pointer-events:none}.view-switcher__btn:hover,.topbar__bar-cat-btn:hover,.topbar__status-btn:hover,.view-switcher__btn--active,.topbar__bar-cat-btn--active,.topbar__status-btn--active{color:var(--lcr-brand-900)}.topbar__bar-cat-btn--active:before,.topbar__status-btn--active:before{opacity:1}.topbar__bar-cat-btn:active,.topbar__status-btn:active,.view-switcher__btn:active{transform:scale(.96)}.topbar__bar-cat-btn:not(.topbar__bar-cat-btn--active),.topbar__status-btn:not(.topbar__status-btn--active){opacity:1}.view-switcher__btn svg,.topbar__bar-cat-btn svg,.topbar__status-btn svg{flex-shrink:0}.view-switcher--stacked{height:48px;padding:4px}.view-switcher--stacked .view-switcher__btn{flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 10px;line-height:1.1;min-width:56px}.view-switcher--stacked .view-switcher__btn .view-switcher__label{font-size:10px;font-weight:600;letter-spacing:.02em}@media(max-width:980px){.view-switcher--stacked .view-switcher__btn .view-switcher__label{display:inline}}@media(max-width:1100px){.view-switcher__btn,.topbar__bar-cat-btn,.topbar__status-btn{padding:0 8px}}@media(max-width:980px){.view-switcher__btn span,.topbar__bar-cat-btn span,.topbar__status-btn span{display:none}.view-switcher__btn,.topbar__bar-cat-btn,.topbar__status-btn{padding:0 9px}}.view-switcher--mobile{display:inline-flex;height:40px;margin-right:0;flex-shrink:0}.view-switcher--mobile .view-switcher__btn{justify-content:center;padding:0 12px;font-size:13px;gap:7px}.view-switcher--mobile .view-switcher__btn svg{width:17px;height:17px}.view-switcher--mobile .view-switcher__btn span{display:inline}@media(max-width:480px){.view-switcher--mobile .view-switcher__btn span{display:none}.view-switcher--mobile .view-switcher__btn{padding:0 10px}}.botnav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;justify-content:center;padding:.25rem .75rem env(safe-area-inset-bottom,0px);pointer-events:none}.botnav__inner{pointer-events:auto;position:relative;display:flex;align-items:stretch;justify-content:space-between;gap:.125rem;width:100%;transform-origin:bottom center;transition:transform .46s cubic-bezier(.22,1,.36,1);padding:.375rem;background:linear-gradient(180deg,#ffffffc7,#ffffff9e);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.6);border-radius:999px;box-shadow:0 20px 44px #0f172a2e,0 6px 14px #0f172a14,inset 0 1px #ffffffe6,inset 0 -1px #0f172a0f}.botnav__inner:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120% 80% at 30% 0%,#ffffff80,#fff0 60%);pointer-events:none;z-index:0}.botnav__indicator{position:absolute;left:0;top:.375rem;bottom:.375rem;pointer-events:none;z-index:1;will-change:transform,width;transition:transform .52s cubic-bezier(.34,1.56,.64,1),width .52s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.botnav__indicator-glass{position:absolute;inset:0;border-radius:999px;background:var(--glass-btn-primary-bg);border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px #ffffff40,inset 0 -1px #0000002e,0 4px 12px #4a566259,0 1px 3px #0f172a1a;transform-origin:50% 50%;animation:seg-indicator-stretch .52s cubic-bezier(.34,1.56,.64,1)}.botnav__item{flex:1 1 0;min-width:0;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.5rem .25rem;border:none;background:transparent;border-radius:999px;color:var(--lcr-ink-700);cursor:pointer;font-family:var(--font);font-size:.65rem;font-weight:600;line-height:1;transition:color .42s cubic-bezier(.4,0,.2,1),gap .26s ease,padding .26s ease;-webkit-tap-highlight-color:transparent}.botnav__item svg{width:22px;height:22px;flex-shrink:0;transition:width .26s ease,height .26s ease}@media(hover:hover)and (pointer:fine){.botnav__item:hover{color:var(--lcr-brand-900)}}.botnav__item--active,.botnav__item--active:hover{color:#fff}.botnav__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-height:1.4em;opacity:1;transition:max-height .42s cubic-bezier(.22,1,.36,1),opacity .3s ease}.botnav--collapsed .botnav__inner{transform:scale(.58)}.botnav--collapsed .botnav__label{max-height:0;opacity:0;pointer-events:none}@media(max-width:1024px){.app .m-portfolio,.app .mapview{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 5.5rem)}}@media(max-width:767px){.app .m-portfolio,.app .mapview{margin-top:calc(-1 * var(--topbar-h, 130px));padding-top:calc(var(--topbar-h, 130px) + 1rem)}}.mapview{flex:1;min-height:0;overflow:auto;background:var(--lcr-brand-50);border-radius:var(--radius-2xl);padding:clamp(16px,2vw,28px);box-shadow:var(--shadow-md)}@media(max-width:767px){.mapview{margin:0 12px;padding:12px;border-radius:var(--radius-xl)}.mapview__header{margin-bottom:12px}.mapview__grid{gap:10px}.mapview:not(.mapview--detail){background:transparent;box-shadow:none;border-radius:0;padding-left:0;padding-right:0}.mapview:not(.mapview--detail) .mapview__header{display:none}.mapview--detail{margin:0 12px;padding:0}}.mapview--detail{overflow:hidden;display:flex;flex-direction:column;background:transparent;border-radius:0;padding:0;box-shadow:none}.mapview__header{margin-bottom:20px}.mapview__title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.mapview__subtitle{margin:4px 0 0;font-size:.875rem;color:var(--color-text-secondary)}.mapview__empty{padding:48px 24px;text-align:center;color:var(--color-text-secondary);background:#fff;border-radius:var(--radius-xl);border:1px dashed var(--lcr-brand-300)}.mapview__filterbar{display:inline-flex;align-items:stretch;height:34px;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);margin-bottom:18px}.mapview__filter-pill{display:inline-flex;align-items:center;gap:6px;padding:0 14px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);background:transparent;border:none;border-radius:calc(var(--radius-xl) - 4px);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);line-height:1;white-space:nowrap}.mapview__filter-pill:hover{color:var(--lcr-brand-900)}.mapview__filter-pill--active{background:var(--glass-pill-bg);color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.mapview__filter-pill--active:hover{background:var(--glass-pill-bg);box-shadow:var(--glass-pill-shadow-hover)}.mapview__filter-pill:not(.mapview__filter-pill--active){opacity:.6;text-decoration:line-through;text-decoration-color:var(--lcr-brand-500);text-decoration-thickness:1.5px}.mapview__filter-pill:not(.mapview__filter-pill--active):hover{opacity:1;color:var(--lcr-brand-900)}.mapview__filter-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--dot-color);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.mapview__filter-dot--active{--dot-color: #22c55e}.mapview__filter-dot--planned{--dot-color: #3b82f6}.mapview__filter-dot--closed{--dot-color: #F97316}.mapview__filter-pill:not(.mapview__filter-pill--active) .mapview__filter-dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--dot-color)}.mapview__tile-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;font-size:.75rem;color:var(--color-text-secondary)}.mapview__tile-count{white-space:nowrap}.mapview__tile-stats{display:inline-flex;align-items:center;gap:8px}.mapview__tile-stat{display:inline-flex;align-items:center;gap:3px;font-weight:600;color:var(--color-text)}.hide-cat-sales .gantt-bar--presales,.hide-cat-sales .gantt-bar--fnf,.hide-cat-sales .gantt-bar--construction,.hide-cat-sales .cell-label--presales,.hide-cat-sales .cell-label--construction,.hide-cat-sales .cell-micro-bar--presales,.hide-cat-sales .cell-micro-bar--construction{display:none!important}.hide-cat-construction .gantt-bar--m-phase:not(.gantt-bar--m-phase-mirror),.hide-cat-construction .cell-label--m-phase{display:none!important}.hide-cat-sales.hide-cat-construction .gantt-bar--m-phase-mirror{display:none!important}.topbar-ext__inner--menus{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.topbar__brand{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;line-height:1.05;gap:2px;margin:0 8px 0 2px;flex-shrink:0}.topbar__brand-title{font-family:var(--font);font-size:16px;font-weight:800;letter-spacing:.04em;color:var(--color-text)}.topbar__brand-sub{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--color-text-muted)}.topbar__filters{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.tf{position:relative;display:inline-flex;align-items:center;height:34px;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0}.tf-priority{position:relative;display:inline-flex;align-items:center;height:34px;padding:3px;border:var(--glass-track-border);border-radius:var(--radius-xl);background:var(--glass-track-bg);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0;cursor:pointer}.tf-priority__pill{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:calc(var(--radius-xl) - 4px);background:var(--glass-pill-bg);box-shadow:var(--glass-pill-shadow);color:var(--lcr-brand-900);font-family:var(--font);font-size:13px;font-weight:600;white-space:nowrap;transition:box-shadow var(--transition-fast)}.tf-priority--on .tf-priority__pill{box-shadow:var(--glass-pill-shadow),0 0 0 1.5px var(--priority-glow-ring),0 0 6px 2px var(--priority-glow)}.tf-switch{display:inline-flex;align-items:center;gap:9px;height:34px;padding:0 7px 0 14px;border:var(--glass-track-border);border-radius:var(--radius-xl);background:var(--glass-track-bg);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0;font-family:var(--font);font-size:13px;font-weight:600;color:var(--lcr-ink-800);white-space:nowrap;cursor:pointer;transition:color var(--transition-fast)}.tf-switch:hover{color:var(--lcr-brand-900)}.tf-switch:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:2px}.tf-switch--on{color:var(--lcr-brand-900)}.tf-switch--on .ui-switch__track{background:var(--color-success)}.tf-switch--priority.tf-switch--on .ui-switch__track{background:var(--priority-glow-ring)}.tf-switch .ui-switch__track{background:#56667347;box-shadow:inset 0 0 0 1px #0f172a1f}.tf__seg-label{padding:0 6px 0 9px;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lcr-ink-700);white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none}.tf__trigger{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border:none;border-radius:calc(var(--radius-xl) - 4px);background:var(--glass-pill-bg);box-shadow:var(--glass-pill-shadow);color:var(--lcr-brand-900);font-family:var(--font);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;transition:box-shadow var(--transition-fast)}.tf__trigger:hover,.tf__trigger--open{box-shadow:var(--glass-pill-shadow-hover)}.tf__value{color:var(--lcr-brand-900)}.tf__count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--lcr-navy);color:#fff;font-size:11px;font-weight:700}.tf__caret{flex-shrink:0;color:var(--lcr-ink-700);transition:transform var(--transition-fast)}.tf--open .tf__caret{transform:rotate(180deg)}.tf__menu{position:fixed;z-index:var(--z-popover, 2000);min-width:196px;max-height:340px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--glass-pop-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-lg);box-shadow:var(--glass-elevated-shadow);animation:tf-menu-in .14s cubic-bezier(.22,1,.36,1)}@keyframes tf-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tf__opt{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.tf__opt:hover{background:var(--lcr-brand-100)}.tf__opt--on{font-weight:600}.tf__opt-dot{width:11px!important;height:11px!important;flex-shrink:0}.tf__opt-label{flex:1 1 auto}.tf__opt-check{flex:0 0 12px;text-align:center;color:var(--lcr-ink-800);font-size:12px;font-weight:700}.tf__menu-divider{height:1px;margin:5px 8px;background:var(--lcr-brand-200, rgba(0, 0, 0, .08))}.tf__subgroup{display:flex;flex-direction:column;gap:1px;margin:2px 0 2px 12px;padding-left:8px;border-left:1.5px solid var(--lcr-brand-200, rgba(0, 0, 0, .08))}.tf__subgroup .tf__opt{padding:6px 10px;font-size:12px}.topbar__bar-cat-dot,.topbar__status-dot{width:13.5px;height:13.5px;border-radius:50%;flex-shrink:0;background:var(--dot-color);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.topbar__bar-cat-dot--sales{--dot-color: #92D050}.topbar__bar-cat-dot--construction{--dot-color: #9333EA}.topbar__status-dot--active{--dot-color: #22c55e}.topbar__status-dot--planned_short{--dot-color: #3b82f6}.topbar__status-dot--planned_long{--dot-color: #94a3b8}.topbar__status-dot--closed{--dot-color: #F97316}.topbar__status-group--mobile{display:flex;width:100%;height:auto;box-sizing:border-box}.topbar__status-group--mobile .topbar__status-btn{flex:1 1 0;min-width:0;justify-content:center;gap:4px;padding:7px 2px;font-size:10px;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:break-word}.topbar__status-group--mobile .topbar__status-btn span{display:inline}.mob-filters__segmented.topbar__display-segmented{height:38px;margin:0}.topbar__bar-cat-btn:not(.topbar__bar-cat-btn--active) .topbar__bar-cat-dot,.topbar__status-btn:not(.topbar__status-btn--active) .topbar__status-dot{background:transparent;box-shadow:inset 0 0 0 2.25px var(--dot-color)}.topbar__bar-cat-btn:not(.topbar__bar-cat-btn--active),.topbar__status-btn:not(.topbar__status-btn--active){color:var(--lcr-ink-800)}.topbar__bar-cat-btn:not(.topbar__bar-cat-btn--active):hover,.topbar__status-btn:not(.topbar__status-btn--active):hover{color:var(--lcr-brand-900)}.mob-filters__bar-cat .mob-filters__pill{display:inline-flex;align-items:center;gap:6px}.mob-filters__bar-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.topbar__display-dropdown{min-width:240px}.topbar__filters-menu{position:relative;display:none;flex-shrink:0}.topbar__filters-menu-trigger{position:relative}.topbar__filters-menu-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 5px;font-size:10px;font-weight:700;color:#fff;background:var(--lcr-brand-800);border-radius:999px;line-height:1}.topbar__filters-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--glass-menu-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-menu-border);border-radius:var(--radius-md);box-shadow:var(--glass-menu-shadow);padding:10px;z-index:var(--z-dropdown);min-width:320px;max-height:calc(100vh - var(--topbar-h, 56px) - 24px);overflow-y:auto;animation:dropdown-in .15s ease-out}.topbar__filters-view-mode{display:flex!important;width:100%;margin:6px 0}.topbar__filters-bar-cat{display:flex;flex-wrap:wrap;width:100%;margin:4px 0;box-sizing:border-box}.topbar__filters-bar-cat .topbar__bar-cat-btn{flex:1 1 0;justify-content:center;min-width:0}.topbar__filters-bar-cat .topbar__bar-cat-btn span:last-child{display:inline}.topbar__filters-segmented{display:inline-flex;align-items:stretch;width:100%;height:32px;margin:2px 0;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);box-sizing:border-box}.topbar__filters-seg-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);background:transparent;border:none;border-radius:calc(var(--radius-xl) - 4px);cursor:pointer;line-height:1;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.topbar__filters-seg-btn:hover{color:var(--lcr-brand-900)}.topbar__filters-seg-btn--active{background:var(--glass-pill-bg);color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.topbar--compact>.topbar__compact-hide{display:none!important}.topbar--compact .topbar__filters-menu{display:inline-flex}.topbar--medium>.topbar__medium-hide{display:none!important}.topbar--medium .view-switcher__btn{font-size:11px;padding:0 12px;gap:5px;min-width:48px;justify-content:center}.topbar--medium .view-switcher__btn svg{width:15px;height:15px}.topbar--medium .view-switcher__label,.topbar--medium .topbar__app-name{display:none}.topbar--medium .topbar__bar-cat-btn,.topbar--medium .topbar__status-btn{font-size:11px;padding:0 8px;gap:5px}.topbar--medium .topbar__seg-label{font-size:9px;padding:0 5px 0 7px;letter-spacing:.05em}.topbar--medium .topbar__btn--ghost{font-size:11px;padding:0 10px}.topbar__display-segmented{position:relative;display:flex;align-items:stretch;height:34px;margin:0;padding:3px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-xl);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0}.topbar__display-segmented-btn{position:relative;isolation:isolate;flex:1;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);background:transparent;border:none;border-radius:calc(var(--radius-xl) - 4px);cursor:pointer;transition:color .22s ease,transform .14s ease;line-height:1}.topbar__display-segmented-btn:hover,.topbar__display-segmented-btn--active{color:var(--lcr-brand-900)}.topbar__display-segmented-btn:active{transform:scale(.96)}.topbar__display-segmented-short{display:none}.topbar__display-slider-row{display:flex;align-items:center;gap:10px;padding:4px 12px 8px}.topbar__display-slider{flex:1;appearance:none;height:4px;border-radius:999px;background:var(--lcr-brand-300);outline:none}.topbar__display-slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:var(--lcr-brand-800);border:2px solid #ffffff;box-shadow:0 1px 3px #0003;cursor:pointer}.topbar__display-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--lcr-brand-800);border:2px solid #ffffff;box-shadow:0 1px 3px #0003;cursor:pointer}.topbar__display-slider-value{font-size:12px;font-weight:700;color:var(--lcr-ink-800);min-width:32px;text-align:right}.topbar__user-menu{position:relative;flex-shrink:0}.topbar__user-trigger{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;height:34px;background:var(--lcr-brand-100);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);color:var(--lcr-ink-800)}.topbar__user-trigger:hover,.topbar__user-trigger[aria-expanded=true]{background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.topbar__user-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--lcr-brand-800);color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em}.topbar__user-caret{color:var(--lcr-ink-700)}.topbar__user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;z-index:var(--z-dropdown);min-width:200px;animation:dropdown-in .15s ease-out}.topbar__user-name{padding:8px 12px 6px;font-size:12px;font-weight:700;color:var(--color-text);border-bottom:1px solid var(--color-border);margin-bottom:4px;display:flex;flex-direction:column;gap:2px}.topbar__user-role{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--lcr-ink-700)}.topbar__user-trigger--avatar{padding:0;height:auto;width:auto;gap:0;border-radius:50%;background:transparent;justify-content:center}.topbar__user-trigger--avatar:hover,.topbar__user-trigger--avatar[aria-expanded=true]{background:transparent;box-shadow:0 0 0 3px var(--lcr-brand-200)}.topbar__user-trigger--avatar .topbar__user-avatar{width:36px;height:36px;font-size:13px}.topbar__user-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--color-text);background:transparent;border:none;text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.topbar__user-item:hover{background:var(--lcr-brand-100)}.topbar__user-item--hub{color:#fff;background:var(--lcr-brand-800);margin:2px;border-radius:var(--radius-sm)}.topbar__user-item--hub:hover{background:var(--lcr-brand-900);color:#fff}.topbar__user-item--danger{color:var(--color-danger, #B91C1C)}.topbar__user-item--danger:hover{background:#b91c1c14}.topbar__user-item--sync-error{color:var(--color-danger, #B91C1C)}.topbar__user-item:disabled{opacity:.6;cursor:not-allowed}.topbar__user-sync-result{padding:2px 12px 6px;font-size:11px;color:var(--color-text-muted)}.topbar__user-sync-result--err{color:var(--color-danger, #B91C1C)}.mapview__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;align-items:start}.mapview__tile{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-xl);overflow:hidden;text-decoration:none;color:inherit;border:1px solid var(--lcr-brand-200);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.mapview__tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--lcr-brand-400)}.mapview__tile:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:2px}.mapview__tile-preview{position:relative;aspect-ratio:5 / 3;background:var(--lcr-brand-100);display:flex;align-items:center;justify-content:center;overflow:hidden}.mapview__tile-badge{position:absolute;top:6px;right:6px;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--lcr-brand-800);border-radius:999px;box-shadow:0 1px 2px #00000026}.mapview__tile-placeholder{width:100%;height:100%;display:block}.mapview__tile-body{padding:12px 14px 14px}.mapview__tile-head{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:6px}.mapview__tile-name{font-weight:700;font-size:.95rem;color:var(--color-text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.mapview__tile-map-badge{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:10.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.mapview__tile-map-badge--has{background:#22c55e1f;color:#15803d}.mapview__tile-map-badge--missing{background:var(--lcr-brand-100);color:var(--color-text-secondary)}.mapview__card{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:#fff;border-radius:var(--radius-xl);border:1px solid var(--lcr-brand-200);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.mapview__card:hover{box-shadow:var(--shadow-md);border-color:var(--lcr-brand-300)}.mapview__card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mapview__card-logo{flex:0 0 auto;width:120px;height:64px;border-radius:var(--radius-lg);display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;letter-spacing:.02em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:inset 0 1px #ffffff59,inset 0 -2px #00000014,0 1px 2px #0f172a1f;overflow:hidden}.mapview__card-logo--img{background:transparent;border:none;box-shadow:none;text-shadow:none;padding:0}.mapview__card-logo-img{width:100%;height:100%;object-fit:contain;object-position:center center;display:block;transform:scale(1.18);transform-origin:center center}.mapview__card-titles{display:flex;flex-direction:column;gap:3px}.mapview__card-title{margin:0;font-size:22px;font-weight:800;color:var(--color-text);letter-spacing:-.02em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapview__card-stats{display:inline-flex;align-items:center;gap:10px;font-size:11.5px;font-weight:600;color:var(--color-text-secondary);flex-wrap:wrap}.mapview__card-stat{display:inline-flex;align-items:center;gap:4px}.mapview__card-summary{display:flex;flex-direction:column;gap:10px}.mapview__card-summary-sales{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mapview__card-summary-sales-val{font-size:18px;font-weight:700;color:var(--color-text);letter-spacing:-.01em;line-height:1.1}.mapview__card-summary-sales-val strong{color:var(--lcr-brand-900)}.mapview__card-summary-sales-lbl{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:lowercase;letter-spacing:.01em}.mapview__card-summary-buildings{display:flex;flex-direction:column;gap:1px;padding-top:8px;border-top:1px solid var(--lcr-brand-100)}.mapview__card-summary-total{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.3}.mapview__card-summary-total strong{font-weight:800}.mapview__card-summary-row{display:flex;flex-wrap:wrap;gap:0 10px;font-size:11.5px;color:var(--color-text-secondary);line-height:1.4}.mapview__card-summary-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.mapview__card-summary-item .category-dot{flex-shrink:0}.mapview__card-summary-item strong{font-weight:700;color:var(--color-text)}.mapview__card-summary-pct{color:var(--color-text-muted, var(--lcr-brand-600));font-weight:500}.mapview__card-map-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:9px 16px;font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,var(--lcr-brand-700) 0%,var(--lcr-brand-800) 100%);border:1px solid var(--lcr-brand-800);border-radius:var(--radius-full);box-shadow:inset 0 1px #fff3,0 2px 6px #0f172a2e,0 1px 1px #0f172a14;text-decoration:none;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.mapview__card-map-btn:hover{transform:translateY(-1px);background:linear-gradient(180deg,var(--lcr-brand-800) 0%,var(--lcr-brand-900) 100%);box-shadow:inset 0 1px #ffffff38,0 3px 10px #0f172a47,0 1px 2px #0f172a1f}.mapview__card-map-btn:active{transform:translateY(0);box-shadow:inset 0 1px 2px #00000026,0 1px 2px #0f172a1a}.mapview__card-map-btn svg{width:15px;height:15px}.mapview__card-map-btn--missing{background:linear-gradient(180deg,var(--lcr-brand-200) 0%,var(--lcr-brand-300) 100%);border-color:var(--lcr-brand-400);color:var(--lcr-ink-800);box-shadow:inset 0 1px #fff6,0 1px 2px #0f172a14}.mapview__card-map-btn--missing:hover{background:linear-gradient(180deg,var(--lcr-brand-300) 0%,var(--lcr-brand-400) 100%)}.mapview__card-empty{padding:10px 14px;font-size:12px;color:var(--color-text-secondary);background:var(--lcr-brand-50);border-radius:var(--radius-md);text-align:center}.mapview__card .mapview__card-section,.mapview__card .mapview__card-empty{display:none}.mapview__card-section{display:flex;flex-direction:column;gap:4px}.mapview__card-section+.mapview__card-section{margin-top:4px;padding-top:10px;border-top:1px solid var(--lcr-brand-200)}.mapview__card-section-head{display:inline-flex;align-items:center;gap:6px;padding:0 2px 2px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.mapview__card-section-label{white-space:nowrap}.mapview__card-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:var(--radius-full);background:var(--lcr-brand-100);color:var(--lcr-ink-800);font-size:9.5px;font-weight:700;letter-spacing:.02em}.mapview__card-buildings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mapview__building{display:flex;flex-direction:column;gap:5px;padding:9px 4px;border-radius:0}.mapview__building+.mapview__building{border-top:1px dashed var(--lcr-brand-200)}.mapview__building--closed{opacity:.6}.mapview__building--overflow{padding:8px 4px 2px;border-top:1px dashed var(--lcr-brand-200)}.mapview__building-overflow{font-size:11px;font-weight:600;color:var(--color-text-secondary);font-style:italic}.mapview__building-row{display:flex;align-items:center;gap:6px;min-width:0}.mapview__building-name{flex:1 1 auto;font-size:12.5px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mapview__building-units{flex:0 0 auto;font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.mapview__building-units strong{color:var(--color-text);font-weight:700}.mapview__building-units-sep{margin:0 3px;color:var(--lcr-brand-400)}.mapview__building-phases{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.mapview__building-phase{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:2px 8px;border-radius:9px;font-size:10px;font-weight:700;letter-spacing:.02em;color:#fff;background:var(--lcr-brand-700);border:1px solid transparent;box-shadow:0 1px 2px #0f172a2e;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.mapview__building-phase-none{font-size:10px;font-style:italic;color:var(--color-text-secondary)}@media(max-width:640px){.mapview__card{padding:12px}.mapview__card-logo{width:96px;height:52px;font-size:16px}.mapview__card-title{font-size:18px}}.mapview__tile-thumb{position:relative;aspect-ratio:5 / 3;background:var(--lcr-brand-100);overflow:hidden}.mapview__tile-thumb-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-fast)}.mapview__tile:hover .mapview__tile-thumb-img{transform:scale(1.03)}.mapview__tile-thumb .mapview__tile-placeholder{width:100%;height:100%;display:block}.mapview__tile-thumb .mapview__tile-map-badge{position:absolute;top:8px;right:8px;z-index:1;box-shadow:0 2px 6px #0f172a2e}.mapview__tile-thumb .mapview__tile-map-badge--has{background:#22c55eeb;color:#fff}.mapview__tile-thumb .mapview__tile-map-badge--missing{background:#0f172a8c;color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.mapview__tile-buildings{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.mapview__tile-buildings strong{color:var(--color-text);font-weight:700}.mapview__tile-progress{display:flex;flex-direction:column;gap:5px;margin:8px 0 10px}.mapview__tile-progress-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.mapview__tile-progress-pct{font-size:18px;font-weight:800;color:var(--color-text);letter-spacing:-.02em;line-height:1}.mapview__tile-progress-detail{font-size:11.5px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.mapview__tile-progress-detail strong{color:var(--color-text);font-weight:700}.mapview__tile-bar{position:relative;display:flex;height:6px;border-radius:999px;background:var(--lcr-brand-100);overflow:hidden}.mapview__tile-bar-seg{display:block;height:100%}.mapview__tile-bar-seg--sold{background:#16a34a}.mapview__tile-bar-seg--reserved{background:#f59e0b}.mapview__tile-phases{display:grid;grid-template-columns:repeat(11,1fr);gap:3px;margin-top:10px}.mapview__tile-phase{display:inline-flex;align-items:center;justify-content:center;height:18px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.02em;color:var(--color-text-secondary);background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-200);transition:transform var(--transition-fast)}.mapview__tile-phase--active{color:#fff;border-color:transparent;box-shadow:0 1px 2px #0f172a2e}.mapview__tile:hover .mapview__tile-phase--active{transform:scale(1.04)}.mapview--detail{display:flex;flex-direction:column}.mapview__detail-header{display:flex;align-items:center;gap:10px;row-gap:8px;margin-bottom:10px;padding:7px 12px;background:linear-gradient(180deg,#fff,#fafbfc);border:1px solid var(--lcr-brand-300);border-radius:var(--radius-xl);box-shadow:0 1px #ffffffe6 inset,0 1px 2px #0000000a,0 4px 12px #0f203c14;flex-wrap:wrap;min-height:50px;position:relative}.mapview__detail-header:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--lcr-brand-500) 0%,var(--lcr-brand-700) 50%,var(--lcr-brand-500) 100%);border-radius:1px;opacity:.35;pointer-events:none}.mapview__toolbar-slot{flex:1 1 100%;min-width:0;display:flex;align-items:center;justify-content:flex-start;margin-left:0;padding-left:0;border-left:none;order:3}.mapview__toolbar-slot:empty{flex:0 0 0;display:none}@media(max-width:900px){.mapview__detail-actions{order:2}}@media(min-width:901px){.mapview__detail-header{min-height:46px;box-sizing:border-box}.mapview__detail-header--editing{flex-wrap:nowrap}.mapview__detail-header--editing .mapview__toolbar-slot{flex:1 1 auto;order:0}.mapview__detail-header--editing .mapview__detail-title{display:none}.mapview__detail-header--editing .mapview__toolbar-slot .mapeditor__section{padding:0 10px}}.mapview__toolbar-slot .mapeditor__toolbar{margin:0;background:transparent;border:none;box-shadow:none;padding:0;width:100%;gap:18px}.mapview__toolbar-slot .mapeditor__hint{display:none}.mapview__toolbar-slot .mapeditor__icon-btn{width:30px;height:30px}.mapview__toolbar-slot .mapeditor__tool,.mapview__toolbar-slot .mapeditor__tool--auto,.mapview__toolbar-slot .mapeditor__tool--auto-area{height:30px;padding:0 14px;font-size:12.5px}.mapview__toolbar-slot .mapeditor__zoom-label{height:30px;min-width:46px;font-size:11.5px}.mapview__toolbar-slot .mapeditor__auto-sensitivity{height:30px;font-size:11.5px}.mapview__toolbar-slot .mapeditor__toolbar-divider{height:20px}.mapview__toolbar-slot--mobile .mapeditor__toolbar{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:6px;padding:0;width:100%;background:transparent;border:none;box-shadow:none}.mapview__toolbar-slot--mobile .mapeditor__mode-toggle{align-self:flex-start}.mapview__toolbar-slot--mobile .mapeditor__section{flex:0 0 auto;min-width:0;display:flex;flex-direction:row;align-items:stretch;gap:6px;padding:4px 6px;border-radius:var(--radius-md)}.mapview__toolbar-slot--mobile .mapeditor__section-label{display:none}.mapview__toolbar-slot--mobile .mapeditor__section .mapeditor__tool,.mapview__toolbar-slot--mobile .mapeditor__section .mapeditor__tool--auto,.mapview__toolbar-slot--mobile .mapeditor__section .mapeditor__tool--auto-area{flex:1 1 0;min-width:0;height:28px;padding:0 8px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.mapview__toolbar-slot--mobile .mapeditor__section--auto .dropdown{flex:1 1 0;min-width:0}.mapview__toolbar-slot--mobile .mapeditor__section--auto .dropdown__trigger{width:100%;height:28px;padding:0 6px 0 8px;font-size:12px;gap:4px}.mapview__toolbar-slot--mobile .mapeditor__section--auto .dropdown__prefix{display:none}.mapview__toolbar-slot--mobile .mapeditor__section--auto .dropdown__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(max-width:900px){.dropdown__menu--portal.mapeditor__sensitivity-dropdown{max-width:calc(100vw - 16px)}.dropdown__menu--portal.mapeditor__sensitivity-dropdown .dropdown__option-hint{display:none}}.mapview__back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--color-text);background:var(--lcr-brand-100);border:none;border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.mapview__back-btn:hover{background:var(--lcr-brand-200)}.mapview__detail-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 480px);pointer-events:none;z-index:1}.mapview__detail-body{flex:1;min-height:360px;background:#fff;border-radius:var(--radius-xl);border:1px solid var(--lcr-brand-200);display:flex;align-items:center;justify-content:center}.mapview__placeholder{max-width:480px;text-align:center;padding:32px}.mapview__placeholder-title{font-size:1.125rem;font-weight:700;color:var(--color-text);margin-bottom:8px}.mapview__placeholder-text{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5}.mapview__tile-image{width:100%;height:100%;object-fit:cover;display:block}.mapview__detail-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;row-gap:6px;padding-left:8px;margin-left:auto}.mapview__actions-slot{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}@media(max-width:900px){.mapview__detail-header{padding:8px 10px}.mapview__detail-actions{padding-left:0;gap:4px}.mapview__detail-title{max-width:180px;font-size:.95rem}.mapview__action-btn{padding:0 12px;height:30px;font-size:12px}.mapview__action-icon{width:13px;height:13px}.mapview__back-btn{padding:5px 8px;font-size:12px}.mapview__actions-divider{margin:0 2px}}.mapview__action-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--lcr-ink-800);background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.mapview__action-btn:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-500)}.mapview__action-btn--danger{color:var(--color-danger);border-color:#c4392e4d}.mapview__action-btn--danger:hover{background:#c4392e14;border-color:var(--color-danger)}.mapview__action-btn--save{background:#16a34a;color:#fff;border-color:#16a34a}.mapview__action-btn--save:hover{background:#15803d;border-color:#15803d;color:#fff}.mapview__action-icon{display:block;flex-shrink:0}.mapview__action-btn,.mapview__action-btn span{line-height:1}.mapview__action-btn--cancel{color:var(--color-text-secondary)}.mapview__action-btn--cancel:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-500);color:var(--color-text)}.mapview__detail-header--mobile{display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;padding:8px 10px;min-height:0}.mapview__detail-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%}.mapview__detail-row--titlebar{gap:8px;position:relative;min-height:36px}.mapview__detail-titlebar-actions{margin-left:auto;display:inline-flex;align-items:center;gap:6px}.mapview__detail-title--mobile{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:calc(100% - 180px);margin:0;font-size:1.15rem;font-weight:700;letter-spacing:-.01em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.mapview__back-btn--icon-only{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:0;border:none;background:var(--lcr-brand-100);color:var(--color-text);flex-shrink:0}.mapview__back-btn--icon-only:hover{background:var(--lcr-brand-200)}.mapview__icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--lcr-brand-100);border:none;border-radius:50%;color:var(--color-text);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.mapview__icon-btn:hover{background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.mapview__icon-btn--danger{color:var(--color-danger)}.mapview__icon-btn--danger:hover{background:#c4392e1f;color:var(--color-danger)}.mapview__detail-row--actions{gap:8px}.mapview__detail-row--actions .mapview__toolbar-slot--mobile,.mapview__detail-row--actions .mapview__toolbar-slot--mobile:empty{flex:1 1 100%;border-left:none;padding-left:0;margin-left:0}.mapview__detail-row--actions .mapview__toolbar-slot--mobile:empty{flex:0 0 0;display:none}.mapview__detail-row--actions .mapview__actions-slot--mobile:empty{display:none}.mapview__detail-row--actions .mapview__action-btn{flex:1 1 0;height:32px;justify-content:center;font-size:12.5px}.mapview__actions-divider{display:inline-block;width:1px;height:24px;background:var(--lcr-brand-300);margin:0 6px}.mapeditor__help-btn{height:32px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:999px;color:var(--lcr-ink-800);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);flex-shrink:0;line-height:1}.mapeditor__help-btn:hover{background:var(--lcr-brand-200);border-color:var(--lcr-brand-500);color:var(--lcr-brand-900)}.mapeditor__help-btn svg{display:block;flex-shrink:0}.mapeditor__help-btn span{line-height:1}.mapeditor__actions-divider{display:inline-block;width:1px;height:24px;background:var(--lcr-brand-300);margin:0 6px;flex-shrink:0}.dialog:has(.mapeditor__help){max-width:760px;width:760px}.mapeditor__help{font-family:var(--font);font-size:13px;color:var(--color-text);line-height:1.55;max-height:60vh;overflow-y:auto;padding-right:4px}.mapeditor__help section+section{margin-top:14px;padding-top:14px;border-top:1px solid var(--lcr-brand-200)}.mapeditor__help h4{margin:0 0 8px;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-ink-800)}.mapeditor__help ul{list-style:none;margin:0;padding:0}.mapeditor__help ul ul{margin:4px 0 4px 14px}.mapeditor__help li{position:relative;padding-left:14px;margin:4px 0}.mapeditor__help li:before{content:"·";position:absolute;left:4px;top:-2px;color:var(--lcr-ink-700);font-size:18px;font-weight:700;line-height:1}.mapeditor__help strong{color:var(--color-text);font-weight:700}.mapview__detail-body--has-map{align-items:stretch;justify-content:stretch;padding:0;position:relative;overflow:hidden;background:transparent;border:none;border-radius:0;box-shadow:none}.mapview__map-image{flex:1;width:100%;height:100%;max-height:calc(100vh - 220px);object-fit:contain;display:block;border-radius:var(--radius-md);background:var(--lcr-brand-50)}.mapview__upload-btn{margin-top:18px;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-family:var(--font);font-size:14px;font-weight:600;color:#fff;background:var(--lcr-brand-800);border:none;border-radius:var(--radius-xl);cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--transition-fast),transform var(--transition-fast)}.mapview__upload-btn:hover{background:var(--lcr-brand-900);transform:translateY(-1px)}.mapview__upload-btn:active{transform:translateY(0)}.mapview__upload-error{margin-top:12px;padding:8px 12px;font-size:.85rem;color:var(--color-danger);background:#c4392e14;border:1px solid rgba(196,57,46,.2);border-radius:var(--radius-md)}.mapview__upload-error--floating{position:absolute;bottom:16px;left:50%;transform:translate(-50%);margin:0}.mapview__siteplan-wrap{flex:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:12px;border-radius:var(--radius-md);background:linear-gradient(180deg,#faf7f0,#f0ebe0);overflow:hidden}.mapview__tile-siteplan{width:100%;height:100%;background:linear-gradient(180deg,#faf7f0,#f0ebe0);display:flex;align-items:center;justify-content:center;padding:6px}.mapview__tile-siteplan .siteplan__markers,.mapview__tile-siteplan .siteplan__street-label{display:none}.siteplan{width:100%;height:100%;max-height:calc(100vh - 220px);-webkit-user-select:none;user-select:none;font-family:var(--font)}.siteplan__street-label{font-size:10px;font-weight:600;fill:#8a7e69;letter-spacing:.04em;text-transform:uppercase}.siteplan__building{cursor:default;transition:transform var(--transition-fast);transform-origin:center;transform-box:fill-box}.siteplan__building--clickable{cursor:pointer}.siteplan__building--clickable:focus-visible>path:first-child{stroke:var(--lcr-brand-800);stroke-width:2}.siteplan__building--hover{transform:translateY(-1px)}.siteplan__chip rect{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.siteplan__chip-name{font-size:11px;font-weight:700;fill:#1f2a33;letter-spacing:-.01em}.siteplan__chip-status{font-size:9.5px;font-weight:600;letter-spacing:.01em}.mapeditor{flex:1;width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.mapeditor__layout{flex:1;display:flex;gap:8px;min-height:0}.mapeditor__sidelist{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);overflow:hidden}.mapeditor__sidelist-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;font-family:var(--font);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-ink-800);background:linear-gradient(180deg,#ffffff 0%,var(--lcr-brand-50) 100%);border-bottom:1px solid var(--lcr-brand-200)}.mapeditor__sidelist-toggle{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--lcr-brand-100);border:none;border-radius:50%;color:var(--lcr-ink-800);cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.mapeditor__sidelist-toggle:hover{background:var(--lcr-brand-200)}.mapeditor__sidelist--collapsed .mapeditor__sidelist-body,.mapeditor__sidelist--collapsed .mapeditor__sidelist-footer{display:none}.mapeditor__sidelist--collapsed .mapeditor__sidelist-header{border-bottom:none}@media(min-width:901px){.mapeditor__sidelist--collapsed{width:44px}.mapeditor__sidelist--collapsed .mapeditor__sidelist-header{padding:10px 0;justify-content:center}.mapeditor__sidelist--collapsed .mapeditor__sidelist-header>span:first-child{display:none}}.mapeditor__sidelist-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:18px;padding:0 6px;font-size:11px;font-weight:700;background:var(--lcr-brand-200);color:var(--lcr-brand-900);border-radius:999px;letter-spacing:0}.mapeditor__sidelist-body{flex:1;min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.mapeditor__sidelist-footer{padding:8px;border-top:1px solid var(--lcr-brand-200);background:var(--lcr-brand-50)}.mapeditor__sidelist-clear{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;font-family:var(--font);font-size:12.5px;font-weight:600;background:#fff;color:var(--color-danger);border:1px solid rgba(196,57,46,.3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.mapeditor__sidelist-clear:hover{background:#c4392e14;border-color:var(--color-danger)}.mapeditor__card{--card-color: var(--lcr-brand-700);display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);font-family:var(--font);font-size:12.5px;color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mapeditor__card:hover{transform:translate(2px);box-shadow:var(--shadow-xs);border-color:var(--lcr-brand-300)}.mapeditor__card:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:1px}.mapeditor__card--selected{border-color:var(--card-color)}.mapeditor__card--active{--card-color: #22C55E}.mapeditor__card--planned{--card-color: #3B82F6}.mapeditor__card--closed{--card-color: #F97316}.mapeditor__card--unassigned{--card-color: #FACC15}.mapeditor__card-dot{width:9px;height:9px;border-radius:999px;flex-shrink:0;background:var(--card-color)}.mapeditor__card-dot--active{background:#22c55e}.mapeditor__card-dot--planned{background:#3b82f6}.mapeditor__card-dot--closed{background:#f97316}.mapeditor__card-dot--unassigned{background:#facc15}.mapeditor__card-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.mapeditor__card-name{font-weight:600;color:var(--color-text);white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25}.mapeditor__card-unassigned{font-style:italic;color:#854d0e}.mapeditor__card-count{font-weight:700;color:var(--color-text);letter-spacing:0}.mapeditor__card-status{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--card-color)}.mapeditor__card-delete,.mapeditor__card-edit{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.mapeditor__card-delete:hover{background:#c4392e14;border-color:#c4392e4d;color:var(--color-danger)}.mapeditor__card-edit:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-300);color:var(--lcr-brand-900)}.mapeditor__sidelist-dot{width:9px;height:9px;border-radius:999px;flex-shrink:0}.mapeditor__sidelist-dot--active{background:#22c55e}.mapeditor__sidelist-dot--planned{background:#3b82f6}.mapeditor__sidelist-dot--closed{background:#f97316}.mapeditor__sidelist-dot--unassigned{background:#facc15}.mapeditor__sidelist-num{font-variant-numeric:tabular-nums;font-weight:600;font-size:11.5px;color:var(--color-text-secondary);min-width:22px}.mapeditor__sidelist-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapeditor__sidelist-unassigned{font-style:italic;color:var(--color-text-secondary);font-size:11.5px}@media(max-width:900px){.mapeditor__layout{flex-direction:column}.mapeditor__sidelist{width:100%;max-height:200px}.mapeditor__canvas{min-height:280px}}.mapeditor__canvas{position:relative;flex:1;min-height:0;width:100%;display:flex;align-items:safe center;justify-content:safe center;background:var(--lcr-brand-50);border-radius:var(--radius-md);overflow:auto;scrollbar-gutter:stable;touch-action:none}.mapeditor__viewport{position:relative;flex-shrink:0;margin:auto}.mapeditor__bg{display:block;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;user-select:none}.mapeditor__svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.mapeditor__svg--draw{cursor:crosshair}.mapeditor__svg--grabbing{cursor:grabbing}.mapeditor__svg--wand{cursor:crosshair}.mapeditor__svg--pan{cursor:grab}.mapeditor__svg--pan:active{cursor:grabbing}.mapeditor__toolbar--view{justify-content:space-between}.mapeditor__toolbar--view .mapeditor__hint{font-style:normal}.mapeditor__busy{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:6px 14px;background:#1f2a33d9;color:#fff;font-family:var(--font);font-size:12.5px;font-weight:600;border-radius:999px;box-shadow:var(--shadow-md);pointer-events:none;z-index:12}.mapeditor__toast{position:absolute;top:12px;left:50%;transform:translate(-50%);max-width:calc(100% - 32px);padding:8px 16px;font-family:var(--font);font-size:12.5px;font-weight:600;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);cursor:pointer;z-index:12;display:inline-flex;align-items:center;gap:8px;animation:mapeditor-toast-in .18s ease-out}.mapeditor__toast--success{background:#16a34a;color:#fff}.mapeditor__toast--error{background:#dc2626;color:#fff}.mapeditor__toast-close{opacity:.7;font-size:16px;line-height:1}@keyframes mapeditor-toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.mapeditor__wand-tolerance{display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-size:12px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.mapeditor__wand-tolerance input[type=range]{width:120px}.mapeditor__wand-tolerance span{display:inline-block;min-width:24px;text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text)}.mapeditor__hint--error{color:var(--color-danger);font-style:normal;font-weight:600}.mapeditor__hint--success{color:var(--lcr-ink-800);font-style:normal;font-weight:600}.mapeditor__tool--auto{height:34px;padding:0 16px;background:var(--lcr-brand-800);color:#fff;border-radius:var(--radius-md);border:none;font-weight:700;font-size:13px;letter-spacing:.01em;box-shadow:0 1px 2px #0f203c1a,0 2px 6px #0f203c1a;cursor:pointer;transition:background var(--transition-fast)}.mapeditor__tool--auto:hover:not(:disabled){background:var(--lcr-brand-700)}.mapeditor__tool--auto:disabled{opacity:.6;cursor:progress}.mapeditor__tool--auto-area{height:34px;padding:0 14px;background:#fff;color:var(--lcr-ink-800);border:1px solid var(--lcr-brand-500);border-radius:var(--radius-md);font-weight:600;font-size:12.5px;box-shadow:0 1px 2px #0f203c14;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);outline:none}.mapeditor__tool--auto-area:hover:not(:disabled){background:var(--lcr-brand-200);border-color:var(--lcr-brand-700);color:var(--lcr-brand-900)}.mapeditor__tool--auto-area.mapeditor__tool--active{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.mapeditor__tool--auto-area.mapeditor__tool--active:hover:not(:disabled){background:var(--lcr-brand-900);border-color:var(--lcr-brand-900);color:#fff}.mapeditor__tool--auto-area:disabled{opacity:.5;cursor:not-allowed}.mapeditor__auto-sensitivity{height:30px;padding:0 8px;font-family:var(--font);font-size:12.5px;color:var(--color-text);background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-sm);cursor:pointer}.mapeditor__auto-sensitivity:disabled{opacity:.6}.mapeditor__toolbar-divider{width:1px;height:24px;background:var(--lcr-brand-200)}.mapeditor__history,.mapeditor__zoom{display:inline-flex;gap:2px;align-items:center}.mapeditor__zoom-label{height:32px;min-width:52px;padding:0 8px;font-family:var(--font);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-sm);cursor:pointer;text-align:center}.mapeditor__zoom-label:hover{background:var(--lcr-brand-100);color:var(--color-text)}.mapeditor__icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--lcr-brand-300);border-radius:50%;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.mapeditor__icon-btn:hover:not(:disabled){background:var(--lcr-brand-100);color:var(--color-text)}.mapeditor__icon-btn:disabled{opacity:.4;cursor:not-allowed}.mapeditor__shape path{transition:fill-opacity var(--transition-fast),stroke-width var(--transition-fast)}.mapeditor__shape:hover path:first-child{fill-opacity:.5}.mapeditor__shape--linked-hover path:first-child{fill-opacity:.5}.mapeditor__shape--selected path:first-child{stroke-width:5}@keyframes mapeditor-shape-pulse{0%{stroke-width:3;filter:drop-shadow(0 0 0 rgba(34,197,94,0))}40%{stroke-width:7;filter:drop-shadow(0 0 8px rgba(34,197,94,.9))}to{stroke-width:3;filter:drop-shadow(0 0 0 rgba(34,197,94,0))}}.mapeditor__shape--new path:first-child{animation:mapeditor-shape-pulse 1.1s ease-in-out 4}.mapeditor__tooltip{position:absolute;transform:translate(-50%,calc(-100% - 10px));background:#fff;color:var(--color-text);border:1px solid var(--lcr-brand-300);border-radius:var(--radius-md);padding:9px 12px;font-family:var(--font);font-size:12px;box-shadow:0 1px #ffffffe6 inset,0 12px 28px #0f203c2e,0 4px 10px #0f203c1a;pointer-events:none;z-index:11;min-width:200px;max-width:340px;animation:dropdown-in .12s ease-out}.mapeditor__tooltip--below{transform:translate(-50%,10px)}.mapeditor__tooltip:after{content:"";position:absolute;bottom:-6px;left:var(--tooltip-arrow-x, 50%);transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:#fff;border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid var(--lcr-brand-300)}.mapeditor__tooltip--below:after{bottom:auto;top:-6px;left:var(--tooltip-arrow-x, 50%);border-right:none;border-bottom:none;border-left:1px solid var(--lcr-brand-300);border-top:1px solid var(--lcr-brand-300)}.mapeditor__tooltip-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--lcr-brand-200);margin-bottom:7px}.mapeditor__tooltip-name{font-weight:700;font-size:13px;letter-spacing:-.01em;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapeditor__tooltip-status{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;white-space:nowrap;flex-shrink:0}.mapeditor__tooltip-status--active{background:#22c55e2e;color:#15803d}.mapeditor__tooltip-status--planned{background:#3b82f62e;color:#1d4ed8}.mapeditor__tooltip-status--closed{background:#f973162e;color:#c2410c}.mapeditor__tooltip-status--unassigned{background:#facc1540;color:#854d0e}.mapeditor__tooltip-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.mapeditor__tooltip-stat{display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.mapeditor__tooltip-stat-num{font-size:15px;font-weight:700;line-height:1.1;color:var(--color-text)}.mapeditor__tooltip-stat-lbl{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:1px}.mapeditor__tooltip-stat--sold .mapeditor__tooltip-stat-num{color:#15803d}.mapeditor__tooltip-stat--reserved .mapeditor__tooltip-stat-num{color:#b45309}.mapeditor__tooltip-stat--free .mapeditor__tooltip-stat-num{color:#1d4ed8}.mapeditor__tooltip-empty{font-size:12px;color:var(--color-text-secondary);font-style:italic}.mini-tl{--mini-tl-label-w: 50px;margin-top:8px;padding-top:7px;border-top:1px solid var(--lcr-brand-200)}.mini-tl__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.mini-tl__title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.mini-tl__range{font-size:10px;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.mini-tl__body{position:relative;display:flex;flex-direction:column;gap:2px;padding-top:11px;padding-bottom:14px}.mini-tl__lane{display:flex;align-items:center;gap:6px}.mini-tl__code{flex:0 0 auto;width:44px;font-size:9.5px;font-weight:700;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.mini-tl__track{position:relative;flex:1 1 auto;height:9px;border-radius:999px;background:var(--lcr-brand-100, rgba(15, 32, 60, .06));overflow:hidden}.mini-tl__bar{position:absolute;top:0;bottom:0;border-radius:999px;min-width:3px}.mini-tl__gridline{position:absolute;top:11px;bottom:14px;width:1px;background:var(--lcr-brand-200, rgba(15, 32, 60, .12));z-index:0;pointer-events:none}.mini-tl__axis{position:absolute;left:0;right:0;bottom:0;height:12px}.mini-tl__axis-year{position:absolute;bottom:0;transform:translate(-50%);font-size:9px;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}.mapeditor__popover{position:absolute;min-width:240px;max-height:80vh;overflow-y:auto;padding:10px 12px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--lcr-brand-300);font-family:var(--font);z-index:10}.mapeditor__popover:after{content:"";position:absolute;bottom:-7px;left:var(--popover-arrow-x, 50%);transform:translate(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-right:1px solid var(--lcr-brand-300);border-bottom:1px solid var(--lcr-brand-300)}.mapeditor__popover--below:after{bottom:auto;top:-7px;border-right:none;border-bottom:none;border-left:1px solid var(--lcr-brand-300);border-top:1px solid var(--lcr-brand-300)}.mapeditor__label{position:absolute;transform:translate(-50%,-50%);font-family:var(--font);font-weight:700;letter-spacing:.01em;white-space:nowrap;pointer-events:none;z-index:1;text-shadow:0 0 3px rgba(255,255,255,.95),0 0 6px rgba(255,255,255,.7)}.mapeditor__popover-label{display:block;font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.mapeditor__popover-select{width:100%;height:32px;padding:0 8px;font-family:var(--font);font-size:13px;color:var(--color-text);background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-sm);cursor:pointer}.mapeditor__popover-select:focus{outline:none;border-color:var(--lcr-brand-700)}.mapeditor__popover-meta{margin-top:6px;font-size:12px;color:var(--color-text-secondary)}.mapeditor__popover-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:6px}.mapeditor__popover-btn{height:28px;padding:0 12px;font-family:var(--font);font-size:12px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--lcr-brand-300);background:#fff;color:var(--color-text);cursor:pointer}.mapeditor__popover-btn--danger{color:var(--color-danger);border-color:#c4392e4d}.mapeditor__popover-btn--danger:hover{background:#c4392e14;border-color:var(--color-danger)}.mapeditor__popover-btn--primary{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.mapeditor__popover-btn--primary:hover:not(:disabled){background:var(--lcr-brand-900)}.mapeditor__popover-btn--primary:disabled{opacity:.4;cursor:not-allowed}.mapeditor__popover-or{margin:10px 0 4px;font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600;text-align:center}.mapeditor__popover-create{display:flex;gap:6px}.mapeditor__popover-input{flex:1;height:32px;padding:0 8px;font-family:var(--font);font-size:13px;color:var(--color-text);background:#fff;border:1px solid var(--lcr-brand-300);border-radius:var(--radius-sm);min-width:0}.mapeditor__popover-input:focus{outline:none;border-color:var(--lcr-brand-700)}.mapeditor__popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.mapeditor__popover-close:hover{background:var(--lcr-brand-100);color:var(--color-text)}.mapeditor__toolbar{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap}.mapeditor__toolbar--top{margin-top:0;margin-bottom:10px}.mapeditor__tools{display:inline-flex;gap:4px;padding:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-md);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop)}.mapeditor__tool{height:30px;padding:0 14px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.mapeditor__tool:hover{color:var(--color-text);background:#fff9}.mapeditor__tool--active{background:var(--glass-pill-bg);color:var(--color-text);box-shadow:var(--glass-pill-shadow)}.mapeditor__section--manual .mapeditor__tool--active{background:var(--lcr-brand-800);color:#fff}.mapeditor__section--manual .mapeditor__tool--active:hover{background:var(--lcr-brand-900);color:#fff}.mapeditor__tool--ghost{background:transparent;border:1px solid var(--lcr-brand-300);color:var(--color-text-secondary)}.mapeditor__tool--ghost:hover{background:var(--lcr-brand-100);color:var(--color-text)}.mapeditor__tool--primary{background:var(--lcr-brand-800);color:#fff;padding:0 16px}.mapeditor__tool--primary:hover{background:var(--lcr-brand-900);color:#fff}.mapeditor__hint{flex:1;font-size:12.5px;color:var(--color-text-secondary);font-style:italic;min-width:0}.mapeditor__toolbar-actions{display:inline-flex;gap:6px}.mapview__action-btn--active{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.mapview__action-btn--active:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.pv{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:12px 0 4px;gap:.5rem}@media(min-width:1025px){.pv{padding-top:0}}.pv-header{display:flex;align-items:center;gap:10px;padding:12px 14px;flex:0 0 auto;border-bottom:1px solid var(--lcr-brand-300)}.pv-header__back{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--lcr-navy);border:none;border-radius:var(--radius-full);font-size:13px;font-weight:700;color:#fff;cursor:pointer;box-shadow:0 2px 6px #0f203c38;transition:filter var(--transition-fast)}.pv-header__back:hover{filter:brightness(1.12)}.pv-header__back:focus-visible{outline:2px solid var(--lcr-brand-900);outline-offset:2px}.pv-header__title-area{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.pv-header__breadcrumb{font-size:12px;font-weight:500;color:var(--color-text-muted)}.pv-header__title{font-size:17px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-header__controls{display:inline-flex;align-items:center;gap:12px}.pv-header--minimal{justify-content:flex-start}.pv-top{display:grid;grid-template-columns:1fr minmax(280px,360px);gap:14px;flex-shrink:0}.pv-main{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:.5rem;flex:1 1 auto;align-items:stretch;min-height:0}.pv-col-left,.pv-col-right{display:flex;flex-direction:column;min-height:0;min-width:0}.pv-col-right{gap:.5rem}.pv-col-left{position:relative;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden}.pv-col-left .pv-box{border-radius:0;box-shadow:none;background:transparent}.pv-col-left .pv-box--info{flex-shrink:0}.pv-col-left .pv-box--phases-tall{flex:1 1 auto;min-height:0;border-top:1px solid var(--lcr-brand-300)}.pv-box__scroll{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:10px;min-height:0}.pv-col-right .pv-bottom__timeline{flex:0 0 auto;min-height:240px;height:50vh;max-height:50vh}@media(min-width:901px){.pv:not(.pv--with-pane) .pv-col-right .pv-bottom__timeline{flex:1 1 auto;height:auto;max-height:none}}.pv-col-right .pv-bottom__pane{flex:0 0 auto;min-height:240px;height:50vh;max-height:50vh}.pv--with-pane-mphase .pv-col-right{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.pv--with-pane-mphase .pv-col-right .pv-tabs{grid-column:1 / -1}.pv--with-pane-mphase .pv-col-right .pv-bottom__timeline,.pv--with-pane-mphase .pv-col-right .pv-bottom__pane{min-height:240px;max-height:50vh}.pv--with-pane-mphase:not(.pv--with-pane-plan) .pv-col-right .pv-bottom__pane,.pv--with-pane-mphase:not(.pv--with-pane-plan) .pv-col-right .pv-bottom__timeline{height:auto;max-height:none;align-self:stretch}.pv--with-pane-mphase:not(.pv--with-pane-plan) .pv-col-right{grid-template-rows:auto minmax(0,1fr) auto}.pv--with-pane-mphase .pv-col-right .pv-plan-pane--collapsed{grid-column:1 / -1}.pv-plan-pane{background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);display:flex;flex-direction:column;flex:1 1 auto;min-height:320px;overflow:hidden;animation:pv-plan-pane-in .2s ease-out}.pv-plan-pane>.plan-tl{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.pv-plan-pane--collapsed{flex:0 0 auto;min-height:0;margin-top:auto;animation:none}.pv-plan-pane__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:transparent;border:none;cursor:pointer;font:inherit;font-weight:700;font-size:14px;color:var(--color-text);text-align:left}.pv-plan-pane__toggle:hover{background:var(--lcr-brand-100)}.pv-plan-pane--full{flex:1 1 auto;min-height:0}.pv-fazy{display:flex;flex-direction:row;gap:14px;flex:1 1 auto;min-height:0;align-items:stretch}.pv-fazy>.pv-embed-grid--fazy{flex:1 1 auto;min-height:0;min-width:0}.pv-fazy .pv-bottom__pane.pv-bottom__pane--fazy{flex:0 0 clamp(440px,42%,640px);min-width:0;min-height:0;height:auto;max-height:none;align-self:stretch}@media(max-width:900px){.pv-fazy{flex-direction:column}.pv-fazy .pv-bottom__pane.pv-bottom__pane--fazy{flex:0 0 auto;height:auto;min-height:240px;max-height:60vh}}.pv-contractors{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow:auto;background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);padding:14px 16px}.pv-contractors__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pv-contractors__title{font-size:16px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.pv-contractors__manage{flex-shrink:0;display:inline-flex;align-items:center;padding:11px 20px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-full);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);color:var(--color-text-secondary);font-family:var(--font);font-size:14.5px;font-weight:700;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.pv-contractors__manage:hover{background:var(--glass-btn-secondary-bg-hover);color:var(--color-text)}.pv-contractors__empty{color:var(--color-text-muted);font-size:13px;padding:12px 4px}.pv-contractors__tools{display:flex;align-items:center;gap:8px;flex-shrink:0}.pv-contractors__emptystate{padding:32px 16px;text-align:center}.pv-tabs{display:flex;flex-shrink:0;margin-bottom:10px}.pv-tabs__toggle{position:relative}@media(max-width:767px){.pv-tabs__toggle{display:flex;width:100%}.pv-tabs__toggle .cv-modetoggle__btn{flex:1;justify-content:center;text-align:center}}.pv-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;align-items:start}.pv-ovcard{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 20px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-bento);font-family:var(--font);text-align:left;cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.pv-ovcard:hover{box-shadow:var(--shadow-bento-hover);transform:translateY(-2px)}.pv-ovcard__title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.pv-ovcard__big{font-size:26px;font-weight:800;color:var(--color-text);line-height:1.1}.pv-ovcard__big-unit{font-size:13px;font-weight:600;color:var(--color-text-muted)}.pv-ovcard__line{font-size:13px;color:var(--lcr-ink-700)}.pv-ovcard__line strong{color:var(--color-text)}.pv-ovcard__muted{font-size:13px;color:var(--color-text-muted)}.pv-ovcard__chips{display:flex;flex-wrap:wrap;gap:6px}.pv-ovcard__phase{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);font-size:12.5px;font-weight:700}.pv-overview--rail{grid-template-columns:1fr;gap:10px}.pv-overview--rail .pv-ovcard{padding:13px 16px;gap:7px;border-radius:var(--radius-lg)}.pv-overview--rail .pv-ovcard__big{font-size:21px}.pv-pane__missing{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:6px 2px 10px;font-size:13px;color:var(--color-text-muted)}.pv-contractors__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:var(--radius-full);background:var(--lcr-brand-200);color:var(--lcr-ink-800);font-size:11px;font-weight:700}.pv-contractors .cv-prow__add{align-self:stretch;min-height:72px}@media(max-width:767px){.pv-contractors__head{flex-wrap:wrap}}.pv-embed-grid{display:flex;flex:1 1 auto;min-height:0;min-width:0}.pv-embed-grid .col-frozen,.pv-embed-grid--fazy .row--group{display:none!important}.pv-embed-grid--fazy{--col-sales-bar: 232px}.pv-embed-grid--fazy .cell--sales-bar:not(.kpi-param-row__label){display:none!important}.pv-embed-grid--fazy .col-scroll .cell--sales-bar.kpi-param-row__label{left:0}.pv-embed-grid--fazy .grid-body--kpi .col-scroll{grid-template-columns:var(--col-sales-bar) repeat(var(--kpi-count, 11),minmax(112px,1fr))}.pv-embed-grid--fazy .grid-body--kpi{min-width:max-content}.pv-embed-grid--fazy .row--header .col-scroll .cell--sales-bar{display:flex!important;position:sticky;left:0;z-index:4;font-size:0;background:var(--lcr-brand-100);border-right:1px solid var(--lcr-brand-300)}.pv-embed-grid--fazy .project-row .col-scroll .cell--sales-bar{display:flex!important;position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid var(--lcr-brand-200)}.pv-embed-grid--fazy .row--header .col-scroll .cell--sales-bar>*,.pv-embed-grid--fazy .project-row .col-scroll .cell--sales-bar>*{display:none!important}.pv-embed-grid--fazy .project-row:hover .cell{background-color:transparent}.pv-embed-grid--fazy .project-row:hover .col-scroll .cell--sales-bar{background:#fff}.pv-embed-grid--fazy .project-row:hover .kpi-phase-cell{background-color:var(--kpi-fill, transparent)}.pv-embed-grid--fazy .project-row .kpi-phase-cell:hover{background-color:var(--kpi-fill-hover, transparent)}.pv-embed-grid--fazy .kpi-phase-cell--static{cursor:default}.pv-embed-grid--fazy .kpi-param-row .cell,.pv-embed-grid--fazy .grid-body--kpi .kpi-param-row .col-scroll .cell--sales-bar{background:var(--lcr-brand-100)}.pv-embed-grid--fazy .kpi-param-row:nth-child(odd) .cell,.pv-embed-grid--fazy .grid-body--kpi .kpi-param-row:nth-child(odd) .col-scroll .cell--sales-bar{background:#fff}.pv-embed-grid--fazy .kpi-param-cell--clickable{cursor:pointer}.pv-embed-grid--fazy .kpi-param-cell--clickable:hover{background:var(--lcr-brand-200)}.pv--with-pane-plan .pv-col-right .pv-bottom__timeline{flex:0 1 auto;min-height:240px;max-height:50vh}.pv--with-pane-mphase.pv--with-pane-plan .pv-col-right{grid-template-columns:1fr 1fr;grid-template-rows:auto auto minmax(0,1fr);align-items:stretch}.pv--with-pane-mphase.pv--with-pane-plan .pv-col-right .pv-bottom__timeline,.pv--with-pane-mphase.pv--with-pane-plan .pv-col-right .pv-bottom__pane{min-height:240px;max-height:50vh}.pv--with-pane-mphase.pv--with-pane-plan .pv-col-right .pv-plan-pane{grid-column:1 / -1}@keyframes pv-plan-pane-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pv-info--column{flex-direction:column;flex-wrap:nowrap;gap:10px}.pv-info--column .pv-info__field{flex:none;min-width:0}.pv-info--column .pv-info__field--units{flex:none}.pv-info.pv-info--grid{display:grid;grid-template-columns:1fr 110px;gap:10px 12px;flex-wrap:nowrap}.pv-info.pv-info--grid .pv-info__field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:none}.pv-info.pv-info--grid .pv-info__field--name{grid-column:1 / 2}.pv-info.pv-info--grid .pv-info__field--units{grid-column:2 / 3}.pv-info.pv-info--grid .pv-info__field--notes,.pv-info.pv-info--grid .pv-info__field--danger{grid-column:1 / -1}.pv-info__input--notes{height:auto;min-height:80px;padding:10px 12px;line-height:1.4;resize:vertical}.pv-info__field--danger{align-items:flex-start}.pv-info__delete{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--color-danger, #d64545);border-radius:7px;background:transparent;color:var(--color-danger, #d64545);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.pv-info__delete:hover:not(:disabled){background:var(--color-danger, #d64545);color:#fff}.pv-info__delete:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1100px){.pv-info.pv-info--grid{grid-template-columns:1fr}.pv-info.pv-info--grid .pv-info__field--name,.pv-info.pv-info--grid .pv-info__field--units,.pv-info.pv-info--grid .pv-info__field--notes{grid-column:1 / -1}}@media(max-width:900px){.pv-header{padding:10px 12px;gap:10px}.pv-header__title{font-size:15px}.pv-main{grid-template-columns:1fr;gap:10px}.pv-col-left{max-height:60vh}.pv-info.pv-info--grid{grid-template-columns:1fr 96px}.pv-info.pv-info--grid .pv-info__field--name{grid-column:1 / 2}.pv-info.pv-info--grid .pv-info__field--units{grid-column:2 / 3}.pv-info.pv-info--grid .pv-info__field--notes{grid-column:1 / -1}}@media(max-width:900px){.pv-col-left .pv-box--phases-tall{max-height:none}.pv--with-pane .pv-col-right{display:flex;flex-direction:column;gap:10px}.pv-col-right{overflow-y:auto;-webkit-overflow-scrolling:touch}.pv-col-right .pv-bottom__timeline,.pv--with-pane .pv-col-right .pv-bottom__timeline{flex:0 0 auto;min-height:200px}.pv-col-right .pv-bottom__pane,.pv--with-pane .pv-col-right .pv-bottom__pane{flex:0 0 auto;min-height:0;overflow:visible}.pv-pane__body{overflow:visible}.pv-bottom__timeline{padding:10px 0 12px}.pv-pane__header{padding:10px 12px}.pv-pane__title{font-size:13px}.pv-pane__body,.pv-box{padding:10px 12px}}.pv-box{background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}.pv-box__title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.pv-box__title--toggle{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;padding:0;margin:0;font:inherit;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;align-self:flex-start}.pv-box__title--toggle:hover{color:var(--color-text)}.pv-toggle-chev{flex-shrink:0;transition:transform var(--transition-fast)}[aria-expanded=true]>.pv-toggle-chev{transform:rotate(180deg)}.pv-box--info-collapsed{gap:0;padding-bottom:8px}.pv-info{display:flex;flex-direction:row;gap:12px;flex-wrap:wrap}.pv-info__field{display:flex;flex-direction:column;gap:4px;flex:1 1 200px;min-width:140px}.pv-info__field--units{flex:0 0 110px;min-width:90px}.pv-info__label{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--color-text-muted)}.pv-info__input{height:36px;padding:0 12px;border:var(--glass-input-border);border-radius:var(--radius-md);font-family:inherit;font-size:13px;background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);outline:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.pv-info__input:focus{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.pv-info__input:disabled{background:#ffffff4d;color:var(--color-text-muted)}.mphase-list{flex-direction:column;gap:10px}.mphase-list__title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding-top:6px;border-top:1px dashed var(--color-border)}.pv-mphases-block:first-child .mphase-list__title{border-top:none;padding-top:0}.mphase-list__items{display:flex;flex-wrap:wrap;gap:8px}.mphase-list__items--cards{flex-direction:column;flex-wrap:nowrap;gap:8px}.mphase-mini{position:relative;display:flex;flex-direction:column;gap:4px;padding:6px 14px 8px 48px;min-height:42px;background:#fff;border:1.5px solid;border-radius:var(--radius-md);transition:box-shadow .15s}.mphase-mini--active{box-shadow:0 0 0 2px #00000014,var(--shadow-sm)}.mphase-mini--clickable{cursor:pointer}.mphase-mini--clickable:hover{box-shadow:var(--shadow-sm)}.sales-group__mini--clickable{cursor:pointer}.sales-group__mini--clickable:hover{box-shadow:var(--shadow-sm)}.mphase-mini--disabled{background:var(--lcr-brand-50);opacity:.78;justify-content:center}.mphase-mini--disabled .mphase-mini__title{color:var(--color-text-secondary)!important;cursor:default}.mphase-mini--disabled .mphase-mini__title:hover{text-decoration:none}.mphase-mini__head{display:flex;align-items:center;justify-content:flex-start;gap:8px}.mphase-mini:not(.mphase-mini--disabled),.sales-group__mini--starred{padding-right:48px}.mphase-mini__star{position:absolute;top:50%;right:7px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--lcr-line-strong);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.mphase-mini__star:hover{color:var(--lcr-ink-700);background:var(--lcr-brand-100)}.mphase-mini__star svg path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.mphase-mini__star--on svg path,.mphase-mini__star--on:hover svg path{fill:var(--priority-glow-ring);stroke:var(--priority-glow-ring)}.mphase-mini__title{display:inline-flex;flex-direction:row;align-items:baseline;gap:6px;padding:0;border:none;background:transparent;font-family:inherit;cursor:pointer;line-height:1.2;text-align:left;min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden}.mphase-mini__title:hover .mphase-mini__code{text-decoration:underline}.mphase-mini__code{font-size:13px;font-weight:700}.mphase-mini__name{font-size:12px;font-weight:600;color:var(--color-text-secondary, var(--lcr-brand-700));text-transform:none;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mphase-mini__delete{width:18px;height:18px;border:none;background:var(--lcr-brand-100);border-radius:50%;font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer}.mphase-mini__delete:hover{background:var(--lcr-brand-200);color:var(--color-text)}.mphase-mini .phase-toggle,.sales-group__mini .phase-toggle{position:absolute;left:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;transition:background var(--transition-fast)}.mphase-mini .phase-toggle:hover,.sales-group__mini .phase-toggle:hover{background:var(--lcr-brand-100)}.mphase-mini .phase-toggle svg,.sales-group__mini .phase-toggle svg{width:22px;height:22px}.mphase-mini__fields{display:flex;flex-direction:row;align-items:center;gap:6px}.mphase-mini__dates-sep{flex:0 0 auto;font-size:12px;color:var(--color-text-muted)}.mphase-mini__fields .dsheet__input,.sales-group__mini-fields .dsheet__input{flex:0 1 116px;min-width:56px;height:26px;padding:2px 8px;text-align:center;background:var(--lcr-brand-50);border-color:var(--lcr-brand-300);border-radius:6px}.mphase-mini__fields .dsheet__input:focus,.sales-group__mini-fields .dsheet__input:focus{background:#fff}.mphase-mini__field{display:flex;flex-direction:column;gap:3px;min-width:0}.mphase-mini__label{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.sales-group{flex-direction:column;gap:8px}.sales-group__link{align-self:stretch;margin:0}.sales-group__mini{position:relative;display:flex;flex-direction:column;gap:4px;padding:4px 14px 8px 48px;min-height:42px;margin:0;background:#fff;border:1.5px solid;border-radius:var(--radius-md)}.sales-group__mini--investor{justify-content:center;padding-bottom:4px}.sales-group__mini-head{display:flex;align-items:center;gap:6px;min-height:22px}.sales-group__mini-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px}.sales-group__mini-title--stacked{flex-direction:row;align-items:baseline;gap:6px;text-transform:none;letter-spacing:0;line-height:1.2;min-width:0;white-space:nowrap;overflow:hidden}.sales-group__mini-title--btn{padding:0;border:none;background:transparent;font-family:inherit;cursor:pointer;text-align:left}.sales-group__mini-title--btn:hover:not(:disabled){text-decoration:underline}.sales-group__mini-title--btn:disabled{cursor:default;color:var(--color-text-secondary)!important}.sales-group__mini-fields{display:flex;flex-direction:row;align-items:center;gap:6px}.sales-group__mini .phase-picker-ctl{display:flex;width:100%;gap:6px;align-items:center}.sales-group__mini .phase-picker-ctl__fields{flex:1;min-width:0;gap:4px}.sales-group__mini .phase-picker-ctl__fields .phase-drop{flex:1;min-width:0!important}.sales-group__mini .phase-picker-ctl__fields .phase-drop:last-child{flex:0 0 60px}.sales-group__mini .phase-picker-ctl__seg,.sales-group__mini .phase-drop__trigger{height:24px;font-size:11px}.sales-group__mini .phase-drop__trigger{padding:0 8px}.sales-group__mini .phase-picker-ctl__seg-btn{font-size:10px;padding:0 6px}.mphase-mini__field{gap:2px;align-items:stretch}.mphase-mini .phase-picker-ctl{display:flex;width:100%;gap:6px;align-items:center;justify-content:flex-start}.mphase-mini .phase-picker-ctl__fields{flex:1;min-width:0;gap:4px}.mphase-mini .phase-picker-ctl__fields .phase-drop{flex:1;min-width:0!important}.mphase-mini .phase-picker-ctl__fields .phase-drop:last-child{flex:0 0 60px}.mphase-mini .phase-picker-ctl__seg,.mphase-mini .phase-drop__trigger{height:24px;font-size:11px}.mphase-mini .phase-drop__trigger{padding:0 8px}.mphase-mini .phase-picker-ctl__seg-btn{font-size:10px;padding:0 6px}.mphase-list__empty{font-size:13px;color:var(--color-text-muted);padding:8px 0}.mphase-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 10px;border:1.5px solid;border-radius:var(--radius-full);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .12s,box-shadow .15s}.mphase-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.mphase-chip--active{box-shadow:0 0 0 2px #00000014,var(--shadow-sm)}.mphase-chip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mphase-chip__delete{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:14px;line-height:1;margin-left:2px;color:inherit;opacity:.7;background:#fff9}.mphase-chip__delete:hover{opacity:1;background:#ffffffe6}.mphase-list__add-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1.5px dashed var(--lcr-brand-400);background:transparent;border-radius:var(--radius-full);font-family:inherit;font-size:13px;font-weight:600;color:var(--color-text-muted);cursor:pointer}.mphase-list__add-btn:hover{border-color:var(--lcr-brand-800);color:var(--color-text)}.mphase-list__add-btn:disabled{opacity:.5;cursor:not-allowed}.mphase-list__add-btn--inline{margin-left:auto;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.mphase-picker{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:var(--lcr-brand-50);border-radius:var(--radius-md)}.mphase-picker__btn{padding:6px 12px;border:1.5px solid;background:#fff;border-radius:var(--radius-full);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.mphase-picker__btn:hover{background:var(--lcr-brand-50)}.mphase-picker__cancel{padding:6px 12px;border:none;background:transparent;font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer}.mphase-picker__empty{font-size:12px;color:var(--color-text-muted);padding:4px 8px}.pv-bottom{display:grid;grid-template-columns:1fr;gap:14px;flex:1 1 auto;min-height:0}.pv--with-pane .pv-bottom{grid-template-columns:1fr 1fr}.pv-bottom__timeline{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);min-height:280px;overflow-x:auto;overflow-y:auto;display:flex;flex-direction:column}.pv-bottom__timeline{scrollbar-color:var(--lcr-brand-400) transparent}.pv-bottom__timeline::-webkit-scrollbar{height:8px;width:8px}.pv-bottom__timeline::-webkit-scrollbar-track{background:transparent}.pv-bottom__timeline::-webkit-scrollbar-corner{background:transparent}.pv-bottom__timeline::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pv-bottom__timeline::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pv-bottom__timeline>.pv-gantt{min-width:max-content}.pv-bottom__pane{background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);display:flex;flex-direction:column;min-height:280px;overflow:hidden}.pv-pane__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-bottom:1px solid var(--color-border)}.pv-pane__title{font-size:14px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-pane__actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}.pv-pane__close{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--lcr-brand-300);background:var(--lcr-brand-100);color:var(--color-text);font-size:18px;font-weight:600;line-height:1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.pv-pane__close:hover{background:#fde8e6;border-color:#f3b4ad;color:var(--color-danger)}.pv-pane__body{flex:1;overflow:auto;padding:14px 18px;display:flex;flex-direction:column;min-height:0}.pv-timeline{position:relative;display:flex;flex-direction:column;gap:12px;flex:1}.pv-timeline--empty{align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13px;padding:40px 0}.pv-timeline__ticks{position:relative;height:28px;border-bottom:1px solid var(--lcr-brand-300)}.pv-timeline__tick{position:absolute;top:0;bottom:0;border-left:1px dotted var(--lcr-brand-300);font-size:10px;color:var(--color-text-muted);padding-left:4px}.pv-timeline__tick--year{border-left:1.5px solid var(--lcr-brand-400)}.pv-timeline__tick-label{font-weight:700;color:var(--lcr-ink-800)}.pv-timeline__tick-month{font-size:9px}.pv-timeline__lanes{position:relative;display:flex;flex-direction:column;gap:8px;flex:1}.pv-timeline__lane{position:relative;height:36px;background:var(--lcr-brand-50);border-radius:var(--radius-sm)}.pv-timeline__lane-label{position:absolute;left:6px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);z-index:0;pointer-events:none}.pv-timeline__bar{position:absolute;top:4px;bottom:4px;display:flex;align-items:center;padding:0 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid;z-index:1;white-space:nowrap;overflow:hidden}.pv-timeline__bar--presales{background:var(--color-presales);border-color:var(--color-presales);color:#2d5f0f}.pv-timeline__bar--construction{background:var(--color-construction);border-color:var(--color-construction);color:#2b5f8a}.pv-timeline__bar--mphase{color:#fff}.pv-timeline__bar:hover{filter:brightness(1.05)}.pv-timeline__bar-text{text-overflow:ellipsis;overflow:hidden}.pv-timeline__fin-marker{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px solid var(--color-warning);z-index:2}.pv-timeline__fin-badge{position:absolute;top:-2px;left:4px;padding:2px 6px;background:var(--color-warning-bg);border:1.5px solid var(--color-warning);border-radius:var(--radius-sm);font-size:9px;font-weight:700;color:#92400e;white-space:nowrap}.mphase-form{display:flex;flex-direction:column;gap:14px}.mphase-form--empty{color:var(--color-text-muted);font-size:13px;padding:20px 0;text-align:center}.mphase-form__title-row{display:flex;align-items:center;gap:10px}.mphase-form__dot{width:12px;height:12px;border-radius:50%}.mphase-form__title{font-size:16px;font-weight:700}.mphase-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mphase-form__field{display:flex;flex-direction:row;align-items:center;gap:12px}.mphase-form__field--col{flex-direction:column;align-items:stretch;gap:4px}.mphase-form__label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.mphase-form__required{color:var(--color-danger);margin-left:2px}.mphase-form__hint{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:6px;border-radius:50%;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:1;cursor:help;vertical-align:middle;text-transform:none;letter-spacing:0}.mphase-form__input,.mphase-form__textarea{height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:13px;background:#fff;outline:none}.mphase-form__textarea{height:auto;min-height:80px;padding:8px 12px;resize:vertical}.mphase-form__input:focus,.mphase-form__textarea:focus{border-color:var(--lcr-brand-800);box-shadow:0 0 0 3px #38535f1a}.mphase-form__divider{height:1px;background:var(--color-border)}.mphase-form__section{display:flex;flex-direction:column;gap:12px}.mphase-form__section+.mphase-form__section{padding-top:14px;border-top:1px solid var(--color-border)}.mphase-form__section-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.mphase-form__dirty{margin-right:auto;padding:2px 8px;font-size:10px;font-weight:600;color:#92400e;background:var(--color-warning-bg);border-radius:4px}.mphase-form__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;position:sticky;top:0;z-index:5;background:#fff;padding:6px 0;border-bottom:1px solid var(--color-border)}.mphase-form__actions--header{position:static;z-index:auto;padding:0;background:transparent;border-bottom:none}.mphase-form__actions--header .mphase-form__btn{padding:6px 14px;flex:0 0 auto}.mphase-form__actions--header .mphase-form__dirty{white-space:nowrap}.mphase-form__btn{padding:8px 18px;border:none;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s,transform .1s}.mphase-form__btn:disabled{opacity:.5;cursor:not-allowed}.mphase-form__btn--save{background:var(--lcr-brand-800);color:#fff;box-shadow:var(--shadow-xs)}.mphase-form__btn--save:hover:not(:disabled){background:var(--lcr-brand-900);transform:translateY(-1px)}.mphase-form__btn--reset{background:var(--lcr-brand-100);color:var(--color-text)}.mphase-form__btn--reset:hover:not(:disabled){background:var(--lcr-brand-200)}.mphase-form__approval{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;background:var(--lcr-brand-50, #f5f7f8);border:1px solid var(--color-border);border-radius:var(--radius-md)}.mphase-form__approval-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}.mphase-form__approval-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#22c55e;cursor:pointer}.mphase-form__approval-meta{font-size:11px;color:var(--color-text-muted)}.phase-docs{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--color-border)}.phase-docs__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.phase-docs__title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.phase-docs__hint{font-size:11px;color:var(--color-text-muted)}.phase-docs__upload{display:flex;gap:6px;align-items:stretch}.phase-docs__label-input{flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:12px;background:#fff}.phase-docs__label-input:focus{outline:none;border-color:var(--lcr-brand-800);box-shadow:0 0 0 3px #38535f1a}.phase-docs__file-hidden{display:none}.phase-docs__upload-btn{padding:6px 14px;border:none;border-radius:var(--radius-md);background:var(--lcr-brand-800);color:#fff;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.phase-docs__upload-btn:hover:not(:disabled){background:var(--lcr-brand-900)}.phase-docs__upload-btn:disabled{opacity:.5;cursor:not-allowed}.phase-docs__error{font-size:12px;color:var(--color-danger, #dc2626);padding:6px 10px;background:#dc262614;border-radius:var(--radius-md)}.phase-docs__empty{font-size:12px;color:var(--color-text-muted);padding:10px 0;text-align:center}.phase-docs__list{display:flex;flex-direction:column;gap:6px;list-style:none;padding:0;margin:0}.phase-docs__item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.phase-docs__item--approved{background:#22c55e0f;border-color:#22c55e66}.phase-docs__item-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.phase-docs__filename{background:none;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;text-align:left;word-break:break-all}.phase-docs__filename:hover{text-decoration:underline}.phase-docs__label{font-size:11px;font-weight:600;color:var(--color-text);background:var(--lcr-brand-100);padding:1px 6px;border-radius:4px;align-self:flex-start}.phase-docs__meta{font-size:11px;color:var(--color-text-muted)}.phase-docs__meta--approval{color:#15803d;font-weight:600}.phase-docs__item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.phase-docs__approve{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.phase-docs__approve input[type=checkbox]{width:14px;height:14px;accent-color:#22c55e;cursor:pointer}.phase-docs__delete{background:none;border:none;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;font-size:18px;line-height:1;color:var(--color-text-muted);cursor:pointer}.phase-docs__delete:hover{background:#dc26261a;color:var(--color-danger, #dc2626)}.pv-phases-row .timeline-picker{flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:10px;max-width:none}.pv-phases-row .phase-link-toggle{flex-basis:100%;margin-bottom:4px}.pv-phases-row .phase-card{grid-template-columns:1fr;flex:1 1 240px;min-width:220px;padding:12px 14px;gap:10px}.pv-phases-row .phase-card__head{min-width:0;gap:8px}.pv-phases-row .phase-card__fields{gap:10px;flex-wrap:wrap}.pv-phases-row .phase-card__field{flex-direction:column;align-items:flex-start;gap:4px}.pv-box--phases{padding:12px 0 12px 10px;gap:8px}.pv-box--phases .pv-box__title{margin-bottom:2px;padding:0 10px}.pv-box--phases .pv-box__scroll{padding:6px 8px 0 4px;overflow-x:visible}.pv-box--phases-collapsed{flex:0 0 auto}.pv-box--phases-collapsed .pv-box__title{margin-bottom:0}.pv-phases-row .phase-link-toggle__label{padding:4px 10px;font-size:11px}.pv-phases-row .phase-card{padding:14px 10px 12px;gap:8px}.pv-phases-row .phase-card:hover,.pv-mphases-block .phase-card:hover{box-shadow:var(--shadow-bento)}.pv-mphases-block .phase-card--mphase{grid-template-columns:1fr;padding:14px 10px 12px;gap:8px}.pv-mphases-block .phase-card--mphase .phase-card__title{font-size:12px}.pv-mphases-block .phase-card--mphase .phase-card__accent{width:6px;height:22px}.pv-mphases-block .mphase-list__items--cards,.pv-mphases-block .mphase-list__add{padding:0}.pv-phases-row .phase-card__title{font-size:12px}.pv-phases-row .phase-card__field-label{font-size:9.5px}.pv-phases-row .phase-card__accent{width:6px;height:22px}.pv-mphases-block{display:flex;flex-direction:column;gap:8px}.pv-mphases-block__sep{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding:6px 0 0;border-top:1px dashed var(--color-border)}.pv-gantt{display:flex;flex-direction:column;flex:1}.pv-gantt__row{display:grid;grid-template-columns:70px 1fr;align-items:stretch}.pv-gantt__row--years,.pv-gantt__row--quarters{min-height:var(--cell-height, 32px);background-color:var(--lcr-brand-200);border-bottom:1px solid var(--lcr-brand-300);position:sticky;z-index:3}.pv-gantt__row--years{top:0}.pv-gantt__row--quarters{top:var(--cell-height, 32px)}.pv-gantt__row--years .pv-gantt__lane-label,.pv-gantt__row--quarters .pv-gantt__lane-label{background-color:var(--lcr-brand-200);border-right-color:var(--lcr-brand-300)}.pv-gantt__row--years .pv-gantt__lane-grid--header,.pv-gantt__row--quarters .pv-gantt__lane-grid--header{background-color:var(--lcr-brand-200)}.pv-gantt__row--years .pv-gantt__lane-grid--header{background-image:none!important}.pv-gantt__row--years .pv-gantt__cell{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--lcr-ink-800)}.pv-gantt__row--quarters .pv-gantt__cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--lcr-ink-800);border-left:1px solid var(--lcr-brand-300)}.pv-gantt__cell--year-start{border-left:1.5px solid var(--lcr-line-strong)!important}.pv-gantt__year-line{position:absolute;top:0;bottom:0;width:0;border-left:1.5px solid var(--lcr-line-strong);pointer-events:none;z-index:0}.pv-gantt__year-label{font-size:11px;font-weight:700;color:var(--lcr-ink-800)}.pv-gantt__q-label{font-size:11px;font-weight:600;color:var(--lcr-ink-800);letter-spacing:.04em;text-transform:uppercase}.pv-gantt__months{display:flex;justify-content:space-around;align-items:center;width:100%;font-size:10px;font-weight:600;color:var(--color-text-muted);letter-spacing:0;text-transform:none;gap:1px}.pv-gantt__months>span{line-height:1}.pv-gantt__row--lane{min-height:30px;border-bottom:1px solid var(--lcr-brand-300)}.pv-gantt__row--lane:last-child{border-bottom:1px solid var(--lcr-brand-400)}.pv-gantt__row--lane .pv-gantt__lane-grid{background-color:#fff}.pv-gantt__row--lane:hover .pv-gantt__lane-grid{background-color:var(--color-row-hover)}.pv-gantt__row--lane:hover .pv-gantt__lane-label{background:var(--color-row-hover)}.pv-gantt__lane-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding-right:8px;text-align:right;display:flex;align-items:center;justify-content:flex-end;background:#fff;border-right:1px solid var(--lcr-brand-300);position:sticky;left:0;z-index:2}.pv-gantt__lane-grid{display:grid;align-items:center;background:#fff;position:relative}.pv-gantt__lane-grid--double{height:36px}.pv-gantt__lane-grid--double .pv-gantt-bar--presales{align-self:start;margin-top:4px;height:13px}.pv-gantt__lane-grid--double .pv-gantt-bar--construction{align-self:end;margin-bottom:4px;height:13px}.pv-gantt-bar{height:22px;margin-top:3px;display:flex;align-items:center;padding:0 10px;border-radius:999px;font-size:10.5px;font-weight:700;cursor:pointer;border:1.5px solid;white-space:nowrap;overflow:hidden;z-index:1;line-height:1}.pv-gantt-bar:hover{filter:brightness(1.05)}.pv-gantt-bar__label{text-overflow:ellipsis;overflow:hidden}.pv-gantt-bar--presales{background:var(--gantt-presales-bg, #B5D47A);border-color:var(--gantt-presales-bg, #B5D47A);color:#1f2937}.pv-gantt-bar--fnf{background:var(--gantt-fnf-bg, #D9E8BE);border-color:var(--gantt-fnf-bg, #D9E8BE);color:#1f2937}.pv-gantt-bar--construction{background:var(--gantt-construction-bg, #9EC3E2);border-color:var(--gantt-construction-bg, #9EC3E2);color:#1f2937}.pv-gantt-bar--mphase{color:#1f2937}.pv-gantt__row--mphase{min-height:22px}.pv-gantt__row--mphase .pv-gantt__lane-grid{height:20px}.pv-gantt__row--mphase .pv-gantt-bar{height:16px;margin-top:2px}.pv-gantt__row--mphase .pv-gantt__lane-label{color:#1f2937}.col-lines .pv-gantt__lane-grid{background-image:linear-gradient(to right,var(--color-border) 1px,transparent 1px);background-size:calc(100% / var(--pv-units, 12)) 100%}.bld-dlg-backdrop{position:fixed;inset:0;background:#ffffff0a;backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);display:flex;align-items:flex-start;justify-content:center;z-index:90;padding:calc(var(--topbar-h, 56px) + 12px) 1rem .75rem;animation:dialog-backdrop-in .14s ease-out}.bld-dlg{background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border-radius:var(--radius-lg);border:var(--glass-elevated-border);box-shadow:var(--glass-elevated-shadow);width:100%;max-width:100%;height:min(820px,calc(100vh - var(--topbar-h, 56px) - 32px));max-height:calc(100vh - var(--topbar-h, 56px) - 32px);display:flex;flex-direction:column;overflow:hidden;animation:dialog-in .2s cubic-bezier(.2,.9,.3,1.2)}.bld-dlg__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--lcr-brand-200);background:linear-gradient(180deg,#ffffff 0%,var(--lcr-brand-50) 100%)}.bld-dlg__title-area{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;max-width:100%}.bld-dlg__title{font-family:var(--font);font-size:18px;font-weight:700;color:var(--color-text);letter-spacing:-.01em;white-space:nowrap;overflow:visible}.bld-dlg__header-actions{display:inline-flex;align-items:center;gap:8px}.bld-dlg__btn{height:32px;padding:0 14px;font-family:var(--font);font-size:12.5px;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.bld-dlg__btn--primary{background:var(--lcr-brand-800);color:#fff;border-color:var(--lcr-brand-800)}.bld-dlg__btn--primary:hover{background:var(--lcr-brand-900);border-color:var(--lcr-brand-900)}.bld-dlg__btn--icon{width:32px;padding:0;background:transparent;color:var(--color-text-secondary);font-size:18px;border-color:transparent}.bld-dlg__btn--icon:hover{background:var(--lcr-brand-100);color:var(--color-text)}.bld-dlg__body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:12px;gap:12px;background:var(--lcr-brand-50)}.bld-dlg__top{flex:0 0 auto;display:flex;gap:12px;min-height:0;max-height:100%;overflow:hidden;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:10px 12px}.bld-dlg__top:not(:last-child){max-height:55%}.bld-dlg__timeline-wrap{flex:1 1 auto;min-width:0;overflow:auto}.bld-dlg__timeline-wrap .pv-gantt{flex:0 0 auto}.bld-dlg__detail-pane{flex:0 0 380px;display:flex;flex-direction:column;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);overflow:hidden}.bld-dlg__pane-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--lcr-brand-200);background:#fff}.bld-dlg__pane-title{font-family:var(--font);font-size:13px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.bld-dlg__pane-close{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:50%;color:var(--color-text);font-size:18px;font-weight:600;line-height:1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.bld-dlg__pane-close:hover{background:#fde8e6;border-color:#f3b4ad;color:var(--color-danger)}.bld-dlg__pane-body{flex:1;overflow-y:auto;padding:12px}.bld-dlg__plan-section{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.bld-dlg__plan-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 14px;font-family:var(--font);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lcr-ink-800);background:linear-gradient(180deg,#ffffff 0%,var(--lcr-brand-50) 100%);border-bottom:1px solid var(--lcr-brand-200);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.bld-dlg__plan-body{flex:1;overflow:auto;padding:10px 12px}.bld-dlg__main{flex:1;min-width:0;overflow:auto;padding:12px 14px;position:relative}.bld-dlg__detail-pane{display:flex;flex-direction:column;gap:14px}.bld-dlg__back-to-timeline{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);border-radius:var(--radius-sm);cursor:pointer}.bld-dlg__back-to-timeline:hover{background:var(--lcr-brand-200)}.bld-dlg__header-controls{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.bld-dlg__header-controls .topbar__display-segmented{margin:0}.bld-dlg__side{width:300px;border-left:1px solid var(--lcr-brand-200);background:var(--lcr-brand-50);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.bld-dlg__side-list{display:flex;flex-direction:column;padding:10px 10px 8px;gap:4px;border-bottom:1px solid var(--lcr-brand-200);max-height:240px;overflow-y:auto}.bld-dlg__item{--item-color: var(--lcr-brand-700);--item-bg: var(--lcr-brand-100);display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 10px;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--color-text);background:#fff;border:1px solid var(--lcr-brand-200);border-left:3px solid var(--item-color);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.bld-dlg__item:hover{background:var(--item-bg);transform:translate(2px)}.bld-dlg__item--active{background:var(--item-bg);border-color:var(--item-color);border-left-width:4px;box-shadow:0 1px 3px #0000000f}.bld-dlg__item-dot{width:9px;height:9px;border-radius:999px;background:var(--item-color);flex-shrink:0}.bld-dlg__item-icon{color:var(--color-text-secondary);flex-shrink:0}.bld-dlg__item--active .bld-dlg__item-icon{color:var(--lcr-ink-800)}.bld-dlg__item-num{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:0 7px;font-size:11px;font-weight:700;background:var(--item-color);color:#fff;border-radius:999px;letter-spacing:.04em;flex-shrink:0}.bld-dlg__item-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text)}.bld-dlg__empty{font-size:12px;color:var(--color-text-secondary);font-style:italic;padding:6px 8px}.bld-dlg__side-detail{flex:1;overflow-y:auto;padding:14px 16px}.bld-dlg__detail-title{font-size:13px;font-weight:700;margin:0 0 10px;color:var(--color-text);text-transform:uppercase;letter-spacing:.04em}.bld-dlg__detail-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12.5px;border-bottom:1px dashed var(--lcr-brand-200)}.bld-dlg__detail-row:last-child{border-bottom:none}.bld-dlg__detail-lbl{color:var(--color-text-secondary);font-weight:500}.bld-dlg__detail-val{color:var(--color-text);font-weight:600;font-variant-numeric:tabular-nums}.bld-dlg__detail-sep{margin:12px 0;border:none;border-top:1px solid var(--lcr-brand-200)}.bld-dlg__detail-note{margin-top:10px;padding:10px 12px;font-size:12.5px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);color:var(--color-text);line-height:1.5}.bld-dlg__stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.bld-dlg__stat{display:flex;flex-direction:column;padding:8px 10px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.bld-dlg__stat-num{font-size:18px;font-weight:700;line-height:1.1;color:var(--color-text)}.bld-dlg__stat-lbl{margin-top:2px;font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.bld-dlg__stat--sold .bld-dlg__stat-num{color:#15803d}.bld-dlg__stat--reserved .bld-dlg__stat-num{color:#b45309}.bld-dlg__stat--free .bld-dlg__stat-num{color:#1d4ed8}@media(max-width:900px){.bld-dlg__top{flex-direction:column;max-height:none}.bld-dlg__detail-pane{flex:0 0 auto;max-height:40vh}}@media(max-width:767px){.bld-dlg-backdrop{padding:calc(var(--topbar-h, 130px) + 8px) .75rem .75rem;align-items:stretch;justify-content:stretch}.bld-dlg{width:100%;height:100%;max-height:100%;border-radius:var(--radius-lg);border:1px solid var(--lcr-brand-300);padding-bottom:env(safe-area-inset-bottom,0px)}.bld-dlg__header{flex-wrap:wrap;gap:8px;padding:8px 10px;row-gap:8px}.bld-dlg__title-area{order:1;flex:1 1 auto;min-width:0}.bld-dlg__title{font-size:14px}.bld-dlg__header-actions{order:2;flex:0 0 auto;gap:4px}.bld-dlg__header-controls{order:3;flex:1 1 100%;justify-content:space-between;gap:6px}.bld-dlg__btn--primary{height:30px;padding:0 10px;font-size:12px;white-space:nowrap}.bld-dlg__btn--icon{height:30px;width:30px;font-size:20px}.bld-dlg__body{padding:8px;gap:8px;overflow:auto}.bld-dlg__top{padding:8px;min-height:180px;gap:8px;flex:0 0 auto;max-height:none;overflow:visible}.bld-dlg__top:not(:last-child){max-height:none}.bld-dlg__plan-section{flex:0 0 auto;overflow:visible}.bld-dlg__plan-body{padding:8px;overflow:visible}.bld-dlg__plan-header{padding:6px 8px 6px 12px;font-size:10.5px}.bld-dlg__detail-pane{max-height:50vh}.bld-dlg__header-controls .topbar__bar-cat-btn .topbar__bar-cat-dot,.bld-dlg__header-controls .topbar__bar-cat-btn span:not(.topbar__bar-cat-dot){display:inline-block}.bld-dlg__header-controls .topbar__bar-cat-btn{padding:0 10px}.bld-dlg__header-controls .topbar__display-segmented-full{display:none}.bld-dlg__header-controls .topbar__display-segmented-short{display:inline}.bld-dlg__stats{grid-template-columns:1fr 1fr;gap:6px}.bld-dlg__stat{padding:6px 8px}.bld-dlg__stat-num{font-size:16px}}@media(max-width:480px){.bld-dlg__btn--primary{font-size:0;padding:0;width:30px}.bld-dlg__btn--primary:before{content:"✎";font-size:16px}}.dialog-backdrop{position:fixed;inset:0;background:#28303e42;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:24px;animation:dialog-backdrop-in .14s ease-out}@keyframes dialog-backdrop-in{0%{opacity:0}to{opacity:1}}.dialog{background:var(--glass-elevated-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border-radius:var(--radius-lg);box-shadow:var(--glass-elevated-shadow);border:var(--glass-elevated-border);min-width:320px;max-width:480px;width:100%;animation:dialog-in .18s cubic-bezier(.2,.9,.3,1.2);overflow:hidden;max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.dialog.dialog--huge{max-width:96vw;width:96vw;height:94vh;max-height:94vh;min-width:0;display:flex;flex-direction:column}.dialog.dialog--huge .dialog__title{padding:20px 28px 14px;font-size:20px;border-bottom:1px solid var(--lcr-brand-200);flex-shrink:0}.dialog.dialog--huge .dialog__body{flex:1;min-height:0;overflow:hidden;padding:18px 28px;color:var(--color-text);font-size:13px;display:flex;flex-direction:column}.dialog.dialog--huge .dialog__actions{flex-shrink:0}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog__title{padding:18px 22px 8px;font-family:var(--font);font-size:16px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.dialog--danger .dialog__title{color:var(--color-danger)}.dialog__title--dismissible{display:flex;align-items:center;gap:12px;padding-right:12px}.dialog__title--dismissible>span{flex:1;min-width:0}.dialog__close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.dialog__close:hover{background:var(--lcr-brand-100);color:var(--color-text)}.dialog__close:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:2px}.dialog__body{padding:4px 22px 18px;font-family:var(--font);font-size:13.5px;color:var(--color-text-secondary);line-height:1.5;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.dialog__body::-webkit-scrollbar{width:6px}.dialog__body::-webkit-scrollbar-track{background:transparent}.dialog__body::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:3px}.dialog__title{flex-shrink:0}.dialog__actions{padding:12px 18px;background:#ffffff47;border-top:1px solid rgba(255,255,255,.5);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.dialog__btn{height:34px;padding:0 18px;font-family:var(--font);font-size:13px;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.dialog__btn--ghost{background:var(--glass-btn-secondary-bg);color:var(--color-text-secondary);border:var(--glass-btn-secondary-border);box-shadow:var(--glass-btn-secondary-shadow)}.dialog__btn--ghost:hover{background:var(--glass-btn-secondary-bg-hover);color:var(--color-text)}.dialog__btn--primary{background:var(--glass-btn-primary-bg);color:#fff;border:var(--glass-btn-primary-border);box-shadow:var(--glass-btn-primary-shadow)}.dialog__btn--primary:hover{background:var(--glass-btn-primary-bg-hover);box-shadow:var(--glass-btn-primary-shadow-hover);transform:translateY(-1px)}.dialog__btn--primary:active{transform:translateY(0)}.dialog__btn--danger{background:var(--glass-btn-danger-bg);color:#fff;border:var(--glass-btn-danger-border);box-shadow:var(--glass-btn-danger-shadow)}.dialog__btn--danger:hover{background:var(--glass-btn-danger-bg-hover);transform:translateY(-1px)}.dialog__btn--danger:active{transform:translateY(0)}.dropdown{position:relative;display:inline-flex;font-family:var(--font)}.dropdown__trigger{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px 0 12px;background:var(--glass-btn-secondary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);border:var(--glass-btn-secondary-border);box-shadow:var(--glass-btn-secondary-shadow);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font);font-size:12.5px;font-weight:500;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.dropdown--sm .dropdown__trigger{height:28px;font-size:12px;padding:0 8px 0 10px}.dropdown__trigger:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.dropdown__trigger:disabled{opacity:.55;cursor:not-allowed}.dropdown--open .dropdown__trigger{background:var(--glass-btn-secondary-bg-hover);box-shadow:var(--glass-btn-secondary-shadow),var(--glass-input-focus-ring)}.dropdown__prefix{color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;margin-right:2px}.dropdown__value{font-weight:600;white-space:nowrap}.dropdown__caret{color:var(--color-text-secondary);transition:transform var(--transition-fast)}.dropdown--open .dropdown__caret{transform:rotate(180deg)}.dropdown__menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:280px;overflow-y:auto;background:var(--glass-pop-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-md);box-shadow:var(--glass-elevated-shadow);padding:4px;z-index:var(--z-popover, 2000);animation:dropdown-in .14s ease-out}.dropdown__menu--portal{position:fixed;top:0;left:0;z-index:var(--z-modal, 1000)}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown__option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:7px 12px;background:transparent;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;color:var(--color-text);cursor:pointer;text-align:left;white-space:nowrap}.dropdown__option:hover{background:var(--lcr-brand-100)}.dropdown__option--selected{background:var(--lcr-brand-100);color:var(--lcr-brand-900);font-weight:600}.dropdown__option--selected:after{content:"✓";color:var(--lcr-ink-700);font-weight:700}.dropdown__option-label{flex:1}.dropdown__option-hint{color:var(--color-text-secondary);font-size:11.5px}.dropdown__empty{padding:12px;font-size:12.5px;color:var(--color-text-secondary);text-align:center;font-style:italic}.mapeditor__mode-toggle{display:inline-flex;align-items:stretch;height:28px;padding:2px;gap:2px;background:var(--glass-track-bg);border:var(--glass-track-border);border-radius:var(--radius-full);box-shadow:var(--glass-track-shadow);backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop);flex-shrink:0}.mapeditor__mode-btn{display:inline-flex;align-items:center;padding:0 12px;background:transparent;border:none;border-radius:var(--radius-full);font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);line-height:1}.mapeditor__mode-btn:hover{color:var(--lcr-brand-900)}.mapeditor__mode-btn--active{background:var(--glass-pill-bg);color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.mapeditor__section{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 14px;border-radius:var(--radius-md);position:relative}.mapeditor__section--auto{background:linear-gradient(180deg,#a855f714,#a855f70a);border:1px solid rgba(168,85,247,.25)}.mapeditor__section--manual{background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200)}.mapeditor__section-label{font-family:var(--font);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);padding:0 4px;-webkit-user-select:none;user-select:none}.mapeditor__section--auto .mapeditor__section-label{color:#7e22ce}.mapeditor__section--auto .dropdown__trigger{box-shadow:0 1px 2px #0f203c14}.mapeditor__section--manual .mapeditor__section-label{color:var(--lcr-ink-800)}.admin-page{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;overflow:hidden;padding:18px 24px;font-family:var(--font);color:var(--color-text);background:var(--lcr-brand-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-bento)}.no-access{margin:auto;max-width:420px;padding:32px;text-align:center;font-family:var(--font);color:var(--color-text-secondary)}.no-access h2{font-size:18px;color:var(--color-text);margin:0 0 8px}.no-access p{font-size:13px;margin:0}.admin-page__title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:767px){.admin-page{padding:12px}}.users-dialog,.events-dialog{display:flex;flex-direction:column;gap:14px;width:100%;height:100%;min-width:0;font-family:var(--font);font-size:13px;color:var(--color-text)}.users-dialog__toolbar,.events-dialog__filters{display:flex;align-items:center;gap:10px;flex-shrink:0}.users-dialog__search{position:relative;flex:1;max-width:360px;display:flex;align-items:center}.users-dialog__search svg{position:absolute;left:10px;color:var(--lcr-ink-700);pointer-events:none}.users-dialog__search input{width:100%;height:36px;padding:0 12px 0 32px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px}.users-dialog__search input:focus-visible{outline:2px solid var(--lcr-brand-500);outline-offset:1px;border-color:var(--lcr-brand-500)}.users-dialog__count,.events-dialog__count{font-size:12px;font-weight:600;color:var(--color-text-secondary);margin-right:auto;display:inline-flex;align-items:center;gap:8px}.users-dialog__count-sub,.events-dialog__count-sub{font-weight:500;color:var(--color-text-tertiary)}.events-dialog__count-sub--err{color:var(--color-danger)}.users-dialog__add-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;background:var(--lcr-brand-800);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.users-dialog__add-btn:hover,.users-dialog__add-btn[aria-expanded=true]{background:var(--lcr-brand-900)}.events-dialog__filters>.dropdown{min-width:160px}.events-dialog__filters>.dropdown .dropdown__trigger{width:100%;height:36px}.users-dialog__add{display:grid;grid-template-columns:1.6fr 1.2fr 1fr auto;gap:10px;align-items:end;padding:14px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);flex-shrink:0}.users-dialog__field{display:flex;flex-direction:column;gap:4px}.users-dialog__field span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.users-dialog__field input,.users-dialog__field select{height:36px;padding:0 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;color:var(--color-text)}.users-dialog__field input:focus-visible,.users-dialog__field select:focus-visible{outline:2px solid var(--lcr-brand-500);outline-offset:1px;border-color:var(--lcr-brand-500)}.users-dialog__add-actions{display:inline-flex;gap:6px}.users-dialog__btn{height:36px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.users-dialog__btn--primary{background:var(--lcr-brand-800);color:#fff}.users-dialog__btn--primary:hover{background:var(--lcr-brand-900)}.users-dialog__btn--primary:disabled{opacity:.5;cursor:not-allowed}.users-dialog__btn--ghost{background:#fff;color:var(--color-text);border-color:var(--color-border)}.users-dialog__btn--ghost:hover{background:var(--lcr-brand-100)}.users-dialog__btn--ghost:disabled{opacity:.5;cursor:not-allowed}.users-dialog__error,.events-dialog__error{padding:10px 14px;background:#c4392e14;border:1px solid rgba(196,57,46,.25);border-radius:var(--radius-sm);color:var(--color-danger);font-size:12.5px;font-weight:500;flex-shrink:0}.users-dialog__empty,.events-dialog__empty{padding:32px;text-align:center;color:var(--color-text-secondary);font-size:13px}.users-dialog__head,.users-dialog__card{display:grid;grid-template-columns:2.2fr 1fr 1fr .9fr 110px;gap:12px;align-items:center}.users-dialog__head{padding:8px 14px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);flex-shrink:0}.users-dialog__head-cell--actions{text-align:right}.users-dialog__list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:2px;margin:-2px}.users-dialog__card{padding:12px 14px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.users-dialog__card:hover{border-color:var(--lcr-brand-400);box-shadow:var(--shadow-sm)}.users-dialog__card--editing{border-color:var(--lcr-brand-700);box-shadow:0 0 0 3px var(--lcr-brand-200)}.users-dialog__card--inactive{background:var(--lcr-brand-50);opacity:.65}.users-dialog__cell{min-width:0}.users-dialog__cell--user{display:flex;align-items:center;gap:12px}.users-dialog__cell--muted{color:var(--color-text-secondary);font-size:12px}.users-dialog__cell--actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.users-dialog__avatar{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;font-weight:700;color:#fff;background:var(--lcr-brand-700);letter-spacing:.02em}.users-dialog__avatar--admin{background:linear-gradient(135deg,var(--lcr-secondary-700),var(--lcr-secondary-800))}.users-dialog__user-text{display:flex;flex-direction:column;gap:2px;min-width:0}.users-dialog__name{font-size:13px;font-weight:600;color:var(--color-text);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.users-dialog__self{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:1px 6px;border-radius:999px;background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.users-dialog__email{font-size:11.5px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.users-dialog__pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.01em;background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.users-dialog__pill--admin{background:var(--lcr-secondary-300);color:var(--lcr-secondary-800)}.users-dialog__pill--active{background:var(--color-success-bg);color:var(--color-success)}.users-dialog__pill--inactive{background:var(--lcr-brand-100);color:var(--color-text-tertiary)}.users-dialog__inline-input{width:100%;height:32px;padding:0 10px;background:#fff;border:1px solid var(--lcr-brand-500);border-radius:var(--radius-sm);font-size:13px;color:var(--color-text)}.users-dialog__inline-input:focus-visible{outline:2px solid var(--lcr-brand-500);outline-offset:1px}.users-dialog__switch-row{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.users-dialog__switch-label{font-size:12px;font-weight:600;color:var(--color-text)}.users-dialog__cell>.dropdown{width:100%}.users-dialog__cell>.dropdown .dropdown__trigger{width:100%}.users-dialog__icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.users-dialog__icon-btn:hover{background:var(--lcr-brand-100);border-color:var(--lcr-brand-500)}.users-dialog__icon-btn:disabled{opacity:.4;cursor:not-allowed}.users-dialog__icon-btn--danger{color:var(--color-danger)}.users-dialog__icon-btn--danger:hover:not(:disabled){background:#c4392e14;border-color:var(--color-danger)}.users-dialog__icon-btn--save{background:var(--color-success);border-color:var(--color-success);color:#fff}.users-dialog__icon-btn--save:hover:not(:disabled){background:#1f6b3d;border-color:#1f6b3d}.users-dialog__icon-btn--cancel{color:var(--color-text-tertiary)}.users-dialog__icon-btn--warn{color:var(--color-warning-text)}.users-dialog__icon-btn--warn:hover:not(:disabled){background:var(--color-warning-bg);border-color:var(--color-warning)}.users-dialog__toolbar>.dropdown{min-width:150px}.users-dialog__toolbar>.dropdown .dropdown__trigger{width:100%;height:36px}.admin-tabs{display:inline-flex;align-self:flex-start;gap:4px;padding:4px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);flex-shrink:0}.admin-tabs__tab{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:13px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.admin-tabs__tab:hover{background:var(--lcr-brand-100);color:var(--color-text)}.admin-tabs__tab--active,.admin-tabs__tab--active:hover{background:var(--lcr-brand-800);color:#fff}.admin-tabs__count{min-width:20px;padding:1px 6px;border-radius:999px;font-size:11px;background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.admin-tabs__tab--active .admin-tabs__count{background:#fff3;color:#fff}.roles-list__head,.roles-list__row{display:grid;grid-template-columns:2fr 2fr 110px 76px;gap:12px;align-items:center}.roles-list__head{padding:8px 14px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);flex-shrink:0}.roles-list__row{padding:12px 14px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.roles-list__row:hover{border-color:var(--lcr-brand-400);box-shadow:var(--shadow-sm)}.roles-list__row:focus-visible{outline:2px solid var(--lcr-brand-500);outline-offset:1px}.roles-list__name{display:flex;flex-direction:column;gap:2px;min-width:0}.roles-list__name .users-dialog__email{white-space:normal}.roles-list__perms{font-size:12.5px;color:var(--color-text);min-width:0}.dialog.dialog--role{max-width:min(760px,96vw);width:760px}.dialog.dialog--role .dialog__body{overflow-y:auto}.role-editor{display:flex;flex-direction:column;gap:14px;font-family:var(--font)}.role-editor__note{padding:10px 14px;background:var(--lcr-secondary-100);border:1px solid var(--lcr-secondary-300);border-radius:var(--radius-sm);font-size:12.5px;color:var(--lcr-secondary-800)}.role-editor__fields{display:grid;grid-template-columns:1fr 2fr;gap:10px}.role-editor__fields input:disabled{background:var(--lcr-brand-50);color:var(--color-text-secondary)}.role-editor__groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-editor__group{margin:0;padding:12px 14px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);min-width:0}.role-editor__group-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.role-editor__legend{padding:0;margin-bottom:6px;float:left;width:100%}.role-editor__actions{display:flex;flex-direction:column;gap:8px;clear:both}.role-editor__actions--indented{margin:10px 0 0 7px;padding-left:18px;border-left:2px solid var(--lcr-brand-100)}.role-editor__check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.role-editor__check input{flex-shrink:0;width:16px;height:16px;margin:2px 0 0;accent-color:var(--lcr-brand-800);cursor:inherit}.role-editor__check:has(input:disabled){cursor:default}.role-editor__check-text{display:flex;flex-direction:column;gap:2px;min-width:0}.role-editor__check-label{font-size:13px;font-weight:600;color:var(--color-text)}.role-editor__check--head .role-editor__check-label{font-size:13.5px}.role-editor__hint{font-size:11.5px;color:var(--color-text-secondary);line-height:1.35}@media(max-width:767px){.role-editor__fields,.role-editor__groups{grid-template-columns:1fr}.roles-list__head{display:none}.roles-list__row{grid-template-columns:1fr auto}.roles-list__perms{grid-column:1 / -1;grid-row:2}}.events-dialog__head,.events-dialog__row{display:grid;grid-template-columns:170px 220px 150px 1fr;gap:14px;align-items:center}.events-dialog__head{padding:8px 14px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);flex-shrink:0}.events-dialog__list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:2px;margin:-2px}.events-dialog__row{padding:10px 14px;background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);align-items:start}.events-dialog__row:hover{border-color:var(--lcr-brand-400);box-shadow:var(--shadow-xs)}.events-dialog__row--fail{background:#c4392e0a;border-color:#c4392e4d}.events-dialog__row--expanded{border-color:var(--lcr-brand-700);box-shadow:0 0 0 3px var(--lcr-brand-200)}.events-dialog__cell{min-width:0;font-size:12.5px}.events-dialog__cell--ts{font-family:var(--font-mono, ui-monospace, monospace);font-size:11.5px;color:var(--color-text-secondary);white-space:nowrap}.events-dialog__cell--user{display:inline-flex;align-items:center;gap:8px;min-width:0}.events-dialog__cell--action{display:inline-flex;align-items:center;gap:8px}.events-dialog__cell--entity{display:flex;flex-direction:column;gap:2px;min-width:0}.events-dialog__cell--details{min-width:0}.events-dialog__avatar{width:26px;height:26px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--lcr-brand-700);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.02em}.events-dialog__user-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.events-dialog__pill{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.events-dialog__pill--create{background:#dcfce7;color:#166534}.events-dialog__pill--update{background:#dbeafe;color:#1e3a8a}.events-dialog__pill--delete{background:#fee2e2;color:#991b1b}.events-dialog__pill--login{background:var(--lcr-brand-200);color:var(--lcr-brand-900)}.events-dialog__pill--logout{background:var(--lcr-brand-100);color:var(--color-text-tertiary)}.events-dialog__pill--error{background:#fee2e2;color:#991b1b}.events-dialog__fail-dot{width:8px;height:8px;border-radius:50%;background:var(--color-danger)}.events-dialog__entity{font-weight:600;color:var(--color-text);text-transform:capitalize}.events-dialog__entity-id{font-family:var(--font-mono, ui-monospace, monospace);font-size:10.5px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.events-dialog__summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--color-text-secondary);line-height:1.4}.events-dialog__row--expanded .events-dialog__summary{display:none}.events-dialog__json{margin:4px 0 0;padding:10px 12px;background:var(--lcr-brand-50);border:1px solid var(--lcr-brand-200);border-radius:var(--radius-sm);font-family:var(--font-mono, ui-monospace, monospace);font-size:11.5px;line-height:1.5;color:var(--color-text);white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto}.events-dialog__pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.events-dialog__pageinfo{font-size:12px;color:var(--color-text-secondary)}@media(max-width:900px){.users-dialog__add{grid-template-columns:1fr}.users-dialog__add-actions{justify-content:flex-end}.users-dialog__head{display:none}.users-dialog__card{grid-template-columns:1fr;gap:8px}.users-dialog__cell--actions{justify-content:flex-start}.events-dialog__head{display:none}.events-dialog__row{grid-template-columns:1fr;gap:6px}}.grid-body--kpi{--kpi-col-min: 94px;min-width:calc(var(--col-name) + var(--col-sales-bar) + var(--kpi-count, 11) * var(--kpi-col-min))}.grid-body--kpi .row{width:100%}.grid-body--kpi .col-scroll{flex:1;min-width:0;grid-template-columns:var(--col-sales-bar) repeat(var(--kpi-count, 11),minmax(var(--kpi-col-min, 92px),1fr))}.grid-body--kpi .col-scroll .cell--sales-bar{position:sticky;left:var(--col-name);z-index:2;background:#fff}.grid-body--kpi .row--header .col-scroll .cell--sales-bar{background:var(--lcr-brand-100);z-index:3}.grid-body--kpi .row--group .col-scroll .cell--sales-bar{background:var(--color-group-bg, var(--lcr-brand-50))}.grid-body--kpi .cell--quarter{background-image:none!important}.grid-body--kpi .col-scroll .cell--quarter{border-right:1px solid var(--lcr-brand-200, #e2e8f0)}.grid-body--kpi .col-scroll .cell--quarter:last-child{border-right:none}.grid-body--kpi.col-lines .col-scroll .cell--quarter{border-right:1px solid var(--lcr-brand-200, #e2e8f0)}.cell--kpi-header{background:var(--lcr-brand-100);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--lcr-ink-800);justify-content:center;text-align:center;border-right:1px solid var(--lcr-brand-300);gap:6px;height:56px;padding:6px 10px}.cell--kpi-header__label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;flex:1 1 auto;line-height:1.15}.cell--kpi-header__code{font-size:12px;font-weight:700}.cell--kpi-header__name{font-size:9.5px;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--lcr-ink-700, #475569);white-space:normal;word-break:break-word;max-width:100%}.kpi-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--lcr-ink-700, #475569);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease;flex-shrink:0}.kpi-filter-btn:hover{background:var(--lcr-brand-200, #e2e8f0);color:var(--lcr-brand-900, #1e293b)}.kpi-filter-btn--active{background:var(--lcr-brand-500, #6B7B88);border-color:var(--lcr-brand-500, #6B7B88);color:#fff}.kpi-filter-btn--active:hover{background:var(--lcr-brand-700, #475569);border-color:var(--lcr-ink-700, #475569);color:#fff}.kpi-filter-btn:focus-visible{outline:2px solid var(--lcr-brand-500, #6B7B88);outline-offset:1px}.kpi-filter-popover{position:fixed;z-index:100;width:240px;max-height:min(60vh,420px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--lcr-brand-300, #cbd5e1);border-radius:8px;box-shadow:0 12px 32px #0f172a2e,0 2px 6px #0f172a14;font-family:Karbon,Inter,sans-serif;font-size:13px;color:var(--color-text, #1e293b);overflow:hidden;text-transform:none;letter-spacing:0}.kpi-filter-popover__head{position:relative;padding:8px 10px;border-bottom:1px solid var(--lcr-brand-200, #e2e8f0);display:flex;align-items:center;gap:6px}.kpi-filter-popover__search-icon{color:#94a3b8;flex-shrink:0}.kpi-filter-popover__search{flex:1;height:28px;padding:0 6px;border:1px solid var(--lcr-brand-300, #cbd5e1);border-radius:5px;background:#fff;font-size:13px;font-family:inherit;color:inherit}.kpi-filter-popover__search:focus{outline:none;border-color:var(--lcr-brand-500, #6B7B88);box-shadow:0 0 0 2px #6b7b882e}.kpi-filter-popover__actions{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--lcr-brand-200, #e2e8f0);font-size:12px}.kpi-filter-popover__action{background:none;border:none;padding:2px 4px;color:var(--lcr-ink-700, #475569);cursor:pointer;font:inherit;font-size:12px;border-radius:3px}.kpi-filter-popover__action:hover{background:var(--lcr-brand-100, #f1f5f9);color:var(--lcr-brand-900, #1e293b)}.kpi-filter-popover__action-sep{color:#cbd5e1}.kpi-filter-popover__list{flex:1;overflow-y:auto;padding:4px 0}.kpi-filter-popover__item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.kpi-filter-popover__item:hover{background:var(--lcr-brand-50, #f8fafc)}.kpi-filter-popover__item input[type=checkbox]{margin:0;cursor:pointer;flex-shrink:0}.kpi-filter-popover__label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-filter-popover__only{visibility:hidden;background:none;border:1px solid var(--lcr-brand-300, #cbd5e1);border-radius:3px;padding:1px 6px;font-size:11px;color:var(--lcr-ink-700, #475569);cursor:pointer;font-family:inherit}.kpi-filter-popover__item:hover .kpi-filter-popover__only{visibility:visible}.kpi-filter-popover__only:hover{background:var(--lcr-brand-500, #6B7B88);border-color:var(--lcr-brand-500, #6B7B88);color:#fff}.kpi-filter-popover__empty{padding:14px 10px;text-align:center;font-size:12px;color:#94a3b8}.kpi-filter-popover__foot{display:flex;justify-content:flex-end;padding:6px 8px;border-top:1px solid var(--lcr-brand-200, #e2e8f0);background:var(--lcr-brand-50, #f8fafc)}.kpi-filter-popover__close{padding:4px 10px;font-size:12px;font-weight:600;background:var(--lcr-brand-500, #6B7B88);color:#fff;border:1px solid var(--lcr-brand-500, #6B7B88);border-radius:4px;cursor:pointer;font-family:inherit}.kpi-filter-popover__close:hover{background:var(--lcr-brand-700, #475569);border-color:var(--lcr-ink-700, #475569)}.kpi-cell{justify-content:flex-end;padding:0 12px;font-size:13px;color:#475569;text-align:right;cursor:default}.kpi-placeholder{color:var(--lcr-ink-700)}.kpi-value{color:var(--color-text, #1e293b);font-weight:500}.kpi-phase-cell{justify-content:center;padding:0;cursor:pointer;transition:background-color .12s ease;background-color:var(--kpi-fill, white)}.kpi-phase-cell:focus-visible{outline:2px solid var(--lcr-brand-500, #6B7B88);outline-offset:-2px}.kpi-phase-cell--active{--kpi-fill: var(--color-success);--kpi-fill-hover: color-mix(in srgb, var(--color-success) 86%, #000)}.kpi-phase-cell--completed{--kpi-fill: var(--lcr-brand-500);--kpi-fill-hover: color-mix(in srgb, var(--lcr-brand-500) 78%, var(--lcr-brand-600))}.kpi-phase-cell--planned{--kpi-fill: var(--lcr-brand-50);--kpi-fill-hover: var(--lcr-brand-200);outline:1.5px dashed var(--lcr-brand-600);outline-offset:-4px}.project-row:hover .kpi-phase-cell{background-color:var(--kpi-fill, var(--color-row-hover, #f8fafc))}.project-row .kpi-phase-cell:hover{background-color:var(--kpi-fill-hover, var(--color-row-hover, #f8fafc))}.grid-body--kpi .building-box .project-row .kpi-phase-cell{background-color:var(--kpi-fill, #ffffff)}.grid-body--kpi .building-box .project-row:hover .kpi-phase-cell{background-color:var(--kpi-fill, rgba(255, 255, 255, .34))}.grid-body--kpi .building-box .project-row .kpi-phase-cell:hover{background-color:var(--kpi-fill-hover, rgba(255, 255, 255, .34))}.grid-body--kpi .building-box .project-row .col-scroll .kpi-phase-cell:last-child{border-top-right-radius:11px;border-bottom-right-radius:11px}.kpi-phase-cell--expanded{box-shadow:inset 0 -1px 0 0 var(--lcr-brand-300, #ECEEF1)}.kpi-phase-badge{display:flex;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:700;line-height:1;width:100%;height:100%;padding:0 4px;box-sizing:border-box;white-space:nowrap;overflow:hidden}.kpi-phase-badge svg{flex-shrink:0}.kpi-phase-badge--active{color:#fff}.kpi-phase-badge--completed{color:var(--color-text-muted, #3D4A54)}.kpi-phase-badge--completed .kpi-phase-badge__tick{color:color-mix(in srgb,var(--color-success) 80%,#000)}.kpi-phase-badge--planned{color:var(--lcr-ink-700)}.kpi-phase-badge__dates{display:inline-flex;align-items:center;gap:1px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi-phase-badge__sep{opacity:.7;font-weight:500}.kpi-param-row{background:var(--lcr-brand-50, #f8fafc)}.kpi-param-row .col-frozen{z-index:2}.kpi-param-row .cell{background:var(--lcr-brand-50, #f8fafc);border-right-color:var(--lcr-brand-400, #C3CDD5)}.kpi-param-row__label{font-weight:600;font-size:12px;color:var(--color-text, #0f172a);padding-left:12px;text-transform:none;letter-spacing:0;justify-content:flex-start}.grid-body--kpi .kpi-param-row .col-scroll .cell--sales-bar{background:var(--lcr-brand-50, #f8fafc)}.kpi-param-row__spacer{background:var(--lcr-brand-50, #f8fafc)!important}.kpi-param-cell{font-size:12px;font-weight:500;justify-content:center;text-align:center;cursor:default;color:var(--color-text, #0f172a)}.kpi-param-row:last-of-type{position:relative}.kpi-param-row:last-of-type:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lcr-brand-500, #6B7B88);z-index:10;pointer-events:none}.kpi-board{display:flex;flex-direction:row;flex:1;min-height:0;min-width:0;height:100%;overflow:hidden}.kpi-board__scroll{flex:1 1 auto;min-width:0;overflow:auto}.kpi-board__body,.kpi-board__body .row{width:100%}.kpi-board__body .col-scroll{flex:1;min-width:0}.kpi-board__body .col-frozen{display:flex;width:calc(var(--col-name) + var(--col-sales-bar))}.kpi-board__body .col-frozen .cell--name{flex:0 0 var(--col-name);width:var(--col-name)}.kpi-board__body .col-frozen .cell--sales-bar{flex:0 0 var(--col-sales-bar);width:var(--col-sales-bar)}.kpi-board__body .building-box{border:none;outline:1px solid rgba(15,23,42,.06);outline-offset:-1px}.kpi-board__body .building-box .project-row:first-child .col-scroll .cell:last-child{border-top-right-radius:var(--bx-radius)}.kpi-board__body .building-box .project-row:last-child .col-scroll .cell:last-child{border-bottom-right-radius:var(--bx-radius)}.kpi-board__body .row--header .col-scroll .cell:last-child{border-top-right-radius:12px}.grid-body--kpi .row--group .col-scroll .cell--sales-bar,.kpi-board__body .row--group .col-scroll .cell--sales-bar{background:color-mix(in srgb,var(--lcr-brand-400) 75%,#ffffff)!important;opacity:1!important}.kpi-board__body .col-scroll .cell--quarter{border-right:1px solid var(--lcr-brand-200, #e2e8f0)}.kpi-board__body .col-scroll .cell--quarter:last-child{border-right:none}.kpi-board__cell{font-size:13px;color:var(--lcr-brand-900);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;justify-content:flex-end;text-align:right;padding:0 8px;min-width:0}.kpi-board__cell--num{justify-content:flex-end;font-variant-numeric:tabular-nums}.kpi-board__cell--empty{color:var(--lcr-ink-700, #5C6B78);justify-content:center}.kpi-board__cell--faza{justify-content:center;text-align:center;padding:0 4px}.kpi-board__faza-header{-webkit-user-select:none;user-select:none}.kpi-board__faza-header:hover{background:var(--lcr-brand-200)}.kpi-board__faza-toggle{display:inline-block;margin-left:6px;font-size:10px;font-weight:500;color:var(--lcr-ink-700);opacity:.7}.kpi-board__faza-header:hover .kpi-board__faza-toggle{opacity:1}.kpi-board__body .cell--kpi-header{min-width:0;padding:6px;height:64px}.kpi-board__body .row--header .col-scroll .cell:not(:last-child){border-right:1px solid var(--lcr-brand-300)}.kpi-board__body .cell--kpi-header__name{font-size:11px;line-height:1.2;white-space:normal;word-break:break-word;text-align:center}.kpi-board__body .cell--kpi-header__code{font-size:12px}.kpi-board__body .cell--kpi-header:not(.kpi-board__faza-header){justify-content:flex-end;text-align:right}.kpi-board__body .cell--kpi-header:not(.kpi-board__faza-header) .cell--kpi-header__label{align-items:flex-end}.kpi-board__body .cell--kpi-header:not(.kpi-board__faza-header) .cell--kpi-header__name{text-align:right}.kpi-board__name-cell{cursor:pointer}.kpi-board__name-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-board__faza{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.02em;background:var(--lcr-brand-100);color:var(--lcr-ink-700);white-space:nowrap;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis}.kpi-board__faza--empty{background:transparent;color:var(--lcr-ink-700, #5C6B78);font-style:italic;font-weight:500;letter-spacing:normal;padding:0}.kpi-board__faza--fallback{opacity:.65}.kpi-board__empty{padding:40px 16px;text-align:center;color:var(--lcr-ink-700, #5C6B78);font-size:13px}.kpi-board__pane{flex:0 0 420px;display:flex;flex-direction:column;min-height:0;margin:0 12px;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden}.kpi-board__pane-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border, var(--lcr-brand-300));gap:12px}.kpi-board__pane-title{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-board__pane-close{width:28px;height:28px;border-radius:50%;border:none;background:var(--lcr-brand-100);font-size:18px;cursor:pointer;flex-shrink:0}.kpi-board__pane-close:hover{background:var(--lcr-brand-200)}.kpi-board__pane-body{flex:1;overflow:auto;padding:14px 18px;display:flex;flex-direction:column;min-height:0}.app-tooltip{position:fixed;z-index:10000;max-width:280px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--lcr-brand-900);color:#fff;font-family:var(--font);font-size:12px;font-weight:500;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:break-word;box-shadow:var(--shadow-lg);pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease}.app-tooltip--ready{opacity:1;transform:translateY(0)}.app-tooltip:after{content:"";position:absolute;left:var(--app-tooltip-arrow-x, 50%);width:0;height:0;border:5px solid transparent;transform:translate(-50%)}.app-tooltip--top:after{top:100%;border-top-color:var(--lcr-brand-900)}.app-tooltip--bottom:after{bottom:100%;border-bottom-color:var(--lcr-brand-900)}.cv{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font);color:var(--color-text);background:var(--lcr-brand-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-bento)}.cv__top{flex-shrink:0;z-index:2;padding:18px 26px 14px;background:#fff;border-bottom:1px solid var(--color-border);box-shadow:0 2px 6px -2px #141e2d1a}.cv__top>:last-child{margin-bottom:0}.cv__top .cv__filters{margin-bottom:0}.cv__body{flex:1;min-height:0;display:flex;overflow:hidden}.cv__scroll{flex:1;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 26px 32px}.cv__scroll{scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.cv__scroll::-webkit-scrollbar{width:8px;height:8px}.cv__scroll::-webkit-scrollbar-track{background:transparent}.cv__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.cv__scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.cv__header{display:flex;align-items:center;gap:16px;margin-bottom:4px}.cv__headtools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.cv__header .cv__add-btn{margin-left:auto}.cv__search--header{width:clamp(220px,24vw,360px)}.cv__title{font-size:26px;font-weight:700;letter-spacing:-.01em}.cv__subtitle{margin-top:2px;font-size:13px;color:var(--color-text-muted)}.cv__add-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:var(--glass-btn-primary-border);border-radius:var(--radius-full);background:var(--glass-btn-primary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);color:#fff;font-family:var(--font);font-size:14.5px;font-weight:700;cursor:pointer;box-shadow:var(--glass-btn-primary-shadow);transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.cv__add-btn svg{width:16px;height:16px}.cv__add-btn:hover{background:var(--glass-btn-primary-bg-hover);box-shadow:var(--glass-btn-primary-shadow-hover);transform:translateY(-1px)}.cv__add-btn:active{transform:scale(.97)}.cv__summary{display:flex;gap:18px;margin:14px 0 18px;flex-wrap:wrap}.cv__stat{font-size:13px;color:var(--color-text-muted)}.cv__stat strong{font-size:16px;color:var(--color-text);margin-right:3px}.cv__stat--ok strong{color:var(--color-success)}.cv__stat--bad strong{color:var(--color-danger)}.cv__filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.cv__search{position:relative;display:flex;align-items:center;gap:8px;flex:1 1 260px;min-width:200px;padding:0 14px;height:38px;border:var(--glass-input-border);border-radius:var(--radius-full);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);color:var(--color-text-muted);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.cv__search:focus-within{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.cv__filters:empty{display:none}.cv__search input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:14px;color:var(--color-text)}.cv__error{margin:8px 0;padding:10px 14px;border-radius:var(--radius-md);background:#fcebea;border:1px solid var(--color-danger);color:var(--color-danger);font-size:13px}.cv__empty{padding:40px 16px;text-align:center;color:var(--color-text-muted);font-size:14px}.cv-emptystate{display:flex;flex-direction:column;align-items:center;gap:12px;padding:44px 24px;margin-bottom:14px;text-align:center;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento)}.cv-emptystate__title{font-size:16px;font-weight:700;color:var(--color-text)}.cv-emptystate__hint{font-size:13px;color:var(--color-text-muted);max-width:520px}.cv__list{display:flex;flex-direction:column;gap:12px}.cv-card{background:var(--glass-surface-bg);-webkit-backdrop-filter:var(--glass-surface-backdrop);backdrop-filter:var(--glass-surface-backdrop);border:var(--glass-surface-border);border-radius:var(--radius-xl);box-shadow:var(--glass-surface-shadow);overflow:hidden;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.cv-card:hover,.cv-card--open{box-shadow:var(--glass-surface-shadow-hover)}.cv-card--blacklist{border-left:3px solid var(--color-danger)}.cv-card--whitelist{border-left:3px solid var(--color-success)}.cv-card--neutral{border-left:3px solid var(--color-border-group)}.cv-card__head{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px}.cv-card__main{flex:1;display:flex;align-items:center;gap:10px;min-width:0;padding:10px 8px;border:none;background:transparent;cursor:pointer;font-family:var(--font);text-align:left;color:var(--color-text)}.cv-chevron{color:var(--color-text-muted);transition:transform var(--transition-fast);flex-shrink:0}.cv-chevron--open{transform:rotate(180deg)}.cv-card__name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cv-badge,.cv-wbadge,.cv-asn__trade,.cv-projbadge,.cv-flag,.cv-ackbadge,.cv-card__trade{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 9px;border-radius:var(--radius-full);font-size:10.5px;font-weight:700;letter-spacing:.01em;line-height:1;white-space:nowrap;flex-shrink:0}.cv-card__trade{background:var(--lcr-brand-100);color:var(--color-text-muted)}.cv-card__count{margin-left:auto;font-size:12px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.cv-card__actions{display:flex;gap:4px;flex-shrink:0}.cv-card__reason{margin:-2px 12px 8px 40px;font-size:13px;color:var(--color-danger)}.cv-card__ico{margin:-2px 12px 8px 40px;font-size:12px;color:var(--color-text-muted)}.cv-badge{background:#fff;border:1px solid var(--color-border);color:var(--lcr-ink-800)}.cv-badge--whitelist{background:var(--color-success-bg);border-color:color-mix(in srgb,var(--color-success) 30%,transparent);color:var(--color-success)}.cv-badge--blacklist{background:#fcebea;border-color:color-mix(in srgb,var(--color-danger) 30%,transparent);color:var(--color-danger)}.cv-warranties{display:flex;flex-direction:column;gap:10px;padding:12px 12px 14px 40px;border-top:1px solid var(--color-border);background:var(--lcr-brand-50)}.cv-warranties__empty{padding:10px 0;font-size:13px;color:var(--color-text-muted)}.cv-wtable{display:flex;flex-direction:column}.cv-wtable__head,.cv-wtable__row{display:grid;grid-template-columns:2fr 1.4fr .9fr 1.3fr 1fr 64px;gap:10px;align-items:center;padding:7px 4px}.cv-wtable__head{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border)}.cv-wtable__row{border-bottom:1px solid var(--lcr-brand-200);font-size:13px}.cv-wtable__row:last-child{border-bottom:none}.cv-wtable__proj{font-weight:600}.cv-wtable__muted{color:var(--color-text-muted)}.cv-wtable__actions{display:flex;gap:4px;justify-content:flex-end}.cv-wbadge--active{background:var(--color-success-bg);color:var(--color-success)}.cv-wbadge--expiring{background:var(--color-warning-bg);color:var(--color-warning-text)}.cv-wbadge--expired{background:#fcebea;color:var(--color-danger)}.cv-wbadge--none{background:var(--lcr-brand-100);color:var(--color-text-muted)}.cv-warranties__add{margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px dashed var(--color-border-group);border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.cv-warranties__add:hover{border-color:var(--lcr-brand-700);color:var(--lcr-ink-800)}.cv-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.cv-iconbtn:hover{background:var(--lcr-brand-200);color:var(--color-text)}.cv-iconbtn--danger:hover{background:#fcebea;color:var(--color-danger)}.cv-form{display:flex;flex-direction:column;gap:14px}.cv-field-row{display:flex;gap:12px}.cv-field-row .cv-field{flex:1}.cv-field{display:flex;flex-direction:column;gap:6px}.cv-field>span{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.cv-field input,.cv-field textarea{width:100%;padding:9px 12px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);font-family:var(--font);font-size:14px;color:var(--color-text);outline:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.cv-field input:focus,.cv-field textarea:focus{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.cv-field textarea{resize:vertical}.cv-field input::placeholder,.cv-field textarea::placeholder{color:var(--lcr-ink-700);opacity:1}.cv-field input[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 12%,transparent)}.cv-form__hint{font-size:13px;color:var(--color-text-muted);padding:2px 2px 0}.cv-form__section{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-top:6px;padding-top:14px;border-top:1px solid var(--color-border)}.cv-form__section:first-child{margin-top:0;padding-top:0;border-top:none}.cv-disclosure-btn{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:6px;padding:14px 0 0;border:none;border-top:1px solid var(--color-border);background:transparent;font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.cv-disclosure-btn:hover,.cv-disclosure-btn .cv-chevron{color:var(--lcr-ink-800)}.cv-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.cv-check input{width:16px;height:16px;accent-color:var(--lcr-brand-800);cursor:pointer}.cv-flag{background:var(--lcr-brand-100);color:var(--lcr-ink-800);font-weight:800;letter-spacing:.04em}.cv-flag--bank{background:var(--color-warning-bg);color:var(--color-warning-text)}.cv-wtable__flags{display:inline-flex;gap:4px;align-items:center}.cv__toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 0 16px}.cv__toolbar .cv__summary{margin:0}.cv-modetoggle{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius-xl);background:var(--glass-track-bg);border:var(--glass-track-border);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop)}.cv-modetoggle--sm{align-self:flex-start}.cv-modetoggle__btn{border:none;background:transparent;padding:7px 16px;border-radius:calc(var(--radius-xl) - 4px);font-family:var(--font);font-size:13px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.cv-modetoggle__btn:disabled{opacity:.4;cursor:not-allowed}.cv-modetoggle__btn--active{background:var(--glass-pill-bg);color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.cv-modetoggle--thumb{position:relative}.cv-modetoggle--thumb .cv-modetoggle__btn{position:relative;z-index:1}.cv-modetoggle--thumb .cv-modetoggle__btn--active{background:transparent;box-shadow:none}.cv-filterseg{display:inline-flex;align-items:stretch;flex-wrap:wrap;padding:3px;gap:2px;border-radius:var(--radius-xl);background:var(--glass-track-bg);border:var(--glass-track-border);box-shadow:0 4px 10px -6px #141e2d4d,0 2px 4px -3px #141e2d2e,inset 0 1px 1px #0000000f,inset 0 -1px #ffffff8c;backdrop-filter:var(--glass-track-backdrop);-webkit-backdrop-filter:var(--glass-track-backdrop)}.cv-filterseg__btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:none;background:transparent;border-radius:calc(var(--radius-xl) - 4px);font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-800);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.cv-filterseg__btn:hover{color:var(--lcr-brand-900)}.cv-filterseg__btn--active{background:var(--glass-pill-bg);color:var(--lcr-brand-900);box-shadow:var(--glass-pill-shadow)}.cv-ackbadge{background:var(--lcr-brand-100);color:var(--color-text-muted)}.cv-ackbadge:before{content:"✓";font-size:10px;line-height:1}.cv-iconbtn--ok{color:var(--color-success)}.cv-orphan{display:flex;flex-direction:column;gap:6px}.cv-orphan__hint{font-size:12.5px;color:var(--color-text-muted);padding:2px 6px 8px}.cv-orphan__fix{align-self:flex-start;padding:6px 14px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-full);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);color:var(--color-text-secondary);font-family:var(--font);font-size:12.5px;font-weight:700;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.cv-orphan__fix:hover{background:var(--glass-btn-secondary-bg-hover);color:var(--color-text)}.cv-grid{display:flex;flex-direction:column;gap:14px}.cv-grp{display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden}.cv-grp__head{display:flex;align-items:center;gap:8px;width:100%;padding:12px 18px;border:none;background:transparent;cursor:pointer;font-family:var(--font);text-align:left;border-bottom:1px solid var(--lcr-brand-300)}.cv-grp__head--static{cursor:default}.cv-grp__name{font-size:15px;font-weight:700;color:var(--color-text)}.cv-grp__count{margin-left:auto;font-size:11px;font-weight:600;color:var(--color-text-muted);background:var(--lcr-brand-100);padding:1px 8px;border-radius:var(--radius-full)}.cv-grp__body{display:flex;flex-direction:column;padding:4px 18px 8px}.cv-prow{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:start;padding:5px 4px;border-bottom:1px solid var(--lcr-brand-200)}.cv-prow:last-child{border-bottom:none}.cv-prow--project{background:var(--lcr-brand-50);border-radius:var(--radius-md)}.cv-prow--project .cv-prow__bld-name{color:var(--lcr-ink-700);font-style:italic}.cv-prow__bld{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:4px}.cv-prow__bld-name{font-family:var(--font);font-size:13px;font-weight:700;color:var(--color-text);border:none;background:transparent;padding:0;text-align:left}button.cv-prow__bld-name{cursor:pointer;text-decoration:underline dotted transparent;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}button.cv-prow__bld-name:hover{color:var(--lcr-ink-800);text-decoration-color:var(--lcr-brand-700)}.cv-bld__warn{font-size:10px;font-weight:700;padding:1px 7px;border-radius:var(--radius-full);white-space:nowrap}.cv-bld__warn--expired{background:#fcebea;color:var(--color-danger)}.cv-bld__warn--expiring{background:var(--color-warning-bg);color:var(--color-warning-text)}.cv-prow__asns{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;min-width:0}.cv-prow__add{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:100%;padding:10px;border:1.5px dashed var(--color-border-group);border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.cv-prow__add:hover{border-color:var(--lcr-brand-700);color:var(--lcr-ink-800);background:var(--lcr-brand-50)}.cv-asn{display:flex;flex-direction:column;gap:3px;padding:6px 9px;border:1px solid var(--color-border);border-left:3px solid var(--color-border-group);border-radius:var(--radius-md);background:#fff;font-size:12px;line-height:1.3}.cv-asn--whitelist{border-left-color:var(--color-success)}.cv-asn--blacklist{border-left-color:var(--color-danger)}.cv-asn--neutral{border-left-color:var(--color-border-group)}.cv-asn--clickable{cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.cv-asn--clickable:hover{border-color:var(--lcr-brand-400);box-shadow:var(--shadow-md);transform:translateY(-1px)}.cv-asn--clickable:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:2px}.cv-wdetail{margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--color-border);display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 16px}.cv-wdetail__row{display:flex;flex-direction:column;gap:1px;min-width:0}.cv-wdetail__k{margin:0;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.cv-wdetail__v{margin:0;font-size:12.5px;font-weight:600;line-height:1.25;color:var(--color-text);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cv-wdetail__row--wide{grid-column:1 / -1}.cv-reg-w--clickable{cursor:pointer;border-radius:var(--radius-sm)}.cv-reg-w--clickable:hover{background:var(--lcr-brand-50)}.cv-reg-w--clickable:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:-2px}.cv-asn__none{grid-column:1 / -1;font-size:12.5px;color:var(--color-text-muted);padding:4px 0;font-style:italic}.cv-asn__top{display:flex;align-items:center;gap:6px}.cv-asn__name{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--color-text);overflow-wrap:anywhere}.cv-asn__name--btn{border:none;background:transparent;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;padding:0;text-align:left;text-decoration:underline dotted transparent;transition:text-decoration-color var(--transition-fast)}.cv-asn__name--btn:hover{text-decoration-color:var(--lcr-brand-700)}.cv-asn__actions{display:flex;gap:1px;flex-shrink:0}.cv-asn__tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cv-asn__trade{background:var(--lcr-brand-100);color:var(--color-text-muted)}.cv-asn__scope{color:var(--color-text-secondary);overflow-wrap:anywhere}.cv-asn__foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 6px;margin-top:auto}.cv-asn__foot--btn{width:100%;border:none;background:transparent;padding:3px 0 0;font-family:var(--font);cursor:pointer;text-align:left}.cv-asn__foot--btn:hover .cv-asn__period,.cv-asn__foot--btn:hover .cv-asn__detail-toggle{color:var(--lcr-ink-800)}.cv-asn__detail-toggle{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;color:var(--color-text-muted);flex-shrink:0;transition:color var(--transition-fast)}.cv-asn__period{font-size:10.5px;color:var(--color-text-muted);transition:color var(--transition-fast)}.cv-asn__reason{color:var(--color-danger);font-size:11px;overflow-wrap:anywhere}.cv-asn .cv-badge{font-size:10px;padding:2px 8px}.cv-asn .cv-wbadge{font-size:9.5px;padding:1px 7px;flex-shrink:0}.cv-asn .cv-iconbtn{width:22px;height:22px}.cv-reg-w{display:grid;grid-template-columns:1.8fr 1.3fr 1.7fr auto 1fr 64px;gap:10px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--lcr-brand-200);font-size:13px}.cv-reg-w:last-of-type{border-bottom:none}.cv-reg-w__proj{display:inline-flex;align-items:center;gap:6px;font-weight:600;min-width:0}.cv-reg-w__proj .cv-chevron{flex-shrink:0}.cv-reg-witem{background:#fff;border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);padding:8px 12px 10px;box-shadow:var(--shadow-xs)}.cv-reg-witem .cv-reg-w{border-bottom:none;padding:0 0 2px}.cv-reg-witem .cv-wdetail{padding-left:0;padding-right:0}.cv--mobile{border-radius:0;box-shadow:none}.cv--mobile .cv__top{position:relative;padding:6px 14px 10px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,#ffffffd1,#ffffffa3);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:none;box-shadow:none}.cv--mobile .cv__top:after{content:"";position:absolute;left:0;right:0;top:100%;height:16px;background:linear-gradient(180deg,#ffffff8c,#fff0);pointer-events:none}.cv--mobile .cv__scroll{padding:12px 14px 96px}.cv--mobile .cv__header{flex-direction:row;align-items:center;gap:8px;margin-bottom:0}.cv--mobile .cv__headtools{flex:1 1 auto;min-width:0;flex-direction:row;gap:0}.cv--mobile .cv__search--header{width:100%;max-width:none;flex:1 1 auto}.cv--mobile .cv__header .cv__add-btn{flex:0 0 auto;width:40px;height:40px;padding:0;gap:0;border-radius:var(--radius-lg);justify-content:center}.cv--mobile .cv__header .cv__add-btn-label{display:none}.cv--mobile .cv__toolbar{flex-direction:column;align-items:stretch}.cv--mobile .cv-modetoggle{display:flex;width:100%}.cv--mobile .cv-modetoggle__btn{flex:1;justify-content:center;text-align:center}.cv__filterwrap{position:relative;flex:0 0 auto}.cv__filterbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1.5px solid var(--lcr-brand-400);border-radius:var(--radius-lg);background:#fff;color:var(--lcr-ink-700);cursor:pointer;box-shadow:0 1px 2px #0f172a14;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.cv__filterbtn--active{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800);color:#fff}.cv__filterbtn-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--lcr-brand-900);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}.cv__filterpop-backdrop{position:fixed;inset:0;z-index:40;background:transparent;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:cv-filterpop-backdrop-in .18s ease-out}.cv__filterpop-backdrop--closing{animation:cv-filterpop-backdrop-out .2s ease-in forwards}@keyframes cv-filterpop-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes cv-filterpop-backdrop-out{0%{opacity:1}to{opacity:0}}.cv__filterpop{position:absolute;top:calc(100% + 8px);right:0;z-index:41;width:min(300px,calc(100vw - 28px));padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--glass-menu-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-menu-border);border-radius:var(--radius-xl);box-shadow:var(--glass-menu-shadow);transform-origin:calc(100% - 20px) -8px;animation:cv-filterpop-in .34s cubic-bezier(.22,1,.36,1)}.cv__filterpop--closing{animation:cv-filterpop-out .2s cubic-bezier(.5,0,.75,.3) forwards}@keyframes cv-filterpop-in{0%{opacity:0;transform:scale(.08);border-radius:999px}40%{opacity:1}to{opacity:1;transform:scale(1);border-radius:var(--radius-xl)}}@keyframes cv-filterpop-out{0%{opacity:1;transform:scale(1);border-radius:var(--radius-xl)}to{opacity:0;transform:scale(.08);border-radius:999px}}.cv__filterpop-group{display:flex;flex-direction:column;gap:6px}.cv__filterpop-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.cv__filterpop .cv-filterseg{display:flex;flex-wrap:wrap}.cv--mobile .cv-card__count{display:none}.cv--mobile .cv-card__main{flex-wrap:wrap;row-gap:4px}.cv--mobile .cv-card__name{flex:1 1 60%;white-space:normal;overflow:visible;text-overflow:clip;min-width:0}.cv--mobile .cv-warranties{padding-left:14px}.cv--mobile .cv-prow{grid-template-columns:1fr;gap:2px;padding:8px 4px}.cv--mobile .cv-prow__bld{padding-top:0}.cv--mobile .cv-prow__bld-name{font-size:14px}.cv--mobile .cv-reg-w{grid-template-columns:1fr 1fr;row-gap:4px;padding:10px 4px}.cv--mobile .cv-reg-w__proj{grid-column:1 / -1}.cv--mobile .cv-reg-w .cv-wtable__actions{grid-column:1 / -1;justify-content:flex-start}.dsheet{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font);color:var(--color-text);background:var(--lcr-brand-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-bento)}.dsheet__bar{flex-shrink:0;z-index:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 22px;background:#fff;border-bottom:1px solid var(--color-border);box-shadow:0 2px 6px -2px #141e2d1a}.dsheet__title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dsheet__total{padding:2px 10px;border-radius:var(--radius-full);background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);font-size:11.5px;font-weight:700;color:var(--color-text-muted);white-space:nowrap}.dsheet__hint{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:12px;color:var(--color-text-muted)}.dsheet__hint-sep{color:var(--lcr-brand-400)}.dsheet__hint code{padding:1px 7px;border-radius:var(--radius-full);background:var(--lcr-brand-100);border:1px solid var(--lcr-brand-300);font-family:var(--font);font-size:11px;font-weight:600;color:var(--lcr-ink-800)}.dsheet__scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;margin:14px 18px 18px;background:#fff;border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento)}.dsheet__scroll{scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.dsheet__scroll::-webkit-scrollbar{width:8px;height:8px}.dsheet__scroll::-webkit-scrollbar-track{background:transparent}.dsheet__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.dsheet__scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.dsheet__table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.dsheet__table th,.dsheet__table td{padding:3px 8px;border-right:1px solid var(--lcr-brand-200);border-bottom:1px solid var(--lcr-brand-200);text-align:left;vertical-align:middle;background:var(--color-bg)}.dsheet__table td:last-child,.dsheet__table th:last-child{border-right:none}.dsheet__table th{position:sticky;top:0;z-index:3;background:var(--lcr-brand-50);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--lcr-ink-700);border-bottom:1.5px solid var(--color-border)}.dsheet__table:not(.dsheet__table--pdates) tbody tr:not(.dsheet__group-row):hover>td{background-color:var(--lcr-brand-50)}.dsheet__col-sticky{position:sticky;left:0;z-index:2;min-width:180px;max-width:260px;box-shadow:1px 0 0 var(--color-border)}.dsheet__col-sticky--phase{min-width:200px}.dsheet__table th.dsheet__col-sticky{z-index:4}.dsheet__col-sticky--name{max-width:320px}.dsheet__name-cell{display:flex;align-items:center;min-width:0}.dsheet__name-cell>.dsheet__input{flex:1 1 auto;min-width:0}.dsheet__name-cell>.dsheet__rp-tag{flex:0 0 auto}.dsheet__group-row td{background:var(--lcr-brand-100);border-right:none;border-bottom:none;box-shadow:inset 0 1.5px 0 var(--color-border);padding:7px 10px}.dsheet__table tbody tr.dsheet__group-row:first-child td{box-shadow:none}.dsheet__group-inner{position:sticky;left:8px;display:inline-flex;align-items:center;gap:10px}.dsheet__group-name{font-size:15px;font-weight:600;color:var(--color-text)}.dsheet__group-count{min-width:20px;padding:1px 8px;border-radius:var(--radius-full);background:#fff;border:1px solid var(--lcr-brand-300);font-size:11px;font-weight:700;text-align:center;color:var(--color-text-muted)}.dsheet__group-add{display:inline-flex;align-items:center;gap:6px}.dsheet__input{width:100%;min-width:72px;padding:3px 7px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:13px;color:var(--color-text);transition:border-color var(--transition-fast),background var(--transition-fast)}.dsheet__input:hover:not(:disabled){border-color:var(--lcr-brand-300);background:var(--lcr-brand-50)}.dsheet__input:focus{outline:none;border-color:var(--lcr-brand-700);background:#fff;box-shadow:0 0 0 2px #6b7b8838}.dsheet__input:disabled{color:var(--color-text-muted);cursor:not-allowed}.dsheet__input--num{min-width:48px;width:56px;text-align:right}.dsheet__input--num::-webkit-outer-spin-button,.dsheet__input--num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dsheet__input--num[type=number]{-moz-appearance:textfield;appearance:textfield}.dsheet__input--wide{min-width:170px}.dsheet__input--add{min-width:160px;padding:3px 12px;border-radius:var(--radius-full);background:var(--color-bg);border-color:var(--color-border)}.dsheet__input--date{width:74px;min-width:74px;text-align:center;font-variant-numeric:tabular-nums}.dsheet__input--invalid,.dsheet__input--invalid:focus{border-color:var(--color-danger);box-shadow:0 0 0 2px #c4392e26}.dsheet__btn{padding:4px 13px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-full);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12px;font-weight:700;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.dsheet__btn:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover);color:var(--color-text)}.dsheet__btn:disabled{opacity:.45;cursor:not-allowed}.dsheet__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;font-family:var(--font);font-size:12px;line-height:1.4;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.dsheet__icon-btn:hover:not(:disabled){background:var(--lcr-brand-100);color:var(--lcr-brand-900)}.dsheet__icon-btn--danger:hover:not(:disabled){background:#c4392e14;color:var(--color-danger)}.dsheet__icon-btn:disabled{opacity:.35;cursor:not-allowed}.dsheet__td-center{text-align:center}.dsheet__td-actions{white-space:nowrap}.dsheet__cat{display:inline-flex;align-items:center;gap:7px}.dsheet__cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 12%,transparent)}.dsheet__rp-tag{margin-left:6px;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:var(--color-success);white-space:nowrap;vertical-align:middle}.dsheet__phase{display:inline-flex;align-items:baseline;gap:6px}.dsheet__phase-code{font-weight:700}.dsheet__phase-name{font-size:12px;color:var(--color-text-muted)}.dsheet__input--phase-code{width:52px;min-width:52px;padding:2px 4px;font-weight:700;text-align:left}.dsheet__input--phase-code::placeholder{font-weight:600;color:var(--color-text-muted)}.dsheet__check{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:17px;height:17px;margin:0;border:1.5px solid var(--lcr-brand-600);border-radius:5px;background:#fff;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.dsheet__check:after{content:"";width:4px;height:8px;margin-top:-2px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .13s cubic-bezier(.2,.9,.3,1.5)}.dsheet__check:hover:not(:disabled){border-color:var(--lcr-brand-800)}.dsheet__check:checked{background:var(--lcr-brand-800);border-color:var(--lcr-brand-800)}.dsheet__check:checked:after{transform:rotate(45deg) scale(1)}.dsheet__check--done:checked{background:var(--color-success);border-color:var(--color-success)}.dsheet__check:focus-visible{outline:none;border-color:var(--lcr-brand-800);box-shadow:0 0 0 3px #6b7b8847}.dsheet__check:disabled{opacity:.4;cursor:not-allowed}.dsheet__group-del{margin-left:4px}.dsheet__group-inner--phase{position:sticky;left:8px;z-index:1;background:var(--lcr-brand-100)}.dsheet__group-name--phase{white-space:nowrap}.dsheet__table--phases th,.dsheet__table--phases td{min-width:92px}.dsheet__table--phases th.dsheet__col-sticky--phase,.dsheet__table--phases td.dsheet__col-sticky--phase{min-width:200px}.dsheet__table--phases th.dsheet__td-center,.dsheet__table--phases td.dsheet__td-center,.dsheet__table--phases td.dsheet__td-actions{min-width:44px}.dsheet__table--pdates{--pdates-cell-w: 84px;table-layout:fixed;width:calc(200px + 44px + 12 * var(--pdates-cell-w))}.dsheet__table--pdates th,.dsheet__table--pdates td.dsheet__pdates-cell{width:84px;min-width:84px;max-width:84px;text-align:center}.dsheet__table--pdates th.dsheet__pdates-kindhead{width:44px;min-width:44px;max-width:44px}.dsheet__table--pdates th.dsheet__col-sticky{min-width:200px;width:200px;max-width:none;text-align:left}.dsheet__pdates-head{font-weight:700;letter-spacing:.02em}.dsheet__pdates-name{font-weight:600;vertical-align:middle;min-width:200px}.dsheet__table--pdates .dsheet__pdates-kind{width:44px;min-width:44px;max-width:44px;padding-right:6px;font-size:11px;text-align:right;color:var(--color-text-muted)}.dsheet__table--pdates .dsheet__pdates-rowstart td{border-bottom:none}.dsheet__pdates-cell--done{position:relative}.dsheet__pdates-cell--done .dsheet__input:not(:focus):not(.dsheet__input--invalid){border-color:#2e7d4f59;background:#2e7d4f0f}.dsheet__pdates-done{position:absolute;top:2px;right:2px;color:var(--color-success);pointer-events:none}.dsheet__pdchev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:4px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--lcr-ink-700);cursor:pointer;vertical-align:middle}.dsheet__pdchev:hover{background:var(--lcr-brand-100);color:var(--lcr-ink-800)}.dsheet__pdchev svg{transform:rotate(-90deg);transition:transform var(--transition-fast)}.dsheet__pdchev--open svg{transform:rotate(0)}.dsheet__table--pdates .dsheet__pdetail-row>td{padding:0 10px 12px 44px;background:var(--lcr-brand-50);text-align:left}.dsheet__pdetail-wrap{padding:10px 12px 12px;background:#fff;border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-bento)}.dsheet__pdetail-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.dsheet__pdetail-scroll::-webkit-scrollbar{height:6px;width:6px}.dsheet__pdetail-scroll::-webkit-scrollbar-track{background:transparent}.dsheet__pdetail-scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:3px}.dsheet__pdetail-scroll::-webkit-scrollbar-corner{background:transparent}.dsheet__table--embed th.dsheet__col-sticky--phase,.dsheet__table--embed td.dsheet__col-sticky--phase{position:static}.dsheet__pdetail-bar{display:flex;align-items:center;gap:8px;padding:2px 2px 8px}.dsheet__pdetail-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lcr-ink-700)}.dsheet__pdetail-empty{padding:6px 2px 4px;font-size:12.5px;color:var(--color-text-muted)}.dsheet__table--pdates .dsheet__table--embed{width:max-content}.dsheet__table--pdates .dsheet__table--embed th,.dsheet__table--pdates .dsheet__table--embed td{text-align:left;width:auto;max-width:none}.dsheet__table--pdates .dsheet__table--embed th{min-width:92px}.dsheet__table--pdates .dsheet__table--embed td{min-width:92px;border-bottom:1px solid var(--lcr-brand-200)}.dsheet__table--pdates .dsheet__table--embed th.dsheet__col-sticky--phase,.dsheet__table--pdates .dsheet__table--embed td.dsheet__col-sticky--phase{min-width:200px}.dsheet__table--pdates .dsheet__table--embed th.dsheet__td-center,.dsheet__table--pdates .dsheet__table--embed td.dsheet__td-center,.dsheet__table--pdates .dsheet__table--embed td.dsheet__td-actions{min-width:44px;text-align:center}.cv-projbadge{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);white-space:nowrap}.cv-reg-w__proj .cv-projbadge{margin-left:8px;vertical-align:middle}.cv-asn--project{border-left:3px solid var(--lcr-brand-400)}.cv-tree{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:clip;display:flex;flex-direction:column}.cv-rtable__head,.cv-rtable__row{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(104px,.6fr) minmax(96px,.6fr) minmax(112px,.7fr) minmax(116px,.8fr) minmax(122px,.75fr) 64px;gap:10px;align-items:center;padding:0 12px;min-height:44px}.cv-rtable__head{min-height:40px;font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--lcr-ink-700);background:var(--lcr-brand-50);border-bottom:1.5px solid var(--color-border)}.cv-rtable__hc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-rtable__firsthead{display:flex;align-items:center;gap:2px;min-width:0}.cv-rtable__firsthead .cv-rtable__hf-cell{flex:1 1 auto;min-width:0}.cv-rtable__foldall{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--lcr-ink-700);border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.cv-rtable__foldall:hover{background:var(--lcr-brand-100);color:var(--lcr-ink-800)}.cv-rtable__headwrap--sticky{position:sticky;top:-18px;z-index:3}.cv-rtable__row{position:relative;border-bottom:1px solid var(--lcr-brand-200);font-size:14px;cursor:pointer;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.cv-rtable__row:hover{background-color:var(--lcr-brand-50)}.cv-rtable__row:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:-2px}.cv-rtable__row--ctr{font-weight:600}.cv-rtable__child{background-color:color-mix(in srgb,var(--lcr-brand-50) 55%,#fff)}.cv-rtable__row.cv-rtable__row--active,.cv-rtable__row.cv-rtable__row--active:hover{background-color:color-mix(in srgb,var(--lcr-brand-700) 18%,#fff);box-shadow:inset 4px 0 0 var(--lcr-brand-800)}.cv-rtable__row--active .cv-rtable__wtitle,.cv-rtable__row--active .cv-rtable__name{font-weight:700}.cv-rtable--registry{border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:clip;background:#fff}.cv-rtable__cardhead{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--lcr-brand-300)}.cv-rtable__cardhead-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--lcr-brand-100);color:var(--lcr-ink-800)}.cv-rtable__cardhead-title{font-size:15px;font-weight:600;color:var(--color-text)}.cv-rtable{display:flex;flex-direction:column;background:#fff}.cv-rtable__row--folder{cursor:pointer}.cv-rtable__row--project{border-bottom-color:transparent;box-shadow:inset 0 1px 0 var(--color-border)}.cv-rtable__head+.cv-rtable__row--folder,.cv-rtable__headwrap+.cv-rtable__row--folder{box-shadow:none}.cv-rtable__row--sub{border-bottom-color:transparent;background-image:linear-gradient(to right,transparent 50px,var(--color-border) 50px),linear-gradient(to right,transparent 50px,var(--lcr-brand-300) 50px);background-size:100% 1px,100% 1px;background-position:top left,bottom left;background-repeat:no-repeat,no-repeat}.cv-rtable__folder-chev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:var(--color-text-muted)}.cv-rtable__folder-icon{display:inline-flex;color:var(--lcr-ink-700);flex-shrink:0}.cv-rtable__row--project .cv-rtable__folder-icon{color:var(--lcr-ink-800)}.cv-rtable__folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.cv-rtable__row--project .cv-rtable__folder-name{font-size:15px;font-weight:600}.cv-rtable__row--house .cv-rtable__folder-name{font-size:14.5px;font-weight:600}.cv-tree__overdue{padding:1px 8px;border-radius:var(--radius-full);background:#fcebea;color:var(--color-danger);font-size:11.5px;font-weight:700;white-space:nowrap}.cv-tree__next{font-size:12px;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.cv-tree__assign{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:1px dashed var(--color-border-group);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.cv-tree__assign:hover{border-color:var(--lcr-brand-700);color:var(--lcr-ink-800);background:var(--lcr-brand-50)}.cv-rtable__c1{display:inline-flex;align-items:center;gap:8px;min-width:0}.cv-rtable__child .cv-rtable__c1{padding-left:56px}.cv-rtable__chev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;border:none;background:transparent;padding:0;cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.cv-rtable__chev:hover{background:var(--lcr-brand-200);color:var(--color-text)}.cv-rtable__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.cv-rtable__wtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.cv-rtable__period{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:13px;font-variant-numeric:tabular-nums}.cv-rtable__status{display:inline-flex;align-items:center;justify-content:flex-start}.cv-rtable__actions{display:inline-flex;gap:2px;align-items:center;justify-content:flex-end}.cv-rtable .cv-iconbtn{width:24px;height:24px}.cv-rtable__zar,.cv-rtable__odbor{display:inline-flex;align-items:center;min-width:0;overflow:hidden}.cv-rtable__odborchip{flex-shrink:1;min-width:0;max-width:100%;padding:1px 8px;border-radius:var(--radius-full);background:var(--lcr-brand-100);color:var(--color-text-muted);font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cv-rtable__cat{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.cv-rtable__catchip{flex-shrink:1;min-width:0;max-width:100%;padding:1px 8px;border-radius:var(--radius-full);background:var(--lcr-brand-100);color:var(--color-text-muted);font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cv-rtable__hf-cell{min-width:0;display:inline-flex;align-items:center}.cv-rtable__hf{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;margin:0 -6px;padding:3px 6px;border:none;background:transparent;cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--lcr-ink-700);border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.cv-rtable__hf:hover{background:var(--lcr-brand-100);color:var(--lcr-ink-800)}.cv-rtable__hf--active{color:var(--lcr-ink-800)}.cv-rtable__hf-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-rtable__hf-count{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--lcr-brand-800);color:#fff;font-size:10px;font-weight:700;letter-spacing:0}.cv-rtable__hf .cv-chevron{color:var(--lcr-ink-700)}.cv-hf__menu{position:fixed;z-index:var(--z-popover, 2000);min-width:210px;max-width:300px;padding:6px;display:flex;flex-direction:column;gap:6px;background:var(--glass-menu-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-menu-border);border-radius:var(--radius-lg);box-shadow:var(--glass-menu-shadow);animation:tf-menu-in .14s cubic-bezier(.22,1,.36,1)}.cv-hf__search{width:100%;padding:7px 10px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--glass-input-bg);font-family:var(--font);font-size:13px;color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.cv-hf__search:focus{border-color:#6b7b88d9;box-shadow:var(--glass-input-focus-ring)}.cv-hf__search::placeholder{color:var(--lcr-ink-700);opacity:1}.cv-hf__list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.cv-hf__list::-webkit-scrollbar{width:8px}.cv-hf__list::-webkit-scrollbar-track{background:transparent}.cv-hf__list::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.cv-hf__list::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.cv-hf__opt{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.cv-hf__opt:hover{background:var(--lcr-brand-100)}.cv-hf__opt--on{font-weight:600}.cv-hf__opt-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-hf__opt-check{flex:0 0 12px;text-align:center;color:var(--lcr-ink-800);font-size:12px;font-weight:700}.cv-hf__empty{padding:8px 10px;font-size:12.5px;color:var(--color-text-muted)}.cv-hf__dates{display:flex;flex-direction:column;gap:8px}.cv-hf__datefield{display:flex;flex-direction:column;gap:4px}.cv-hf__datefield>span{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--lcr-ink-700)}.cv-hf__datefield input{width:100%;padding:7px 10px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--glass-input-bg);font-family:var(--font);font-size:13px;color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.cv-hf__datefield input:focus{border-color:#6b7b88d9;box-shadow:var(--glass-input-focus-ring)}.cv-hf__datefield input::placeholder{color:var(--lcr-ink-700);opacity:1}.cv-hf__datefield input[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 12%,transparent)}.cv-hf__clear{align-self:flex-start;padding:5px 10px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);font-size:12px;font-weight:600;color:var(--color-primary);transition:background var(--transition-fast)}.cv-hf__clear:hover{background:var(--lcr-brand-100)}.cv-rtable__row--i1 .cv-rtable__c1{padding-left:54px}.cv-rtable__row--i1.cv-rtable__child .cv-rtable__c1{padding-left:122px}.cv-rtable__row--i2 .cv-rtable__c1{padding-left:107px}.cv-rtable__row--i3 .cv-rtable__c1{padding-left:175px}.cv-rtable__row--r1:before,.cv-rtable__row--r2:after{content:"";position:absolute;top:0;bottom:-1px;width:2px;background:var(--lcr-brand-400);pointer-events:none}.cv-rtable__row--r1:before{left:50px}.cv-rtable__row--r2:after{left:103px}.cv-rtable__row--div1,.cv-rtable__row--div2{border-bottom-color:transparent;background-size:100% 1px;background-position:bottom left;background-repeat:no-repeat}.cv-rtable__row--div1{background-image:linear-gradient(to right,transparent 50px,var(--lcr-brand-200) 50px)}.cv-rtable__row--div2{background-image:linear-gradient(to right,transparent 103px,var(--lcr-brand-200) 103px)}.cv-rtable__group:has(+.cv-rtable__row--sub)>:last-child,.cv-rtable__group:has(+.cv-rtable__row--project)>:last-child{border-bottom-color:transparent;background-image:none}.cv-rtable__row--sub:has(+.cv-rtable__row--sub),.cv-rtable__row--sub:has(+.cv-rtable__row--project){background-image:linear-gradient(to right,transparent 50px,var(--color-border) 50px);background-size:100% 1px;background-position:top left;background-repeat:no-repeat}.cv-rtable__row--static{cursor:default}.cv-rtable__row--static:hover{background-color:transparent}.cv-orphan__hint{padding:10px 12px 10px 66px;border-bottom:1px solid var(--lcr-brand-200)}.cv-rtable__addw{display:inline-flex;align-items:center;gap:8px;padding:8px 12px 8px 68px;border:none;border-bottom:1px solid var(--lcr-brand-200);background:transparent;cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--color-text-muted);transition:color var(--transition-fast),background var(--transition-fast)}.cv-rtable__addw:hover{color:var(--lcr-ink-800);background:var(--lcr-brand-50)}.cv-rtable__add{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin:8px 12px;padding:8px 14px;border:1px dashed var(--color-border-group);border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.cv-rtable__add:hover{border-color:var(--lcr-brand-700);color:var(--lcr-ink-800)}.cv-rtable__empty{padding:14px 12px;font-size:13px;color:var(--color-text-muted)}.cv-detailpanel{width:360px;flex-shrink:0;border-left:1px solid var(--color-border);background:#fff;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.cv-detailpanel::-webkit-scrollbar{width:8px}.cv-detailpanel::-webkit-scrollbar-track{background:transparent}.cv-detailpanel::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.cv-detailpanel::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.cv-detail{padding:16px 18px 24px;display:flex;flex-direction:column;gap:10px}.cv-detail--embedded{padding:0}.cv-detail__head{display:flex;align-items:flex-start;gap:8px}.cv-detail__head-main{flex:1;min-width:0;display:inline-flex;align-items:center;gap:8px}.cv-detail__name{font-size:16px;font-weight:700;color:var(--color-text);overflow-wrap:anywhere}.cv-detail__close{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;cursor:pointer;font-size:20px;line-height:1;color:var(--color-text-muted);border-radius:var(--radius-sm)}.cv-detail__close:hover{background:var(--lcr-brand-100);color:var(--color-text)}.cv-detail__tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cv-detail__ico{font-size:11px;color:var(--color-text-muted)}.cv-detail__reason{font-size:12.5px;color:var(--color-danger)}.cv-detail__cnotes{font-size:12.5px;color:var(--color-text-muted);white-space:pre-wrap}.cv-detail__body{display:flex;flex-direction:column;gap:12px;margin-top:2px}.cv-detail__empty{font-size:13px;color:var(--color-text-muted)}.cv-detail__w{border:1px solid var(--lcr-brand-200);border-radius:var(--radius-md);padding:10px 12px 12px;background:var(--lcr-brand-50)}.cv-detail--embedded .cv-detail__w{background:#fff}.cv-detail__w-head{display:flex;align-items:center;gap:6px}.cv-detail__w-actions{margin-left:auto;display:inline-flex;gap:2px}.cv-check--applies{margin-top:-2px}@media(max-width:1280px){.cv-rtable__head,.cv-rtable__row{grid-template-columns:minmax(0,1.9fr) minmax(120px,.85fr) minmax(132px,.8fr) 64px}.cv-rtable__cat,.cv-rtable__zar,.cv-rtable__odbor{display:none}}.cv--mobile .cv-rtable__head{display:none}.cv--mobile .cv-rtable__row{grid-template-columns:1fr auto;row-gap:3px;padding:9px 10px;min-height:0}.cv--mobile .cv-rtable__c1{grid-column:1 / -1;grid-row:1}.cv--mobile .cv-rtable__status{grid-column:2;grid-row:2;justify-content:flex-end}.cv--mobile .cv-rtable__period{grid-column:1;grid-row:2}.cv--mobile .cv-rtable__cat{grid-column:1;grid-row:3;display:inline-flex;flex-wrap:wrap}.cv--mobile .cv-rtable__cat:empty{display:none}.cv--mobile .cv-rtable__actions{grid-column:1 / -1;grid-row:4;justify-content:flex-start}.cv--mobile .cv-rtable__row--folder{grid-template-columns:1fr auto auto;row-gap:0;min-height:44px}.cv--mobile .cv-rtable__row--folder .cv-rtable__c1{grid-column:1;grid-row:1}.cv--mobile .cv-rtable__row--folder .cv-rtable__period,.cv--mobile .cv-rtable__row--folder .cv-rtable__cat{display:none}.cv--mobile .cv-rtable__row--folder .cv-rtable__status{grid-column:2;grid-row:1;justify-content:flex-end}.cv--mobile .cv-rtable__row--folder .cv-rtable__actions{grid-column:3;grid-row:1}.cv--mobile .cv-rtable__zar,.cv--mobile .cv-rtable__odbor{display:none}.cv--mobile .cv-rtable__row--i1 .cv-rtable__c1{padding-left:14px}.cv--mobile .cv-rtable__row--i1.cv-rtable__child .cv-rtable__c1{padding-left:40px}.cv--mobile .cv-rtable__row--i2 .cv-rtable__c1{padding-left:26px}.cv--mobile .cv-rtable__row--i3 .cv-rtable__c1{padding-left:56px}.cv--mobile .cv-rtable__row--r1:before,.cv--mobile .cv-rtable__row--r2:after{display:none}.cv--mobile .cv-rtable__row--sub,.cv--mobile .cv-rtable__row--div1,.cv--mobile .cv-rtable__row--div2{background-image:none;border-bottom-color:var(--lcr-brand-200)}.cv--mobile .cv-rtable__group>.cv-rtable__row:last-child{border-bottom-color:var(--lcr-brand-200);background-image:none}.cv--mobile .cv-orphan__hint{padding-left:16px}.salesrep{display:flex;flex-direction:column;gap:14px}.salesrep__hint{margin:0;font-size:12.5px;line-height:1.5;color:var(--color-text-muted)}.salesrep__row{display:flex;gap:14px}.salesrep__field{display:flex;flex-direction:column;gap:5px}.salesrep__label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--lcr-ink-700)}.salesrep__period{margin:0;font-size:13px;font-weight:600;color:var(--lcr-ink-800)}.salesrep__error{margin:0;font-size:12.5px;color:var(--color-danger)}.pbi{--pbi-band: #C7B19C;--pbi-panel: #D4DBE0;--pbi-frame: #8B9BA8;--pbi-head-fg: #4A4E50;--pbi-band-fg: #3F362B;--pbi-grid: #414346;--pbi-row-band: #F6F6F6;--pbi-sub: #50463E;--pbi-sub-fg: #F2EFEC;--pbi-now: #B6E1EA;--pbi-cardfill: #DFE5E9;--pbi-band-2: #D5C4B4;--pbi-sep: #464C50;--pbi-ink: #252423;--pbi-canvas: 1500px;display:flex;flex-direction:column;height:100%;min-height:0;font-family:Segoe UI,Karbon,Inter,sans-serif;color:var(--pbi-ink)}.pbi__scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:10px 0 24px}.pbi__scroll{scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.pbi__scroll::-webkit-scrollbar{width:8px;height:8px}.pbi__scroll::-webkit-scrollbar-track{background:transparent}.pbi__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pbi__scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pbi__canvas{width:var(--pbi-canvas);margin:0 auto;display:flex;flex-direction:column;gap:8px;padding:0 10px}.pbi__canvas>*{max-width:calc(var(--pbi-content, var(--pbi-canvas)) - 20px)}.pbi__bar{display:flex;align-items:center;gap:16px;height:45px;padding:0 14px;border-radius:5px;background:var(--pbi-band);flex-shrink:0}.pbi__title{margin:0 auto;font-size:17px;font-weight:700;color:var(--pbi-band-fg);letter-spacing:.01em}.pbi__month{display:flex;align-items:center;gap:7px}.pbi__month-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pbi-band-fg)}.pbi__note{font-size:11px;font-weight:700;color:var(--pbi-band-fg);white-space:nowrap}.pbi__error{padding:12px 14px;border-radius:5px;background:var(--lcr-brand-100);color:var(--color-danger);font-size:13px}.pbi__empty{padding:24px;text-align:center;color:var(--lcr-ink-700);font-size:13px}.pbi__foot{margin:2px 2px 0;font-size:11.5px;line-height:1.55;color:var(--color-text-muted)}.pbi__pair{display:flex;gap:7px;flex-shrink:0;align-items:stretch}.pbi__pair>:first-child{width:730px}.pbi__pair>:last-child{width:742px}.pbi__pair .pbi-table thead th{height:48px}.pbi-card{flex-shrink:0;border:1px solid var(--pbi-frame);border-radius:5px;background:#fff;overflow:hidden}.pbi-card__title{margin:0;padding:5px 12px 4px;font-size:14px;font-weight:700;text-align:center;color:var(--pbi-ink)}.pbi-card__scroll{overflow-x:auto;padding:0 4px 4px}.pbi-card__scroll{scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.pbi-card__scroll::-webkit-scrollbar{width:8px;height:8px}.pbi-card__scroll::-webkit-scrollbar-track{background:transparent}.pbi-card__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pbi-card__scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pbi-table{table-layout:fixed;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap;border:2px solid var(--pbi-band)}.pbi-table th,.pbi-table td{height:21px;padding:0 6px;vertical-align:middle;border-right:1px solid var(--pbi-grid)}.pbi-table th:last-child,.pbi-table td:last-child{border-right:0}.pbi-table thead th{height:46px;padding:3px 6px;background:var(--pbi-panel);font-size:12px;font-weight:600;line-height:1.2;text-align:center;color:var(--pbi-head-fg);white-space:normal;vertical-align:bottom;border-bottom:2px solid var(--pbi-band)}.pbi-table__name{text-align:left;font-weight:400;color:var(--pbi-ink);overflow:hidden;text-overflow:ellipsis}.pbi-table__num{text-align:center;color:var(--pbi-ink)}.pbi-table__num--right{text-align:right}.pbi-table__num--edge{border-right-width:2px}.pbi-table__num--up{color:var(--color-success)}.pbi-table__num--down{color:var(--color-danger)}.pbi-table__num--x{color:var(--color-text-muted)}.pbi-table__num--x abbr{text-decoration:none;border-bottom:1px dotted var(--lcr-line-strong);cursor:help;font-weight:600}.pbi-table__row--band>*{background:var(--pbi-row-band)}.pbi-table__row:hover>*{background:var(--pbi-panel)}.pbi-table__row--group>*{font-weight:700}.pbi-table__row--child .pbi-table__name{padding-left:24px}.pbi-table__row--total>*{font-weight:700;background:transparent}.pbi-table__fold{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}.pbi-table__fold:hover{color:var(--pbi-frame)}.pbi-panel{flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding:10px 4px 12px;border-radius:5px;background:var(--pbi-panel)}.pbi-panel__title{margin:0;font-size:14px;font-weight:700;text-align:center;color:var(--pbi-ink)}.pbi-chart{margin:0;padding:6px 8px 4px;border:1px solid var(--pbi-frame);border-radius:5px;background:#fff;display:flex;flex-direction:column}.pbi-chart__title{text-align:center;font-size:14px;font-weight:700;color:var(--pbi-ink);padding-bottom:2px}.pbi-chart__legend{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--pbi-ink);order:3;padding:3px 0 1px}.pbi-chart__legend-item{display:inline-flex;align-items:center;gap:5px}.pbi-chart__swatch{width:9px;height:9px;border-radius:50%}.pbi-chart__svg{display:block;width:100%;height:auto}.pbi-chart__value{font-size:9px;font-weight:600;fill:var(--pbi-ink)}.pbi-chart__tick{font-size:10px;fill:var(--pbi-ink)}.pbi-chart__axis{stroke:var(--pbi-grid);stroke-width:1}.pbi-chart__sep{stroke:var(--pbi-sep);stroke-width:1;stroke-dasharray:3 3}.pbi__navbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--pbi-band-fg);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.pbi__navbtn:hover{background:#ffffff52;border-color:var(--pbi-frame)}.pbi__navbtn:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:2px}.pbi__side{width:230px;flex-shrink:0;align-self:flex-start;position:sticky;top:8px;left:8px;z-index:30;max-height:calc(100dvh - var(--topbar-h) - 84px);overflow-y:auto;padding:10px;border-radius:5px;background:var(--pbi-panel);display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.pbi__side::-webkit-scrollbar{width:8px}.pbi__side::-webkit-scrollbar-track{background:transparent}.pbi__side::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pbi__side::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pbi-start{display:flex;align-items:center;justify-content:center;padding:42px 0 8px}.pbi-start__card--static{cursor:default}.pbi-start__card--static:hover{box-shadow:var(--shadow-md);transform:none}.pbi-start__card{width:730px;padding:34px 40px 40px;border:1px solid var(--lcr-brand-300);border-radius:10px;background:#fff;box-shadow:var(--shadow-md);cursor:pointer;text-align:center;transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.pbi-start__card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.pbi-start__card:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:3px}.pbi-start__head{display:flex;align-items:center;justify-content:center;gap:34px}.pbi-start__logo{width:250px;height:auto}.pbi-start__rule{width:2px;height:104px;background:var(--pbi-band);flex-shrink:0}.pbi-start__report{display:flex;flex-direction:column;gap:5px;min-width:260px}.pbi-start__report-title{font-size:24px;font-weight:700;color:var(--lcr-ink-800)}.pbi-start__report-date{font-size:14px;font-weight:700;color:var(--lcr-ink-800)}.pbi-start__report-label{font-size:11px;color:var(--lcr-ink-700)}.pbi-start__validation{margin:26px 0 14px;font-size:16px;font-weight:700;color:var(--pbi-band-fg)}.pbi-start__vals{display:flex;justify-content:center;gap:0}.pbi-start__val{width:200px;display:flex;flex-direction:column;gap:4px}.pbi-start__val-date{font-size:14px;font-weight:700;color:var(--lcr-ink-800)}.pbi-start__val-date--empty{color:var(--lcr-ink-700);font-weight:400}.pbi-start__val-label{font-size:11px;color:var(--lcr-ink-700)}.pbi-content{display:grid;grid-template-columns:repeat(4,265px);justify-content:center;gap:52px 104px;padding:46px 0 30px}.pbi-tile{display:flex;flex-direction:column;gap:8px;width:265px;padding:10px 10px 12px;border:1px solid var(--pbi-band);border-radius:5px;background:#fff;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.pbi-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.pbi-tile:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:2px}.pbi-tile__title{font-size:11px;font-weight:700;color:var(--pbi-ink);text-align:center;line-height:1.3;min-height:28px;display:flex;align-items:center;justify-content:center}.pbi-tile__thumb{display:block;width:100%;height:118px;border:1px solid var(--lcr-brand-300);border-radius:3px}.pbi-tile--soon{cursor:default;opacity:.42;box-shadow:none}.pbi-tile--soon:hover{transform:none;box-shadow:none}.pbi-kf{padding:10px 12px 14px}.pbi-kf__banner{margin-bottom:8px;padding:7px 0;border-radius:5px;background:var(--pbi-band-2);color:var(--pbi-band-fg);font-size:15px;font-weight:700;text-align:center}.pbi-kf__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.pbi-kf__col{display:flex;flex-direction:column;gap:6px}.pbi-kf__head{padding:6px 0;border-radius:5px;background:var(--pbi-band-2);color:var(--pbi-band-fg);font-size:13px;font-weight:700;text-align:center}.pbi-kf__head--total{background:var(--pbi-panel)}.pbi-kf__cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border:1px solid var(--pbi-frame);border-radius:5px;background:#dfe5e9}.pbi-kf__cell--x{background:#f2f4f4}.pbi-kf__value{font-size:18px;font-weight:700;color:var(--pbi-ink)}.pbi-kf__cell--x .pbi-kf__value{color:var(--lcr-ink-700)}.pbi-kf__value abbr{text-decoration:underline dotted;cursor:help}.pbi-kf__label{font-size:10px;font-weight:600;color:var(--color-text-muted);text-align:center}.pbi-card--centred .pbi-table{margin:0 auto}.pbi-card__note{margin:-2px 0 6px;padding:0 10px;text-align:center;font-size:11px;color:var(--lcr-ink-700)}.pbi-card__note abbr{font-weight:700;text-decoration:underline dotted;cursor:help}.pbi-chart__missing{margin:0;padding:34px 16px;text-align:center;font-size:12px;color:var(--lcr-ink-700)}.pbi-chart__missing abbr{font-size:15px;font-weight:700;text-decoration:underline dotted;cursor:help}.pbi-time thead th{height:19px;padding:1px 4px;vertical-align:middle;border-bottom:1px solid var(--pbi-grid)}.pbi-time thead tr:last-child th{border-bottom:2px solid var(--pbi-band)}.pbi-time thead th.pbi-table__name{border-bottom:2px solid var(--pbi-band)}.pbi-time thead th.pbi-time__yhead{font-weight:700}.pbi-time thead th.pbi-time__subhead{background:var(--pbi-cardfill)!important;color:var(--pbi-ink);font-weight:700;border-right-width:2px}.pbi-time__sub{background:var(--pbi-cardfill)!important;color:var(--pbi-ink);font-weight:700}.pbi-time__sub.pbi-table__num--x{color:var(--color-text-muted)}.pbi-time__sub.pbi-table__num--x abbr{border-bottom-color:var(--color-text-muted)}.pbi-time__now{background:var(--pbi-now)!important}.pbi-time__now.pbi-table__num--up,.pbi-time__now.pbi-table__num--down{color:var(--pbi-ink)}.pbi-time__measure{text-align:left;padding-left:12px;font-weight:600;color:var(--pbi-ink)}.pbi-time__measure--head{text-align:left}.pbi-table__name--strong{font-weight:700}.pbi-time__wrow--top>*{border-top:2px solid var(--pbi-band)}.pbi-time__xnote{text-align:left;padding:0 10px;color:var(--color-text-muted);font-size:12px;white-space:normal}.pbi-time__xnote abbr{text-decoration:none;border-bottom:1px dotted var(--lcr-line-strong);cursor:help;font-weight:700;color:var(--lcr-ink-700)}.pbi-bbc{display:flex;align-items:flex-start;gap:8px}.pbi-bbc__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.pbi-bbc__slicer-title{font-size:12px;font-weight:700;color:var(--pbi-head-fg);padding:0 2px}.pbi-bbc__list{display:flex;flex-direction:column;gap:3px;max-height:300px;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.pbi-bbc__list::-webkit-scrollbar{width:8px}.pbi-bbc__list::-webkit-scrollbar-track{background:transparent}.pbi-bbc__list::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pbi-bbc__list::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pbi-bbc__opt{display:flex;flex-direction:column;gap:1px;padding:6px 9px;border:1px solid transparent;border-radius:5px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.pbi-bbc__opt:hover{background:var(--lcr-brand-300)}.pbi-bbc__opt:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:1px}.pbi-bbc__opt--active{background:var(--pbi-cardfill);border-color:var(--pbi-frame)}.pbi-bbc__opt-name{font-size:12px;font-weight:600;color:var(--pbi-ink)}.pbi-bbc__opt--active .pbi-bbc__opt-name{font-weight:700}.pbi-bbc__opt-sub{font-size:10px;color:var(--lcr-ink-700)}.pbi-bbc__kpis{display:flex;flex-direction:column;gap:6px}.pbi-bbc__xtag{font-weight:700;color:var(--lcr-ink-700);border-bottom:1px dotted var(--lcr-line-strong);text-decoration:none;cursor:help;margin-right:4px}.pbi-bbc__chart-note{margin:2px 6px 0;font-size:11px;line-height:1.5;text-align:center;color:var(--color-text-muted)}.pbi-bbc__chart-note .pbi-bbc__xtag{margin-right:0}.pbi-city__toolbar{display:flex;justify-content:center}.pbi-toggle{display:inline-flex;gap:2px;padding:3px;border-radius:5px;background:var(--pbi-panel);border:1px solid var(--pbi-frame)}.pbi-toggle__btn{border:none;background:transparent;padding:5px 18px;border-radius:4px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--pbi-head-fg);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.pbi-toggle__btn:hover{background:#ffffff73}.pbi-toggle__btn--active{background:#fff;color:var(--pbi-ink);box-shadow:var(--shadow-xs)}.pbi-toggle__btn:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:2px}.pbi-city__pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pbi-city-kpis{display:grid;gap:8px}.pbi-city-kpis--pair{grid-template-columns:1fr 1fr}.pbi-city-kpi{border:1px solid var(--pbi-frame);border-radius:5px;background:#fff;padding:8px}.pbi-city-kpi__row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pbi-chart__legend-item--x{opacity:.8}.pbi-chart__legend-item--x abbr{text-decoration:underline dotted;cursor:help;font-weight:700}.pbi-chart__grid{stroke:var(--pbi-panel);stroke-width:.75}.pbi-chart__axislabel{font-size:9px;fill:var(--pbi-head-fg);pointer-events:none}.pbi-chart__refline{stroke:var(--pbi-grid);stroke-width:1;stroke-dasharray:4 3}.pbi-chart__reftext{font-size:9px;font-weight:600;fill:var(--pbi-ink);pointer-events:none}.pbi-chart__nowline{stroke:var(--pbi-frame);stroke-width:1;stroke-dasharray:3 3}.pbi-chart__bar,.pbi-chart__seg,.pbi-chart__area,.pbi-chart__box,.pbi-donut__slice{cursor:default;transition:opacity .12s ease}.pbi-chart__bar:hover,.pbi-chart__seg:hover,.pbi-chart__box:hover,.pbi-donut__slice:hover{opacity:.82}.pbi-chart__area{transition:fill-opacity .12s ease}.pbi-chart__area:hover{fill-opacity:.55}.pbi-chart__line{stroke-linejoin:round;stroke-linecap:round}.pbi-chart__dot{cursor:default}.pbi-chart__seglabel{font-size:9px;font-weight:600;fill:var(--pbi-ink);pointer-events:none}.pbi-chart__seglabel--inv{fill:#fff}.pbi-ov__bottom .pbi-chart__legend{min-height:40px;align-content:flex-start}.pbi-chart__whisker{stroke:var(--pbi-grid);stroke-width:1}.pbi-chart__boxmedian{stroke:var(--pbi-ink);stroke-width:1.5}.pbi-donut__count{font-size:10px;font-weight:600;fill:var(--pbi-ink);pointer-events:none}.pbi-donut__total{font-size:18px;font-weight:700;fill:var(--pbi-ink);dominant-baseline:middle;pointer-events:none}.pbi-donut__total-cap{font-size:9px;fill:var(--pbi-head-fg);dominant-baseline:middle;pointer-events:none}.pbi-slicer-rail{display:flex;flex-direction:column;gap:12px}.pbi-slicer{position:relative;display:flex;flex-direction:column;gap:3px}.pbi-slicer__label{font-size:10px;font-weight:600;letter-spacing:.1px;color:var(--pbi-head-fg);padding:0 2px}.pbi-slicer__box{border:1px solid var(--pbi-frame);border-radius:3px;background:#fff}.pbi-slicer__box--btn{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-height:26px;padding:4px 8px;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pbi-slicer__box--btn:hover{border-color:var(--pbi-head-fg)}.pbi-slicer__box--btn:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:1px}.pbi-slicer--open .pbi-slicer__box--btn{border-color:var(--pbi-head-fg)}.pbi-slicer__box--btn:disabled{cursor:not-allowed;opacity:.55}.pbi-slicer__value{flex:1;min-width:0;font-size:11px;color:var(--pbi-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pbi-slicer__value--all{color:var(--pbi-head-fg)}.pbi-slicer__chev{flex-shrink:0;color:var(--pbi-head-fg);transition:transform var(--transition-fast)}.pbi-slicer__chev--open{transform:rotate(180deg)}.pbi-slicer__panel{position:absolute;top:100%;left:0;right:0;z-index:var(--z-dropdown);margin-top:2px;border:1px solid var(--pbi-frame);border-radius:3px;background:#fff;box-shadow:var(--shadow-md);padding:3px}.pbi-slicer__box--list{padding:3px}.pbi-slicer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;max-height:210px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.pbi-slicer__list::-webkit-scrollbar{width:8px}.pbi-slicer__list::-webkit-scrollbar-track{background:transparent}.pbi-slicer__list::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.pbi-slicer__list::-webkit-scrollbar-thumb:hover{background:var(--lcr-brand-700)}.pbi-slicer__opt{display:flex;align-items:center;gap:7px;width:100%;padding:4px 7px;border:1px solid transparent;border-radius:3px;background:transparent;font:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.pbi-slicer__opt:hover{background:var(--pbi-cardfill)}.pbi-slicer__opt:focus-visible{outline:2px solid var(--pbi-frame);outline-offset:-1px}.pbi-slicer__opt--on{background:var(--pbi-cardfill)}.pbi-slicer__opt--all{border-bottom:1px solid var(--pbi-frame);border-radius:3px 3px 0 0}.pbi-slicer__opt-label{flex:1;min-width:0;font-size:11px;color:var(--pbi-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pbi-slicer__opt-count{flex-shrink:0;font-size:10px;color:var(--pbi-head-fg)}.pbi-slicer-disabled{position:relative}.pbi-slicer-disabled .pbi-slicer__label,.pbi-slicer-disabled .pbi-slicer__box--list{opacity:.5}.pbi-slicer-disabled .pbi-slicer__box--list{pointer-events:none}.pbi-slicer-disabled:after{content:"";position:absolute;inset:0;cursor:not-allowed}.pbi-time thead th.pbi-table__name.pbi-time__corner{text-align:center;font-weight:700;border-bottom:1px solid var(--pbi-grid)}.pbi-time thead tr:last-child th.pbi-table__name.pbi-time__corner{border-bottom:2px solid var(--pbi-band)}.pbi-time--freeze1 .pbi-table__name{position:sticky;left:0;z-index:1;background:#fff;box-shadow:2px 0 3px -1px #2524231a}.pbi-time--freeze1 thead th.pbi-table__name{z-index:2;background:var(--pbi-panel)}.pbi-time--freeze1 .pbi-table__row:hover>.pbi-table__name{background:var(--pbi-panel)}.pbi .pbi-bld-chartwrap{position:relative}.pbi .pbi-bld-total{position:absolute;top:10px;left:12px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 12px 6px;background:#fff;border:1px solid var(--pbi-frame);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs)}.pbi .pbi-bld-total__value{font-size:22px;font-weight:700;line-height:1.05;color:var(--pbi-ink)}.pbi .pbi-bld-total__label{font-size:10px;font-weight:600;color:var(--color-text-muted)}.pbi .pbi-bld-partoggle{align-self:flex-start;margin-bottom:2px}.pbi-city-chart{display:flex;flex-direction:column;border:1px solid var(--pbi-frame);border-radius:5px;background:#fff;padding:6px 8px 4px}.pbi-city-chart>.pbi-chart{border:none;background:transparent;border-radius:0;padding:0}.pbi-slicer__glyph{flex-shrink:0;display:block}.pbi-slicer__glyph-box{fill:#fff;stroke:var(--pbi-frame);stroke-width:1}.pbi-slicer__glyph-box--on{fill:var(--pbi-ink);stroke:var(--pbi-ink)}.pbi-slicer__glyph-tick{stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pbi-slicer__glyph-dot{fill:var(--pbi-ink)}.pbi-fm__states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start}.pbi-fm-panel{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:5px;background:var(--pbi-panel)}.pbi-fm-panel .pbi-chart__legend{min-height:34px;align-content:flex-start;gap:4px 7px;font-size:10.5px}.pbi-fm-panel .pbi-chart__legend-item{gap:3px}.pbi-fm-panel__kpis{display:flex;flex-direction:column;gap:6px}.pbi-fm-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pbi-fm-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.pbi-fm-panel .pbi-kf__cell{padding:7px 3px;gap:1px}.pbi-fm-panel .pbi-kf__value{font-size:15px}.pbi-fm-panel .pbi-kf__label{font-size:9px}.pbi-fm-panel .pbi-chart__legend{flex-wrap:wrap;gap:3px 9px;font-size:10px}.pbi-kf__cell.pbi-fm-kpi--parking{background:#e7dccf}.pbi-kf__cell.pbi-fm-kpi--cellar{background:#dce1e5}.pbi-fm__units{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start}.pbi-fmx{display:flex;align-items:flex-start;gap:8px}.pbi-fmx__main{flex:1;min-width:0;display:flex;align-items:flex-start;gap:8px}.pbi-fmx__charts{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.pbi-fmx__rail{width:250px;flex-shrink:0}.pbi-fmx__band{gap:5px;padding:8px 8px 10px}.pbi-fmx__band .pbi-toggle{align-self:center;margin-bottom:1px}.pbi-fmx__note{margin:0 0 1px;text-align:center;font-size:11px;line-height:1.4;color:var(--lcr-ink-700)}.pbi-fmx__note abbr{font-weight:700;text-decoration:underline dotted;cursor:help}.pbi-fmx-kpi{display:flex;flex-direction:column;gap:8px}.pbi-fmx-kpi__head{padding:7px 0;border-radius:5px;background:var(--pbi-band-2);color:var(--pbi-band-fg);font-size:14px;font-weight:700;text-align:center}.pbi-fmx-kpi__card{display:flex;flex-direction:column;gap:3px;padding:8px 12px 9px;border:1px solid var(--pbi-frame);border-left-width:4px;border-radius:5px;background:var(--pbi-cardfill)}.pbi-fmx-kpi__state{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--pbi-ink)}.pbi-fmx-kpi__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pbi-fmx-kpi__count{font-size:23px;font-weight:700;line-height:1.05;color:var(--pbi-ink)}.pbi-fmx-kpi__count small{font-size:11px;font-weight:600;color:var(--color-text-muted);margin-left:5px}.pbi-fmx-kpi__metrics{display:flex;gap:18px;margin-top:3px}.pbi-fmx-kpi__metric{display:flex;flex-direction:column;gap:1px}.pbi-fmx-kpi__m-val{font-size:14px;font-weight:700;color:var(--pbi-ink)}.pbi-fmx-kpi__m-val abbr{text-decoration:underline dotted;cursor:help}.pbi-fmx-kpi__m-lbl{font-size:9.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted)}.pbi-fmt__row{display:flex;align-items:center;gap:10px}.pbi-fmt__row>.pbi-chart{flex:1 1 auto;min-width:0}.pbi-fmt__kpi{flex:0 0 240px;align-self:center}.pbi-fmt__kpi .pbi-kf__cell{min-height:64px;justify-content:center}.pbi-prices{min-width:0}.pbi-prices__grid{display:grid;grid-template-columns:580fr 336fr 585fr;gap:8px;align-items:start}.pbi-prices__grid>*{min-width:0}.pbi-prices__hist{grid-column:1;grid-row:1}.pbi-prices__table{grid-column:2 / 4;grid-row:1}.pbi-prices__mix{grid-column:1;grid-row:2}.pbi-prices__box{grid-column:2;grid-row:2}.pbi-prices__pivot .pbi-table td{height:25px}.pbi-prices__pivot{grid-column:3;grid-row:2}.pbi-prices__table .pbi-card__scroll{max-height:404px}.pbi-prices__count{border-right:1px solid var(--pbi-grid)}.pbi-lg-title{flex-shrink:0;display:flex;align-items:baseline;gap:12px;padding:8px 14px;border:1px solid var(--pbi-frame);border-radius:5px;background:var(--pbi-band-2)}.pbi-lg-title__name{font-size:16px;font-weight:700;color:var(--pbi-band-fg)}.pbi-lg-title__meta{font-size:11px;font-weight:600;color:var(--pbi-band-fg);opacity:.78}.pbi-lg-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.pbi-lg-bar{flex:0 0 260px;align-self:stretch;padding-top:0;padding-bottom:0}.pbi-lg-pivot{flex:1 1 320px;min-width:0;margin:0}.pbi-lg-pivot .pbi-card__title{margin-top:2px}.pbi-iko-head{flex-shrink:0;padding:9px 14px;border-radius:5px;background:var(--pbi-panel);text-align:center}.pbi-iko-head__title{margin:0;font-size:16px;font-weight:700;color:var(--pbi-ink);letter-spacing:.01em}.pbi-iko-head__sub{display:block;margin-top:2px;font-size:11.5px;font-weight:600;color:var(--lcr-ink-700)}.pbi-iko-progress{position:relative;display:flex;align-items:center;justify-content:flex-end;height:16px}.pbi-iko-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:12px;border-radius:2px;background:var(--pbi-band);opacity:.5}.pbi-iko-pct{position:relative;z-index:1}.pbi-a4__row{display:flex;gap:20px;align-items:stretch;flex-shrink:0}.pbi-a4__row .pbi-table thead th{height:52px}.pbi-a4__row>*{min-width:0;flex:1 1 auto}.pbi-a4__legend{display:flex;justify-content:center;gap:26px;margin:3px 0 0;font-size:12.5px;font-weight:700}.grid-body.hg-v2{--col-name: 300px;--col-sales-bar: 0px;--hg-navy: #243142;--hg-navy-hover: #2c3b4f;--hg-panel-text: #ffffff;--hg-panel-muted: #b9c3d0;--hg-sales-lane: #f2f8f0;--hg-sales-bar: #9ccf8b;--hg-sales-ink: #1f5f22;--hg-build-lane: #e6eef9;--hg-build-ink: #2b5f9e;--hg-grid-line: rgba(36, 49, 66, .07);--hg-radius: 10px}.hg-v2 .row--header .cell{background:#f6f8fb;border-right:none;border-bottom:1px solid #e3e8ef;color:#6b7785}.hg-v2 .row--header .cell--quarter-header:hover{background:#f6f8fb!important}.hg-v2 .row--header .col-frozen .cell--name{align-items:center;justify-content:center;padding:0;font-size:17px;font-weight:700!important;text-transform:none;letter-spacing:0;color:#5d6977;border-top-left-radius:var(--hg-radius)}.hg-v2 .header-projekt-label{flex:none;color:#1c2633}.hg-v2 .row--header .cell--year-row{height:38px;align-items:flex-end;padding-bottom:3px;font-size:15px;font-weight:800;color:#1c2633;letter-spacing:0}.hg-v2 .row--header .month-header{font-size:10.5px;font-weight:500;color:#6b7785;gap:0;height:100%}.hg-v2 .row--header .month-header span{flex:1;text-align:center;border-left:1px solid #e3e8ef;line-height:22px;text-transform:uppercase}.hg-v2 .row--header .cell--quarter-header[data-year-start] .month-header span:first-child{font-weight:800;color:#1c2633}.hg-v2 .cell--year-start{border-left:1.5px solid var(--lcr-line-strong)!important}.hg-v2 .cell--year-start:before{display:block;background:var(--lcr-line-strong);z-index:3}.hg-v2 .row--header .cell--quarter-header.cell--year-start .month-header span:first-child{border-left:none}.hg-v2 .row--header .col-scroll{position:relative}.hg-v2 .row--group{margin-top:14px}.hg-v2 .row--group:after{display:none}.grid-body.hg-v2 .row--group{margin-bottom:0}.grid-body.hg-v2 .row--group .cell,.grid-body.hg-v2 .row--group .col-frozen .cell--group,.grid-body.hg-v2 .row--group .col-scroll .cell:last-child{box-shadow:none}.hg-v2 .row--group .cell{height:74px;border-top:none!important;background:var(--hg-navy)!important;color:var(--hg-panel-text)}.hg-v2 .row--group .col-frozen .cell--group{position:relative;border-top-left-radius:var(--hg-radius);padding-left:20px;gap:12px;overflow:visible;white-space:nowrap}.hg-v2 .row--group .col-scroll>.cell:last-child{border-top-right-radius:var(--hg-radius)}.hg-v2 .row--group .group-label{font-size:17px;font-weight:800;letter-spacing:.01em;color:#fff}.hg-v2 .group-label-stack--hg{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:0;flex:1}.hg-v2 .group-stats-inline{font-size:13px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--hg-panel-muted)}.hg-v2 .group-label-stack--hg .group-label{line-height:22px}.hg-v2 .group-drag-handle{color:#fff;margin-right:0;position:absolute;left:4px;opacity:0}.hg-v2 .row--group:hover .group-drag-handle{opacity:.55}.hg-v2 .group-add-btn,.hg-v2 .group-delete-btn{position:absolute;top:8px;transform:none;flex:none;color:#fff}.hg-v2 .group-delete-btn{right:10px}.hg-v2 .group-add-btn{right:36px;background:#ffffff1f;opacity:0}.hg-v2 .row--group:hover .group-add-btn{opacity:1}.hg-v2 .cell--group-fill>.cell{border-bottom:none}.grid-body.hg-v2 .building-box{--bx-radius: var(--hg-radius);--bx-frozen: var(--hg-navy);margin:1px 0 0;border:none;border-top:2px solid var(--hg-navy);border-bottom:2px solid var(--hg-navy);box-shadow:0 1px 2px #0f172a0f}.grid-body.hg-v2 .building-box:hover{box-shadow:0 2px 8px #0f172a1f}.grid-body.hg-v2 .building-box .project-row .col-frozen .cell{background:var(--hg-navy)}.grid-body.hg-v2 .building-box .project-row:hover .col-frozen .cell{background:var(--hg-navy-hover)}.grid-body.hg-v2:not(.grid-body--kpi) .building-box .project-row:hover .cell--quarter{background-color:transparent}.hg-v2 .project-row .cell--quarter{background-image:none!important}.hg-v2 .project-row .col-frozen .cell--name{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:0 14px 0 20px;border-right:none;color:var(--hg-panel-text)}.hg-v2 .project-row .row-name{flex:none;padding:0;margin:0;font-size:16px;font-weight:700;color:#fff;line-height:22px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.hg-v2 .project-row .row-name:hover{background:none;color:#fff;text-decoration:underline}.hg-v2 .row-flats{font-size:12.5px;text-transform:none;letter-spacing:0;font-weight:500;line-height:18px;color:var(--hg-panel-muted)}.hg-v2 .row-flats .stock-val{color:inherit;font-weight:600}.hg-v2 .project-row .drag-handle{position:absolute;left:4px;top:50%;transform:translateY(-50%);margin:0;color:#fff;opacity:0}.hg-v2 .project-row:hover .drag-handle{opacity:.45}.hg-v2 .cell--sales-bar--inline{height:auto!important;padding:0;background:transparent!important;border:none;overflow:visible}.hg-v2 .cell--sales-bar--inline .stat-sell-pct{display:inline;width:auto;padding:0;background:transparent!important;font-size:13px;font-weight:500;line-height:19px;color:var(--hg-panel-muted)}.hg-v2 .cell--sales-bar--inline .stock-val,.hg-v2 .cell--sales-bar--inline .stock-sep{color:inherit;font-weight:inherit}.hg-v2 .stat-sell-pct--cols,.hg-v2 .cell--sales-bar--inline .stat-sell-pct--cols{display:grid;grid-template-columns:94px 62px minmax(0,auto);column-gap:4px;align-items:baseline;width:100%;min-width:0;margin-left:0;font-size:12.5px}.hg-v2 .stat-sell-pct--cols .stock-part{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hg-v2 .cell--sales-bar--inline .sales-bar-open-btn{position:static;display:inline-flex;transform:none;margin-left:4px;color:var(--hg-panel-muted);vertical-align:middle}.hg-v2 .cell--sales-bar--inline .units-input{width:64px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.25)}.hg-lane{align-self:start;position:relative;z-index:1;border-radius:6px;pointer-events:none;background-image:linear-gradient(to right,var(--hg-grid-line) 0 1px,transparent 1px);background-size:calc(100% / (var(--quarter-count, 8) * var(--hg-sub, 3))) 100%;background-repeat:repeat-x}.view-mode-quarterly .hg-lane{--hg-sub: 1}.view-mode-yearly .hg-lane{background-image:none}.hg-lane--sales{background-color:var(--hg-sales-lane)}.hg-lane--build{background-color:var(--hg-build-lane)}.hg-v2 .project-row--with-tracks .gantt-bar--presales,.hg-v2 .project-row--with-tracks .gantt-bar--fnf{height:20px!important;margin-top:16px!important;border-radius:4px}.hg-v2 .gantt-bar--presales{background:var(--hg-sales-bar);padding:0 8px;z-index:4}.hg-v2 .gantt-bar--fnf{background:#eef6e2}.hg-v2 .project-row--with-tracks .gantt-bar--m-phase{height:20px!important;border-radius:4px;padding:0 8px;color:#fff;z-index:4}.hg-v2 .gantt-bar__m-label{font-size:11.5px;font-weight:800;letter-spacing:.02em;color:#fff}.hg-v2 .gantt-bar__m-label--presales{color:var(--hg-sales-ink);text-transform:none}.hg-v2 .project-row .cell-label--presales{display:none}.hg-v2 .project-row .col-scroll>.cell--sales-bar{border:none}.grid-body--kpi.hg-v2 .project-row,.kpi-board__body.hg-v2 .project-row{--project-row-height: 80px}.grid-body.hg-v2 .row--group .col-scroll .cell--sales-bar,.grid-body.hg-v2 .row--group .col-scroll .cell--quarter-group{background:var(--hg-navy)!important;opacity:1!important;box-shadow:none}.grid-body.hg-v2 .row--group .col-scroll .cell:last-child{border-top-right-radius:var(--hg-radius);border-bottom-right-radius:var(--hg-radius)}.grid-body--kpi.hg-v2 .row--header .col-scroll .cell--sales-bar{background:#f6f8fb}.hg-v2 .row--header .cell--kpi-header{color:#3d4957}.hg-v2 .row--header .cell--kpi-header__code{color:#1c2633}.hg-v2 .kpi-board__name-text{flex:none;max-width:100%;font-size:16px;font-weight:700;line-height:22px;color:#fff}.hg-v2 .kpi-board__name-cell:hover .kpi-board__name-text{text-decoration:underline}.hg-v2 .kpi-param-row .col-frozen .kpi-param-row__label--panel{justify-content:flex-start;gap:6px;padding:0 12px 0 20px;background:#fff;font-size:12px;font-weight:600;color:#1c2633}.grid-body.hg-v2 .row--group .col-scroll .cell{border-right:none!important;border-left:none!important}.grid-body.hg-v2 .col-scroll>.cell--sales-bar:not(.cell--quarter-group):not(.desk-frozen){padding:0!important;border:none!important;box-shadow:none!important;overflow:hidden!important}.prediction-expanded-block--rooms-toggle{cursor:pointer}.prediction-expanded-block .pred-section--plan+.pred-section--actual{border-top:3px solid #b8c4d2}.pred-room{position:relative}.pred-section--with-rooms .pred-room+.pred-room{border-top:2px solid #b8c4d2}.pred-section--with-rooms .pred-room--total{background:#f7f9fc}.pred-room__tag{position:absolute;top:0;bottom:0;left:calc(var(--col-name) + var(--col-sales-bar) - 48px - 20px - 56px);width:56px;z-index:3;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--hg-navy, #243142);background:#eef3f9;border-right:1px solid var(--lcr-brand-300)}.pred-room--total .pred-room__tag{font-weight:700;color:#5d6977;background:#f1f4f8}.pred-rooms-empty{padding:8px 12px 8px calc(var(--col-name) + var(--col-sales-bar) + 12px);font-size:12px;color:var(--color-text-muted);border-top:1px solid #e3e8ef}.pred-rooms-toggle{position:sticky;left:0;width:max-content;padding:4px 20px 6px;font-size:11px;font-weight:700;letter-spacing:.03em;color:#2b5f9e;-webkit-user-select:none;user-select:none}.prediction-expanded-block--rooms-toggle:hover .pred-rooms-toggle{text-decoration:underline}.unit-types-popover__list--rooms{margin-top:8px}.unit-types-popover{width:auto;max-width:calc(100vw - 16px)}.unit-types-popover .unit-types-popover__list{overflow-x:auto}.unit-types-popover .unit-types-popover__row{grid-template-columns:minmax(84px,1.2fr) 72px 50px 76px 66px 82px 72px;gap:6px;min-width:540px}.unit-types-popover__cell--avg{color:#374151;white-space:nowrap}.unit-types-popover__cell--gap{border-left:1px solid #dfe3e8;padding-left:6px}.stock-res{color:#4b5563;font-weight:500}.hg-v2 .cell--sales-bar--inline .stock-res{color:#8793a3;font-weight:400}.summary-rows{position:relative}.summary-rows__title{position:absolute;top:0;bottom:0;left:0;width:calc(var(--col-name) + var(--col-sales-bar) - 68px);z-index:3;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--lcr-ink-800, #1c2633);pointer-events:none}.hg-v2.view-mode-monthly .prediction-expanded-block .building-pred-row .cell--quarter,.hg-v2.view-mode-monthly .summary-rows .building-pred-row .cell--quarter{background-image:linear-gradient(var(--hg-grid-line-strong),var(--hg-grid-line-strong)),linear-gradient(var(--hg-grid-line-strong),var(--hg-grid-line-strong))!important;background-size:1px 100%,1px 100%!important;background-position:33.333% 0,66.666% 0!important;background-repeat:no-repeat!important}.hg-v2:not(.view-mode-yearly) .prediction-expanded-block .building-pred-row .cell--quarter,.hg-v2:not(.view-mode-yearly) .summary-rows .building-pred-row .cell--quarter{box-shadow:inset 1px 0 0 var(--hg-grid-line-strong)}.grid-body.hg-v2{--hg-grid-line-strong: rgba(36, 49, 66, .12)}.users-dialog,.events-dialog{--adm-row-radius: 16px}.users-dialog__search input,.users-dialog__field input,.users-dialog__field select,.users-dialog__inline-input,.role-editor__fields input{height:38px;border:var(--glass-input-border);border-radius:var(--radius-full);background:var(--glass-input-bg);box-shadow:var(--glass-input-shadow);font-size:13.5px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.users-dialog__search input{padding-left:36px}.users-dialog__search svg{left:14px}.users-dialog__field input,.users-dialog__field select,.role-editor__fields input{padding:0 16px}.users-dialog__inline-input{height:34px;padding:0 14px}.users-dialog__search input:focus-visible,.users-dialog__field input:focus-visible,.users-dialog__field select:focus-visible,.users-dialog__inline-input:focus-visible,.role-editor__fields input:focus-visible{outline:none;border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.users-dialog .dropdown__trigger,.events-dialog .dropdown__trigger{border-radius:var(--radius-full);height:38px;padding-left:16px}.users-dialog__cell>.dropdown .dropdown__trigger{height:34px}.users-dialog__add-btn,.users-dialog__btn--primary{height:40px;padding:0 20px;border:var(--glass-btn-primary-border);border-radius:var(--radius-full);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff;font-size:14px;font-weight:700;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.users-dialog__add-btn:hover,.users-dialog__add-btn[aria-expanded=true],.users-dialog__btn--primary:hover:not(:disabled){background:var(--glass-btn-primary-bg-hover);box-shadow:var(--glass-btn-primary-shadow-hover);transform:translateY(-1px)}.users-dialog__add-btn:active,.users-dialog__btn--primary:active:not(:disabled){transform:scale(.97)}.users-dialog__btn--ghost{height:40px;padding:0 20px;border:var(--glass-btn-secondary-border, 1px solid rgba(15, 23, 42, .1));border-radius:var(--radius-full);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow, 0 1px 2px rgba(15, 23, 42, .06));font-size:13.5px}.users-dialog__btn--ghost:hover:not(:disabled){background:#fff}.users-dialog__icon-btn{width:34px;height:34px;border-radius:50%;border-color:#0f172a1a;box-shadow:0 1px 2px #0f172a0f}.admin-tabs{border-radius:var(--radius-full);border:var(--glass-input-border);background:var(--glass-input-bg);box-shadow:var(--glass-input-shadow)}.admin-tabs__tab{border-radius:var(--radius-full);padding-left:16px;padding-right:16px}.admin-tabs__tab--active,.admin-tabs__tab--active:hover{background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow)}.users-dialog__add{padding:16px 18px;border-radius:var(--adm-row-radius);background:#fff;border:1px solid rgba(15,23,42,.06);box-shadow:var(--shadow-bento)}.role-editor__group,.role-editor__note{border-radius:14px}.users-dialog__head,.roles-list__head,.events-dialog__head{padding-left:18px;padding-right:18px;border-radius:var(--radius-full);background:#fff9;border-color:#0f172a0f}.users-dialog__card,.roles-list__row,.events-dialog__row{padding-left:18px;padding-right:18px;border-radius:var(--adm-row-radius);border-color:#0f172a0f;box-shadow:0 1px 2px #0f172a0d}.users-dialog__card:hover,.roles-list__row:hover,.events-dialog__row:hover{box-shadow:0 2px 8px #0f172a1a}.users-dialog__list,.events-dialog__list{gap:8px}.events-dialog__json{border-radius:12px}.users-dialog__error,.events-dialog__error{border-radius:14px}.dialog--role .dialog__btn{height:40px;padding:0 22px;border-radius:var(--radius-full);font-size:14px;font-weight:700}.dialog--role .dialog__close{width:34px;height:34px;background:var(--glass-btn-secondary-bg);border:var(--glass-btn-secondary-border);box-shadow:0 1px 2px #0f172a0f}.dialog--role .role-editor__group{border-radius:18px;border-color:#0f172a0f;box-shadow:0 1px 2px #0f172a0d}.dialog--role .role-editor__note{border-radius:14px}.dialog--role .role-editor__check input{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:1px 0 0;border:1.5px solid rgba(15,23,42,.28);border-radius:6px;background:#fff center / 12px 12px no-repeat;box-shadow:0 1px 2px #0f172a0f;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.dialog--role .role-editor__check input:checked{border-color:transparent;background-color:var(--lcr-brand-800);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.3l2.2 2.2 4.8-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dialog--role .role-editor__check input:focus-visible{outline:2px solid var(--lcr-brand-500);outline-offset:2px}.dialog--role .role-editor__check input:disabled{opacity:.5}.hg-v2 .pred-section__tag{font-size:10px;letter-spacing:.2px}.pv-gantt{--pvg-navy: #243142;--pvg-grid-line: rgba(36, 49, 66, .08);--pvg-year-h: 38px}.pv-gantt .pv-gantt__row{grid-template-columns:104px 1fr}.pv-gantt .pv-gantt__row--years,.pv-gantt .pv-gantt__row--quarters,.pv-gantt .pv-gantt__row--years .pv-gantt__lane-label,.pv-gantt .pv-gantt__row--quarters .pv-gantt__lane-label,.pv-gantt .pv-gantt__row--years .pv-gantt__lane-grid--header,.pv-gantt .pv-gantt__row--quarters .pv-gantt__lane-grid--header{background-color:#f6f8fb;border-color:#e3e8ef}.pv-gantt .pv-gantt__row--years{min-height:var(--pvg-year-h);border-bottom:none}.pv-gantt .pv-gantt__row--quarters{top:var(--pvg-year-h)}.pv-gantt .pv-gantt__row--years .pv-gantt__cell{align-items:flex-end;padding-bottom:3px}.pv-gantt .pv-gantt__year-label{font-size:15px;font-weight:800;color:#1c2633;letter-spacing:0}.pv-gantt .pv-gantt__cell--year-start{border-left:none!important}.pv-gantt .pv-gantt__row--quarters .pv-gantt__cell{padding:0;border-left:none}.pv-gantt .pv-gantt__months{height:100%;gap:0;font-size:10.5px;font-weight:500;color:#6b7785}.pv-gantt .pv-gantt__months>span{flex:1;align-self:stretch;display:flex;align-items:center;justify-content:center;border-left:1px solid #e3e8ef;text-transform:uppercase}.pv-gantt .pv-gantt__months>span.pv-gantt__month--jan{font-weight:800;color:#1c2633}.pv-gantt .pv-gantt__q-label{font-size:11px;font-weight:600;color:#6b7785}.pv-gantt .pv-gantt__row--quarters .pv-gantt__cell{border-left:1px solid #e3e8ef}.pv-gantt--monthly .pv-gantt__row--quarters .pv-gantt__cell{border-left:none}.pv-gantt .pv-gantt__row--lane{min-height:0;padding:6px 0;border-bottom:none}.pv-gantt .pv-gantt__row--lane:first-of-type{padding-top:10px}.pv-gantt .pv-gantt__row--lane:hover .pv-gantt__lane-grid{filter:none}.pv-gantt .pv-gantt__row--lane .pv-gantt__lane-label,.pv-gantt .pv-gantt__row--lane:hover .pv-gantt__lane-label{justify-content:flex-start;padding:0 0 0 16px;background:#fff;border-right:none;font-size:11px;font-weight:800;letter-spacing:.06em}.pv-gantt .pv-gantt__row--sales .pv-gantt__lane-label{color:#1f5f22}.pv-gantt .pv-gantt__row--build .pv-gantt__lane-label{color:#2b5f9e;align-items:flex-start;padding-top:7px}.pv-gantt .pv-gantt__row--lane .pv-gantt__lane-grid{border-radius:6px;background-image:linear-gradient(to right,var(--pvg-grid-line) 0 1px,transparent 1px);background-size:calc(100% / var(--pv-units, 12)) 100%;background-repeat:repeat-x}.pv-gantt .pv-gantt__row--sales .pv-gantt__lane-grid,.pv-gantt .pv-gantt__row--sales:hover .pv-gantt__lane-grid{background-color:#f2f8f0;height:32px}.pv-gantt .pv-gantt__row--build .pv-gantt__lane-grid,.pv-gantt .pv-gantt__row--build:hover .pv-gantt__lane-grid{background-color:#e6eef9;padding:3px 0}.pv-gantt .pv-gantt-bar{height:20px;margin-top:0;align-self:center;padding:0 8px;border-radius:4px;border:none}.pv-gantt .pv-gantt-bar--presales{background:#9ccf8b;color:#1f5f22}.pv-gantt .pv-gantt-bar--fnf{background:#d9ecd1;color:#1f5f22}.pv-gantt .pv-gantt-bar--mphase{color:#fff}.pv-gantt .pv-gantt-bar__label{line-height:1.35;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.pv-gantt .pv-gantt-bar--mphase .pv-gantt-bar__label{font-size:11.5px;letter-spacing:.02em}.pv-gantt .pv-gantt__row--years .pv-gantt__lane-grid--header{position:relative}.pv-embed-grid--fazy .row--header .cell,.pv-embed-grid--fazy .row--header .col-scroll .cell--sales-bar{background:#f6f8fb;border-color:#e3e8ef}.pv-embed-grid--fazy .row--header .cell--kpi-header__code{color:#1c2633;font-weight:800}.pv-embed-grid--fazy .row--header .cell--kpi-header__name{color:#6b7785}.pv-embed-grid--fazy .project-row{border-top:2px solid #243142;border-bottom:2px solid #243142}.pv-embed-grid--fazy .project-row .col-scroll .cell--sales-bar,.pv-embed-grid--fazy .project-row:hover .col-scroll .cell--sales-bar{background:#243142;border-right:none;align-items:center;padding-left:20px}.pv-embed-grid--fazy .project-row .col-scroll .cell--sales-bar:before{content:"Obdobie";color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.pv-embed-grid--fazy .kpi-param-row .cell,.pv-embed-grid--fazy .kpi-param-row:nth-child(odd) .cell,.pv-embed-grid--fazy .grid-body--kpi .kpi-param-row .col-scroll .cell--sales-bar,.pv-embed-grid--fazy .grid-body--kpi .kpi-param-row:nth-child(odd) .col-scroll .cell--sales-bar{background:#fff;border-bottom:1px solid #eef1f5}.pv-embed-grid--fazy .grid-body--kpi .kpi-param-row .col-scroll .cell--sales-bar{padding-left:20px;font-size:12px;font-weight:600;color:#1c2633;border-right:1px solid #e3e8ef}.pv-embed-grid--fazy .kpi-param-row .col-scroll .kpi-param-cell{border-right:1px solid rgba(36,49,66,.08)}.pv-embed-grid--fazy .kpi-param-cell--clickable:hover{background:#eef3f9}.pv--with-pane-plan .pv-col-right .pv-bottom__timeline{min-height:170px;max-height:30vh}.pv-plan-pane,.pv-plan-pane--collapsed{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento)}.ptg{--ptg-room-w: 88px}.ptg__room-cell{position:sticky;left:0;z-index:60;width:var(--ptg-room-w);min-width:var(--ptg-room-w);max-width:var(--ptg-room-w);padding:0 10px;text-align:left;font-size:12px;font-weight:800;color:var(--lcr-navy);background:#fff}.ptg__label{left:var(--ptg-room-w)}.ptg tbody td{border-bottom:1px solid #e3e8ef}.ptg .ptg__cell,.ptg thead .ptg__cell--mh{border-right:1px solid #d5dde6}.ptg .ptg__cell--year-start{border-left:1.5px solid var(--lcr-line-strong)}.ptg__band>td{padding:0;border:none;border-bottom:none}.ptg__band-text{display:block;position:sticky;left:0;width:max-content;padding:6px 12px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#fff;font-style:normal}.ptg__band--plan>td{background:var(--lcr-navy)}.ptg__band--actual>td{background:var(--color-success)}.ptg__band--rooms>td{background:var(--color-warning)}.ptg__section--plan .ptg__room-cell,.ptg__section--plan .ptg__label,.ptg__section--plan .ptg__cell{background:#e9eef5}.ptg__section--plan .ptg__row--stock,.ptg__section--plan .ptg__row--stock .ptg__label,.ptg__section--plan .ptg__row--stock .ptg__cell{background:#f3f6fa}.ptg__section--plan .ptg__room-cell{background:#dfe7f0}.ptg__section--actual .ptg__label,.ptg__section--actual .ptg__cell{background:#ebf5ef}.ptg__section--actual .ptg__row--free,.ptg__section--actual .ptg__row--free .ptg__label,.ptg__section--actual .ptg__row--free .ptg__cell{background:#f4faf6}.ptg__section--actual .ptg__room-cell{background:#dfeee5;color:#1f6b4a}.ptg__section--rooms .ptg__label,.ptg__section--rooms .ptg__cell{background:#fdf5e9}.ptg__section--rooms .ptg__row--room:not(.ptg__row--room-first),.ptg__section--rooms .ptg__row--room:not(.ptg__row--room-first) .ptg__label,.ptg__section--rooms .ptg__row--room:not(.ptg__row--room-first) .ptg__cell{background:#fffaf1}.ptg__section--rooms .ptg__room-cell{background:#f8ecd7;color:#8a5b16}.ptg__section--rooms .ptg__cell,.ptg__section--rooms .ptg__label{color:var(--lcr-ink-800);font-size:12px;font-weight:700}.ptg__row--room-first>td{border-top:2px solid #d9b978}.ptg__rooms-empty{padding:8px 12px;font-size:12px;font-weight:500;color:var(--color-text-muted);text-align:left;background:#fdf5e9}.ptg__rooms-empty-text{position:sticky;left:12px}.ptg__section--plan .ptg__row--plan .ptg__input{background:transparent;border-color:transparent}.ptg__section--plan .ptg__row--plan .ptg__input:not(:read-only):not(.ptg__input--readonly){border-radius:var(--radius-full);min-width:34px;background:#fff;border-color:#9fb3c8}.plan-tl__title--toggle[aria-expanded=true]>.pv-toggle-chev{transform:none}.pv-plan-pane__toggle>.pv-toggle-chev{transform:rotate(180deg)}.hg-v2 .prediction-expanded-block .building-pred-row:hover .cell--quarter,.hg-v2 .prediction-expanded-block .building-pred-row:hover .desk-frozen__label{background-color:#e8eef6!important}.ptg__section--plan tr:not(.ptg__band):hover td:not(.ptg__room-cell){background-color:#dbe4f0}.ptg__section--actual tr:not(.ptg__band):hover td:not(.ptg__room-cell){background-color:#daece2}.ptg__section--rooms tr:not(.ptg__band):hover td:not(.ptg__room-cell){background-color:#f7e8cf}.pv-tabs .pv-tabs__toggle{padding:4px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow-bento);-webkit-backdrop-filter:none;backdrop-filter:none}.pv-tabs .cv-modetoggle__btn{padding:9px 22px;font-size:14px;font-weight:700;color:#3d4957}.pv-tabs .cv-modetoggle__btn:hover:not(.cv-modetoggle__btn--active){color:var(--lcr-navy)}.pv-tabs .cv-modetoggle__btn--active{color:#fff}.pv-tabs .seg-thumb{top:4px;bottom:4px}.pv-tabs .seg-thumb__glass{background:var(--glass-btn-primary-bg);border:var(--glass-btn-primary-border);box-shadow:var(--glass-btn-primary-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.board{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento);overflow:hidden}.pv-tabs{align-items:center;gap:10px}.pv-tabs__extra{margin-left:auto;display:flex;align-items:center}.pv-tabs__extra:empty{display:none}.board__filter{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-full);background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow-bento)}.board__filter-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:none;border-radius:var(--radius-full);background:transparent;font-family:var(--font);font-size:12.5px;font-weight:700;color:#5d6977;cursor:pointer}.board__filter-btn{padding:7px 14px;font-size:13px}.board__filter-btn:hover:not(.board__filter-btn--on){color:var(--lcr-navy)}.board__filter-btn--on{background:var(--glass-btn-primary-bg);color:#fff;box-shadow:var(--glass-btn-primary-shadow)}.board__filter-count{min-width:18px;padding:0 5px;border-radius:9px;background:#e3e8ef;color:#3d4957;font-size:11px;line-height:18px;text-align:center}.board__filter-btn--on .board__filter-count{background:#ffffff38;color:#fff}.board__list{flex:1 1 auto;min-height:160px;overflow-y:auto;padding:14px 20px;display:flex;flex-direction:column;gap:10px;background:#f7f9fc}.board__empty{margin:auto;padding:24px;text-align:center;color:#6b7785;font-size:13px}.board-note{padding:12px 14px;background:#fff;border:1px solid #e6ebf1;border-left:4px solid #9ccf8b;border-radius:14px;box-shadow:0 1px 2px #0f172a0a}.board-note--vystavba{border-left-color:#2b5f9e}.board-note__item{display:flex;gap:12px;align-items:flex-start}.board-note__avatar{flex:0 0 36px;width:36px;height:36px;border-radius:50%;object-fit:cover}.board-note__avatar--initials{display:inline-flex;align-items:center;justify-content:center;background:var(--lcr-navy);color:#fff;font-size:13px;font-weight:700}.board-note__body{flex:1;min-width:0}.board-note__meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.board-note__name{font-size:13.5px;font-weight:800;color:#1c2633}.board-note__phase{padding:1px 9px;border-radius:var(--radius-full);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.board-note__phase--predaj{background:#e3f1dd;color:#1f5f22}.board-note__phase--vystavba{background:#e1eaf7;color:#2b5f9e}.board-note__time{font-size:12px;color:#6b7785}.board-note__edited{font-size:11.5px;font-style:italic;color:#8b96a3}.board-note__item{position:relative}.board-note__actions{position:absolute;top:-4px;right:-4px;display:inline-flex;gap:4px;padding:2px 2px 2px 8px;border-radius:var(--radius-full);background:#fff;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.board-note__item:hover>.board-note__body>.board-note__meta>.board-note__actions,.board-note__item:focus-within>.board-note__body>.board-note__meta>.board-note__actions{opacity:1;pointer-events:auto}@media(hover:none){.board-note__actions{opacity:1;pointer-events:auto;position:static;margin-left:auto}}.board-note__action{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(15,23,42,.1);border-radius:50%;background:#fff;color:#3d4957;cursor:pointer}.board-note__action:hover{background:#eef3f9;color:var(--lcr-navy)}.board-note__action--danger:hover{background:#c4392e14;color:var(--color-danger)}.board-note__action--reply{width:auto;gap:5px;padding:0 11px;border-radius:var(--radius-full);font-family:var(--font);font-size:12px;font-weight:700}.board-note__thread{margin:10px 0 0 48px;padding-left:12px;border-left:2px solid #e3e8ef;display:flex;flex-direction:column;gap:10px}.board-note__item--reply .board-note__avatar{flex-basis:28px;width:28px;height:28px;font-size:11px}.board-note__item--reply .board-note__name{font-size:13px}.board-note__item--reply .board-note__text{margin-top:3px;font-size:13px}.board-note__reply-box{display:flex;flex-direction:column;gap:8px}.board-note__text{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:#1c2633;white-space:pre-wrap;overflow-wrap:anywhere}.board-note__edit{margin-top:8px;display:flex;flex-direction:column;gap:8px}.board-note__edit-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.board-note__edit-bar .board-phase{margin-right:auto}.board-note__edit-btns{display:inline-flex;gap:8px;margin-left:auto}.board--compact .board-note__edit-btns .board__btn{height:34px;padding:0 14px;font-size:13px}.board{position:relative}.board-confirm{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:16px;background:#28303e38;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:dialog-backdrop-in .14s ease-out}.board-confirm__card{width:100%;max-width:320px;padding:18px 18px 16px;border-radius:16px;background:#fff;box-shadow:0 10px 30px #0f172a33}.board-confirm__title{font-size:15px;font-weight:800;color:var(--color-danger)}.board-confirm__text{margin:6px 0 14px;font-size:13px;line-height:1.45;color:#3d4957}.board-confirm__bar{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.board-confirm__bar .board__btn{height:36px;padding:0 16px}.board__btn--danger{border:1px solid transparent;background:var(--color-danger);color:#fff}.board__btn--danger:hover{filter:brightness(1.08)}.board__error{margin:0 20px;padding:8px 12px;border-radius:10px;background:#c4392e14;color:var(--color-danger);font-size:12.5px}.board{grid-template-rows:minmax(0,1fr)}.board--with-composer{grid-template-columns:minmax(0,2fr) minmax(220px,1fr)}.board__main{display:flex;flex-direction:column;min-width:0;min-height:0}.board__main .board__error{margin:8px 20px}.board__composer{display:flex;flex-direction:column;gap:12px;min-height:0;padding:16px 18px 18px;border-left:1px solid #e8edf3;background:#fff}.board__composer .board-phase{flex-direction:row}.board__composer .board-phase__btn{flex:1;padding:8px 12px;font-size:12.5px}.board__composer .board__input--tall{flex:1 1 auto;min-height:180px;max-height:none;resize:none}.board__composer .board__error{margin:0}.board__composer .board__send{align-self:center;min-width:140px}@media(max-width:700px){.board--with-composer{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.board__composer{border-left:none;border-top:1px solid #e8edf3}.board__composer .board__input--tall{min-height:90px}}.board__readonly{padding:14px 20px;border-top:1px solid #e8edf3;font-size:12.5px;color:#6b7785}.board__input{width:100%;min-height:44px;max-height:180px;padding:10px 14px;border:var(--glass-input-border);border-radius:14px;background:#fff;font-family:var(--font);font-size:13.5px;line-height:1.45;color:#1c2633;resize:vertical}.board__input:focus{outline:none;border-color:#2431428c;box-shadow:var(--glass-input-focus-ring)}.board-phase{display:inline-flex;flex-direction:column;gap:4px}.board-note__edit-bar .board-phase{flex-direction:row}.board-phase__btn{padding:5px 12px;border:1px solid #dfe5ec;border-radius:var(--radius-full);background:#fff;font-family:var(--font);font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#6b7785;cursor:pointer}.board-phase__btn--predaj.board-phase__btn--on{background:#e3f1dd;border-color:#9ccf8b;color:#1f5f22}.board-phase__btn--vystavba.board-phase__btn--on{background:#e1eaf7;border-color:#7fa9e0;color:#2b5f9e}.board__btn{height:40px;padding:0 20px;border-radius:var(--radius-full);font-family:var(--font);font-size:13.5px;font-weight:700;cursor:pointer}.board__btn--primary{border:var(--glass-btn-primary-border);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.board__btn--primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.board__btn--ghost{border:var(--glass-btn-secondary-border);background:var(--glass-btn-secondary-bg);color:#1c2633}.board__send{flex-shrink:0}@media(max-width:767px){.m-portfolio{--m-pad-x: 10px}.mapview{margin-left:0;margin-right:0}}@media(max-width:380px){.m-portfolio{--m-pad-x: 8px}}@media(max-width:767px){.pv--mobile .pv-mob-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:8px 8px 8px 0;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-bento)}.pv--mobile .pv-mob-head .pv-header{flex:1;min-width:0;padding:0 0 0 8px;border-bottom:none}.pv--mobile .pv-mob-head .pv-header__title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.pv-mob-head__phases{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border:1px solid rgba(15,23,42,.12);border-radius:var(--radius-full);background:#fff;color:var(--lcr-navy);font-family:var(--font);font-size:13.5px;font-weight:700;cursor:pointer}.pv-mob-head__phases[aria-expanded=true]{background:var(--lcr-navy);color:#fff}.pv--mobile .pv-main{display:block}.pv--mobile .pv-col-left{position:fixed;top:0;bottom:0;left:0;z-index:1000;width:min(88vw,380px);max-height:none;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:0 var(--radius-xl) var(--radius-xl) 0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 10px 40px #0f172a47;transform:translate(-105%);transition:transform .26s cubic-bezier(.22,1,.36,1);visibility:hidden}.pv--mobile.pv--side-open .pv-col-left{transform:none;visibility:visible}.pv--mobile .pv-col-left .pv-box--phases-tall{flex:0 0 auto}.pv--mobile .pv-col-left .pv-box__scroll{overflow:visible}.pv-side-backdrop{position:fixed;inset:0;z-index:999;background:#0f172a61;animation:pv-side-fade .2s ease-out}@keyframes pv-side-fade{0%{opacity:0}to{opacity:1}}.pv-side-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:14px 14px 12px 18px;background:#fff;border-bottom:1px solid #e8edf3}.pv-side-head__title{flex:1;min-width:0;font-size:16px;font-weight:800;color:var(--lcr-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-side-head__close{width:34px;height:34px;flex-shrink:0;border:1px solid rgba(15,23,42,.12);border-radius:50%;background:#fff;color:#3d4957;font-size:20px;line-height:1;cursor:pointer}.pv--mobile .pv-tabs{flex-wrap:wrap}.pv--mobile .pv-tabs .pv-tabs__toggle{width:100%}.pv--mobile .pv-tabs .cv-modetoggle__btn{flex:1;padding:9px 4px;font-size:13px}.pv--mobile .pv-tabs__extra{margin-left:0;width:100%}.pv--mobile .board__filter{width:100%}.pv--mobile .board__filter-btn{flex:1;justify-content:center}.pv-plan-pane--mobile{flex:0 0 auto;min-height:0;padding:12px 10px 14px}.pv-plan-pane__mob-title{padding:0 4px 8px;font-size:14px;font-weight:800;color:var(--lcr-navy)}.pv--mobile .board{min-height:70vh}}@media(max-width:767px){.pv--mobile .pv-embed-grid--fazy{--col-sales-bar: 150px}.pv--mobile .pv-embed-grid--fazy .grid-body--kpi .col-scroll{grid-template-columns:var(--col-sales-bar) repeat(var(--kpi-count, 11),minmax(96px,1fr))}.pv--mobile .pv-embed-grid--fazy .grid-body--kpi .kpi-param-row .col-scroll .cell--sales-bar{padding-left:12px;font-size:11.5px;white-space:normal;line-height:1.2}.pv--mobile .pv-embed-grid--fazy .project-row .col-scroll .cell--sales-bar{padding-left:12px}.pv--mobile .pv-embed-grid--fazy .mob-expand-detail{display:none}.pv--mobile .pv-contractors__tools{flex-wrap:wrap}.pv--mobile .board__empty-hint{display:none}.pv--mobile .board{min-height:0}.pv--mobile .board__list{max-height:55vh}.pv--mobile .pv-col-right{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}@media(max-width:767px){.mob-header:before{background:#eef2f6;-webkit-backdrop-filter:none;backdrop-filter:none}.m-group{background:#eef2f6;-webkit-backdrop-filter:none;backdrop-filter:none}}.botnav__item--more-open{color:var(--lcr-navy)}.more-menu__backdrop{position:fixed;inset:0;z-index:94;background:#0f172a2e;animation:pv-side-fade .18s ease-out}@media(max-width:1024px){.mob-menu.more-menu{position:fixed;top:auto;right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:95;min-width:250px;max-width:calc(100vw - 24px);transform-origin:bottom right;animation:more-menu-in .16s ease-out}}@keyframes more-menu-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}.m-card__name--link{padding:0;border:none;background:none;font-family:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.m-card__name--link:active{opacity:.6}.m-card__name--link:focus-visible{outline:2px solid var(--lcr-navy);outline-offset:2px;border-radius:4px}@media(max-width:767px){.pv--mobile .pv-main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.pv--mobile .pv-col-right{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.pv--mobile .pv-col-right .pv-bottom__timeline,.pv--mobile.pv--with-pane .pv-col-right .pv-bottom__timeline,.pv--mobile.pv--with-pane-plan .pv-col-right .pv-bottom__timeline{flex:0 0 auto;height:auto;min-height:0;max-height:none;overflow-y:visible}.pv--mobile .pv-plan-pane,.pv--mobile .pv-plan-pane--mobile{flex:0 0 auto;height:auto;min-height:0;max-height:none;overflow:visible}.pv--mobile.pv--tab-board .pv-col-right{display:flex;flex-direction:column;overflow:hidden}.pv--mobile.pv--tab-board .board{flex:1 1 auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.pv--mobile.pv--tab-board .board__main{min-height:0}.pv--mobile.pv--tab-board .board__list{max-height:none;flex:1 1 auto;min-height:0;padding:12px}.pv--mobile.pv--tab-board .board__composer{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"phase phase" "input send" "error error";align-items:end;gap:8px;padding:10px 10px 12px;border-left:none;border-top:1px solid #e8edf3}.pv--mobile.pv--tab-board .board__composer .board-phase{grid-area:phase}.pv--mobile.pv--tab-board .board__composer .board-phase__btn{padding:5px 10px;font-size:11.5px}.pv--mobile.pv--tab-board .board__composer .board__input--tall{grid-area:input;min-height:44px;max-height:120px;resize:none}.pv--mobile.pv--tab-board .board__composer .board__send{grid-area:send;align-self:end;min-width:0;height:44px;padding:0 16px}.pv--mobile.pv--tab-board .board__composer .board__error{grid-area:error}}@media(hover:none){.board-note__actions{position:absolute;top:-4px;right:-4px;margin-left:0;padding:0;gap:2px;background:transparent}.board-note__action{width:30px;height:30px;box-shadow:none}.board-note__action--reply{padding:0}.board-note__action--reply span{display:none}.board-note__meta{padding-right:100px}}@media(max-width:767px){.pv--mobile.pv--tab-board .board__composer .board-phase{justify-content:flex-start;gap:6px}.pv--mobile.pv--tab-board .board__composer .board-phase__btn{flex:0 0 auto;padding:4px 12px;font-size:11px}.pv--mobile.pv--tab-board .board__composer{padding:8px 10px 10px;gap:6px}.pv--mobile.pv--tab-board .board__composer .board__input--tall{min-height:42px;padding:10px 12px}.pv--mobile.pv--tab-board .board__composer .board__send{height:42px}}@media(max-width:767px){.pv--mobile.pv--tab-board .pv-col-right{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}.prediction-expanded-block--banded{overflow:clip;border-radius:0 0 calc(var(--bx-radius, 12px) - 1px) calc(var(--bx-radius, 12px) - 1px)}.prediction-expanded-block--banded .pred-section+.pred-section{border-top:none}.prediction-expanded-block--banded .pred-section--plan{--pb-row1: #e9eef5;--pb-row2: #f3f6fa;--pb-tag: #dfe7f0;--pb-tag-ink: var(--lcr-navy);--pb-hover: #dbe4f0}.prediction-expanded-block--banded .pred-section--actual{--pb-row1: #ebf5ef;--pb-row2: #f4faf6;--pb-tag: #dfeee5;--pb-tag-ink: #1f6b4a;--pb-hover: #daece2}.prediction-expanded-block--banded .pred-section--rooms{--pb-row1: #fdf5e9;--pb-row2: #fffaf1;--pb-tag: #f8ecd7;--pb-tag-ink: #8a5b16;--pb-hover: #f7e8cf}.pred-band{display:block;width:100%;margin:0;padding:0;border:none;border-radius:0;text-align:left;font:inherit;font-style:normal}.pred-band__text{display:inline-block;position:sticky;left:0;padding:6px 12px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#fff}.pred-band--plan{background:var(--lcr-navy)}.pred-band--actual{background:var(--color-success)}.pred-band--rooms{background:var(--color-warning)}.pred-band--toggle{cursor:pointer}.pred-band--toggle:hover .pred-band__text{text-decoration:underline}.pred-band--toggle:focus-visible{outline:2px solid var(--lcr-brand-700);outline-offset:-2px}.pred-band__chev{margin-left:8px}.pred-group{position:relative}.pred-group__tag{position:absolute;top:0;bottom:0;left:0;width:calc(var(--col-name) + var(--col-sales-bar) - 48px);z-index:3;display:flex;align-items:center;padding:0 10px 0 20px;font-size:12px;font-weight:800;font-style:normal;color:var(--pb-tag-ink);background:var(--pb-tag);border-bottom:1px solid #e3e8ef}.prediction-expanded-block--banded .pred-group--room+.pred-group--room{border-top:2px solid #d9b978}.prediction-expanded-block--banded .pred-group>.building-pred-row .cell--quarter,.prediction-expanded-block--banded .pred-group>.building-pred-row .desk-frozen__label{background-color:var(--pb-row1)!important}.prediction-expanded-block--banded .pred-group>.building-pred-row+.building-pred-row .cell--quarter,.prediction-expanded-block--banded .pred-group>.building-pred-row+.building-pred-row .desk-frozen__label{background-color:var(--pb-row2)!important}.prediction-expanded-block--banded .pred-group>.building-pred-row:hover .cell--quarter,.prediction-expanded-block--banded .pred-group>.building-pred-row:hover .desk-frozen__label,.prediction-expanded-block--banded .pred-group>.building-pred-row+.building-pred-row:hover .cell--quarter,.prediction-expanded-block--banded .pred-group>.building-pred-row+.building-pred-row:hover .desk-frozen__label{background-color:var(--pb-hover)!important}.prediction-expanded-block--banded .building-pred-row .cell{border-bottom:1px solid #e3e8ef}.prediction-expanded-block--banded .desk-frozen__label{font-size:11px;font-weight:700}.prediction-expanded-block--banded .month-num{color:var(--lcr-ink-800);font-weight:700}.prediction-expanded-block--banded .pred-rooms-empty{background:#fdf5e9;border-top:none}@media(max-width:767px){.pred-group__tag{display:none}}@media(min-width:768px){.grid-root.grid-root--board-open{margin-left:432px}}.hg-v2 .project-row .col-frozen .cell--name--with-board{position:relative}.hg-v2 .project-row .cell--name--with-board .row-name{max-width:calc(100% - 88px)}.row-board-btn{position:absolute;right:8px;top:7px;display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-full);background:#ffffff14;color:#fff;font-family:var(--font);font-size:11px;font-weight:700;line-height:16px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.row-board-btn:hover{background:#fff3;border-color:#ffffff73}.row-board-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.row-board-btn--on,.row-board-btn--on:hover{background:#fff;border-color:#fff;color:#243142}.grid-body .building-box.building-box--board-open,.grid-body.hg-v2 .building-box.building-box--board-open:hover{box-shadow:0 1px 2px #0f172a0f}.board-panel__bridge{position:fixed;z-index:94;background:#243142;pointer-events:none;transform-origin:right center;animation:board-bridge-in .1s ease-out .11s both}.board-panel__bridge--closing{animation:board-bridge-out 90ms ease-in .15s both}.board-panel__bridge:before,.board-panel__bridge:after{content:"";position:absolute;left:0;width:100%;height:12px}.board-panel__bridge:before{bottom:100%;background:radial-gradient(circle 12px at 100% 0,transparent 11.5px,#243142 12px)}.board-panel__bridge:after{top:100%;background:radial-gradient(circle 12px at 100% 100%,transparent 11.5px,#243142 12px)}.grid-body .building-box.building-box--board-open{border-top-left-radius:0;border-bottom-left-radius:0}.grid-body .building-box--board-open .project-row .col-frozen .cell--name{border-top-left-radius:0}.grid-body .building-box--board-open:not(.building-box--expanded) .project-row .col-frozen .cell--name{border-bottom-left-radius:0}@keyframes board-bridge-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes board-bridge-out{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.board-panel{position:fixed;z-index:95;display:flex;flex-direction:column;background:#fff;border-radius:14px;border-right:4px solid #243142;box-shadow:0 1px 3px #0f172a14,0 10px 30px #0f172a24;overflow:hidden;animation:board-panel-grow .24s .2s both}.board-panel--closing{animation:board-panel-shrink .24s both}@keyframes board-panel-grow{0%{clip-path:inset(var(--bp-from-top) 0 var(--bp-from-bottom) 100% round 4px);animation-timing-function:cubic-bezier(.3,.7,.4,1)}45%{clip-path:inset(var(--bp-from-top) 0 var(--bp-from-bottom) 0 round 4px);animation-timing-function:cubic-bezier(.2,.8,.2,1)}to{clip-path:inset(0 0 0 0 round 14px)}}@keyframes board-panel-shrink{0%{clip-path:inset(0 0 0 0 round 14px);animation-timing-function:cubic-bezier(.8,0,.8,.2)}34%{clip-path:inset(var(--bp-from-top) 0 var(--bp-from-bottom) 0 round 4px);animation-timing-function:cubic-bezier(.6,0,.7,.3)}62.5%,to{clip-path:inset(var(--bp-from-top) 0 var(--bp-from-bottom) 100% round 4px)}}@media(prefers-reduced-motion:reduce){.board-panel,.board-panel--closing,.board-panel__bridge,.board-panel__bridge--closing{animation:none}}.board-panel__head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 20px;background:#243142;color:#fff}.board-panel__title{display:flex;flex-direction:column;min-width:0;flex:1}.board-panel__eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b9c3d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-panel__name{font-size:17px;font-weight:800;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-panel__close{flex:none;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff1a;color:#fff;font-size:20px;line-height:1;cursor:pointer}.board-panel__close:hover{background:#ffffff38}.board-panel__close:focus-visible{outline:2px solid #fff;outline-offset:2px}.board-panel__filter{padding:10px 14px 0}.board-panel__filter:empty{display:none}.board-panel__filter .board__filter{box-shadow:none}.board-panel__body{flex:1 1 auto;min-height:0;display:flex}.board.board--compact{display:flex;flex-direction:column;flex:1 1 auto;border-radius:0;box-shadow:none}.board--compact .board__main{flex:1 1 auto}.board--compact .board__composer{flex:none;gap:8px;padding:10px 14px 14px;border-left:none;border-top:1px solid #e8edf3}.board--compact .board__composer .board__input--tall{min-height:76px;height:76px;flex:none}.board--compact .board__composer .board__send{align-self:flex-end;min-width:110px}@media(max-width:767px){.board-panel{border-right:none;box-shadow:0 24px 60px #0f172a47}}.pred-band--plan{background:#dde4ee}.pred-band--actual{background:#d9ecdf}.pred-band--rooms{background:#f4e5cb}.pred-band--plan .pred-band__text{color:#3b4b61}.pred-band--actual .pred-band__text{color:#2a6a47}.pred-band--rooms .pred-band__text{color:#85592a}.pred-band--toggle:focus-visible{outline-color:#3b4b61}.prediction-expanded-block--banded{position:relative}.prediction-expanded-block--banded:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--hg-navy, #243142);z-index:5;pointer-events:none}.prediction-expanded-block--banded .pred-band__text{padding-left:20px}.ptg__band--plan>td{background:#dde4ee}.ptg__band--actual>td{background:#d9ecdf}.ptg__band--rooms>td{background:#f4e5cb}.ptg__band--plan .ptg__band-text{color:#3b4b61}.ptg__band--actual .ptg__band-text{color:#2a6a47}.ptg__band--rooms .ptg__band-text{color:#85592a}.grid-body.hg-v2 .building-box:hover{box-shadow:0 1px 2px #0f172a0f}.grid-body.hg-v2 .building-box .project-row:hover .col-frozen .cell{background:var(--hg-navy)}.grid-body.hg-v2 .building-box.building-box--board-open:hover{box-shadow:0 1px 2px #0f172a0f}.grid-body .building-box:has(+.building-box--board-open),.grid-body .building-box:has(+.building-box--board-open) .project-row .col-frozen .cell--name,.grid-body .building-box:has(+.building-box--board-open) .prediction-expanded-block .pred-section:last-child .building-pred-row:last-child .col-frozen .cell{border-bottom-left-radius:0}.grid-body .building-box--board-open+.building-box,.grid-body .building-box--board-open+.building-box .project-row .col-frozen .cell--name{border-top-left-radius:0}.rap-tabs{padding:14px 16px 16px;display:flex}.rap-tabs .rap-tabs__toggle{padding:4px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow-bento);-webkit-backdrop-filter:none;backdrop-filter:none;max-width:100%;overflow-x:auto;scrollbar-width:none}.rap-tabs .rap-tabs__toggle::-webkit-scrollbar{display:none}.rap-tabs .cv-modetoggle__btn{padding:8px 12px;font-size:12.5px;font-weight:700;color:#3d4957;white-space:nowrap}.rap-tabs .cv-modetoggle__btn--active{color:#fff}.rap-tabs .seg-thumb{top:4px;bottom:4px}.rap-tabs .seg-thumb__glass{background:var(--glass-btn-primary-bg);border:var(--glass-btn-primary-border);box-shadow:var(--glass-btn-primary-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}@media(min-width:768px){.rap-panel{transition:width var(--transition-normal)}.rap-panel--wide{width:calc(100vw - 32px);max-width:1760px}}.rap-metric{display:flex;width:100%;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.rap-metric::-webkit-scrollbar{display:none}.rap-metric .cv-modetoggle__btn{flex:1;padding:7px 10px;font-size:12px}.rap-sec+.rap-sec{margin-top:26px}.rap-sec__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--lcr-brand-200)}.rap-sec__title{margin:0;font-size:14px;font-weight:700;color:var(--lcr-ink-800)}.rap-sec__sub{font-size:11.5px;color:var(--lcr-ink-700)}.rap-stamp{display:flex;flex-direction:column;gap:3px;margin-bottom:14px;font-size:11.5px;color:var(--lcr-ink-700)}.rap-stamp__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rap-stamp__src{max-width:96ch;line-height:1.5;color:var(--color-text-muted)}.rap-stamp__q{font-weight:700;border-bottom:1px dotted var(--lcr-line-strong);cursor:help}.rap-stamp__stale{padding:1px 8px;border-radius:999px;background:var(--lcr-secondary-100);color:var(--color-warning-text);font-weight:700}.rap-stamp__note{color:var(--color-text-muted)}.rap-offer__scroll{overflow-x:auto;width:max-content;max-width:100%;border:2px solid var(--xls-rule);background:#fff;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.rap-offer__scroll::-webkit-scrollbar{width:8px;height:8px}.rap-offer__scroll::-webkit-scrollbar-track{background:transparent}.rap-offer__scroll::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.rap-offer__scroll::-webkit-scrollbar-thumb:hover{background:var(--lcr-line-strong)}.rap-offer__table{display:grid;grid-template-columns:max-content repeat(var(--rap-offer-cols),minmax(82px,max-content));width:max-content;font-family:var(--xls-font)}.rap-offer__row{display:contents}.rap-offer__cell{padding:1px 15px;font-size:13px;line-height:1.35;text-align:center;white-space:nowrap;color:var(--xls-ink);background:#fff;font-variant-numeric:tabular-nums}.rap-offer__cell.is-money{text-align:right}.rap-offer__row:hover .rap-offer__cell{background:var(--xls-hover-bg)}.rap-offer__cell.is-group-start,.rap-offer__group{border-left:2px solid var(--xls-rule)}.rap-offer__cell--room{position:sticky;left:0;z-index:1;background:#fff;box-shadow:2px 0 0 0 var(--xls-rule)}.rap-offer__row:hover .rap-offer__cell--room{background:var(--xls-hover-bg)}.rap-offer__cell--corner{grid-row:span 2;display:flex;align-items:center;justify-content:center;background:var(--xls-head-bg);color:var(--xls-head-fg);font-size:11.5px;font-weight:700;text-transform:uppercase}.rap-offer__row:hover .rap-offer__cell--corner{background:var(--xls-head-bg)}.rap-offer__cell--solo{grid-row:auto}.rap-offer__group{padding:6px 15px;text-align:center;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--xls-head-fg);background:var(--xls-head-bg)}.rap-offer__cell--proj{padding:3px 15px;text-align:center;font-size:11px;font-weight:400;color:var(--xls-head-fg);background:var(--xls-head-bg);border-bottom:2px solid var(--xls-rule)}.rap-offer__cell--proj.is-money{text-align:center}.rap-offer__row:hover .rap-offer__cell--proj{background:var(--xls-head-bg)}.rap-offer__cell.is-anchor{font-weight:700;font-style:italic}.rap-offer__row--total .rap-offer__cell{font-weight:700;border-top:2px solid var(--xls-rule)}.rap-phases{--rap-phase-cols: 348px 100px 116px 120px 132px 140px;width:max-content;max-width:100%;border:2px solid var(--xls-rule);background:#fff;font-family:var(--xls-font);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.rap-phases::-webkit-scrollbar{height:8px}.rap-phases::-webkit-scrollbar-track{background:transparent}.rap-phases::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.rap-phases__head,.rap-phases__row,.rap-phases__group{display:grid;grid-template-columns:var(--rap-phase-cols);align-items:stretch}.rap-phases__head>span,.rap-phases__row>span,.rap-phases__group>span{padding:4px 14px;border-right:1px solid var(--xls-hair)}.rap-phases__head>span,.rap-phases__row>span:last-child,.rap-phases__group>span:last-child{border-right:none}.rap-phases__head>span{padding-top:7px;padding-bottom:7px}.rap-phases__head>span:first-child,.rap-phases__row>span:first-child,.rap-phases__group>span:first-child{border-right:2px solid var(--xls-rule)}.rap-phases__head>span:first-child,.rap-phases__group>span:first-child{padding-left:30px}.rap-phases__head{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--xls-head-fg);background:var(--xls-head-bg)}.rap-phases__row{font-size:13.5px;color:var(--xls-ink);font-variant-numeric:tabular-nums}.rap-phases__row:hover{background:var(--xls-hover-bg)}.rap-phases .rap-prices__num{text-align:center}.rap-phases__group{font-size:13.5px;font-weight:700;color:var(--xls-ink);background:var(--xls-own-bg);border-top:1px solid var(--xls-rule);border-bottom:1px solid var(--xls-rule);font-variant-numeric:tabular-nums}.rap-phases__group--total{border-top:2px solid var(--xls-rule);border-bottom:none}.rap-phases__row .rap-prices__proj{padding-left:30px}.rap-phases__tag{margin-left:8px;padding:0 5px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--xls-ink);border:1px solid var(--xls-hair);background:#fff;white-space:nowrap}.rap-phases__tag.is-new{color:var(--color-warning-text);border-color:var(--color-warning)}.rap-phases__tag.is-upcoming{color:var(--lcr-ink-700)}.rap-chart{max-width:1250px;--pbi-ink: var(--lcr-ink-800);--pbi-grid: var(--lcr-line-strong);--pbi-sep: var(--lcr-line-strong);--pbi-frame: var(--color-border);--pbi-panel: var(--lcr-brand-50);--pbi-head-fg: var(--lcr-ink-700)}.rap-chart .pbi-chart{border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.rap-prices{width:max-content;max-width:100%;border:1px solid var(--xls-rule);background:#fff;font-family:var(--xls-font);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.rap-prices::-webkit-scrollbar{height:8px}.rap-prices::-webkit-scrollbar-track{background:transparent}.rap-prices::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.rap-prices__head,.rap-prices__row{display:grid;grid-template-columns:196px 150px 166px 134px;align-items:stretch}.rap-prices__head>span,.rap-prices__row>span{padding:3px 10px;border-right:1px solid var(--xls-hair)}.rap-prices__head>span{border-right:none}.rap-prices__row>span:last-child{border-right:none}.rap-prices__head{font-size:11.5px;font-weight:700;text-transform:uppercase;color:var(--xls-head-fg);background:var(--xls-head-bg)}.rap-prices__head>span{padding-top:6px;padding-bottom:6px}.rap-prices__row{font-size:13px;color:var(--xls-ink);border-bottom:1px solid var(--xls-hair)}.rap-prices__row:hover{background:var(--xls-hover-bg)}.rap-prices__row:last-child{border-bottom:none}.rap-prices__gap{height:12px;background:#fff}.rap-prices__empty{color:var(--lcr-ink-700);font-style:italic}.rap-prices__row.is-own{background:var(--xls-own-bg);font-weight:700;border-top:1px solid var(--xls-rule);border-bottom:1px solid var(--xls-rule)}.rap-prices__proj{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.rap-phases .rap-prices__proj{text-align:left}.rap-prices__num{text-align:right;font-variant-numeric:tabular-nums}.rap-prices__num.is-count{text-align:center}.rap-prices__delta{font-weight:600}.rap-prices__arrow{font-size:9px;margin-left:4px;color:var(--lcr-ink-800)}@media(max-width:767px){.rap-tabs{padding:10px 16px 12px}.rap-prices{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.rap-prices::-webkit-scrollbar{height:8px}.rap-prices::-webkit-scrollbar-track{background:transparent}.rap-prices::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.rap-prices__head,.rap-prices__row{grid-template-columns:132px 106px 114px 92px;min-width:444px}.rap-prices__head>span,.rap-prices__row>span{padding:3px 8px}.rap-prices__head{font-size:10px}.rap-prices__row{font-size:12px}}.rap-tabs{justify-content:space-between;align-items:center;gap:12px}.rap-scope{position:relative;display:inline-flex;flex:0 0 auto}.rap-scope__btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-xl);background:#fff;border:1px solid var(--color-border);box-shadow:var(--shadow-xs);color:var(--lcr-ink-800);font-size:12.5px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.rap-scope__btn:hover,.rap-scope__btn.is-open{border-color:var(--lcr-line-strong);box-shadow:var(--shadow-sm)}.rap-scope__btn.is-filtered{background:var(--lcr-secondary-100);border-color:var(--lcr-secondary-800);color:var(--lcr-secondary-800)}.rap-scope__caret{display:inline-flex;opacity:.7}.rap-scope__btn.is-open .rap-scope__caret{transform:rotate(180deg)}.rap-scope__menu{position:fixed;z-index:var(--z-popover);width:320px;max-height:min(60vh,520px);overflow-y:auto;padding:10px;border-radius:var(--radius-2xl);background:var(--glass-menu-bg);border:var(--glass-menu-border);box-shadow:var(--glass-menu-shadow);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);scrollbar-width:thin;scrollbar-color:var(--lcr-brand-400) transparent}.rap-scope__menu::-webkit-scrollbar{width:8px}.rap-scope__menu::-webkit-scrollbar-track{background:transparent}.rap-scope__menu::-webkit-scrollbar-thumb{background:var(--lcr-brand-400);border-radius:4px}.rap-scope__intro{padding:4px 8px 10px;font-size:11.5px;line-height:1.45;color:var(--color-text-muted)}.rap-scope__error{margin:0 4px 8px;padding:8px 10px;border-radius:var(--radius-sm);background:#c4392e14;color:var(--color-danger);font-size:11.5px;font-weight:600}.rap-scope__group+.rap-scope__group{margin-top:6px}.rap-scope__grouphead{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:6px 8px;border:0;border-radius:var(--radius-sm);background:var(--lcr-brand-300);color:var(--lcr-brand-900);font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}.rap-scope__grouphead:disabled{cursor:default}.rap-scope__all{font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--lcr-ink-700)}.rap-scope__grouphead:disabled .rap-scope__all{display:none}.rap-scope__row{width:100%;display:flex;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:12.5px;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.rap-scope__row:hover:not(:disabled){background:var(--lcr-secondary-100)}.rap-scope__row:disabled{cursor:default}.rap-scope__row.is-off .rap-scope__name{color:var(--lcr-ink-700);text-decoration:line-through}.rap-scope__name{flex:1 1 auto}.rap-scope__count{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;color:var(--lcr-ink-700)}.rap-scope__glyph{flex:0 0 auto;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;border:1.5px solid var(--lcr-line-strong);background:#fff;color:#fff}.rap-scope__glyph.is-on{background:var(--color-primary);border-color:var(--color-primary)}.rap-scope__retry{width:100%;margin-top:8px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--lcr-ink-800);font-size:12px;font-weight:700;cursor:pointer}@media(max-width:767px){.rap-tabs{flex-wrap:wrap}.rap-scope__menu{width:min(320px,calc(100vw - 32px))}}.rap-scope--title{display:inline-flex;vertical-align:baseline}.rap-scope--title .rap-scope__btn{padding:2px 8px 2px 0;border:0;border-radius:var(--radius-sm);background:transparent;box-shadow:none;font-size:14px;font-weight:700;color:var(--lcr-ink-800);gap:5px}.rap-scope--title .rap-scope__btn:hover,.rap-scope--title .rap-scope__btn.is-open{box-shadow:none;background:var(--lcr-secondary-100);padding-left:8px;color:var(--lcr-secondary-800)}.rap-scope--title .rap-scope__btn.is-filtered{background:transparent;color:var(--lcr-secondary-800)}.rap-scope--title .rap-scope__btn.is-filtered:hover{background:var(--lcr-secondary-100)}.rap-scope--title .rap-scope__caret{opacity:.55}.rap-scope--title .rap-scope__btn:hover .rap-scope__caret{opacity:1}.rap-scope__badge{padding:1px 6px;border-radius:999px;background:var(--lcr-secondary-800);color:#fff;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.rap-scope__countshead{display:flex;justify-content:flex-end;padding:0 8px 4px;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--lcr-ink-700)}.rap-scope__tag{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:var(--lcr-secondary-100);border:1px solid var(--lcr-secondary-800);color:var(--lcr-secondary-800);font-size:9.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.fv-page{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden;padding:18px 24px;font-family:var(--font);color:var(--color-text);background:var(--lcr-brand-50);border-radius:var(--radius-lg);box-shadow:var(--shadow-bento)}.fv-page__title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.fv-empty{padding:28px 12px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.fv-more{padding:14px 12px;text-align:center;font-size:11.5px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.fv-error{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);background:#fdecea;border:1px solid var(--color-danger);color:var(--color-danger);font-size:12.5px}.fv-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 14px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.fv-btn:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.fv-btn:active:not(:disabled){transform:scale(.98)}.fv-btn:disabled{opacity:.5;cursor:default}.fv-btn--primary{border:var(--glass-btn-primary-border);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.fv-btn--primary:hover:not(:disabled){background:var(--glass-btn-primary-bg-hover);box-shadow:var(--glass-btn-primary-shadow-hover)}.fv-input{width:100%;height:32px;padding:0 11px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);font-family:var(--font);font-size:12.5px;color:var(--color-text);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.fv-input:focus{outline:none;border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.fv-input--sm{height:28px;font-size:12px;padding:0 9px}.fv-input:disabled{opacity:.6;cursor:default}.fv-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:0}.fv-bar__project{font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.fv-bar__btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.fv-bar__btn:hover{background:var(--glass-btn-secondary-bg-hover)}.fv-bar__btn:active{transform:scale(.98)}.fv-bar__btn--primary,.fv-bar__btn--on{border:var(--glass-btn-primary-border);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.fv-bar__btn--primary:hover,.fv-bar__btn--on:hover{background:var(--glass-btn-primary-bg-hover);box-shadow:var(--glass-btn-primary-shadow-hover)}.fv-bar__search{display:inline-flex;align-items:center;gap:7px;flex:0 1 240px;min-width:170px;padding:0 12px;height:32px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--glass-input-bg);-webkit-backdrop-filter:var(--glass-input-backdrop);backdrop-filter:var(--glass-input-backdrop);box-shadow:var(--glass-input-shadow);color:var(--lcr-ink-700);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.fv-bar__search:focus-within{border-color:#6b7b88d9;background:var(--glass-input-bg-focus);box-shadow:var(--glass-input-focus-ring)}.fv-bar__search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font);font-size:12.5px;color:var(--color-text)}.fv-bar__pills{display:inline-flex;flex-wrap:wrap;gap:4px}.fv-pill{height:32px;padding:0 13px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-full);background:var(--glass-btn-secondary-bg);-webkit-backdrop-filter:var(--glass-btn-backdrop);backdrop-filter:var(--glass-btn-backdrop);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12px;font-weight:600;color:var(--lcr-ink-700);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.fv-pill:hover{background:var(--glass-btn-secondary-bg-hover)}.fv-pill--on{border:var(--glass-btn-primary-border);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.fv-bar__spacer{flex:1 1 auto}.fv-bar__count{display:flex;flex-direction:column;align-items:flex-end;font-size:12.5px;font-weight:600;color:var(--lcr-ink-800);font-variant-numeric:tabular-nums;white-space:nowrap}.fv-bar__count-sub{font-size:11px;font-weight:500;color:var(--color-text-tertiary)}.fv-error__retry{margin-left:auto;height:26px;padding:0 11px;border:1px solid currentColor;border-radius:var(--radius-md);background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}.fv-projects{display:flex;flex-direction:column;gap:12px;flex-shrink:0}.fv-projects__head{display:flex;align-items:baseline;gap:12px}.fv-projects__title{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em}.fv-projects__synced{font-size:11.5px;color:var(--color-text-tertiary)}.fv-projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.fv-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 16px;border:var(--glass-surface-border);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-bento);font-family:var(--font);text-align:left;cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.fv-card:hover{box-shadow:var(--shadow-bento-hover);transform:translateY(-1px)}.fv-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.fv-card__name{font-size:15px;font-weight:700;color:var(--color-text)}.fv-card__count{font-size:12px;color:var(--lcr-ink-700);font-variant-numeric:tabular-nums}.fv-card__split{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.fv-card__chip{padding:1px 7px;border-radius:var(--radius-full);font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums}.fv-card__chip--free{background:var(--color-success-bg);color:var(--color-success)}.fv-card__chip--reserved{background:var(--color-warning-bg);color:var(--color-warning-text)}.fv-card__chip--sold{background:var(--lcr-brand-200);color:var(--lcr-ink-800)}.fv-card__bar{width:100%;height:5px;margin-top:6px;border-radius:var(--radius-full);background:var(--lcr-brand-200);overflow:hidden}.fv-card__bar-fill{display:block;height:100%;background:var(--lcr-navy);border-radius:inherit}.fv-card__desc{font-size:11.5px;color:var(--lcr-ink-700);font-variant-numeric:tabular-nums}.fv-card__rows{font-size:11px;color:var(--color-text-tertiary)}.fv-strip{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-xs);flex-shrink:0}.fv-strip__label{flex:0 0 auto;padding-top:2px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--lcr-ink-700)}.fv-strip__tags{display:flex;flex-wrap:wrap;gap:4px;max-height:58px;overflow:auto}.fv-tags{display:inline-flex;flex-wrap:wrap;gap:3px;align-items:center}.fv-tag{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-full);background:var(--lcr-secondary-100);border:1px solid var(--lcr-secondary-300);color:var(--lcr-secondary-800);font-size:11px;font-weight:600;white-space:nowrap}.fv-tag em{font-style:normal;font-size:9.5px;font-weight:700;opacity:.7;font-variant-numeric:tabular-nums}.fv-tag--orient{background:var(--lcr-brand-100);border-color:var(--lcr-brand-400);color:var(--lcr-ink-800);font-variant-numeric:tabular-nums}.fv-tag--btn{cursor:pointer;font-family:var(--font)}.fv-tag--btn:hover{background:var(--lcr-secondary-300)}.fv-tag--on{background:var(--lcr-secondary-800);border-color:var(--lcr-secondary-800);color:#fff}.fv-tag--on em{opacity:.85}.fv-badge{display:inline-block;padding:1px 8px;border-radius:var(--radius-full);font-size:10.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.fv-badge--free{background:var(--color-success-bg);color:var(--color-success)}.fv-badge--reserved{background:var(--color-warning-bg);color:var(--color-warning-text)}.fv-badge--sold{background:var(--lcr-brand-200);color:var(--lcr-ink-800)}.fv-badge--blocked{background:#fdecea;color:var(--color-danger)}.fv-badge--other{background:var(--lcr-brand-100);color:var(--color-text-tertiary)}.fv-cell__none{color:var(--lcr-brand-600)}.fv-owned{display:inline-flex;align-items:center;gap:4px}.fv-owned__dot{flex:0 0 auto;width:5px;height:5px;border-radius:var(--radius-full);background:var(--lcr-secondary-800)}.fv-table{flex:1;min-height:0;display:flex;flex-direction:column;border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-bento);overflow:hidden}.fv-table__head,.fv-table__row{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(110px,1.1fr) minmax(96px,.9fr) minmax(80px,.7fr) minmax(78px,.7fr) minmax(92px,.8fr) minmax(84px,.7fr) minmax(96px,.8fr) minmax(200px,2.4fr);align-items:center;gap:8px;padding:0 14px}.fv-table__head{flex-shrink:0;height:34px;background:var(--lcr-brand-100);border-bottom:1px solid var(--color-border)}.fv-table__th{display:inline-flex;align-items:center;gap:3px;padding:0;border:0;background:transparent;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--lcr-ink-700);cursor:pointer;text-align:left}.fv-table__th:hover,.fv-table__th--sorted{color:var(--color-text)}.fv-table__arrow{font-size:7px;line-height:1}.fv-table__body{flex:1;min-height:0;overflow:auto}.fv-table__row{min-height:38px;padding-top:5px;padding-bottom:5px;border-bottom:1px solid var(--lcr-brand-200);font-size:12.5px;cursor:pointer}.fv-table__row:hover{background:var(--lcr-brand-100)}.fv-table__row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.fv-table__row--open{background:var(--color-row-selected)}.fv-table__c-code{font-weight:700;font-variant-numeric:tabular-nums}.fv-table__c-building{display:flex;flex-direction:column;min-width:0;line-height:1.25}.fv-table__b-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-table__b-sub{font-style:normal;font-size:10.5px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-table__c-floor,.fv-table__c-disp{color:var(--lcr-ink-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-table__c-num{font-variant-numeric:tabular-nums}.fv-table__head .fv-table__c-num{justify-content:flex-end}.fv-table__row .fv-table__c-num{text-align:right;justify-self:stretch}.fv-table__row .fv-table__c-num .fv-owned{justify-content:flex-end}.fv-table__c-tags{min-width:0}.fv-cards{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px}.fv-mcard{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px 14px;border:0;border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-xs);font-family:var(--font);text-align:left;cursor:pointer}.fv-mcard__top{display:flex;align-items:center;gap:8px;width:100%}.fv-mcard__code{font-size:14px;font-weight:700}.fv-mcard__top .fv-badge{margin-left:auto}.fv-mcard__meta{font-size:12px;color:var(--lcr-ink-700)}.fv-mcard__price{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:1024px){.fv-page{padding:12px;gap:10px}.fv-bar__search{flex:1 1 160px}.fv-bar__count{align-items:flex-start}}.dialog.dialog--flat{max-width:880px;width:min(880px,94vw);min-width:0}.fv-detail{display:flex;flex-direction:column;gap:12px}.fv-detail__title{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.fv-detail__title-code{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.fv-detail__title-where{font-size:12px;font-weight:500;color:var(--color-text-tertiary)}.fv-detail__nav{display:flex;align-items:center;gap:8px}.fv-detail__nav-btn{height:28px;padding:0 12px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12px;font-weight:600;color:var(--color-text);cursor:pointer}.fv-detail__nav-btn:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.fv-detail__nav-btn:disabled{opacity:.4;cursor:default}.fv-detail__nav-pos{font-size:11.5px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.fv-detail__cols{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1fr);gap:14px;align-items:start}.fv-detail__panel{padding:14px 16px;border-radius:var(--radius-md);background:var(--lcr-brand-50);box-shadow:var(--shadow-xs)}.fv-detail__panel--ours{background:var(--lcr-secondary-100)}.fv-detail__panel-title{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:13px;font-weight:700}.fv-detail__panel-note{font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-tertiary)}.fv-detail__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.fv-detail__field{display:flex;flex-direction:column;gap:2px;min-width:0}.fv-detail__field-label{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--color-text-tertiary)}.fv-detail__field-value{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.fv-detail__field-crm{font-size:10px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.fv-detail__field--owned .fv-input{border-color:var(--lcr-secondary-700)}.fv-detail__field--edit .dropdown{width:100%}.fv-detail__field--edit .dropdown__trigger{width:100%;height:28px}.fv-detail__reset{padding:0 6px;border:1px solid var(--lcr-secondary-300);border-radius:var(--radius-full);background:var(--lcr-secondary-100);font-family:var(--font);font-size:9.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--lcr-secondary-800);cursor:pointer}.fv-detail__reset:hover{background:var(--lcr-secondary-300)}.fv-detail__block{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.fv-detail__block:last-of-type{margin-bottom:8px}.fv-detail__block-label{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--lcr-ink-700)}.fv-detail__hint{font-size:11px;line-height:1.4;color:var(--color-text-tertiary)}.fv-detail__hint--panel{margin:12px 0 0}.fv-detail__textarea{width:100%;padding:8px 10px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--color-bg);font-family:var(--font);font-size:12.5px;line-height:1.45;color:var(--color-text);resize:vertical}.fv-detail__textarea:focus{outline:none;border-color:#6b7b88d9;box-shadow:var(--glass-input-focus-ring)}.fv-detail__stamp{font-size:10.5px;color:var(--color-text-tertiary)}.fv-detail__error{margin-top:8px;padding:7px 10px;border-radius:var(--radius-md);background:#fdecea;color:var(--color-danger);font-size:12px}.fv-detail__dirty{margin-right:auto;font-size:11.5px;font-weight:600;color:var(--color-warning-text)}.fv-orient{display:flex;flex-wrap:wrap;gap:4px}.fv-orient__btn{min-width:38px;height:28px;padding:0 9px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:12px;font-weight:700;color:var(--lcr-ink-800);cursor:pointer}.fv-orient__btn:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.fv-orient__btn--on{border:var(--glass-btn-primary-border);background:var(--glass-btn-primary-bg);box-shadow:var(--glass-btn-primary-shadow);color:#fff}.fv-orient__btn:disabled{opacity:.55;cursor:default}.fv-import{display:flex;flex-direction:column;gap:14px}.fv-import__step{display:flex;flex-direction:column;gap:8px}.fv-import__step-title{display:flex;align-items:center;gap:7px;margin:0;font-size:13px;font-weight:700}.fv-import__num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-full);background:var(--lcr-navy);color:#fff;font-size:10.5px;font-weight:700}.fv-import__file{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fv-import__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fv-import__fname{font-size:12px;font-weight:600;color:var(--lcr-ink-800)}.fv-import__hint{margin:0;font-size:11px;line-height:1.45;color:var(--color-text-tertiary)}.fv-import__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 14px}.fv-import__row{display:flex;align-items:center;gap:8px}.fv-import__label{flex:0 0 86px;font-size:10.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--lcr-ink-700)}.fv-import__row .dropdown{flex:1 1 auto;min-width:0}.fv-import__row .dropdown__trigger{width:100%}.fv-import__row .dropdown__value{overflow:hidden;text-overflow:ellipsis}.fv-import__ticks{display:flex;flex-direction:column;gap:5px}.fv-import__tick-list{display:flex;flex-wrap:wrap;gap:4px}.fv-import__tick{height:26px;padding:0 11px;border:1px dashed var(--lcr-brand-400);border-radius:var(--radius-full);background:var(--color-bg);font-family:var(--font);font-size:11.5px;font-weight:600;color:var(--lcr-ink-700);cursor:pointer}.fv-import__tick:hover{background:var(--lcr-brand-100)}.fv-import__tick--on{border-style:solid;background:var(--lcr-secondary-800);border-color:var(--lcr-secondary-800);color:#fff}.fv-import__sample{display:flex;flex-direction:column;gap:4px}.fv-import__table{width:100%;border-collapse:collapse;font-size:11px;display:block;overflow:auto;max-height:180px;border-radius:var(--radius-sm)}.fv-import__table th,.fv-import__table td{padding:4px 8px;border:1px solid var(--lcr-brand-200);text-align:left;white-space:nowrap}.fv-import__table th{position:sticky;top:0;background:var(--lcr-brand-100);font-weight:700;color:var(--lcr-ink-700)}.fv-import__th--used{background:var(--lcr-secondary-300);color:var(--lcr-secondary-800)}.fv-import__stats{display:flex;flex-wrap:wrap;gap:8px}.fv-import__stat{padding:4px 11px;border-radius:var(--radius-full);font-size:12px;font-variant-numeric:tabular-nums}.fv-import__stat--ok{background:var(--color-success-bg);color:var(--color-success)}.fv-import__stat--warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.fv-import__warn,.fv-import__busy,.fv-import__result,.fv-import__error{padding:8px 12px;border-radius:var(--radius-md);font-size:12.5px}.fv-import__warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.fv-import__busy{background:var(--lcr-brand-100);color:var(--lcr-ink-700)}.fv-import__result{background:var(--color-success-bg);color:var(--color-success)}.fv-import__error{background:#fdecea;color:var(--color-danger)}.fv-import__details{font-size:12px}.fv-import__details summary{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--radius-md);list-style:none;cursor:pointer;font-weight:600;color:var(--lcr-ink-800)}.fv-import__details summary::-webkit-details-marker{display:none}.fv-import__details summary::marker{content:""}.fv-import__details summary:hover{background:var(--lcr-brand-100)}.fv-import__chev{color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.fv-import__details[open] .fv-import__chev{transform:rotate(90deg)}.fv-import__codes{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0;max-height:120px;overflow:auto}.fv-import__code{display:inline-flex;align-items:baseline;gap:5px;padding:1px 8px;border-radius:var(--radius-full);background:var(--lcr-brand-100);font-size:11px;font-weight:600;color:var(--lcr-ink-800)}.fv-import__code em{font-style:normal;font-size:9.5px;font-weight:500;color:var(--color-text-tertiary)}.fv-import__code--more{background:transparent;color:var(--color-text-tertiary)}.fv-tagman{display:flex;flex-direction:column;gap:10px}.fv-tagman__intro{margin:0;font-size:12px;line-height:1.5;color:var(--color-text-secondary)}.fv-tagman__list{display:flex;flex-direction:column;max-height:50vh;overflow:auto}.fv-tagman__row{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid var(--lcr-brand-200)}.fv-tagman__label{flex:1 1 auto;font-size:13px;font-weight:600}.fv-tagman__count{font-size:11px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.fv-tagman__input{flex:1 1 auto;height:28px;padding:0 9px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--color-bg);font-family:var(--font);font-size:13px}.fv-tagman__input:focus{outline:none;border-color:#6b7b88d9;box-shadow:var(--glass-input-focus-ring)}.fv-tagman__btn{height:28px;padding:0 11px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);box-shadow:var(--glass-btn-secondary-shadow);font-family:var(--font);font-size:11.5px;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap}.fv-tagman__btn:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.fv-tagman__btn--ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--color-text-tertiary)}.fv-tagman__btn--danger{color:var(--color-danger)}.fv-tagman__btn:disabled{opacity:.5;cursor:default}.dropdown__badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:var(--radius-full);background:var(--lcr-navy);color:#fff;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.dropdown__menu--multi{max-height:340px;min-width:240px}.dropdown__actions{display:flex;gap:4px;padding:2px 2px 6px;margin-bottom:4px;border-bottom:1px solid var(--lcr-brand-200)}.dropdown__action{flex:1 1 auto;height:26px;border:var(--glass-btn-secondary-border);border-radius:var(--radius-md);background:var(--glass-btn-secondary-bg);font-family:var(--font);font-size:11.5px;font-weight:600;color:var(--color-text);cursor:pointer}.dropdown__action:hover:not(:disabled){background:var(--glass-btn-secondary-bg-hover)}.dropdown__action:disabled{opacity:.45;cursor:default}.dropdown__option--check{justify-content:flex-start;gap:8px}.dropdown__option--check.dropdown__option--selected:after{content:none}.dropdown__box{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:1px solid var(--lcr-brand-500);border-radius:4px;background:var(--color-bg);color:#fff}.dropdown__option--on .dropdown__box{background:var(--lcr-navy);border-color:var(--lcr-navy)}.dropdown__option--on{font-weight:600}.dropdown__group+.dropdown__group{margin-top:4px}.dropdown__group-head{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lcr-ink-700);cursor:pointer;text-align:left}.dropdown__group-head:hover{background:var(--lcr-brand-100)}.dropdown__group-head--on{color:var(--lcr-navy)}.dropdown__group-label{flex:1 1 auto}.dropdown__group-count{font-variant-numeric:tabular-nums;opacity:.8}.tagbub{position:relative}.tagbub__field{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:36px;padding:5px 8px;border:var(--glass-input-border);border-radius:var(--radius-md);background:var(--color-bg);cursor:text}.tagbub__field:focus-within{border-color:#6b7b88d9;box-shadow:var(--glass-input-focus-ring)}.tagbub--ro .tagbub__field{background:transparent;border-style:dashed;cursor:default}.tagbub__chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 9px;border-radius:var(--radius-full);background:var(--lcr-secondary-100);border:1px solid var(--lcr-secondary-300);color:var(--lcr-secondary-800);font-size:11.5px;font-weight:600}.tagbub--ro .tagbub__chip{padding-right:9px}.tagbub__chip-x{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:0;border-radius:var(--radius-full);background:transparent;color:inherit;cursor:pointer;opacity:.6}.tagbub__chip-x:hover{opacity:1;background:var(--lcr-secondary-300)}.tagbub__input{flex:1 1 110px;min-width:110px;border:0;background:transparent;font-family:var(--font);font-size:12.5px;color:var(--color-text)}.tagbub__input:focus{outline:none}.tagbub__empty{color:var(--lcr-brand-600);font-size:12.5px}.tagbub__menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 3px);max-height:200px;overflow:auto;padding:4px;border-radius:var(--radius-md);background:var(--glass-pop-bg);-webkit-backdrop-filter:var(--glass-elevated-backdrop);backdrop-filter:var(--glass-elevated-backdrop);border:var(--glass-surface-border);box-shadow:var(--glass-elevated-shadow)}.tagbub__opt{display:flex;align-items:center;gap:8px;width:100%;padding:6px 9px;border:0;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:12.5px;color:var(--color-text);text-align:left;cursor:pointer}.tagbub__opt--on{background:var(--lcr-brand-100)}.tagbub__opt-label{flex:1 1 auto}.tagbub__opt-count{font-size:10.5px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}@media(max-width:767px){.fv-detail__cols,.fv-detail__grid{grid-template-columns:1fr}.fv-import__label{flex-basis:72px}}.touch-active{background-color:var(--lcr-brand-100)!important;transition:background-color .1s ease-out}.mob-editor__tab.touch-active,.mob-editor__tab[data-active=true]:not(.mob-editor__tab--active){background-color:var(--lcr-brand-100)}.mob-plan__act-btn.touch-active,.mob-field__toggle.touch-active,.mob-ycard__step-btn.touch-active,.mob-ycard__range-btn.touch-active,.mob-editor__back.touch-active,.m-card__edit-btn.touch-active,.m-card__expand.touch-active{transform:scale(.97);background-color:var(--lcr-brand-200)}.mob-ycard__month.touch-active{background-color:var(--lcr-brand-100)}.mob-editor__swipe-handle{position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--lcr-brand-300);border-radius:2px;opacity:.6;transition:opacity .15s,width .15s}.mob-editor__swipe-handle--dragging{opacity:1;width:48px}.mob-editor--dragging{transition:none!important}.mob-editor--dragging .mob-editor__content{pointer-events:none}.scroll-lock-active{overflow:hidden!important;position:fixed!important;width:100%!important;height:100%!important}.tooltip-dismiss-zone{position:fixed;inset:0;z-index:149;background:transparent;touch-action:manipulation}.period-tab{position:relative;touch-action:manipulation;user-select:none;-webkit-user-select:none}.period-tab:after{content:"";position:absolute;inset:-4px;border-radius:inherit;background:transparent;transition:background .1s;pointer-events:none}.period-tab.touch-active:after,.period-tab:active:after{background:#0000000d}.touch-dragging,.touch-dragging *{user-select:none!important;-webkit-user-select:none!important}[data-scrollable]{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes touch-ripple{0%{transform:scale(0);opacity:.4}to{transform:scale(2.5);opacity:0}}.touch-ripple{position:absolute;border-radius:50%;background:var(--lcr-brand-400);pointer-events:none;animation:touch-ripple .4s ease-out forwards}.mob-ycard__header.touch-active{background:var(--lcr-brand-50)}.mob-ycard__step-btn{position:relative}.mob-ycard__step-btn:before{content:"";position:absolute;inset:-8px}.mob-ycard__month--rng{cursor:pointer}.mob-ycard__month--rng.touch-active{background:var(--lcr-brand-100)}.mob-plan__tray{animation:tray-slide-up .2s ease-out}@keyframes tray-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mob-editor--expanded .mob-editor__content{overflow-y:auto}.mob-editor--collapsed .mob-editor__content{overflow:hidden}.mob-plan__tray{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
