/*! tailwindcss v4.2.2 | 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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease: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;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-100:oklch(96.2% .044 156.743);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-2xl:42rem;--container-3xl:48rem;--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;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--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);--color-primary:#b34a35;--color-primary-dark:#8a3624;--color-danger:#b54235}}@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{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-1{top:calc(var(--spacing) * 1)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-20{bottom:calc(var(--spacing) * 20)}.left-0{left:calc(var(--spacing) * 0)}.left-1{left:calc(var(--spacing) * 1)}.left-1\/2{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.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}}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-5{height:calc(var(--spacing) * 5)}.h-32{height:calc(var(--spacing) * 32)}.w-5{width:calc(var(--spacing) * 5)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-primary{background-color:var(--color-primary)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.text-left{text-align:left}.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)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-400{color:var(--color-gray-400)}.text-gray-700{color:var(--color-gray-700)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-orange-500{color:var(--color-orange-500)}.text-primary{color:var(--color-primary)}.text-purple-700{color:var(--color-purple-700)}.text-red-500{color:var(--color-red-500)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-600{color:var(--color-slate-600)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--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)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-900:hover{background-color:var(--color-gray-900)}.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:inline{display:inline}}}:root{--sos-brand-50:#fbeee9;--sos-brand-100:#f5e2db;--sos-brand-200:#ecc7bb;--sos-brand-300:#dca492;--sos-brand-400:#c87a5c;--sos-brand-500:#c25e44;--sos-brand-600:#b34a35;--sos-brand-700:#8a3624;--sos-brand-800:#6b2a1b;--sos-brand-900:#4a1d12;--primary:var(--sos-brand-600);--primary-hover:var(--sos-brand-700);--primary-active:var(--sos-brand-800);--primary-soft:var(--sos-brand-100);--primary-border:var(--sos-brand-200);--on-primary:#fff;--n-0:#fff;--n-25:#fffaf3;--n-50:#fdf4e9;--n-100:#f6f1ea;--n-150:#ead9c4;--n-200:#d9c3a6;--n-300:#b39e85;--n-400:#8a7a6c;--n-500:#6e5e51;--n-600:#4a3f37;--n-700:#34291f;--n-800:#261d16;--n-900:#1d1714;--n-1000:#100b08;--ink:#1d1714;--ink-2:#4a3f37;--ink-3:#8a7a6c;--line:#ead9c4;--line-strong:#d9c3a6;--surface:#fffaf3;--surface-2:#fdf4e9;--bg:#f6f1ea;--brand:#b34a35;--brand-deep:#8a3624;--brand-soft:#f5e2db;--bg-page:var(--n-100);--bg-canvas:var(--n-25);--bg-elevated:#fff;--bg-hover:var(--n-50);--bg-active:var(--n-150);--bg-muted:var(--n-50);--bg-inverse:var(--n-900);--border-subtle:var(--n-150);--border:var(--n-150);--border-strong:var(--n-200);--border-focus:var(--primary);--text-primary:var(--n-900);--text-secondary:var(--n-600);--text-tertiary:var(--n-400);--text-disabled:var(--n-300);--text-inverse:var(--n-0);--text-link:#2f5d8a;--success:#5b7a3f;--success-soft:#eef3e4;--success-border:#c8d6a8;--warning:#b07a1f;--warning-soft:#faf0d8;--warning-border:#e8d29a;--info:#2f5d8a;--info-soft:#e7f0fa;--info-border:#bcd1e8;--danger:#b54235;--danger-soft:#fbe4df;--danger-border:#e7b6ac;--accent-blue:#2f5d8a;--accent-green:#5b7a3f;--accent-amber:#b07a1f;--rail-bg:#1d1714;--rail-text:#c9b89f;--rail-strong:#fff;--rail-hover:#ffffff0d;--font-sans:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:16px;--fs-2xl:18px;--fs-3xl:22px;--fs-4xl:28px;--fs-5xl:36px;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--letter-tight:-.01em;--letter-caps:.04em;--sp-0:0;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:10px;--sp-6:12px;--sp-8:16px;--sp-10:20px;--sp-12:24px;--sp-14:28px;--sp-16:32px;--sp-20:40px;--sp-24:48px;--sp-32:64px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:14px;--r-2xl:16px;--r-full:999px;--shadow-xs:0 1px 0 0 #2b1c0f0a;--shadow-sm:0 1px 2px #2b1c0f0f, 0 0 0 1px #2b1c0f0a;--shadow-md:0 1px 0 #2b1c0f0a, 0 6px 18px -10px #2b1c0f2e;--shadow-lg:0 12px 30px -10px #2b1c0f40, 0 2px 8px -2px #2b1c0f14;--shadow-modal:0 30px 60px -20px #0006;--shadow-focus:0 0 0 3px var(--primary-soft);--ease-out:cubic-bezier(.2, .8, .2, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.26s;--sidebar-w:200px;--sidebar-w-collapsed:56px;--topbar-h:56px;--row-h-compact:32px;--row-h:40px;--control-h:32px;--control-h-sm:28px;--control-h-lg:36px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}::selection{background:var(--primary);color:var(--on-primary)}.t-display{font-size:var(--fs-4xl);line-height:var(--lh-tight);letter-spacing:var(--letter-tight);font-weight:var(--fw-semibold)}.t-h1{font-size:var(--fs-3xl);line-height:var(--lh-tight);letter-spacing:var(--letter-tight);font-weight:var(--fw-semibold)}.t-h2{font-size:var(--fs-2xl);line-height:var(--lh-snug);font-weight:var(--fw-semibold)}.t-h3{font-size:var(--fs-xl);line-height:var(--lh-snug);font-weight:var(--fw-semibold)}.t-h4{font-size:var(--fs-lg);line-height:var(--lh-snug);font-weight:var(--fw-semibold)}.t-body{font-size:var(--fs-md);line-height:var(--lh-normal)}.t-body-sm{font-size:var(--fs-sm);line-height:var(--lh-normal)}.t-caption{font-size:var(--fs-xs);line-height:var(--lh-snug);color:var(--text-tertiary)}.t-mono{font-family:var(--font-mono);font-feature-settings:"ss01", "ss02", "calt"}.t-caps{text-transform:uppercase;letter-spacing:var(--letter-caps);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-tertiary)}.t-muted{color:var(--text-secondary)}.t-dim{color:var(--text-tertiary)}.btn{justify-content:center;align-items:center;gap:var(--sp-4);height:var(--control-h);padding:0 var(--sp-8);border-radius:var(--r-md);color:var(--text-primary);font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;display:inline-flex}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn[disabled],.btn.is-disabled{opacity:.5;pointer-events:none}.btn-sm{height:var(--control-h-sm);padding:0 var(--sp-6);font-size:var(--fs-sm)}.btn-lg{height:var(--control-h-lg);padding:0 var(--sp-10);font-size:var(--fs-lg)}.btn-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-secondary{background:var(--bg-canvas);border-color:var(--border);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--bg-canvas);color:var(--danger);border-color:var(--danger-border)}.btn-danger:hover{background:var(--danger-soft)}.btn-icon{width:var(--control-h);height:var(--control-h);flex-shrink:0;padding:0}.btn-icon.btn-sm{width:var(--control-h-sm);height:var(--control-h-sm)}.btn-link{height:auto;color:var(--text-link);font-weight:var(--fw-medium);background:0 0;border:none;padding:0}.btn-link:hover{text-decoration:underline}.field{gap:var(--sp-3);flex-direction:column;display:flex}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.field-hint{font-size:var(--fs-xs);color:var(--text-tertiary)}.field-error{font-size:var(--fs-xs);color:var(--danger)}.input,.select,.textarea{height:var(--control-h);padding:0 var(--sp-6);background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-md);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);align-items:center;width:100%;font-family:inherit;display:flex}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.textarea{height:auto;padding:var(--sp-6);resize:vertical;min-height:80px;line-height:var(--lh-normal)}.input-sm,.select-sm{height:var(--control-h-sm);padding:0 var(--sp-5);font-size:var(--fs-sm)}.input.is-error,.select.is-error,.textarea.is-error{border-color:var(--danger)}.input-group{background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--r-md);height:var(--control-h);padding:0 var(--sp-5);align-items:center;gap:var(--sp-4);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);display:flex}.input-group:focus-within{border-color:var(--primary);box-shadow:var(--shadow-focus)}.input-group .input{background:0 0;border:none;height:100%;padding:0}.input-group .input:focus{box-shadow:none}.input-group .icon{color:var(--text-tertiary);flex-shrink:0}.input-group .kbd-hint{color:var(--text-tertiary);font-size:var(--fs-xs);flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.check{appearance:none;border:1.5px solid var(--border-strong);border-radius:var(--r-xs);background:var(--bg-canvas);cursor:pointer;width:16px;height:16px;transition:all var(--dur-fast) var(--ease-out);flex-shrink:0;place-items:center;display:inline-grid}.check:checked{background:var(--primary);border-color:var(--primary)}.check:checked:after{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8.5 7 12 13 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:9px;height:9px}.check.radio{border-radius:var(--r-full)}.check.radio:checked{background:var(--primary)}.check.radio:checked:after{content:"";border-radius:var(--r-full);background:var(--on-primary);background-image:none;width:6px;height:6px}.check:focus-visible{box-shadow:var(--shadow-focus);outline:none}.toggle{background:var(--n-300);border-radius:var(--r-full);cursor:pointer;width:32px;height:18px;transition:background var(--dur-fast) var(--ease-out);border:none;flex-shrink:0;position:relative}.toggle:after{content:"";background:var(--n-0);border-radius:var(--r-full);width:14px;height:14px;transition:transform var(--dur-fast) var(--ease-out);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle.on{background:var(--primary)}.toggle.on:after{transform:translate(14px)}.badge{align-items:center;gap:var(--sp-3);height:20px;padding:0 var(--sp-5);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-subtle);white-space:nowrap;display:inline-flex}.badge.solid{background:var(--n-900);color:var(--n-0);border-color:#0000}.badge.primary{background:var(--primary-soft);color:var(--sos-brand-800);border-color:var(--primary-border)}.badge.success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.badge.warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.badge.info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.status{border-radius:var(--r-full);letter-spacing:.02em;white-space:nowrap;background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-subtle);align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.status .dot,.status .bullet{border-radius:var(--r-full);background:currentColor;width:6px;height:6px}.status.todo{background:var(--info-soft);color:#1f4a78;border-color:var(--info-border)}.status.sent,.status.success{background:var(--success-soft);color:#345020;border-color:var(--success-border)}.status.alarm{background:var(--danger-soft);color:#8a2418;border-color:var(--danger-border)}.status.alarm .dot{background:var(--danger);animation:1.6s ease-in-out infinite pulse}.status.warn,.status.wait{background:var(--warning-soft);color:#6e4a0d;border-color:var(--warning-border)}.status.info .dot{background:var(--info)}.status.idle .dot{background:var(--text-tertiary)}@keyframes pulse{50%{opacity:.5}}.stage{align-items:center;gap:var(--sp-4);height:22px;padding:0 var(--sp-5) 0 var(--sp-4);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);background:var(--bg-muted);border:1px solid var(--border-subtle);color:var(--text-secondary);display:inline-flex}.stage:before{content:"";border-radius:var(--r-full);background:currentColor;width:6px;height:6px}.avatar{border-radius:var(--r-full);background:var(--n-200);width:24px;height:24px;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.02em;flex-shrink:0;place-items:center;display:inline-grid}.avatar.sm{width:20px;height:20px;font-size:9px}.avatar.lg{width:32px;height:32px;font-size:var(--fs-sm)}.avatar.xl{width:40px;height:40px;font-size:var(--fs-md)}.card{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md)}.card-padded{padding:var(--sp-12)}.card-header{padding:var(--sp-6) var(--sp-10);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;min-height:40px;display:flex}.card-body{padding:var(--sp-10)}.card-row{padding:var(--sp-6) var(--sp-10);border-bottom:1px solid var(--border-subtle);align-items:baseline;gap:var(--sp-10);display:flex}.card-row:last-child{border-bottom:none}.card-row .label{width:120px;color:var(--text-tertiary);font-size:var(--fs-sm);flex-shrink:0}.card-row .value{color:var(--text-primary);font-size:var(--fs-md);flex:1}.kbd{min-width:18px;height:18px;font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--text-tertiary);background:#fff;justify-content:center;align-items:center;padding:0 5px;font-size:10.5px;line-height:1;display:inline-flex}.tabs{padding:var(--sp-5) var(--sp-10);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:2px;display:flex}.tab{align-items:center;gap:var(--sp-4);height:28px;padding:0 var(--sp-6);font-size:var(--fs-md);color:var(--text-secondary);cursor:pointer;border-radius:var(--r-md);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;display:inline-flex;position:relative}.tab:hover{color:var(--text-primary);background:var(--bg-hover)}.tab.active{color:var(--text-primary);background:var(--bg-active);font-weight:var(--fw-medium)}.tab .count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;letter-spacing:0}.tab.active .count{color:var(--text-secondary)}.tab .leading-dot{border-radius:var(--r-full);flex-shrink:0;width:6px;height:6px}.tabs-sep{background:var(--border-subtle);width:1px;height:16px;margin:0 var(--sp-4)}.tab.tab-alarm.active{color:var(--danger);background:#b91c1c14}.tab.tab-alarm.active .count{color:var(--danger)}.btn.btn-alarm-on{color:var(--danger);background:#b91c1c14}.btn.btn-alarm-on:hover{background:#b91c1c24}.segmented{background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--r-md);gap:2px;padding:3px;display:inline-flex}.segmented button{height:26px;padding:0 var(--sp-6);color:var(--text-secondary);font-size:var(--fs-sm);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:var(--sp-3);background:0 0;border:none;font-weight:500;display:inline-flex}.segmented button:hover{color:var(--text-primary)}.segmented button.active{background:var(--ink);color:#fff;box-shadow:0 1px #0000001a}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;background:var(--bg-page);height:100vh;display:grid;overflow:hidden}.app-shell>.topbar{grid-area:1/1/auto/-1}.app-shell>.sidebar{grid-area:2/1}.app-shell>.app-main{grid-area:2/2;height:100%}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{background:var(--rail-bg);color:var(--rail-text);border-right:0;flex-direction:column;padding:10px 0 0;display:flex;overflow:hidden}.sidebar-brand{align-items:center;gap:var(--sp-6);padding:var(--sp-8) var(--sp-10);height:var(--topbar-h);border-bottom:1px solid #ffffff0f;display:flex}.sidebar-brand svg,.sidebar-brand img{flex-shrink:0;width:auto;height:22px}.brand-mark{border-radius:var(--r-md);background:var(--brand);color:#fff;letter-spacing:.04em;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:800;display:grid;box-shadow:inset 0 -2px #0000002e}.brand-text{flex-direction:column;min-width:0;line-height:1.1;display:flex}.brand-text b{letter-spacing:.02em;color:#fff;font-size:13px;font-weight:700}.brand-text span{color:#c9b89fb3;letter-spacing:.12em;text-transform:uppercase;font-size:10.5px}.sidebar .nav-item{border-radius:0;grid-template-columns:44px 1fr auto;align-items:center;gap:0;height:44px;padding:0;display:grid}.sidebar .nav-item>svg{justify-self:center;width:18px;height:18px}.sidebar .nav-item .label{letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700}.sidebar .nav-item .dot{margin-right:14px}.sidebar .nav-item.active{box-shadow:inset 4px 0 #ffd9b5}.sidebar-collapsed .sidebar .nav-item{grid-template-columns:1fr;width:100%;margin:0;padding:0}.sidebar-collapsed .sidebar .nav-item>svg{justify-self:center}.sidebar-section{padding:var(--sp-6) var(--sp-6) var(--sp-2)}.sidebar-section-title{font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:#c9b89f99;padding:var(--sp-4) var(--sp-4);font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:0;display:flex;overflow-y:auto}.rail-bottom{border-top:1px solid #ffffff0f;margin-top:auto;padding-top:6px}.nav-item{align-items:center;gap:var(--sp-6);padding:0 var(--sp-6);border-radius:var(--r-sm);height:36px;color:var(--rail-text);font-size:var(--fs-md);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--rail-hover);color:var(--rail-strong)}.nav-item .icon{color:currentColor;flex-shrink:0;width:16px;height:16px}.nav-item .label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-item .count{font-family:var(--font-mono);font-size:var(--fs-xs);color:#c9b89f99;font-variant-numeric:tabular-nums}.nav-item.active{background:var(--primary);color:#fff;font-weight:600;box-shadow:inset 4px 0 #ffd9b5}.nav-item.active .count{color:#ffffffd9}.nav-item.active:before{display:none}.nav-item .dot{border-radius:var(--r-full);background:var(--danger);width:6px;height:6px;box-shadow:0 0 0 3px #b5423540}.nav-item.active .dot{background:#ffd9b5;box-shadow:0 0 0 3px #fff3}.sidebar-footer{padding:var(--sp-6);align-items:center;gap:var(--sp-6);color:var(--rail-text);border-top:1px solid #ffffff0f;display:flex}.sidebar-footer .avatar{color:#fff;background:linear-gradient(135deg,#c87a5c,#8a3624)}.sidebar-footer .user-info{flex-direction:column;flex:1;gap:2px;min-width:0;line-height:1.2;display:flex}.sidebar-footer .user-name{font-size:var(--fs-md);color:#fff;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.sidebar-footer .status{letter-spacing:0;text-transform:none;white-space:nowrap;background:0 0;border:none;align-items:center;gap:5px;padding:0;font-size:11px;font-weight:500;display:inline-flex}.sidebar-footer .status .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.sidebar-footer .status-online{color:#8fc377}.sidebar-footer .status-online .dot{background:#5fb73e;box-shadow:0 0 0 3px #5fb73e33}.sidebar-footer .status-offline{color:#e2806f}.sidebar-footer .status-offline .dot{background:var(--danger)}.sidebar-footer .status-pending{color:#e2b06f}.sidebar-footer .status-pending .dot{background:var(--warning);animation:1.6s ease-in-out infinite sidebar-status-pulse}.sidebar-footer .footer-actions{align-items:center;gap:var(--sp-3);flex-shrink:0;display:inline-flex}.sidebar-footer .footer-actions .btn-ghost{color:var(--rail-text);background:0 0;border-color:#0000}.sidebar-footer .footer-actions .btn-ghost:hover{background:var(--rail-hover);color:#fff}@keyframes sidebar-status-pulse{0%,to{opacity:1}50%{opacity:.4}}.sidebar-collapsed .sidebar-section-title,.sidebar-collapsed .nav-item .label,.sidebar-collapsed .nav-item .count,.sidebar-collapsed .brand-text,.sidebar-collapsed .sidebar-footer .user-info,.sidebar-collapsed .sidebar-footer .footer-actions{display:none}.sidebar-collapsed .nav-item{justify-content:center;width:32px;margin:0 auto;padding:0}.sidebar-collapsed .sidebar-brand{padding:var(--sp-6);justify-content:center}.sidebar-collapsed .sidebar-section{padding:var(--sp-6) 0 var(--sp-2)}.sidebar-collapsed .nav-item.active:before{left:0}.sidebar-collapsed .sidebar-footer{justify-content:center}.sidebar-collapsed .sidebar-footer .avatar{position:relative}.sidebar-collapsed .sidebar-footer .avatar:after{content:"";border-radius:var(--r-full);width:10px;height:10px;box-shadow:0 0 0 2px var(--rail-bg);background:#5fb73e;position:absolute;bottom:-2px;right:-2px}.sidebar-collapsed .sidebar-footer[data-status=offline] .avatar:after{background:var(--danger)}.sidebar-collapsed .sidebar-footer[data-status=pending] .avatar:after{background:var(--warning);animation:1.6s ease-in-out infinite sidebar-status-pulse}.app-main{flex-direction:column;min-width:0;display:flex;overflow:hidden}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--line);z-index:5;flex-shrink:0;align-items:center;gap:18px;padding:0 22px 0 16px;display:flex}.topbar .brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.topbar .brand .brand-text b{color:var(--ink)}.topbar .brand .brand-text span{color:var(--ink-3)}.breadcrumb{color:var(--ink-2);align-items:center;gap:8px;margin-left:14px;font-size:13px;display:flex}.breadcrumb .sep{color:var(--line-strong)}.breadcrumb .current{color:var(--ink);font-weight:600}.top-search{align-items:center;width:360px;max-width:36vw;display:flex;position:relative}.top-search .icon{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.top-search-input{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-lg);width:100%;color:var(--ink);outline:none;padding:8px 56px 8px 36px;font-family:inherit;font-size:13px;transition:border-color .12s,background .12s}.top-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);background:#fff}.top-search .kbd-hint{pointer-events:none;gap:3px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.btn-new{background:var(--brand);color:#fff;border:1px solid var(--brand-deep);border-radius:var(--r-lg);cursor:pointer;align-items:center;gap:8px;padding:8px 12px 8px 10px;font-family:inherit;font-size:13px;font-weight:700;transition:background .12s;display:inline-flex;box-shadow:0 1px #0000000f}.btn-new:hover{background:var(--brand-deep)}.btn-new:focus-visible{box-shadow:0 0 0 3px var(--brand-soft);outline:none}.page-header{padding:var(--sp-10) var(--sp-12);justify-content:space-between;align-items:flex-end;gap:var(--sp-12);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);display:flex}.page-header h1{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--letter-tight);margin:0}.page-header .subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:2px}.page-header .actions{gap:var(--sp-4);align-items:center;display:flex}.filter-bar{align-items:center;gap:var(--sp-6);padding:var(--sp-6) var(--sp-12);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.filter-bar .input-group{width:280px;max-width:100%}.filter-chip{align-items:center;gap:var(--sp-4);height:26px;padding:0 var(--sp-5);border:1px dashed var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;background:0 0;display:inline-flex}.filter-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.filter-chip.active{background:var(--bg-canvas);color:var(--text-primary);border-style:solid;border-color:var(--border)}.filter-chip.active .value{color:var(--text-primary);font-weight:var(--fw-medium)}.filter-chip .key{color:var(--text-tertiary)}.filter-pop{display:inline-flex;position:relative}.filter-menu{z-index:20;min-width:180px;max-height:280px;padding:var(--sp-3);background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md,0 6px 16px #0000001f);flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.filter-menu-item{text-align:left;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:space-between;align-items:center;display:flex}.filter-menu-item:hover{background:var(--bg-muted)}.filter-menu-item.active{background:var(--primary-soft);color:var(--text-primary);font-weight:var(--fw-medium)}.create-menu{display:inline-flex;position:relative}.create-menu-panel{z-index:30;min-width:220px;padding:var(--sp-3);background:var(--bg-canvas);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md,0 6px 16px #0000001f);flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.create-menu-item{align-items:center;gap:var(--sp-4);text-align:left;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap;background:0 0;border:0;display:flex}.create-menu-item:hover{background:var(--bg-muted)}.create-fab-wrap{display:none}.create-fab{border-radius:var(--r-full);background:var(--primary);width:56px;height:56px;color:var(--n-0);cursor:pointer;z-index:60;border:0;justify-content:center;align-items:center;transition:transform .15s,background .15s;display:inline-flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 18px #00000038}.create-fab:hover{background:var(--primary-hover)}.create-fab.is-open{transform:rotate(45deg)}.create-sheet-overlay{z-index:70;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.create-sheet{background:var(--bg-canvas);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);width:100%;max-width:480px;padding:var(--sp-6) var(--sp-5) var(--sp-8);gap:var(--sp-2);padding-bottom:max(var(--sp-8), env(safe-area-inset-bottom));flex-direction:column;display:flex}.create-sheet-handle{border-radius:var(--r-full);background:var(--border);width:40px;height:4px;margin-bottom:var(--sp-4);align-self:center}.create-sheet-item{align-items:center;gap:var(--sp-5);padding:var(--sp-6) var(--sp-5);border-radius:var(--r-md);font-size:var(--fs-md);color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;display:flex}.create-sheet-item:hover{background:var(--bg-muted)}.sheet-enter-active,.sheet-leave-active{transition:opacity .18s}.sheet-enter-active .create-sheet,.sheet-leave-active .create-sheet{transition:transform .22s cubic-bezier(.2,.7,.2,1)}.sheet-enter-from,.sheet-leave-to{opacity:0}.sheet-enter-from .create-sheet,.sheet-leave-to .create-sheet{transform:translateY(100%)}@media (width<=768px){.create-fab-wrap{display:block}.topbar .create-menu{display:none}}.table{border-collapse:separate;border-spacing:0;background:var(--bg-canvas);width:100%}.table th{text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--letter-caps);color:var(--text-tertiary);padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-muted);z-index:1;white-space:nowrap;height:32px;position:sticky;top:0}.table td{padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-md);vertical-align:middle;height:var(--row-h-compact)}.table tbody tr{transition:background var(--dur-fast) var(--ease-out);cursor:pointer}.table tbody tr:hover{background:var(--bg-muted)}.table tbody tr.active{background:var(--primary-soft)}.table tbody tr.active td:first-child{box-shadow:inset 2px 0 0 var(--primary)}.table .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.toolbar{padding:var(--sp-5) var(--sp-12);border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);justify-content:space-between;align-items:center;gap:var(--sp-6);display:flex}.toolbar .group{align-items:center;gap:var(--sp-4);display:flex}.divider{background:var(--border-subtle);border:none;height:1px;margin:0}.empty{padding:var(--sp-32);justify-content:center;align-items:center;gap:var(--sp-6);text-align:center;flex-direction:column;display:flex}.empty .icon-wrap{border-radius:var(--r-md);background:var(--bg-muted);width:40px;height:40px;color:var(--text-tertiary);place-items:center;display:grid}.empty h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin:0}.empty p{color:var(--text-tertiary);font-size:var(--fs-sm);max-width:320px;margin:0}.kanban{gap:var(--sp-8);padding:var(--sp-10);background:var(--bg-canvas);flex:1;min-height:0;display:flex;overflow-x:auto}.kanban-col{background:var(--bg-page);border-radius:var(--r-md);border:1px solid var(--border-subtle);flex-direction:column;width:280px;min-width:280px;max-height:100%;display:flex}.kanban-col .col-head{padding:var(--sp-6);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.kanban-col .col-head h4{font-size:var(--fs-sm);font-weight:var(--fw-semibold);align-items:center;margin:0;display:flex}.kanban-col .col-head .count{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--fs-xs);background:var(--bg-canvas);border-radius:var(--r-xs);padding:1px 6px}.kanban-col .col-body{padding:var(--sp-6);gap:var(--sp-6);flex-direction:column;display:flex;overflow-y:auto}.kanban-card{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-6);cursor:pointer;transition:border-color var(--dur-fast), box-shadow var(--dur-fast)}.kanban-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.kanban-card.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.kanban-card .num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary)}.kanban-card .name{font-weight:var(--fw-semibold);font-size:var(--fs-md);margin-top:2px}.kanban-card .meta{gap:var(--sp-4);color:var(--text-tertiary);font-size:var(--fs-xs);margin-top:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.kanban-card .meta svg{vertical-align:middle;margin-right:2px}.page-body{background:var(--bg-page);flex:1;overflow-y:auto}.page-body-padded{padding:var(--sp-12)}.hstack{align-items:center;gap:var(--sp-4);display:flex}.vstack{gap:var(--sp-4);flex-direction:column;display:flex}.spacer,.grow{flex:1}.icon-16{width:16px;height:16px}.icon-14{width:14px;height:14px}.icon-12{width:12px;height:12px}.overlay{z-index:100;pointer-events:auto;justify-content:flex-end;display:flex;position:fixed;inset:0}.overlay.overlay-left{justify-content:flex-start}.overlay-backdrop{-webkit-backdrop-filter:blur(6px)saturate(80%);background:#1d17148c;position:absolute;inset:0}.drawer{background:var(--bg-canvas);border-left:1px solid var(--border-subtle);height:100vh;box-shadow:var(--shadow-lg);will-change:transform;flex-direction:column;width:520px;min-width:0;max-width:100vw;display:flex;position:relative}.drawer-sm{width:380px}.drawer-lg{width:720px}.drawer-xl{width:960px}.drawer.drawer-left{border-left:none;border-right:1px solid var(--border-subtle)}.drawer-right-enter-active .drawer,.drawer-right-leave-active .drawer{transition:transform .38s var(--ease-out)}.drawer-right-enter-from .drawer,.drawer-right-leave-to .drawer{transform:translate(100%)}.drawer-right-enter-to .drawer,.drawer-right-leave-from .drawer{transform:translate(0)}.drawer-right-enter-active .overlay-backdrop,.drawer-right-leave-active .overlay-backdrop{transition:opacity .24s var(--ease-out)}.drawer-right-enter-from .overlay-backdrop,.drawer-right-leave-to .overlay-backdrop{opacity:0}.drawer-lr-enter-active .drawer,.drawer-lr-leave-active .drawer{transition:transform var(--dur-slow) var(--ease-out)}.drawer-lr-enter-from .drawer{transform:translate(-100%)}.drawer-lr-leave-to .drawer{transform:translate(100%)}.drawer-lr-enter-to .drawer,.drawer-lr-leave-from .drawer{transform:translate(0)}.drawer-lr-enter-active .overlay-backdrop,.drawer-lr-leave-active .overlay-backdrop{transition:opacity var(--dur) var(--ease-out)}.drawer-lr-enter-from .overlay-backdrop,.drawer-lr-leave-to .overlay-backdrop{opacity:0}.drawer-head{justify-content:space-between;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-12);border-bottom:1px solid var(--border-subtle);min-height:var(--topbar-h);flex-shrink:0;display:flex}.drawer-head .title{flex-direction:column;gap:2px;min-width:0;display:flex}.drawer-head .title .eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary)}.drawer-head .title h3{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--letter-tight);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.drawer-head .actions{gap:var(--sp-4);flex-shrink:0;align-items:center;display:flex}.drawer-body{padding:var(--sp-10) var(--sp-12);gap:var(--sp-10);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-foot{justify-content:flex-end;align-items:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-12);border-top:1px solid var(--border-subtle);background:var(--bg-canvas);flex-shrink:0;display:flex}.dialog{background:var(--bg-canvas);border-radius:var(--r-lg);width:460px;max-width:calc(100vw - 48px);box-shadow:var(--shadow-lg);margin:auto;position:relative;overflow:hidden}.overlay.centered{justify-content:center;align-items:center}.dialog .drawer-head,.dialog .drawer-body{padding:var(--sp-8) var(--sp-10)}.dialog-pop-enter-active .dialog,.dialog-pop-leave-active .dialog,.dialog-pop-enter-active.modal-backdrop .modal,.dialog-pop-leave-active.modal-backdrop .modal,.dialog-pop-enter-active.sub-backdrop .sub-modal,.dialog-pop-leave-active.sub-backdrop .sub-modal{transition:transform var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out)}.dialog-pop-enter-from .dialog,.dialog-pop-leave-to .dialog,.dialog-pop-enter-from.modal-backdrop .modal,.dialog-pop-leave-to.modal-backdrop .modal,.dialog-pop-enter-from.sub-backdrop .sub-modal,.dialog-pop-leave-to.sub-backdrop .sub-modal{opacity:0;transform:translateY(8px)scale(.98)}.dialog-pop-enter-to .dialog,.dialog-pop-leave-from .dialog,.dialog-pop-enter-to.modal-backdrop .modal,.dialog-pop-leave-from.modal-backdrop .modal,.dialog-pop-enter-to.sub-backdrop .sub-modal,.dialog-pop-leave-from.sub-backdrop .sub-modal{opacity:1;transform:none}.dialog-pop-enter-active .overlay-backdrop,.dialog-pop-leave-active .overlay-backdrop,.dialog-pop-enter-active.modal-backdrop,.dialog-pop-leave-active.modal-backdrop,.dialog-pop-enter-active.sub-backdrop,.dialog-pop-leave-active.sub-backdrop{transition:opacity var(--dur) var(--ease-out)}.dialog-pop-enter-from .overlay-backdrop,.dialog-pop-leave-to .overlay-backdrop,.dialog-pop-enter-from.modal-backdrop,.dialog-pop-leave-to.modal-backdrop,.dialog-pop-enter-from.sub-backdrop,.dialog-pop-leave-to.sub-backdrop{opacity:0}@media (prefers-reduced-motion:reduce){.drawer-right-enter-active .drawer,.drawer-right-leave-active .drawer,.drawer-lr-enter-active .drawer,.drawer-lr-leave-active .drawer,.dialog-pop-enter-active .dialog,.dialog-pop-leave-active .dialog,.drawer-right-enter-active .overlay-backdrop,.drawer-right-leave-active .overlay-backdrop,.drawer-lr-enter-active .overlay-backdrop,.drawer-lr-leave-active .overlay-backdrop,.dialog-pop-enter-active .overlay-backdrop,.dialog-pop-leave-active .overlay-backdrop{transition:none}}.subnav{border-right:1px solid var(--border-subtle);background:var(--bg-canvas);width:200px;padding:var(--sp-6);flex-direction:column;flex-shrink:0;gap:1px;display:flex;overflow-y:auto}.subnav a,.subnav button{align-items:center;gap:var(--sp-5);padding:0 var(--sp-6);border-radius:var(--r-sm);height:32px;color:var(--text-secondary);font-size:var(--fs-md);cursor:pointer;text-align:left;background:0 0;border:none;text-decoration:none;display:flex}.subnav a:hover,.subnav button:hover{background:var(--bg-hover);color:var(--text-primary)}.subnav a.active,.subnav button.active{background:var(--bg-active);color:var(--text-primary);font-weight:var(--fw-medium)}.page-with-subnav{flex:1;display:flex;overflow:hidden}.page-with-subnav>.page-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.list-toolbar-row{padding:var(--sp-6) var(--sp-12);align-items:center;gap:var(--sp-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);flex-wrap:wrap;display:flex}.list-toolbar-row .input-group{width:280px}.checkbox-pill{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex}.row-actions{opacity:.6;transition:opacity var(--dur-fast);gap:2px;display:inline-flex}.row-actions button{border-radius:var(--r-xs);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.row-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.table tr:hover .row-actions{opacity:1}.planning-wrap{background:var(--bg-canvas);flex-direction:column;flex:1;display:flex;overflow:hidden}.planning-toolbar{padding:var(--sp-6) var(--sp-12);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--sp-6);display:flex}.planning-toolbar .center{align-items:center;gap:var(--sp-4);display:flex}.planning-toolbar .week-label{font-size:var(--fs-lg);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;padding:0 var(--sp-6)}.planning-grid{flex:1;position:relative;overflow:auto}.planning-grid table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.planning-grid th,.planning-grid td{border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);background:var(--bg-canvas);vertical-align:top;height:28px;padding:0;position:relative}.planning-grid th{background:var(--bg-muted);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);text-align:center;z-index:3;height:26px;position:sticky;top:0}.planning-grid th.day-header{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);background:var(--bg-canvas);border-bottom:1px solid var(--border);text-align:center;height:28px}.planning-grid th.week-header{font-size:var(--fs-md);font-weight:var(--fw-semibold);background:var(--bg-muted);border-bottom:1px solid var(--border-subtle);height:24px}.planning-grid th.row-label-head{background:var(--bg-canvas);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;padding:0 var(--sp-5)}.planning-grid .row-label{z-index:2;background:var(--bg-canvas);border-right:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);text-align:center;padding:0 var(--sp-4);width:56px;position:sticky;left:0}.planning-grid .group-row td{background:var(--bg-page);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--letter-caps);color:var(--text-tertiary);height:22px;padding:0 var(--sp-5)}.planning-grid .day-cell{height:36px;padding:0}.planning-grid .day-bg{height:100%;position:relative}.evt{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;color:#fff;transition:filter var(--dur-fast) var(--ease-out);border-radius:3px;align-items:center;padding:0 4px;font-size:10px;font-weight:500;line-height:1.2;display:flex;position:absolute;top:3px;bottom:3px;overflow:hidden}.evt:hover{filter:brightness(1.08)}.evt-pose-neutral{background:#6b7280}.evt-pose-pink{background:#d35cb8}.evt-pose-purple{background:#4d4aa6}.evt-pose-cyan{background:#4ba6d3}.evt-pose-rose{background:#ed7d8b}.evt-admin{background:#884759}.evt-pdc{color:var(--text-primary);background:#fff;border:1px solid #4ba6d3}.evt-pdc-yellow{color:#2c2200;background:#f5d957;border:1px solid #c9a916}.evt-sav{background:#b03c3c}.planning-legend{gap:var(--sp-6);padding:var(--sp-5) var(--sp-12);border-top:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-tertiary);background:var(--bg-canvas);flex-wrap:wrap;display:flex}.planning-legend .item{align-items:center;gap:var(--sp-3);display:inline-flex}.planning-legend .chip{border-radius:2px;width:12px;height:10px}.cov-wrap{flex-direction:column;flex:1;display:flex;overflow:hidden}.cov-toolbar{align-items:center;gap:var(--sp-6);padding:var(--sp-6) var(--sp-12);border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);display:flex}.cov-map{background:linear-gradient(135deg,#84a07a 0%,#a3bc9b 60%,#cfd8ce 100%);flex:1;position:relative;overflow:hidden}.cov-map .roads{opacity:.5;background-image:linear-gradient(0deg,#ffffff80 1px,#0000 1px),linear-gradient(90deg,#fff6 1px,#0000 1px);background-size:80px 80px,120px 120px;position:absolute;inset:0}.cov-map .sea{background:radial-gradient(30% 18% at 18% 70%,#78a0c8b3,#0000 60%),radial-gradient(18% 12% at 40% 88%,#78a0c8b3,#0000 60%);position:absolute;inset:0}.cov-pt{border:1.5px solid #fff9;border-radius:50%;width:10px;height:10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0000004d}.cov-pt.red{background:#d83030}.cov-pt.green{background:#1b9b3b}.cov-legend{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-6) var(--sp-8);box-shadow:var(--shadow-md);gap:var(--sp-4);font-size:var(--fs-sm);flex-direction:column;display:flex;position:absolute;bottom:16px;left:16px}.cov-legend .ttl{font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-caps);margin-bottom:var(--sp-3)}.cov-legend .item{align-items:center;gap:var(--sp-4);display:flex}.cov-legend .dot{border:1.5px solid #fff9;border-radius:50%;width:10px;height:10px}.cov-legend .dot.red{background:#d83030}.cov-legend .dot.green{background:#1b9b3b}.cov-attribution{color:#ffffffd9;text-shadow:0 1px 2px #0000004d;font-size:10px;position:absolute;bottom:4px;right:8px}.nuancier-swatch{border:1px solid var(--border);border-radius:3px;width:28px;height:18px;display:inline-block}.form-grid{gap:var(--sp-5) var(--sp-8);grid-template-columns:140px 1fr;align-items:center;display:grid}.form-grid .lbl{color:var(--text-tertiary);font-size:var(--fs-sm);white-space:nowrap}.form-grid .lbl.req:after{content:" *";color:var(--primary)}.form-grid .full{grid-column:1/-1}.form-section{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-8) var(--sp-10)}.form-section-title{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--letter-caps);font-weight:var(--fw-semibold);color:var(--primary);margin:0 0 var(--sp-6);align-items:center;gap:var(--sp-4);display:flex}.form-section-title .ix{background:var(--primary-soft);border:1px solid var(--primary-border);width:18px;height:18px;color:var(--primary);border-radius:var(--r-xs);font-family:var(--font-mono);place-items:center;font-size:10px;display:grid}.bdv-tag{padding:2px var(--sp-5);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--r-xs);font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium);align-items:center;display:inline-flex}.bdv-tag.warning{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.bdv-tag.success{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.client-card{align-items:flex-start;gap:var(--sp-5);padding:var(--sp-6) var(--sp-8);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--r-md);display:flex}.client-card .name{font-weight:var(--fw-semibold)}.client-card .meta{color:var(--text-secondary);font-size:var(--fs-sm)}.t-link{color:var(--text-link)}.detail-head{gap:var(--sp-5);flex-direction:column;display:flex}.detail-meta{align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.detail-title{justify-content:space-between;align-items:flex-start;gap:var(--sp-10);display:flex}.detail-title h2{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--letter-tight);margin:0}.detail-quick{gap:var(--sp-3);flex-wrap:wrap;display:flex}.dossier-page{background:var(--bg-page);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dossier-page-head{background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);padding:var(--sp-8) var(--sp-12);gap:var(--sp-5);flex-direction:column;flex-shrink:0;display:flex}.dossier-page-head .back-row{align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.dossier-page-head .title-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-10);display:flex}.dossier-page-head h1{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:var(--letter-tight);line-height:var(--lh-tight);margin:0}.dossier-page-head .meta{gap:var(--sp-6);font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.dossier-page-head .meta>span{align-items:center;gap:4px;display:inline-flex}.dossier-page-head .meta .t-mono{color:var(--text-secondary)}.dossier-page-head .tags-row{gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.dossier-page-body{padding:var(--sp-10) var(--sp-12) calc(var(--sp-24) + 56px);gap:var(--sp-10);flex:1;grid-template-columns:1fr 380px;align-items:start;display:grid;overflow-y:auto}.dossier-page-body>.col{gap:var(--sp-8);flex-direction:column;min-width:0;display:flex}.action-bar{z-index:2;background:var(--bg-canvas);border-top:1px solid var(--border);padding:var(--sp-5) var(--sp-12);align-items:center;gap:var(--sp-3);flex-wrap:wrap;flex-shrink:0;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px -8px #00000014}.action-bar .group{align-items:center;gap:var(--sp-3);padding-right:var(--sp-5);border-right:1px solid var(--border-subtle);display:flex}.action-bar .group:last-child{border-right:none;padding-right:0}.action-bar .group-end{margin-left:auto}.photo-gallery{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.photo-tile{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--bg-muted);border:1px solid var(--border-subtle);color:var(--text-tertiary);cursor:pointer;transition:border-color var(--dur-fast);place-items:center;display:grid;position:relative;overflow:hidden}.photo-tile:hover{border-color:var(--border-strong)}.photo-tile .photo-label{color:#fff;border-radius:var(--r-xs);font-size:10px;font-family:var(--font-mono);pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#000000b3;padding:2px 6px;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}.photo-tile.add{border-style:dashed;border-color:var(--border);background:var(--bg-canvas)}.photo-tile.add:hover{border-color:var(--primary);color:var(--primary)}.photo-tile .img-fallback{background:linear-gradient(135deg,#fff9 25%,#0000 25% 50%,#fff9 50% 75%,#0000 75%,#0000) 0 0/20px 20px,linear-gradient(#d8c69a,#b59e6e);width:100%;height:100%}.bdv-entry{align-items:flex-start;gap:var(--sp-6);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-subtle);display:flex}.bdv-entry:last-child{border-bottom:none}.bdv-entry .bdv-num{border-radius:var(--r-xs);background:var(--primary-soft);border:1px solid var(--primary-border);width:22px;height:22px;color:var(--primary);font-family:var(--font-mono);flex-shrink:0;place-items:center;font-size:10px;font-weight:600;display:grid}.bdv-entry .bdv-content{flex:1;min-width:0}.bdv-entry .bdv-title{font-weight:var(--fw-semibold);font-size:var(--fs-md)}.bdv-entry .bdv-meta{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.bdv-entry .bdv-actions{flex-shrink:0;gap:2px;display:flex}.roles-layout{flex:1;min-width:0;display:flex;overflow:hidden}.roles-list{border-right:1px solid var(--border-subtle);background:var(--bg-canvas);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.roles-list-head{padding:var(--sp-6) var(--sp-8);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.roles-list-head h3{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin:0}.roles-list-rows{padding:var(--sp-4);flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.role-row{align-items:center;gap:var(--sp-5);padding:0 var(--sp-5);border-radius:var(--r-sm);cursor:pointer;height:36px;color:var(--text-secondary);transition:background var(--dur-fast), color var(--dur-fast);display:flex}.role-row:hover{background:var(--bg-hover);color:var(--text-primary)}.role-row.active{background:var(--bg-active);color:var(--text-primary);font-weight:var(--fw-medium)}.role-row .role-icon{width:18px;height:18px;color:var(--text-tertiary);flex-shrink:0;place-items:center;display:grid}.role-row .role-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.role-row .role-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.role-row.active .role-count{color:var(--text-secondary)}.permissions-pane{background:var(--bg-canvas);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.permissions-head{padding:var(--sp-6) var(--sp-12);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--sp-6);display:flex}.permissions-head .title-block{flex-direction:column;gap:2px;min-width:0;display:flex}.permissions-head h2{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--letter-tight);align-items:center;gap:var(--sp-4);margin:0;display:flex}.permissions-head .subtitle{font-size:var(--fs-xs);color:var(--text-tertiary)}.permissions-grid-wrap{background:var(--bg-canvas);flex:1;overflow:auto}.permissions-grid{border-collapse:separate;border-spacing:0;width:100%}.permissions-grid th{text-align:center;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--letter-caps);font-weight:var(--fw-medium);color:var(--text-tertiary);padding:var(--sp-4) var(--sp-3);background:var(--bg-muted);border-bottom:1px solid var(--border-subtle);z-index:2;white-space:nowrap;position:sticky;top:0}.permissions-grid th.col-section{text-align:left;padding-left:var(--sp-12);width:220px}.permissions-grid td{padding:var(--sp-4) var(--sp-3);text-align:center;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.permissions-grid td.row-section{text-align:left;padding-left:var(--sp-12);font-weight:var(--fw-medium);font-size:var(--fs-md);background:var(--bg-canvas);z-index:1;position:sticky;left:0}.permissions-grid tbody tr:hover,.permissions-grid tbody tr:hover td.row-section{background:var(--bg-muted)}.perm-dim{color:var(--n-300);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;font-size:var(--fs-sm)}.permissions-footer{padding:var(--sp-5) var(--sp-12);background:var(--bg-canvas);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--sp-6);flex-shrink:0;display:flex}.permissions-footer .hint{font-size:var(--fs-sm);color:var(--text-tertiary);align-items:center;gap:var(--sp-4);display:flex}.permissions-head .role-badge{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--letter-caps);background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-border);padding:1px var(--sp-4);border-radius:var(--r-full);font-weight:var(--fw-semibold)}@media (width<=1100px){.roles-list{width:220px}.permissions-grid th.col-section{width:180px}}@media (width<=1280px){.dossier-page-body{grid-template-columns:1fr}}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar.is-open-mobile{width:var(--sidebar-w);z-index:50;box-shadow:var(--shadow-lg);display:flex;position:fixed;inset:0 auto 0 0}.page-header{padding:var(--sp-8);flex-wrap:wrap}.filter-bar{padding:var(--sp-6) var(--sp-8)}.page-with-subnav{flex-direction:column}.subnav{flex-direction:row;width:100%;overflow-x:auto}.tabs{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}}.mission-page{background:var(--bg);flex:1;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.mission-page>.mission-page-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.mission-page-content .page-head{align-items:center;gap:16px;padding:22px 28px 14px;display:flex}.mission-page-content .page-head h1{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:22px;font-weight:700}.mission-page-content .page-head .count-pill{font-family:var(--font-mono);color:var(--ink-3);background:var(--surface);border-radius:var(--r-full);border:1px solid var(--line);padding:4px 10px;font-size:12px}.filter-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);flex-direction:column;gap:14px;margin:0 28px 18px;padding:14px 16px;display:flex}.filter-card .filter-row{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.filter-card .filter-row.bottom{align-items:end}.filter-card .seg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:3px;display:inline-flex}.filter-card .seg button{color:var(--ink-2);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500}.filter-card .seg button.on{background:var(--ink);color:#fff;box-shadow:0 1px #0000001a}.filter-card .check-row{align-items:center;gap:16px;display:flex}.filter-card .filter-check{color:var(--ink-2);cursor:pointer;border-radius:var(--r-md);border:1px solid var(--line);background:#fff;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:inline-flex}.filter-card .filter-check input{accent-color:var(--brand)}.filter-card .filter-field{flex-direction:column;flex:200px;gap:5px;min-width:0;display:flex}.filter-card .filter-field label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.filter-card .filter-field select{border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);background:#fff;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .12s}.filter-card .filter-field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.filter-card .filter-search{flex:200px;min-width:0;position:relative}.filter-card .filter-search .icon{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.filter-card .filter-search input{border:1px solid var(--line);border-radius:var(--r-md);width:100%;color:var(--ink);background:#fff;outline:none;padding:8px 10px 8px 32px;font-family:inherit;font-size:13px;transition:border-color .12s}.filter-card .filter-search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.filter-card .filter-actions{align-items:center;gap:8px;display:flex}.filter-card .icon-btn{border:1px solid var(--line);border-radius:var(--r-md);width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:#fff;place-items:center;display:grid}.filter-card .icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.mission-sidenav{background:var(--surface);border-right:1px solid var(--line);flex-shrink:0;width:280px;height:100%;padding:18px 14px;overflow-y:auto}.mission-sidenav .sidenav-group{margin-top:18px}.mission-sidenav .sidenav-group.first{margin-top:0}.mission-sidenav .sidenav-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:4px 8px 12px;font-size:10.5px;font-weight:700}.mission-sidenav .sidenav-item{border-radius:var(--r-md);cursor:pointer;width:100%;color:var(--ink-2);text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:1fr auto auto;align-items:center;gap:10px;margin-bottom:1px;padding:8px 10px;font-size:13px;transition:background .12s;display:grid}.mission-sidenav .sidenav-item:hover{background:var(--surface-2)}.mission-sidenav .sidenav-item.active{background:var(--brand);color:#fff;border-color:var(--brand-deep);box-shadow:0 1px #0000000d}.mission-sidenav .sidenav-item.active .count{color:#fff;background:#ffffff2e}.mission-sidenav .sidenav-item .lbl{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mission-sidenav .sidenav-item .count{font-family:var(--font-mono);background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-full);text-align:center;min-width:30px;padding:2px 8px;font-size:11.5px;font-weight:600}.mission-sidenav .sidenav-item .dot{background:var(--danger);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #b5423526}.mission-sidenav .sidenav-item.active .dot{background:#ffd9b5;box-shadow:0 0 0 3px #fff3}.dossier-cards{flex-direction:column;gap:14px;padding:0 28px 28px;display:flex}.dossier-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);cursor:pointer;transition:border-color .12s,box-shadow .12s;overflow:hidden}.dossier-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.dossier-card.has-assurance{border-color:var(--danger);box-shadow:0 0 0 3px #b5423514}.dossier-card.has-assurance .dossier-card-head{background:linear-gradient(180deg, #fff1ed 0%, var(--surface) 100%)}.dossier-card .status.alarm svg{width:12px;height:12px}.dossier-card-head{border-bottom:1px dashed var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 18px 12px;display:grid}.dossier-card-icon{border-radius:var(--r-lg);background:var(--brand-soft);width:36px;height:36px;color:var(--brand-deep);flex-shrink:0;place-items:center;display:grid}.dossier-card-icon svg{width:18px;height:18px}.dossier-card-title-block{min-width:0}.dossier-card-title-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.dossier-card-name{color:var(--ink);letter-spacing:-.005em;font-size:15px;font-weight:700}.dossier-card-date{font-family:var(--font-mono);color:var(--ink-3);font-size:11.5px}.dossier-card-loc{color:var(--ink-2);align-items:center;gap:5px;margin-top:2px;font-size:13px;display:inline-flex}.dossier-card-loc svg{width:12px;height:12px;color:var(--ink-3)}.dossier-card-body{grid-template-columns:1fr 240px;gap:0;display:grid}.dossier-card-main{padding:14px 18px 16px}.dossier-card-aside{border-left:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.aside-label{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep);font-size:10.5px;font-weight:700}.aside-line{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:flex}.aside-line svg{width:12px;height:12px;color:var(--ink-3);flex-shrink:0}.aside-line a{color:var(--accent-blue);font-weight:500}.desc{color:var(--ink);margin:0 0 12px;font-size:13.5px;line-height:1.55}.desc .desc-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-right:8px;font-size:11px;font-weight:700}.meta-grid{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:repeat(4,1fr);gap:10px 16px;margin-bottom:12px;padding:10px 12px;display:grid}.meta-item{flex-direction:column;gap:2px;min-width:0;display:flex}.meta-item .k{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.meta-item .v{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.meta-item.full{grid-column:1/-1}.meta-item.full .v{white-space:normal}.note{border-left:3px solid var(--accent-green);border-radius:0 var(--r-md) var(--r-md) 0;background:#f1f6ec;margin-top:10px;padding:10px 14px}.note+.note{margin-top:8px}.note.intervention{border-left-color:var(--accent-amber);background:#fbf3e1}.note .note-head{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);align-items:center;gap:8px;margin-bottom:4px;font-size:11px;font-weight:700;display:flex}.note.intervention .note-head{color:var(--accent-amber)}.note .note-meta{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:0;text-transform:none;font-size:10.5px;font-weight:500}.note .note-text{color:var(--ink);font-size:13px;font-style:italic}.modal-backdrop{-webkit-backdrop-filter:blur(3px);z-index:50;background:#1d17148c;justify-content:center;align-items:flex-start;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--r-2xl);width:min(1180px,100%);box-shadow:var(--shadow-modal);flex-direction:column;margin:auto 0;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:16px 22px;display:grid}.modal-head .status{align-self:center;padding:5px 12px;font-size:12px}.modal-head .title-block{min-width:0}.modal-head h2{align-items:center;gap:8px;margin:0;font-size:17px;font-weight:700;display:inline-flex}.modal-head h2 a{color:var(--ink);border-bottom:1px dashed #0000}.modal-head h2 a:hover{color:var(--brand);border-bottom-color:var(--brand);text-decoration:none}.modal-head .edit-pencil{border:1px solid var(--line);border-radius:var(--r-sm);width:22px;height:22px;color:var(--ink-3);cursor:pointer;background:#fff;place-items:center;display:inline-grid}.modal-head .edit-pencil:hover{color:var(--brand);border-color:var(--brand)}.modal-head .edit-pencil svg{width:11px;height:11px}.modal-head .client-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:4px;font-size:12.5px;display:flex}.modal-head .client-meta .chip{align-items:center;gap:5px;display:inline-flex}.modal-head .client-meta svg{width:12px;height:12px;color:var(--ink-3)}.modal-head .client-meta a{color:var(--accent-blue)}.modal-head .sub{color:var(--ink-3);font-size:11.5px;font-family:var(--font-mono);margin-top:6px}.modal-head .actions{align-self:center;align-items:center;gap:6px;display:flex}.btn-alarm{color:var(--danger);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.btn-alarm svg{width:14px;height:14px}.btn-alarm:hover,.btn-alarm.on{background:var(--danger);color:#fff;border-color:var(--danger)}.modal .icon-btn{border-radius:var(--r-md);border:1px solid var(--line);width:32px;height:32px;color:var(--ink-2);cursor:pointer;background:#fff;place-items:center;transition:color .12s,border-color .12s;display:grid}.modal .icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.modal .icon-btn svg{width:14px;height:14px}.modal-body{grid-template-columns:1.1fr 1fr;gap:0;display:grid}.modal-col{min-width:0;padding:20px 22px}.modal-col+.modal-col{border-left:1px solid var(--line);background:var(--surface-2)}.modal .section{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;margin-bottom:14px;padding:14px 16px}.modal-col+.modal-col .section{background:var(--surface)}.modal .section h3{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-deep);align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:700;display:flex}.modal .section h3:before{content:"";background:var(--brand);border-radius:2px;width:4px;height:14px}.modal .section h3 .h3-actions{gap:6px;margin-left:auto;display:inline-flex}.modal .form-grid{grid-template-columns:140px 1fr;align-items:center;gap:10px 14px;display:grid}.modal .form-grid label{color:var(--ink-2);letter-spacing:0;text-transform:none;font-size:12px;font-weight:500}.modal .form-grid label.req:after{content:"*";color:var(--brand);margin-left:3px}.modal .form-grid .full{grid-column:1/-1}.modal .form-grid textarea{resize:vertical;min-height:56px}.modal .form-grid .section-subtitle{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);grid-column:1/-1;margin-top:4px;font-size:11px;font-weight:600}.modal input[type=text],.modal input[type=number],.modal input[type=date],.modal input[type=datetime-local],.modal input[type=email],.modal input[type=tel],.modal select,.modal textarea{border:1px solid var(--line);border-radius:var(--r-md);width:100%;color:var(--ink);background:#fff;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.modal input[type=text]:focus,.modal input[type=number]:focus,.modal input[type=date]:focus,.modal input[type=datetime-local]:focus,.modal input[type=email]:focus,.modal input[type=tel]:focus,.modal select:focus,.modal textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.modal input[type=checkbox]{accent-color:var(--brand)}.modal .radio-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.modal .radio-row label{cursor:pointer;color:var(--ink);text-transform:none;letter-spacing:0;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.modal .radio-row input{accent-color:var(--brand)}.product-actions,.rdv-actions,.attach-actions{gap:4px;display:flex}.product-actions button,.rdv-actions button,.attach-actions button{border:1px solid var(--line);border-radius:var(--r-sm);width:26px;height:26px;color:var(--ink-3);cursor:pointer;background:#fff;place-items:center;transition:color .12s,border-color .12s;display:grid}.product-actions button svg,.rdv-actions button svg,.attach-actions button svg{width:12px;height:12px}.product-actions button:hover,.rdv-actions button:hover,.attach-actions button:hover{color:var(--ink)}.product-actions .del:hover,.rdv-actions .del:hover,.attach-actions .del:hover{color:var(--danger);border-color:var(--danger)}.product-list,.rdv-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.rdv-list{gap:8px}.attach-list{flex-direction:column;gap:6px;display:flex}.rdv-people{flex-wrap:wrap;gap:4px;display:flex}.attach-meta{min-width:0}.attach-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.attach-sub{color:var(--ink-3);margin-top:1px;font-size:11.5px}.attach-date{color:var(--ink-3);font-size:10.5px;font-family:var(--font-mono);margin-top:1px}.phase-divider{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-blue);align-items:center;gap:8px;margin:4px 0 2px;font-size:10.5px;font-weight:700;display:flex}.phase-divider:after{content:"";background:var(--line);flex:1;height:1px}.add-link{color:var(--brand);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-top:4px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.add-link:hover{text-decoration:underline}.add-btn{border:1px dashed var(--line-strong);color:var(--brand);border-radius:var(--r-md);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:7px;width:100%;padding:8px 12px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,border-style .12s;display:inline-flex}.add-btn:hover{background:var(--brand-soft);border-color:var(--brand);border-style:solid}.add-btn svg{width:16px;height:16px}.attach-add{grid-template-columns:1fr auto auto;gap:6px;margin-bottom:10px;display:grid}.attach-add.docs{grid-template-columns:1fr auto}.attach-type{border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);background:#fff;padding:8px 10px;font-family:inherit;font-size:13px}.upload-btn{border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.upload-btn:hover{background:var(--surface-2);color:var(--brand);border-color:var(--brand)}.upload-btn svg{width:14px;height:14px}.modal .client-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:36px 1fr auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.modal .client-card .avatar{background:var(--brand-soft);width:36px;height:36px;color:var(--brand-deep);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.modal .client-card .info{min-width:0;font-size:13px;line-height:1.55}.modal .client-card .info b{color:var(--ink);display:block}.modal .client-card .info .addr{color:var(--ink-2)}.modal .client-card .info a{margin-right:10px;font-size:12.5px;display:inline-block}.modal .client-card .ctrls{gap:4px;display:flex}.modal .client-card .ctrls button{border:1px solid var(--line);border-radius:var(--r-sm);width:26px;height:26px;color:var(--ink-3);cursor:pointer;background:#fff;place-items:center;display:grid}.modal .client-card .ctrls .del:hover{color:var(--danger);border-color:var(--danger)}.addr-input{grid-template-columns:1fr auto auto;align-items:center;gap:4px;display:grid}.photo-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.photo-actions .btn{flex:1;justify-content:center}.modal-foot{background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:14px 22px;display:flex}.btn-group{flex-wrap:wrap;gap:8px;display:flex}.btn-group .label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);align-self:center;margin-right:4px;font-size:10px;font-weight:700}.btn-confirm{border-radius:var(--r-md);cursor:pointer;background:var(--success);color:#fff;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:filter .12s;display:inline-flex}.btn-confirm:hover{filter:brightness(.92)}.btn-confirm svg{width:14px;height:14px}.btn-confirm.btn-save{background:var(--brand)}.btn-confirm.btn-save:hover{background:var(--brand-deep)}.btn-confirm.btn-cancel{color:var(--ink-2);border-color:var(--line);background:#fff}.btn-confirm.btn-cancel:hover{background:var(--surface-2)}.dyn-group{display:contents}.dyn-group.hidden{display:none}.photo-shape{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);grid-column:1/-1;grid-template-columns:80px 1fr;align-items:start;gap:12px;padding:10px;display:grid}.photo-shape svg{width:80px;height:80px;color:var(--ink-3)}.photo-shape .hint{color:var(--ink-2);margin-bottom:8px;font-size:12px}.photo-shape .cotes{color:var(--ink);flex-wrap:wrap;gap:12px;font-size:12.5px;display:flex}.sub-backdrop{-webkit-backdrop-filter:blur(3px);z-index:80;background:#1d17148c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.sub-modal{border-radius:var(--r-2xl);width:min(640px,100%);box-shadow:var(--shadow-modal);background:#fff;flex-direction:column;max-height:calc(100vh - 48px);margin:auto;display:flex;overflow:hidden}.sub-modal.wide{width:min(820px,100%)}.sub-head{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.sub-head h3{color:var(--brand);align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.sub-head h3:before{content:"";background:var(--brand);border-radius:2px;width:4px;height:16px}.sub-head .x{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;width:28px;height:28px;color:var(--ink-3);background:0 0;place-items:center;display:grid}.sub-head .x:hover{color:var(--ink)}.sub-head .x svg{width:14px;height:14px}.sub-body{flex:1;padding:20px 22px;overflow-y:auto}.sub-foot{border-top:1px solid var(--line);background:var(--surface);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.sub-form{grid-template-columns:160px 1fr;align-items:center;gap:14px 16px;display:grid}.sub-form .full{grid-column:1/-1}.sub-form label{color:var(--ink-2);font-size:13px;font-weight:500}.sub-form label.req:after{content:"*";color:var(--brand);margin-left:3px}.fieldset-card{border:1px solid var(--line);border-radius:var(--r-lg);grid-column:1/-1;margin-top:4px;padding:14px 14px 12px;position:relative}.fieldset-card legend{letter-spacing:.1em;text-transform:uppercase;color:var(--brand);background:#fff;padding:0 8px;font-size:11px;font-weight:700;position:absolute;top:-10px;left:14px}.intervenants{border-bottom:1px solid var(--brand-soft);flex-wrap:wrap;gap:6px;padding-bottom:4px;display:flex}.interv-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-full);color:var(--ink);align-items:center;gap:6px;padding:4px 10px 4px 12px;font-size:13px;display:inline-flex}.interv-chip button{background:var(--ink-3);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:16px;height:16px;font-size:10px;line-height:1;display:grid}.color-grid{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.color-swatch{border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:#fff;flex-direction:column;align-items:center;gap:5px;padding:6px;transition:all .12s;display:flex}.color-swatch:hover{border-color:var(--brand)}.color-swatch.selected{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.color-swatch .chip{border-radius:var(--r-sm);border:1px solid #0000000f;width:100%;height:32px}.color-swatch .lbl{color:var(--ink-2);text-align:center;font-size:10.5px;line-height:1.2}.color-swatch .ref{font-family:var(--font-mono);color:var(--ink-3);font-size:9.5px}.product-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;display:grid}.product-type{border-radius:var(--r-sm);background:var(--brand-soft);min-width:78px;height:28px;color:var(--brand-deep);letter-spacing:.1em;text-transform:uppercase;place-items:center;padding:0 10px;font-size:10.5px;font-weight:700;display:inline-grid}.product-type.type-reglage{color:#1f4a78;background:#e2ecf6}.product-type.type-vitrage{color:#1a5560;background:#e0eef0}.product-type.type-volet{color:#6e4a0d;background:#f3e6d3}.product-type.type-poele{color:#8a3624;background:#f5d9d3}.product-type.type-serrurerie{color:#2c2c2c;background:#e6e6e6}.product-body{min-width:0}.product-name{color:var(--ink);font-size:13.5px;font-weight:600}.product-name .qty{font-family:var(--font-mono);color:var(--ink-3);margin-left:4px;font-size:11px;font-weight:500}.product-meta{color:var(--ink-3);margin-top:2px;font-size:11.5px}.rdv-item{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:1fr auto auto;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;display:grid}.rdv-when{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.rdv-type{letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--accent-blue);border-radius:var(--r-xs);padding:3px 8px;font-size:11px;font-weight:700}.rdv-date{color:var(--ink-2);font-size:12.5px}.who-chip{border:1px solid var(--line);border-radius:var(--r-full);color:var(--ink-2);background:#fff;padding:2px 10px;font-size:12px}.attach-row{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.attach-icon{border-radius:var(--r-md);flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.attach-icon.doc{background:var(--brand-soft);color:var(--brand-deep)}.attach-icon.img{background:var(--info-soft);color:var(--info)}.btn-alarm-toggle{color:var(--danger);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.btn-alarm-toggle:hover,.btn-alarm-toggle.on{background:var(--danger);color:#fff;border-color:var(--danger)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
