@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--brand-gray: #4D5156;--brand-white: #FFFFFF;--brand-black: #000000;--brand-cyan: #22D3EE;--cyan: var(--brand-cyan);--cyan-strong: #0D7593;--cyan-focus: #0891B2;--cyan-hover: #06B6D4;--cyan-soft: rgba(34, 211, 238, .12);--cyan-fill: rgba(34, 211, 238, .5);--cyan-border: rgba(34, 211, 238, .5);--cyan-ring: 0 0 0 3px rgba(34, 211, 238, .22);--on-cyan: #062A32;--accent: #000000;--accent-hover: #4D5156;--accent-soft: rgba(77, 81, 86, .08);--accent-border: rgba(77, 81, 86, .35);--accent-indigo: var(--accent);--border-color: var(--card-border);--bg-main: var(--content-bg);--bg-card: var(--card-bg);--bg-input: var(--input-bg);--surface: var(--card-bg);--border: var(--card-border);--utility-bar-bg: #4D5156;--utility-bar-text: #FFFFFF;--topbar-bg: #FFFFFF;--topbar-text: #000000;--topbar-icon: #4D5156;--topbar-icon-hover: #000000;--topbar-icon-bg: transparent;--topbar-icon-bg-hover:rgba(77, 81, 86, .1);--topbar-icon-active: rgba(77, 81, 86, .15);--topbar-border: #E5E5E5;--content-bg: #F6F6F7;--card-bg: #FFFFFF;--card-bg-hover: #FAFAFA;--card-border: #D6D7D9;--card-border-hover: #4D5156;--card-shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .05);--card-shadow-hover: 0 8px 24px rgba(0, 0, 0, .12);--text-primary: #000000;--text-secondary: #4D5156;--text-tertiary: #8A8F94;--text-inverse: #FFFFFF;--text-link: var(--cyan-strong);--input-bg: #FFFFFF;--input-border: #D0D0D0;--input-border-focus: var(--cyan-focus);--input-text: #000000;--input-shadow-focus: var(--cyan-ring);--btn-primary-bg: var(--content-bg);--btn-primary-border: var(--brand-gray);--btn-primary-hover: var(--hover-bg);--btn-primary-text: var(--text-primary);--btn-solid-bg: var(--cyan);--btn-solid-text: var(--on-cyan);--btn-cta-bg: var(--cyan);--btn-cta-hover: var(--cyan-hover);--btn-cta-text: var(--on-cyan);--btn-disabled-bg: #EEEEEE;--btn-disabled-text: #8A8F94;--input-placeholder: #8A8F94;--btn-danger-border: #4D5156;--btn-danger-text: #000000;--btn-danger-hover-bg: #000000;--btn-danger-hover-text: #FFFFFF;--hover-bg: rgba(77, 81, 86, .08);--sidebar-bg: #FAFAFA;--surface-muted: #F0F0F0;--surface-elevated: rgba(255, 255, 255, .96);--status-ok: #4D5156;--status-ok-bg: rgba(77, 81, 86, .1);--status-warn: #8A8F94;--status-warn-bg: rgba(138, 143, 148, .12);--status-error: #000000;--status-error-bg: rgba(0, 0, 0, .06);--overlay-scrim: rgba(0, 0, 0, .4);--viewer-bg: #EAECEF;--viewer-panel-bg: rgba(255, 255, 255, .97);--viewer-toolbar-bg: var(--viewer-panel-bg);--viewer-panel-border: rgba(0, 0, 0, .1);--viewer-panel-muted: #4D5156;--viewer-panel-subtle: #8A8F94;--viewer-tool-color: #4D5156;--viewer-tool-active-bg: rgba(77, 81, 86, .1);--viewer-tool-active-color: var(--text-primary);--viewer-badge-bg: var(--cyan-soft);--viewer-badge-text: var(--cyan-strong);--viewer-shadow: 0 4px 24px rgba(0, 0, 0, .12), 0 1px 4px rgba(0, 0, 0, .08);--viewer-shadow-lg: 0 16px 48px rgba(0, 0, 0, .18), 0 4px 12px rgba(0, 0, 0, .1);--viewer-panel-radius: 12px;--viewer-active-bg: var(--cyan-soft);--viewer-active-text: var(--cyan-strong);--viewer-active-border: var(--cyan-border);--viewer-sidebar-bg: #ffffff;--viewer-sidebar-border: rgba(0, 0, 0, .1);--viewer-disabled-opacity: .38;--viewer-type-badge-bg: var(--cyan-soft);--viewer-type-badge-text: var(--cyan-strong);--tab-underline: var(--cyan);--tab-text-active: var(--cyan-strong);--tab-text-inactive: #4D5156;--tab-border: #E0E0E0;--divider: #E5E5E5;--tooltip-bg: #4D5156;--tooltip-text: #FFFFFF;--scrollbar-thumb: #C5C5C5;--scrollbar-track: transparent;--logo-dot: var(--cyan);--lubim-logo-mid: #4D5156;--lubim-logo-top: #C4C7CB;--lubim-logo-dot: var(--brand-cyan);--LUBIM-accent: var(--brand-black);--LUBIM-border: var(--card-border);--LUBIM-dark: var(--brand-black);--surface-default: var(--card-bg);--danger-color: #D64545;--success-color: #2F9E5A;--warn-soft-bg: #FFF6E0;--warn-soft-border: #E8D9A8;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px}.dark{--brand-gray: #4D5156;--brand-white: #FFFFFF;--brand-black: #000000;--brand-cyan: #4DDDF2;--cyan: var(--brand-cyan);--cyan-strong: #8AEEFA;--cyan-focus: var(--cyan);--cyan-hover: #22D3EE;--cyan-soft: rgba(77, 221, 242, .15);--cyan-fill: rgba(34, 211, 238, .5);--cyan-border: rgba(77, 221, 242, .5);--cyan-ring: 0 0 0 3px rgba(77, 221, 242, .24);--on-cyan: #062A32;--accent: #FFFFFF;--accent-hover: #E5E5E5;--accent-soft: rgba(255, 255, 255, .08);--accent-border: rgba(255, 255, 255, .25);--accent-indigo: var(--accent);--border-color: var(--card-border);--bg-main: var(--content-bg);--bg-card: var(--card-bg);--bg-input: var(--input-bg);--surface: var(--card-bg);--border: var(--card-border);--utility-bar-bg: #2F3236;--utility-bar-text: #FFFFFF;--topbar-bg: #000000;--topbar-text: #FFFFFF;--topbar-icon: #B0B5BA;--topbar-icon-hover: #FFFFFF;--topbar-icon-bg-hover:rgba(255, 255, 255, .08);--topbar-icon-active: rgba(255, 255, 255, .12);--topbar-border: #333333;--content-bg: #000000;--card-bg: #141414;--card-bg-hover: #242424;--card-border: #333333;--card-border-hover: #4D5156;--card-shadow: 0 2px 12px rgba(0, 0, 0, .35);--card-shadow-hover: 0 8px 24px rgba(0, 0, 0, .5);--text-primary: #FFFFFF;--text-secondary: #B0B5BA;--text-tertiary: #8A8F94;--text-inverse: #000000;--text-link: var(--cyan-strong);--input-bg: #1A1A1A;--input-border: #333333;--input-border-focus: var(--cyan-focus);--input-shadow-focus: var(--cyan-ring);--input-text: #FFFFFF;--btn-primary-bg: var(--card-bg);--btn-primary-border: var(--card-border-hover);--btn-primary-hover: var(--card-bg-hover);--btn-primary-text: var(--text-primary);--btn-solid-bg: var(--cyan);--btn-solid-text: var(--on-cyan);--btn-cta-bg: var(--cyan);--btn-cta-hover: #7DE8F6;--btn-cta-text: var(--on-cyan);--btn-disabled-bg: #2A2A2A;--btn-disabled-text: #8A8F94;--btn-danger-border: #8A8F94;--btn-danger-text: #FFFFFF;--btn-danger-hover-bg: #FFFFFF;--btn-danger-hover-text: #000000;--hover-bg: rgba(255, 255, 255, .08);--sidebar-bg: #000000;--surface-muted: #242424;--surface-elevated: rgba(26, 26, 26, .96);--input-placeholder: #8A8F94;--tab-underline: var(--cyan);--tab-text-inactive: #8A8F94;--tab-text-active: var(--cyan-strong);--tooltip-bg: #4D5156;--tooltip-text: #FFFFFF;--logo-dot: var(--cyan);--lubim-logo-mid: #B4B8BC;--lubim-logo-top: #5A5E63;--lubim-logo-dot: var(--brand-cyan);--status-ok: #B0B5BA;--status-ok-bg: rgba(255, 255, 255, .08);--status-warn: #8A8F94;--status-warn-bg: rgba(255, 255, 255, .05);--status-error: #FFFFFF;--status-error-bg: rgba(255, 255, 255, .08);--overlay-scrim: rgba(0, 0, 0, .65);--viewer-bg: #0a0a0a;--viewer-panel-bg: rgba(20, 20, 20, .97);--viewer-toolbar-bg: var(--viewer-panel-bg);--viewer-panel-border: rgba(255, 255, 255, .1);--viewer-panel-muted: #B0B5BA;--viewer-panel-subtle: #8A8F94;--viewer-tool-color: #B0B5BA;--viewer-tool-active-bg: rgba(255, 255, 255, .1);--viewer-tool-active-color: #FFFFFF;--viewer-badge-bg: var(--cyan-soft);--viewer-badge-text: var(--cyan-strong);--viewer-shadow: 0 4px 24px rgba(0, 0, 0, .5), 0 1px 4px rgba(0, 0, 0, .3);--viewer-shadow-lg: 0 16px 48px rgba(0, 0, 0, .65), 0 4px 12px rgba(0, 0, 0, .35);--viewer-active-bg: var(--cyan-soft);--viewer-active-text: var(--cyan-strong);--viewer-active-border: var(--cyan-border);--viewer-sidebar-bg: #141414;--viewer-sidebar-border: rgba(255, 255, 255, .1);--viewer-disabled-opacity: .38;--viewer-type-badge-bg: var(--cyan-soft);--viewer-type-badge-text: var(--cyan-strong);--LUBIM-accent: #FFFFFF;--LUBIM-border: var(--card-border);--LUBIM-dark: #FFFFFF;--surface-default: var(--card-bg);--danger-color: #E5787A;--success-color: #5CC088;--warn-soft-bg: #2B2412;--warn-soft-border: #4D4222}body{margin:0;padding:0;background-color:var(--content-bg);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;overflow:hidden;transition:background-color .3s ease,color .3s ease}input[type=checkbox],input[type=radio],input[type=range],progress{accent-color:var(--cyan)}::selection{background:#22d3ee52}a:focus-visible,button:focus-visible,summary:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,[role=menuitem]:focus-visible,[role=option]:focus-visible,[tabindex]:not([tabindex="-1"]):not(input):not(textarea):not(select):focus-visible{outline:2px solid var(--cyan-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-xs)}.app-header{flex-shrink:0}.utility-bar{height:28px;display:flex;align-items:center;padding:0 var(--page-pad-x, 16px);background:var(--utility-bar-bg);color:var(--utility-bar-text);font-size:var(--fs-sm, 12px);font-weight:500}.utility-bar-label{letter-spacing:.02em}.main-header-bar{height:var(--header-h, 52px);display:flex;align-items:center;padding:0 var(--sp-3, 12px);gap:var(--sp-3, 12px);background:var(--topbar-bg);color:var(--topbar-text);border-bottom:1px solid var(--topbar-border)}.main-header-nav{display:flex;align-items:center;gap:var(--sp-1, 4px);flex-shrink:0}.main-header-history{display:flex;gap:var(--sp-1, 4px)}.main-header-history-btn{width:28px;height:28px;border-radius:var(--r-xs, 6px);background:var(--topbar-icon-bg-hover);border:none;color:var(--topbar-icon);font-size:var(--fs-lg, 15px);display:flex;align-items:center;justify-content:center;padding-bottom:3px;transition:background var(--t-base, .2s);font-family:inherit}.main-header-history-btn:not(:disabled){cursor:pointer}.main-header-history-btn:disabled{cursor:not-allowed;opacity:.3}.main-header-history-btn:not(:disabled):hover{background:var(--topbar-icon-active)}.main-header-logo{display:flex;align-items:center;padding:var(--sp-1, 4px) var(--sp-2, 8px);margin-left:2px;border-radius:var(--r-xs, 6px);background:none;border:none;cursor:pointer;font-family:inherit;color:var(--cyan-strong)}.main-header-logo:hover{background:var(--cyan-soft)}.main-header-actions{flex:1;display:flex;align-items:center;gap:var(--sp-1, 4px);min-width:0}.main-header-search{display:flex;align-items:center;height:var(--control-h, 32px);background:var(--content-bg);border:1px solid var(--topbar-border);border-radius:var(--control-radius, 8px);padding:0 var(--sp-2, 8px);width:280px;margin-left:var(--sp-4, 16px);box-sizing:border-box}.main-header-search input{background:transparent;border:none;color:var(--topbar-text);outline:none;font-size:var(--fs-base, 13px);width:100%;margin-left:var(--sp-2, 8px);font-family:inherit}.main-header-search input::placeholder{color:var(--text-tertiary)}.auth-brand{display:inline-flex;align-items:center;font-weight:800;letter-spacing:-.02em;color:var(--brand-black);line-height:1}.auth-brand-name{color:var(--brand-black)}.dark .auth-brand,.dark .auth-brand-name{color:var(--topbar-text)}.topbar{background:var(--topbar-bg);color:var(--topbar-text);height:44px;display:flex;align-items:center;padding:0 var(--sp-3, 12px);gap:var(--sp-1, 4px);border-bottom:1px solid var(--topbar-border)}.topbar-icon-btn{width:28px;height:28px;border-radius:var(--r-xs, 6px);border:none;background:var(--topbar-icon-bg);color:var(--topbar-icon);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--t-fast, .15s),color var(--t-fast, .15s)}.topbar-icon-btn svg{opacity:.78}.topbar-icon-btn:hover svg{opacity:1}.topbar-icon-btn:hover{background:var(--topbar-icon-bg-hover);color:var(--topbar-icon-hover)}.topbar-icon-btn.active{background:var(--topbar-icon-active);color:var(--accent)}.sidebar-left,.sidebar-right{width:48px;background:var(--topbar-bg);display:flex;flex-direction:column;align-items:center;padding:var(--sp-3, 12px) 0;gap:var(--sp-1, 4px);flex-shrink:0}.sidebar-icon-btn{width:34px;height:34px;border-radius:var(--r-sm, 8px);border:none;background:transparent;color:var(--topbar-icon);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast, .15s),color var(--t-fast, .15s);position:relative}.sidebar-icon-btn svg{opacity:.82}.sidebar-icon-btn:hover svg,.sidebar-icon-btn.active svg{opacity:1}.sidebar-icon-btn:hover{background:var(--topbar-icon-bg-hover);color:var(--topbar-icon-hover)}.sidebar-icon-btn.active{background:var(--accent-soft);color:var(--accent)}.sidebar-tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--tooltip-bg);color:var(--tooltip-text);font-size:var(--fs-sm, 12px);padding:var(--sp-1, 4px) 10px;border-radius:var(--r-xs, 6px);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--t-fast, .15s);z-index:100}.sidebar-icon-btn:hover .sidebar-tooltip{opacity:1}.sidebar-tooltip.left{left:auto;right:calc(100% + 10px)}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--content-bg)}.sidebar{width:260px;background:var(--topbar-bg);border-right:1px solid var(--card-border);display:flex;flex-direction:column;transition:width .3s ease;flex-shrink:0;overflow:hidden;z-index:10}.sidebar.collapsed{width:68px}.sidebar-header{height:64px;display:flex;align-items:center;padding:0 var(--sp-5, 20px);gap:var(--sp-3, 12px)}.sidebar-logo{font-weight:800;font-size:var(--fs-2xl, 22px);color:var(--text-primary);letter-spacing:-.02em;display:flex;align-items:center;gap:var(--sp-2, 8px)}.sidebar-logo:after{content:"";display:block;width:8px;height:8px;border-radius:50%;background:var(--accent)}.sidebar.collapsed .sidebar-logo,.sidebar.collapsed .sidebar-search-container,.sidebar.collapsed .primary-upload-btn,.sidebar.collapsed .sidebar-footer{display:none}.sidebar-search-container{display:flex;align-items:center;height:var(--control-h, 32px);background:var(--content-bg);border:1px solid var(--card-border);border-radius:var(--control-radius, 8px);padding:0 10px;gap:var(--sp-2, 8px);margin:var(--sp-4, 16px);box-sizing:border-box}.sidebar-search{border:none;background:transparent;width:100%;color:var(--text-primary);outline:none;font-size:var(--fs-base, 13px)}.primary-upload-btn{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border, var(--btn-primary-bg));border-radius:var(--control-radius, 8px);height:var(--control-h-lg, 38px);padding:0 var(--sp-4, 16px);display:flex;align-items:center;justify-content:center;gap:var(--sp-2, 8px);font-size:var(--fs-base, 13px);font-weight:600;margin:0 var(--sp-4, 16px) var(--sp-4, 16px);cursor:pointer;transition:background var(--t-fast, .15s);box-shadow:none}.primary-upload-btn:hover{background:var(--btn-primary-hover);color:var(--btn-primary-text);border-color:var(--btn-primary-border, var(--btn-primary-bg))}.sidebar-nav{flex:1;padding:var(--sp-4, 16px) var(--sp-3, 12px);overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:var(--sp-3, 12px);padding:var(--sp-2, 8px) var(--sp-3, 12px);color:var(--text-secondary);text-decoration:none;border-radius:var(--r-xs, 6px);font-weight:600;font-size:var(--fs-base, 13px);transition:background var(--t-fast, .15s),color var(--t-fast, .15s);cursor:pointer;border-left:3px solid transparent}.nav-item:hover{background:var(--topbar-icon-bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-left:3px solid var(--accent)}.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-group .nav-submenu{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--sp-3, 12px)}.nav-group{display:flex;flex-direction:column}.nav-submenu{margin-left:var(--sp-6, 24px);margin-top:var(--sp-1, 4px);display:flex;flex-direction:column;gap:var(--sp-1, 4px)}.nav-submenu-item{padding:var(--sp-1, 4px) var(--sp-3, 12px);color:var(--text-tertiary);text-decoration:none;font-size:var(--fs-base, 13px);border-radius:var(--r-xs, 6px)}.nav-submenu-item:hover,.nav-submenu-item.active{color:var(--text-primary);background:var(--accent-soft)}.sidebar-footer{padding:var(--sp-4, 16px);display:flex;flex-direction:column;gap:var(--sp-2, 8px);border-top:1px solid var(--card-border)}.footer-link{color:var(--text-tertiary);text-decoration:none;font-size:var(--fs-sm, 12px);transition:color var(--t-fast, .15s);background:none;border:none;text-align:left;cursor:pointer}.footer-link:hover{color:var(--text-primary)}.main-content{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}.top-bar{height:var(--header-h, 52px);background-color:var(--topbar-bg);border-bottom:1px solid var(--topbar-border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3, 12px);padding:0 var(--page-pad-x, 24px);flex-shrink:0}.page-title{font-size:var(--fs-xl, 18px);font-weight:700;color:var(--text-primary)}.content-area{flex:1;padding:var(--page-gutter, 20px) var(--page-pad-x, 24px);overflow-y:auto}.glass-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg, 12px);box-shadow:var(--card-shadow)}.map-container{width:100%;height:100%;min-height:320px;border-radius:var(--r-lg, 12px);overflow:hidden;border:1px solid var(--card-border);background:var(--card-bg)}.leaflet-container{font-family:inherit}.leaflet-popup-content-wrapper{border-radius:var(--r-md, 10px)!important;box-shadow:var(--card-shadow-hover)!important;border:1px solid var(--card-border)!important;background:var(--card-bg)!important;color:var(--text-primary);padding:0!important;overflow:hidden}.leaflet-popup-content{margin:0!important;padding:0!important}.leaflet-popup-tip{background:var(--card-bg)!important}.popup-title{font-weight:700;font-size:var(--fs-base, 13px);color:var(--text-primary);padding:var(--sp-3, 12px) 14px var(--sp-1, 4px);font-family:inherit}.popup-address{font-size:var(--fs-sm, 12px);color:var(--text-secondary);padding:0 14px 10px;font-family:inherit}.popup-btn{display:block;width:100%;box-sizing:border-box;padding:var(--sp-2, 8px) 14px;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;font-size:var(--fs-base, 13px);font-weight:600;cursor:pointer;font-family:inherit;text-align:left;transition:background var(--t-fast, .15s)}.popup-btn:hover{background:var(--btn-primary-hover)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.animate-fade-in{animation:fadeIn .3s ease}@media(max-width:1024px){.main-header-search{width:200px}}@media(max-width:768px){.main-header-search{display:none!important}.main-header-bar{padding:0 var(--sp-2, 8px);gap:var(--sp-2, 8px)}.user-avatar{width:30px;height:30px;font-size:var(--fs-xs, 11px)}.top-bar{padding:0 var(--page-pad-x, 16px)}.content-area{padding:var(--page-gutter, 16px) var(--page-pad-x, 16px)}.sidebar,.sidebar-left,.sidebar-right{display:none}}.viewer-drawer,.viewer-drawer__content,.viewer-mode-bar-inline,.viewer-mode-bar,.viewer-props-sidebar,.viewer-datagrid-container,.viewer-datagrid,.viewer-left-panel,.viewer-sidebar,.viewer-toolbar{border-radius:var(--viewer-panel-radius)!important}.viewer-props-sidebar__header,.viewer-drawer__header{border-top-left-radius:calc(var(--viewer-panel-radius) - 1px)!important;border-top-right-radius:calc(var(--viewer-panel-radius) - 1px)!important}.viewer-props-sidebar__footer,.viewer-drawer__footer{border-bottom-left-radius:calc(var(--viewer-panel-radius) - 1px)!important;border-bottom-right-radius:calc(var(--viewer-panel-radius) - 1px)!important}@media(max-width:768px){.viewer-toolbar,.viewer-mode-bar-inline{bottom:1rem!important;transform:scale(.85) translate(-58%)!important;transform-origin:bottom center;width:max-content}.viewer-props-sidebar{width:100%!important;height:42vh!important;bottom:0!important;top:auto!important;right:0!important;border-radius:var(--viewer-panel-radius) var(--viewer-panel-radius) 0 0!important;border-bottom:none!important;border-right:none!important;border-left:none!important}.vvc-root{transform:scale(.7)!important;transform-origin:top right!important;top:60px!important}}.access-denied{position:relative;min-height:100%;height:100%;overflow:hidden;background:var(--content-bg)}.access-denied__ghost{position:absolute;inset:0;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4) var(--page-pad-x);pointer-events:none;user-select:none;opacity:.55;filter:grayscale(1);mask-image:linear-gradient(to bottom,#000000e6,#00000059);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,.35))}.access-denied__ghost-bar{display:flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--card-border);background:var(--card-bg)}.access-denied__ghost-spacer{flex:1}.access-denied__ghost-pill{display:inline-block;height:10px;border-radius:var(--r-pill);background:var(--surface-muted)}.access-denied__ghost-pill--btn{height:24px;border-radius:var(--r-sm);border:1px solid var(--card-border);background:var(--card-bg)}.access-denied__ghost-body{flex:1;display:flex;gap:var(--sp-4);min-height:0}.access-denied__ghost-canvas{flex:1;border-radius:var(--r-lg);border:1px dashed var(--card-border);background:linear-gradient(var(--card-border) 1px,transparent 1px) 0 0 / 48px 48px,linear-gradient(90deg,var(--card-border) 1px,transparent 1px) 0 0 / 48px 48px,var(--card-bg)}.access-denied__ghost-side{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--card-border);background:var(--card-bg)}.access-denied__ghost-line{display:block;height:10px;border-radius:var(--r-pill);background:var(--surface-muted)}.access-denied__ghost-columns{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}.access-denied__ghost-column{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-lg);border:1px solid var(--card-border);background:var(--card-bg)}.access-denied__ghost-tile{display:block;height:64px;border-radius:var(--r-md);border:1px solid var(--card-border);background:var(--surface-muted)}.access-denied__ghost-rows{flex:1;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--card-border);background:var(--card-bg)}.access-denied__ghost-row{display:block;height:34px;border-radius:var(--r-sm);background:var(--surface-muted)}.access-denied__card{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 2 * var(--page-pad-x)));padding:var(--sp-6) var(--sp-6) var(--sp-5);display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);box-shadow:var(--card-shadow-hover)}.access-denied__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-md);border:1px solid var(--card-border);background:var(--surface-muted);color:var(--text-secondary)}.access-denied__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.access-denied__text{margin:0;font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-secondary)}.access-denied__badge{vertical-align:-3px;margin:0 2px}.access-denied__contacts{width:100%;margin-top:var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--card-border)}.access-denied__contacts-title{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-tertiary)}.access-denied__contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.access-denied__contact{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--card-border);background:var(--surface-muted)}.access-denied__avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--card-bg);border:1px solid var(--card-border);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-primary)}.access-denied__contact-main{display:flex;flex-direction:column;min-width:0}.access-denied__contact-name{font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-denied__contact-org{font-size:var(--fs-sm);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-denied__contact-links{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:var(--fs-sm)}.access-denied__contact-links a{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;white-space:nowrap}.access-denied__contact-links a:hover{color:var(--cyan-strong);text-decoration:underline}.access-denied__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}@media(max-width:720px){.access-denied__ghost-side,.access-denied__ghost-columns>:nth-child(n+3){display:none}.access-denied__ghost-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.access-denied__card{top:50%;padding:var(--sp-5) var(--sp-4)}.access-denied__contact{grid-template-columns:auto minmax(0,1fr)}.access-denied__contact-links{grid-column:2;align-items:flex-start}}.building-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;transition:border-color var(--t-base),background var(--t-base),box-shadow var(--t-base);position:relative;box-shadow:var(--card-shadow)}.building-card:hover{border-color:var(--cyan);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover),var(--cyan-ring)}.building-card__visual{height:140px;background:var(--content-bg);border-bottom:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;position:relative}.building-card__body{padding:var(--sp-3) var(--sp-4)}.building-card__name{font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--text-primary);margin-bottom:var(--sp-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.building-card__name:after{content:"";display:block;width:28px;height:3px;margin-top:var(--sp-1);background:var(--cyan);border-radius:2px}.building-card__address{font-size:var(--fs-sm);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.building-card__meta{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.building-card__address-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);min-width:0}.building-card__address-row .building-card__address{flex:1;min-width:0}.building-card__access{flex-shrink:1;min-width:0}.building-card__meta-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1)}.building-card__meta-row .building-card__meta{margin-top:0}.building-card__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2)}.building-card__status-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:1px var(--sp-1);border-radius:var(--r-xs);border:1px solid var(--card-border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--ls-label)}.building-overview__state{padding:var(--sp-8) var(--sp-6);text-align:center;color:var(--text-secondary);font-size:var(--fs-base)}.building-overview__empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);max-width:460px;margin:0 auto}.building-overview__empty-icon{color:var(--text-tertiary);opacity:.6}.building-overview__empty-title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.building-overview__empty-text{margin:0 0 var(--sp-2);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-secondary)}.building-card__menu-btn{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:10;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity var(--t-fast),background var(--t-fast)}.building-card:hover .building-card__menu-btn,.building-card__menu-btn:focus,.building-card__menu-btn--open{opacity:1;background:var(--card-border)}.building-card__menu-btn:hover{background:var(--card-border-hover);color:var(--text-primary)}@media(hover:none){.building-card__menu-btn{opacity:1}}.confirm-overlay{position:fixed;inset:0;z-index:1000;background:var(--overlay-scrim);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:var(--sp-5);box-sizing:border-box;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-xl);padding:var(--sp-5);max-width:440px;width:100%;box-sizing:border-box;box-shadow:var(--card-shadow-hover);animation:dialog-in .18s cubic-bezier(.34,1.56,.64,1)}@keyframes dialog-in{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog__icon{width:40px;height:40px;border-radius:50%;background:var(--status-error-bg);display:flex;align-items:center;justify-content:center;color:var(--danger-color);margin-bottom:var(--sp-3)}.confirm-dialog__title{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);margin:0 0 var(--sp-2)}.confirm-dialog__text{font-size:var(--fs-base);color:var(--text-secondary);line-height:var(--lh-base);margin:0 0 var(--sp-5)}.confirm-dialog__name{font-weight:var(--fw-bold);color:var(--text-primary)}.confirm-dialog__actions{display:flex;gap:var(--sp-2);justify-content:flex-end}.customize-dialog{max-width:520px}.customize-dialog__section{margin-bottom:var(--sp-5)}.customize-dialog__label{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-tertiary);margin-bottom:var(--sp-2)}.customize-dialog__module-list{display:flex;flex-direction:column;gap:var(--sp-1)}.customize-dialog__module-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--card-border);background:var(--card-bg);cursor:grab}.customize-dialog__module-row:hover{border-color:var(--card-border-hover);background:var(--card-bg-hover)}.customize-dialog__module-name{flex:1;font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary)}.customize-dialog__col-row{display:flex;gap:var(--sp-2)}@media(max-width:768px){.confirm-dialog__actions{flex-direction:column-reverse}.confirm-dialog__actions .btn,.confirm-dialog__actions .settings-btn{width:100%}}.type-confirm__label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:var(--sp-1)}.type-confirm__label strong{color:var(--text-primary);font-weight:var(--fw-bold)}.type-confirm__input{width:100%;box-sizing:border-box;margin-bottom:var(--sp-5)}.type-confirm__reason{width:100%;box-sizing:border-box;margin-bottom:var(--sp-4);resize:vertical;min-height:56px;font-family:inherit}.type-confirm__required{color:var(--danger-color)}.type-confirm__danger:not(:disabled){background:var(--danger-color);border-color:var(--danger-color);color:#fff}.type-confirm__danger:not(:disabled):hover{background:var(--danger-color);border-color:var(--danger-color);color:#fff;filter:brightness(1.08)}.ctx-menu-root{position:fixed;inset:0 auto auto 0;width:0;height:0;z-index:3000;pointer-events:none}.ctx-menu{position:fixed;pointer-events:auto;min-width:208px;max-width:min(320px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden;padding:6px;background:var(--viewer-panel-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid var(--viewer-panel-border);border-radius:var(--r-lg);box-shadow:var(--viewer-shadow-lg);color:var(--text-primary);font-family:var(--font-sans, "Inter", system-ui, sans-serif);font-size:var(--fs-sm);outline:none;user-select:none;-webkit-user-select:none;animation:ctx-menu-in .15s cubic-bezier(.22,1,.36,1);transform-origin:top left;scrollbar-width:thin}@keyframes ctx-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.ctx-menu{animation:none}}.ctx-menu__header{display:flex;align-items:flex-start;gap:8px;padding:6px 8px 8px;margin-bottom:4px;border-bottom:1px solid var(--viewer-panel-border)}.ctx-menu__header-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:18px;flex-shrink:0;color:var(--viewer-panel-muted)}.ctx-menu__header-body{min-width:0;flex:1}.ctx-menu__title-row{display:flex;align-items:center;gap:6px;min-width:0}.ctx-menu__title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ctx-menu__badge{flex-shrink:0;font-size:var(--fs-2xs);font-weight:700;padding:1px 6px;border-radius:var(--r-xs);background:var(--viewer-type-badge-bg);color:var(--viewer-type-badge-text);font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:.02em;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-menu__meta{margin-top:2px;font-size:var(--fs-2xs);color:var(--viewer-panel-subtle);font-family:var(--font-mono, ui-monospace, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-menu__label{padding:8px 10px 3px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--viewer-panel-subtle);white-space:nowrap}.ctx-menu__separator{height:1px;margin:4px 6px;background:var(--viewer-panel-border)}.ctx-menu__item{display:flex;align-items:center;gap:10px;width:100%;min-height:30px;padding:6px 10px 6px 8px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);font-weight:500;line-height:1.3;text-align:left;cursor:pointer;outline:none;transition:background .1s}.ctx-menu__item--active{background:var(--viewer-tool-active-bg)}.ctx-menu__item--active .ctx-menu__icon,.ctx-menu__item--active .ctx-menu__chevron{color:var(--text-primary)}.ctx-menu__item--disabled{cursor:default;color:var(--viewer-panel-subtle)}.ctx-menu__item--disabled .ctx-menu__icon{color:var(--viewer-panel-subtle);opacity:.7}.ctx-menu__item--danger,.ctx-menu__item--danger .ctx-menu__icon{color:var(--danger-color)}.ctx-menu__item--danger.ctx-menu__item--active{background:var(--status-error-bg)}.ctx-menu__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--viewer-panel-muted);transition:color .1s}.ctx-menu__icon>svg{width:14px;height:14px}.ctx-menu__item--checked .ctx-menu__icon{color:var(--cyan-strong)}.ctx-menu__text{display:flex;flex-direction:column;min-width:0;flex:1}.ctx-menu__text-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-menu__hint{font-size:var(--fs-2xs);font-weight:400;color:var(--viewer-panel-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-menu__shortcut{margin-left:12px;flex-shrink:0;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--fs-2xs);font-weight:500;color:var(--viewer-panel-subtle);letter-spacing:.02em;background:transparent;border:none;padding:0}.ctx-menu__chevron{margin-left:auto;flex-shrink:0;color:var(--viewer-panel-subtle)}@media(pointer:coarse){.ctx-menu__item{min-height:40px;font-size:var(--fs-base)}}.readiness{border:1px solid var(--card-border);border-radius:var(--r-lg, 12px);background:var(--card-bg);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.readiness__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.readiness__title{margin:0;font-size:var(--fs-base);font-weight:700;color:var(--text-primary)}.readiness__level{font-size:var(--fs-2xs);font-weight:700;padding:3px 9px;border-radius:10px;background:var(--cyan-soft);color:var(--cyan-strong);border:1px solid var(--cyan-border);white-space:nowrap}.readiness__level--low{background:var(--surface-muted);color:var(--text-secondary);border-color:var(--card-border)}.readiness__body{display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--sp-4);align-items:center}.readiness__ring{position:relative;width:92px;height:92px;margin:0 auto}.readiness__ring svg{transform:rotate(-90deg);display:block}.readiness__ring-track{stroke:var(--card-border)}.readiness__ring-value{stroke:var(--cyan);transition:stroke-dashoffset .6s ease}.readiness__ring-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.readiness__ring-number{font-size:26px;font-weight:800;color:var(--text-primary)}.readiness__ring-unit{margin-top:3px;font-size:var(--fs-2xs);color:var(--text-tertiary)}.readiness__dims{display:flex;flex-direction:column;gap:8px}.readiness__dim{display:grid;grid-template-columns:108px minmax(0,1fr) 30px;gap:10px;align-items:center;font-size:var(--fs-sm)}.readiness__dim-label{color:var(--text-primary);font-weight:600}.readiness__dim--weak .readiness__dim-label{color:var(--text-secondary);font-weight:500}.readiness__bar{height:6px;border-radius:3px;background:var(--card-border);overflow:hidden}.readiness__bar-fill{height:100%;border-radius:3px;background:var(--cyan);transition:width .6s ease}.readiness__dim--partial .readiness__bar-fill{background:var(--cyan-fill)}.readiness__dim--weak .readiness__bar-fill{background:var(--card-border-hover)}.readiness__dim-score{text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums}.readiness__checks{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:var(--sp-2);border-top:1px solid var(--card-border);font-size:var(--fs-xs);color:var(--text-secondary)}.readiness__check{display:inline-flex;align-items:center;gap:5px}.readiness__check svg{flex-shrink:0}.readiness__check--ok svg{color:var(--cyan)}.readiness__check--missing,.readiness__check-detail{color:var(--text-tertiary)}.readiness__toggle{background:none;border:none;padding:0;font:inherit;font-size:var(--fs-xs);color:var(--text-link);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.readiness__all{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px;padding-top:var(--sp-2);font-size:var(--fs-xs)}.readiness__all-group{font-weight:700;color:var(--text-primary);margin:6px 0 2px;grid-column:1 / -1}.readiness__purposes{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--fs-sm)}.readiness__purposes-label{color:var(--text-secondary);margin-right:2px}.readiness__chip{padding:5px 12px;border-radius:999px;border:1px solid var(--card-border);background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background var(--t-fast, .15s),color var(--t-fast, .15s),border-color var(--t-fast, .15s)}.readiness__chip:hover{border-color:var(--card-border-hover);color:var(--text-primary)}.readiness__chip[aria-pressed=true]{background:var(--cyan-soft);border-color:var(--cyan-border);color:var(--cyan-strong)}.readiness__cta{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-md, 10px);background:var(--cyan-soft);border:1px solid var(--cyan-border)}.readiness__cta svg{flex-shrink:0;color:var(--cyan-strong)}.readiness__cta-text{flex:1;margin:0;font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-primary)}.readiness__cta-text strong{font-weight:700}.readiness__cta-btn{white-space:nowrap;font-size:var(--fs-sm);font-weight:600;padding:6px 12px;border-radius:var(--r-xs, 6px);border:1px solid var(--cyan-border);background:var(--card-bg);color:var(--cyan-strong);cursor:pointer;text-decoration:none}.readiness__cta-btn:hover{background:var(--cyan-soft)}.readiness__foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--fs-xs);color:var(--text-tertiary)}.readiness-badge{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--text-secondary)}.readiness-badge__bar{width:56px;height:4px;border-radius:2px;background:var(--card-border);overflow:hidden}.readiness-badge__fill{height:100%;background:var(--cyan);border-radius:2px}.readiness-badge__score{font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}@media(max-width:640px){.readiness__body{grid-template-columns:minmax(0,1fr)}.readiness__dim{grid-template-columns:96px minmax(0,1fr) 30px}.readiness__cta{flex-wrap:wrap}}body.pub-scroll{overflow:auto;overflow-x:hidden}body.pub-scroll.pub-menu-open{overflow:hidden}.pub{--pub-bg: #FFFFFF;--pub-bg-alt: #F6F6F7;--pub-bg-soft: #FAFAFA;--pub-ink: #000000;--pub-ink-2: #4D5156;--pub-ink-3: #6B7075;--pub-line: #E6E7E9;--pub-line-strong: #D0D2D5;--pub-dark: #0A0A0A;--pub-dark-2: #161718;--pub-dark-line: rgba(255, 255, 255, .14);--pub-dark-ink-2: #C6CACE;--pub-cyan: #22D3EE;--pub-cyan-hover: #06B6D4;--pub-cyan-strong: #0D7593;--pub-cyan-focus: #0891B2;--pub-cyan-soft: rgba(34, 211, 238, .12);--pub-cyan-border: rgba(34, 211, 238, .55);--pub-cyan-ring: 0 0 0 3px rgba(34, 211, 238, .22);--pub-on-cyan: #062A32;--pub-cyan-dark: #4DDDF2;--pub-max: 1200px;--pub-max-text: 760px;--pub-pad: clamp(20px, 5vw, 48px);--pub-header-h: 72px;--pub-radius: 14px;--pub-radius-lg: 20px;--pub-section: clamp(72px, 9vw, 128px);--pub-ease: cubic-bezier(.22, 1, .36, 1);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;line-height:1.6;color:var(--pub-ink);background:var(--pub-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}.pub *,.pub *:before,.pub *:after{box-sizing:border-box}.pub :where(a){color:inherit;text-decoration:none}.pub :focus-visible{outline:2px solid var(--pub-cyan-focus);outline-offset:3px;border-radius:4px}.pub-main{flex:1}.pub-container{width:100%;max-width:var(--pub-max);margin:0 auto;padding:0 var(--pub-pad)}.pub-skip{position:absolute;top:-100px;left:16px;z-index:100;padding:10px 14px;background:var(--pub-ink);color:#fff;border-radius:8px;font-size:15px;font-weight:600}.pub-skip:focus{top:12px}.pub-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pub-ink-2);margin:0 0 18px}.pub-eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pub-cyan);flex-shrink:0}.pub-h1{font-size:clamp(40px,6vw,70px);font-weight:800;letter-spacing:-.035em;line-height:1.02;margin:0 0 24px;text-wrap:balance}.pub-h2{font-size:clamp(30px,3.6vw,44px);font-weight:700;letter-spacing:-.028em;line-height:1.1;margin:0 0 16px;text-wrap:balance}.pub-h3{font-size:20px;font-weight:650;letter-spacing:-.012em;line-height:1.3;margin:0 0 8px}.pub-lead{font-size:clamp(18px,1.7vw,21px);line-height:1.6;color:var(--pub-ink-2);max-width:var(--pub-max-text);margin:0}.pub-text{font-size:17px;line-height:1.65;color:var(--pub-ink-2);margin:0}.pub-section-head{max-width:800px;margin-bottom:clamp(36px,5vw,56px)}.pub-section-head--center{margin-left:auto;margin-right:auto;text-align:center}.pub-section-head--center .pub-lead{margin-left:auto;margin-right:auto}.pub-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 22px;border-radius:10px;font-size:16px;font-weight:600;letter-spacing:-.005em;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .2s var(--pub-ease),border-color .2s var(--pub-ease),color .2s var(--pub-ease),box-shadow .2s var(--pub-ease);font-family:inherit}.pub-btn svg{transition:transform .2s var(--pub-ease)}.pub-btn:hover svg{transform:translate(2px)}.pub-btn--solid{background:var(--pub-cyan);color:var(--pub-on-cyan);border-color:var(--pub-cyan)}.pub-btn--solid:hover{background:var(--pub-cyan-hover);border-color:var(--pub-cyan-hover);box-shadow:var(--pub-cyan-ring)}.pub-btn--ghost{background:#fff;color:var(--pub-ink);border-color:var(--pub-line-strong)}.pub-btn--ghost:hover{border-color:var(--pub-ink-2);background:var(--pub-bg-alt)}.pub-btn--dark{background:var(--pub-ink);color:#fff;border-color:var(--pub-ink)}.pub-btn--dark:hover{background:var(--pub-ink-2);border-color:var(--pub-ink-2)}.pub-btn--outline-light{background:transparent;color:#fff;border-color:#fff6}.pub-btn--outline-light:hover{border-color:#fff;background:#ffffff14}.pub-btn--sm{height:40px;padding:0 16px;font-size:15px;border-radius:9px}.pub-btn--lg{height:56px;padding:0 28px;font-size:17px;border-radius:12px}.pub-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:16px;color:var(--pub-ink);border-bottom:2px solid var(--pub-cyan);padding-bottom:1px;transition:color .2s,border-color .2s}.pub-link:hover{color:var(--pub-cyan-strong);border-bottom-color:var(--pub-cyan-hover)}.pub-link svg{transition:transform .2s var(--pub-ease)}.pub-link:hover svg{transform:translate(2px)}.pub-header{position:sticky;top:0;z-index:60;background:#ffffffd9;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s,background .25s}.pub-header.is-scrolled,.pub-header.is-open{border-bottom-color:var(--pub-line);background:#fffffff0}.pub-header__inner{height:var(--pub-header-h);display:flex;align-items:center;gap:32px}.pub-brand{display:inline-flex;align-items:center;color:var(--pub-ink);line-height:0;flex-shrink:0;--lubim-logo-mid: #4D5156;--lubim-logo-top: #C4C7CB;--lubim-logo-dot: #06B6D4}.pub-brand svg{display:block}.pub-nav{display:flex;align-items:center;gap:4px;margin-left:8px}.pub-nav__link{position:relative;padding:9px 13px;border-radius:8px;font-size:15.5px;font-weight:500;color:var(--pub-ink-2);transition:color .2s,background .2s}.pub-nav__link:hover{color:var(--pub-ink);background:var(--pub-bg-alt)}.pub-nav__link.is-active{color:var(--pub-ink);font-weight:600}.pub-nav__link.is-active:after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;border-radius:2px;background:var(--pub-cyan)}.pub-header__actions{margin-left:auto;display:flex;align-items:center;gap:10px}.pub-header__toggle{display:none;margin-left:auto;width:42px;height:42px;border-radius:10px;border:1px solid var(--pub-line-strong);background:#fff;color:var(--pub-ink);cursor:pointer;align-items:center;justify-content:center}.pub-mobile{display:none;border-top:1px solid var(--pub-line);background:#fff;padding:12px var(--pub-pad) 24px}.pub-mobile[hidden]{display:none!important}.pub-mobile__nav{display:flex;flex-direction:column}.pub-mobile__nav .pub-nav__link{font-size:18px;padding:15px 4px;border-radius:0;border-bottom:1px solid var(--pub-line)}.pub-mobile__nav .pub-nav__link.is-active:after{display:none}.pub-mobile__nav .pub-nav__link.is-active{color:var(--pub-cyan-strong)}.pub-mobile__actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.pub-mobile__actions .pub-btn{width:100%;height:48px;font-size:16px}.pub-hero{position:relative;overflow:hidden;padding:clamp(48px,7vw,96px) 0 clamp(56px,8vw,112px)}.pub-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.075) 1px,transparent 0);background-size:26px 26px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,.6) 55%,transparent 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,.6) 55%,transparent 100%);pointer-events:none}.pub-hero:after{content:"";position:absolute;top:-25%;right:-10%;width:60%;height:95%;background:radial-gradient(closest-side,rgba(34,211,238,.14),transparent 72%);pointer-events:none}.pub-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,64px);align-items:center}.pub-hero__copy .pub-eyebrow{padding:8px 14px 8px 12px;border:1px solid var(--pub-line-strong);border-radius:999px;background:#fffc}.pub-hero__title span{display:block}.pub-hero__title span:nth-child(2){color:var(--pub-ink-2)}.pub-hero__text{font-size:clamp(18px,1.7vw,21px);line-height:1.6;color:var(--pub-ink-2);max-width:580px;margin:0 0 32px}.pub-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px}.pub-hero__facts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 22px}.pub-hero__facts li{display:inline-flex;align-items:center;gap:8px;font-size:15.5px;font-weight:500;color:var(--pub-ink-2)}.pub-hero__facts svg{color:var(--pub-cyan-strong);flex-shrink:0}.pub-visual{position:relative;width:100%;max-width:620px;margin:0 auto;aspect-ratio:640 / 730;container-type:inline-size}.pub-visual>svg{width:100%;height:100%;display:block;overflow:visible}.pub-visual__floor{animation:pubFloat 7s ease-in-out infinite}.pub-visual__floor--1{animation-delay:-1.2s}.pub-visual__floor--2{animation-delay:-2.4s}.pub-visual__floor--3{animation-delay:-3.6s}@keyframes pubFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.pub-visual__stroke{stroke-dasharray:1;stroke-dashoffset:1;animation:pubDraw 1.4s var(--pub-ease) forwards}@keyframes pubDraw{to{stroke-dashoffset:0}}.pub-visual__hot{cursor:pointer}.pub-visual__link{transition:stroke-opacity .35s ease,stroke-width .35s ease,r .35s ease}.pub-visual__pulse{transform-box:fill-box;transform-origin:center;animation:pubPulse 2s ease-out infinite}@keyframes pubPulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(2.2);opacity:0}}.pub-visual__hint{position:absolute;top:0;right:0;z-index:2;margin:0;display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 8px;border:1px solid var(--pub-line-strong);border-radius:999px;background:#ffffffd9;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pub-ink-3);opacity:0;animation:pubCalloutIn .7s var(--pub-ease) 2s forwards;transition:opacity .4s ease;pointer-events:none}.pub-visual__hint svg{width:14px;height:14px;color:var(--pub-cyan-strong)}.pub-visual__hint.is-hidden{animation:none;opacity:0}.pub-callout-pos{position:absolute;z-index:2;width:max-content}.pub-callout-pos--above{transform:translate(-50%,-100%);padding-bottom:6px}.pub-callout-pos--below{transform:translate(-50%);padding-top:6px}.pub-callout{appearance:none;font:inherit;text-align:left;color:inherit;cursor:pointer;display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#fffffff7;border:1px solid var(--pub-line-strong);border-radius:12px;box-shadow:0 10px 30px #0000001a,0 1px 2px #0000000f;min-width:210px;max-width:250px;opacity:0;animation:pubCalloutIn .7s var(--pub-ease) forwards;transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease}.pub-callout--1{animation-delay:.9s}.pub-callout--2{animation-delay:1.2s}.pub-callout--3{animation-delay:1.5s}@keyframes pubCalloutIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pub-callout:hover{border-color:var(--pub-ink-3);box-shadow:0 14px 36px #00000024,0 1px 2px #0000000f}.pub-callout.is-active{background:#fff;border-color:var(--pub-cyan-border);box-shadow:0 16px 40px #00000024,var(--pub-cyan-ring)}.pub-callout:focus-visible{outline-offset:2px;border-radius:12px}.pub-callout__icon{width:32px;height:32px;border-radius:8px;background:var(--pub-cyan);color:var(--pub-on-cyan);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .25s ease,color .25s ease,border-color .25s ease}.pub-callout__icon svg{width:100%;height:100%}.pub-callout__icon--soft{background:var(--pub-bg-alt);color:var(--pub-ink);border:1px solid var(--pub-line-strong)}.pub-callout__body{display:flex;flex-direction:column;gap:2px;min-width:0}.pub-callout__kicker{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pub-cyan-strong)}.pub-callout__title{font-size:14.5px;font-weight:650;color:var(--pub-ink);line-height:1.3}.pub-callout__meta{font-size:13px;color:var(--pub-ink-2);line-height:1.4}.pub-callout__details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--pub-ease),margin-top .35s var(--pub-ease);margin-top:0}.pub-callout.is-active .pub-callout__details{grid-template-rows:1fr;margin-top:8px}.pub-callout__details-inner{min-height:0;overflow:hidden;display:flex;flex-wrap:wrap;gap:4px}.pub-callout__chip{display:inline-block;padding:2px 7px;border:1px solid var(--pub-line-strong);border-radius:999px;background:var(--pub-bg-alt);font-size:11px;font-weight:500;line-height:1.3;color:var(--pub-ink-2);white-space:nowrap}@container (max-width: 480px){.pub-callout{min-width:168px;max-width:200px;padding:9px 11px;gap:9px}.pub-callout__icon{width:28px;height:28px}.pub-callout__kicker{font-size:10.5px}.pub-callout__title{font-size:13.5px}.pub-callout__meta{display:none}.pub-callout__chip{padding:2px 7px;font-size:11px}.pub-visual__hint{padding:5px 9px 5px 7px;font-size:11px}}@container (max-width: 400px){.pub-callout{min-width:150px;max-width:186px;padding:8px 10px;border-radius:10px}.pub-callout__title{font-size:13px}}.pub-section{padding:var(--pub-section) 0;scroll-margin-top:calc(var(--pub-header-h) + 8px)}.pub-section--alt{background:var(--pub-bg-alt)}.pub-section--dark{background:var(--pub-dark);color:#fff}.pub-section--dark .pub-eyebrow{color:var(--pub-dark-ink-2)}.pub-section--dark .pub-eyebrow:before{background:var(--pub-cyan-dark)}.pub-section--dark .pub-lead,.pub-section--dark .pub-text{color:var(--pub-dark-ink-2)}.pub-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pub-feature{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px 26px 30px;background:#fff;border:1px solid var(--pub-line);border-radius:var(--pub-radius);transition:border-color .25s var(--pub-ease),box-shadow .25s var(--pub-ease),transform .25s var(--pub-ease)}.pub-feature:hover{border-color:var(--pub-cyan-border);box-shadow:0 16px 40px #00000014,var(--pub-cyan-ring);transform:translateY(-2px)}.pub-feature__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.pub-feature__icon{width:48px;height:48px;border-radius:12px;background:var(--pub-bg-alt);border:1px solid var(--pub-line);display:flex;align-items:center;justify-content:center;color:var(--pub-ink);transition:background .25s,color .25s,border-color .25s}.pub-feature:hover .pub-feature__icon{background:var(--pub-cyan-soft);border-color:var(--pub-cyan-border);color:var(--pub-cyan-strong)}.pub-tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--pub-line-strong);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pub-ink-2);white-space:nowrap}.pub-feature .pub-h3{margin:4px 0 0}.pub-feature .pub-text{font-size:16px}.pub-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;position:relative;counter-reset:pubstep;list-style:none;padding:0;margin:0}.pub-step{position:relative;padding:28px 26px 30px;background:#fff;border:1px solid var(--pub-line);border-radius:var(--pub-radius);counter-increment:pubstep}.pub-step__num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--pub-cyan);color:var(--pub-on-cyan);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:20px}.pub-step__num:before{content:counter(pubstep,decimal-leading-zero)}.pub-step__icon{position:absolute;top:26px;right:24px;color:var(--pub-ink-2)}.pub-step .pub-text{font-size:16px}.pub-step:not(:last-child):after{content:"";position:absolute;top:46px;right:-21px;width:22px;height:2px;background:var(--pub-cyan-border)}.pub-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pub-case{display:flex;flex-direction:column;gap:14px;padding:28px 26px 0;background:#fff;border:1px solid var(--pub-line);border-radius:var(--pub-radius);overflow:hidden;transition:border-color .25s var(--pub-ease),box-shadow .25s var(--pub-ease),transform .25s var(--pub-ease)}.pub-case:hover{border-color:var(--pub-cyan-border);box-shadow:0 16px 40px #00000014,var(--pub-cyan-ring);transform:translateY(-2px)}.pub-case__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.pub-case__icon{width:48px;height:48px;border-radius:12px;background:var(--pub-bg-alt);border:1px solid var(--pub-line);display:flex;align-items:center;justify-content:center;color:var(--pub-ink);transition:background .25s,color .25s,border-color .25s}.pub-case:hover .pub-case__icon{background:var(--pub-cyan-soft);border-color:var(--pub-cyan-border);color:var(--pub-cyan-strong)}.pub-case .pub-h3{margin:4px 0 0;min-height:52px}.pub-case__situation{margin:0;padding:14px 16px;background:var(--pub-bg-alt);border-left:2px solid var(--pub-line-strong);border-radius:0 10px 10px 0;font-size:15.5px;line-height:1.55;color:var(--pub-ink-2)}.pub-case__label{margin:2px 0 -2px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pub-ink-3)}.pub-case__steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.pub-case__steps li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;font-size:15.5px;line-height:1.5;color:var(--pub-ink-2)}.pub-case__steps svg{margin-top:3px;color:var(--pub-cyan-strong);flex-shrink:0}.pub-case__outcome{margin:auto -26px 0;padding:18px 26px 22px;border-top:1px solid var(--pub-line);background:var(--pub-bg-soft);font-size:15.5px;line-height:1.55;color:var(--pub-ink)}.pub-case__outcome-label{display:block;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pub-ink-3)}.pub-support{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);padding:clamp(28px,4vw,44px);background:var(--pub-bg-alt);border:1px solid var(--pub-line);border-radius:var(--pub-radius-lg)}.pub-support__copy{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.pub-support__copy .pub-eyebrow{margin-bottom:0}.pub-support__title{margin:0;font-size:clamp(22px,2.2vw,28px);font-weight:600;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}.pub-support__points{list-style:none;margin:0;padding:0;counter-reset:pubsupport;display:flex;flex-direction:column;gap:20px}.pub-support__points li{position:relative;padding-left:48px;counter-increment:pubsupport}.pub-support__points li:before{content:counter(pubsupport,decimal-leading-zero);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--pub-line-strong);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--pub-ink)}.pub-support__point-title{margin:4px 0 2px;font-size:17px;font-weight:650;letter-spacing:-.01em}.pub-support__points .pub-text{font-size:15.5px}.pub-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--pub-dark-line);border-radius:var(--pub-radius-lg);overflow:hidden;background:var(--pub-dark-2)}.pub-benefit{padding:30px 28px 32px;border-right:1px solid var(--pub-dark-line);display:flex;flex-direction:column;gap:14px}.pub-benefit:last-child{border-right:none}.pub-benefit__icon{width:44px;height:44px;border-radius:11px;background:#22d3ee1a;border:1px solid rgba(34,211,238,.35);display:flex;align-items:center;justify-content:center;color:var(--pub-cyan-dark)}.pub-benefit .pub-h3{color:#fff;margin:6px 0 0}.pub-benefit .pub-text{color:var(--pub-dark-ink-2);font-size:16px}.pub-path-wrap{margin-top:clamp(48px,7vw,88px);padding-top:clamp(36px,5vw,56px);border-top:1px solid var(--pub-dark-line)}.pub-path-head{max-width:720px;margin-bottom:clamp(28px,4vw,44px)}.pub-path-head .pub-eyebrow{margin-bottom:12px}.pub-path-title{margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:600;letter-spacing:-.02em;line-height:1.25;color:#fff;text-wrap:balance}.pub-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.pub-path__step{position:relative;padding-top:24px;display:flex;flex-direction:column;gap:6px}.pub-path__step:before{content:"";position:absolute;top:5px;left:0;right:-28px;height:1px;background:var(--pub-dark-line)}.pub-path__step:last-child:before{right:0}.pub-path__step:after{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;border:1.5px solid var(--pub-dark-ink-2);background:var(--pub-dark)}.pub-path__step.is-current:after{background:var(--pub-cyan);border-color:var(--pub-cyan)}.pub-path__label{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pub-dark-ink-2)}.pub-path__step.is-current .pub-path__label{color:var(--pub-cyan-dark)}.pub-path__step-title{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.3;color:#fff}.pub-path__text{margin:0;font-size:15px;line-height:1.55;color:var(--pub-dark-ink-2)}.pub-vision-teaser{margin-top:clamp(48px,7vw,88px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:end;padding-top:clamp(36px,5vw,56px);border-top:1px solid var(--pub-dark-line)}.pub-vision-teaser__quote{font-size:clamp(26px,3vw,38px);font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:0;color:#fff;text-wrap:balance}.pub-vision-teaser__side{display:flex;flex-direction:column;gap:18px}.pub-vision-teaser__side .pub-text{color:var(--pub-dark-ink-2)}.pub-vision-teaser .pub-link{color:#fff;align-self:flex-start;border-bottom-color:var(--pub-cyan-dark)}.pub-vision-teaser .pub-link:hover{color:var(--pub-cyan-dark)}.pub-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pub-member{display:flex;flex-direction:column;gap:16px;padding:28px;background:#fff;border:1px solid var(--pub-line);border-radius:var(--pub-radius);transition:border-color .25s var(--pub-ease),box-shadow .25s var(--pub-ease)}.pub-member:hover{border-color:var(--pub-cyan-border);box-shadow:0 16px 40px #00000012,var(--pub-cyan-ring)}.pub-avatar{width:68px;height:68px;border-radius:18px;background:var(--pub-ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;letter-spacing:-.02em;overflow:hidden;flex-shrink:0}.pub-avatar img{width:100%;height:100%;object-fit:cover}.pub-avatar--lg{width:92px;height:92px;border-radius:24px;font-size:30px}.pub-member__name{font-size:20px;font-weight:700;letter-spacing:-.015em;margin:0}.pub-member__role{font-size:15px;color:var(--pub-ink-2);margin:3px 0 0}.pub-member__focus{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.pub-member__focus li{padding:5px 10px;border-radius:999px;background:var(--pub-bg-alt);border:1px solid var(--pub-line);font-size:13.5px;font-weight:500;color:var(--pub-ink-2)}.pub-member .pub-text{font-size:16px}.pub-team-cta{margin-top:32px;display:flex;justify-content:center}.pub-faq{max-width:840px;margin:0 auto;border-top:1px solid var(--pub-line-strong)}.pub-faq__item{border-bottom:1px solid var(--pub-line-strong)}.pub-faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;font-size:18px;font-weight:600;letter-spacing:-.01em;transition:color .2s}.pub-faq__item summary::-webkit-details-marker{display:none}.pub-faq__item summary:hover{color:var(--pub-cyan-strong)}.pub-faq__chevron{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--pub-line-strong);display:flex;align-items:center;justify-content:center;color:var(--pub-ink);transition:transform .3s var(--pub-ease),background .2s,color .2s,border-color .2s}.pub-faq__item[open] .pub-faq__chevron{transform:rotate(180deg);background:var(--pub-cyan);color:var(--pub-on-cyan);border-color:var(--pub-cyan)}.pub-faq__answer{padding:0 48px 24px 4px;font-size:17px;line-height:1.65;color:var(--pub-ink-2);max-width:740px}.pub-cta{padding:0 0 var(--pub-section)}.pub-cta__box{position:relative;overflow:hidden;padding:clamp(40px,6vw,72px) clamp(28px,5vw,64px);border-radius:var(--pub-radius-lg);background:var(--pub-dark);color:#fff;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:32px;align-items:center}.pub-cta__box:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.1) 1px,transparent 0);background-size:26px 26px;-webkit-mask-image:linear-gradient(to right,transparent 30%,rgba(0,0,0,1) 100%);mask-image:linear-gradient(to right,transparent 30%,rgba(0,0,0,1) 100%);pointer-events:none}.pub-cta__box:after{content:"";position:absolute;right:-10%;top:-40%;width:45%;height:180%;background:radial-gradient(closest-side,rgba(34,211,238,.16),transparent 72%);pointer-events:none}.pub-cta__box>*{position:relative;z-index:1}.pub-cta__box .pub-h2{color:#fff;margin-bottom:10px}.pub-cta__box .pub-text{color:var(--pub-dark-ink-2);max-width:560px}.pub-cta__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.pub-footer{border-top:1px solid var(--pub-line);background:var(--pub-bg-soft);color:var(--pub-ink-2);font-size:15px}.pub-footer__grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:32px;padding-top:56px;padding-bottom:40px}.pub-footer__brand p{margin:16px 0 12px;max-width:340px;line-height:1.6}.pub-footer__mail{font-weight:600;color:var(--pub-cyan-strong);border-bottom:1px solid transparent;transition:border-color .2s}.pub-footer__mail:hover{border-bottom-color:var(--pub-cyan-strong)}.pub-footer__col h3{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pub-ink);margin:6px 0 14px}.pub-footer__col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.pub-footer__col a{color:var(--pub-ink-2);transition:color .2s}.pub-footer__col a:hover{color:var(--pub-cyan-strong)}.pub-footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:28px;border-top:1px solid var(--pub-line);font-size:14px;color:var(--pub-ink-2)}.pub-footer--compact .pub-footer__bottom{border-top:none;padding-top:20px;padding-bottom:20px}.pub-footer__legal{display:flex;gap:18px}.pub-footer__legal a:hover{color:var(--pub-cyan-strong)}.pub-page-hero{padding:clamp(56px,8vw,104px) 0 clamp(40px,6vw,72px);border-bottom:1px solid var(--pub-line);position:relative;overflow:hidden}.pub-page-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.07) 1px,transparent 0);background-size:26px 26px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 90%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 90%);pointer-events:none}.pub-page-hero:after{content:"";position:absolute;top:-40%;right:-10%;width:50%;height:160%;background:radial-gradient(closest-side,rgba(34,211,238,.12),transparent 72%);pointer-events:none}.pub-page-hero .pub-container{position:relative;z-index:1}.pub-page-hero .pub-h1{font-size:clamp(38px,5.2vw,62px);max-width:840px}.pub-team-page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.pub-team-page .pub-member{padding:32px 28px;gap:18px}.pub-team-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.pub-fact{padding:30px 28px;border:1px solid var(--pub-line);border-radius:var(--pub-radius);background:#fff}.pub-fact .pub-h3{font-size:22px;margin-bottom:10px}.pub-fact a{color:var(--pub-cyan-strong);font-weight:600;border-bottom:1px solid var(--pub-cyan-border)}.pub-fact a:hover{border-bottom-color:var(--pub-cyan-strong)}.pub-vision-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.pub-vision-block{padding:34px 30px;border:1px solid var(--pub-line);border-radius:var(--pub-radius);background:#fff}.pub-vision-block .pub-eyebrow{margin-bottom:14px}.pub-vision-block .pub-h2{font-size:clamp(24px,2.4vw,30px)}.pub-vision-block:last-child:nth-child(odd){grid-column:1 / -1}.pub-vision-block:last-child:nth-child(odd) .pub-text{max-width:820px}.pub-principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--pub-dark-line);border-radius:var(--pub-radius-lg);overflow:hidden;background:var(--pub-dark-2);counter-reset:pubprinciple}.pub-principle{padding:32px 30px;border-right:1px solid var(--pub-dark-line);border-bottom:1px solid var(--pub-dark-line);counter-increment:pubprinciple}.pub-principle:nth-child(2n){border-right:none}.pub-principle:nth-last-child(-n+2){border-bottom:none}.pub-principle__num{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--pub-cyan-dark);margin:0 0 14px;font-variant-numeric:tabular-nums}.pub-principle__num:before{content:counter(pubprinciple,decimal-leading-zero)}.pub-principle .pub-h3{color:#fff;font-size:22px}.pub-principle .pub-text{color:var(--pub-dark-ink-2)}.pub-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.pub-stage{padding:30px 28px 32px;border:1px solid var(--pub-line);border-radius:var(--pub-radius);background:#fff;display:flex;flex-direction:column;gap:8px}.pub-stage .pub-h3{font-size:21px}.pub-stage--current{border-color:var(--pub-cyan-border);box-shadow:0 16px 40px #0000000f,var(--pub-cyan-ring)}.pub-stage--goal{background:var(--pub-dark);border-color:var(--pub-dark);color:#fff}.pub-stage--goal .pub-h3{color:#fff}.pub-stage--goal .pub-stage__label{color:var(--pub-dark-ink-2)}.pub-stage--goal .pub-stage__label:before{border-color:var(--pub-dark-ink-2)}.pub-stage--goal li{color:var(--pub-dark-ink-2)}.pub-stage__label{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pub-ink-2);margin-bottom:8px}.pub-stage__label:before{content:"";width:9px;height:9px;border-radius:50%;border:1.5px solid var(--pub-ink-2)}.pub-stage--current .pub-stage__label{color:var(--pub-cyan-strong)}.pub-stage--current .pub-stage__label:before{background:var(--pub-cyan);border-color:var(--pub-cyan)}.pub-stage ul{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:10px}.pub-stage li{position:relative;padding-left:22px;font-size:16px;line-height:1.5;color:var(--pub-ink-2)}.pub-stage li:before{content:"";position:absolute;left:2px;top:11px;width:8px;height:2px;background:var(--pub-cyan-hover)}.pub-legal{max-width:780px;padding:clamp(40px,6vw,72px) 0 var(--pub-section)}.pub-legal h2{font-size:22px;font-weight:700;letter-spacing:-.015em;margin:36px 0 10px}.pub-legal p,.pub-legal li{color:var(--pub-ink-2);line-height:1.65}.pub-legal a{color:var(--pub-cyan-strong);font-weight:600}.pub-legal__todo{padding:16px 18px;border:1px dashed var(--pub-line-strong);border-radius:12px;background:var(--pub-bg-alt);font-size:15px;color:var(--pub-ink-2);margin:0 0 24px}.pub--auth .pub-main{display:flex;align-items:center;justify-content:center;padding:clamp(32px,6vw,72px) var(--pub-pad);background:radial-gradient(60% 50% at 50% 0%,rgba(34,211,238,.1),transparent 70%),var(--pub-bg-alt)}.pub--auth .auth-body{width:100%;padding:0;background:transparent}.pub--auth .auth-card{border-radius:18px;padding:32px;box-shadow:0 20px 60px #00000014,0 1px 2px #0000000d;border-color:var(--pub-line)}.pub-anim [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--pub-ease),transform .7s var(--pub-ease)}.pub-anim [data-reveal].is-visible{opacity:1;transform:none}.pub-anim [data-reveal-delay="1"]{transition-delay:.08s}.pub-anim [data-reveal-delay="2"]{transition-delay:.16s}.pub-anim [data-reveal-delay="3"]{transition-delay:.24s}.pub-anim [data-reveal-delay="4"]{transition-delay:.32s}.pub-anim [data-reveal-delay="5"]{transition-delay:.4s}@media(prefers-reduced-motion:reduce){.pub-anim [data-reveal]{opacity:1;transform:none;transition:none}.pub-visual__floor,.pub-visual__stroke,.pub-callout,.pub-visual__hint{animation:none!important;opacity:1;stroke-dashoffset:0}.pub-visual__pulse{animation:none!important;opacity:.6}.pub-callout__details,.pub-callout,.pub-callout__icon,.pub-visual__link{transition:none}.pub-btn,.pub-btn svg,.pub-feature,.pub-case{transition:none}}@media(max-width:1080px){.pub-features,.pub-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.pub-benefit:nth-child(2n){border-right:none}.pub-benefit:nth-child(-n+2){border-bottom:1px solid var(--pub-dark-line)}.pub-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pub-footer__brand{grid-column:1 / -1}.pub-path{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}.pub-path__step:nth-child(2n):before{right:0}}@media(max-width:900px){.pub{--pub-header-h: 64px}.pub-nav,.pub-header__actions{display:none}.pub-header__toggle{display:inline-flex}.pub-mobile:not([hidden]){display:block}.pub-hero__grid{grid-template-columns:1fr}.pub-visual{max-width:560px;margin-top:64px;margin-bottom:32px}.pub-steps,.pub-cases,.pub-team-grid,.pub-team-page{grid-template-columns:1fr}.pub-step:not(:last-child):after{display:none}.pub-case .pub-h3{min-height:0}.pub-support,.pub-vision-teaser,.pub-team-facts,.pub-vision-blocks,.pub-principles{grid-template-columns:1fr}.pub-principle{border-right:none}.pub-principle:nth-last-child(2){border-bottom:1px solid var(--pub-dark-line)}.pub-cta__box{grid-template-columns:1fr}.pub-cta__actions{justify-content:flex-start}}@media(max-width:640px){.pub{font-size:16px}.pub-features,.pub-benefits{grid-template-columns:1fr}.pub-benefit{border-right:none;border-bottom:1px solid var(--pub-dark-line)}.pub-benefit:last-child{border-bottom:none}.pub-stages{grid-template-columns:1fr}.pub-path{grid-template-columns:1fr;row-gap:24px}.pub-path__step{padding-top:0;padding-left:26px}.pub-path__step:before,.pub-path__step:nth-child(2n):before{inset:12px auto -24px 5px;width:1px;height:auto}.pub-path__step:last-child:before{display:none}.pub-path__step:after{top:4px}.pub-hero__actions .pub-btn{width:100%}.pub-hero__copy .pub-eyebrow{white-space:normal;line-height:1.4}.pub-footer__grid{grid-template-columns:1fr 1fr;gap:28px 20px}.pub-faq__item summary{font-size:17px;padding:18px 2px}.pub-faq__answer{padding-right:8px}.pub--auth .auth-card{padding:24px 20px}}.auth-page{min-height:100vh;display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;background:var(--content-bg)}.auth-body{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-8) var(--page-pad-x);background:var(--content-bg)}.auth-body-inner{width:100%;max-width:420px}.auth-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-xl);box-shadow:var(--card-shadow);padding:var(--sp-6);animation:authFadeUp .3s ease both}@keyframes authFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-logo{display:flex;justify-content:center;margin-bottom:var(--sp-5)}.auth-logo a{display:inline-flex;color:var(--text-primary);border-radius:var(--r-sm);transition:opacity var(--t-fast);animation:authLogoIn .5s ease both}.auth-logo a:hover{opacity:.8}.auth-logo a:focus-visible{outline:2px solid var(--input-border-focus);outline-offset:6px}@keyframes authLogoIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.auth-card,.auth-logo a{animation:none}}.auth-title,.auth-subtitle{text-align:center}.auth-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);margin:0 0 var(--sp-1);letter-spacing:var(--ls-tight)}.auth-subtitle{font-size:var(--fs-base);color:var(--text-secondary);margin:0 0 var(--sp-5);line-height:var(--lh-base);padding-bottom:var(--sp-4);border-bottom:1px solid var(--card-border)}.auth-form{display:flex;flex-direction:column;gap:var(--sp-4)}.auth-field{display:flex;flex-direction:column;gap:var(--sp-1)}.auth-field label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.auth-field input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--control-radius);height:var(--control-h-lg);padding:0 var(--control-px);font-size:var(--control-fs);color:var(--input-text);font-family:inherit;transition:border-color .15s,box-shadow .15s;outline:none;box-sizing:border-box;width:100%}.auth-field input::placeholder{color:var(--input-placeholder)}.auth-field input:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.auth-field-link{text-align:right;margin-top:4px}.auth-field-link a{font-size:var(--fs-sm);color:var(--text-link);text-decoration:underline;font-weight:var(--fw-semibold)}.auth-error{font-size:var(--fs-base);color:var(--status-error, #c0392b);background:var(--status-error-bg);border:1px solid var(--danger-color);border-radius:var(--r-sm);padding:10px var(--sp-3);margin:0}.auth-success{font-size:var(--fs-base);color:var(--status-ok, #00875a);background:var(--status-ok-bg);border:1px solid var(--success-color);border-radius:var(--r-sm);padding:10px var(--sp-3);margin:0 0 var(--sp-4)}.auth-btn{margin-top:var(--sp-1);padding:0 var(--sp-4);background:var(--btn-cta-bg, #22D3EE);color:var(--btn-cta-text, #062A32);font-size:var(--control-fs);font-weight:var(--fw-semibold);border:1px solid var(--btn-cta-bg, #22D3EE);border-radius:var(--control-radius);cursor:pointer;transition:background var(--t-fast);display:flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--control-h-lg);font-family:inherit;text-decoration:none;box-sizing:border-box;width:100%}.auth-btn:hover:not(:disabled){background:var(--btn-cta-hover, #06B6D4);border-color:var(--btn-cta-hover, #06B6D4)}.auth-btn:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);cursor:not-allowed}.dark .auth-page,.dark .auth-body{background:var(--content-bg)}.dark .auth-card{background:var(--card-bg);border-color:var(--card-border)}.dark .auth-title{color:var(--text-primary)}.dark .auth-subtitle{color:var(--text-secondary);border-bottom-color:var(--card-border)}.dark .auth-field label{color:var(--text-secondary)}.dark .auth-field input{background:var(--input-bg);border-color:var(--input-border);color:var(--input-text)}.dark .auth-field input::placeholder{color:var(--input-placeholder, var(--text-tertiary))}.dark .auth-field input:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.dark .auth-field-link a,.dark .auth-switch a{color:var(--text-link)}.dark .auth-switch{border-top-color:var(--card-border);color:var(--text-secondary)}.dark .auth-footer-note{color:var(--text-tertiary)}.auth-spinner{width:18px;height:18px;border:2px solid rgba(6,42,50,.3);border-top-color:var(--btn-cta-text, #062A32);border-radius:50%;animation:authSpin .7s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-switch{margin-top:22px;padding-top:18px;border-top:1px solid var(--card-border);font-size:var(--fs-md);color:var(--text-secondary);text-align:center}.auth-switch a{color:var(--text-link);font-weight:700;text-decoration:underline}.auth-success-block{text-align:center}.auth-footer-note{margin:16px 0 0;text-align:center;font-size:var(--fs-sm);color:var(--text-tertiary)}.auth-input-wrap{position:relative;display:flex}.auth-input-wrap input{padding-right:44px}.auth-reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.auth-reveal:hover{color:var(--text-secondary)}.auth-reveal:focus-visible{outline:2px solid var(--input-border-focus);outline-offset:1px}.auth-rules{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px var(--sp-3)}.auth-rule{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-tertiary);transition:color var(--t-fast)}.auth-rule svg{flex:none}.auth-rule.is-met{color:var(--text-secondary)}.auth-rule.is-met svg{color:var(--cyan-strong)}.auth-result{text-align:center}.auth-result__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto var(--sp-4);border-radius:50%;background:var(--cyan-soft);color:var(--cyan-strong)}.auth-result__icon--warn{background:var(--status-error-bg);color:var(--status-error)}.auth-result__title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);margin:0 0 var(--sp-2);letter-spacing:var(--ls-tight)}.auth-result__text{font-size:var(--fs-base);color:var(--text-secondary);line-height:var(--lh-base);margin:0 0 var(--sp-5)}.auth-result__text strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.auth-btn--ghost{margin-top:var(--sp-2);background:transparent;color:var(--text-primary);border-color:var(--card-border)}.auth-btn--ghost:hover:not(:disabled){background:var(--accent-soft);border-color:var(--card-border);color:var(--text-primary)}.models-layout,.viewer-layout{min-height:100vh;background:var(--brand-white, #fff);font-family:Inter,system-ui,sans-serif;color:var(--brand-black, #000)}.models-nav,.viewer-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;background:var(--brand-white, #fff);color:var(--brand-black, #000);border-bottom:1px solid #E5E5E5;position:sticky;top:0;z-index:10}.models-nav-logo{display:flex;align-items:center;gap:8px;font-size:var(--fs-2xl);font-weight:800;color:var(--brand-black, #000);letter-spacing:-.02em}.models-nav-logo-dot{display:none}.models-nav-user{display:flex;align-items:center;gap:12px}.models-nav-email{font-size:var(--fs-base);color:var(--brand-gray, #4d5156)}.models-logout-btn{padding:6px 14px;background:transparent;color:var(--brand-black, #000);border:1px solid #D0D0D0;font-size:var(--fs-sm);font-weight:600;cursor:pointer;font-family:inherit}.models-content{max-width:1200px;margin:0 auto;padding:24px 20px}.models-header h1{font-size:var(--fs-xl);font-weight:700;margin:0 0 24px}.upload-zone{border:2px dashed #D0D0D0;padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--brand-white, #fff);cursor:pointer;margin-bottom:28px;text-align:center}.upload-zone:hover,.upload-zone.dragging{border-color:var(--brand-black, #000);background:var(--accent-soft)}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.model-card{background:var(--brand-white, #fff);border:1px solid #E0E0E0;padding:20px;transition:border-color .15s}.model-card:hover{border-color:var(--brand-black, #000)}.model-btn-view{flex:1;padding:8px 12px;background:var(--brand-black, #000);color:var(--brand-white, #fff);border:none;font-size:var(--fs-base);font-weight:600;cursor:pointer;font-family:inherit}.model-btn-view:hover{background:var(--brand-gray, #4d5156)}.model-btn-delete{padding:8px 12px;background:var(--card-bg);color:var(--text-primary);border:1px solid var(--card-border);font-size:var(--fs-base);cursor:pointer;font-family:inherit}.viewer-back-btn{padding:6px 12px;border:1px solid #D0D0D0;color:var(--brand-black, #000);font-size:var(--fs-base);text-decoration:none;font-family:inherit}.viewer-title{font-size:var(--fs-md);font-weight:600;color:var(--brand-black, #000);margin:0}.viewer-iframe{width:100%;height:calc(100vh - 52px);border:none;background:#f5f5f5}:root{--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 15px;--fs-xl: 18px;--fs-2xl: 22px;--fs-3xl: 28px;--lh-tight: 1.25;--lh-base: 1.5;--lh-loose: 1.6;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--ls-label: .06em;--ls-tight: -.01em;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-xs: 6px;--r-sm: 8px;--r-md: 10px;--r-lg: 12px;--r-xl: 16px;--r-pill: 999px;--radius-sm: var(--r-xs);--radius-md: var(--r-md);--radius-lg: var(--r-xl);--radius-xl: 20px;--control-h: 32px;--control-h-sm: 28px;--control-h-lg: 38px;--control-px: 12px;--control-gap: 8px;--control-fs: var(--fs-base);--control-radius: var(--r-sm);--page-pad-x: 24px;--page-pad-y: 16px;--page-gutter: 20px;--page-max: 1280px;--page-max-narrow: 880px;--panel-w: 240px;--panel-w-sm: 200px;--header-h: 52px;--subheader-h: 44px;--page-header-h: 64px;--icon-xs: 13px;--icon-sm: 14px;--icon-md: 16px;--icon-lg: 18px;--t-fast: .15s ease;--t-base: .2s ease;--transition-fast: var(--t-fast)}@media(max-width:1024px){:root{--page-pad-x: 20px;--page-gutter: 16px;--panel-w: 208px}}@media(max-width:768px){:root{--page-pad-x: 16px;--page-pad-y: 12px;--page-gutter: 16px;--fs-xl: 17px;--fs-2xl: 20px;--fs-3xl: 24px;--control-h: 36px;--control-h-sm: 32px;--control-h-lg: 42px;--header-h: 48px;--subheader-h: 42px}}@media(max-width:480px){:root{--page-pad-x: 12px;--page-gutter: 12px}}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base)}button,input,select,textarea{font-family:inherit}@media(max-width:768px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=date],select,textarea{font-size:max(16px,var(--fs-base))}}.ds-page{display:flex;flex-direction:column;min-height:100%;height:100%;background:var(--content-bg);color:var(--text-primary);box-sizing:border-box}.ds-page--scroll{height:auto}.ds-page__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-shrink:0;min-height:var(--page-header-h);padding:0 var(--page-pad-x);border-bottom:1px solid var(--card-border);background:var(--content-bg);box-sizing:border-box}.ds-page__header--card{background:var(--card-bg)}.ds-page__heading{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.ds-page__titles{min-width:0}.ds-page__title-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ds-page__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text-primary)}.ds-page__subtitle{margin:2px 0 0;font-size:var(--fs-sm);font-weight:var(--fw-normal);line-height:var(--lh-base);color:var(--text-secondary)}.ds-page__tag{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 10px;border-radius:var(--r-pill);background:var(--cyan-soft);border:1px solid var(--cyan-border);color:var(--cyan-strong);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap}.ds-page__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--control-gap);flex-wrap:wrap;flex-shrink:1;min-width:0}.ds-page__body{flex:1;min-height:0;overflow-y:auto;padding:var(--page-gutter) var(--page-pad-x);box-sizing:border-box}.ds-page__body--flush{padding:0;overflow:hidden;display:flex}.ds-page__body--split{padding:0;overflow:hidden;display:flex;flex:1;min-height:0}.ds-page__content{max-width:var(--page-max);margin:0 auto;width:100%;display:flex;flex-direction:column;gap:var(--sp-4);box-sizing:border-box}.ds-page__content--narrow{max-width:var(--page-max-narrow)}@media(max-width:900px){.ds-page__header{flex-direction:column;align-items:stretch;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--page-pad-x)}.ds-page__actions{width:100%;justify-content:flex-start;row-gap:var(--sp-2)}.ds-page__actions>.ds-search{flex:1 1 220px;min-width:0}}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-primary);font-family:inherit;font-size:var(--control-fs);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;cursor:pointer;box-sizing:border-box;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.ds-btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--card-border-hover)}.ds-btn:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);border-color:var(--btn-disabled-bg);cursor:not-allowed}.ds-btn--solid{background:var(--btn-solid-bg);border-color:var(--btn-solid-bg);color:var(--btn-solid-text)}.ds-btn--solid:hover:not(:disabled){background:var(--btn-solid-bg);border-color:var(--btn-solid-bg);color:var(--btn-solid-text);filter:brightness(1.08)}.ds-btn--ghost{background:transparent;border-color:transparent;color:var(--text-secondary);font-weight:var(--fw-medium)}.ds-btn--ghost:hover:not(:disabled){background:var(--hover-bg);border-color:transparent;color:var(--text-primary)}.ds-btn--danger{color:var(--danger-color);border-color:var(--card-border);background:transparent}.ds-btn--danger:hover:not(:disabled){background:var(--status-error-bg);border-color:var(--danger-color);color:var(--danger-color)}.ds-btn--sm{height:var(--control-h-sm);padding:0 10px;font-size:var(--fs-sm)}.ds-btn--lg{height:var(--control-h-lg);padding:0 var(--sp-5);font-size:var(--fs-md)}.ds-btn--block{width:100%}.ds-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);padding:0;flex-shrink:0;border-radius:var(--control-radius);border:1px solid var(--card-border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.ds-icon-btn:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary);border-color:var(--card-border-hover)}.ds-icon-btn--plain{border-color:transparent}.ds-icon-btn--danger:hover:not(:disabled){color:var(--danger-color);border-color:var(--danger-color);background:var(--status-error-bg)}.ds-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ds-segment{display:inline-flex;height:var(--control-h);border:1px solid var(--card-border);border-radius:var(--control-radius);background:var(--card-bg);overflow:hidden;flex-shrink:0}.ds-segment__btn{display:inline-flex;align-items:center;gap:5px;padding:0 var(--control-px);border:none;border-right:1px solid var(--card-border);background:transparent;color:var(--text-secondary);font-family:inherit;font-size:var(--control-fs);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.ds-segment__btn:last-child{border-right:none}.ds-segment__btn:hover{color:var(--text-primary)}.ds-segment__btn--active{background:var(--btn-solid-bg);color:var(--btn-solid-text);font-weight:var(--fw-semibold)}.ds-input,.ds-select{height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);font-family:inherit;font-size:var(--control-fs);outline:none;box-sizing:border-box;transition:border-color var(--t-fast)}.ds-input:focus,.ds-select:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.ds-input::placeholder{color:var(--input-placeholder)}.ds-input:disabled,.ds-select:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);cursor:not-allowed}.ds-select{cursor:pointer;padding-right:var(--sp-2)}.ds-textarea{min-height:84px;padding:var(--sp-2) var(--control-px);border-radius:var(--control-radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);font-family:inherit;font-size:var(--control-fs);line-height:var(--lh-base);outline:none;box-sizing:border-box;resize:vertical;transition:border-color var(--t-fast)}.ds-textarea:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.ds-search{position:relative;display:flex;align-items:center;flex-shrink:0}.ds-search>svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.ds-search>.ds-input{padding-left:32px;width:200px}@media(max-width:768px){.ds-search,.ds-search>.ds-input{width:100%;min-width:160px}}.ds-field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.ds-field__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.ds-field__hint{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:var(--lh-base)}.ds-field__error{font-size:var(--fs-xs);color:var(--danger-color)}.ds-field .ds-input,.ds-field .ds-select,.ds-field .ds-textarea{width:100%}.ds-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);box-shadow:var(--card-shadow);box-sizing:border-box}.ds-card--pad{padding:var(--sp-4)}.ds-card--pad-lg{padding:var(--sp-5)}.ds-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--card-border)}.ds-card__title{margin:0;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.ds-card__desc{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary)}.ds-card__body{padding:var(--sp-4)}.ds-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--cyan-strong)}.ds-muted{color:var(--text-secondary);font-size:var(--fs-base)}.ds-mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.ds-sidebar{width:var(--panel-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--card-bg);border-right:1px solid var(--card-border);overflow:hidden;box-sizing:border-box}.ds-sidebar__section{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) 14px var(--sp-2)}.ds-sidebar__body{flex:1;overflow-y:auto;padding:var(--sp-1) var(--sp-2) var(--sp-3)}.ds-sidebar__footer{border-top:1px solid var(--card-border);padding:var(--sp-3) 14px}.ds-sidebar__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:7px 10px;margin-bottom:2px;border:none;border-radius:var(--r-xs);background:transparent;color:var(--text-primary);font-family:inherit;font-size:var(--fs-base);text-align:left;cursor:pointer;box-sizing:border-box;transition:background var(--t-fast)}.ds-sidebar__item:hover{background:var(--hover-bg)}.ds-sidebar__item--active{background:var(--cyan-soft);color:var(--cyan-strong);font-weight:var(--fw-semibold);box-shadow:inset 3px 0 0 var(--cyan)}.ds-sidebar__count{margin-left:auto;font-size:var(--fs-xs);color:var(--text-secondary)}@media(max-width:768px){.ds-page__body--split{flex-direction:column}.ds-sidebar{width:100%;max-height:148px;border-right:none;border-bottom:1px solid var(--card-border)}.ds-sidebar__footer{display:none}}.ds-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg)}.ds-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.ds-table th{padding:10px var(--sp-4);text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-tertiary);background:var(--content-bg);border-bottom:1px solid var(--card-border);white-space:nowrap}.ds-table td{padding:11px var(--sp-4);font-size:var(--fs-base);color:var(--text-primary);border-bottom:1px solid var(--card-border);vertical-align:middle}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table tbody tr:hover{background:var(--hover-bg)}.ds-table__cell--mono{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-secondary)}.ds-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:1.5;white-space:nowrap;background:var(--accent-soft);color:var(--text-primary)}.ds-pill{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--card-border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-secondary);white-space:nowrap}.access-badge{gap:5px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.access-badge svg{flex-shrink:0;color:var(--text-tertiary)}.access-badge--full{background:var(--surface-muted);color:var(--text-primary)}.access-badge__prefix{font-weight:var(--fw-normal);color:var(--text-tertiary)}.ds-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:var(--r-pill);border:1px solid var(--cyan-border);background:var(--cyan-soft);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--cyan-strong)}.ds-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5);text-align:center;border:1px dashed var(--card-border);border-radius:var(--r-lg);background:var(--card-bg);color:var(--text-tertiary);font-size:var(--fs-base)}.ds-empty__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.ds-empty__text{margin:0;max-width:46ch;font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-secondary)}.ds-note{display:flex;align-items:flex-start;gap:var(--sp-2);padding:10px var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--card-border);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--fs-base);line-height:var(--lh-base)}.ds-note--warn{background:var(--warn-soft-bg);border-color:var(--warn-soft-border);color:var(--text-primary)}.ds-note--error{background:var(--status-error-bg);border-color:var(--danger-color);color:var(--text-primary)}.ds-note svg{flex-shrink:0;margin-top:1px}.ds-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-8);color:var(--text-secondary);font-size:var(--fs-base)}.ds-grid{display:grid;gap:var(--sp-4);align-items:start}.ds-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-grid--auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.ds-grid--auto-sm{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.ds-grid__full{grid-column:1 / -1}@media(max-width:1024px){.ds-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.ds-grid--2,.ds-grid--3{grid-template-columns:minmax(0,1fr)}}.ds-row{display:flex;align-items:center;gap:var(--sp-2)}.ds-stack{display:flex;flex-direction:column;gap:var(--sp-4)}.ds-stack--sm{gap:var(--sp-2)}.ds-stack--lg{gap:var(--sp-5)}.ds-spacer{flex:1}.ds-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.ds-edge-hint{--scroll-edge-bg: var(--card-bg);background-image:linear-gradient(to right,var(--scroll-edge-bg),transparent),linear-gradient(to left,var(--scroll-edge-bg),transparent),linear-gradient(to right,rgba(15,23,32,.16),transparent),linear-gradient(to left,rgba(15,23,32,.16),transparent);background-position:left center,right center,left center,right center;background-size:28px 100%,28px 100%,10px 100%,10px 100%;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll}.dark .ds-edge-hint{--scroll-edge-bg: var(--card-bg);background-image:linear-gradient(to right,var(--scroll-edge-bg),transparent),linear-gradient(to left,var(--scroll-edge-bg),transparent),linear-gradient(to right,rgba(0,0,0,.45),transparent),linear-gradient(to left,rgba(0,0,0,.45),transparent)}.ds-edge-hint{scrollbar-width:thin;scrollbar-color:var(--card-border) transparent}.ds-edge-hint::-webkit-scrollbar{height:8px}.ds-edge-hint::-webkit-scrollbar-track{background:transparent}.ds-edge-hint::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:4px}.ds-edge-hint::-webkit-scrollbar-thumb:hover{background:var(--card-border-hover, var(--card-border))}.ds-tabs-bar{display:flex;align-items:stretch;gap:var(--sp-2);height:var(--subheader-h);padding:0 var(--page-pad-x);background:var(--card-bg);border-bottom:1px solid var(--card-border);flex-shrink:0}.ds-tabs{display:flex;align-items:stretch;gap:var(--sp-1);height:var(--subheader-h);padding:0 var(--page-pad-x);background-color:var(--card-bg);border-bottom:1px solid var(--card-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-shrink:0}.ds-tabs::-webkit-scrollbar{display:none}.ds-tabs-bar>.ds-tabs{flex:1 1 auto;min-width:0;height:100%;padding:0;background-color:transparent;border-bottom:none}.ds-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--tab-text-inactive);font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}.ds-tab:hover{color:var(--text-primary)}.ds-tab__label--short{display:none}@media(max-width:640px){.ds-tab{padding:0 var(--sp-3);font-size:var(--fs-sm)}.ds-tab__label{display:none}.ds-tab__label--short{display:inline}}.ds-tab--active{color:var(--tab-text-active);border-bottom-color:var(--tab-underline);font-weight:var(--fw-bold)}.ds-tab--locked{color:var(--text-tertiary)}.ds-tab--locked svg{color:var(--text-tertiary)}.ds-tab--locked.ds-tab--active{color:var(--text-secondary);border-bottom-color:var(--text-tertiary)}.ds-tabs__aside{margin-left:auto;display:inline-flex;align-items:center;gap:var(--sp-2);padding-left:var(--sp-3);flex-shrink:0}.ds-tabs-bar>.ds-tabs__aside{margin-left:0;padding-left:0;max-width:45%}.ds-tabs-bar>.ds-tabs__aside .ds-pill{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.ds-tabs-bar>.ds-tabs__aside{display:none}}.ds-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--overlay-scrim);backdrop-filter:blur(3px);box-sizing:border-box}.ds-modal{display:flex;flex-direction:column;width:100%;max-width:560px;max-height:min(88vh,760px);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-xl);box-shadow:var(--card-shadow-hover);overflow:hidden;box-sizing:border-box}.ds-modal--sm{max-width:420px}.ds-modal--lg{max-width:760px}.ds-modal--xl{max-width:980px}.ds-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-shrink:0;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--card-border)}.ds-modal__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.ds-modal__desc{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary)}.ds-modal__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:none;border-radius:var(--r-xs);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.ds-modal__close:hover{background:var(--hover-bg);color:var(--text-primary)}.ds-modal__body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-5);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-primary)}.ds-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-shrink:0;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--card-border);background:var(--card-bg)}.ds-modal__footer--between{justify-content:space-between}.ds-slideover{position:fixed;top:0;right:0;bottom:0;z-index:1000;display:flex;flex-direction:column;width:480px;max-width:100vw;background:var(--card-bg);border-left:1px solid var(--card-border);box-shadow:var(--card-shadow-hover);box-sizing:border-box}@media(max-width:768px){.ds-overlay{padding:0;align-items:flex-end}.ds-modal{max-width:100%;max-height:100vh;height:100vh;border:none;border-radius:0}.ds-modal__header,.ds-modal__body,.ds-modal__footer{padding-left:var(--page-pad-x);padding-right:var(--page-pad-x)}.ds-modal__footer{padding-bottom:max(var(--sp-3),env(safe-area-inset-bottom))}.ds-modal__footer .ds-btn{flex:1}.ds-slideover{width:100vw;border-left:none}}.ds-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ds-hide-desktop{display:none!important}@media(max-width:768px){.ds-hide-mobile{display:none!important}.ds-hide-desktop{display:revert!important}}@media(max-width:1024px){.ds-hide-tablet{display:none!important}}.page{padding:0 var(--page-pad-x) var(--page-gutter);width:100%;margin:0;box-sizing:border-box;color:var(--text-primary)}.page--wide{max-width:none}.page--narrow>*:not(.page__header){max-width:var(--page-max-narrow)}.page--full-height{min-height:100%;box-sizing:border-box}.page__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:var(--page-header-h);margin:0 calc(var(--page-pad-x) * -1) var(--page-gutter);padding:0 var(--page-pad-x);border-bottom:1px solid var(--card-border);box-sizing:border-box}.page__header--plain{border-bottom:none}.page__header-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.page__actions{display:flex;gap:var(--control-gap);flex-wrap:wrap;align-items:center}.page__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text-primary)}.page__title--lg{font-size:var(--fs-xl)}.page__subtitle{margin:2px 0 0;font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary)}.page__lead{margin:0 0 var(--sp-4);max-width:78ch;font-size:var(--fs-base);line-height:var(--lh-loose);color:var(--text-secondary)}.page__card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:var(--sp-6);color:var(--text-secondary);text-align:center;font-weight:var(--fw-medium);font-size:var(--fs-base);box-shadow:var(--card-shadow)}.page__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:var(--r-pill);border:1px solid var(--cyan-border);background:var(--cyan-soft);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--cyan-strong)}.breadcrumb{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--sp-4);flex-wrap:wrap}.breadcrumb__link{cursor:pointer;color:var(--text-secondary);background:none;border:none;padding:0;font:inherit}.breadcrumb__link:hover{color:var(--text-primary)}.breadcrumb__current{color:var(--text-primary);font-weight:var(--fw-semibold)}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);box-shadow:var(--card-shadow);box-sizing:border-box}.card--pad{padding:var(--sp-4)}.card--pad-lg{padding:var(--sp-5)}.card--pad-sm{padding:var(--sp-3)}.settings-card{margin-bottom:var(--sp-4)}.settings-card__title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);margin:0 0 var(--sp-1)}.settings-card__desc{font-size:var(--fs-sm);color:var(--text-secondary);margin:0;line-height:var(--lh-base)}.settings-card__header-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.settings-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);font-family:inherit;font-size:var(--control-fs);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;cursor:pointer;box-sizing:border-box;transition:background var(--t-fast),border-color var(--t-fast);border:1px solid transparent}.settings-btn--primary{background:var(--btn-cta-bg);color:var(--btn-cta-text);border-color:var(--btn-cta-bg)}.settings-btn--primary:hover{background:var(--btn-cta-hover);border-color:var(--btn-cta-hover)}.settings-btn--ghost{background:var(--surface-muted);color:var(--text-primary);border:1px solid var(--card-border)}.settings-btn--ghost:hover{background:var(--hover-bg)}.settings-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-8) 0;color:var(--text-tertiary);font-size:var(--fs-base)}.settings-loading p{margin:0}.settings-spinner{width:28px;height:28px;border:3px solid var(--card-border);border-top-color:var(--text-primary);border-radius:50%;animation:settings-spin .8s linear infinite}@keyframes settings-spin{to{transform:rotate(360deg)}}.card__title{margin:0 0 var(--sp-3);font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.card__label{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-1)}.card__value{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-3)}.tabs-bar{background:var(--card-bg);border-bottom:1px solid var(--card-border);padding:0 var(--page-pad-x)}.tabs-bar__inner{max-width:var(--page-max);margin:0 auto;display:flex;gap:var(--sp-6);overflow-x:auto;scrollbar-width:none}.tabs-bar__inner::-webkit-scrollbar{display:none}.tab-item{padding:var(--sp-3) 0;cursor:pointer;font-weight:var(--fw-medium);font-size:var(--fs-base);color:var(--tab-text-inactive);border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:var(--sp-1);white-space:nowrap;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit;transition:color var(--t-fast),border-color var(--t-fast)}.tab-item:hover{color:var(--text-primary)}.tab-item--active,.tab-item.active{color:var(--tab-text-active);border-bottom-color:var(--tab-underline);font-weight:var(--fw-bold)}.data-table-wrap{background:var(--card-bg);border-radius:var(--r-lg);border:1px solid var(--card-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse}.data-table thead tr{background:var(--content-bg)}.data-table th{padding:10px var(--sp-4);text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--ls-label);white-space:nowrap;border-bottom:1px solid var(--card-border)}.data-table td{padding:11px var(--sp-4);font-size:var(--fs-base);color:var(--text-primary);border-bottom:1px solid var(--card-border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--hover-bg)}.data-table__cell--muted{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-sm)}.empty-state{padding:var(--sp-8) var(--sp-5);text-align:center;background:var(--card-bg);border-radius:var(--r-lg);border:1px dashed var(--card-border);color:var(--text-tertiary);font-size:var(--fs-base)}.empty-state h3{margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:1.5;white-space:nowrap;background:var(--accent-soft);color:var(--text-secondary);border:1px solid var(--card-border)}.form-field{display:flex;flex-direction:column;gap:var(--sp-1)}.form-field label,.form-label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:0}.form-group{margin-bottom:var(--sp-4)}.form-input,.form-select{width:100%;height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);border:1px solid var(--input-border);font-size:var(--control-fs);outline:none;box-sizing:border-box;font-family:inherit;background:var(--input-bg);color:var(--input-text);transition:border-color var(--t-fast)}textarea.form-input{height:auto;min-height:84px;padding:var(--sp-2) var(--control-px);line-height:var(--lh-base);resize:vertical}.form-input:focus,.form-select:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.form-input::placeholder{color:var(--input-placeholder, var(--text-tertiary))}.modal-overlay{position:fixed;inset:0;background:var(--overlay-scrim);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);box-sizing:border-box;backdrop-filter:blur(3px)}.modal-card{background:var(--card-bg);color:var(--text-primary);border:1px solid var(--card-border);border-radius:var(--r-xl);padding:var(--sp-5);width:100%;max-width:520px;max-height:88vh;overflow-y:auto;box-sizing:border-box;box-shadow:var(--card-shadow-hover)}.modal-panel{background:var(--card-bg);border-radius:var(--r-xl);width:860px;max-width:100%;max-height:min(88vh,820px);display:flex;flex-direction:column;position:relative;box-shadow:var(--card-shadow-hover);border:1px solid var(--card-border);box-sizing:border-box;overflow:hidden}.modal-panel__header{padding:var(--sp-4) var(--sp-5) 0;flex-shrink:0}.modal-panel__body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);min-height:0;font-size:var(--fs-base);line-height:var(--lh-base)}.modal-panel__footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--card-border);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);flex-shrink:0}.modal-title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.modal-desc{margin:var(--sp-1) 0 var(--sp-4);font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-5)}.alert-banner{margin-bottom:var(--sp-4);padding:10px var(--sp-3);background:var(--status-error-bg);border:1px solid var(--card-border);border-radius:var(--r-sm);display:flex;gap:var(--sp-2);align-items:center;color:var(--text-primary);font-size:var(--fs-base);font-weight:var(--fw-semibold)}.standalone-page{min-height:100vh;background:var(--content-bg);color:var(--text-primary);font-family:var(--font-sans);display:flex;flex-direction:column}.standalone-page__topbar{background:var(--topbar-bg);color:var(--topbar-text);padding:var(--page-pad-y) var(--page-pad-x);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;border-bottom:1px solid var(--topbar-border)}.standalone-page__brand{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xl);font-weight:var(--fw-black);letter-spacing:var(--ls-tight)}.standalone-page__brand-dot{width:6px;height:6px;border-radius:50%;background:var(--text-secondary)}.standalone-page__brand-sub{font-size:var(--fs-base);color:var(--text-tertiary);border-left:1px solid var(--card-border);padding-left:var(--sp-4);font-weight:var(--fw-medium)}.standalone-page__info{background:var(--card-bg);border-bottom:1px solid var(--card-border);padding:var(--page-gutter) var(--page-pad-x)}.standalone-page__content{flex:1;padding:var(--page-gutter) var(--page-pad-x);max-width:var(--page-max);margin:0 auto;width:100%;box-sizing:border-box}.standalone-page__centered{min-height:100vh;background:var(--content-bg);display:flex;align-items:center;justify-content:center;padding:var(--page-gutter);box-sizing:border-box}.btn,.btn-primary,.btn-secondary,.btn-ghost,.btn-text{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);border:1px solid var(--btn-primary-border, var(--btn-primary-bg));background:var(--btn-primary-bg);color:var(--btn-primary-text);font-size:var(--control-fs);font-weight:var(--fw-semibold);font-family:inherit;line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);box-sizing:border-box}.btn--lg{height:var(--control-h-lg);padding:0 var(--sp-5);font-size:var(--fs-md)}.btn--sm,.btn-sm{height:var(--control-h-sm);padding:0 10px;font-size:var(--fs-sm)}.btn--icon{width:var(--control-h);padding:0}.btn--block{width:100%}.btn--solid{background:var(--btn-solid-bg);border-color:var(--btn-solid-bg);color:var(--btn-solid-text)}.btn--solid:hover:not(:disabled){filter:brightness(1.1);color:var(--btn-solid-text)}.btn:hover:not(:disabled),.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled),.btn-text:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-border, var(--btn-primary-bg));color:var(--btn-primary-text)}.btn-primary{background:var(--btn-cta-bg);border-color:var(--btn-cta-bg);color:var(--btn-cta-text)}.btn-primary:hover:not(:disabled){background:var(--btn-cta-hover);border-color:var(--btn-cta-hover);color:var(--btn-cta-text)}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled,.btn-text:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);border-color:var(--btn-disabled-bg);cursor:not-allowed}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-text{height:var(--control-h-sm);padding:0 10px;font-size:var(--fs-sm)}.btn-danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--control-h);padding:0 var(--control-px);border-radius:var(--control-radius);border:1px solid var(--btn-primary-border, var(--btn-primary-bg));background:var(--btn-primary-bg);color:var(--btn-primary-text);font-size:var(--control-fs);font-weight:var(--fw-semibold);font-family:inherit;line-height:1;white-space:nowrap;cursor:pointer;box-sizing:border-box;transition:background var(--t-fast),border-color var(--t-fast)}.btn-danger-outline:hover{background:var(--btn-primary-hover);border-color:var(--btn-primary-border, var(--btn-primary-bg));color:var(--btn-primary-text)}.filter-chip{display:inline-flex;align-items:center;gap:var(--sp-1);height:var(--control-h-sm);padding:0 var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;font-family:inherit;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);border:1px solid var(--card-border);background:transparent;color:var(--text-secondary);box-sizing:border-box}.filter-chip--active{border-color:var(--btn-solid-bg, var(--brand-gray));background:var(--btn-solid-bg, var(--brand-gray));color:var(--btn-solid-text, var(--brand-white))}.filter-chip:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);border-color:var(--btn-disabled-bg);cursor:not-allowed}.app-toast{position:fixed;bottom:var(--sp-6);right:var(--sp-6);background:var(--btn-solid-bg, var(--btn-primary-bg));color:var(--btn-solid-text, var(--btn-primary-text));border:1px solid var(--btn-solid-bg, var(--btn-primary-border));padding:10px var(--sp-4);border-radius:var(--r-sm);font-weight:var(--fw-semibold);font-size:var(--fs-base);z-index:1050;box-shadow:var(--card-shadow-hover);animation:fadeIn .2s ease;max-width:min(420px,calc(100vw - var(--sp-6) * 2))}.app-toast--error{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.user-avatar{width:28px;height:28px;border-radius:var(--r-xs);border:1px solid var(--cyan);background:var(--cyan);color:var(--on-cyan);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:var(--fw-bold);flex-shrink:0;cursor:pointer;margin-left:var(--sp-2);transition:background var(--t-fast),border-color var(--t-fast);user-select:none;letter-spacing:.02em}.user-avatar:hover{background:var(--cyan-hover);border-color:var(--cyan-hover)}.user-avatar--lg{width:56px;height:56px;border-radius:50%;font-size:var(--fs-xl);margin-left:0}.user-menu{display:none;position:absolute;top:100%;right:0;margin-top:var(--sp-2);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg)!important;width:240px;max-width:calc(100vw - var(--sp-4));padding:var(--sp-1) 0;box-shadow:var(--viewer-shadow, var(--card-shadow-hover));z-index:100;overflow:hidden}.user-menu__head{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--sp-4) var(--sp-3)}.user-menu__name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary)}.user-menu__mail{font-size:var(--fs-sm);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis}.user-menu__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-4);background:transparent;border:none;text-align:left;color:var(--text-primary);font-size:var(--fs-base);font-weight:var(--fw-medium);cursor:pointer;font-family:inherit;transition:background var(--t-fast)}.user-menu__item:hover{background:var(--hover-bg)}.user-menu__item--danger{color:var(--text-primary);font-weight:var(--fw-semibold)}.user-menu__item--danger:hover{background:var(--hover-bg);color:var(--text-primary)}.user-menu__divider{height:1px;margin:var(--sp-1) 0;background:var(--card-border)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4)}@media(max-width:768px){.grid-2{grid-template-columns:minmax(0,1fr)}.page__header{flex-direction:column;align-items:stretch;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--page-pad-x)}.page__actions{width:100%}.tabs-bar{padding:0 var(--page-pad-x)}.tabs-bar__inner{gap:var(--sp-4);white-space:nowrap;-webkit-overflow-scrolling:touch}.modal-overlay{padding:0}.modal-panel{width:100%;height:100vh;max-height:100vh;border-radius:0;border:none}.modal-panel__header{padding:var(--sp-4) var(--page-pad-x) 0}.modal-panel__body{padding:var(--sp-4) var(--page-pad-x)}.modal-panel__footer{padding:var(--sp-3) var(--page-pad-x) max(var(--sp-3),env(safe-area-inset-bottom))}.app-toast{left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-3)}}svg.lucide{stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.pictogram,.building-card__pictogram,.model-empty__icon,.ausschreibung-page__header-icon,.viewer-drawer__cluster-icon{display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.building-card__pictogram{width:52px;height:52px;border-radius:var(--r-md);background:transparent;border:1px solid var(--card-border);transition:border-color .2s,color .2s}.building-card__pictogram:before{display:none}.building-card__pictogram svg{opacity:.75}.building-card:hover .building-card__pictogram{border-color:var(--cyan);background:var(--cyan-soft);transform:none;box-shadow:none}.building-card:hover .building-card__pictogram svg{opacity:1;color:var(--cyan-strong)}.model-empty__icon{width:48px;height:48px;border-radius:var(--r-md);background:transparent;border:1px solid var(--card-border)}.model-empty__icon svg{opacity:.8}.viewer-drawer__cluster-icon{width:28px;height:28px;border-radius:var(--r-xs);background:transparent;font-size:0}.viewer-drawer__cluster-icon svg{color:var(--text-secondary);opacity:.85}.viewer-drawer__toggle-btn svg{opacity:.7}.ausschreibung-page__header-icon{width:32px;height:32px;border-radius:var(--r-sm);background:transparent;border:1px solid var(--card-border);font-size:0}
