/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.w-9{width:calc(var(--spacing) * 9)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.italic{font-style:italic}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}}:root{color:var(--opx-color-ink);background:var(--opx-color-app);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--opx-color-ink:#172023;--opx-color-muted:#607071;--opx-color-label:#405253;--opx-color-border:#d7dede;--opx-color-border-strong:#bdcaca;--opx-color-control-border:#cbd6d6;--opx-color-surface:#fff;--opx-color-surface-muted:#f7f9f8;--opx-color-surface-chrome:#fbfdfc;--opx-color-app:#edf1f0;--opx-color-brand:#005a4e;--opx-color-brand-hover:#074b43;--opx-color-brand-strong:#073d38;--opx-color-brand-soft:#dbeceb;--opx-color-brand-quiet:#eef4f3;--opx-color-brand-label:#0e5252;--opx-color-nav-icon:#718182;--opx-color-status-soft:#f0fdfa;--opx-color-status-border:#99f6ec;--opx-color-success:#0d9488;--opx-color-warning-soft:#f7efe1;--opx-color-warning-border:#ead9bb;--opx-color-warning:#8a5a10;--opx-color-danger:#a33131;--opx-color-danger-soft:#fbefef;--opx-color-danger-border:#efcaca;--opx-shadow-panel:0 18px 38px #12262712;--opx-shadow-row:0 10px 20px #1226270f;--opx-radius:8px;--opx-radius-control:6px;--opx-focus-ring:0 0 0 3px #005a4e21;--opx-space-1:4px;--opx-space-2:8px;--opx-space-3:12px;--opx-space-4:16px;--opx-space-5:22px;--opx-space-6:26px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--opx-color-app);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a,select{touch-action:manipulation}input,select{background:var(--opx-color-surface);border:1px solid var(--opx-color-control-border);color:var(--opx-color-ink);border-radius:6px;width:100%;min-height:38px;padding:8px 10px;transition:border-color .14s,box-shadow .14s}input:focus-visible,select:focus-visible{border-color:var(--opx-color-brand);box-shadow:var(--opx-focus-ring);outline:0}a{color:inherit;text-decoration:none}.app-shell{background:var(--opx-color-app);min-height:100vh;display:flex;position:relative}.app-shell--collapsed .app-sidebar{border-right-color:#0000;width:0;padding:0}.app-sidebar-toggle{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);color:var(--opx-color-label);cursor:pointer;z-index:20;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:left .24s,background-color .14s,color .14s;display:flex;position:fixed;top:72px;left:266px;box-shadow:0 2px 8px #0000001f}.app-sidebar-toggle svg{width:16px;height:16px}.app-sidebar-toggle:hover{background:var(--opx-color-brand-soft);color:var(--opx-color-brand)}.app-sidebar-toggle:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-shell--collapsed .app-sidebar-toggle{left:0}.app-sidebar{border-right:1px solid var(--opx-color-border);background:var(--opx-color-surface-chrome);flex-direction:column;flex-shrink:0;gap:18px;width:280px;padding:22px 16px;transition:width .24s,padding .24s,border-color .24s;display:flex;overflow:hidden}.app-brand{border-bottom:1px solid var(--opx-color-border);flex-direction:column;align-items:center;gap:6px;padding:10px 6px 20px;display:flex}.sidebar-logo-upload{background:var(--opx-color-surface-muted);border:2px dashed var(--opx-color-border-strong);cursor:pointer;border-radius:14px;width:110px;height:110px;padding:0;transition:border-color .14s,background .14s;position:relative;overflow:hidden}.sidebar-logo-upload:hover{background:var(--opx-color-brand-quiet);border-color:var(--opx-color-brand)}.sidebar-logo-upload:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.sidebar-logo-upload__img{object-fit:cover;width:100%;height:100%}.sidebar-logo-upload__placeholder{color:var(--opx-color-muted);flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:100%;font-size:11px;font-weight:600;transition:color .14s;display:flex}.sidebar-logo-upload:hover .sidebar-logo-upload__placeholder{color:var(--opx-color-brand)}.sidebar-logo-upload__overlay{color:#fff;background:#003a328c;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.sidebar-logo-upload:hover .sidebar-logo-upload__overlay{display:flex}.app-brand__name{color:var(--opx-color-brand-strong);letter-spacing:3px;text-align:center;text-transform:uppercase;font-size:30px;font-weight:800;line-height:1;display:block}.app-brand__context{color:var(--opx-color-brand);letter-spacing:1.8px;text-align:center;text-transform:uppercase;align-items:center;gap:7px;font-size:10px;font-weight:700;display:flex}.app-brand__context:before,.app-brand__context:after{background:var(--opx-color-brand);content:"";flex-shrink:0;width:18px;height:1px;display:block}.app-brand__organization{background:var(--opx-color-brand-quiet);border:1px solid var(--opx-color-brand);align-items:center}@supports (color:color-mix(in lab, red, red)){.app-brand__organization{border:1px solid color-mix(in srgb, var(--opx-color-brand) 16%, transparent)}}.app-brand__organization{color:var(--opx-color-brand-strong);border-radius:7px;grid-template-columns:16px minmax(0,1fr);gap:8px;width:100%;min-height:42px;margin-top:5px;padding:8px 10px;display:grid}.app-brand__organization svg{color:var(--opx-color-brand);width:15px;height:15px}.app-brand__organization span{gap:2px;min-width:0;display:grid}.app-brand__organization small{color:var(--opx-color-muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:780;line-height:1}.app-brand__organization strong{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:780;line-height:1.15;overflow:hidden}.app-nav{gap:3px;display:grid}.app-nav__link{color:var(--opx-color-label);border-radius:7px;align-items:center;gap:10px;min-height:38px;padding:9px 11px;font-size:14px;font-weight:650;transition:background-color .14s,color .14s;display:flex}.app-nav__link svg{color:var(--opx-color-nav-icon);width:17px;height:17px}.app-nav__link:hover{background:var(--opx-color-brand-quiet);color:var(--opx-color-brand-strong)}.app-nav__link:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-nav__link[aria-current=page]{background:var(--opx-color-brand-soft);color:var(--opx-color-brand-label)}.app-nav__link[aria-current=page] svg{color:var(--opx-color-brand-label)}.app-sidebar__user{border-top:1px solid var(--opx-color-border);color:var(--opx-color-muted);margin-top:auto;padding:18px 6px 0;font-size:13px;position:relative}.app-sidebar__user-meta{min-width:0;font-size:14px;font-weight:760;line-height:1.2;display:grid}.app-sidebar__user-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-user-menu{position:relative}.app-user-menu__summary{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);color:var(--opx-color-label);cursor:pointer;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 10px;transition:background-color .14s,border-color .14s,box-shadow .14s,color .14s;display:flex;box-shadow:0 1px #00000008}.app-user-menu__summary:hover,.app-user-menu__summary[aria-expanded=true]{background:var(--opx-color-brand-quiet);border-color:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.app-user-menu__summary:hover,.app-user-menu__summary[aria-expanded=true]{border-color:color-mix(in srgb, var(--opx-color-brand) 35%, transparent)}}.app-user-menu__summary:hover,.app-user-menu__summary[aria-expanded=true]{color:var(--opx-color-brand-strong)}.app-user-menu__summary:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-user-menu__avatar{background:var(--opx-color-brand-soft);border:1px solid var(--opx-color-brand);align-items:center}@supports (color:color-mix(in lab, red, red)){.app-user-menu__avatar{border:1px solid color-mix(in srgb, var(--opx-color-brand) 22%, transparent)}}.app-user-menu__avatar{color:var(--opx-color-brand-strong);border-radius:50%;flex:none;justify-content:center;width:30px;height:30px;display:flex}.app-user-menu__avatar svg{width:16px;height:16px}.app-user-menu__panel{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);z-index:30;border-radius:8px;gap:12px;width:min(248px,100vw - 32px);padding:12px;display:grid;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 18px 38px #14231f29}.app-user-menu__panel:after{background:var(--opx-color-surface);border-bottom:1px solid var(--opx-color-border);border-right:1px solid var(--opx-color-border);content:"";width:10px;height:10px;position:absolute;bottom:-6px;left:22px;transform:rotate(45deg)}.app-user-menu__panel-header{border-bottom:1px solid var(--opx-color-border);gap:3px;min-width:0;padding:0 2px 10px;display:grid}.app-user-menu__panel-header span{color:var(--opx-color-label);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:760;overflow:hidden}.app-user-menu__panel-header strong{color:var(--opx-color-brand-strong);font-size:12px;font-weight:760}.app-user-menu__section-label{color:var(--opx-color-muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:780;line-height:1;display:flex}.app-user-menu__section-label svg{width:14px;height:14px}.app-language-options{gap:6px;display:grid}.app-company-options{gap:6px;max-height:170px;display:grid;overflow:auto}.app-company-option{background:var(--opx-color-surface-muted);color:var(--opx-color-label);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:7px;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:42px;padding:8px;transition:background-color .14s,border-color .14s,color .14s;display:grid}.app-company-option span{gap:2px;min-width:0;display:grid}.app-company-option strong,.app-company-option small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-company-option strong{color:inherit;font-size:13px;font-weight:760}.app-company-option small{color:var(--opx-color-muted);font-size:11px;font-weight:720}.app-company-option svg{color:var(--opx-color-brand);width:14px;height:14px}.app-company-option:hover,.app-company-option[aria-pressed=true]{background:var(--opx-color-brand-soft);border-color:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.app-company-option:hover,.app-company-option[aria-pressed=true]{border-color:color-mix(in srgb, var(--opx-color-brand) 24%, transparent)}}.app-company-option:hover,.app-company-option[aria-pressed=true]{color:var(--opx-color-brand-strong)}.app-company-option:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-organization-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.app-organization-action{border:1px solid var(--opx-color-border);color:var(--opx-color-label);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:32px;padding:6px 8px;font-size:12px;font-weight:760;transition:background-color .14s,border-color .14s,color .14s;display:inline-flex}.app-organization-action svg{color:var(--opx-color-brand);flex:none;width:14px;height:14px}.app-organization-action span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-organization-action:hover{background:var(--opx-color-surface-muted);border-color:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.app-organization-action:hover{border-color:color-mix(in srgb, var(--opx-color-brand) 22%, transparent)}}.app-organization-action:hover{color:var(--opx-color-brand-strong)}.app-organization-action:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-organization-action:disabled{color:var(--opx-color-muted);cursor:not-allowed;opacity:.7}.app-language-option{background:var(--opx-color-surface-muted);color:var(--opx-color-label);cursor:pointer;text-align:left;border:1px solid #0000;border-radius:7px;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:8px;min-height:34px;padding:7px 8px;font-size:13px;font-weight:680;transition:background-color .14s,border-color .14s,color .14s;display:grid}.app-language-option strong{color:var(--opx-color-muted);font-size:11px;font-weight:780}.app-language-option svg{color:var(--opx-color-brand);width:14px;height:14px}.app-language-option:hover,.app-language-option[aria-pressed=true]{background:var(--opx-color-brand-soft);border-color:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.app-language-option:hover,.app-language-option[aria-pressed=true]{border-color:color-mix(in srgb, var(--opx-color-brand) 24%, transparent)}}.app-language-option:hover,.app-language-option[aria-pressed=true]{color:var(--opx-color-brand-strong)}.app-language-option:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.app-user-menu__logout{justify-self:stretch;width:100%}.app-user-menu__status{color:var(--opx-color-muted);padding:3px 2px;font-size:12px;font-weight:650}.app-main{flex:1 1 0;min-width:0;padding:30px}.auth-page{background:radial-gradient(circle at top left, #005a4e1a, transparent 34%), var(--opx-color-app);align-items:center;min-height:100vh;padding:28px;display:grid}.auth-panel{gap:24px;width:100%;max-width:420px;margin:0 auto;padding:28px;display:grid}.auth-form{gap:14px;display:grid}.form-error{color:var(--opx-color-danger);margin:0;font-size:14px}.status-note{color:var(--opx-color-success);margin:0;font-size:14px;font-weight:650}.page-panel{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);box-shadow:var(--opx-shadow-panel);isolation:isolate;background:radial-gradient(90% 55% at 50% 115%,#008c7421 0%,#0000 60%),radial-gradient(70% 40% at 85% 105%,#00a0821a 0%,#0000 55%),linear-gradient(#fff 0%,#f4faf8 45%,#e6f4f1 100%);min-height:calc(100vh - 56px);padding:26px;position:relative}.page-panel:before{content:"";opacity:.05;pointer-events:none;z-index:-1;background:url(/operix-watermark.svg) 50% 38%/320px no-repeat;position:absolute;inset:0}.opx-page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.opx-page-header__copy{gap:6px;display:grid}.opx-page-header__eyebrow{color:var(--opx-color-brand);text-transform:uppercase;font-size:12px;font-weight:800}.opx-page-header h1{color:var(--opx-color-ink);text-wrap:balance;margin:0;font-size:29px;line-height:1.1}.opx-page-header p{color:var(--opx-color-muted);text-wrap:pretty;max-width:680px;margin:0;font-size:14px}.opx-page-header__actions{gap:var(--opx-space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.opx-panel{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);gap:var(--opx-space-3);padding:var(--opx-space-4);display:grid}.opx-panel--muted{background:var(--opx-color-surface-muted)}.auth-panel.opx-panel{gap:24px;max-width:420px;padding:28px}.auth-panel .opx-page-header{margin-bottom:0}.opx-toolbar{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);justify-content:space-between;align-items:center;min-height:48px;padding:8px 10px 8px 14px;display:flex}.opx-toolbar>span{color:var(--opx-color-label);text-transform:uppercase;font-size:12px;font-weight:800}.opx-toolbar__actions{gap:var(--opx-space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.opx-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:5px 9px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.opx-badge--neutral{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);color:var(--opx-color-label)}.opx-badge--role,.opx-badge--warning{background:var(--opx-color-warning-soft);border:1px solid var(--opx-color-warning-border);color:var(--opx-color-warning)}.opx-badge--status{background:var(--opx-color-status-soft);border:1px solid var(--opx-color-status-border);color:var(--opx-color-brand-label)}.opx-badge--success{background:var(--opx-color-brand-soft);color:var(--opx-color-brand-strong);border:1px solid #a7d2ce}.opx-badge--danger{background:var(--opx-color-danger-soft);border:1px solid var(--opx-color-danger-border);color:var(--opx-color-danger)}.opx-btn-primary{background:var(--opx-color-brand);border:1px solid var(--opx-color-brand);color:#fff;transition:background-color .14s,border-color .14s,box-shadow .14s}.opx-btn-primary:hover:not(:disabled){background:var(--opx-color-brand-hover);border-color:var(--opx-color-brand-hover)}.opx-btn-primary:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.opx-btn-destructive{background:var(--opx-color-danger);border:1px solid var(--opx-color-danger);color:#fff;transition:background-color .14s,border-color .14s,box-shadow .14s}.opx-btn-destructive:hover:not(:disabled){background:#8f2929;border-color:#8f2929}.opx-btn-destructive:focus-visible{outline:0;box-shadow:0 0 0 3px #a3313133}.opx-btn-outline{border:1px solid var(--opx-color-border-strong);color:var(--opx-color-ink);background:0 0;transition:background-color .14s,border-color .14s,box-shadow .14s}.opx-btn-outline:hover:not(:disabled){background:var(--opx-color-surface-muted);border-color:var(--opx-color-border-strong)}.opx-btn-outline:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.opx-btn-secondary{background:var(--opx-color-brand-soft);border:1px solid var(--opx-color-status-border);color:var(--opx-color-brand-label);transition:background-color .14s,border-color .14s,box-shadow .14s}.opx-btn-secondary:hover:not(:disabled){background:var(--opx-color-brand-quiet);border-color:var(--opx-color-brand-soft)}.opx-btn-secondary:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.opx-btn-ghost{color:var(--opx-color-label);background:0 0;border:1px solid #0000;transition:background-color .14s,color .14s}.opx-btn-ghost:hover:not(:disabled){background:var(--opx-color-surface-muted);color:var(--opx-color-ink)}.opx-btn-ghost:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.opx-btn-link{color:var(--opx-color-brand);text-underline-offset:3px;background:0 0;border:1px solid #0000;text-decoration:underline;transition:color .14s}.opx-btn-link:hover:not(:disabled){color:var(--opx-color-brand-hover)}.opx-btn-link:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.opx-skeleton{background:linear-gradient(90deg, var(--opx-color-border) 25%, var(--opx-color-surface-muted) 50%, var(--opx-color-border) 75%);border-radius:var(--opx-radius-control);background-size:200% 100%;animation:1.6s ease-in-out infinite opx-skeleton-pulse}@keyframes opx-skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.opx-toast-region{pointer-events:none;z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.opx-toast{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);pointer-events:auto;border-radius:10px;align-items:flex-start;gap:10px;max-width:360px;padding:13px 16px;animation:.18s opx-toast-in;display:flex;box-shadow:0 8px 24px #0f1e141f}.opx-toast--success{border-left:4px solid var(--opx-color-success)}.opx-toast--error{border-left:4px solid var(--opx-color-danger)}.opx-toast--info{border-left:4px solid var(--opx-color-brand)}.opx-toast__body{flex:1;gap:3px;min-width:0;display:grid}.opx-toast__title{color:var(--opx-color-ink);font-size:14px;font-weight:650}.opx-toast__message{color:var(--opx-color-muted);font-size:13px}@keyframes opx-toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.opx-field{color:var(--opx-color-label);gap:6px;font-size:13px;font-weight:700;display:grid}.opx-empty-state{background:var(--opx-color-surface-muted);border:1px dashed var(--opx-color-border-strong);border-radius:var(--opx-radius);color:var(--opx-color-muted);margin:0;padding:18px}.placeholder-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.metric-tile{padding:16px}.metric-tile span{color:var(--opx-color-muted);text-transform:uppercase;font-size:12px;font-weight:700;display:block}.metric-tile strong{color:var(--opx-color-brand-strong);margin-top:10px;font-size:24px;display:block}.organizations-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.organizations-layout--with-form{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}.organizations-layout__main{gap:12px;min-width:0;display:grid}.company-list{gap:8px;display:grid}.company-option{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);color:var(--opx-color-ink);text-align:left;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:16px;min-height:68px;padding:13px 16px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.company-option:hover{border-color:var(--opx-color-brand);box-shadow:var(--opx-shadow-row);transform:translateY(-1px)}.company-option:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.company-option__meta{gap:2px;min-width:0;display:grid}.company-option__meta span{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.company-option__meta strong{color:var(--opx-color-muted);overflow-wrap:anywhere;font-size:12px;font-weight:650}.company-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.company-detail-summary div{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);padding:14px 16px}.company-detail-summary dt{color:var(--opx-color-muted);text-transform:uppercase;font-size:12px;font-weight:700}.company-detail-summary dd{color:var(--opx-color-brand-strong);overflow-wrap:anywhere;margin:4px 0 0;font-weight:750}.organization-detail-grid{gap:18px;max-width:980px;display:grid}.company-admin-panel,.company-admin-form{gap:12px;display:grid}.company-admin-panel{gap:16px}.company-admin-panel h2,.company-admin-form h2{color:var(--opx-color-brand-strong);margin:0;font-size:18px;line-height:1.2}.company-admin-form{margin-top:0}.user-assignment-panel{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);overflow:hidden}.user-assignment-panel__header{background:var(--opx-color-surface-muted);border-bottom:1px solid var(--opx-color-border);align-items:center;gap:8px;padding:10px 16px;display:flex}.user-assignment-panel__header span{background:var(--opx-color-brand);color:var(--opx-color-surface);border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.user-assignment-panel__header svg{width:17px;height:17px}.user-assignment-panel__header h3{color:var(--opx-color-ink);margin:0;font-size:15px}.user-assignment-panel__group{display:grid}.user-assignment-panel__group h4{background:var(--opx-color-warning-soft);border-bottom:1px solid var(--opx-color-warning-border);color:var(--opx-color-label);letter-spacing:0;text-transform:uppercase;margin:0;padding:8px 16px;font-size:12px;font-weight:800}.user-assignment-panel__group p{color:var(--opx-color-label);margin:0;padding:16px}.user-assignment-row{background:var(--opx-color-surface);grid-template-columns:minmax(180px,1fr) minmax(116px,150px) auto;align-items:center;gap:14px;min-height:66px;padding:12px 16px;display:grid}.user-assignment-row+.user-assignment-row{border-top:1px solid var(--opx-color-border)}.user-assignment-row__identity{gap:4px;min-width:0;display:grid}.user-assignment-row__identity strong{color:var(--opx-color-ink);overflow-wrap:anywhere}.user-assignment-row__identity span{color:var(--opx-color-label);overflow-wrap:anywhere}.user-assignment-row__role{gap:4px;display:grid}.project-grid{grid-template-columns:repeat(auto-fill, minmax(var(--project-card-min,320px), 1fr));gap:20px;display:grid}.project-header-actions{align-items:center;gap:10px;display:flex}.project-zoom-controls{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:7px;align-items:center;gap:4px;padding:3px 6px;display:flex}.project-zoom-btn{color:var(--opx-color-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .12s,color .12s;display:flex}.project-zoom-btn:hover{background:var(--opx-color-surface-muted);color:var(--opx-color-ink)}.project-zoom-label{color:var(--opx-color-muted);text-align:center;-webkit-user-select:none;user-select:none;min-width:36px;font-size:11px;font-weight:500}.project-card{cursor:pointer;background:var(--opx-color-surface);border-radius:12px;flex-direction:column;padding:0;transition:box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.project-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0000001f}.project-card__stretched-link{z-index:1;position:absolute;inset:0}.project-card__mast{color:#fff;background:linear-gradient(135deg,#46a7b4,#3490a0);justify-content:space-between;align-items:flex-start;gap:10px;min-height:80px;padding:16px 18px 14px;display:flex;position:relative;overflow:hidden}.project-card__mast-body{z-index:1;flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.project-card__mast-row{flex-wrap:nowrap;align-items:center;gap:5px;min-width:0;display:flex}.project-card__mast-icon{background:#ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.project-card__divider{color:#ffffff59;flex-shrink:0;font-weight:300}.project-card__code{color:#c8eef3;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:11px;font-weight:700}.project-card__name-inline{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.project-card__client{color:#ffffffad;z-index:1;font-size:12px;font-weight:400}.project-card__status{color:#1d7a87;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;z-index:1;background:#d7f1f5;border-radius:999px;flex-shrink:0;align-self:flex-start;padding:4px 10px;font-size:10px;font-weight:800}.project-card__watermark{color:#b8ffe017;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:DM Serif Display,Georgia,serif;font-size:100px;line-height:.75;position:absolute;top:0;right:12px}.project-card__gauges{border-bottom:1px solid var(--opx-color-border);flex-direction:column;align-items:center;gap:12px;padding:16px 18px;display:flex}.project-card__gauges-charts{justify-content:center;gap:24px;width:100%;display:flex}.project-card__gauge{flex-direction:column;align-items:center;gap:8px;display:flex}.project-card__gauge-title{text-align:center;color:var(--opx-color-label);font-size:10px;font-weight:600}.pc-donut{width:96px;height:96px;position:relative}.pc-donut__svg{width:100%;height:100%}.pc-donut__center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:22px;display:flex;position:absolute;inset:0}.pc-donut__center strong{color:var(--opx-color-ink);font-size:13px;font-weight:800;line-height:1}.pc-donut__center>span{color:var(--opx-color-ink);font-size:10px;font-weight:600;line-height:1.2}.pc-donut__center small{color:var(--opx-color-muted);font-size:9px;font-weight:400;line-height:1.3}.project-card__gauges-legend{flex-flow:wrap;justify-content:center;gap:14px;display:flex}.project-card__legend-item{color:var(--opx-color-label);align-items:center;gap:5px;font-size:11px;font-weight:500;display:flex}.project-card__legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.project-card__legend-dot--green{background:#0ea5a0}.project-card__legend-dot--green-light{background:#ccfbf8;border:1px solid #5eead4}.project-card__legend-dot--purple{background:#7c3aed}.project-card__finance{margin:0;padding:0 18px;display:grid}.project-card__finance div{border-bottom:1px solid var(--opx-color-border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;display:grid}.project-card__finance-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.project-card__finance-icon--order{color:#4f46e5;background:#e0e7ff}.project-card__finance-icon--cost{color:#d97706;background:#fef3c7}.project-card__finance-icon--collect{color:#0d9488;background:#ccfbf8}.project-card__finance dt{color:var(--opx-color-label);font-size:13px;font-weight:500}.project-card__finance dd{margin:0;font-size:13px;font-weight:700}.project-card__amount--brand{color:var(--opx-color-brand)}.project-card__amount--warning{color:#d97706}.project-card__margin{color:inherit;background:#f0fdfa;border-top:1px solid #d1fae5;flex-direction:column;gap:10px;margin:0;padding:14px 18px;display:flex}.project-card__margin-header{align-items:center;gap:8px;display:flex}.project-card__margin-icon{color:#fff;background:#46a7b4;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.project-card__margin-title{color:var(--opx-color-ink);font-size:13px;font-weight:700}.project-card__margin-cols{flex:1;display:flex}.project-card__margin-col{flex-direction:column;flex:1;gap:2px;display:flex}.project-card__margin-col:first-child{border-right:1px solid #a7f3d0;padding-right:16px}.project-card__margin-col:last-child{padding-left:16px}.project-card__margin-col small{color:var(--opx-color-muted);font-size:11px;font-weight:400}.project-card__margin-col strong{color:var(--opx-color-brand);font-size:16px;font-weight:700}.project-card__margin-col em{color:var(--opx-color-label);font-size:12px;font-style:normal;font-weight:600}.project-card__margin-sublabel{color:var(--opx-color-muted);font-size:10px}.project-card__margin-gain{border-radius:8px;grid-template-columns:minmax(0,1.4fr) auto auto;gap:0;display:grid;overflow:hidden}.project-card__margin-gain--pos{color:#fff;background:linear-gradient(135deg,#46a7b4,#3490a0)}.project-card__margin-gain--neg{color:#991b1b;background:#fee2e2}.project-card__margin-gain-status{align-items:center;gap:8px;padding:10px 12px;display:flex}.project-card__margin-gain-icon-wrap{background:#ffffff73;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.project-card__margin-gain-status-body{flex-direction:column;gap:1px;display:flex}.project-card__margin-gain-status-body>span:first-child{font-size:11px;font-weight:700}.project-card__margin-gain-ecart{opacity:.8;font-size:10px;font-weight:500}.project-card__margin-gain-amount,.project-card__margin-gain-pct{text-align:center;border-left:1px solid #ffffff4d;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:10px 12px;display:flex}.project-card__margin-gain-amount strong,.project-card__margin-gain-pct strong{font-size:13px;font-weight:700}.project-card__margin-gain-amount span,.project-card__margin-gain-pct span{opacity:.75;font-size:10px;font-weight:500}.project-card__mast-end{z-index:2;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex;position:relative}.project-card__done-btn{color:#fff;cursor:pointer;letter-spacing:.04em;white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff59;border-radius:6px;align-items:center;gap:4px;padding:4px 9px;font-size:10px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.project-card__done-btn:hover{background:#ffffff3d;border-color:#ffffff8c}.project-card__status--archived{color:#6b7280;background:#e5e7eb}.archive-search{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:8px;align-items:center;gap:8px;margin-bottom:24px;padding:8px 12px;display:flex}.archive-search__icon{color:var(--opx-color-label);flex-shrink:0}.archive-search__input{color:var(--opx-color-text);background:0 0;border:none;outline:none;width:100%;font-size:14px}.archive-search__input::placeholder{color:var(--opx-color-label)}.archive-year-section{margin-bottom:32px}.archive-year-heading{color:var(--opx-color-text);border-bottom:2px solid var(--opx-color-border);align-items:center;gap:10px;margin:0 0 16px;padding-bottom:8px;font-size:18px;font-weight:700;display:flex}.archive-year-heading__label{font-family:DM Serif Display,Georgia,serif}.archive-year-heading__count{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);color:var(--opx-color-label);border-radius:999px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:600}.archive-grid{--project-card-min:300px}.archive-card-wrapper{flex-direction:column;gap:0;display:flex}.archive-card-actions{border:1px solid var(--opx-color-border);border-top:none;border-radius:0 0 12px 12px;display:flex;overflow:hidden}.archive-card-action-btn{cursor:pointer;letter-spacing:.03em;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 10px;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:flex}.archive-card-action-btn+.archive-card-action-btn{border-left:1px solid var(--opx-color-border)}.archive-card-action-btn--restore{color:#0b604c}.archive-card-action-btn--restore:hover{background:#ccfbf8}.archive-card-action-btn--delete{color:#dc2626}.archive-card-action-btn--delete:hover{background:#fee2e2}.project-confirm-icon--restore{color:#0b604c}.project-confirm-icon--danger{color:#dc2626}.project-confirm-note--danger{color:#dc2626;font-weight:600}.project-detail-page{gap:18px;display:grid}.project-detail-breadcrumb{color:var(--opx-color-muted);flex-wrap:wrap;gap:5px;font-size:13px;display:flex}.project-detail-breadcrumb a{color:var(--opx-color-brand);font-weight:500}.project-detail-breadcrumb a:after{color:var(--opx-color-muted);content:" /"}.project-detail-actions,.project-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-summary-band{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;display:grid}.project-summary-tile{background:var(--opx-color-surface);border-top:2px solid var(--opx-color-brand);border-radius:10px;gap:5px;min-height:82px;padding:14px 16px;display:grid}.project-summary-tile>span{color:var(--opx-color-muted);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:500}.project-summary-tile strong{color:var(--opx-color-ink);font-size:22px;font-weight:600}.project-summary-tile small{color:var(--opx-color-label);font-size:11px;font-weight:400}.project-summary-tile--blue{border-top-color:#2563eb}.project-summary-tile--orange{border-top-color:#ea580c}.project-summary-tile--orange strong{color:#d97706}.project-summary-tile--purple{border-top-color:#7c3aed}.project-summary-tile--purple strong{color:#7c3aed}.project-summary-tile--red{border-top-color:#dc2626}.project-summary-tile--red strong{color:#dc2626}.project-summary-tile--teal strong{color:var(--opx-color-brand)}.project-tabs{background:var(--opx-color-surface);border-bottom:1px solid #bfe4d7;gap:22px;padding:0 18px;display:flex;overflow-x:auto}.project-tabs button{color:var(--opx-color-label);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:14px 0 12px;font-size:14px;font-weight:500}.project-tabs button.is-active{border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.project-tab-stack{gap:18px;display:grid}.project-section-heading{border-bottom:1px solid #cfe8df;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.project-section-heading h2{color:var(--opx-color-brand);letter-spacing:.5px;text-transform:uppercase;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600;display:flex}.project-section-heading span{color:var(--opx-color-muted);font-size:12px}.project-cost-panel,.project-billing-panel,.project-list-panel,.project-planning-panel,.project-documents-panel,.project-journal-panel{gap:18px;display:grid}.project-empty-accordion{background:#f7fffb;border:1px solid #cfe8df;border-radius:8px;gap:8px;padding:16px;display:grid}.project-empty-accordion strong{color:var(--opx-color-ink)}.project-empty-accordion span{color:var(--opx-color-label)}.project-vendor-list{gap:6px;display:grid}.project-vendor-row{border:1px solid var(--opx-color-border);border-radius:8px;gap:8px;padding:9px 12px;display:grid}.project-vendor-row.is-expanded{background:#f5fffb;border-color:#9fd9ca}.project-vendor-row-main{grid-template-columns:minmax(130px,1.1fr) minmax(260px,2fr) auto;align-items:center;gap:10px;display:grid}.project-vendor-row-main>div:first-child{gap:3px;display:grid}.project-vendor-row strong{color:var(--opx-color-ink);font-size:13px}.project-vendor-row span,.project-vendor-row dt{color:var(--opx-color-label);font-size:11px}.project-vendor-row dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.project-vendor-row dd{color:var(--opx-color-ink);margin:1px 0 0;font-size:12px;font-weight:600}.project-vendor-progress{background:#e5e7eb;border-radius:999px;height:6px;overflow:hidden}.project-vendor-progress span{background:var(--opx-color-brand);height:100%;display:block}.project-vendor-details{border-top:1px solid #cfe8df;gap:16px;padding-top:14px;display:grid}.project-vendor-detail-progress{gap:6px;display:grid}.project-vendor-detail-progress>div:first-child,.project-vendor-detail-progress>div:last-child{justify-content:space-between;align-items:center;display:flex}.project-vendor-detail-section{border-top:1px dashed #d5e5df;gap:10px;padding-top:12px;display:grid}.project-vendor-detail-section h3{color:var(--opx-color-label);letter-spacing:.5px;text-transform:uppercase;margin:0;font-size:11px;font-weight:500}.project-vendor-detail-section p{color:var(--opx-color-label);margin:0;font-size:13px}.project-vendor-detail-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-vendor-detail-list{gap:8px;display:grid}.project-vendor-detail-list article{border:1px solid var(--opx-color-border);background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;display:flex}.project-vendor-detail-list article>div{gap:3px;display:grid}.project-document-badge{color:#92400e;text-transform:uppercase;background:#fef3c7;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:500}.project-vendor-delete-icon{color:#ef4444}.project-vendor-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-vendor-info-grid>div{background:#f8f9fa;border-radius:6px;gap:2px;padding:8px 10px;display:grid}.project-vendor-info-grid>div span{color:var(--opx-color-label);letter-spacing:.3px;text-transform:uppercase;font-size:11px}.project-vendor-info-grid>div strong{word-break:break-word;font-size:13px;font-weight:500}.project-vendor-info-grid>div strong a{color:var(--opx-color-brand)}.project-vendor-info-wide{grid-column:1/-1}.project-cost-total{color:var(--opx-color-brand-strong);background:#eefaf5;border-radius:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;padding:11px 14px;display:flex}.project-cost-total--grand{background:var(--opx-color-brand);color:#fff;justify-content:center}.project-modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.project-modal{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:min(92vh,760px);overflow:auto;box-shadow:0 24px 80px #0f172a47}.project-modal--vendor-conditions{max-width:min(94vw,920px)}.project-modal-header{border-bottom:1px solid var(--opx-color-border);background:#e8f8f1;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.project-modal-header h2{color:var(--opx-color-brand-strong);font-family:var(--opx-font-display);margin:0;font-size:20px}.project-vendor-form{gap:18px;padding:22px;display:grid}.project-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.project-field-wide{grid-column:1/-1}.project-vendor-form input,.project-vendor-form select,.project-vendor-form textarea{border:1px solid var(--opx-color-border);color:var(--opx-color-ink);font:inherit;background:#f4f6f8;border-radius:8px;width:100%;padding:12px 13px}.project-secondary-input{margin-top:-8px}.project-payment-segments{border:1px solid var(--opx-color-border);background:#f8f9fa;border-radius:8px;display:flex;overflow:hidden}.project-payment-segments button{border:0;border-right:1px solid var(--opx-color-border);color:var(--opx-color-label);cursor:pointer;font:inherit;background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:13px;font-weight:400;transition:background .1s;display:flex}.project-payment-segments button svg{flex-shrink:0;width:15px;height:15px}.project-payment-segments button:last-child{border-right:0}.project-payment-segments button:hover:not(:disabled){background:#00000008}.project-payment-segments button:disabled{cursor:default;opacity:.6}.project-payment-segments button.is-active{color:var(--opx-color-brand);background:#e6f4ee;font-weight:500}.project-payment-segments button:last-child.is-active{color:#7c3aed;background:#ede9fe}.project-payment-segments button:nth-child(2).is-active{color:#c2620a;background:#fff3e6}.project-vat-field{max-width:86px}.project-payment-condition-info{background:#f3f0ff;border:1px solid #c4b5fd;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:4px 8px;padding:10px 14px;font-size:12px;display:grid}.project-payment-condition-info>div{flex-direction:column;gap:3px;display:flex}.project-payment-condition-info span{color:#7c3aed;font-size:11px;font-weight:500}.project-payment-condition-info strong{color:#4c1d95;font-size:13px;font-weight:600}.project-payment-ht-bar{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.project-dialog-context{color:var(--opx-color-label);margin:-6px 0 0;font-size:13px}.project-avenant-warning{color:#92400e;background:#fef3c7;border-radius:8px;align-items:flex-start;gap:8px;padding:11px 12px;font-size:13px;font-weight:400;line-height:1.5;display:flex}.project-avenant-warning svg{flex:none;width:16px;height:16px;margin-top:1px}.project-disclosure{color:var(--opx-color-brand-strong);cursor:pointer;font:inherit;background:0 0;border:0;justify-self:start;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;display:inline-flex}.project-upload-block{border-top:1px dashed var(--opx-color-border);gap:10px;padding-top:14px;display:grid}.project-upload-block>span{color:var(--opx-color-label);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:500}.project-upload-block button,.project-upload-block label{color:var(--opx-color-brand);cursor:pointer;background:#f6f7f9;border:2px dashed #d6dce3;border-radius:10px;place-items:center;gap:3px;padding:17px;display:grid}.project-upload-block label{min-height:116px}.project-upload-block input[type=file]{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.project-upload-block--document label{background:#f7f8fa}.project-upload-block small{color:var(--opx-color-label)}.project-modal-footer{border-top:1px solid var(--opx-color-border);justify-content:flex-end;gap:10px;margin:0 -22px -22px;padding:16px 22px;display:flex}.project-condition-grid,.project-billing-totals,.project-margin-grid,.project-journal-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.project-condition-card{border:1px solid var(--opx-color-border);border-radius:8px;gap:5px;padding:14px;display:grid}.project-condition-card:first-child{background:#fff4c7;border-color:#f59e0b}.project-condition-card span{color:var(--opx-color-label);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:500}.project-condition-card strong{color:var(--opx-color-brand);font-size:20px;font-weight:600}.project-ledger-row{background:#f0eaff;border:1px solid #c4b5fd;border-radius:8px;grid-template-columns:120px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 16px;display:grid}.project-ledger-row em{color:#6d28d9;font-style:normal;font-weight:600}.journal-header-actions{align-items:center;gap:10px;display:flex}.journal-filter-chip{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);color:var(--opx-color-muted);white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px}.journal-table-wrapper{border:1px solid var(--opx-color-border);border-radius:10px;overflow:auto}.journal-table{border-collapse:collapse;width:100%;min-width:700px;font-size:13px}.journal-table thead tr{background:var(--opx-color-brand-soft)}.journal-table th{color:var(--opx-color-brand-label);letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.journal-table tbody tr{border-top:1px solid var(--opx-color-border);transition:background .12s}.journal-table tbody tr.journal-row--inflow{background:#f0fdfa}.journal-table tbody tr.journal-row--outflow{background:#fff5f5}.journal-table tbody tr.journal-row--inflow:hover{background:#ccfbf8}.journal-table tbody tr.journal-row--outflow:hover{background:#fee2e2}.journal-table td{color:var(--opx-color-ink);vertical-align:middle;padding:10px 14px}.journal-partie-arrow{color:var(--opx-color-muted);font-size:12px}.journal-type-badge{letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.journal-type-badge--client{color:#6d28d9;background:#ede9fe}.journal-type-badge--fournisseur{color:#92400e;background:#fef3c7}.journal-type-badge--sst{color:#1e40af;background:#dbeafe}.journal-amount{text-align:right;white-space:nowrap;font-weight:600}.journal-amount--inflow{color:var(--opx-color-success)}.journal-amount--outflow{color:var(--opx-color-danger)}.journal-table tfoot tr{border-top:1px solid var(--opx-color-border)}.journal-footer-sub td{background:var(--opx-color-surface-muted);color:var(--opx-color-label);padding:9px 14px;font-size:13px}.journal-footer-total td{background:var(--opx-color-brand-soft);color:var(--opx-color-brand-label);padding:10px 14px;font-size:13px;font-weight:700}.project-margin-card{gap:14px;display:grid}.project-margin-card h2{color:var(--opx-color-label);text-transform:uppercase;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.project-margin-card dl{gap:10px;margin:0;display:grid}.project-margin-card dl div{justify-content:space-between;align-items:center;display:flex}.project-margin-card dd{margin:0;font-weight:600}.project-margin-card>strong{color:#dc2626;text-align:center;font-size:20px;font-weight:600}.project-margin-card>span{color:#7f1d1d;text-align:center;font-weight:400}.project-margin-card--danger{background:#fee2e2;border-color:#fecaca}.project-margin-neg dd{color:#dc2626}.project-margin-pos dd{color:#0ea5a0}.project-margin-delta-callout{text-align:center;background:#f0fdfa;border:1px solid #5eead4;border-radius:10px;gap:4px;margin-top:4px;padding:20px 16px;display:grid}.project-margin-delta-callout strong{color:#0ea5a0;font-size:26px;font-weight:700}.project-margin-delta-callout--danger{background:#fff1f2;border-color:#fda4af}.project-margin-delta-callout--danger strong{color:#dc2626}.project-margin-delta-status{letter-spacing:.5px;text-transform:uppercase;justify-content:center;align-items:center;gap:4px;margin:2px 0 0;font-size:11px;font-weight:600;display:flex}.project-margin-delta-callout--danger .project-margin-delta-status{color:#9f1239}.project-margin-delta-callout:not(.project-margin-delta-callout--danger) .project-margin-delta-status{color:#0d9488}.project-margin-delta-callout small{color:#6b7280;margin-top:2px;font-size:12px}.project-gantt-placeholder{border:1px solid var(--opx-color-border);background:linear-gradient(90deg,#0000 24%,#dbe4ef 24% 25%,#0000 25%),repeating-linear-gradient(0deg,#f3fbf8,#f3fbf8 64px,#fff 64px 128px);border-radius:10px;align-items:center;min-height:280px;padding:24px;display:grid}.project-doc-group{gap:12px;display:grid}.project-doc-group h3{border-bottom:1px solid var(--opx-color-border);color:var(--opx-color-label);letter-spacing:1.4px;text-transform:uppercase;margin:0;padding-bottom:10px;font-size:14px}.project-document-list{gap:10px;display:grid}.project-document-list article{border:1px solid var(--opx-color-border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.project-document-list article>div{gap:4px;display:grid}.project-document-list span{color:var(--opx-color-label);font-size:13px}.billing-order-hint{color:var(--opx-color-label);align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.billing-order-hint strong{color:var(--opx-color-ink)}.billing-order-hint-ttc{color:var(--opx-color-muted);font-size:13px}.billing-condition-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.billing-condition-grid--vendor{grid-template-columns:repeat(3,minmax(170px,1fr))}.billing-condition-card{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:8px;gap:3px;padding:10px 12px;transition:border-color .2s;display:grid}.billing-condition-card--active{background:#fffbeb;border-width:1.5px;border-color:#f59e0b}.billing-condition-card--paid{background:#f0fdfa;border-width:1.5px;border-color:#40e0d0}.billing-condition-card-header{justify-content:space-between;align-items:center;min-height:18px;display:flex}.billing-condition-label{color:var(--opx-color-muted);letter-spacing:.5px;text-transform:uppercase;font-size:11px;font-weight:600}.billing-condition-badge-paid{color:#0ea5a0;background:#ccfbf8;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.billing-condition-badge-neutral{background:var(--opx-color-surface-muted);color:var(--opx-color-muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.billing-condition-pct{color:var(--opx-color-ink);margin:1px 0;font-size:20px;font-weight:700;line-height:1.1}.billing-condition-amount{color:var(--opx-color-ink);font-size:13px;font-style:normal;font-weight:600}.billing-condition-row{gap:2px;margin-top:4px;display:grid}.billing-condition-recu{color:var(--opx-color-label);font-size:12px}.billing-condition-restant{color:var(--opx-color-muted);font-size:12px;font-weight:500}.billing-condition-restant--pending{color:#d97706}.billing-condition-bar{background:#e5e7eb;border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.billing-condition-bar span{background:var(--opx-color-brand);height:100%;transition:width .4s;display:block}.billing-condition-bar-full{background:#40e0d0!important}.billing-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.billing-total{text-align:center;border-radius:8px;gap:2px;padding:8px 12px;display:grid}.billing-total span{letter-spacing:.4px;text-transform:uppercase;font-size:10px;font-weight:500}.billing-total strong{font-size:16px;font-weight:600}.billing-total--blue{color:#1d4ed8;background:#dbeafe}.billing-total--purple{color:#6d28d9;background:#ede9fe}.billing-total--yellow{color:#a16207;background:#fef9c3}.billing-receipt-list{gap:8px;display:grid}.billing-receipt-row{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:8px;grid-template-columns:10px 90px minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:7px 12px;display:grid}.billing-receipt-dot{background:#40e0d0;border-radius:50%;flex-shrink:0;width:8px;height:8px}.billing-receipt-date{color:var(--opx-color-muted);font-size:13px}.billing-receipt-label{color:var(--opx-color-ink);font-size:12px;font-weight:500}.billing-receipt-amount{color:#0ea5a0;white-space:nowrap;background:#f0fdfa;border-radius:6px;padding:3px 8px;font-size:12px;font-style:normal;font-weight:700}.billing-conditions-edit-grid{grid-template-columns:minmax(0,1fr) 80px minmax(100px,auto);align-items:center;gap:8px 10px;display:grid}.vendor-conditions-edit-grid{grid-template-columns:minmax(220px,1fr) minmax(72px,88px) minmax(150px,170px) minmax(140px,170px) 36px;align-items:center;gap:8px 10px;display:grid}.billing-conditions-col-header{color:var(--opx-color-muted);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:600}.billing-conditions-label-input,.billing-conditions-pct-input,.billing-conditions-date-input,.billing-conditions-amount-input{background:var(--opx-color-surface);border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);width:100%;height:36px;padding:0 10px;font-size:14px}.billing-conditions-amount-input{color:#166534;background:#f0fdfa;border-color:#99f6ec;font-weight:500}.billing-conditions-total-label{padding-top:4px;font-size:13px;font-weight:600}.billing-conditions-total-pct{padding-top:4px;font-size:15px;font-weight:700}.billing-conditions-total-pct--ok{color:#0ea5a0}.billing-conditions-total-pct--error{color:#dc2626}.project-modal--viewer{flex-direction:column;width:95vw;max-width:900px;height:90vh;max-height:90vh;padding:0;display:flex;overflow:hidden}.project-doc-viewer-header{flex-shrink:0;gap:12px}.project-doc-viewer-meta{gap:2px;min-width:0;display:grid}.project-doc-viewer-meta h2{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.project-doc-viewer-meta span{color:var(--opx-color-label);font-size:12px}.project-doc-viewer-body{flex:1;min-height:0}.project-doc-viewer-frame{border:none;width:100%;height:100%;display:block}.project-modal--edit{max-width:580px}.project-edit-input-suffix{border:1px solid var(--opx-color-border);background:#f4f6f8;border-radius:8px;align-items:center;width:100%;display:flex;overflow:hidden}.project-edit-input-suffix input{font:inherit;background:0 0;border:0;flex:1;min-width:0;padding:12px 13px}.project-edit-input-suffix span{color:var(--opx-color-muted);padding-right:12px;font-size:13px}.project-edit-hint{color:var(--opx-color-label);margin:4px 0 0;font-size:12px}.project-edit-readonly-green{font-weight:600;color:#166534!important;background:#f0fdfa!important;border-color:#5eead4!important}.project-modal--confirm{max-width:420px}.project-modal--client-docs{max-width:560px}.project-modal--client-docs .project-upload-block--document label{min-height:72px}.project-confirm-body{text-align:center;gap:12px;padding:22px;display:grid}.project-confirm-icon{color:#f59e0b;justify-self:center;width:40px;height:40px}.project-confirm-body p{color:var(--opx-color-ink);margin:0;font-size:15px}.project-confirm-note{color:var(--opx-color-label)!important;font-size:13px!important}.project-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.project-form__wide,.project-form__hint,.project-form__success{grid-column:1/-1}.project-form__hint,.project-form__success{color:var(--opx-color-muted);margin:0;font-size:13px;font-weight:650}.project-form__success{color:var(--opx-color-success)}.project-form button,.project-form [role=alert]{align-self:end}.project-form__new-client-prompt{background:var(--opx-color-surface-raised,#f5f7f6);border:1px solid var(--opx-color-border);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.project-form__create-client-btn{color:var(--opx-color-primary,#1a6b5a);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:13px;font-weight:650;text-decoration:underline}.project-form__new-client-indicator{background:var(--opx-color-surface-raised,#f5f7f6);border:1px solid var(--opx-color-border);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.project-form__new-client-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.project-form__cancel-client-btn{color:var(--opx-color-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px}.contacts-page{align-content:start;gap:14px;display:grid}.contacts-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.client-contact-form{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.client-contact-form__wide{grid-column:1/-1}.client-contact-form button,.client-contact-form [role=alert]{align-self:end}.client-contacts-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.client-contacts-list{align-content:start;min-width:0}.client-company-list,.contact-card-list,.relationship-list{gap:10px;display:grid}.client-company-card{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);gap:10px;padding:10px;display:grid}.client-company-card__select{border-radius:calc(var(--opx-radius) - 2px);color:var(--opx-color-ink);text-align:left;background:0 0;border:0;grid-template-columns:minmax(160px,1fr) auto;align-items:center;gap:12px;width:100%;min-height:58px;padding:4px;transition:box-shadow .14s,transform .14s;display:grid}.client-company-card__select--link,.contact-card__link{text-decoration:none}:is(.client-company-card:has(.client-company-card__select:hover),.client-company-card:has(.client-company-card__select[aria-pressed=true])){border-color:var(--opx-color-brand);box-shadow:var(--opx-shadow-row)}.client-company-card:has(.client-company-card__select[aria-pressed=true]){background:var(--opx-color-status-soft)}.client-company-card__select:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.page-header-actions,.client-contact-form__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.client-contact-filters{grid-template-columns:minmax(0,1fr) minmax(120px,160px);gap:10px;display:grid}.client-company-card__actions,.contact-card__actions{flex-wrap:wrap;gap:8px;display:flex}.client-company-card__identity,.client-company-card__meta{gap:5px;min-width:0;display:grid}.client-company-card__identity strong,.contact-card__header strong,.relationship-row__identity strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.client-company-card__identity span,.client-company-card__meta span,.contact-card__details dd{color:var(--opx-color-muted);overflow-wrap:anywhere}.client-company-card__meta{justify-items:end}.contact-card{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);gap:12px;padding:14px;display:grid}.contact-card:has(.contact-card__link:hover){border-color:var(--opx-color-brand);box-shadow:var(--opx-shadow-row)}.contact-card__link{border-radius:calc(var(--opx-radius) - 2px);color:var(--opx-color-ink);min-width:0;text-decoration:none}.contact-card__link:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.contact-card__header{justify-content:space-between;align-items:start;gap:10px;min-width:0;display:flex}.contact-card__details{gap:8px;margin:0;display:grid}.contact-card__details div{gap:2px;display:grid}.contact-card__details dt{color:var(--opx-color-label);text-transform:uppercase;font-size:12px;font-weight:800}.contact-card__details dd{margin:0;font-size:14px}.contact-card__contact-line{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.contact-card__contact-line a{color:var(--opx-color-brand-strong);overflow-wrap:anywhere;text-decoration:none}.contact-card__contact-line a:hover{text-decoration:underline}.contact-card__copy{border-radius:var(--opx-radius-control);color:var(--opx-color-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex}.contact-card__copy:hover{background:var(--opx-color-brand-quiet);border-color:var(--opx-color-status-border);color:var(--opx-color-brand-strong)}.contact-card__copy:focus-visible{box-shadow:var(--opx-focus-ring);outline:0}.contact-card__copy svg{width:14px;height:14px}.entity-detail-panel{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:start;gap:12px;display:grid}.entity-detail-panel div{align-content:start;gap:4px;min-height:58px;display:grid}.entity-detail-panel span{color:var(--opx-color-label);text-transform:uppercase;font-size:12px;font-weight:800}.entity-detail-panel strong{color:var(--opx-color-ink);overflow-wrap:anywhere}.entity-detail-panel .opx-badge{justify-self:start;width:auto;min-height:22px;padding:4px 8px}.relationship-panel{align-content:start;gap:14px}.relationship-compose{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius)}.relationship-compose summary{color:var(--opx-color-brand-strong);cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:800;display:flex}.relationship-compose summary::marker{color:var(--opx-color-muted)}.relationship-row{grid-template-columns:repeat(4,minmax(132px,1fr));align-items:end;gap:12px;display:grid}.relationship-create-form{border-top:1px solid var(--opx-color-border);grid-template-columns:repeat(2,minmax(220px,1fr));align-items:start;gap:14px;padding:14px;display:grid}.relationship-create-form__flags{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.relationship-create-form__flag{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-label);align-items:center;gap:8px;min-height:34px;padding:6px 10px;font-size:13px;font-weight:750;display:inline-flex}.relationship-create-form__flag input,.relationship-row__flag input{accent-color:var(--opx-color-brand);width:16px;height:16px;margin:0}.relationship-create-form__actions{grid-column:1/-1;justify-content:flex-start;display:flex}.relationship-row{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);padding:12px}.relationship-row__identity{align-self:center;gap:6px;min-width:0;display:grid}.relationship-row__flag{color:var(--opx-color-label);align-items:center;gap:8px;min-height:38px;font-size:13px;font-weight:750;display:flex}.relationship-row__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=820px){.app-shell{background:var(--opx-color-app);grid-template-columns:1fr}.app-sidebar{border-bottom:1px solid var(--opx-color-border);border-right:0;gap:16px}.app-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.app-main{padding:16px}.auth-page{align-items:start;padding:16px}.auth-panel.opx-panel{max-width:none}.page-panel{min-height:auto;padding:20px}.opx-page-header{flex-direction:column;align-items:start}.organizations-layout,.placeholder-grid,.client-contacts-layout{grid-template-columns:1fr}.company-option{grid-template-columns:1fr;align-items:start}.billing-condition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-condition-grid--vendor,.vendor-conditions-edit-grid{grid-template-columns:1fr}.project-vendor-row-main{grid-template-columns:1fr auto}.company-detail-summary,.client-contact-form,.client-company-card__select,.client-contact-filters,.entity-detail-panel,.project-billing-totals,.project-condition-grid,.project-form-grid,.project-form,.project-journal-summary,.project-margin-grid,.project-card__metrics,.project-ledger-row,.project-vendor-row,.project-vendor-row dl,.relationship-create-form,.relationship-row,.user-assignment-row{grid-template-columns:1fr}.project-detail-actions,.project-row-actions,.project-section-heading{flex-direction:column;align-items:stretch}.project-tabs{gap:16px;padding-inline:10px}.project-modal{max-height:94vh}.project-modal-footer{flex-direction:column-reverse}.client-company-card__meta{justify-items:start}.relationship-row__actions{justify-content:flex-start}}.bh-page{gap:18px;display:grid}.bh-header{justify-content:space-between;align-items:flex-start;display:flex}.bh-header__title{align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.bh-header__title h1{color:var(--opx-color-ink);margin:0;font-size:22px;font-weight:600}.bh-header__sub{color:var(--opx-color-muted);margin:4px 0 0 32px;font-size:13px;font-weight:400}.bh-badge{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:500}.bh-badge--direction{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.bh-back-link{color:var(--opx-color-brand);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.bh-kpi-band{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.bh-kpi-band--sm .bh-kpi{padding:14px 16px}.bh-kpi{border-radius:var(--opx-radius);border-style:solid;border-width:1px;gap:5px;padding:16px 18px;display:grid}.bh-kpi--amber{background:#fef9ec;border-color:#f5d97e}.bh-kpi--red{background:#fef2f2;border-color:#fca5a5}.bh-kpi--green{background:#f0fdfa;border-color:#5eead4}.bh-kpi--crimson{background:#fef2f2;border-color:#fca5a5}.bh-kpi--blue{background:#eff6ff;border-color:#93c5fd}.bh-kpi__label{color:currentColor;letter-spacing:.6px;opacity:.75;text-transform:uppercase;font-size:11px;font-weight:500}.bh-kpi--amber .bh-kpi__label{color:#92400e}.bh-kpi--red .bh-kpi__label{color:#991b1b}.bh-kpi--green .bh-kpi__label{color:#166534}.bh-kpi--crimson .bh-kpi__label{color:#991b1b}.bh-kpi--blue .bh-kpi__label{color:#1e40af}.bh-kpi__value{font-size:22px;font-weight:600;line-height:1.1;display:block}.bh-kpi--amber .bh-kpi__value{color:#92400e}.bh-kpi--red .bh-kpi__value{color:#991b1b}.bh-kpi--green .bh-kpi__value{color:#166534}.bh-kpi--crimson .bh-kpi__value{color:#991b1b}.bh-kpi--blue .bh-kpi__value{color:#1e40af}.bh-kpi__sub{color:var(--opx-color-muted);font-size:12px;font-weight:400}.bh-section,.bh-treso-layout{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);box-shadow:var(--opx-shadow-panel);gap:16px;padding:20px 22px;display:grid}.bh-section__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.bh-section__title{color:var(--opx-color-brand);letter-spacing:1.2px;text-transform:uppercase;align-items:center;gap:7px;margin:0;font-size:13px;font-weight:500;display:flex}.bh-section__subtitle-sm{color:var(--opx-color-muted);margin:3px 0 0;font-size:12px;font-weight:400}.bh-section__actions{align-items:center;gap:8px;display:flex}.bh-month-select{border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);width:auto;min-height:32px;padding:4px 8px;font-size:13px}.bh-btn-add{background:var(--opx-color-brand);border-radius:var(--opx-radius-control);color:#fff;cursor:pointer;font:inherit;border:0;align-items:center;gap:5px;min-height:32px;padding:5px 12px;font-size:13px;font-weight:500;transition:background-color .14s;display:inline-flex}.bh-btn-add:hover{background:var(--opx-color-brand-hover)}.bh-btn-icon{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);cursor:pointer;background:0 0;min-width:32px;min-height:32px;padding:4px 7px;font-size:14px}.bh-btn-excel{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-label);cursor:pointer;font:inherit;background:0 0;align-items:center;gap:5px;min-height:32px;padding:5px 10px;font-size:13px;display:inline-flex}.bh-btn-excel:hover{border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.bh-import-wrap{align-items:center;gap:4px;display:inline-flex;position:relative}.bh-import-hidden{display:none}.bh-btn-import{border-radius:var(--opx-radius-control);color:#6366f1;cursor:pointer;background:0 0;border:1px solid #6366f1;align-items:center;gap:5px;min-height:32px;padding:5px 10px;font-size:12px;font-weight:500;transition:background-color .12s,color .12s;display:inline-flex}.bh-btn-import:hover{background:#6366f11a}.bh-import-error{border-radius:var(--opx-radius-control);color:#dc2626;white-space:nowrap;background:#fef2f2;border:1px solid #fca5a5;padding:3px 8px;font-size:11px}.bh-btn-catalog{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-label);cursor:pointer;font:inherit;background:0 0;align-items:center;gap:5px;min-height:32px;padding:5px 10px;font-size:13px;display:inline-flex}.bh-btn-catalog:hover{border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.bh-btn-catalog--active{background:var(--opx-color-brand-soft,#eff6ff);border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.bh-catalog{border:1px solid var(--opx-color-border);background:#fafafa;border-radius:10px;margin-bottom:12px;padding:14px 16px}.bh-catalog__header{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.bh-catalog__title{color:var(--opx-color-ink);font-size:13px;font-weight:600}.bh-catalog__hint{color:var(--opx-color-muted);font-size:12px}.bh-catalog__groups{flex-direction:column;gap:12px;display:flex}.bh-catalog__group{flex-direction:column;gap:6px;display:flex}.bh-catalog__group-label{color:var(--opx-color-label);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.bh-catalog__chips{flex-wrap:wrap;gap:6px;display:flex}.bh-catalog__chip{border:1px solid var(--opx-color-border);color:var(--opx-color-ink);cursor:pointer;font:inherit;background:#fff;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.bh-catalog__chip:hover{background:var(--opx-color-brand-soft,#eff6ff);border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.bh-catalog__chip-tva{color:#0369a1;background:#e0f2fe;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:600}.bh-table-wrap{overflow-x:auto}.bh-table{border-collapse:collapse;width:100%;min-width:100%;font-size:13px;font-weight:400}.bh-table th{border-bottom:2px solid var(--opx-color-border);color:var(--opx-color-label);letter-spacing:.6px;text-align:left;text-transform:uppercase;white-space:nowrap;padding:9px 10px;font-size:11px;font-weight:500}.bh-th-r{text-align:right}.bh-th-x{width:36px}.bh-table td{border-bottom:1px solid var(--opx-color-border);vertical-align:middle;padding:6px 8px}.bh-table tr:last-child td{border-bottom:0}.bh-table tbody tr:hover{background:var(--opx-color-surface-muted)}.bh-table input,.bh-table select{min-height:30px;padding:4px 8px}.bh-table input[type=date]{max-width:130px}.bh-input-r{text-align:right}.bh-client-wrap{align-items:center;gap:6px;display:flex}.bh-project-tag{color:#065f46;white-space:nowrap;background:#d1fae5;border:1px solid #6ee7b7;border-radius:4px;flex:none;padding:2px 5px;font-size:10px;font-weight:500}.bh-td-computed{color:var(--opx-color-ink);text-align:right;white-space:nowrap;font-weight:500}.bh-td-computed strong{font-weight:600}.bh-tva-pos{color:#ca8a04;font-weight:500}.bh-zero{color:var(--opx-color-muted)}.bh-tfoot-row{background:#f0fdf9}.bh-tfoot-row td{border-top:2px solid #5eead4;padding:9px 8px}.bh-tfoot-label{color:var(--opx-color-brand);letter-spacing:.8px;text-align:right;text-transform:uppercase;font-size:12px;font-weight:500}.bh-tfoot-num{color:var(--opx-color-ink);text-align:right;white-space:nowrap;font-weight:600}.bh-tfoot-tva{color:#ca8a04;text-align:right;white-space:nowrap;font-weight:600}.bh-remove{color:var(--opx-color-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-width:26px;min-height:26px;padding:0;transition:background-color .14s,color .14s;display:inline-flex}.bh-remove:hover{background:var(--opx-color-danger-soft);border-color:var(--opx-color-danger-border);color:var(--opx-color-danger)}.bh-remove--round{border-radius:50%}.bh-treso-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.bh-treso-kpi{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);gap:4px;padding:14px 16px;display:grid}.bh-treso-kpi--featured{border-color:var(--opx-color-brand);outline:1px solid var(--opx-color-brand)}.bh-treso-kpi>span{color:var(--opx-color-muted);letter-spacing:.5px;text-transform:uppercase;font-size:11px;font-weight:500}.bh-treso-kpi>strong{color:var(--opx-color-ink);font-size:20px;font-weight:600}.bh-treso-val--green{color:#0ea5a0}.bh-treso-val--red{color:#dc2626}.bh-charts-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.bh-chart-box{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);gap:10px;padding:14px 16px;display:grid}.bh-chart-title{color:var(--opx-color-label);letter-spacing:.8px;text-transform:uppercase;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:500;display:flex}.bh-tva-alert{border-radius:var(--opx-radius);background:#fefce8;border:1px solid #fde047;justify-content:space-between;align-items:center;gap:20px;padding:14px 18px;display:flex}.bh-tva-alert__left{color:#854d0e;align-items:flex-start;gap:10px;display:flex}.bh-tva-alert__left strong{font-size:15px;font-weight:600;display:block}.bh-tva-alert__left span{color:#a16207;font-size:12px;font-weight:400}.bh-tva-alert__right{gap:24px;display:flex}.bh-tva-alert__right>div{text-align:right;gap:3px;display:grid}.bh-tva-alert__right>div>span{color:#a16207;letter-spacing:.5px;text-transform:uppercase;font-size:11px;font-weight:500}.bh-tva-alert__pos{color:#0ea5a0;font-size:15px;font-weight:600}.bh-tva-alert__neg{color:#dc2626;font-size:15px;font-weight:600}.bh-tva-alert__net{color:#854d0e;font-size:15px;font-weight:600}.bh-tva-alert__credit{color:#0d9488;font-size:15px;font-weight:600}.bh-tva-alert--credit{background:#f0fdfa;border-color:#99f6ec}.bh-tva-alert--credit .bh-tva-alert__left span,.bh-tva-alert--credit .bh-tva-alert__label{color:#166534}.bh-ht-computed{color:var(--opx-color-muted);font-size:12px;font-style:italic}.bh-autoliq-badge{color:#854d0e;letter-spacing:.4px;text-transform:uppercase;background:#fef9c3;border:1px solid #fde047;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.bh-autoliq-badge--sm{margin-right:4px;padding:1px 4px;font-size:9px}.bh-td-autoliq{text-align:center;vertical-align:middle;width:52px}.bh-autoliq-check{cursor:pointer;width:15px;height:15px}.bh-tva-alert__label{color:#a16207;letter-spacing:.8px;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:600;display:block}.bh-sort-btn{color:var(--opx-color-brand);cursor:pointer;font:inherit;font-size:inherit;background:0 0;border:none;padding:0 2px;font-weight:600}.bh-source-chip{white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.bh-source-chip--entree{color:#1d4ed8;background:#eff6ff}.bh-source-chip--sortie{color:#525252;background:#f5f5f5}.bh-td-r{text-align:right;white-space:nowrap}.bh-td-date{white-space:nowrap}.bh-td-desc{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.bh-muted-val{color:var(--opx-color-muted);font-size:12px}.bh-date-range{align-items:center;gap:6px;display:flex}.bh-date-range__label{color:var(--opx-color-muted);white-space:nowrap;font-size:12px;font-weight:500}.bh-date-range__input{border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);font:inherit;min-height:32px;padding:4px 8px;font-size:12px}.bh-date-range__sep{color:var(--opx-color-muted);font-size:13px}.bh-date-range__clear{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:4px;transition:border-color .12s,color .12s;display:flex}.bh-date-range__clear:hover{border-color:var(--opx-color-danger-border);color:var(--opx-color-danger)}.bh-treso-row:hover{background:var(--opx-color-surface-muted)}.bh-group-header{cursor:pointer;-webkit-user-select:none;user-select:none}.bh-group-header--enc{background:#f0fdfa;border-left:3px solid #40e0d0}.bh-group-header--enc:hover{background:#ccfbf8}.bh-group-header--opex{background:#fff5f5;border-left:3px solid #ef4444}.bh-group-header--opex:hover{background:#fee2e2}.bh-group-label{color:var(--opx-color-ink);align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.bh-group-toggle{color:var(--opx-color-muted);text-align:center;width:14px;font-size:12px;font-weight:700;display:inline-block}.bh-group-amt--enc{color:#0ea5a0;font-weight:600}.bh-group-amt--opex{color:#dc2626;font-weight:600}.bh-group-subtotal{border-top:1px dashed var(--opx-color-border);background:#f8fafc}.bh-group-subtotal__label{color:var(--opx-color-label);padding-left:34px;font-size:12px;font-style:italic}.bh-grand-total{background:var(--opx-color-surface-muted);border-top:2px solid var(--opx-color-border)}.bh-grand-total__label{color:var(--opx-color-ink);padding-left:12px;font-size:13px;font-weight:700}.bh-grand-total--solde{background:#f0fdfa;border-top:1px solid #99f6ec}.bh-show-more{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-brand);cursor:pointer;font:inherit;text-align:center;background:0 0;width:100%;padding:8px 0;font-size:13px;transition:background-color .12s}.bh-show-more:hover{background:var(--opx-color-surface-muted)}.bh-prev-btns{background:var(--opx-color-surface);border-bottom:1px solid var(--opx-color-border);z-index:10;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0;display:grid;position:sticky;top:0}.bh-btn-entree,.bh-btn-sortie{border-radius:var(--opx-radius-control);cursor:pointer;font:inherit;align-items:center;gap:6px;width:100%;min-height:40px;padding:9px 16px;font-size:13px;font-weight:600;transition:opacity .14s;display:flex}.bh-btn-entree{color:#fff;background:#166534;border:1px solid #166534}.bh-btn-sortie{color:#b91c1c;background:#fff0f0;border:1.5px solid #ef4444}.bh-btn-entree:hover,.bh-btn-sortie:hover{opacity:.88}.bh-chart-footer{color:var(--opx-color-muted);text-align:center;margin:6px 0 0;font-size:11px}.bh-row--project{background:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.bh-row--project{background:color-mix(in srgb, var(--opx-color-brand) 4%, transparent)}}.bh-row--project input[readonly]{color:var(--opx-color-ink);cursor:default;background:0 0;border-color:#0000}.bh-lock-icon{color:var(--opx-color-muted);opacity:.6;justify-content:center;align-items:center;display:flex}.bh-mode-static{color:var(--opx-color-muted);white-space:nowrap;font-size:12px}.bh-type-badge{white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:500}.bh-type-badge--entree{color:#166534;background:#ccfbf8}.bh-type-badge--sortie{color:#991b1b;background:#fee2e2}.bh-coming-soon{background:var(--opx-color-surface);border:1px dashed var(--opx-color-border-strong);border-radius:var(--opx-radius);place-items:center;gap:8px;padding:60px 24px;display:grid}.bh-coming-soon>span{font-size:32px}.bh-coming-soon strong{color:var(--opx-color-ink);font-size:16px;font-weight:500}.bh-coming-soon p{color:var(--opx-color-muted);margin:0;font-size:14px;font-weight:400}.bh-tb-wrap{flex-direction:column;gap:16px;display:flex}.bh-kpi-band--3{grid-template-columns:repeat(3,minmax(0,1fr))}.bh-synth-band{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.bh-synth-kpi{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);flex-direction:column;gap:6px;padding:20px 22px;display:flex}.bh-synth-kpi--enc{background:#eff6ff;border-color:#93c5fd}.bh-synth-kpi--opex{background:#fef2f2;border-color:#fca5a5}.bh-synth-kpi--net-pos{background:#f0fdfa;border-color:#5eead4}.bh-synth-kpi--net-neg{background:#fef2f2;border-color:#fca5a5}.bh-synth-kpi__header{align-items:center;gap:8px;display:flex}.bh-synth-kpi__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.bh-synth-kpi__dot--enc{background:#3b82f6}.bh-synth-kpi__dot--opex{background:#ef4444}.bh-synth-kpi__dot--net-pos{background:#40e0d0}.bh-synth-kpi__dot--net-neg{background:#ef4444}.bh-synth-kpi__label{letter-spacing:.07em;text-transform:uppercase;font-size:11px;font-weight:700}.bh-synth-kpi--enc .bh-synth-kpi__label{color:#1e40af}.bh-synth-kpi--opex .bh-synth-kpi__label{color:#991b1b}.bh-synth-kpi--net-pos .bh-synth-kpi__label{color:#166534}.bh-synth-kpi--net-neg .bh-synth-kpi__label{color:#991b1b}.bh-synth-kpi__value{color:var(--opx-color-ink);font-size:28px;font-weight:700;line-height:1.1}.bh-synth-kpi--enc .bh-synth-kpi__value{color:#1d4ed8}.bh-synth-kpi--opex .bh-synth-kpi__value{color:#dc2626}.bh-synth-kpi--net-pos .bh-synth-kpi__value{color:#0d9488}.bh-synth-kpi--net-neg .bh-synth-kpi__value{color:#dc2626}.bh-synth-kpi__sub{color:var(--opx-color-muted);font-size:12px;font-weight:400}.bh-cat-list{flex-direction:column;gap:10px;padding-top:4px;display:flex}.bh-cat-row{flex-direction:column;gap:5px;display:flex}.bh-cat-row__header{justify-content:space-between;align-items:baseline;display:flex}.bh-cat-row__name{color:var(--opx-color-label);font-size:12px;font-weight:500}.bh-cat-row__right{align-items:baseline;gap:5px;display:flex}.bh-cat-row__val{color:var(--opx-color-ink);font-size:12px;font-weight:600}.bh-cat-row__pct{color:var(--opx-color-muted);font-size:11px}.bh-cat-track{background:var(--opx-color-border);border-radius:3px;height:6px;overflow:hidden}.bh-cat-fill{border-radius:3px;height:100%;transition:width .4s}.bh-flux-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bh-flux-panel{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.bh-flux-panel__title{letter-spacing:.07em;text-transform:uppercase;color:var(--opx-color-muted);align-items:center;gap:7px;margin:0 0 8px;font-size:11px;font-weight:700;display:flex}.bh-flux-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.bh-flux-dot--in{background:#40e0d0}.bh-flux-dot--out{background:#ef4444}.bh-flux-row{border-bottom:1px solid var(--opx-color-border);align-items:baseline;gap:8px;padding:7px 0;font-size:12px;display:flex}.bh-flux-row:last-child{border-bottom:none}.bh-flux-row__date{color:var(--opx-color-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.bh-flux-row__desc{color:var(--opx-color-label);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.bh-flux-row__amt{flex-shrink:0;font-size:12px;font-weight:600}.bh-flux-row__amt--in{color:#0d9488}.bh-flux-row__amt--out{color:#dc2626}.bh-tb-empty{color:var(--opx-color-muted);text-align:center;margin:0;padding:16px 0;font-size:13px}.bh-cmp-wrap{overflow-x:auto}.bh-cmp-table{border-collapse:collapse;width:100%;font-size:12px}.bh-cmp-table thead tr{background:#1b4332}.bh-cmp-table thead th{color:#fff;letter-spacing:.5px;text-align:right;text-transform:uppercase;white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.bh-cmp-th-label{width:300px;text-align:left!important}.bh-cmp-th-num{width:140px}.bh-cmp-th-pct{width:90px}.bh-cmp-th-status{width:90px;text-align:center!important}.bh-cmp-group{background:#e8f5ef}.bh-cmp-group td{text-align:right;border-top:2px solid #b2dfdb;padding:10px 12px;font-weight:700}.bh-cmp-group-name{color:#1b4332;font-size:13px;text-align:left!important}.bh-cmp-row td{color:#555;text-align:right;border-bottom:1px solid #f0f0f0;padding:7px 12px;font-size:12px}.bh-cmp-row:nth-child(2n) td{background:#fafafa}.bh-cmp-row-name{color:#2d6a4f;text-align:left!important;padding-left:28px!important}.bh-cmp-val{text-align:right}.bh-cmp-neutral{color:#b0b0b0}.bh-cmp-ecart-pos{color:#2e7d32;font-weight:600}.bh-cmp-ecart-neg{color:#c62828;font-weight:600}.bh-cmp-status{text-align:center}.bh-cmp-ok{color:#2e7d32;font-weight:700}.bh-cmp-warn{color:#e65100;font-weight:600}.bh-cmp-over{color:#c62828;font-weight:700}.bh-cmp-opex-row td{color:#777;text-align:right;background:#f4fbf7;border-bottom:1px solid #e8f5e9;padding:5px 12px;font-size:11px}.bh-cmp-opex-name{color:#555;font-style:italic;text-align:left!important;padding-left:44px!important}.bh-cmp-opex-amount{color:#c62828;font-weight:600}.bh-cmp-unassign-btn{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px}.bh-cmp-unassign-btn:hover{color:#c62828;background:#fee2e2}.bh-cmp-total td{color:#fff;text-align:right;background:#1b4332;padding:10px 12px;font-size:13px;font-weight:700}.bh-cmp-total td:first-child{text-align:left}.bh-cmp-unbudgeted{background:#fffde7;border:1px solid #ffe082;border-radius:8px;margin-top:20px;padding:16px 20px}.bh-cmp-unbudgeted-header{color:#856404;align-items:center;gap:8px;margin-bottom:14px;display:flex}.bh-cmp-unbudgeted-title{color:#856404;font-size:13px;font-weight:600}.bh-cmp-unbudgeted-sub{color:#a57a00;font-size:11px}.bh-cmp-unbudgeted-table{border-collapse:collapse;width:100%}.bh-cmp-unbudgeted-table tbody tr{border-bottom:1px solid #e8e8e8;transition:background .1s}.bh-cmp-unbudgeted-table tbody tr:last-child{border-bottom:none}.bh-cmp-unbudgeted-table tbody tr:hover{background:#fff8e1!important}.bh-cmp-unbudgeted-row--alt{background:#f7f7f7}.bh-cmp-unbudgeted-table td{padding:8px 10px}.bh-cmp-unbudgeted-name{color:#1b4332;font-size:13px;font-weight:500}.bh-cmp-unbudgeted-amount{color:#c62828;text-align:right;width:100px;font-size:13px;font-weight:600}.bh-cmp-unbudgeted-ecart{color:#c62828;text-align:right;width:100px;font-size:12px}.bh-cmp-unbudgeted-tag{color:#856404;text-align:center;width:100px;font-size:11px}.bh-cmp-unbudgeted-action{text-align:right;width:110px}.bh-cmp-affecter-btn{color:#856404;cursor:pointer;background:#fff;border:1.5px solid #ffe082;border-radius:6px;padding:5px 12px;font-size:11px;font-weight:600;transition:background .15s}.bh-cmp-affecter-btn:hover{background:#fff9c4}.bh-cmp-modal-backdrop{z-index:900;background:#00000073;position:fixed;inset:0}.bh-cmp-modal{z-index:901;background:#fff;border-radius:12px;width:90%;max-width:460px;padding:24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0000002e}.bh-cmp-modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.bh-cmp-modal-title{color:#1b4332;font-size:15px;font-weight:700}.bh-cmp-modal-expense{background:#fffde7;border-radius:8px;margin-bottom:16px;padding:12px 14px}.bh-cmp-modal-expense-label{color:#1b4332;font-size:14px;font-weight:600}.bh-cmp-modal-expense-amount{color:#c62828;margin-top:4px;font-size:13px}.bh-cmp-modal-section-label{color:#888;letter-spacing:.8px;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:700}.bh-cmp-modal-select{color:#333;border:1px solid #d0d0d0;border-radius:6px;width:100%;padding:9px 12px;font-size:13px}.bh-cmp-modal-preview{background:#f4f6f9;border:1px solid #dde3ec;border-radius:8px;margin-top:12px;padding:10px 14px}.bh-cmp-modal-preview-title{color:#444;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700}.bh-cmp-modal-preview-grid{grid-template-columns:1fr auto;gap:4px 12px;display:grid}.bh-cmp-modal-preview-label{color:#666;font-size:12px}.bh-cmp-modal-preview-val{color:#333;text-align:right;font-size:12px;font-weight:600}.bh-cmp-modal-preview-after{color:#c62828}.bh-cmp-modal-preview-ok{color:#2e7d32}.bh-cmp-modal-preview-over{color:#c62828}.bh-cmp-modal-info{color:#1565c0;background:#e3f2fd;border-radius:6px;margin-top:12px;padding:8px 12px;font-size:11px;line-height:1.5}.bh-cmp-modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.bh-cmp-modal-cancel{color:#555;cursor:pointer;background:#f5f5f5;border:none;border-radius:6px;padding:8px 18px;font-size:13px}.bh-cmp-modal-confirm{color:#fff;cursor:pointer;background:#1b4332;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:600}.bh-cmp-modal-confirm:disabled{cursor:not-allowed;background:#a0a0a0}.bh-prev-wrap{overflow-x:auto}.bh-prev-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.bh-prev-table thead tr{background:#1b4332}.bh-prev-table thead th{color:#fff;letter-spacing:.5px;text-align:right;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;padding:8px 6px;font-size:11px;font-weight:600;overflow:hidden}.bh-prev-th-poste{width:170px;text-align:left!important}.bh-prev-th-cat{width:140px;text-align:left!important}.bh-prev-th-month{width:80px}.bh-prev-th-total{text-align:right;width:116px}.bh-prev-th-x{width:100px}.bh-prev-row-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:4px;padding:0 6px!important;display:flex!important}.bh-prev-fill-btn{border:1px solid var(--opx-color-control-border);color:var(--opx-color-muted);cursor:pointer;opacity:0;background:0 0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:opacity .12s,background .12s,border-color .12s;display:flex}.bh-prev-row:hover .bh-prev-fill-btn,.bh-prev-row--rev:hover .bh-prev-fill-btn{opacity:1}.bh-prev-fill-btn:hover{background:var(--opx-color-brand-quiet);border-color:var(--opx-color-brand);color:var(--opx-color-brand);opacity:1}.bh-prev-fill-backdrop{z-index:999;position:fixed;inset:0}.bh-prev-fill-pop{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);z-index:1000;flex-direction:column;gap:10px;min-width:260px;padding:14px 16px;display:flex;position:fixed;box-shadow:0 8px 28px #12262724}.bh-prev-fill-pop__title{color:var(--opx-color-ink);margin:0;font-size:13px;font-weight:600}.bh-prev-fill-pop__row{align-items:center;gap:8px;display:flex}.bh-prev-fill-pop__input{border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);font:inherit;text-align:right;flex:1;padding:6px 10px;font-size:14px;font-weight:600}.bh-prev-fill-pop__input:focus{border-color:var(--opx-color-brand);outline:none}.bh-prev-fill-pop__unit{color:var(--opx-color-muted);white-space:nowrap;font-size:12px}.bh-prev-fill-pop__actions{gap:8px;display:flex}.bh-prev-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bh-prev-table thead th:first-child,.bh-prev-table tbody td:first-child{position:sticky;left:0}.bh-prev-table thead th:first-child{z-index:3}.bh-prev-table tbody td:first-child{z-index:2}.bh-prev-table thead th:first-child:after,.bh-prev-table tbody td:first-child:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000001a,#0000);width:6px;position:absolute;top:0;bottom:0;right:-6px}.bh-prev-table thead tr th:first-child{background:#1b4332}.bh-prev-group-hdr td:first-child{background:#1e5c3e}.bh-prev-group-hdr:hover td:first-child{background:#215e3e}.bh-prev-rev-hdr td:first-child{background:#0e5e74}.bh-prev-rev-hdr:hover td:first-child{background:#0a4d60}.bh-prev-client-hdr td:first-child{background:#1a7a93}.bh-prev-client-hdr:hover td:first-child{background:#156780}.bh-prev-row td:first-child{background:var(--opx-color-surface)}.bh-prev-row:hover td:first-child{background:var(--opx-color-surface-muted)}.bh-prev-row--rev td:first-child{background:#f0fafa}.bh-prev-row--rev:hover td:first-child{background:#e0f4f7}.bh-prev-charges-row td:first-child{background:#fef2f2}.bh-prev-flux-net td:first-child{background:#eff6ff}.bh-prev-fin-hdr td:first-child{background:#1e3a5f}.bh-prev-fin-row td:first-child{background:#e8f0fe}.bh-prev-fin-entree td:first-child{background:#eff6ff}.bh-prev-cumul-row td:first-child{background:#065f46}.bh-prev-table td.bh-prev-group-total,.bh-prev-table td.bh-prev-client-total,.bh-prev-table td.bh-prev-flux-val,.bh-prev-table td.bh-prev-cumul-val,.bh-prev-table td.bh-tfoot-num{text-align:right;text-overflow:clip;width:80px;overflow:visible}.bh-prev-table td.bh-prev-total,.bh-prev-table td.bh-prev-group-total--ann,.bh-prev-table td.bh-prev-client-total--ann,.bh-prev-table td.bh-prev-flux-val--total,.bh-prev-table td.bh-prev-cumul-val--total,.bh-prev-table td.bh-tfoot-num:last-of-type{text-align:right;text-overflow:clip;white-space:nowrap;width:116px;overflow:visible}.bh-prev-group-hdr{cursor:pointer;-webkit-user-select:none;user-select:none;background:#1e5c3e}.bh-prev-group-hdr:hover{background:#215e3e}.bh-prev-group-hdr td{border-bottom:2px solid #ffffff1a;padding:8px 6px}.bh-prev-group-name{color:#fff;font-size:13px;font-weight:600}.bh-prev-group-total{color:#5eead4;text-align:right;white-space:nowrap;font-size:12px;font-weight:500}.bh-prev-group-total--ann{color:#fff;font-weight:700}.bh-prev-gzero{color:#ffffff47}.bh-prev-row td{border-bottom:1px solid var(--opx-color-border);vertical-align:middle;padding:4px}.bh-prev-row:hover{background:var(--opx-color-surface-muted)}.bh-prev-poste-input{color:var(--opx-color-ink);font:inherit;background:0 0;border:1px solid #0000;border-radius:3px;width:100%;min-width:130px;padding:3px 5px;font-size:12px;transition:border-color .12s}.bh-prev-poste-input:hover{border-color:var(--opx-color-border)}.bh-prev-poste-input:focus{border-color:var(--opx-color-brand);outline:none}.bh-prev-cat{color:var(--opx-color-muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:11px;overflow:hidden}.bh-prev-month-td{width:80px;padding:2px 3px!important}.bh-prev-month-input{border:1px solid var(--opx-color-control-border);box-sizing:border-box;font:inherit;text-align:right;border-radius:3px;width:100%;padding:3px 4px;font-size:12px}.bh-prev-month-input:focus{border-color:var(--opx-color-brand);outline:none}.bh-prev-total{text-align:right;white-space:nowrap}.bh-prev-dialog{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.bh-prev-dialog__input{border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);font:inherit;min-width:180px;min-height:32px;padding:4px 8px;font-size:13px}.bh-prev-dialog__input:focus{border-color:var(--opx-color-brand);outline:none}.bh-prev-dialog__select{border:1px solid var(--opx-color-control-border);border-radius:var(--opx-radius-control);font:inherit;min-width:200px;min-height:32px;padding:4px 8px;font-size:13px}.bh-prev-zoom{align-items:center;gap:6px;display:flex}.bh-prev-zoom input[type=range]{accent-color:var(--opx-color-brand);width:68px}.bh-prev-zoom span{color:var(--opx-color-muted);text-align:right;min-width:34px;font-size:12px}.bh-btn-add--outline{border:1px solid var(--opx-color-brand);color:var(--opx-color-brand);background:0 0}.bh-btn-add--outline:hover{background:var(--opx-color-brand)}@supports (color:color-mix(in lab, red, red)){.bh-btn-add--outline:hover{background:color-mix(in srgb, var(--opx-color-brand) 8%, transparent)}}.bh-btn-icon--active{background:var(--opx-color-brand);border-color:var(--opx-color-brand);color:#fff}.bh-prev-rev-hdr{cursor:pointer;-webkit-user-select:none;user-select:none;background:#0e5e74}.bh-prev-rev-hdr:hover{background:#0a4d60}.bh-prev-rev-hdr td{color:#fff;letter-spacing:.04em;text-transform:uppercase;padding:7px 10px;font-size:12px;font-weight:700}.bh-prev-client-hdr{cursor:pointer;-webkit-user-select:none;user-select:none;background:#1a7a93}.bh-prev-client-hdr:hover{background:#156780}.bh-prev-client-hdr td{color:#fff;padding:5px 10px 5px 22px;font-size:11px;font-weight:600}.bh-prev-client-total{text-align:right;white-space:nowrap;font-size:11px;font-weight:600;color:#fff!important;padding:5px 8px!important}.bh-prev-client-total--ann{font-weight:700}.bh-prev-client-actions{justify-content:center;align-items:center;gap:4px;display:flex;padding:0 4px!important}.bh-prev-client-add{color:#fff;cursor:pointer;background:#fff3;border:1px solid #ffffff80;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex}.bh-prev-client-add:hover{background:#ffffff59}.bh-prev-row--rev td{background:#f0fafa;padding-left:28px!important}.bh-prev-row--rev:hover td{background:#e0f4f7}.bh-prev-flux-net{border-top:2px solid #3b82f6;border-bottom:2px solid #3b82f6}.bh-prev-flux-net td{background:#eff6ff;padding:7px 10px}.bh-prev-flux-label{color:#1e40af;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.bh-prev-flux-val{text-align:right;white-space:nowrap;font-size:12px;font-weight:600}.bh-prev-flux-pos{color:#0d9488}.bh-prev-flux-neg{color:#a33131}.bh-prev-flux-val--total{font-size:12px;font-weight:700}.bh-prev-cumul-row td{background:#065f46;padding:7px 10px}.bh-prev-cumul-label{color:#fff;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.bh-prev-cumul-val{text-align:right;white-space:nowrap;font-size:12px;font-weight:700}.bh-prev-cumul-val--total{font-size:13px}.bh-prev-cumul-row .bh-prev-flux-pos{color:#6ee7b7}.bh-prev-cumul-row .bh-prev-flux-neg{color:#fca5a5}.bh-prev-solde-banque{align-items:center;gap:6px;margin-top:4px;display:flex}.bh-prev-solde-label{color:#065f46;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bh-prev-solde-input{color:#065f46;text-align:right;background:#f0fdfa;border:1px solid #6ee7b7;border-radius:4px;width:120px;padding:3px 7px;font-size:12px;font-weight:700}.bh-prev-solde-unit{color:#065f46;font-size:11px;font-weight:600}.bh-prev-fin-hdr td{color:#bfdbfe;background:#1e3a5f;padding:6px 10px}.bh-prev-fin-row td{background:#f0f7ff;padding:4px 6px}.bh-prev-fin-label{color:#1e40af;text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600;padding-left:14px!important}.bh-prev-fin-entree td{background:#eff6ff;border-top:1px solid #bfdbfe;border-bottom:1px solid #bfdbfe}.bh-prev-tva-row td{background:#fefce8}.bh-tva-hint{color:#78350f;text-transform:none;letter-spacing:0;margin-left:4px;font-size:10px;font-weight:400}.bh-prev-tva-net-row td{background:#fef3c7;border-top:1px solid #fcd34d}.bh-prev-tva-net-label{color:#92400e!important;font-weight:700!important}.bh-prev-tva-btn{color:#9ca3af;cursor:pointer;letter-spacing:.03em;background:#f9fafb;border:1px solid #d1d5db;border-radius:3px;padding:2px 5px;font-size:10px;font-weight:700}.bh-prev-tva-btn--on{color:#0d9488;background:#ccfbf8;border-color:#0ea5a0}.bh-prev-month-td{position:relative}.bh-prev-month-td--al{background:#fffbeb!important}.bh-prev-month-al-btn{color:#d1d5db;cursor:pointer;letter-spacing:.04em;text-align:center;background:0 0;border:1px solid #e5e7eb;border-radius:2px;width:100%;margin-top:1px;padding:0 2px;font-size:8px;font-weight:700;line-height:12px;display:block}.bh-prev-month-al-btn--on{color:#92400e;background:#fef3c7;border-color:#f59e0b}.bh-prev-poste-cell{display:table-cell}.bh-prev-charges-row{border-top:2px double #dc2626}.bh-prev-charges-row td{background:#fef2f2;padding:7px 10px}.bh-prev-charges-label{color:#991b1b;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.bh-prev-charges-row .bh-prev-total{color:#991b1b;font-weight:700}@media (width<=900px){.bh-kpi-band,.bh-treso-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bh-charts-row,.bh-prev-btns{grid-template-columns:1fr}.bh-tva-alert{flex-direction:column;align-items:flex-start}}.db-page{border-radius:var(--opx-radius);isolation:isolate;background:radial-gradient(90% 55% at 50% 115%,#008c741f 0%,#0000 60%),radial-gradient(70% 40% at 85% 105%,#00a08217 0%,#0000 55%),linear-gradient(#f6fbfa 0%,#eef6f4 45%,#e0f0ec 100%);flex-direction:column;gap:24px;padding:24px;display:flex;position:relative}.db-page:before{content:"";opacity:.05;pointer-events:none;z-index:-1;background:url(/operix-watermark.svg) 50% 36%/340px no-repeat;position:absolute;inset:0}.db-treso-panel{border:1px solid var(--opx-color-border);box-shadow:var(--opx-shadow-panel);background:#fff;border-radius:10px;padding:20px 24px}.db-treso-panel__header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.db-treso-title{color:var(--opx-color-ink);margin:0;font-size:16px;font-weight:600}.db-treso-count{color:var(--opx-color-muted);font-size:13px;font-weight:400}.db-loading{color:var(--opx-color-muted);padding:8px 0;font-size:13px}.db-kpi-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.db-kpi{border:1px solid var(--opx-color-border);background:#fff;border-top:3px solid #0000;border-radius:8px;flex-direction:column;gap:3px;padding:14px 16px;display:flex}.db-kpi__top{align-items:center;gap:7px;margin-bottom:4px;display:flex}.db-kpi__icon-box{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.db-kpi__icon-box--blue{background:#3b82f6}.db-kpi__icon-box--purple{background:#8b5cf6}.db-kpi__icon-box--orange{background:#f97316}.db-kpi__icon-box--red{background:#ef4444}.db-kpi__icon-box--yellow{background:#eab308}.db-kpi__icon-box--green{background:#40e0d0}.db-kpi__icon-box--rose{background:#f43f5e}.db-kpi__label{letter-spacing:.05em;text-transform:uppercase;color:var(--opx-color-muted);font-size:10px;font-weight:500;line-height:1.2}.db-kpi__value{color:var(--opx-color-ink);font-size:16px;font-weight:600;line-height:1.25}.db-kpi__rows{border-top:1px solid var(--opx-color-border);flex-direction:column;gap:2px;margin-top:8px;padding-top:6px;display:flex}.db-kpi__row{color:var(--opx-color-muted);justify-content:space-between;gap:6px;font-size:11px;font-weight:400;display:flex}.db-kpi__row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.db-kpi__row-val{text-align:right;flex-shrink:0;font-weight:500}.db-kpi__sub{color:var(--opx-color-muted);margin-top:-1px;font-size:11px;font-weight:400}.db-kpi--blue{border-top-color:#3b82f6}.db-kpi--blue .db-kpi__value{color:#1d4ed8}.db-kpi--purple{border-top-color:#8b5cf6}.db-kpi--purple .db-kpi__value{color:#6d28d9}.db-kpi--orange{border-top-color:#f97316}.db-kpi--orange .db-kpi__value{color:#c2410c}.db-kpi--red{border-top-color:#ef4444}.db-kpi--red .db-kpi__value{color:#b91c1c}.db-kpi--yellow{border-top-color:#eab308}.db-kpi--yellow .db-kpi__value{color:#a16207}.db-kpi--green{border-top-color:#40e0d0}.db-kpi--green .db-kpi__value{color:#0d9488}.db-kpi--rose{border-top-color:#f43f5e}.db-kpi--rose .db-kpi__value,.db-kpi--neg .db-kpi__value{color:#be123c}.db-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.db-card{border:1px solid var(--opx-color-border);box-shadow:var(--opx-shadow-panel);cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;transition:box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.db-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0000001f}.db-card__stretched-link{z-index:1;position:absolute;inset:0}.db-card__mast{background:var(--opx-color-brand-strong);color:#fff;flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.db-card__watermark{color:#ffffff12;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:-.02em;font-size:72px;font-weight:800;line-height:1;position:absolute;top:-8px;right:10px}.db-card__mast-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.db-card__code{letter-spacing:.08em;opacity:.85;font-size:11px;font-weight:600}.db-card__status{letter-spacing:.04em;color:#ffffffe0;background:#ffffff1f;border:1px solid #ffffff38;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:500}.db-card__name{font-size:14px;font-weight:600;line-height:1.3}.db-card__client{opacity:.75;font-size:12px;font-weight:400}.db-card__gauges{border-bottom:1px solid var(--opx-color-border);flex-direction:column;gap:10px;padding:12px 16px;display:flex}.db-card__gauge-bar{flex-direction:column;gap:4px;display:flex}.db-card__gauge-label-row{justify-content:space-between;align-items:center;display:flex}.db-card__gauge-label{letter-spacing:.04em;text-transform:uppercase;color:var(--opx-color-muted);font-size:10px;font-weight:600}.db-card__gauge-pct{color:var(--opx-color-ink);font-size:10px;font-weight:700}.db-card__gauge-track{background:var(--opx-color-border);border-radius:3px;height:8px;overflow:hidden}.db-card__gauge-fill{border-radius:3px;height:100%;transition:width .4s}.db-card__gauge-fill--fourn{background:#0ea5a0}.db-card__gauge-fill--enc{background:#7c3aed}.db-card__gauge-vals{justify-content:space-between;align-items:baseline;display:flex}.db-card__gauge-vals strong{color:var(--opx-color-ink);font-size:11px;font-weight:600}.db-card__gauge-vals small{color:var(--opx-color-muted);font-size:11px;font-weight:400}.db-card__section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--opx-color-muted);margin-bottom:2px;font-size:9px;font-weight:700}.db-card__finance{border-bottom:1px solid var(--opx-color-border);flex-direction:column;gap:6px;padding:12px 16px;display:flex}.db-card__finance-row{color:var(--opx-color-ink);justify-content:space-between;align-items:baseline;font-size:12px;font-weight:400;display:flex}.db-card__finance-row span{color:var(--opx-color-muted)}.db-card__finance-row strong{font-weight:600}.db-card__finance-row--orange{color:#c2410c}.db-card__margin{background:var(--opx-color-surface-muted);border-bottom:1px solid var(--opx-color-border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.db-card__margin-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.db-card__margin-title{letter-spacing:.08em;text-transform:uppercase;color:var(--opx-color-muted);font-size:9px;font-weight:700}.db-card__ecart{background:var(--opx-color-danger-soft);color:var(--opx-color-danger);border:1px solid var(--opx-color-danger-border);white-space:nowrap;border-radius:20px;padding:3px 8px;font-size:10px;font-weight:600}.db-card__margin-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.db-card__margin-grid>div{flex-direction:column;gap:3px;display:flex}.db-card__margin-grid>div>span{color:var(--opx-color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:500}.db-card__margin-grid>div>strong{color:var(--opx-color-ink);font-size:13px;font-weight:600}.db-card__margin-grid>div>small{color:var(--opx-color-muted);font-size:10px;font-weight:400}.db-card__margin-bar-track{background:var(--opx-color-border);border-radius:3px;height:6px;overflow:hidden}.db-card__margin-bar-fill{border-radius:2px;height:100%;transition:width .4s}.db-card__margin-bar-fill--prev{background:#8b5cf6}.db-card__margin-bar-fill--real{background:#0ea5a0}.db-neg{color:#be123c}.db-slot-empty{background:var(--opx-color-surface-muted);border:1.5px dashed var(--opx-color-border-strong);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:280px;padding:24px;transition:background .15s,border-color .15s;display:flex}.db-slot-empty:has(.db-slot-empty__add:hover){background:var(--opx-color-brand-quiet);border-color:var(--opx-color-brand)}.db-slot-empty__add{color:inherit;flex-direction:column;align-items:center;gap:10px;text-decoration:none;display:flex}.db-slot-empty__plus{background:var(--opx-color-surface);border:1.5px solid var(--opx-color-border-strong);width:44px;height:44px;color:var(--opx-color-muted);border-radius:50%;justify-content:center;align-items:center;font-size:26px;font-weight:300;line-height:1;transition:background .15s,border-color .15s,color .15s;display:flex}.db-slot-empty__add:hover .db-slot-empty__plus{background:var(--opx-color-brand-soft);border-color:var(--opx-color-brand);color:var(--opx-color-brand)}.db-slot-empty__label{color:var(--opx-color-muted);text-align:center;font-size:13px;font-weight:500}.db-header{justify-content:space-between;align-items:flex-end;display:flex}.db-header__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--opx-color-brand);margin-bottom:3px;font-size:11px;font-weight:700;display:block}.db-header__title{color:var(--opx-color-ink);margin:0;font-size:24px;font-weight:700;line-height:1.15}.db-header__meta{color:var(--opx-color-muted);align-items:center;gap:6px;padding-bottom:4px;font-size:13px;font-weight:500;display:flex}.db-hero-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.db-hero-card{border:1px solid var(--opx-color-border);box-shadow:var(--opx-shadow-panel);background:#fff;border-left:4px solid #0000;border-radius:10px;flex-direction:column;gap:6px;padding:20px 22px;display:flex}.db-hero-card--green{border-left-color:#40e0d0}.db-hero-card--orange{border-left-color:#f97316}.db-hero-card--purple{border-left-color:#8b5cf6}.db-hero-card--red{border-left-color:#ef4444}.db-hero-card--yellow{border-left-color:#eab308}.db-hero-card--blue{border-left-color:#3b82f6}.db-hero-card__top{align-items:center;gap:9px;display:flex}.db-hero-card__icon{border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.db-hero-card--green .db-hero-card__icon{color:#0d9488;background:#ccfbf8}.db-hero-card--orange .db-hero-card__icon{color:#c2410c;background:#ffedd5}.db-hero-card--purple .db-hero-card__icon{color:#6d28d9;background:#ede9fe}.db-hero-card--red .db-hero-card__icon{color:#b91c1c;background:#fee2e2}.db-hero-card--yellow .db-hero-card__icon{color:#a16207;background:#fef9c3}.db-hero-card--blue .db-hero-card__icon{color:#1d4ed8;background:#dbeafe}.db-hero-card__label{letter-spacing:.06em;text-transform:uppercase;color:var(--opx-color-muted);font-size:11px;font-weight:700}.db-hero-card__value{color:var(--opx-color-ink);font-size:26px;font-weight:700;line-height:1.15}.db-hero-card--green .db-hero-card__value{color:#0d9488}.db-hero-card--orange .db-hero-card__value{color:#c2410c}.db-hero-card--purple .db-hero-card__value{color:#6d28d9}.db-hero-card--red .db-hero-card__value{color:#b91c1c}.db-hero-card--yellow .db-hero-card__value{color:#a16207}.db-hero-card__sub{color:var(--opx-color-muted);margin-top:2px;font-size:12px;font-weight:400}.db-secondary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.db-secondary-card{border:1px solid var(--opx-color-border);background:#fff;border-top:3px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:14px 16px;display:flex}.db-secondary-card--blue{border-top-color:#3b82f6}.db-secondary-card--purple{border-top-color:#8b5cf6}.db-secondary-card--red{border-top-color:#ef4444}.db-secondary-card--yellow{border-top-color:#eab308}.db-secondary-card__icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.db-secondary-card--blue .db-secondary-card__icon{color:#1d4ed8;background:#dbeafe}.db-secondary-card--purple .db-secondary-card__icon{color:#6d28d9;background:#ede9fe}.db-secondary-card--red .db-secondary-card__icon{color:#b91c1c;background:#fee2e2}.db-secondary-card--yellow .db-secondary-card__icon{color:#a16207;background:#fef9c3}.db-secondary-card__body{flex-direction:column;gap:1px;min-width:0;display:flex}.db-secondary-card__label{letter-spacing:.06em;text-transform:uppercase;color:var(--opx-color-muted);font-size:10px;font-weight:700}.db-secondary-card__value{font-size:16px;font-weight:700}.db-secondary-card--blue .db-secondary-card__value{color:#1d4ed8}.db-secondary-card--purple .db-secondary-card__value{color:#6d28d9}.db-secondary-card--red .db-secondary-card__value{color:#b91c1c}.db-secondary-card--yellow .db-secondary-card__value{color:#a16207}.db-section{flex-direction:column;gap:14px;display:flex}.db-section__header{justify-content:space-between;align-items:center;display:flex}.db-section__title{color:var(--opx-color-ink);align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.db-section__count{background:var(--opx-color-brand-soft);min-width:22px;height:22px;color:var(--opx-color-brand-label);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.db-section__action{color:var(--opx-color-brand);background:var(--opx-color-brand-quiet);border:1px solid var(--opx-color-brand-soft);border-radius:6px;padding:5px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .14s,color .14s,border-color .14s}.db-section__action:hover{background:var(--opx-color-brand);border-color:var(--opx-color-brand);color:#fff}.db-card--open{border-left:3px solid #3b82f6}.db-card--risk{border-left:3px solid #f97316}.db-card--complete{border-left:3px solid #40e0d0}.db-card__status--open{background:#60a5fa38;border-color:#60a5fa66}.db-card__status--risk{background:#fb923c38;border-color:#fb923c66}.db-card__status--complete{background:#4ade802e;border-color:#4ade8059}.db-card__ecart--pos{background:var(--opx-color-status-soft);color:var(--opx-color-success);border-color:var(--opx-color-status-border)}.doc-hub{flex-direction:column;gap:32px;padding:0 0 32px;display:flex}.doc-hub-header{border-bottom:1px solid var(--opx-color-border);justify-content:space-between;align-items:flex-start;padding-bottom:8px;display:flex}.doc-hub-header h2{color:var(--opx-color-heading);align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:700;display:flex}.doc-hub-header h2 svg{color:var(--opx-color-brand);flex-shrink:0;width:18px;height:18px}.doc-hub-header>div>span{color:var(--opx-color-muted);font-size:13px}.doc-hub-section{flex-direction:column;gap:12px;display:flex}.doc-hub-section-title{color:var(--opx-color-heading);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:7px;margin:0;font-size:13px;font-weight:600;display:flex}.doc-hub-section-count{background:var(--opx-color-brand-soft);color:var(--opx-color-brand);border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1}.doc-hub-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.doc-hub-card{border:1px solid var(--opx-color-border);background:#fff;border-radius:10px;flex-direction:column;gap:6px;min-width:0;padding:14px 16px 12px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.doc-hub-card--accepted{border-color:#0ea5a0;box-shadow:0 0 0 1px #0ea5a022}.doc-hub-card-preview{all:unset;cursor:pointer;flex-direction:column;gap:6px;width:100%;min-width:0;display:flex}.doc-hub-card-preview:hover .doc-hub-card-name,.doc-hub-card-preview:focus-visible .doc-hub-card-name{color:var(--opx-color-brand)}.doc-hub-badge-accepted{color:#0ea5a0;letter-spacing:.03em;background:#ccfbf8;border-radius:20px;align-items:center;gap:4px;width:fit-content;padding:2px 8px 2px 5px;font-size:11px;font-weight:700;display:inline-flex}.doc-hub-accept-btn{align-self:flex-start;margin-top:4px}.doc-hub-accept-btn--active{color:#fff!important;background:#0ea5a0!important;border-color:#0ea5a0!important}.doc-upload-dropzone{background:var(--opx-color-surface);border:2px dashed var(--opx-color-border);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;transition:border-color .15s;display:flex}.doc-upload-dropzone:hover{border-color:var(--opx-color-brand)}.doc-upload-dropzone svg{color:var(--opx-color-muted);width:24px;height:24px}.doc-upload-dropzone span{color:var(--opx-color-heading);font-size:13px;font-weight:500}.doc-upload-dropzone small{color:var(--opx-color-muted);font-size:11px}.doc-hub-card-vendor{letter-spacing:.03em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.doc-hub-card-name{color:var(--opx-color-heading);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.4;display:block;overflow:hidden}.doc-hub-card-footer{align-items:center;gap:8px;margin-top:2px;display:flex}.doc-hub-card-date{color:var(--opx-color-muted);flex:1;font-size:11px}.doc-hub-badge-pdf{color:#dc2626;letter-spacing:.05em;background:#fee2e2;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}@media (width<=1100px){.doc-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.doc-hub-grid{grid-template-columns:1fr}}@media (width<=1280px){.db-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.db-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.db-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.db-project-grid{grid-template-columns:1fr}}.planning{gap:var(--opx-space-5);padding:var(--opx-space-5);flex-direction:column;display:flex}.planning__header{align-items:flex-start;gap:var(--opx-space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.planning__header-left{gap:var(--opx-space-2);flex-direction:column;display:flex}.planning__back{color:var(--opx-color-muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.planning__back:hover{color:var(--opx-color-brand)}.planning__title-row{align-items:center;gap:var(--opx-space-3);display:flex}.planning__title{margin:0;font-size:20px;font-weight:700}.planning__count{background:var(--opx-color-brand-soft);color:var(--opx-color-brand-label);border-radius:99px;padding:2px 10px;font-size:12px;font-weight:650}.planning__controls{gap:var(--opx-space-2);flex-wrap:wrap;display:flex}.planning__status{color:var(--opx-color-muted);padding:var(--opx-space-5) 0;margin:0;font-size:14px}.planning__status--error{color:var(--opx-color-danger)}.planning__chart{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);overflow:auto visible}.planning__chart-head{border-bottom:1px solid var(--opx-color-border);background:var(--opx-color-surface-chrome);z-index:1;align-items:stretch;height:36px;display:flex;position:sticky;top:0}.planning__months{flex:1;position:relative;overflow:hidden}.planning__month{color:var(--opx-color-muted);letter-spacing:.03em;white-space:nowrap;padding:0 4px;font-size:11px;font-weight:600;position:absolute;top:50%;left:0;transform:translateY(-50%)}.planning__today-tick{background:var(--opx-color-danger);width:2px;position:absolute;top:0;bottom:0}.planning__rows{flex-direction:column;display:flex}.planning__row{border-bottom:1px solid var(--opx-color-border);align-items:stretch;min-height:48px;display:flex}.planning__row:last-child{border-bottom:none}.planning__row-label{border-right:1px solid var(--opx-color-border);min-width:200px;padding:var(--opx-space-2) var(--opx-space-3);flex-direction:column;justify-content:center;gap:2px;width:200px;display:flex}.planning__row-label a{flex-direction:column;gap:1px;display:flex}.planning__row-label a:hover .planning__row-name{color:var(--opx-color-brand)}.planning__row-code{color:var(--opx-color-muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:650}.planning__row-name{color:var(--opx-color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.planning__row-client{color:var(--opx-color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.planning__row-track{flex:1;position:relative;overflow:hidden}.planning__bar{opacity:.85;border-radius:3px;min-width:4px;position:absolute;top:10px;bottom:10px}.planning__payment-marker{pointer-events:auto;z-index:2;background:#0f766e;border:2px solid #fff;border-radius:999px;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 7px #0f172a38}.planning__today-line{background:var(--opx-color-danger);opacity:.7;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.planning-layout{align-items:flex-start;gap:var(--opx-space-5);display:flex}.planning-calendar{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);flex:1;min-width:0;overflow:hidden}.planning-cal-header{background:var(--opx-color-surface-chrome);border-bottom:1px solid var(--opx-color-border);align-items:center;gap:var(--opx-space-2);padding:var(--opx-space-3) var(--opx-space-4);display:flex}.planning-cal-title{color:var(--opx-color-ink);text-align:center;text-transform:capitalize;flex:1;font-size:15px;font-weight:650}.planning-cal-nav{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-ink);cursor:pointer;background:0 0;padding:2px 10px;font-size:18px;line-height:1;transition:background .12s}.planning-cal-nav:hover{background:var(--opx-color-brand-soft)}.planning-cal-today-btn{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-brand);cursor:pointer;background:0 0;padding:4px 10px;font-size:12px;font-weight:600;transition:background .12s}.planning-cal-today-btn:hover{background:var(--opx-color-brand-soft)}.planning-cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.planning-cal-weekday{background:var(--opx-color-surface-muted);border-bottom:1px solid var(--opx-color-border);border-right:1px solid var(--opx-color-border);color:var(--opx-color-muted);letter-spacing:.05em;padding:6px var(--opx-space-2);text-align:center;text-transform:uppercase;font-size:11px;font-weight:650}.planning-cal-weekday:last-child{border-right:none}.planning-cal-cell{border-bottom:1px solid var(--opx-color-border);border-right:1px solid var(--opx-color-border);min-height:84px;padding:var(--opx-space-1) var(--opx-space-2);flex-direction:column;gap:2px;display:flex}.planning-cal-cell:nth-child(7n){border-right:none}.planning-cal-cell--empty{background:var(--opx-color-surface-muted)}.planning-cal-cell--today{background:var(--opx-color-brand-quiet)}.planning-cal-daynum{color:var(--opx-color-ink);align-self:flex-start;margin-bottom:2px;font-size:12px;font-weight:600}.planning-cal-cell--today .planning-cal-daynum{background:var(--opx-color-brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.planning-cal-event{color:#fff;cursor:default;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:2px 5px;font-size:10px;font-weight:600;display:block;overflow:hidden}.planning-cal-overflow{color:var(--opx-color-muted);padding:1px 0;font-size:10px;font-weight:600}.planning-sidebar{gap:var(--opx-space-3);flex-direction:column;flex-shrink:0;width:284px;display:flex}.planning-sidebar-title{color:var(--opx-color-ink);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:11px;font-weight:650}.planning-sidebar-empty{color:var(--opx-color-muted);font-size:13px}.planning-event-card{background:var(--opx-color-surface);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius);align-items:flex-start;gap:var(--opx-space-3);padding:var(--opx-space-3);display:flex}.planning-event-card--overdue{background:var(--opx-color-danger-soft);border-color:var(--opx-color-danger-border)}.planning-event-card--urgent{background:var(--opx-color-warning-soft);border-color:var(--opx-color-warning-border)}.planning-event-badge{color:#fff;text-align:center;border-radius:6px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;padding:5px 6px;display:flex}.planning-event-badge-month{letter-spacing:.05em;font-size:9px;font-weight:700;line-height:1}.planning-event-badge-day{font-size:20px;font-weight:700;line-height:1.1}.planning-event-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.planning-event-name{color:var(--opx-color-ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.planning-event-type{color:var(--opx-color-muted);font-size:11px}.planning-event-meta{align-items:center;gap:var(--opx-space-2);margin-top:4px;display:flex}.planning-event-kind{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);color:var(--opx-color-muted);text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:650}.planning-event-urgency{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:650}.planning-event-urgency--ok{background:var(--opx-color-brand-soft);color:var(--opx-color-brand-label)}.planning-event-urgency--urgent{background:var(--opx-color-warning-soft);color:var(--opx-color-warning)}.planning-event-urgency--overdue{background:var(--opx-color-danger-soft);color:var(--opx-color-danger)}@media (width<=900px){.planning-layout{flex-direction:column}.planning-sidebar{width:100%}}.planning__view-toggle{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);display:flex;overflow:hidden}.planning__view-btn{color:var(--opx-color-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .12s,color .12s;display:flex}.planning__view-btn:hover{background:var(--opx-color-brand-soft);color:var(--opx-color-brand)}.planning__view-btn--active{background:var(--opx-color-brand);color:#fff}.planning-layout--global{margin-top:var(--opx-space-4);padding:0 var(--opx-space-4) var(--opx-space-4)}.planning-cal-project-tag{letter-spacing:.04em;vertical-align:middle;background:#0003;border-radius:2px;margin-right:3px;padding:0 3px;font-size:9px;font-weight:700}.planning-event-project-row{align-items:center;gap:var(--opx-space-2);margin-bottom:2px;display:flex}.planning-event-project-code{color:#fff;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700}.planning-event-project-name{color:var(--opx-color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.planning-cal-event--milestone{opacity:.92;border:1.5px dashed #fff9}.planning-cal-event--payment{box-shadow:inset 0 0 0 1.5px #ffffff73}.planning-event-card--milestone{background:var(--opx-color-surface-muted);border:1.5px dashed var(--opx-color-border);border-left:3px solid var(--opx-color-brand);border-radius:var(--opx-radius-card);align-items:center;gap:var(--opx-space-2);padding:var(--opx-space-2);display:flex}.planning-event-card--payment{border-left:3px solid #0f766e}.planning-event-badge--payment{box-shadow:inset 0 0 0 1.5px #fff6}.planning-event-kind--payment{color:#0f766e;background:#ccfbf1;border-color:#99f6e4}.planning-milestone-delete{border-radius:var(--opx-radius-control);color:var(--opx-color-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0 6px;transition:color .15s,background .15s;display:flex}.planning-milestone-delete:hover{background:var(--opx-color-danger-soft,#fee2e2);color:var(--opx-color-danger)}.planning-cal-event--clickable{cursor:pointer}.planning-cal-event--clickable:hover{filter:brightness(1.12)}.planning-event-card--clickable{border:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;width:100%;display:flex}.planning-event-card--clickable:hover{filter:brightness(.97)}.project-modal--milestone-detail{max-width:460px}.milestone-detail-view{padding:22px}.milestone-detail-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.milestone-detail-color{border-radius:50%;flex-shrink:0;width:18px;height:18px;display:inline-block}.milestone-detail-date{color:var(--opx-color-label);font-variant-numeric:tabular-nums;font-size:14px}.milestone-detail-project-name{color:var(--opx-color-muted);font-size:13px}.milestone-detail-notes-block{background:var(--opx-color-surface-muted);border-left:3px solid var(--opx-color-brand);border-radius:6px;padding:12px 14px}.milestone-detail-notes-label{color:var(--opx-color-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:600;display:block}.milestone-detail-notes{color:var(--opx-color-text);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.6}.milestone-detail-footer{justify-content:space-between}.planning-sidebar-header{align-items:center;gap:var(--opx-space-2);justify-content:space-between;margin-bottom:2px;display:flex}.planning-sidebar-download{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);color:var(--opx-color-muted);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:flex}.planning-sidebar-download:hover{background:var(--opx-color-surface-muted);color:var(--opx-color-ink)}.planning-sidebar-tabs{background:var(--opx-color-surface-muted);border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-control);gap:2px;padding:2px;display:flex}.planning-sidebar-tab{border-radius:calc(var(--opx-radius-control) - 1px);color:var(--opx-color-muted);cursor:pointer;letter-spacing:.03em;background:0 0;border:none;flex:1;padding:4px 8px;font-size:11px;font-weight:600;transition:background .15s,color .15s}.planning-sidebar-tab--active{background:var(--opx-color-surface);color:var(--opx-color-ink);box-shadow:0 1px 3px #00000014}.planning-event-card-row{align-items:flex-start;gap:var(--opx-space-2);width:100%;display:flex}.planning-event-card-actions{flex-direction:column;flex-shrink:0;gap:4px;margin-left:auto;display:flex}.planning-event-delete-btn{border-radius:var(--opx-radius-control);color:var(--opx-color-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:color .15s,background .15s;display:flex}.planning-event-delete-btn:hover{background:var(--opx-color-danger-soft,#fee2e2);color:var(--opx-color-danger)}.planning-event-delete-btn--confirm{background:var(--opx-color-danger-soft,#fee2e2);color:var(--opx-color-danger);width:auto;padding:0 5px;font-size:10px;font-weight:700}.planning-sidebar-group{border:1px solid var(--opx-color-border);border-radius:var(--opx-radius-card);overflow:hidden}.planning-sidebar-group-header{background:var(--opx-color-surface-muted);cursor:pointer;font:inherit;align-items:center;gap:var(--opx-space-2);text-align:left;border:none;width:100%;padding:8px 10px;font-size:12px;font-weight:700;display:flex}.planning-sidebar-group-header:hover{background:var(--opx-color-surface)}.planning-sidebar-group-code{color:#fff;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.planning-sidebar-group-count{color:var(--opx-color-muted);margin-left:auto;font-size:11px;font-weight:500}.planning-sidebar-group-chevron{color:var(--opx-color-muted);flex-shrink:0;transition:transform .15s}.planning-sidebar-group-chevron--open{transform:rotate(90deg)}.planning-sidebar-group-body{border-top:1px solid var(--opx-color-border);gap:var(--opx-space-2);padding:var(--opx-space-2);flex-direction:column;display:flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
