.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{bottom:0;left:0;opacity:0;overflow:hidden;pointer-events:auto;position:fixed;right:0;top:0;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));bottom:0;left:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;right:0;top:0;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{bottom:auto;display:flex;justify-content:flex-end;left:auto;padding:var(--yarl__toolbar_padding,8px);position:absolute;right:0;top:0}[dir=rtl] .yarl__toolbar{bottom:auto;left:0;right:auto;top:0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}:root[data-doom=on]{--color-bg-base: #0a0705;--color-bg-layer1: rgba(198, 142, 74, .05);--color-bg-layer2: rgba(198, 142, 74, .1);--color-bg-layer3: rgba(198, 142, 74, .16);--color-glass-border: rgba(190, 143, 79, .24);--color-glass-shine: rgba(255, 205, 130, .06);--color-accent: #a01008;--color-accent-glow: rgba(200, 30, 12, .4);--color-accent-alt: #c8560c;--bg-orb-1: rgba(168, 20, 8, .36);--bg-orb-2: rgba(200, 96, 12, .16);--color-success: #63a020;--color-warning: #d08c18;--color-danger: #d02c14;--color-text-primary: #e3d3b2;--color-text-secondary: #a8875c;--color-text-muted: #6d5738;--color-input-solid: #14100c;--color-surface-solid: #1a1410;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--blur-glass: none;--blur-heavy: none;--doom-metal: url(/egg/art/metal1.png);--doom-grey: url(/egg/art/graytall.png);--doom-startan: url(/egg/art/startan3.png);--doom-screens: url(/egg/art/compsta1.png);--doom-floor: url(/egg/art/ceil5_2.png);--doom-lip: #6f5a34;--doom-shadow: #100c08}:root[data-doom=on] .app-sidebar,:root[data-doom=on] .app-shell,.doom-stage,.doom-scare img{image-rendering:pixelated;image-rendering:crisp-edges}:root[data-doom=on] .app-sidebar,:root[data-doom=on] .glass,:root[data-doom=on] .glass-card{backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-doom=on] body{background-color:#0a0705;background-image:var(--doom-floor);background-size:128px 128px;background-repeat:repeat}:root[data-doom=on] .app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0705d1;pointer-events:none;z-index:0}:root[data-doom=on] .app-sidebar{background-color:#14100c;background-image:var(--doom-metal);background-size:128px 256px;background-repeat:repeat;border-right:3px solid var(--doom-shadow);box-shadow:inset -1px 0 0 var(--doom-lip)}:root[data-doom=on] .nav-item.active{background:linear-gradient(180deg,#c8300c8c,#6e0c048c);box-shadow:inset 0 1px #ffc88c40,inset 0 -1px 0 var(--doom-shadow)}:root[data-doom=on] .brand,:root[data-doom=on] .page-header h1{letter-spacing:.06em;text-transform:uppercase}:root[data-doom=on] .brand .brand-mark{border-radius:0;background:linear-gradient(180deg,#c8300c,#6e0c04);box-shadow:inset 0 1px #ffc88c66}:root[data-doom=on] .glass,:root[data-doom=on] .glass-card{background:#16110d;border:1px solid var(--doom-shadow);box-shadow:inset 0 1px #ffcd8224,inset 0 -1px 0 var(--doom-shadow)}.doom-page{display:flex;flex-direction:column}.doom-stage{position:relative;height:clamp(360px,calc(100dvh - 240px),820px);overflow:hidden;background:#070504;border:3px solid var(--doom-shadow);box-shadow:inset 0 0 0 1px var(--doom-lip)}.doom-host{position:fixed;z-index:30;background:#000}.doom-frame{display:block;width:100%;height:100%;border:0;background:#000}.doom-note{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#b08a4c}.doom-note-bad{color:#ff9c84}.doom-btn{border:1px solid var(--doom-shadow);background-color:#201811;background-image:var(--doom-grey);background-size:128px 128px;background-blend-mode:multiply;box-shadow:inset 0 1px #ffd29647,inset 0 -2px 0 var(--doom-shadow);color:#f0dcb4;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;cursor:pointer;text-shadow:0 1px 0 #000}.doom-btn:hover{background-color:#3a2a18;color:#fff2d0}.doom-btn:active{box-shadow:inset 0 2px 0 var(--doom-shadow),inset 0 -1px #ffd2962e;transform:translateY(1px)}.doom-btn-exit{color:#ffa088;background-color:#2a1008}.doom-btn-exit:hover{background-color:#4a1408;color:#ffd0c0}.doom-menu{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background-color:#221a12;background-image:radial-gradient(ellipse at 50% 42%,#00000038,#0009 55%,#000000eb),var(--doom-startan);background-size:auto,256px 256px;overflow:auto}.doom-menu-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:28px 20px;min-height:0}.doom-menu-plaque{position:relative;width:min(560px,100%);text-align:center;padding:0 0 10px}.doom-menu-screens{height:88px;margin-bottom:16px;background-image:var(--doom-screens);background-size:256px 256px;background-position:0 0;background-repeat:repeat-x;border:2px solid var(--doom-shadow);box-shadow:inset 0 1px #ffd29633,0 0 34px #3ca0dc33}.doom-menu-title{margin:0;font-family:var(--font-mono);font-size:clamp(1.8rem,6vw,3.4rem);font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#d8241c;text-shadow:0 2px 0 #3a0400,0 0 26px rgba(216,36,28,.5)}.doom-menu-sub{margin:6px 0 0;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:#e8cf9a;text-shadow:0 1px 0 #000,0 0 12px rgba(0,0,0,.9)}.doom-start{display:flex;align-items:center;gap:16px;padding:12px 26px 12px 14px;border:2px solid var(--doom-shadow);background-color:#2a2018;background-image:var(--doom-startan);background-size:192px 192px;background-blend-mode:multiply;box-shadow:inset 0 2px #ffd69652,inset 0 -3px 0 var(--doom-shadow),0 0 30px #c8280c40;cursor:pointer}.doom-start:hover{background-color:#4a3420;box-shadow:inset 0 2px #ffe0aa73,inset 0 -3px 0 var(--doom-shadow),0 0 44px #d83c1473}.doom-start:active{transform:translateY(2px);box-shadow:inset 0 3px 0 var(--doom-shadow)}.doom-start-face{width:58px;height:58px;display:block;object-fit:cover;border:1px solid var(--doom-shadow);box-shadow:inset 0 1px #ffd2964d;filter:grayscale(1) contrast(1.25);transition:filter .12s linear}.doom-start:hover .doom-start-face{filter:grayscale(0) contrast(1.1)}.doom-start-label{font-family:var(--font-mono);font-size:clamp(1rem,2.4vw,1.5rem);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#ffcf8a;text-shadow:0 2px 0 #000}.doom-controls{width:min(560px,100%);border:1px solid var(--doom-shadow);background:#080604e6;box-shadow:inset 0 1px #ffcd8229;padding:14px 18px 16px}.doom-controls-head{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#d8241c;margin-bottom:10px}.doom-controls-group+.doom-controls-group{margin-top:12px}.doom-controls-sub{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:#8a6c40;margin-bottom:6px}.doom-slot-empty{color:#5c492f}.doom-controls-list{margin:0;display:grid;gap:6px}.doom-controls-row{display:grid;grid-template-columns:106px 1fr;gap:12px;align-items:baseline}.doom-controls-row dt{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;color:#ffcf8a;text-align:right}.doom-controls-row dd{margin:0;font-size:.82rem;color:#c0a880}.doom-controls-note{margin:12px 0 0;font-size:.72rem;line-height:1.5;color:#7a6244}.doom-menu-foot{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px;background-color:#14100c;background-image:var(--doom-metal);background-size:96px 192px;border-top:3px solid var(--doom-shadow);box-shadow:inset 0 1px 0 var(--doom-lip)}.doom-failed{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:#c8a068;font-family:var(--font-mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}.doom-failed-reason{color:#6d5738;letter-spacing:.06em;text-transform:none}.doom-scare{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#000;pointer-events:none;animation:doom-scare-flash 1.5s steps(1,end) forwards}.doom-scare img{max-width:62vmin;max-height:88vh;animation:doom-scare-lunge 1.5s cubic-bezier(.16,1,.3,1) forwards}@keyframes doom-scare-flash{0%{background:#000;opacity:1}92%{background:#000;opacity:1}to{opacity:0}}@keyframes doom-scare-lunge{0%{transform:scale(.35)}10%{transform:scale(1.12)}16%{transform:scale(1)}92%{transform:scale(1.02)}to{transform:scale(1.02)}}@media (prefers-reduced-motion: reduce){.doom-scare,.doom-scare img{animation-duration:1.5s;animation-timing-function:steps(1,end)}.doom-scare img{animation-name:none}}@media (max-width: 768px){.doom-stage{height:clamp(300px,calc(100dvh - 260px),620px)}.doom-controls-row{grid-template-columns:84px 1fr}}.avatar-doom{display:block;object-fit:cover;image-rendering:pixelated;image-rendering:crisp-edges;background:#000}:root[data-redalert=on]{--color-bg-base: #0b0f0c;--color-bg-layer1: rgba(140, 156, 116, .05);--color-bg-layer2: rgba(140, 156, 116, .1);--color-bg-layer3: rgba(140, 156, 116, .16);--color-glass-border: rgba(160, 172, 130, .22);--color-glass-shine: rgba(214, 232, 180, .06);--color-accent: #b81b1b;--color-accent-glow: rgba(220, 40, 32, .4);--color-accent-alt: #d8a72a;--bg-orb-1: rgba(184, 27, 27, .32);--bg-orb-2: rgba(96, 152, 84, .16);--color-success: #5cc23c;--color-warning: #d8a72a;--color-danger: #e03428;--color-text-primary: #dfe6c8;--color-text-secondary: #a3b088;--color-text-muted: #6d7a58;--color-input-solid: #10150f;--color-surface-solid: #171d15;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--blur-glass: none;--blur-heavy: none;--ra-lip: #8d9a6c;--ra-shadow: #070a07;--ra-steel: #2b3324;--ra-steel-dark: #1a2016;--ra-red: #b81b1b;--ra-phosphor: #9dff7a}:root[data-redalert=on] .app-sidebar,:root[data-redalert=on] .glass,:root[data-redalert=on] .glass-card{backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-redalert=on] body{background-color:#0b0f0c;background-image:linear-gradient(rgba(140,160,116,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(140,160,116,.05) 1px,transparent 1px);background-size:32px 32px,32px 32px}:root[data-redalert=on] .app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0f0cb3;pointer-events:none;z-index:0}:root[data-redalert=on] .app-sidebar{background-color:var(--ra-steel-dark);background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.03) 0px,rgba(255,255,255,.03) 1px,transparent 1px,transparent 5px),linear-gradient(90deg,rgba(141,154,108,.1),transparent 60%);border-right:3px solid var(--ra-shadow);box-shadow:inset -1px 0 0 var(--ra-lip)}:root[data-redalert=on] .nav-item.active{background:linear-gradient(180deg,#c8201c80,#6e0c0a80);box-shadow:inset 0 1px #e8f0c838,inset 0 -1px 0 var(--ra-shadow)}:root[data-redalert=on] .brand,:root[data-redalert=on] .page-header h1{letter-spacing:.08em;text-transform:uppercase}:root[data-redalert=on] .brand .brand-mark{border-radius:0;background:linear-gradient(180deg,#d02420,#6e0c0a);box-shadow:inset 0 1px #ffdcc859}:root[data-redalert=on] .glass,:root[data-redalert=on] .glass-card{background:#141a12;border:1px solid var(--ra-shadow);box-shadow:inset 0 1px #d6e8b41f,inset 0 -1px 0 var(--ra-shadow)}:root[data-redalert=on] .avatar-redalert{border-radius:0;object-fit:cover;background:var(--ra-steel);box-shadow:inset 0 0 0 1px var(--ra-lip)}.ra-page{display:flex;flex-direction:column}.ra-stage{position:relative;height:clamp(380px,calc(100dvh - 240px),820px);overflow:hidden;background:#0a0d09;border:3px solid var(--ra-shadow);box-shadow:inset 0 0 0 1px var(--ra-lip)}.ra-host{position:fixed;z-index:30;display:flex;background:#0a0d09;border:3px solid var(--ra-shadow);box-shadow:inset 0 0 0 1px var(--ra-lip)}.ra-field{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;background:#0a0d09;overflow:hidden}.ra-canvas{display:block;max-width:100%;max-height:100%;aspect-ratio:60 / 36;width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;cursor:crosshair;touch-action:none}.ra-sidebar{width:186px;flex:none;display:flex;flex-direction:column;gap:8px;padding:10px 8px;overflow-y:auto;background-color:var(--ra-steel);background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0px,rgba(255,255,255,.035) 1px,transparent 1px,transparent 4px);border-left:2px solid var(--ra-shadow);box-shadow:inset 1px 0 0 var(--ra-lip)}.ra-readout{display:flex;flex-direction:column;gap:4px}.ra-credits,.ra-power{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 7px;background:#0b1109;border:1px solid var(--ra-shadow);box-shadow:inset 0 0 8px #3cc83c1f}.ra-readout-label{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:#6d7a58}.ra-readout-value{font-family:var(--font-mono);font-size:.9rem;font-weight:700;color:var(--ra-phosphor);text-shadow:0 0 6px rgba(120,255,100,.45)}.ra-power-low .ra-readout-value{color:#ff7a5c;text-shadow:0 0 6px rgba(255,90,60,.5)}.ra-alarm-line{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:#ffd0c0;background:#b81b1bd9;padding:3px 0;animation:ra-blink 1.1s steps(1,end) infinite}@keyframes ra-blink{50%{opacity:.25}}.ra-build{display:flex;flex-direction:column;gap:4px}.ra-build-btn{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:5px 7px;overflow:hidden;cursor:pointer;text-align:left;color:#e4ecc8;background-color:#3a4530;background-image:linear-gradient(180deg,rgba(255,255,255,.08),transparent 60%);border:1px solid var(--ra-shadow);box-shadow:inset 0 1px #d6e8b43d,inset 0 -2px 0 var(--ra-shadow);font-family:var(--font-mono)}.ra-build-btn:hover:not(:disabled){background-color:#4a5840;color:#fff}.ra-build-btn:active:not(:disabled){box-shadow:inset 0 2px 0 var(--ra-shadow),inset 0 -1px #d6e8b424;transform:translateY(1px)}.ra-build-btn:disabled{cursor:not-allowed;color:#78846a;background-color:#262d20;box-shadow:inset 0 1px #d6e8b414,inset 0 -2px 0 var(--ra-shadow)}.ra-build-btn.is-locked{opacity:.55}.ra-build-name{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;position:relative;z-index:1}.ra-build-cost{font-size:.6rem;color:var(--ra-phosphor);position:relative;z-index:1}.ra-build-btn:disabled .ra-build-cost{color:#6d7a58}.ra-build-progress{position:absolute;left:0;top:0;bottom:0;z-index:0;background:#b81b1b8c;transition:width .12s linear}.ra-notice{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#ffd0a0;padding:4px 6px;background:#0006;border-left:2px solid var(--color-warning)}.ra-hint{margin:auto 0 0;font-size:.6rem;line-height:1.5;color:#8b9776}.ra-verdict{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 32px;text-align:center;background:#080b08eb;border:2px solid var(--ra-lip);box-shadow:0 0 0 1px var(--ra-shadow),0 8px 40px #000000b3}.ra-verdict strong{font-family:var(--font-mono);font-size:1.1rem;letter-spacing:.16em;text-transform:uppercase}.ra-verdict span{font-size:.75rem;color:var(--color-text-secondary)}.ra-verdict-win strong{color:var(--ra-phosphor);text-shadow:0 0 12px rgba(120,255,100,.5)}.ra-verdict-lose strong{color:#ff6a56;text-shadow:0 0 12px rgba(255,60,40,.5)}.ra-btn{border:1px solid var(--ra-shadow);background-color:#39432f;background-image:linear-gradient(180deg,rgba(255,255,255,.08),transparent 55%);box-shadow:inset 0 1px #d6e8b442,inset 0 -2px 0 var(--ra-shadow);color:#e4ecc8;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;cursor:pointer;text-shadow:0 1px 0 #000}.ra-btn:hover{background-color:#4c5940;color:#fff}.ra-btn:active{box-shadow:inset 0 2px 0 var(--ra-shadow),inset 0 -1px #d6e8b429;transform:translateY(1px)}.ra-btn-exit{color:#ffb0a0;background-color:#3a1a16}.ra-btn-exit:hover{background-color:#5a201a;color:#ffd8cc}.ra-menu{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background-color:#12180f;background-image:radial-gradient(ellipse at 50% 40%,#78c86414,#0000008c 55%,#000000eb),repeating-linear-gradient(180deg,rgba(160,220,140,.05) 0px,rgba(160,220,140,.05) 1px,transparent 1px,transparent 3px);overflow:auto}.ra-menu-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px 20px;min-height:0}.ra-menu-plaque{position:relative;width:min(560px,100%);text-align:center;padding:0 0 10px}.ra-menu-scan{position:absolute;left:50%;top:50%;width:240px;height:240px;margin:-120px 0 0 -120px;border-radius:50%;pointer-events:none;opacity:.5;background:conic-gradient(from 0deg,#78ff6e47,#78ff6e00 40%),radial-gradient(circle,transparent 62%,rgba(120,255,110,.14) 63%,transparent 65%);animation:ra-sweep 3.4s linear infinite}@keyframes ra-sweep{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ra-menu-scan,.ra-alarm-line{animation:none}}.ra-menu-title{position:relative;margin:0;font-family:var(--font-mono);font-size:clamp(2.4rem,9vw,4.6rem);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#e6402c;text-shadow:0 0 26px rgba(220,50,32,.55),0 3px 0 #4a0a06}.ra-menu-sub{position:relative;margin:4px 0 0;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.42em;text-transform:uppercase;color:#a3b088}.ra-start{display:inline-flex;align-items:center;gap:12px;padding:12px 26px;cursor:pointer;color:#fff0e2;background-color:#7d1512;background-image:linear-gradient(180deg,rgba(255,255,255,.14),transparent 60%);border:1px solid var(--ra-shadow);box-shadow:inset 0 1px #ffc8b452,inset 0 -3px #3a0806;font-family:var(--font-mono);font-size:.95rem;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 0 #000}.ra-start:hover{background-color:#a01c18;color:#fff}.ra-start:active{box-shadow:inset 0 3px #3a0806,inset 0 -1px #ffc8b433;transform:translateY(1px)}.ra-start-star{font-size:1.3rem;color:#ffd84a;text-shadow:0 0 10px rgba(255,216,74,.6)}.ra-panel{width:min(560px,100%);max-height:46vh;overflow:auto;padding:12px 14px;background:#080c08e6;border:1px solid var(--ra-lip);box-shadow:inset 0 0 0 1px var(--ra-shadow)}.ra-panel-head{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#e6402c;margin-bottom:8px}.ra-panel-group+.ra-panel-group{margin-top:12px}.ra-panel-sub{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#6d7a58;margin-bottom:4px}.ra-panel-list{margin:0}.ra-panel-row{display:flex;gap:12px;padding:2px 0;font-size:.72rem}.ra-panel-row dt{flex:none;width:132px;font-family:var(--font-mono);color:var(--ra-phosphor)}.ra-panel-row dd{margin:0;display:flex;gap:10px;color:#b8c49e}.ra-cost{font-family:var(--font-mono);color:#ffd84a}.ra-stat{color:#8b9776}.ra-panel-note{margin:0 0 6px;font-size:.7rem;line-height:1.55;color:#8b9776}.ra-menu-foot{display:flex;justify-content:center;gap:8px;padding:10px;background:#00000080;border-top:1px solid var(--ra-shadow);box-shadow:inset 0 1px #d6e8b41f}.ra-warning{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#7808046b;animation:ra-warning-pulse .62s steps(1,end) infinite}@keyframes ra-warning-pulse{50%{background:#140202b8}}.ra-warning-bars{position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(45deg,#1a1a1a 0,#1a1a1a 22px,#ffd400 22px,#ffd400 44px),repeating-linear-gradient(45deg,#1a1a1a 0,#1a1a1a 22px,#ffd400 22px,#ffd400 44px);background-size:100% 26px,100% 26px;background-position:0 0,0 100%;background-repeat:no-repeat;opacity:.9}.ra-warning-text{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-family:var(--font-mono);text-transform:uppercase}.ra-warning-text strong{font-size:clamp(2.6rem,12vw,6rem);letter-spacing:.2em;color:#ffe14a;text-shadow:0 0 30px rgba(255,200,40,.8),0 4px 0 #501000}.ra-warning-text span{font-size:clamp(.8rem,3.4vw,1.5rem);letter-spacing:.34em;color:#fff;text-shadow:0 0 18px rgba(255,80,40,.9)}@media (prefers-reduced-motion: reduce){.ra-warning{animation:none}}@media (max-width: 720px){.ra-host{flex-direction:column}.ra-sidebar{width:auto;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:6px;border-left:0;border-top:2px solid var(--ra-shadow);box-shadow:inset 0 1px 0 var(--ra-lip)}.ra-build{flex-direction:row;flex-wrap:wrap}.ra-build-btn{width:auto;flex:1 1 92px}.ra-hint{display:none}}.ra-credit{width:min(560px,100%);margin:0 auto;padding:8px 14px 12px;text-align:center;font-size:.6rem;line-height:1.6;color:#6d7a58}.ra-credit-link{font-family:var(--font-mono);color:#8b9776}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{--color-bg-base: #0a0c12;--color-bg-layer1: rgba(255, 255, 255, .04);--color-bg-layer2: rgba(255, 255, 255, .08);--color-bg-layer3: rgba(255, 255, 255, .13);--color-glass-border: rgba(255, 255, 255, .12);--color-glass-shine: rgba(255, 255, 255, .06);--color-accent: #3b82f6;--color-accent-glow: rgba(59, 130, 246, .35);--color-accent-alt: #06b6d4;--bg-orb-1: rgba(59, 130, 246, .32);--bg-orb-2: rgba(6, 182, 212, .14);--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-text-primary: rgba(255, 255, 255, .92);--color-text-secondary: rgba(255, 255, 255, .55);--color-text-muted: rgba(255, 255, 255, .3);--color-input-solid: #141a26;--color-surface-solid: #161d2b;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--blur-glass: blur(18px) saturate(1.4);--blur-heavy: blur(32px) saturate(1.6);--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--sidebar-width: 240px;--bottomnav-height: 64px;--header-height: 64px}:root[data-theme=light]{--color-bg-base: #eef1f6;--color-bg-layer1: rgba(15, 23, 42, .04);--color-bg-layer2: rgba(15, 23, 42, .07);--color-bg-layer3: rgba(15, 23, 42, .12);--color-glass-border: rgba(15, 23, 42, .12);--color-glass-shine: rgba(255, 255, 255, .6);--color-text-primary: rgba(15, 23, 42, .92);--color-text-secondary: rgba(15, 23, 42, .6);--color-text-muted: rgba(15, 23, 42, .38);--color-input-solid: #ffffff;--color-surface-solid: #ffffff}body{font-family:var(--font-sans);color:var(--color-text-primary);font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;margin:0}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}h4{font-size:1rem}p{margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.mono{font-family:var(--font-mono);letter-spacing:-.01em}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.5rem}.text-2xl{font-size:2rem}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.uppercase{text-transform:uppercase;letter-spacing:.06em}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-card{position:relative;min-width:0;background:var(--color-bg-layer2);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);box-shadow:0 0 0 .5px #ffffff0a inset,0 8px 32px #00000073,0 1px #ffffff14 inset}.glass-card:before{content:"";position:absolute;top:0;left:12px;right:12px;height:1px;background:linear-gradient(90deg,transparent,var(--color-glass-shine),rgba(255,255,255,.18),var(--color-glass-shine),transparent);pointer-events:none;border-radius:1px}:root[data-theme=light] .glass-card{box-shadow:0 0 0 .5px #ffffff80 inset,0 8px 28px #0f172a1f,0 1px #fff9 inset}.glass-panel{background:#ffffff0d;backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--color-glass-border)}:root[data-theme=light] .glass-panel{background:#ffffffbf}.glass-inset{background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);border-radius:var(--radius-md)}.glass-hover{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.glass-hover:hover{transform:translateY(-2px);border-color:#ffffff38;box-shadow:0 0 0 .5px #ffffff0d inset,0 14px 40px #0000008c,0 0 24px var(--color-accent-glow)}.app-shell{display:flex;min-height:100vh;min-height:100dvh}.view-as-banner{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;gap:10px;padding:8px 16px;font-size:13px;color:#1c1300;background:var(--color-warning);box-shadow:0 2px 12px #00000040}.view-as-banner-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-as-banner-detail{opacity:.75}.view-as-banner-exit{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:4px 10px;font:inherit;font-weight:600;color:inherit;cursor:pointer;background:#0000001f;border:1px solid rgba(0,0,0,.25);border-radius:6px}.view-as-banner-exit:hover{background:#0003}.app-shell.is-previewing .app-sidebar,.app-shell.is-previewing .app-main{padding-top:52px}.app-shell.is-previewing{outline:2px solid var(--color-warning);outline-offset:-2px}@media (max-width: 640px){.view-as-banner-detail{display:none}}:root{--update-ribbon-height: 40px}.update-ribbon{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;min-height:var(--update-ribbon-height);padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top));font-size:.86rem;color:#fff;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-alt));box-shadow:0 2px 12px #00000040;animation:ribbon-slide-down .22s ease}.update-ribbon-detail{opacity:.85}.update-ribbon-action{flex-shrink:0;padding:4px 12px;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-md);background:#ffffff24;color:#fff;font:inherit;font-weight:600;cursor:pointer}.update-ribbon-action:hover{background:#ffffff42}.update-ribbon-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.app-shell.is-updating .app-sidebar,.app-shell.is-updating .app-main{padding-top:var(--update-ribbon-height)}.app-shell.is-previewing.is-updating .app-sidebar,.app-shell.is-previewing.is-updating .app-main{padding-top:calc(52px + var(--update-ribbon-height))}.app-shell.is-updating .view-as-banner{top:var(--update-ribbon-height)}@media (max-width: 600px){.update-ribbon{font-size:.8rem;gap:8px}.update-ribbon-detail{display:none}}@keyframes ribbon-slide-down{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);display:flex;flex-direction:column;padding:20px 14px;background:#ffffff08;backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border-right:1px solid var(--color-glass-border);z-index:40}.app-main{flex:1;margin-left:var(--sidebar-width);padding:28px 32px 60px;width:calc(100% - var(--sidebar-width));max-width:1400px}.app-topbar{display:flex;justify-content:flex-end;margin-bottom:20px}.global-search{position:relative;width:100%;max-width:460px}.global-search-panel{position:absolute;top:100%;left:0;right:0;margin-top:6px;z-index:70;background:var(--color-surface-solid);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #0000008c;padding:8px;max-height:70vh;overflow-y:auto}.gs-group+.gs-group{margin-top:8px}.gs-group-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:4px 12px}.gs-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 12px;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-primary);min-height:40px}.gs-item:hover{background:var(--color-bg-layer2)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-header h1{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:700;font-size:1.15rem}.brand .brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-alt));color:#fff;box-shadow:0 4px 16px var(--color-accent-glow)}.nav-list{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;padding-right:4px;margin-right:-4px}.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:500;font-size:.95rem;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease;min-height:44px;background:transparent;border:none;width:100%;text-align:left}.nav-item:hover{background:var(--color-bg-layer1);color:var(--color-text-primary);text-decoration:none}.nav-item.active{background:var(--color-bg-layer3);color:var(--color-text-primary)}.nav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow)}.nav-group-row .nav-group-caret{margin-left:auto;opacity:.45;transition:transform .15s ease,opacity .15s ease}.nav-group-row:hover .nav-group-caret,.nav-group-row.is-open .nav-group-caret{opacity:.9}.nav-group-row.is-open{background:var(--color-bg-layer1);color:var(--color-text-primary)}.nav-group-row.is-open .nav-group-caret{transform:translate(2px)}.nav-flyout{position:fixed;z-index:400;display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--color-surface-solid);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #0000008c}.nav-flyout-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:2px 12px 6px}.nav-flyout-item{padding:9px 12px;min-height:40px;font-size:.92rem}.nav-drawer-section{display:flex;flex-direction:column;gap:4px}.nav-drawer-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:6px 14px 2px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:12px 10px;margin-top:8px;border-top:1px solid var(--color-glass-border)}.bottom-nav{display:none}.grid{display:grid;gap:16px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.flex-1{flex:1}.gap-8{gap:8px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}@media (max-width: 768px){.app-sidebar{display:none}.app-main{margin-left:0;width:100%;padding:calc(18px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(var(--bottomnav-height) + 24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--bottomnav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:#0a0c12b3;backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border-top:1px solid var(--color-glass-border);z-index:50}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--color-text-secondary);font-size:.68rem;font-family:inherit;min-height:44px;cursor:pointer;background:transparent;border:none;text-decoration:none}.bottom-nav-item.active{color:var(--color-accent)}.grid-cards{grid-template-columns:1fr}.page-header h1{font-size:1.4rem}}:root[data-theme=light] .app-sidebar{background:#ffffffb3}:root[data-theme=light] .bottom-nav{background:#fffc}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);border:1px solid transparent;font-family:var(--font-sans);font-size:.9rem;font-weight:600;cursor:pointer;min-height:44px;transition:background .15s ease,box-shadow .15s ease,transform .15s ease,border-color .15s ease;white-space:nowrap;color:var(--color-text-primary);background:transparent}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;box-shadow:0 2px 12px #3b82f640}.btn-primary:hover{box-shadow:0 4px 20px var(--color-accent-glow)}.btn-secondary{background:transparent;border-color:var(--color-glass-border);color:var(--color-text-primary)}.btn-secondary:hover{background:var(--color-bg-layer1);border-color:var(--color-text-muted)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{box-shadow:0 4px 20px #ef444459}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover,.btn-ghost.active{background:var(--color-bg-layer1);color:var(--color-text-primary)}.btn-icon{padding:10px;width:44px}.btn-sm{padding:6px 12px;min-height:36px;font-size:.82rem}.fab{position:fixed;right:18px;bottom:calc(var(--bottomnav-height) + 18px);width:56px;height:56px;border-radius:50%;background:var(--color-accent);color:#fff;border:none;display:none;align-items:center;justify-content:center;box-shadow:0 8px 28px var(--color-accent-glow);cursor:pointer;z-index:45}@media (max-width: 768px){.fab{display:flex}}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.input,.select,.textarea{width:100%;background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);font-size:.92rem;padding:10px 12px;min-height:44px;transition:border-color .15s ease,box-shadow .15s ease;outline:none}.textarea{min-height:96px;resize:vertical;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--color-text-muted)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-color:var(--color-input-solid);background-image:linear-gradient(45deg,transparent 50%,var(--color-text-secondary) 50%),linear-gradient(135deg,var(--color-text-secondary) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}.select option{background:var(--color-surface-solid);color:var(--color-text-primary)}.ss-trigger{background:var(--color-input-solid);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.92rem;padding:10px 12px;min-height:44px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.ss-trigger:hover{border-color:#ffffff38}.ss-trigger.open,.ss-trigger:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.ss-trigger:focus{outline:none}.ss-trigger>span:first-child{min-width:0}.ss-clear{display:grid;place-items:center;padding:2px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.ss-clear:hover{background:var(--color-bg-layer2);color:var(--color-text-primary)}.ms-trigger{display:flex;align-items:center;gap:8px}.ms-trigger.is-disabled{opacity:.6;cursor:default}.ms-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}.ms-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;border-radius:999px;background:var(--color-bg-layer2);border:1px solid var(--color-glass-border);font-size:.8rem;line-height:1.4}.ms-chip-x{display:grid;place-items:center;padding:1px;border:0;border-radius:999px;background:transparent;color:var(--color-text-muted);cursor:pointer}.ms-chip-x:hover{background:var(--color-bg-layer1);color:var(--color-text-primary)}.ss-panel{display:flex;flex-direction:column;gap:8px;background:var(--color-surface-solid);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #0000008c;padding:8px;max-height:min(320px,50vh);overflow:hidden}.ss-search{background:var(--color-input-solid)!important;flex:none}.ss-options{overflow-y:auto;margin:0 -2px;padding:0 2px}.ss-empty{padding:10px 12px}.ss-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-primary);min-height:40px}.ss-option-text{min-width:0;flex:1}.ss-option:hover{background:var(--color-bg-layer2)}.ss-option.is-selected{background:#3b82f61f}.ss-option.is-selected:hover{background:#3b82f633}.field-error{color:var(--color-danger);font-size:.78rem}.input.has-error,.select.has-error,.textarea.has-error{border-color:var(--color-danger)}.tag-input{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);padding:6px 8px;min-height:44px;cursor:text;transition:border-color .15s ease,box-shadow .15s ease}.tag-input:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.tag-input.has-error{border-color:var(--color-danger)}.tag-input.is-disabled{opacity:.6;cursor:default}.tag-input-entry{flex:1 1 8ch;min-width:8ch;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-sans);font-size:.92rem;padding:4px 2px;min-height:30px}.tag-input-entry::placeholder{color:var(--color-text-muted)}.tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 4px 4px 10px;border-radius:999px;font-size:.8rem;background:#3b82f626;border:1px solid var(--color-accent);color:var(--color-accent)}.tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-remove{display:inline-grid;place-items:center;width:18px;height:18px;flex-shrink:0;border:none;border-radius:999px;background:transparent;color:inherit;cursor:pointer;padding:0}.tag-remove:hover{background:#3b82f640}.tag-remove:disabled{cursor:default;opacity:.5}.search-bar{position:relative}.search-bar .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-muted)}.search-bar .input{padding-left:38px}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:capitalize;white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background:#10b98126;color:var(--color-success)}.badge-warning{background:#f59e0b26;color:var(--color-warning)}.badge-danger{background:#ef444426;color:var(--color-danger)}.badge-accent{background:#3b82f626;color:var(--color-accent)}.badge-cyan{background:#06b6d426;color:var(--color-accent-alt)}.badge-muted{background:#ffffff14;color:var(--color-text-secondary)}.progress-track{width:100%;height:8px;border-radius:999px;background:var(--color-glass-border);overflow:hidden}.progress-fill{display:block;height:100%;border-radius:999px;background:var(--color-accent);transition:width .16s ease}.tab-pills{display:flex;gap:6px;padding:4px;border-radius:var(--radius-lg);background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);width:fit-content;max-width:100%;overflow-x:auto}.tab-pill{padding:8px 16px;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;border:none;background:transparent;white-space:nowrap;min-height:40px}.tab-pill.active{background:var(--color-bg-layer3);color:var(--color-text-primary)}.settings-nav{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-end}.settings-nav-group{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}.settings-nav-label{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding-left:2px}.side-toggle{display:flex;gap:4px;padding:4px;border-radius:var(--radius-lg);background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);width:100%;overflow:hidden}.side-toggle .tab-pill{flex:1;min-width:0;min-height:34px;padding:6px 8px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.switch{flex:none;width:42px;height:24px;border-radius:999px;border:1px solid var(--color-glass-border);background:var(--color-bg-layer2);padding:0;cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease}.switch:disabled{opacity:.5;cursor:not-allowed}.switch .switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--color-text-secondary);transition:transform .15s ease,background .15s ease}.switch.on{background:var(--color-accent);border-color:transparent}.switch.on .switch-thumb{transform:translate(18px);background:#fff}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:6px 0}.settings-section-title{display:flex;align-items:center;gap:8px;margin-bottom:16px}.colorpicker{position:relative;display:inline-block}.colorpicker-trigger{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--color-glass-border);background:var(--color-bg-layer1);color:var(--color-text-primary);cursor:pointer;min-height:40px}.colorpicker-swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--color-glass-border);flex:none}.colorpicker-pop{width:100%;padding:14px;display:flex;flex-direction:column;gap:12px}.colorpicker-sv{position:relative;width:100%;height:150px;border-radius:var(--radius-md);cursor:crosshair;touch-action:none}.colorpicker-hue{position:relative;width:100%;height:16px;border-radius:999px;cursor:pointer;touch-action:none;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-thumb{position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0006;transform:translate(-50%,-50%);pointer-events:none}.colorpicker-hex{width:100%;text-align:center}.pdf-fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:var(--color-bg-base);display:flex;flex-direction:column}.pdf-fs-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--color-glass-border);background:var(--color-surface-solid)}.pdf-fs-body{flex:1;overflow:auto;text-align:center;padding:12px 8px calc(12px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.camera-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#000}.camera-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.camera-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.camera-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;color:#fff;text-align:center;padding:32px 24px;display:flex;align-items:center;justify-content:center}.camera-topbar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 16px 28px;color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent)}.camera-title{display:flex;flex-direction:column;gap:2px;min-width:0}.camera-hint{position:absolute;left:50%;transform:translate(-50%);bottom:calc(180px + env(safe-area-inset-bottom));z-index:2;max-width:min(420px,calc(100vw - 48px));padding:8px 14px;border-radius:var(--radius-md);background:#0009;color:#fff;font-size:.85rem;text-align:center}.camera-thumbs{position:absolute;left:0;right:0;bottom:calc(112px + env(safe-area-inset-bottom));z-index:2;display:flex;gap:8px;padding:10px 14px;overflow-x:auto}.camera-thumb{position:relative;flex:none}.camera-thumb img{width:56px;height:56px;object-fit:cover;border-radius:8px;display:block}.camera-thumb-del{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.camera-controls{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:24px 24px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,0,0,.55),transparent)}@media (orientation: landscape){.camera-topbar{top:0;bottom:0;left:0;right:auto;width:auto;flex-direction:column;justify-content:flex-start;gap:16px;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:linear-gradient(to right,rgba(0,0,0,.5),transparent)}.camera-controls{top:0;bottom:0;right:0;left:auto;width:auto;flex-direction:column;justify-content:center;gap:24px;padding:24px max(20px,env(safe-area-inset-right)) 24px 24px;background:linear-gradient(to left,rgba(0,0,0,.55),transparent)}.camera-thumbs{top:auto;bottom:max(14px,env(safe-area-inset-bottom));left:64px;right:calc(96px + env(safe-area-inset-right));justify-content:center}}.camera-icon-btn{background:#ffffff1f;color:#fff;border:none;cursor:pointer;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}.camera-icon-btn:disabled{opacity:.4}.camera-shutter{width:72px;height:72px;border-radius:50%;background:#fff;color:#111;border:4px solid rgba(255,255,255,.4);cursor:pointer;display:flex;align-items:center;justify-content:center}.camera-shutter:active{transform:scale(.94)}.camera-shutter:disabled{opacity:.5}.camera-done{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent);color:#fff;border:none;cursor:pointer;padding:12px 18px;border-radius:999px;font-family:inherit;font-weight:600;font-size:.9rem}.datepicker{width:100%}.datepicker-trigger{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer}.datepicker-pop{width:100%;padding:12px}.datepicker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker-dow{text-align:center;font-size:.7rem;color:var(--color-text-muted);padding:4px 0}.datepicker-day{aspect-ratio:1;border:none;background:transparent;color:var(--color-text-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-family:inherit;min-height:34px}.datepicker-day:hover{background:var(--color-bg-layer2)}.datepicker-day.today{box-shadow:0 0 0 1px var(--color-glass-border) inset}.datepicker-day.selected{background:var(--color-accent);color:#fff}.datepicker-time{display:flex;align-items:center;gap:8px;margin-top:10px}.datepicker-time .input{width:auto;flex:none;max-width:130px;padding:6px 8px;min-height:36px}.datepicker-time .input.is-invalid{border-color:var(--color-danger)}.crop-frame{position:relative;overflow:hidden;border-radius:50%;background:var(--color-bg-layer2);cursor:grab;-webkit-user-select:none;user-select:none;flex:none}.crop-frame:active{cursor:grabbing}.crop-frame-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 2px var(--color-accent) inset,0 0 0 9999px #00000059;pointer-events:none}.crop-frame--square,.crop-frame--square .crop-frame-ring{border-radius:12px}.crop-frame--alpha{background-color:#fff;background-image:linear-gradient(45deg,#d4d4d4 25%,transparent 25%,transparent 75%,#d4d4d4 75%),linear-gradient(45deg,#d4d4d4 25%,transparent 25%,transparent 75%,#d4d4d4 75%);background-size:16px 16px;background-position:0 0,8px 8px}.card-pad{padding:18px}.metric-card{padding:18px 20px;display:flex;flex-direction:column;gap:6px}.metric-card .metric-value{font-size:1.9rem;font-weight:700}.metric-card .metric-label{color:var(--color-text-secondary);font-size:.85rem}.metric-card .metric-icon{color:var(--color-accent)}.list-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius-md);background:var(--color-bg-layer1);border:1px solid var(--color-glass-border);transition:background .15s ease,border-color .15s ease;cursor:pointer}.list-item:hover{background:var(--color-bg-layer2);border-color:#fff3;text-decoration:none}@media (max-width: 768px){.cust-device-card{flex-wrap:wrap;row-gap:8px}.cust-device-card>.flex-1{min-width:0}.cust-device-card .device-meta{flex-basis:100%;flex-wrap:wrap;justify-content:flex-start}}.list-item .item-icon{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--color-bg-layer2);color:var(--color-accent)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:500;border:1px solid var(--color-glass-border);background:var(--color-bg-layer1);color:var(--color-text-secondary);cursor:pointer;min-height:36px;display:inline-flex;align-items:center}.chip.active{background:#3b82f626;border-color:var(--color-accent);color:var(--color-accent)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05070c99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));z-index:100;animation:fade-in .15s ease}.modal{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:22px;animation:pop-in .18s ease}.modal-lg{max-width:880px}:root[data-theme=light] .overlay{background:#0f172a47}:root[data-theme=light] .modal{background:#ffffffe6}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:6px;border-radius:var(--radius-sm)}.modal-close:hover{background:var(--color-bg-layer1);color:var(--color-text-primary)}.cp-timeline{list-style:none;margin:0;padding:0}.cp-version{position:relative;padding-left:26px;padding-bottom:16px}.cp-version:last-child{padding-bottom:0}.cp-version:before{content:"";position:absolute;left:6px;top:6px;bottom:-2px;width:2px;background:var(--color-glass-border)}.cp-version:last-child:before{display:none}.cp-version:after{content:"";position:absolute;left:1px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--color-bg-layer1);border:2px solid var(--color-glass-border)}.cp-version.is-latest:after{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 8px var(--color-accent-glow)}.cp-changelog{border-left:2px solid var(--color-glass-border);padding-left:10px}.cp-changelog-body{white-space:pre-wrap;margin:4px 0 0}.cp-group-header{width:100%;align-items:center;background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left}.cp-group-header .fw-600{flex:1;min-width:0}.cp-brand-list{margin-top:12px;display:flex;flex-direction:column;gap:12px}.cp-brand-group{display:flex;flex-direction:column;gap:4px}.cp-brand-label{font-size:.72rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.cp-brand-rule{height:1px;background:var(--color-glass-border)}.cp-lineage-list{display:flex;flex-direction:column;gap:4px}.cp-lineage-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease}.cp-lineage-row:hover{background:var(--color-bg-layer1);border-color:var(--color-glass-border)}.cp-lineage-row .mono{min-width:0}.cp-lineage-by{flex:1;text-align:right;min-width:0}.cp-lineage-actions{align-items:center}@media (max-width: 640px){.cp-lineage-by{display:none}}.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{width:100%;max-width:360px;height:100%;border-radius:0;padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) 22px;animation:slide-in .2s ease;overflow-y:auto}@keyframes fade-out{to{opacity:0}}@keyframes modal-out{to{opacity:0;transform:scale(.96)}}@keyframes drawer-out{to{transform:translate(100%)}}.overlay.is-closing{animation:fade-out .18s ease forwards;pointer-events:none}.modal.is-closing{animation:modal-out .16s ease forwards}.drawer.is-closing{animation:drawer-out .2s ease forwards}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th{text-align:left;padding:12px 14px;color:var(--color-text-secondary);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-glass-border);cursor:pointer;white-space:nowrap}.data-table td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.05)}.data-table tbody tr{cursor:pointer;transition:background .12s ease}.data-table tbody tr:hover{background:var(--color-bg-layer1)}.data-table tbody tr.row-selected{background:var(--color-bg-layer2)}.data-table tbody tr.group-row,.data-table tbody tr.group-row:hover{cursor:default;background:var(--color-bg-layer1)}.data-table tbody tr.group-row td{padding:8px 14px;background:var(--color-bg-layer1);border-bottom:1px solid var(--color-glass-border);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.group-heading{padding:4px 2px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.comment{display:flex;gap:12px;padding:12px 0}.comment-attachments{display:flex;flex-wrap:wrap;gap:8px}.comment-attachment-image,.comment-attachment-draft{position:relative;width:96px;height:96px;padding:0;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-layer1);cursor:pointer}.comment-attachment-image img,.comment-attachment-draft img{width:100%;height:100%;object-fit:cover;display:block}.comment-attachment-draft{cursor:default}.comment-attachment-draft button{position:absolute;top:4px;right:4px;width:20px;height:20px;display:grid;place-items:center;border:none;border-radius:50%;background:#0009;color:#fff;cursor:pointer}.comment-attachment-draft button:hover{background:#000c}.comment-attachment-file{font:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:6px;max-width:220px;padding:6px 10px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1);color:var(--color-text-secondary);text-decoration:none}.comment-attachment-file:hover{color:var(--color-text)}.avatar{width:36px;height:36px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-alt));color:#fff;font-weight:600;font-size:.85rem}.avatar-sm{width:28px;height:28px;font-size:.72rem}.avatar-lg{width:72px;height:72px;font-size:1.6rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.photo-tile{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-glass-border);background:var(--color-bg-layer1)}.photo-tile img{width:100%;height:150px;object-fit:cover;display:block;cursor:pointer}.photo-caption{padding:8px 10px;font-size:.78rem;color:var(--color-text-secondary)}.photo-delete{position:absolute;top:6px;right:6px;background:#0000008c;border:none;color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;display:grid;place-items:center}.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.attach-tile{border:1px solid var(--color-glass-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-layer1)}.attach-tile img{width:100%;height:110px;object-fit:cover}.attach-file{height:110px;display:grid;place-items:center;color:var(--color-text-secondary)}.attach-meta{padding:8px;display:flex;align-items:center;justify-content:space-between;gap:6px}.file-name{display:inline-flex;align-items:baseline;min-width:0;max-width:100%}.file-name-stem{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.file-name-ext{flex:none;color:var(--color-text-muted)}.pdf-page{display:inline-block;margin:0 auto 12px}.pdf-page:last-child{margin-bottom:0}.pdf-highlight{background:#facc1573;color:transparent;border-radius:2px}.pdf-highlight-active{background:#f97316bf}.dropzone{border:1.5px dashed var(--color-glass-border);border-radius:var(--radius-lg);padding:26px;text-align:center;color:var(--color-text-secondary);cursor:pointer;background:var(--color-bg-layer1);transition:border-color .15s ease,background .15s ease}.dropzone.active{border-color:var(--color-accent);background:#3b82f614}.state-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:50px 20px;text-align:center;color:var(--color-text-secondary)}.state-block .state-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--color-bg-layer2);color:var(--color-text-muted)}.skeleton{background:linear-gradient(90deg,var(--color-bg-layer1) 25%,var(--color-bg-layer2) 50%,var(--color-bg-layer1) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-md)}.skeleton-card{height:120px}.skeleton-line{height:14px;margin-bottom:8px}.spinner{width:28px;height:28px;border:3px solid var(--color-bg-layer3);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.tiptap-toolbar{display:flex;gap:4px;flex-wrap:wrap;padding:8px;border-radius:var(--radius-md) var(--radius-md) 0 0;border:1px solid var(--color-glass-border);border-bottom:none;background:var(--color-bg-layer2);overflow-x:auto}.tiptap-toolbar button{background:transparent;border:none;color:var(--color-text-secondary);width:34px;height:34px;border-radius:var(--radius-sm);cursor:pointer;display:grid;place-items:center;flex-shrink:0}.tiptap-toolbar button:hover{background:var(--color-bg-layer1);color:var(--color-text-primary)}.tiptap-toolbar button.active{background:#3b82f62e;color:var(--color-accent)}.ProseMirror{min-height:160px;padding:14px;border:1px solid var(--color-glass-border);border-radius:0 0 var(--radius-md) var(--radius-md);background:var(--color-bg-layer1);outline:none;line-height:1.6}.rich-charcount{margin-top:6px;text-align:right;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.rich-charcount.is-over{color:var(--color-danger);font-weight:600}.ProseMirror p{margin:0 0 .5em}.ProseMirror:focus{border-color:var(--color-accent)}.ProseMirror h1{font-size:1.5rem;margin:.6em 0 .3em}.ProseMirror h2{font-size:1.25rem;margin:.6em 0 .3em}.ProseMirror ul,.ProseMirror ol{padding-left:1.4em;margin:.4em 0}.ProseMirror img{max-width:100%;border-radius:var(--radius-md)}.ProseMirror a{color:var(--color-accent)}.rich-content{line-height:1.7}.rich-content h1{font-size:1.5rem;margin:.6em 0 .3em}.rich-content h2{font-size:1.25rem;margin:.6em 0 .3em}.rich-content ul,.rich-content ol{padding-left:1.4em;margin:.5em 0}.rich-content p{margin:0 0 .6em}.rich-content img{max-width:100%;border-radius:var(--radius-md)}.rich-content a{color:var(--color-accent)}.rich-content .ProseMirror{min-height:0;padding:0;border:0;border-radius:0;background:transparent;line-height:inherit}.scanner-video{width:100%;border-radius:var(--radius-md);background:#000;aspect-ratio:4 / 3;object-fit:cover}.scan-reticle{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;overflow:hidden;border-radius:var(--radius-md)}.scan-reticle .frame{position:relative;width:74%;aspect-ratio:4 / 1;border-radius:var(--radius-md)}.scan-reticle .corner{position:absolute;width:26px;height:26px;border:3px solid var(--color-accent)}.scan-reticle .tl{top:0;left:0;border-right:none;border-bottom:none;border-radius:6px 0 0}.scan-reticle .tr{top:0;right:0;border-left:none;border-bottom:none;border-radius:0 6px 0 0}.scan-reticle .bl{bottom:0;left:0;border-right:none;border-top:none;border-radius:0 0 0 6px}.scan-reticle .br{bottom:0;right:0;border-left:none;border-top:none;border-radius:0 0 6px}.scan-reticle .frame{overflow:hidden;box-shadow:0 0 0 100vmax #06080c80,0 0 22px 2px var(--color-accent-glow);animation:reticle-glow 1.6s ease-in-out infinite}@keyframes reticle-glow{0%,to{box-shadow:0 0 0 100vmax #06080c80,0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 0 100vmax #06080c80,0 0 24px 2px var(--color-accent-glow)}}.scan-line{position:absolute;left:6%;right:6%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);box-shadow:0 0 12px 2px var(--color-accent-glow);animation:scan-sweep 2s ease-in-out infinite}@keyframes scan-sweep{0%{top:8%;opacity:0}15%{opacity:1}50%{top:90%;opacity:1}85%{opacity:1}to{top:8%;opacity:0}}@media (prefers-reduced-motion: reduce){.scan-line{animation:none;top:50%;opacity:.9}}.scan-success{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0a0c1247;border-radius:var(--radius-md);animation:scan-confirm .45s ease forwards;pointer-events:none}.scan-success-badge{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;color:#fff;background:var(--color-accent);box-shadow:0 6px 24px var(--color-accent-glow),0 0 0 6px #ffffff1f;animation:scan-confirm-badge .45s var(--ease-out-soft) forwards}@keyframes scan-confirm{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes scan-confirm-badge{0%{transform:scale(.4);opacity:0}35%{transform:scale(1.08);opacity:1}60%{transform:scale(1)}to{transform:scale(1);opacity:0}}.scan-stage{position:relative}.customer-card{position:relative;overflow:hidden}.customer-card-body{position:relative;z-index:1}.customer-card-logo{position:absolute;right:-18px;bottom:-18px;width:140px;height:140px;object-fit:contain;transform:rotate(-8deg);opacity:.07;filter:grayscale(1) brightness(2);pointer-events:none;z-index:0}:root[data-theme=light] .customer-card-logo{opacity:.06;filter:grayscale(1) brightness(.35)}.login-wrap{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.login-card{width:100%;max-width:400px;padding:32px}.login-notice{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;padding:10px 12px;border:1px solid rgba(245,158,11,.4);border-radius:10px;background:#f59e0b1f;color:var(--color-text-secondary);font-size:.82rem;line-height:1.4}.login-notice svg{flex:none;margin-top:1px;color:var(--color-warning)}.divider{height:1px;background:var(--color-glass-border);margin:16px 0}.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 16px}.kv dt{color:var(--color-text-secondary);font-size:.85rem}.kv dd{margin:0;font-size:.9rem}.toast-host{position:fixed;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:max-content;max-width:min(420px,calc(100vw - 32px))}.toast{padding:12px 18px;border-radius:var(--radius-md);font-size:.88rem;line-height:1.4;text-align:center;background:var(--color-surface-solid);box-shadow:0 10px 30px #00000059;animation:toast-drop .15s ease}@keyframes toast-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast-error{background-image:linear-gradient(#ef444438,#ef444438);color:#fecaca;border:1px solid rgba(239,68,68,.4)}.toast-success{background-image:linear-gradient(#10b98138,#10b98138);color:#a7f3d0;border:1px solid rgba(16,185,129,.4)}:root[data-theme=light] .toast-error{color:#991b1b}:root[data-theme=light] .toast-success{color:#065f46}.connection-notice{position:fixed;z-index:330;left:50%;transform:translate(-50%);bottom:calc(var(--bottomnav-height) + 12px + env(safe-area-inset-bottom));display:flex;align-items:flex-start;gap:10px;max-width:min(460px,calc(100vw - 24px));padding:10px 14px;border-radius:var(--radius-md);font-size:.84rem;line-height:1.4;background:var(--color-surface-solid);background-image:linear-gradient(#f59e0b38,#f59e0b38);border:1px solid rgba(245,158,11,.4);color:#fde68a;box-shadow:0 10px 30px #00000059;pointer-events:none;animation:toast-drop-up .15s ease}.connection-notice svg{flex-shrink:0;margin-top:2px}.connection-notice.is-back{background-image:linear-gradient(#10b98138,#10b98138);border-color:#10b98166;color:#a7f3d0;align-items:center}.connection-notice.is-back svg{margin-top:0}@keyframes toast-drop-up{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}:root[data-theme=light] .connection-notice{color:#92400e}:root[data-theme=light] .connection-notice.is-back{color:#065f46}.install-prompt{position:fixed;z-index:120;left:16px;right:16px;bottom:calc(var(--bottomnav-height) + 12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;padding:12px 14px;animation:pop-in .2s ease}.install-prompt-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0}.install-prompt-body{flex:1;min-width:0}.install-prompt-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.install-prompt-close{display:grid;place-items:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md)}.install-prompt-close:hover{background:var(--color-bg-layer1);color:var(--color-text-primary)}@media (min-width: 769px){.install-prompt{left:auto;right:24px;bottom:24px;max-width:420px}}@media (max-width: 768px){.kv{grid-template-columns:1fr;gap:2px;margin-bottom:4px}.kv dt{margin-top:8px}.modal{max-height:92vh}}.brand-logo-tile{width:84px;height:84px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);background:var(--color-bg-layer1);overflow:hidden}.brand-logo-tile img{width:100%;height:100%;object-fit:contain;display:block;padding:8px}.chart-figure svg{display:block;width:100%;height:auto;overflow:visible}.bulk-progress-label{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--color-text-secondary)}.bulk-progress-label .pct{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-text-primary)}.context-menu{position:fixed;z-index:500;min-width:190px;padding:6px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-surface-solid);box-shadow:0 12px 32px #00000059}.context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-family:inherit;font-size:.86rem;text-align:left;cursor:pointer}.context-menu-item:hover:not(:disabled){background:var(--color-bg-layer2)}.context-menu-item:disabled{color:var(--color-text-muted);cursor:default}.context-menu-item.danger{color:var(--color-danger)}.context-menu-item.danger:hover:not(:disabled){background:#ef44441f}.context-menu-sep{height:1px;margin:5px 6px;background:var(--color-glass-border)}.action-menu{position:static;min-width:0;width:100%}.password-feedback{display:flex;flex-direction:column;gap:8px;margin-top:-4px}.password-meter{display:flex;align-items:center;gap:10px}.password-meter-track{flex:1;height:5px;border-radius:999px;background:var(--color-bg-layer2);overflow:hidden}.password-meter-fill{height:100%;border-radius:999px;background:var(--color-text-muted);transition:width .22s ease,background-color .22s ease}.password-meter-label{min-width:74px;font-size:.72rem;font-weight:600;letter-spacing:.01em;text-align:right;color:var(--color-text-muted)}.password-meter-fill.level-very-weak{background:var(--color-danger)}.password-meter-fill.level-weak{background:#f97316}.password-meter-fill.level-fair{background:var(--color-warning)}.password-meter-fill.level-strong{background:#84cc16}.password-meter-fill.level-very-strong{background:var(--color-success)}.password-meter-label.level-very-weak{color:var(--color-danger)}.password-meter-label.level-weak{color:#f97316}.password-meter-label.level-fair{color:var(--color-warning)}.password-meter-label.level-strong{color:#84cc16}.password-meter-label.level-very-strong{color:var(--color-success)}.password-rules{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.password-rules li{display:flex;align-items:center;gap:7px;color:var(--color-text-muted);font-size:.78rem;line-height:1.3}.password-rules li svg{flex-shrink:0;opacity:.7}.password-rules li.met{color:var(--color-success)}.password-rules li.met svg{opacity:1}.password-rules li.note svg{opacity:.55}.external-info-frame{display:block;width:100%;height:min(72vh,900px);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:#fff}.external-page{max-width:100%}.external-page img{max-width:100%;height:auto}.external-page table{display:block;width:100%;overflow-x:auto;border-collapse:collapse}.external-page th,.external-page td{padding:6px 10px;border:1px solid var(--color-glass-border);text-align:left;vertical-align:top}.external-page th{background:var(--color-bg-layer2);font-weight:600}.photo-slot{padding:12px 14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.photo-slot.is-done{border-color:#10b98159}.photo-slot-mark{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--color-text-muted);display:grid;place-items:center;color:#fff}.photo-slot-mark.is-done{background:var(--color-success);border-color:var(--color-success)}.photo-slot-hint{margin-left:26px}.checklist-editor{padding:14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.checklist-editor.is-collapsed{padding:6px 8px 6px 10px}.checklist-summary{display:flex;align-items:center;gap:8px}.checklist-summary-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px 4px;background:none;border:0;border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;cursor:pointer}.checklist-summary-main:hover{background:var(--color-bg-layer2)}.checklist-summary-main:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.api-key-reveal{display:block;padding:12px 14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer2);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:.85rem;line-height:1.5;word-break:break-all;-webkit-user-select:all;user-select:all}.api-doc-code{position:relative;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.api-doc-code pre{margin:0;padding:12px 44px 12px 14px;overflow-x:auto;font-size:.82rem;line-height:1.55}.api-doc-copy{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--color-glass-border);border-radius:var(--radius-sm);background:var(--color-bg-layer2);color:var(--color-text-secondary);cursor:pointer}.api-doc-copy:hover{color:var(--color-text)}.api-doc-route{padding:12px 14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.upload-status{position:fixed;right:16px;bottom:16px;z-index:320;display:flex;flex-direction:column;gap:8px;width:min(320px,calc(100vw - 32px));pointer-events:none}.upload-status-item{background:var(--color-surface-solid);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);box-shadow:0 8px 28px #0f172a47;padding:10px 12px;animation:a-rise .28s var(--ease-out-soft) both}.upload-bar{position:relative;height:4px;margin-top:8px;border-radius:2px;background:var(--color-bg-layer1);overflow:hidden}.upload-bar>span{position:absolute;top:0;bottom:0;left:0;border-radius:2px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-alt));transition:width .16s ease-out}.upload-bar.indeterminate>span{width:40%;animation:a-progress 1.1s ease-in-out infinite}.upload-bar.scanning>span{width:100%;animation:a-pulse-soft 1.2s ease-in-out infinite}@media (max-width: 768px){.upload-status{bottom:84px}}.pref-row{border-radius:var(--radius-md);transition:background-color .4s ease,box-shadow .4s ease}.pref-row-lit{background:#3b82f61f;background:color-mix(in srgb,var(--color-accent) 12%,transparent);box-shadow:0 0 0 2px var(--color-accent);padding:8px;margin:-8px}@media (prefers-reduced-motion: no-preference){.pref-row-lit{animation:a-pulse-soft 1.1s ease-in-out 2}}.hidden{display:none!important}.full-width{width:100%}.text-center{text-align:center}.text-right{text-align:right}.pointer{cursor:pointer}.relative{position:relative}.scroll-x{overflow-x:auto}.no-shrink{flex-shrink:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-reticle{0%,to{box-shadow:0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 24px 2px var(--color-accent-glow)}}@keyframes flash-out{0%{opacity:1}to{opacity:0}}.spin{animation:spin .8s linear infinite}.show-mobile{display:none}@media (max-width: 768px){.hide-mobile{display:none!important}.show-mobile{display:flex}}@keyframes a-fade{0%{opacity:0}to{opacity:1}}@keyframes a-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes a-rise-sm{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes a-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes a-slide-right{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes a-pop{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes a-badge-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes a-pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@keyframes a-progress{0%{left:-35%;right:100%}60%{left:100%;right:-20%}to{left:100%;right:-20%}}:root{--ease-out-soft: cubic-bezier(.22, .7, .3, 1)}.anim-fade{animation:a-fade .3s ease both}.anim-rise{animation:a-rise .38s var(--ease-out-soft) both}.anim-scale{animation:a-scale .25s ease both}.anim-slide-right{animation:a-slide-right .3s var(--ease-out-soft) both}.anim-pop{animation:a-pop .32s var(--ease-out-soft) both}.stagger>*{animation:a-rise .4s var(--ease-out-soft) both}.stagger>*:nth-child(1){animation-delay:.03s}.stagger>*:nth-child(2){animation-delay:.06s}.stagger>*:nth-child(3){animation-delay:.09s}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.15s}.stagger>*:nth-child(6){animation-delay:.18s}.page-enter{animation:a-fade .3s ease both,a-rise .34s var(--ease-out-soft) both}.top-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:300;background:transparent;overflow:hidden;pointer-events:none;animation:a-fade .15s ease both}.top-progress .bar{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-alt));box-shadow:0 0 12px var(--color-accent-glow);border-radius:0 2px 2px 0;animation:a-progress 1.1s ease-in-out infinite}.loading-dots{display:inline-flex;gap:4px;align-items:center}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--color-accent);animation:a-pulse-soft 1s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}.grid-cards>*,.metric-grid>*{animation:a-rise .4s var(--ease-out-soft) both}.grid-cards>*:nth-child(1),.metric-grid>*:nth-child(1){animation-delay:.03s}.grid-cards>*:nth-child(2),.metric-grid>*:nth-child(2){animation-delay:.06s}.grid-cards>*:nth-child(3),.metric-grid>*:nth-child(3){animation-delay:.09s}.grid-cards>*:nth-child(4),.metric-grid>*:nth-child(4){animation-delay:.12s}.grid-cards>*:nth-child(5){animation-delay:.15s}.grid-cards>*:nth-child(6){animation-delay:.18s}.list-item{animation:a-rise-sm .32s var(--ease-out-soft) both}.data-table tbody tr{animation:a-fade .35s ease both}.comment{animation:a-rise-sm .3s var(--ease-out-soft) both}.photo-tile,.attach-tile{animation:a-scale .3s ease both}.badge{transition:background-color .25s ease,color .25s ease}.badge.anim-badge{animation:a-badge-in .28s var(--ease-out-soft)}.skeleton{animation:shimmer 1.4s infinite,a-fade .3s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.97)}.btn-icon:hover:not(:disabled){transform:translateY(-1px) scale(1.04)}.nav-item{transition:background .15s ease,color .15s ease,transform .15s ease}.nav-item:hover{transform:translate(2px)}.bottom-nav-item{transition:color .15s ease,transform .15s ease}.bottom-nav-item:active{transform:scale(.92)}.chip{transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.chip:hover{transform:translateY(-1px)}.chip:active{transform:scale(.95)}.tab-pill{transition:background .15s ease,color .15s ease,transform .15s ease}.tab-pill:active{transform:scale(.96)}.list-item{transition:background .15s ease,border-color .15s ease,transform .15s ease}.list-item:hover{transform:translate(3px)}.fab{transition:transform .16s var(--ease-out-soft),box-shadow .16s ease}.fab:hover{transform:translateY(-2px) scale(1.05)}.fab:active{transform:scale(.94)}.data-table tbody tr{transition:background .12s ease}.modal-close{transition:background .15s ease,color .15s ease}.modal-close svg{transition:transform .15s ease}.modal-close:hover svg{transform:rotate(90deg)}.avatar{transition:transform .15s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.top-progress .bar{animation:a-pulse-soft 1.2s ease-in-out infinite;left:0;right:0}}.site-form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min, 190px)),1fr))}.site-filters{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.site-filters .site-filters-search{grid-column:1 / -1}@media (max-width: 520px){.site-filters{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.site-header-actions{flex:1 1 100%}.site-view-toggle{width:100%}.site-view-toggle .tab-pill{flex:1;justify-content:center}}@media (max-width: 640px){.site-tabs{width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch}.site-tabs::-webkit-scrollbar{display:none}.site-tabs .tab-pill{padding:8px 12px;font-size:.8rem}}.site-graph{display:flex;flex-direction:column;gap:12px}.site-graph svg{width:100%;max-height:620px;height:auto;display:block}.site-graph-circle{fill:var(--color-bg-layer2);stroke:var(--color-glass-border);stroke-width:1.5;transition:fill .15s ease,stroke .15s ease}.site-graph-circle.is-focus{fill:#3b82f62e;stroke:var(--color-accent);stroke-width:2}.site-graph-node.is-clickable{cursor:pointer}.site-graph-node.is-clickable:hover .site-graph-circle,.site-graph-node:focus-visible .site-graph-circle{fill:var(--color-bg-layer3);stroke:var(--color-accent)}.site-graph-node:focus{outline:none}.site-graph-node:focus-visible{outline:none}.site-graph-code{fill:var(--color-text-primary);font-family:var(--font-mono);font-size:12px;font-weight:600;pointer-events:none}.site-graph-name{fill:var(--color-text-secondary);font-size:11px;pointer-events:none}.site-graph-edge-label{fill:var(--color-text-primary);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--color-bg-base);stroke-width:4px;stroke-linejoin:round}.site-graph-legend{display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:4px;border-top:1px solid var(--color-glass-border);font-size:.78rem;color:var(--color-text-secondary)}.site-graph-legend-item{display:flex;align-items:center;gap:6px}.site-link-swatch{width:4px;align-self:stretch;min-height:34px;border-radius:2px}@media (max-width: 640px){.site-link-row{flex-wrap:wrap;row-gap:10px}.site-link-row>a{flex:1 1 65%;min-width:0}}.site-test-reading{display:flex;flex-direction:column;gap:2px;min-width:0}.site-test-spec{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap}.site-test-spec.is-pass{color:var(--color-success)}.site-test-spec.is-marginal{color:var(--color-warning)}.site-test-spec.is-fail{color:var(--color-danger)}.site-test-verdict{margin:0;padding:9px 12px;border-radius:var(--radius-md);border:1px solid var(--color-glass-border);background:var(--color-bg-layer1);font-size:.82rem;line-height:1.5}.site-test-verdict.is-pass{border-color:#10b98166}.site-test-verdict.is-marginal{border-color:#f59e0b73}.site-test-verdict.is-fail{border-color:#ef444473}.site-tests-cards{display:none}@media (max-width: 768px){.site-tests-table{display:none}.site-tests-cards{display:flex;flex-direction:column;gap:10px}}.site-test-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.site-test-card .site-test-reading{flex-direction:row;align-items:baseline;gap:8px}.site-log-entry{padding:12px 14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.site-log-body{margin:8px 0 0;font-size:.9rem;line-height:1.6;white-space:pre-wrap}.rack-row{display:flex;gap:20px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}.rack-column{display:flex;flex-direction:column;gap:10px;flex:none;width:260px}.rack-frame{border:2px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1);padding:8px}.rack-units{display:flex;flex-direction:column-reverse;gap:2px}.rack-unit,.rack-item{display:flex;align-items:center;gap:8px;width:100%;padding:0 8px;border-radius:var(--radius-sm);font-family:inherit;font-size:.78rem;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.rack-unit{height:26px;flex:none;border:1px dashed rgba(255,255,255,.1);background:transparent;color:var(--color-text-muted)}.rack-unit:hover:not(:disabled){background:var(--color-bg-layer2);border-style:solid;border-color:var(--color-accent);color:var(--color-text-secondary)}.rack-unit:disabled{cursor:default}.rack-unit-u{font-size:.68rem;opacity:.7}.rack-item{position:relative;flex:none;border:1px solid;color:var(--color-text-primary);font-weight:500;overflow:hidden}.rack-item:hover:not(:disabled){filter:brightness(1.25)}.rack-item:disabled{cursor:default}.rack-item-draggable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.rack-item-draggable:active{cursor:grabbing}.rack-item.is-dragging{cursor:grabbing;z-index:1;filter:brightness(1.3);box-shadow:0 4px 14px #00000059}.rack-item-grip{position:absolute;top:0;left:0;right:0;height:6px;cursor:ns-resize;touch-action:none}.rack-item-grip:after{content:"";position:absolute;top:2px;left:50%;width:24px;height:2px;border-radius:1px;transform:translate(-50%);background:currentColor;opacity:0;transition:opacity .12s ease}.rack-item:hover .rack-item-grip:after,.rack-item.is-dragging .rack-item-grip:after{opacity:.5}.rack-item-u{font-size:.68rem;color:var(--color-text-secondary);flex:none}.rack-item-label{flex:1;min-width:0}.rack-item-size{font-size:.68rem;color:var(--color-text-secondary);flex:none}.rack-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:12px;border-top:1px solid var(--color-glass-border);font-size:.75rem;color:var(--color-text-secondary)}.rack-legend-item{display:flex;align-items:center;gap:6px}.rack-legend-swatch{width:14px;height:14px;border-radius:3px;border:1px solid}@media (max-width: 640px){.rack-row{scroll-snap-type:x proximity}.rack-column{width:100%;min-width:240px;scroll-snap-align:start}}:root[data-theme=light] .rack-unit{border-color:#0f172a1f}:root[data-theme=light] .site-graph-edge-label{stroke:#fff}.demo-form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.demo-unit-card{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.demo-unit-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.demo-items-table tbody tr{cursor:default}.demo-items-table tbody tr:hover{background:transparent}.demo-items-table td{vertical-align:top}.demo-item-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px;margin-top:8px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.demo-item-form>*{flex:1 1 160px;min-width:0}.demo-item-form>.row{flex:0 0 auto}.demo-item-form .demo-item-qty{max-width:90px}.demo-quick-pack{margin-bottom:10px}.demo-quick-pack-hint{margin:6px 0 0;line-height:1.5}.demo-item-stock{flex:1 1 100%}.demo-item-stock-hint{flex:1 1 100%;margin:-4px 0 2px}.quote-form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.quote-items{display:flex;flex-direction:column;gap:6px}.quote-item-row{display:grid;grid-template-columns:150px minmax(0,1fr) 74px minmax(110px,auto) minmax(110px,auto) auto;gap:8px;align-items:start}.quote-item-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:0 2px 2px}.quote-item-head .num,.quote-item-row .num{text-align:right}.quote-line-total{display:flex;align-items:center;justify-content:flex-end;min-height:40px;padding:0 10px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-text-primary);text-align:right;overflow-wrap:break-word;word-break:break-word}.quote-row-actions{display:flex;gap:2px;align-items:center;min-height:40px}.quote-num-input{text-align:right;font-variant-numeric:tabular-nums}.quote-totals{width:100%;max-width:340px;margin-left:auto}.quote-totals-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0}.quote-totals-row .val{font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:break-word}.quote-totals-row>:first-child{min-width:0}.money-cell{font-variant-numeric:tabular-nums;overflow-wrap:break-word}.quote-totals-grand{border-top:1px solid var(--color-glass-border);margin-top:6px;padding-top:10px;font-size:1.15rem;font-weight:700}.quote-adjust{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px}@media (max-width: 720px){.quote-item-row{grid-template-columns:1fr 1fr;gap:6px;padding:10px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md)}.quote-item-row>:nth-child(1),.quote-item-row>:nth-child(2){grid-column:1 / -1}.quote-item-head{display:none}.quote-line-total{justify-content:flex-start;min-height:0}.quote-totals{max-width:none}}.quote-total-warning{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid var(--color-warning, #f59e0b);border-radius:var(--radius-md);font-size:.8rem;line-height:1.45;color:var(--color-warning, #f59e0b)}.quote-total-warning svg{flex:none;margin-top:2px}.font-mono{font-family:var(--font-mono)}.nifog-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.nifog-toc{position:sticky;top:16px;padding:16px;border-radius:var(--radius-md);background:var(--color-bg-layer1);border:1px solid rgba(255,255,255,.06);max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.nifog-toc::-webkit-scrollbar{width:8px}.nifog-toc::-webkit-scrollbar-track{background:transparent}.nifog-toc::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:8px}.nifog-toc::-webkit-scrollbar-thumb:hover{background:#ffffff47}.nifog-toc-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:10px}.nifog-toc-nav{display:flex;flex-direction:column;gap:2px}.nifog-toc-cat{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:7px 8px;border-radius:var(--radius-sm);color:var(--color-text-primary);background:transparent;border:0;cursor:pointer;font-size:.82rem;font-weight:600;transition:background .12s ease}.nifog-toc-cat:hover{background:var(--color-bg-layer2)}.nifog-toc-cat-label{flex:1;min-width:0}.nifog-toc-chevron{flex:none;color:var(--color-text-muted);transition:transform .15s ease}.nifog-toc-chevron.is-open{transform:rotate(90deg)}.nifog-toc-count{flex:none;min-width:18px;padding:1px 6px;border-radius:999px;background:var(--color-bg-layer2);color:var(--color-text-muted);font-size:.68rem;font-weight:600;text-align:center}.nifog-toc-sub{display:flex;flex-direction:column;gap:1px;padding-left:8px;border-left:1px solid rgba(255,255,255,.08);margin:1px 0 4px 15px}.nifog-toc-link{text-align:left;padding:6px 10px;border-radius:var(--radius-sm);color:var(--color-text-secondary);background:transparent;border:0;cursor:pointer;font-size:.84rem;line-height:1.35;transition:background .12s ease,color .12s ease}.nifog-toc-link:hover{background:var(--color-bg-layer2);color:var(--color-text-primary)}.nifog-layout--full{grid-template-columns:minmax(0,1fr)}.nifog-doc{min-width:0}.nifog-doc-head{margin-bottom:8px}.nifog-doc-title{margin:0;font-size:1.35rem}.nifog-doc-sub{margin:2px 0 14px;color:var(--color-text-muted);font-size:.9rem}.nifog-search{display:flex;align-items:center;gap:8px;max-width:360px;padding:8px 12px;border-radius:var(--radius-md);background:var(--color-bg-layer1);border:1px solid rgba(255,255,255,.08);color:var(--color-text-muted)}.nifog-search input{flex:1;background:transparent;border:0;outline:none;color:var(--color-text-primary);font-size:.9rem}.nifog-section{padding:20px 0;scroll-margin-top:16px;border-top:1px solid rgba(255,255,255,.06)}.nifog-section:first-of-type{border-top:0}.nifog-section-title{margin:0 0 12px;font-size:1.1rem}.nifog-subhead{margin:20px 0 8px;font-size:.95rem;color:var(--color-text-secondary)}.nifog-p{margin:0 0 12px;line-height:1.65;color:var(--color-text-secondary)}.nifog-list{margin:0 0 12px;padding-left:20px;line-height:1.7;color:var(--color-text-secondary)}.nifog-list li{margin-bottom:4px}.nifog-note{margin:0 0 14px;padding:12px 14px;border-radius:var(--radius-md);border-left:3px solid var(--color-accent);background:var(--color-bg-layer1);color:var(--color-text-secondary);font-size:.9rem;line-height:1.6}.nifog-pending{margin:0 0 14px;padding:12px 14px;border-radius:var(--radius-md);border:1px dashed rgba(255,255,255,.18);color:var(--color-text-muted);font-size:.86rem;line-height:1.6}.nifog-figure{margin:0 0 18px}.nifog-caption{margin-top:8px;font-size:.8rem;color:var(--color-text-muted)}.data-table--static tbody tr{cursor:default}.data-table--static tbody tr:hover{background:transparent}@media (max-width: 900px){.nifog-layout{grid-template-columns:1fr}.nifog-toc{position:static;max-height:none;overflow-y:visible}}.ProseMirror h3,.rich-content h3{font-size:1.1rem;margin:.6em 0 .3em}.rich-content h1,.rich-content h2,.rich-content h3{scroll-margin-top:16px}.rte-lg .ProseMirror{min-height:60vh}.guide-preview{min-height:60vh;padding:16px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1)}.guide-edit-grid{display:grid;grid-template-columns:1fr 260px;gap:16px;align-items:start}.guide-keyareas{position:sticky;top:16px;padding:14px;border:1px solid var(--color-glass-border);border-radius:var(--radius-md);background:var(--color-bg-layer1);max-height:70vh;overflow-y:auto}.guide-keyareas-title{font-weight:600;font-size:.9rem;margin-bottom:6px}.guide-keyareas-hint{color:var(--color-text-muted);font-size:.78rem;margin:0 0 10px;line-height:1.5}.guide-keyareas-nav{display:flex;flex-direction:column;gap:2px}@media (max-width: 900px){.guide-edit-grid{grid-template-columns:1fr}.guide-keyareas{position:static;max-height:none}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html,.app-main,.modal,.drawer,.table-wrap,.global-search-panel{scroll-behavior:smooth}body{margin:0;background:var(--color-bg-base);color:var(--color-text-primary);overflow-x:hidden}body:before{content:"";position:fixed;top:-200px;right:-150px;width:700px;height:700px;background:radial-gradient(circle at center,var(--bg-orb-1),var(--bg-orb-2) 40%,transparent 70%);filter:blur(40px);opacity:.6;pointer-events:none;z-index:0}body:after{content:"";position:fixed;bottom:-250px;left:-150px;width:600px;height:600px;background:radial-gradient(circle at center,var(--bg-orb-2),transparent 70%);filter:blur(50px);opacity:.5;pointer-events:none;z-index:0}#root{position:relative;z-index:1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:6px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#fff3;background-clip:padding-box}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#0f172a2e;background-clip:padding-box}:root[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#0f172a4d;background-clip:padding-box}button,input,select,textarea{font-family:inherit}
