.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #0b1020;--panel: #111935;--text: #e8ecf8;--muted: #9aa6c5;--accent: #6aa4ff;--border: #24305a;--input-bg: #0a1330;--input-border: #24305a;--pill-active-bg: rgba(106, 164, 255, .12);--btn-primary-bg: #6aa4ff;--btn-primary-text: #04122b;--btn-primary-border: transparent;--btn-secondary-bg: #1c2a52;--btn-secondary-text: #e8ecf8;--btn-secondary-border: #24305a;--logo-text: #ffffff;--logo-accent: #b3ff5c;--radius: 8px;--tile-radius: 20px;--shadow-soft: 0 18px 42px rgba(0, 0, 0, .22);background:var(--bg);color:var(--text);--surface: var(--panel);--surface-muted: var(--input-bg);--accent-strong: #8bb9ff;--active-text: var(--accent-strong);--accent-soft: rgba(106, 164, 255, .12);--success: #23824f;--success-soft: #e8f6ee;--warning: #a86600;--warning-soft: #fff3d8;--danger: #bf3434;--danger-soft: #ffe8e8;--status-pill-text: #f8fafc;--btn-danger-bg: #f87171;--btn-primary-hover-bg: #8bb9ff;--btn-secondary-hover-bg: #16233c;--btn-danger-hover-bg: #d95d5d;--btn-ghost-hover-bg: #16233c;--btn-danger-text: #1b0708;--btn-ghost-bg: rgba(0, 0, 0, 0);--btn-ghost-text: #e8ecf8;--sidebar-hover-bg: #16233c;--sidebar-hover-text: #e8ecf8;--sidebar-active-bg: #1f3350;--sidebar-active-text: #8bb9ff;--status-ok-bg: #124b3a;--status-ok-text: #8af0cd;--status-warning-bg: #4d3c11;--status-warning-text: #f5d98b;--status-neutral-bg: #22304a;--status-neutral-text: #c3d0e6;--status-error-bg: #4e1c1f;--status-error-text: #f9b4b4}html[data-theme=light],body[data-theme=light]{color-scheme:light;--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-active-bg: rgba(47, 107, 255, .12);--btn-primary-bg: #2f6bff;--btn-primary-text: #ffffff;--btn-primary-border: transparent;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--logo-text: #1a2440;--logo-accent: #78b52a;--surface: var(--panel);--surface-muted: var(--input-bg);--accent-strong: #2f6bff;--active-text: var(--accent-strong);--accent-soft: rgba(47, 107, 255, .12);--status-pill-text: #050814;--btn-danger-bg: #c02b32;--btn-primary-hover-bg: #2358d6;--btn-secondary-hover-bg: #eef2f8;--btn-danger-hover-bg: #9d2028;--btn-ghost-hover-bg: #eef2f8;--btn-danger-text: #ffffff;--btn-ghost-bg: rgba(0, 0, 0, 0);--btn-ghost-text: #1a2440;--sidebar-hover-bg: #eef2f8;--sidebar-hover-text: #1a2440;--sidebar-active-bg: #e2ebf9;--sidebar-active-text: #1d4ed8;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-neutral-bg: #e7ecf4;--status-neutral-text: #33415c;--status-error-bg: #fbdcdc;--status-error-text: #8c1c22}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);overflow:hidden}button,input,select,textarea{font:inherit}.app-shell{height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--bg);color:var(--text);overflow:hidden}.sidebar-toggle,.sidebar-backdrop{display:none}.side-nav{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 220px),var(--panel);color:var(--text);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:18px;box-shadow:inset -1px 0 #ffffff05;overflow:hidden}.brand-block{display:flex;align-items:center;padding:2px 8px 16px;border-bottom:1px solid var(--border);font-weight:700}.core-logo{width:176px;max-width:100%;min-height:45px;display:inline-flex;align-items:center;color:var(--logo-text);flex:0 0 auto}.core-logo svg,.core-logo-svg,.core-logo img{width:100%;height:auto;display:block}.core-logo img{max-height:58px;object-fit:contain}.core-logo-accent{fill:var(--logo-accent)}.core-logo-text{fill:var(--logo-text)}.core-logo .wave{fill:var(--logo-accent)}.core-logo .wordmark{fill:var(--logo-text)}.core-logo [stroke="var(--logo-accent)"]{stroke:var(--logo-accent)}.core-logo [stroke="var(--logo-accent-strong)"],.core-logo [fill="var(--logo-accent-strong)"]{stroke:var(--logo-accent-strong);fill:var(--logo-accent-strong)}.core-logo [fill="var(--logo-accent)"]{fill:var(--logo-accent)}.core-logo-text-fallback{min-height:0;font-size:24px;font-weight:800;line-height:1.1;color:var(--logo-text)}.nav-stack{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:16px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}.nav-section{display:flex;flex-direction:column;gap:6px}.nav-section-bottom{margin-top:auto}.sub-nav{display:flex;flex-direction:column;gap:4px;margin:4px 0 0 18px;padding-left:10px;border-left:1px solid var(--border)}.nav-button{min-height:42px;width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:9px;padding:10px 12px;color:var(--muted);background:transparent;cursor:pointer;text-align:left;transition:background .16s ease,color .16s ease,transform .16s ease}.nav-button span{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-button .nav-count{flex:0 0 auto;min-width:20px;padding:1px 6px;border-radius:999px;color:#fff;background:var(--warning);font-size:12px;font-weight:700;line-height:18px;text-align:center}.nav-button:hover{color:var(--sidebar-hover-text);background:var(--sidebar-hover-bg)}.nav-button:hover{transform:translate(2px)}.nav-button.active{color:var(--sidebar-active-text);background:var(--sidebar-active-bg);box-shadow:none}.nav-button.nested{min-height:34px;padding:8px 10px;font-size:14px}.nav-dropdown{display:grid;gap:0;min-width:0;border-radius:10px;overflow:hidden}.nav-dropdown-toggle{justify-content:space-between;border-radius:10px}.nav-dropdown-caret{flex:0 0 auto;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;color:var(--muted);background:color-mix(in srgb,var(--input-bg) 76%,transparent);line-height:1;transition:transform .42s cubic-bezier(.2,.8,.2,1),color .22s ease,background .22s ease}.nav-dropdown-toggle.active .nav-dropdown-caret,.nav-dropdown-toggle:hover .nav-dropdown-caret{color:var(--text);background:color-mix(in srgb,var(--accent) 20%,var(--input-bg))}.nav-dropdown-panel{margin:4px 0 0;padding:0;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-left:0;border-radius:10px;background:color-mix(in srgb,var(--input-bg) 82%,var(--panel));max-height:0;opacity:0;transform:translateY(-8px);overflow:hidden;transition:max-height .48s cubic-bezier(.2,.8,.2,1),opacity .32s ease,transform .42s cubic-bezier(.2,.8,.2,1),padding .42s cubic-bezier(.2,.8,.2,1)}.nav-dropdown-panel.open{max-height:420px;opacity:1;padding:8px;transform:translateY(0)}.nav-dropdown-panel>.nav-button{min-height:0;border-radius:8px}.nav-dropdown-panel.open>.nav-button{min-height:40px}.nav-dropdown-toggle[aria-expanded=true] .nav-dropdown-caret{transform:rotate(180deg)}.workspace{min-width:0;min-height:0;height:100vh;padding:16px 20px;overflow:hidden}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;flex:0 0 auto}.page-header h1{margin:2px 0 4px;font-size:24px;line-height:1.1;letter-spacing:0}.page-header p{margin:0;max-width:780px;color:var(--muted);line-height:1.45}.page-header-copy{min-width:0}.eyebrow{display:block;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.page-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}.ui-page{height:100%;min-height:0;display:flex;flex-direction:column}.ui-page-body{flex:1 1 auto;min-height:0;overflow:auto}.ui-section,.ui-stack{display:grid;gap:14px}.ui-stack-sm{gap:8px}.ui-stack-lg{gap:20px}.ui-inline,.ui-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ui-inline-sm{gap:6px}.ui-inline-lg{gap:16px}.ui-toolbar{justify-content:space-between}.ui-section-header,.ui-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ui-section-header h2,.ui-panel-header h3{margin:0;letter-spacing:0}.ui-section-header h2{font-size:18px}.ui-panel-header h3{font-size:15px}.ui-section-header p,.ui-panel-header p{margin:4px 0 0;color:var(--muted);line-height:1.45}.ui-section-actions,.ui-panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ui-panel,.ui-empty-state,.ui-metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.ui-panel{padding:16px;display:grid;gap:14px}.ui-empty-state{min-height:160px;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center}.ui-empty-state strong{font-size:16px;color:var(--text)}.ui-empty-state p{max-width:520px;margin:0;color:var(--muted);line-height:1.45}.ui-empty-actions{margin-top:4px;display:flex;justify-content:center}.ui-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.ui-metric-card{min-height:96px;padding:16px;display:grid;align-content:space-between;gap:10px}.ui-metric-card span{color:var(--muted);font-size:13px}.ui-metric-card strong{color:var(--text);font-size:30px;line-height:1}.ui-metric-card p{margin:0;color:var(--muted);font-size:13px}.core-button{height:38px;border-radius:var(--radius);border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;cursor:pointer;font-weight:650;white-space:nowrap}.core-button-sm{height:32px;padding:0 10px;font-size:13px}.core-button-lg{height:44px;padding:0 18px}.core-button-full{width:100%}.core-button-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.core-button-primary:hover{background:var(--btn-primary-hover-bg)}.core-button-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border-color:var(--btn-secondary-border)}.core-button-ghost{background:var(--btn-ghost-bg);color:var(--btn-ghost-text);border-color:transparent}.core-button-secondary:hover{background:var(--btn-secondary-hover-bg)}.core-button-ghost:hover{background:var(--btn-ghost-hover-bg)}.core-button-danger{background:var(--btn-danger-bg);color:var(--btn-danger-text);border-color:var(--btn-danger-bg)}.core-button-danger:hover{background:var(--btn-danger-hover-bg);border-color:var(--btn-danger-hover-bg)}.core-button:disabled{cursor:not-allowed;opacity:.58}.core-button-icon{display:inline-flex;flex:0 0 auto}.ui-badge{min-height:26px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:3px 10px;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:750;line-height:1.2;white-space:nowrap}.ui-badge-info{background:var(--accent-soft);color:var(--accent-strong);border-color:#6aa4ff59}.ui-badge-success{background:var(--status-ok-bg);color:var(--status-ok-text);border-color:transparent}.ui-badge-warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:transparent}.ui-badge-danger{background:var(--status-error-bg);color:var(--status-error-text);border-color:transparent}.ui-field{min-width:0;display:grid;gap:7px;color:var(--text);font-size:13px;font-weight:700}.ui-field-label{color:var(--muted)}.ui-field-hint,.ui-field-error{font-size:12px;font-weight:600}.ui-field-hint{color:var(--muted)}.ui-field-error{color:var(--danger)}.ui-input{min-width:0;width:100%;min-height:38px;border:1px solid var(--input-border);border-radius:var(--radius);padding:0 12px;background:var(--input-bg);color:var(--text);outline:none}.ui-textarea{min-height:92px;padding:10px 12px;resize:vertical}.ui-input:focus,.ui-checkbox:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ui-checkbox-field{min-width:0;display:flex;align-items:center;gap:12px;color:var(--text)}.ui-checkbox{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--accent)}.ui-checkbox-copy{min-width:0;display:grid;gap:3px}.ui-checkbox-copy strong{color:var(--text);line-height:1.25}.ui-checkbox-copy span{color:var(--muted);font-size:12px;line-height:1.3;overflow-wrap:anywhere}.ui-table-shell{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto}.ui-table{width:100%;min-width:var(--ui-table-min-width, 760px);border-collapse:collapse}.ui-table th,.ui-table td{padding:13px 15px;border-top:1px solid var(--border);text-align:left;vertical-align:middle}.ui-table th{border-top:0;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.ui-table td strong,.ui-table td>span:not(.ui-badge){display:block}.ui-table td strong{color:var(--text);font-size:14px;line-height:1.25}.ui-table td>span:not(.ui-badge){margin-top:3px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-panel{width:min(100%,420px);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:28px;display:grid;gap:18px;justify-items:center;text-align:center}.login-brand{width:100%;padding-bottom:14px;border-bottom:1px solid var(--border);display:flex;justify-content:center}.login-brand .core-logo{width:220px}.login-panel h1{margin:0;font-size:26px;line-height:1.12;letter-spacing:0}.login-panel p{margin:0;color:var(--muted);line-height:1.45}.login-actions{width:100%;display:grid;gap:12px;justify-items:stretch}.internal-login-form{display:grid;gap:12px;text-align:left}.login-panel>.core-button{width:100%}.login-error,.login-note{color:var(--danger)}.login-note{color:var(--muted)}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{min-height:96px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px;display:flex;flex-direction:column;justify-content:space-between}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:34px;line-height:1}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.app-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:16px;min-height:260px}.app-card-heading{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.app-card h2{margin:0 0 8px;font-size:20px;line-height:1.2;letter-spacing:0}.app-card p{margin:0;color:var(--muted);line-height:1.45}.app-facts{display:grid;gap:10px;margin:0;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.app-facts div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px}.app-facts dt{color:var(--muted)}.app-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.app-actions{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--accent);text-decoration:none;font-weight:650}.text-link:hover{color:var(--accent-strong)}.text-link.strong{color:var(--text)}.status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;background:var(--surface-muted);color:var(--status-pill-text);vertical-align:middle}.status-pill svg{flex:0 0 auto;display:block}.status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.status-pill-ok,.status-online,.status-registered,.status-enabled,.status-valid,.status-good,.status-ok,.status-healthy,.status-approved,.status-connected{background:var(--status-ok-bg);color:var(--status-ok-text)}.status-pill-warning,.status-warning,.status-degraded,.status-pending,.status-caution-soft{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-pill-neutral,.status-neutral,.status-not-registered,.status-hidden,.status-unknown,.status-none{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.status-pill-error,.status-error,.status-offline,.status-disabled,.status-dangerous,.status-caution,.status-failed{background:var(--status-error-bg);color:var(--status-error-text)}.status-pill-ok svg,.status-pill-warning svg,.status-pill-neutral svg,.status-pill-error svg{color:currentColor}.status-self{background:color-mix(in srgb,var(--accent-strong) 38%,var(--surface))}html[data-theme=light] .status-self,body[data-theme=light] .status-self{background:var(--accent-soft)}.landing-screen{min-height:100%;display:grid;place-items:center;padding:32px 24px}.landing-panel{display:grid;justify-items:center;gap:18px;text-align:center;max-width:min(100%,720px)}.landing-heading{margin:0;font-size:clamp(22px,3vw,30px);color:var(--text)}.landing-message{margin:0;color:var(--muted);line-height:1.5;font-size:15px}.core-modal-layer{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;animation:core-modal-backdrop-in .26s ease-out}.core-modal-layer.closing{animation:core-modal-backdrop-out .26s ease-in forwards}.core-modal-layer .core-modal-backdrop{position:absolute;inset:0;min-height:0;border:0;border-radius:0;padding:0;background:#00000085;cursor:default}.core-modal{position:relative;z-index:1;max-height:min(860px,calc(100vh - 48px));border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-muted, var(--panel));color:var(--text);box-shadow:var(--shadow-soft);transform-origin:center top;animation:core-modal-in .34s cubic-bezier(.16,1,.3,1)}.core-modal:focus{outline:none}.core-modal.closing{animation:core-modal-out .26s ease-in forwards}.core-modal-narrow{width:min(520px,calc(100vw - 48px))}.core-modal-medium{width:min(760px,calc(100vw - 48px))}.core-modal-wide{width:min(1120px,calc(100vw - 48px))}.core-modal-head{flex:0 0 auto;display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface, var(--panel))}.core-modal-badge{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--border);color:var(--muted)}.core-modal-heading{flex:1 1 auto;min-width:0}.core-modal-heading h2{margin:0;color:var(--text);font-size:18px;line-height:1.2}.core-modal-heading span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.core-modal-actions{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.core-modal-close{border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:6px 10px}.core-modal-close:hover{color:var(--text);background:var(--btn-ghost-hover-bg, var(--surface))}.core-modal-body{flex:1 1 auto;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.core-modal-foot{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface, var(--panel))}@keyframes core-modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes core-modal-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes core-modal-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes core-modal-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.97)}}@media(prefers-reduced-motion:reduce){.core-modal-layer,.core-modal-layer.closing,.core-modal,.core-modal.closing{animation-duration:1ms}}.offline-page-shell{display:grid;place-items:center}.offline-state{width:min(100%,520px);display:grid;justify-items:center;gap:12px;padding:34px;text-align:center;color:var(--text)}.offline-icon{width:72px;height:72px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--danger)}.offline-state strong{font-size:22px}.offline-state p{margin:0;color:var(--muted);line-height:1.5}.micro-page{height:calc(100vh - 48px);display:flex;flex-direction:column;min-height:0}.integrated-page{flex:1 1 0;min-height:0;overflow:auto;background:var(--bg)}.core-hosted-page{color:var(--text);font:inherit}.core-hosted-page .container{width:100%;min-width:0;max-width:none;height:100%;padding:0;background:var(--bg);color:var(--text)}.core-hosted-page .container>.header:first-child{display:none}.core-hosted-page .container>h1:first-child{display:none}.core-hosted-page .panel{border-radius:8px}.core-hosted-page .panel,.core-hosted-page .card,.core-hosted-page .table-panel,.core-hosted-page .quote-table-panel,.core-hosted-page .timeline-card,.core-hosted-page .email-panel,.core-hosted-page .progress-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none}.core-hosted-page .row,.core-hosted-page .header-actions,.core-hosted-page .table-toolbar,.core-hosted-page .actions-row,.core-hosted-page .meta{gap:10px}.core-hosted-page button:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)),.core-hosted-page .file-button{min-height:38px;border-radius:var(--radius);border:1px solid var(--btn-primary-border);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;background:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;font-weight:650;white-space:nowrap}.core-hosted-page button.secondary:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)),.core-hosted-page .tab-button:not(.active):where(:not(.skill-own-control):not(.skill-own-chrome *)),.core-hosted-page .file-button{background:var(--btn-secondary-bg);color:var(--text);border-color:var(--border)}.core-hosted-page .tab-button.active:where(:not(.skill-own-control):not(.skill-own-chrome *)){background:var(--accent-soft);color:var(--text);border-color:#6aa4ff59}.core-hosted-page button.danger:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)){background:var(--btn-danger-bg);color:var(--btn-danger-text);border-color:var(--btn-danger-bg)}.core-hosted-page button.small:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)){min-height:32px;padding:0 10px;font-size:13px}.core-hosted-page button:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)):hover,.core-hosted-page .file-button:hover{filter:brightness(1.05)}.core-hosted-page button:not(.core-button):not([class*=core-modal]):where(:not(.skill-own-control):not(.skill-own-chrome *)):disabled{cursor:not-allowed;opacity:.58;filter:none}.core-hosted-page input:not([type=checkbox]):not([type=radio]):not([type=file]),.core-hosted-page select,.core-hosted-page textarea,.core-hosted-page .cell-input{min-height:38px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text)}.core-hosted-page input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--accent)}.core-hosted-page input:focus,.core-hosted-page select:focus,.core-hosted-page textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.core-hosted-page .table-wrap,.core-hosted-page .quote-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.core-hosted-page table{background:var(--surface);color:var(--text)}.core-hosted-page th{background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.core-hosted-page td{border-color:var(--border)}.core-hosted-page .pill,.core-hosted-page .status,.core-hosted-page .processed,.core-hosted-page .pending,.core-hosted-page .skipped,.core-hosted-page .complete{min-height:26px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;padding:3px 10px;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:750}.core-hosted-page .pill.active,.core-hosted-page .status.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#6aa4ff59}.core-hosted-page .error{border-radius:var(--radius)}.core-hosted-page.micro-app-project-forecasting{--ok: var(--success, #2fbf71);--warn: var(--warning, #f5a524);--err: var(--danger, #ff5d5d);--scroll-track: var(--input-bg);--scroll-thumb: var(--border);--scroll-thumb-hover: var(--accent);--pill-bg: var(--input-bg);--timeline-revenue: var(--success, #2fbf71);--timeline-cost: var(--warning, #f5a524);--timeline-hours: var(--accent);background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";overflow:hidden}body[data-theme=light] .core-hosted-page.micro-app-project-forecasting{--ok: #2fbf71;--warn: #f5a524;--err: #d64545;--btn-danger-bg: rgba(214, 69, 69, .08);--btn-danger-text: #d64545;--btn-danger-border: rgba(214, 69, 69, .35);--timeline-revenue: #179c58;--timeline-cost: #d3870f}.core-hosted-page.micro-app-project-forecasting .container{width:100%;max-width:none;margin:0 auto;padding:0;height:100%;display:flex;flex-direction:column;gap:12px;box-sizing:border-box;min-height:0;overflow:hidden;background:var(--bg);color:var(--text)}.core-hosted-page.micro-app-project-forecasting .panel,.core-hosted-page.micro-app-project-forecasting .table-panel,.core-hosted-page.micro-app-project-forecasting .progress-panel,.core-hosted-page.micro-app-project-forecasting .timeline-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:none}.core-hosted-page.micro-app-project-forecasting .panel{padding:12px}.core-hosted-page.micro-app-project-forecasting .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px}.core-hosted-page.micro-app-project-forecasting .progress-panel{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.core-hosted-page.micro-app-project-forecasting .row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.core-hosted-page.micro-app-project-forecasting .meta,.core-hosted-page.micro-app-project-forecasting .progress-meta{gap:16px}.core-hosted-page.micro-app-project-forecasting label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.core-hosted-page.micro-app-project-forecasting input:not([type=checkbox]):not([type=radio]):not([type=file]),.core-hosted-page.micro-app-project-forecasting select,.core-hosted-page.micro-app-project-forecasting textarea,.core-hosted-page.micro-app-project-forecasting .cell-input{min-height:0;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;box-shadow:none}.core-hosted-page.micro-app-project-forecasting input[type=date],.core-hosted-page.micro-app-project-forecasting select{min-width:160px}.core-hosted-page.micro-app-project-forecasting button:not(.core-button){min-height:0;display:inline-block;border-radius:8px;border:1px solid var(--btn-primary-border);padding:10px 14px;background:var(--btn-primary-bg);color:var(--btn-primary-text);font-weight:600;white-space:nowrap}.core-hosted-page.micro-app-project-forecasting button.secondary:not(.core-button){background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.core-hosted-page.micro-app-project-forecasting button.danger:not(.core-button){background:var(--btn-danger-bg);color:var(--btn-danger-text);border:1px solid var(--btn-danger-border)}.core-hosted-page.micro-app-project-forecasting button.small:not(.core-button){min-height:0;padding:6px 10px;font-size:12px;border-radius:6px}.core-hosted-page.micro-app-project-forecasting button:not(.core-button):disabled{opacity:.6;cursor:not-allowed}.core-hosted-page.micro-app-project-forecasting .table-wrap{flex:1 1 0;min-height:0;position:relative;isolation:isolate;overflow-x:hidden;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:transparent}.core-hosted-page.micro-app-project-forecasting table{border-collapse:collapse;font-size:13px;table-layout:fixed;width:100%;min-width:0;background:transparent;color:var(--text)}.core-hosted-page.micro-app-project-forecasting th,.core-hosted-page.micro-app-project-forecasting td{text-align:left;padding:6px 7px;border-bottom:1px solid var(--border);vertical-align:middle}.core-hosted-page.micro-app-project-forecasting th{color:var(--muted);font-size:13px;font-weight:600;text-transform:none;position:sticky;top:0;background:var(--panel);z-index:20;box-shadow:0 1px 0 var(--border)}.core-hosted-page.micro-app-project-forecasting td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(1),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(1){width:8%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(2),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(2){width:7%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(3),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(3){width:24%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(4),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(4){width:9%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(5),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(5){width:9%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(6),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(6){width:9%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(7),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(7){width:9%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(8),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(8){width:8%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(9),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(9){width:8%}.core-hosted-page.micro-app-project-forecasting thead th:nth-child(10),.core-hosted-page.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(10){width:9%}.core-hosted-page.micro-app-project-forecasting .project-title,.core-hosted-page.micro-app-project-forecasting .project-subtitle{overflow-wrap:anywhere}.core-hosted-page.micro-app-project-forecasting .status,.core-hosted-page.micro-app-project-forecasting .pill{min-height:0;display:inline-block;padding:3px 6px;border-radius:999px;font-size:11px}.core-hosted-page.micro-app-project-forecasting .status{font-weight:700;text-transform:uppercase;letter-spacing:.02em}.core-hosted-page.micro-app-project-forecasting .status.active{background:#2fbf712e;color:var(--ok);border:1px solid rgba(47,191,113,.4)}.core-hosted-page.micro-app-project-forecasting .status.complete{background:#f5a5242e;color:var(--warn);border:1px solid rgba(245,165,36,.4)}.core-hosted-page.micro-app-project-forecasting .pill{border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-weight:600;cursor:pointer}.core-hosted-page.micro-app-project-forecasting .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.core-hosted-page.micro-app-project-forecasting .small{color:var(--muted);font-size:12px}.core-hosted-page.micro-app-project-forecasting .error{color:var(--err);white-space:pre-wrap}.core-hosted-page.micro-app-project-forecasting .details-row td{background:#ffffff05;padding:0;overflow:visible}.core-hosted-page.micro-app-project-forecasting .details{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;padding:8px 6px 2px}.core-hosted-page.micro-app-project-forecasting .details-wrap{padding:0 6px;box-sizing:border-box}.core-hosted-page.micro-app-project-forecasting .details-wrap.open{max-height:5200px;padding:8px 6px}.core-hosted-page.micro-app-project-forecasting .timeline-card{margin:8px 6px 2px;padding:8px 0 2px}.core-hosted-page.micro-app-project-forecasting .timeline-shell{background:var(--input-bg);padding:8px}.core-hosted-page.micro-app-project-forecasting .earned-revenue-grid{grid-template-columns:minmax(96px,120px) repeat(var(--earned-revenue-months, 1),minmax(68px,1fr));gap:6px}.core-hosted-page.micro-app-project-forecasting .earned-revenue-cell{min-height:34px;padding:5px 6px}.core-hosted-page.micro-app-project-forecasting .load-more-row{display:flex;justify-content:center;padding:12px 0 4px}.micro-app-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.micro-app-actions:empty{display:none}.micro-app-actions>div,.micro-app-actions>span,.micro-app-actions label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;margin:0}.micro-app-actions button{height:34px;min-height:34px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}.micro-app-actions button:hover{background:var(--btn-secondary-hover-bg)}.micro-app-actions button.active,.micro-app-actions button[aria-selected=true]{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.micro-app-actions button:disabled{cursor:not-allowed;opacity:.58}.micro-app-actions button:has(svg:only-child){width:34px;min-width:34px;padding:0}.micro-app-actions input[type=text],.micro-app-actions input[type=search],.micro-app-actions input[type=date],.micro-app-actions select{min-width:0;width:clamp(160px,22vw,280px);height:34px;min-height:34px;border:1px solid var(--input-border);border-radius:var(--radius);padding:0 12px;background:var(--input-bg);color:var(--text);font:inherit;font-size:13px;outline:none}.micro-app-actions input:focus,.micro-app-actions select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.micro-app-actions input::placeholder{color:var(--muted)}@media(max-width:900px){.micro-app-actions input[type=text],.micro-app-actions input[type=search]{width:clamp(120px,40vw,220px)}}.scope-table{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.scope-row{display:grid;grid-template-columns:1.4fr .7fr 1fr 1.2fr;gap:12px;padding:14px 16px;border-top:1px solid var(--border);align-items:center}.permissions-table .scope-row span{min-width:0;display:inline-flex;align-items:center;gap:8px}.permission-toggle{display:inline-flex;flex-direction:row;align-items:center;gap:8px;color:var(--text)}.permission-toggle input{min-width:0}.scope-row:first-child{border-top:0}.scope-head{background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.settings-panel{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:auto}.settings-table{width:100%;min-width:760px;border-collapse:collapse}.settings-table th,.settings-table td{padding:13px 15px;border-top:1px solid var(--border);text-align:left;vertical-align:middle}.settings-table th{border-top:0;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.settings-table td strong,.settings-table td>span:not(.table-icon-cell){display:block}.settings-table td strong{color:var(--text);font-size:14px;line-height:1.25}.settings-table td>span:not(.table-icon-cell){margin-top:3px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.settings-table .permission-toggle{white-space:nowrap}.table-icon-cell{display:inline-flex;align-items:center;gap:8px;color:var(--text)}.current-user-row{background:var(--accent-soft)}.permission-list{display:grid;gap:14px}.permission-user{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.permission-user-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:var(--surface-muted);border-bottom:1px solid var(--border)}.permission-user-header strong{display:block;color:var(--text);line-height:1.25}.permission-user-header>div>span{display:block;margin-top:3px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0}.permission-control{min-height:72px;display:flex;align-items:center;gap:12px;padding:14px 18px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text);cursor:pointer}.permission-control input{flex:0 0 auto;width:18px;height:18px;margin:0}.user-management-list{display:grid;gap:12px}.user-management-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}.user-management-table-shell{overflow-x:hidden}.user-management-table th,.user-management-table td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:middle;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal}.user-management-status-col,.user-management-table th:nth-child(1),.user-management-table td:nth-child(1){width:112px}.user-management-user-col,.user-management-table th:nth-child(2),.user-management-table td:nth-child(2){width:230px}.user-management-type-col,.user-management-table th:nth-child(3),.user-management-table td:nth-child(3){width:150px}.user-management-permissions-col,.user-management-table th:nth-child(4),.user-management-table td:nth-child(4){width:auto}.user-management-actions-col,.user-management-table th:nth-child(5),.user-management-table td:nth-child(5){width:230px}.user-management-table th{color:var(--muted);font-size:12px;text-transform:uppercase}.user-management-table td span,.user-management-table td small{display:block;overflow-wrap:anywhere}.user-management-table .status-pill{min-width:86px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.user-management-table .status-pill-label{display:inline-flex;align-items:center;justify-content:center;color:inherit;line-height:1.15;overflow-wrap:normal}.user-management-table td small{margin-top:4px;font-size:11px}.user-management-user-row>td{height:70px}.user-table-name strong{display:block;color:var(--text);max-width:200px;overflow-wrap:anywhere}.user-table-name span{display:block;margin-top:3px;font-size:12px;max-width:200px;overflow-wrap:anywhere}.user-table-name small{display:block;max-width:200px;overflow-wrap:anywhere}.user-table-error{color:var(--danger-text, #fca5a5)!important}.user-table-permissions{color:var(--muted);font-size:12px;line-height:1.35;min-width:0;overflow-wrap:anywhere}.user-table-badges,.user-table-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.user-table-actions{justify-content:flex-end;width:100%;min-width:0;gap:12px;row-gap:8px}.user-table-actions .core-button{flex:0 1 auto;min-width:0;padding-inline:9px}.user-table-actions svg.open{transform:rotate(180deg)}.user-permission-dropdown{display:grid;gap:12px;padding:14px 12px 14px 104px}.internal-user-profile-form{display:grid;gap:12px;max-width:920px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.internal-user-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.internal-user-profile-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.user-management-detail-row>td{padding:0}.permission-chip-list{display:grid;gap:8px;max-width:920px}.permission-chip-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:44px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.permission-chip-row span{color:var(--text);font-weight:700;min-width:0;overflow-wrap:anywhere}.master-permission-row{background:color-mix(in srgb,var(--warning) 10%,var(--surface-soft))}.permission-empty{color:var(--muted);padding:10px 0}.permission-add-modal{max-width:560px}.permission-add-body{display:grid;gap:16px}.invite-user-modal{max-width:760px}.invite-user-modal-body{padding:24px}.invite-user-modal .invite-user-panel{margin:0;border:0;padding:0;background:transparent}.invite-user-panel{display:grid;gap:16px;margin-bottom:14px}.invite-user-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.invite-user-head h2{margin:0;font-size:20px}.invite-user-head p{margin:5px 0 0;color:var(--muted)}.invite-user-form{display:grid;gap:14px}.invite-role-grid,.invite-app-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.invite-permission-select{width:100%;min-height:96px;max-height:132px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:10px;font:inherit}.invite-user-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.invite-user-actions span{color:var(--muted);overflow-wrap:anywhere}.pending-invites{display:grid;gap:8px;border-top:1px solid var(--border);padding-top:12px}.pending-invites>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.pending-invites>div>div{min-width:0}.pending-invites span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.auth-login-settings-panel{display:grid;gap:12px;margin-bottom:14px}.user-management-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.user-management-card summary{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 18px;cursor:pointer;list-style:none}.user-management-static-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 18px}.user-management-card summary::-webkit-details-marker{display:none}.user-management-summary{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:16px}.user-management-summary strong,.user-management-summary span{display:block}.user-management-summary strong{color:var(--text);line-height:1.25}.user-management-summary span{margin-top:3px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.user-management-meta{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.user-management-stats{color:var(--muted);display:inline-flex;align-items:center;gap:12px;font-size:12px;white-space:nowrap}.user-management-stats svg{transition:transform .22s ease}.user-management-card[open] .user-management-stats svg{transform:rotate(180deg)}.invite-link-row{border-top:1px solid var(--border);color:var(--muted);font-size:12px;padding:10px 18px;overflow-wrap:anywhere}.auth-settings-modal{width:min(720px,calc(100vw - 48px))}.auth-settings-body{padding:24px;overflow:auto}.auth-settings-section{display:grid;gap:18px}.auth-settings-section h3{margin:0}.auth-settings-section p{margin:5px 0 0;color:var(--muted)}.auth-provider-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.user-permission-dropdown{display:grid;gap:12px;border-top:1px solid var(--border);padding:14px 12px 14px 104px;background:color-mix(in srgb,var(--input-bg) 55%,var(--surface))}.user-management-card-actions{min-height:72px;display:flex;align-items:center;justify-content:flex-start;padding:14px 18px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.registration-integration-stack,.skill-registration-panel,.skill-registration-preview{display:grid;gap:14px}.skill-registration-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.registration-skill-card{display:flex;justify-content:space-between;align-items:center;gap:16px}.registration-skill-card strong,.registration-skill-card span{display:block}.registration-skill-card span{margin-top:4px;color:var(--muted);overflow-wrap:anywhere}.registration-status{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:12px 14px}.registration-integration-card{min-width:0;display:grid;gap:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:18px}.registration-integration-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}.registration-integration-head h2{margin:0;font-size:19px;color:var(--text)}.registration-integration-head span,.registration-integration-card p,.registration-global-summary span{color:var(--muted)}.registration-choice-row{display:flex;flex-wrap:wrap;gap:10px}.registration-choice-row label{min-height:42px;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:0 12px;font-weight:700}.registration-permission-panel,.skill-permission-details{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--input-bg) 58%,var(--surface));padding:12px;display:grid;gap:12px}.registration-permission-head,.skill-permission-group-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.registration-permission-head strong,.skill-permission-group-head strong{color:var(--text)}.registration-permission-head span,.skill-permission-group-head span{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.registration-permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.skill-permission-details>p{margin:0;color:var(--muted)}.skill-detail-tabs{display:inline-flex;flex-wrap:wrap;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:4px}.skill-detail-tabs button{min-height:36px;border:0;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--muted);padding:0 12px;font:inherit;font-weight:800;cursor:pointer}.skill-detail-tabs button.active{background:var(--accent-soft);color:var(--accent-strong)}.skill-permission-group{display:grid;gap:10px}.skill-permission-group+.skill-permission-group{border-top:1px solid var(--border);padding-top:12px}.permission-function-list{min-width:0;display:grid;gap:8px}.skill-permission-actions,.skill-integration-config-actions{display:flex;justify-content:flex-end;gap:8px}.skill-integration-config-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px;display:grid;gap:12px}.skill-function-details{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--input-bg) 58%,var(--surface));padding:12px;display:grid;gap:12px}.skill-contract-summary,.skill-function-row{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px}.skill-contract-summary{display:grid;gap:4px}.skill-requirement-actions{display:flex;justify-content:flex-end}.skill-contract-summary strong,.skill-function-row strong{color:var(--text)}.skill-contract-summary span,.skill-function-row span{color:var(--muted)}.skill-function-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.skill-function-row dl{grid-column:1 / -1;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skill-function-row dt{margin:0 0 3px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.skill-function-row dd{min-width:0;margin:0;color:var(--text);overflow-wrap:anywhere}.contract-schema-none{color:var(--muted)}.contract-schema-viewer{display:grid;gap:8px}.contract-schema-chip{width:fit-content;max-width:100%;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--text);padding:5px 10px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.contract-schema-chip:hover,.contract-schema-chip[aria-expanded=true]{border-color:var(--accent);color:var(--active-text)}.contract-schema-viewer pre{max-height:320px;margin:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:10px;font-size:12px;line-height:1.45;white-space:pre-wrap}.permission-function-list h3{margin:0;color:var(--muted);font-size:12px;text-transform:uppercase}.permission-function-list ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.permission-function-list li{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:9px 10px;display:grid;gap:3px}.permission-function-list strong,.permission-function-list span{min-width:0;display:block}.permission-function-list strong{color:var(--text);font-size:13px}.permission-function-list span,.permission-function-list p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.registration-choice-row input{width:16px;height:16px;margin:0}.registration-global-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:12px}.registration-requirement-list{display:grid;gap:10px}.registration-requirement-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding-top:10px;border-top:1px solid var(--border)}.registration-requirement-row:first-child{padding-top:0;border-top:0}.registration-requirement-row>div{min-width:0;display:grid;gap:4px}.registration-requirement-row strong{color:var(--text)}.registration-requirement-row span{color:var(--muted)}.registration-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;border-top:1px solid var(--border);padding-top:14px}.registration-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}.my-access-grid{display:grid;gap:14px}.identity-card{display:grid;gap:6px}.identity-card strong{font-size:18px}.identity-card span{overflow-wrap:anywhere}.identity-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.readonly-permission-list{display:grid;gap:10px}.permission-readonly-row{min-width:0;min-height:72px;border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:var(--surface)}.permission-readonly-row>div:first-child{min-width:0}.permission-readonly-row .status-pill{min-width:104px}.permission-readonly-row div strong,.permission-readonly-row div span{display:block}.permission-readonly-row span{margin-top:3px;font-size:12px}.branding-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:16px;align-items:start}.branding-save-error{grid-column:1 / -1;margin:0;padding:12px 14px;color:var(--danger-text, #b42318);background:color-mix(in srgb,var(--danger, #dc2626) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--danger, #dc2626) 42%,var(--border));border-radius:var(--radius);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.branding-form{display:grid;gap:14px}.branding-library{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.branding-library h3{margin:0;color:var(--text);font-size:15px}.branding-library p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.branding-library-actions{display:flex;flex-wrap:wrap;gap:10px}.branding-library-actions>*{flex:1 1 auto}.ui-file-input{min-height:44px;padding:9px 12px}.logo-size-control,.logo-upload-grid,.branding-import-export{display:grid;gap:10px}.logo-size-control{grid-template-columns:minmax(0,1fr) 92px;align-items:center}.logo-upload-grid,.branding-import-export{grid-template-columns:repeat(2,minmax(0,1fr))}.branding-import-button input{display:none}.branding-import-button{font-size:inherit;font-weight:650}.branding-preview-panel{display:grid;gap:18px}.branding-preview{min-height:150px;border:1px solid var(--border);border-radius:var(--radius);display:grid;place-items:center;align-content:center;gap:10px;padding:22px;background:var(--bg);text-align:center}.branding-preview .core-logo{width:min(100%,260px)}.branding-preview strong{color:var(--text);font-size:18px}.branding-preview span:not(.core-logo){color:var(--muted)}.color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.color-group{min-width:0;display:grid;gap:10px}.color-group h3{margin:0;font-size:14px;color:var(--text)}.color-subgroup-title{margin:8px 0 0;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.color-control{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;color:var(--muted);font-size:13px}.color-control input{width:44px;height:32px;border:1px solid var(--border);border-radius:var(--radius);padding:2px;background:var(--surface)}.skill-market-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.skills-page .page-header-copy{max-width:min(100%,660px)}.skills-page .page-header-actions{flex:0 0 auto;flex-wrap:nowrap}.skills-page .page-header-actions .skills-page-filter{width:auto;min-width:180px}.integrations-page .page-header-copy{max-width:min(100%,560px)}.integrations-page .page-header-actions{flex:0 0 auto;flex-wrap:nowrap}.skill-market-card{min-width:0;min-height:250px;border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--surface);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.skill-market-card:focus-visible,.skill-market-card.expanded{outline:none;border-color:color-mix(in srgb,var(--accent) 58%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.skill-market-head{display:flex;gap:12px;align-items:flex-start}.skill-market-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.skill-market-card h2{margin:0 0 8px;color:var(--text);font-size:17px;line-height:1.2}.skill-market-card p{margin:0;color:var(--muted);line-height:1.45}.skill-market-meta{min-width:0;display:grid;gap:8px;margin-top:auto;color:var(--muted);font-size:12px}.skill-market-meta span{overflow-wrap:anywhere}.skill-market-status-detail{color:var(--status-warning-text, var(--text))}.skill-market-readiness{margin:0;font-size:12px;font-weight:700;color:var(--status-warning-text, var(--text))}.skill-market-readiness.blocked{color:var(--status-error-text, var(--text))}.skill-market-sidebar-note{margin:0;font-size:12px;color:var(--muted, var(--text))}.skill-readiness{display:grid;gap:14px}.skill-readiness-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.skill-readiness-summary p{margin:0;min-width:0;flex:1 1 240px;font-weight:700}.skill-readiness-facets{display:grid;gap:10px;margin:0;padding:0;list-style:none}.skill-readiness-facet{display:grid;gap:8px;border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);padding:12px 14px}.skill-readiness-facet.ok{border-left-color:var(--status-ok-text, var(--accent))}.skill-readiness-facet.waiting{border-left-color:var(--status-warning-text, var(--accent))}.skill-readiness-facet.blocked{border-left-color:var(--status-error-text, var(--accent))}.skill-readiness-facet-head{display:flex;align-items:flex-start;gap:10px}.skill-readiness-facet-mark{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;background:var(--accent-soft);color:var(--accent-strong)}.skill-readiness-facet.blocked .skill-readiness-facet-mark{background:var(--status-error-bg, var(--accent-soft));color:var(--status-error-text, var(--accent-strong))}.skill-readiness-facet h4{margin:0;font-size:13px}.skill-readiness-facet-head p{margin:2px 0 0;color:var(--muted)}.skill-readiness-detail{margin:0;padding-left:32px;display:grid;gap:4px;color:var(--muted);font-size:12px}.skill-readiness-facet .core-button{justify-self:start;margin-left:32px}.skill-readiness-checked{margin:0;color:var(--muted);font-size:12px}.skill-market-actions{cursor:default;display:grid;gap:12px}.skill-market-danger-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.skill-market-danger-actions .core-button{width:min(100%,180px);justify-content:center}.skill-market-sidebar-toggle{border-top:1px solid var(--border);padding-top:12px}.offline-detail{max-width:46ch;color:var(--muted);font-size:12px}.skill-permission-warning{margin:0;border:1px solid var(--warning);border-radius:8px;padding:10px 12px;color:var(--warning);background:var(--warning-soft);font-weight:600}.skill-log{display:grid;gap:12px}.skill-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-log-head h3{margin:0;font-size:15px}.skill-log-actions{display:flex;align-items:center;gap:10px}.skill-log-count{color:var(--muted, var(--text));font-size:12px}.skill-log-lines{margin:0;max-height:52vh;overflow:auto;padding:12px 14px;border:1px solid var(--border, #23314a);border-radius:8px;background:var(--input-bg, var(--panel));color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.skill-log-depth{min-width:0}.integration-status{margin:0;font-size:12px;line-height:1.45;color:var(--muted, var(--text))}.integration-status-code{font-weight:700}.integration-status.ready .integration-status-code{color:var(--status-success-text, var(--text))}.integration-status.working .integration-status-code{color:var(--status-warning-text, var(--text))}.integration-status.attention{color:var(--text)}.integration-status.attention .integration-status-code{color:var(--status-error-text, var(--text))}.skill-market-awaiting{display:grid;gap:10px;margin-bottom:24px;padding:16px;border:1px solid var(--warning, var(--accent));border-radius:var(--tile-radius, 16px);background:var(--warning-soft, var(--surface))}.skill-market-awaiting .skill-market-section-title{margin:0;font-size:16px}.skill-market-awaiting .skill-market-section-note{margin:0;color:var(--muted)}.skill-key-issued{display:grid;gap:12px;margin:0 0 20px;padding:16px;border:2px solid var(--status-warning-text, var(--accent));border-radius:12px;background:var(--surface, transparent)}.skill-key-issued h3{margin:0;font-size:15px}.skill-key-issued p{margin:0;font-size:13px;line-height:1.5;color:var(--muted-text, var(--text))}.skill-key-issued code{font-size:12px;word-break:break-all}.skill-key-issued-actions{display:flex;flex-wrap:wrap;gap:8px}.registration-conversion-panel{display:grid;gap:12px}.registration-conversion-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.registration-conversion-panel p{margin:0;color:var(--muted, var(--text))}.registration-conversion-file{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;border-top:1px solid var(--border);padding-top:12px;overflow-wrap:anywhere}.registration-conversion-progress{display:grid;gap:6px;font-size:13px;color:var(--muted, var(--text))}.registration-conversion-bar{height:6px;border-radius:999px;background:var(--input-bg, var(--surface));border:1px solid var(--border);overflow:hidden}.registration-conversion-bar span{display:block;height:100%;background:var(--accent);transition:width .12s linear}.registration-action-message{margin-right:auto;align-self:center;font-size:13px;color:var(--muted, var(--text));overflow-wrap:anywhere}.registration-action-message.failed{color:var(--status-error-text, var(--text));font-weight:600}.skills-page-notice{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius, 10px);background:var(--surface);color:var(--text)}.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:normal}.integration-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px;display:grid;gap:12px;transition:border-color .26s ease,box-shadow .26s ease,background .26s ease}.integration-card-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:start}.integration-card h2,.integration-functions h3{margin:0;color:var(--text)}.integration-card h2{font-size:17px;line-height:1.2}.integration-card-head span,.integration-card p,.integration-function span{color:var(--muted)}.integration-card p{margin:0;line-height:1.45}.integration-card-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.integration-card-controls .ui-checkbox-field{min-height:36px}.integration-config-toggle{min-height:38px;border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;align-items:center;gap:10px;padding:0 12px;background:var(--surface-muted);color:var(--text);font:inherit;font-weight:800;cursor:pointer}.integration-config-toggle svg{color:var(--muted);transition:transform .36s ease}.integration-config-toggle.open svg{transform:rotate(180deg)}.integration-modal-layer{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;animation:integration-backdrop-in .26s ease-out}.integration-modal-layer.closing{animation:integration-backdrop-out .26s ease-in forwards}.integration-modal-backdrop{position:absolute;inset:0;border:0;background:#00000085;cursor:default}.integration-modal{position:relative;z-index:1;width:min(1120px,calc(100vw - 48px));max-height:min(860px,calc(100vh - 48px));border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-muted);box-shadow:var(--shadow-soft);transform-origin:center top;animation:integration-modal-in .34s cubic-bezier(.16,1,.3,1)}.integration-modal.closing{animation:integration-modal-out .26s ease-in forwards}.integration-modal-head{flex:0 0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.integration-modal-head h2{margin:0;color:var(--text);font-size:18px;line-height:1.2}.integration-modal-head span{display:block;margin-top:3px;color:var(--muted)}.integration-modal-head .core-button span{display:inline;margin-top:0;color:inherit}.integration-modal-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.integration-test-message{flex:0 0 auto;margin:12px 18px 0;border:1px solid var(--warning);border-radius:8px;padding:10px 12px;color:var(--warning);background:var(--warning-soft);font-weight:700}.integration-test-message.success{border-color:var(--success);color:var(--success);background:var(--success-soft)}@keyframes integration-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes integration-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes integration-modal-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes integration-modal-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.97)}}.integration-config-content{min-height:0;overflow:auto;padding:18px;display:grid;gap:20px}.integration-config-section{display:grid;gap:12px}.integration-named-config-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.integration-named-config-bar>*:first-child{min-width:220px}.integration-named-config{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.integration-named-config-functions{display:grid;gap:8px;max-height:240px;overflow-y:auto}.integration-named-config-function{display:flex;gap:10px;align-items:start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.integration-named-config-function span{display:grid;gap:2px}.integration-named-config-function em{color:var(--muted);font-size:12px;font-style:normal;line-height:1.4}.integration-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.integration-config-form{display:grid;gap:16px;max-width:1160px}.integration-config-note{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.integration-config-section h3{margin:0;color:var(--text);font-size:14px}.integration-config-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,max-content));gap:12px 18px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.integration-config-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px;align-items:start}.integration-config-grid .ui-field,.integration-config-options .ui-checkbox-field{min-width:0}.integration-config-grid .ui-input{min-height:44px}.integration-skill-list{display:grid;gap:12px}.integration-skill-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px;display:grid;gap:12px}.integration-skill-head{display:flex;gap:10px;align-items:center;justify-content:space-between}.integration-skill-head strong{color:var(--text)}.integration-empty-note{margin:0;border:1px dashed var(--border);border-radius:var(--radius);padding:14px;background:var(--surface);color:var(--muted);line-height:1.45}.integration-registered-skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.integration-registered-skill{min-width:0;border:1px solid var(--border);border-radius:var(--radius);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 14px;background:var(--surface)}.integration-registered-skill-badges{flex:0 0 auto;display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.integration-registered-skill-permissions{grid-column:1 / -1;border-top:1px solid var(--border);padding-top:10px}.integration-registered-skill div{min-width:0}.integration-registered-skill strong,.integration-registered-skill span{display:block}.integration-registered-skill span{margin-top:3px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.integration-functions{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:10px}.integration-functions h3{font-size:13px;text-transform:uppercase;color:var(--muted)}.integration-function{display:grid;gap:3px}.integration-function-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.integration-function strong{color:var(--text)}@media(max-width:1120px){.integration-config-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:780px){.integration-config-grid,.integration-config-options,.registration-permission-grid{grid-template-columns:1fr}.integration-section-head,.integration-registered-skill{align-items:flex-start}.integration-registered-skill{grid-template-columns:1fr}.integration-modal-head{align-items:flex-start;grid-template-columns:44px minmax(0,1fr)}.integration-modal-head .core-button{grid-column:1 / -1;width:100%}.integration-modal-actions{grid-column:1 / -1;width:100%;flex-direction:column}.integration-modal-actions .core-button{width:100%}}.virtual-devices-panel{display:grid;gap:12px;margin-top:24px}.virtual-devices-panel>h2,.virtual-devices-panel>p{margin:0}.virtual-devices-panel>p{color:var(--muted);line-height:1.45}.virtual-devices-add{display:flex;flex-wrap:wrap;align-items:center}.virtual-devices-add .ui-input{flex:0 1 auto;width:auto;min-width:240px}.virtual-devices-panel .integration-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.sidebar-config-shell{position:relative}.sidebar-config-list{width:100%;min-width:var(--ui-table-min-width, 760px);display:grid}.sidebar-config-row{min-width:0;display:grid;grid-template-columns:48px minmax(170px,1fr) 116px minmax(130px,.65fr) minmax(280px,1.5fr);gap:14px;align-items:center;padding:16px 20px;border-top:1px solid var(--border);background:var(--surface)}.sidebar-config-head{border-top:0;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.sidebar-config-row .ui-input,.sidebar-page-name{min-width:0}.sidebar-page-name strong{display:block;min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.sidebar-config-row.is-drag-placeholder{opacity:.36}.sidebar-config-empty{padding:18px 20px;border-top:1px solid var(--border);color:var(--muted)}.sidebar-drag-cell{display:flex;align-items:center;justify-content:center}.sidebar-drag-handle{width:28px;height:34px;border:0;border-radius:0;display:inline-grid;place-items:center;padding:0;background:transparent;color:var(--muted);cursor:grab}.sidebar-drag-handle:hover,.sidebar-drag-handle:active{border:0;background:transparent;color:var(--active-text)}.sidebar-drag-handle:active{cursor:grabbing}.sidebar-drag-overlay{position:fixed;z-index:1000;pointer-events:none;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);transform:translateZ(0)}.sidebar-overlay-field{min-width:0;min-height:38px;border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;padding:0 12px;overflow:hidden;background:var(--input-bg);color:var(--text);text-overflow:ellipsis;white-space:nowrap}.internal-users-panel{margin-top:16px}.internal-user-list{display:grid;gap:10px}.internal-user-row{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(140px,1fr) minmax(160px,1fr) minmax(140px,1fr) auto auto;gap:10px;align-items:center}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar-toggle{position:fixed;top:14px;left:14px;z-index:50;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--btn-secondary-bg);color:var(--text);cursor:pointer}.sidebar-backdrop{position:fixed;inset:0;z-index:30;display:block;border:0;background:#00000073}.side-nav{position:fixed;top:0;left:0;bottom:0;z-index:40;width:min(82vw,300px);transform:translate(-100%);transition:transform .16s ease;box-shadow:18px 0 40px #00000040}.app-shell.sidebar-open .side-nav{transform:translate(0)}.nav-section-bottom{margin-top:auto}.sub-nav{margin:4px 0 0 18px;padding-left:10px;border-left:1px solid var(--border)}.nav-button{width:100%;flex:0 0 auto}.workspace{padding:68px 18px 18px}.page-header,.app-card-heading,.ui-section-header,.ui-panel-header,.ui-toolbar{flex-direction:column}.page-header-actions,.ui-section-actions,.ui-panel-actions,.ui-toolbar{width:100%;align-items:stretch}.metric-row,.scope-row,.branding-layout,.color-grid,.internal-user-row,.branding-library-actions,.logo-upload-grid,.branding-import-export,.user-management-card summary,.user-management-summary{grid-template-columns:1fr}.sidebar-config-list{min-width:0}.sidebar-config-row{grid-template-columns:32px minmax(120px,1fr)}.sidebar-config-row>:nth-child(3),.sidebar-config-row>:nth-child(4),.sidebar-config-row>:nth-child(5){grid-column:2}.sidebar-config-head{display:none}.user-management-summary{align-items:flex-start;flex-direction:column}.user-management-meta,.user-management-stats{justify-content:flex-start;white-space:normal}.micro-page{height:calc(100vh - 100px)}}@media(max-width:620px){.permission-user-header{align-items:flex-start;flex-direction:column}.permission-grid{grid-template-columns:1fr}}.dash-grid-frame{display:flex;flex-direction:column;gap:8px;width:100%}.dash-grid{width:100%}.react-grid-item.react-grid-placeholder{background:var(--accent);border-radius:var(--tile-radius, 20px);opacity:.18}.dash-grid .react-grid-item>.react-resizable-handle:after{border-right-color:var(--muted);border-bottom-color:var(--muted)}.dash-tile{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--tile-radius, 20px)}.dash-tile-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.dash-tile-header h3{margin:0;font-size:.95rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-tile-source{margin-left:auto;font-size:.72rem;color:var(--muted);white-space:nowrap}.dash-widget-body{flex:1;min-height:0;overflow:auto;padding:12px}.dash-tile.dash-tile-frameless{background:transparent;border:0;border-radius:0}.dash-tile-frameless .dash-widget-body{padding:0}.section-header{display:flex;align-items:center;height:100%;min-width:0}.section-header-line{flex:1 1 0;min-width:16px;height:0;border-top:1px solid var(--muted);opacity:.55}.section-header-title{flex:0 1 auto;min-width:0;margin:0 14px;font-size:1.05rem;font-weight:600;letter-spacing:.02em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-header-touch .section-header-line{border-top-width:2px}.section-header-touch .section-header-title{margin:0 22px;font-size:1.7rem}.widget-stat{display:flex;flex-direction:column;gap:2px;height:100%}.widget-stat-value{font-size:2rem;line-height:1.1;font-weight:650;color:var(--text)}.widget-stat-of{font-size:1rem;font-weight:500;color:var(--muted)}.widget-stat-ok{color:var(--status-ok-text, var(--accent-strong))}.widget-stat-warning{color:var(--status-warning-text, var(--accent))}.widget-stat-error{color:var(--status-error-text, var(--danger, var(--accent)))}.widget-stat-label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.widget-note{margin:6px 0 0;font-size:.8rem;color:var(--muted)}.widget-note-problem{color:var(--status-error-text, var(--muted))}.widget-list{margin:6px 0 0;padding-left:16px;font-size:.82rem;color:var(--text)}.dash-widget-unavailable{display:flex;align-items:center}.dash-grid-editing .dash-tile{border-style:dashed}.ui-page-body.dash-page-body{position:relative}.dash-floating-notices{position:absolute;right:16px;bottom:16px;left:16px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}.dash-floating-notices>.ui-notice{max-width:560px;margin:8px 0 0;padding:10px 14px;pointer-events:auto;font-size:.88rem;line-height:1.4;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius, 12px);box-shadow:0 8px 24px color-mix(in srgb,var(--text) 18%,transparent)}.dash-floating-notices>.ui-notice-problem{border-color:var(--danger, var(--accent))}.dash-tile-grip{display:inline-flex;cursor:grab;color:var(--muted);touch-action:none}.react-grid-item.react-draggable-dragging .dash-tile-grip{cursor:grabbing}.dash-table{width:100%}.dash-table-row{cursor:pointer}.dash-table-row:hover>td{background:color-mix(in srgb,var(--text) 5%,transparent)}.dash-table-row>td strong{display:block;color:var(--text)}.dash-table-sub,.dash-table-muted{color:var(--muted);font-size:.82rem}.dash-table-caret{width:34px}.dash-table-chevron{display:inline-flex;color:var(--muted);transition:transform .16s ease}.dash-table-chevron.open{transform:rotate(180deg)}.dash-table-actions{width:1%;white-space:nowrap;text-align:right}.dash-details-row>td{padding:0;border-bottom:none}.dash-details-row.open>td{border-bottom:1px solid var(--border)}.dash-details-wrap{overflow:hidden;max-height:0;padding:0 10px;opacity:0;transition:max-height .32s ease,opacity .22s ease,padding .22s ease}.dash-details-wrap.open{max-height:340px;padding:12px 10px;opacity:1}.dash-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.dash-details-label{display:block;margin-bottom:3px;font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dash-details-value{color:var(--text);font-size:.85rem;white-space:pre-wrap}.dash-share{padding:12px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px}.dash-share-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.dash-share-head strong{color:var(--text)}.dash-share-head p{margin:2px 0 0;font-size:.8rem;color:var(--muted)}.dash-share-head>:last-child{margin-left:auto}.dash-share-add{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:10px}.dash-share-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.dash-share-list li{display:flex;align-items:center;gap:10px;padding:6px 8px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.dash-share-who{flex:1;min-width:0}.dash-share-who strong{display:block;color:var(--text);font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-share-who span{font-size:.72rem;color:var(--status-warning-text, var(--muted))}.dash-share-list li select{width:auto;min-width:170px}.dash-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.dash-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px}.dash-list-active{border-color:var(--accent)}.dash-list-open{display:flex;flex:1;align-items:center;gap:10px;min-width:0;padding:0;font:inherit;color:var(--text);text-align:left;background:none;border:0;cursor:pointer}.dash-list-open span{color:var(--muted);font-size:.82rem}.dash-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.dash-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.dash-catalogue{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin:0;padding:0;list-style:none}.dash-catalogue li{display:flex;align-items:flex-start;gap:10px;padding:10px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px}.dash-catalogue li p{margin:4px 0 0;font-size:.8rem;color:var(--muted)}.dash-catalogue-source{display:block;font-size:.72rem;color:var(--muted)}.dash-catalogue-unavailable{opacity:.65}.kiosk-shell{position:fixed;inset:0;display:flex;overflow:hidden;background:var(--bg)}.kiosk-shell-empty{align-items:center;justify-content:center;padding:32px}.kiosk-workspace{flex:1 1 auto;min-width:0;min-height:0;height:auto;display:flex;flex-direction:column;padding:16px}.kiosk-workspace>.micro-page{flex:1 1 auto;height:auto;min-height:0}.kiosk-nav{flex:0 0 auto;min-height:0;overflow-y:auto}@media(max-width:980px){.side-nav.kiosk-nav{position:static;z-index:auto;width:auto;transform:none;transition:none;box-shadow:none}}@media(max-width:720px){.kiosk-shell-with-sidebar{flex-direction:column}.side-nav.kiosk-nav{width:100%;max-height:40%;border-right:0;border-bottom:1px solid var(--border)}}.sidebar-shown-toggle{padding:0;font:inherit;background:none;border:0;cursor:pointer}.sidebar-page-kind{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dash-pages{display:flex;align-items:center;height:100%;min-width:0;overflow-x:auto;overflow-y:hidden}.dash-pages-center>.dash-page:first-child,.dash-pages-end>.dash-page:first-child{margin-left:auto}.dash-pages-center>.dash-page:last-child{margin-right:auto}.dash-pages .dash-page{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:68px;margin:0 3px;padding:6px 12px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;cursor:pointer;opacity:.82;transition:background .12s ease,color .12s ease,opacity .12s ease}.dash-pages .dash-page:hover{background:var(--accent-soft);opacity:1}.dash-pages .dash-page:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-pages .dash-page-showing{background:var(--accent-soft);color:var(--accent);opacity:1}.dash-page-icon{display:flex;align-items:center;justify-content:center}.dash-page-icon svg{display:block}.dash-page-initials{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:2px solid currentColor;border-radius:50%;font-size:.72rem;font-weight:700;letter-spacing:.02em}.dash-page-label{margin-top:4px;font-size:.8rem;font-weight:600;white-space:nowrap}.dash-pages-touch .dash-page{min-width:104px;margin:0 6px;padding:10px 18px}.dash-pages-touch .dash-page-label{margin-top:6px;font-size:1.1rem}.dash-pages-touch .dash-page-initials{font-size:1.05rem}.dash-pages-editor{display:grid;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--border)}.dash-pages-editor-title{margin:0;font-size:.95rem}.dash-pages-editor-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.dash-pages-editor-row{padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.dash-pages-editor-fields{display:flex;flex-wrap:wrap;align-items:center;margin:-3px}.dash-pages-editor-fields>*{margin:3px}.dash-pages-editor-name{flex:1 1 140px;min-width:0}.dash-pages-editor-route{flex:1 1 190px;min-width:0}.dash-pages-editor-moves{display:inline-flex;flex:0 0 auto}.dash-pages-editor-note,.dash-pages-editor-confirm{margin:6px 0 0;font-size:.85rem;color:var(--muted)}.dash-pages-editor-confirm{display:flex;flex-wrap:wrap;align-items:center;color:var(--text)}.dash-pages-editor-confirm>*{margin:3px 8px 3px 0}.dash-icon-choice{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);font:inherit;font-size:.72rem;font-weight:700;cursor:pointer}.dash-icon-choice-open,.dash-icon-choice:focus-visible{border-color:var(--accent);outline:none}.dash-icon-picker{margin-top:8px}.dash-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px;max-height:224px;overflow-y:auto;padding:2px}.dash-icon-cell{display:flex;align-items:center;justify-content:center;height:40px;padding:0;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer}.dash-icon-cell:hover{background:var(--accent-soft)}.dash-icon-cell-chosen,.dash-icon-cell:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.dash-icon-clear{padding:0;border:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.ui-stack.dash-screen-with-page{display:flex;flex-direction:column;gap:0;min-height:100%}.ui-stack.dash-screen-with-page>*+*{margin-top:14px}.dash-screen-with-page>.dash-embedded-page{display:flex;flex:1 1 auto;flex-direction:column;min-height:420px}.dash-embedded-page>.micro-page{flex:1 1 auto;height:auto;min-height:0}.dash-embedded-page>.dash-embedded-dashboard,.dash-embedded-dashboard{min-height:0}.ui-page-body.dash-page-body-fits{overflow:hidden}.ui-stack.dash-screen-fits{display:flex;flex-direction:column;gap:0;height:100%;min-height:0;overflow:hidden}.ui-stack.dash-screen-fits>*+*{margin-top:14px}.dash-embedded-dashboard{display:flex;flex-direction:column}.dash-embedded-dashboard>.ui-stack.dash-screen-fits{flex:1 1 auto;height:auto}.dash-screen{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0}.dash-screen>*+*{margin-top:14px}.dash-screen-scroller{flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.dash-screen-with-below>.dash-screen-scroller{flex:0 0 auto}.dash-screen-with-below>.dash-embedded-page{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:auto}.dash-screen-scroller.dash-screen-horizontal{overflow-x:auto;overflow-y:hidden}.dash-screen-scroller.dash-screen-both,.dash-screen-scroller.dash-screen-arranging{overflow:auto}.dash-screen-canvas{position:relative}.dash-screen-canvas-fixed{margin-right:auto;margin-left:auto}.dash-screen-arranging .dash-screen-canvas-fixed{box-shadow:0 0 0 1px var(--border)}.dash-screen-scaled{transform-origin:0 0}.dash-screen-edge{position:absolute;top:0;left:0;border-bottom:2px dashed var(--accent);pointer-events:none;opacity:.7}.dash-tile.dash-tile-off-screen{border-color:var(--danger, var(--accent));opacity:.6}.dash-tile-off-screen .dash-tile-source{color:var(--danger, var(--accent))}.dash-screen-editor{display:grid;gap:12px}.dash-screen-editor+.dash-screen-editor{padding-top:14px;border-top:1px solid var(--border)}.dash-screen-editor-title{margin:0;font-size:.95rem;color:var(--text)}.dash-screen-editor-note{margin:0;font-size:.85rem;color:var(--muted)}.dash-screen-editor-sizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.device-list-item{flex-wrap:wrap;cursor:default}.device-pairing{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.device-pairing-qr{width:min(260px,70vw);height:auto;aspect-ratio:1;border-radius:6px}.device-pairing-code{margin:0;font-size:2rem;font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--text)}.device-pairing-time{margin:0;color:var(--muted);font-size:.9rem}.device-pairing-done{margin:0;padding:10px 14px;border-radius:var(--radius);color:var(--success);background:var(--success-soft);font-weight:600}.device-pairing-computer{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:6px;justify-content:center}.public-app-shell{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--text)}.public-app-header{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"brand title actions";align-items:center;gap:16px;padding:12px clamp(16px,4vw,32px);border-bottom:1px solid var(--border);background:var(--panel)}.public-app-brand{grid-area:brand;justify-self:start;min-width:0;max-width:260px}.public-app-title{grid-area:title;justify-self:center;margin:0;min-width:0;font-size:20px;line-height:1.2;text-align:center;overflow-wrap:anywhere}.public-app-actions{grid-area:actions;justify-self:end;display:flex;align-items:center;gap:12px}.public-app-sign-in{flex:0 0 auto;color:var(--text);font-weight:650;text-decoration:none;white-space:nowrap}.public-app-sign-in:hover,.public-app-sign-in:focus-visible{color:var(--accent);text-decoration:underline}.public-app-workspace{flex:1 1 auto;min-height:0;height:auto;width:100%;margin:0;overflow-x:hidden;overflow-y:auto;padding:clamp(12px,3vw,28px) clamp(16px,4vw,32px)}.public-app-workspace>.micro-page{height:auto;min-height:0;width:min(100%,980px);margin:0 auto}.public-app-workspace>.micro-page>.integrated-page{flex:0 0 auto;overflow:visible}@media(max-width:620px){.public-app-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "title title";row-gap:10px}.public-app-brand{max-width:180px}.public-app-title{font-size:18px}}.micro-app-price-tracking .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-price-tracking .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-price-tracking .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-price-tracking .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-price-tracking .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-price-tracking .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-price-tracking .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-price-tracking body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #d3870f;--err: #d64545;--border: #d8e0ef;--scroll-track: #eef2fb;--scroll-thumb: #c7d1e5;--scroll-thumb-hover: #b3c0db;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--pill-active-bg: rgba(47, 107, 255, .12);--logo-text: #1a2440;--logo-accent: #78b52a}.micro-app-price-tracking{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-price-tracking{height:100%}.micro-app-price-tracking *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.micro-app-price-tracking *::-webkit-scrollbar{width:10px;height:10px}.micro-app-price-tracking *::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}.micro-app-price-tracking *::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:2px solid var(--scroll-track)}.micro-app-price-tracking *::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.micro-app-price-tracking .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.micro-app-price-tracking h1{margin:0;font-size:20px;white-space:nowrap}.micro-app-price-tracking #root>.container{padding:10px}.micro-app-price-tracking .header{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex:0 0 auto}.micro-app-price-tracking .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-price-tracking .logo .wave{fill:var(--logo-accent)}.micro-app-price-tracking .logo .wordmark{fill:var(--logo-text)}.micro-app-price-tracking .header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.micro-app-price-tracking .tab-row{flex:0 1 auto;min-width:0;margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-price-tracking .tab-button{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-price-tracking .tab-button.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.micro-app-price-tracking .tab-search{align-self:center;width:auto;min-width:0;height:34px;flex:1 1 160px;max-width:320px}.micro-app-price-tracking .search-bar{flex:1 1 360px;min-width:280px;display:flex;flex-direction:column;align-items:stretch;gap:6px}.micro-app-price-tracking .search-bar input[type=text]{min-width:280px;height:34px}.micro-app-price-tracking .panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px}.micro-app-price-tracking .progress-panel{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.micro-app-price-tracking .progress-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.micro-app-price-tracking .progress-track{width:100%;height:14px;border-radius:999px;border:1px solid var(--border);background:var(--input-bg);overflow:hidden}.micro-app-price-tracking .progress-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease}.micro-app-price-tracking .progress-fill.complete{background:var(--ok)}.micro-app-price-tracking .progress-fill.error,.micro-app-price-tracking .progress-fill.canceled{background:var(--err)}.micro-app-price-tracking .row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.micro-app-price-tracking label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.micro-app-price-tracking input[type=date],.micro-app-price-tracking input[type=text],.micro-app-price-tracking select{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;min-width:160px}.micro-app-price-tracking input[type=text]{min-width:0;width:100%;font-size:12px}.micro-app-price-tracking table input,.micro-app-price-tracking table select,.micro-app-price-tracking table button{min-width:0}.micro-app-price-tracking input[type=text]::placeholder{color:var(--muted)}.micro-app-price-tracking input[type=checkbox]{appearance:none;width:18px;height:18px;border-radius:6px;border:1px solid var(--input-border);background:var(--input-bg);display:inline-grid;place-items:center;cursor:pointer}.micro-app-price-tracking input[type=checkbox]:focus{outline:none;box-shadow:none}.micro-app-price-tracking input[type=checkbox]:after{content:"";width:10px;height:10px;border-radius:4px;background:var(--accent);transform:scale(0);transition:transform .1s ease-in-out}.micro-app-price-tracking input[type=checkbox]:checked:after{transform:scale(1)}.micro-app-price-tracking button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}.micro-app-price-tracking button.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-price-tracking button.danger{background:#ff5d5d24;color:var(--err);border:1px solid rgba(255,93,93,.35)}.micro-app-price-tracking button.small{padding:6px 10px;font-size:12px;border-radius:6px}.micro-app-price-tracking button:disabled{opacity:.6;cursor:not-allowed}.micro-app-price-tracking .meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}.micro-app-price-tracking .pill{display:inline-block;padding:4px 8px;border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.micro-app-price-tracking .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.micro-app-price-tracking .icon-button{display:inline-grid;place-items:center;padding:0;width:34px;min-width:34px;height:34px}.micro-app-price-tracking .status-cell{white-space:nowrap}.micro-app-price-tracking .small{color:var(--muted);font-size:12px}.micro-app-price-tracking .error{color:var(--err);font-size:13px}.micro-app-price-tracking .actions-row{display:flex;flex-direction:column;gap:6px;align-items:stretch}.micro-app-price-tracking .col-review{width:6%}.micro-app-price-tracking .col-status{width:9%}.micro-app-price-tracking .col-vendor{width:15%}.micro-app-price-tracking .col-part{width:22%}.micro-app-price-tracking .col-price,.micro-app-price-tracking .col-msrp{width:11.5%}.micro-app-price-tracking .col-date{width:16%}.micro-app-price-tracking .col-actions{width:9%}.micro-app-price-tracking .action-button{width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.micro-app-price-tracking button.retry-button{background:var(--accent);color:#04122b;border:1px solid var(--accent)}.micro-app-price-tracking button.retry-button:hover{filter:brightness(1.05)}.micro-app-price-tracking .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px}.micro-app-price-tracking .table-wrap{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border);border-radius:10px}.micro-app-price-tracking .load-more-row{display:flex;justify-content:center;padding:12px 0 4px}.micro-app-price-tracking .load-more-row button{min-width:120px}.micro-app-price-tracking table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.micro-app-price-tracking th,.micro-app-price-tracking td{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.micro-app-price-tracking td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.micro-app-price-tracking th{color:var(--muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--panel);z-index:2}.micro-app-price-tracking .table-panel th:nth-child(2),.micro-app-price-tracking td.status-cell{min-width:120px}.micro-app-price-tracking td.status-cell{overflow:visible}.micro-app-price-tracking tr.line-row{cursor:pointer}.micro-app-price-tracking tr.line-row:hover td{background:#6aa4ff0f}.micro-app-price-tracking td:nth-child(7){font-size:12px;line-height:1.35}.micro-app-price-tracking .cell-input{width:100%;min-width:0;padding:6px 8px;border-radius:6px}.micro-app-price-tracking .cell-input.invalid{border-color:var(--err);color:var(--err)}.micro-app-price-tracking .money-input{display:flex;align-items:center;gap:4px;width:100%;min-width:0}.micro-app-price-tracking .money-input .currency-prefix{flex:0 0 auto;color:var(--muted);font-weight:700}.micro-app-price-tracking .money-input .cell-input{flex:1 1 auto}.micro-app-price-tracking .tooltip{display:inline-flex;align-items:center}.micro-app-price-tracking .floating-tooltip{position:fixed;background:#000;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.3;white-space:pre-wrap;max-width:320px;width:max-content;box-shadow:0 8px 20px #00000040;opacity:0;visibility:hidden;transform:translate(-50%,-10px);transition:opacity .12s ease,transform .12s ease;pointer-events:none;z-index:50}.micro-app-price-tracking .floating-tooltip.visible{opacity:1;visibility:visible;transform:translate(-50%,-14px)}.micro-app-price-tracking .floating-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.micro-app-price-tracking .run-dialog-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}.micro-app-price-tracking .settings-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.micro-app-price-tracking .settings-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:20px;width:100%;max-width:640px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 18px 48px #00000059}.micro-app-price-tracking .settings-dialog h2{margin:0 0 6px;font-size:18px}.micro-app-price-tracking .settings-dialog .settings-subheading{margin:20px 0 8px;padding-top:16px;border-top:1px solid var(--border);font-size:14px;font-weight:700}.micro-app-price-tracking .settings-dialog .settings-explanation{color:var(--muted);font-size:13px;line-height:1.45;margin:0 0 16px}.micro-app-price-tracking .settings-dialog label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.micro-app-price-tracking .settings-dialog .settings-row{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.micro-app-price-tracking .settings-dialog .settings-row.centered{justify-content:center;flex-wrap:wrap}.micro-app-price-tracking .settings-dialog .settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 14px;margin-top:4px}.micro-app-price-tracking .settings-dialog .settings-grid label{margin-top:8px}.micro-app-price-tracking .settings-dialog .settings-note{color:var(--muted);font-size:12px;margin-top:10px}.micro-app-price-tracking .settings-dialog .settings-error{color:var(--err, #d13c37);font-size:13px;margin-top:10px}.micro-app-price-tracking .settings-dialog .settings-check{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-weight:600;cursor:pointer}.micro-app-price-tracking .settings-dialog .name-picker{position:relative}.micro-app-price-tracking .settings-dialog .name-picker-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left}.micro-app-price-tracking .settings-dialog .name-picker-menu{position:absolute;z-index:2;left:0;right:0;margin-top:4px;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px #00000059}.micro-app-price-tracking .settings-dialog .name-picker-filter{width:100%;margin-bottom:6px}.micro-app-price-tracking .settings-dialog .name-picker-list{max-height:210px;overflow-y:auto}.micro-app-price-tracking .settings-dialog .name-picker-option{display:flex;align-items:center;gap:8px;margin:0;padding:4px 2px;font-size:13px;font-weight:500;cursor:pointer}.micro-app-price-tracking .settings-dialog .name-picker-option:hover{background:var(--border);border-radius:4px}.micro-app-price-tracking .settings-dialog .name-picker-empty{color:var(--muted);font-size:13px;padding:6px 2px}.micro-app-price-tracking .settings-dialog .name-picker-chosen{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.micro-app-price-tracking .settings-dialog .name-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:999px;cursor:pointer}.micro-app-price-tracking .settings-dialog .name-chip:hover{border-color:var(--accent);color:var(--accent)}.micro-app-price-tracking .settings-dialog.run-history-dialog{max-width:960px}.micro-app-price-tracking .run-history-table-wrap{overflow:auto;max-height:calc(100vh - 220px);border:1px solid var(--border);border-radius:10px}.micro-app-price-tracking .run-history-table{table-layout:auto;min-width:760px}.micro-app-price-tracking .run-history-table .run-history-when,.micro-app-price-tracking .run-history-table .run-history-kind,.micro-app-price-tracking .run-history-table .run-history-took{white-space:nowrap}.micro-app-price-tracking .run-history-table .run-history-outcome{overflow-wrap:anywhere}.micro-app-price-tracking .empty-placeholder{color:var(--muted);font-size:12px}.micro-app-price-tracking .stacked-inputs{display:flex;flex-direction:column;gap:6px}.micro-app-price-tracking .stacked-inputs .cell-input[type=date]{min-width:0;height:28px;padding:4px 6px;font-size:12px}.micro-app-price-tracking .part-cell{display:flex;flex-direction:column;gap:4px;align-items:stretch}.micro-app-price-tracking .part-cell-main{min-height:36px;display:flex;align-items:center}.micro-app-price-tracking .part-cell-main .cell-input{min-height:36px}.micro-app-price-tracking .part-cell-master,.micro-app-price-tracking .part-cell-description{line-height:1.25}.micro-app-price-tracking .q360-compare{margin-top:2px;line-height:1.3;white-space:nowrap}.micro-app-price-tracking .price-delta{font-weight:700;white-space:nowrap}.micro-app-price-tracking .price-delta.up{color:var(--ok)}.micro-app-price-tracking .price-delta.down{color:var(--err)}.micro-app-price-tracking .price-delta.flat{color:var(--muted)}.micro-app-price-tracking .history-row td{background:#ffffff05;padding:0;border-bottom:none}.micro-app-price-tracking .history-row.open td{border-bottom:1px solid var(--border)}.micro-app-price-tracking .history-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 8px;transition:max-height .35s ease,opacity .25s ease,padding .25s ease}.micro-app-price-tracking .history-wrap.open{max-height:360px;opacity:1;padding:10px 8px;overflow-y:auto}.micro-app-price-tracking .price-history{display:grid;gap:8px;color:var(--muted);font-size:12px}.micro-app-price-tracking .history-entry{display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,.75fr) minmax(100px,.75fr) minmax(150px,1fr) minmax(150px,1fr) minmax(96px,auto);gap:10px;align-items:start;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg)}.micro-app-price-tracking .history-label{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.micro-app-price-tracking .history-value{color:var(--text);overflow-wrap:anywhere}.micro-app-price-tracking .history-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-price-tracking .history-action{align-self:stretch;display:flex;align-items:center}.micro-app-price-tracking .history-entry.current{background:#2fbf711f;border-color:#2fbf716b}.micro-app-price-tracking .history-group{margin-top:6px;padding-top:8px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.micro-app-price-tracking .history-source{display:block;color:var(--muted);font-size:11px;margin-top:2px}.micro-app-price-tracking .current-badge{display:inline-flex;align-items:center;min-height:18px;border-radius:999px;padding:2px 7px;background:#2a9d6f29;color:var(--ok);border:1px solid rgba(42,157,111,.38);font-size:11px;font-weight:700}.micro-app-price-tracking .quote-table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.micro-app-price-tracking .quote-table-wrap{flex:1 1 0;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:10px}.micro-app-price-tracking .quote-table{font-size:12px}.micro-app-price-tracking .quote-table th,.micro-app-price-tracking .quote-table td{padding:6px 8px}.micro-app-price-tracking .quote-table .action-button{width:100%;max-width:128px;min-width:0}.micro-app-price-tracking .quote-details-row td{background:#ffffff05;padding:0;border-bottom:none}.micro-app-price-tracking .quote-details-row.open td{border-bottom:1px solid var(--border)}.micro-app-price-tracking .quote-details-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 8px;transition:max-height .35s ease,opacity .25s ease,padding .25s ease}.micro-app-price-tracking .quote-details-wrap.open{max-height:320px;opacity:1;padding:10px 8px;overflow-y:auto}.micro-app-price-tracking .quote-change-list{display:grid;gap:8px;color:var(--muted);font-size:12px}.micro-app-price-tracking .quote-change-entry{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.4fr) minmax(100px,.7fr) minmax(100px,.7fr) minmax(90px,.5fr);gap:10px;align-items:start;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg)}.micro-app-price-tracking .quote-title-cell{display:flex;flex-direction:column;gap:3px;min-width:0}.micro-app-price-tracking .vendor-quote-link,.micro-app-price-tracking .vendor-quote-link:visited{color:var(--text);font-weight:650;text-decoration:none;overflow-wrap:anywhere}.micro-app-price-tracking .vendor-quote-link:hover,.micro-app-price-tracking .vendor-quote-link:focus-visible{color:var(--accent);text-decoration:underline}.micro-app-price-tracking .vendor-quote-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.micro-app-price-tracking .quote-table{min-width:900px}.micro-app-price-tracking .quote-col-type{width:84px}.micro-app-price-tracking .quote-col-status{width:120px}.micro-app-price-tracking .quote-col-revision{width:76px}.micro-app-price-tracking .quote-col-items{width:112px}.micro-app-price-tracking .quote-col-updated{width:120px}.micro-app-price-tracking .quote-col-details{width:94px}.micro-app-price-tracking .quote-col-actions{width:144px}.micro-app-price-tracking .vendor-quote-unverified{color:var(--warning, var(--warn));font-weight:700}.micro-app-price-tracking .quote-type{display:inline-block;padding:1px 8px;border:1px solid var(--border);border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.micro-app-price-tracking .quote-type-q360{color:var(--accent)}.micro-app-price-tracking .quote-type-vendor,.micro-app-price-tracking .quote-none{color:var(--muted)}.micro-app-price-tracking .vendor-quote-check-problem{margin-top:8px;color:var(--danger, var(--err))}.micro-app-price-tracking .placeholder-box{padding:12px;border-radius:8px;background:var(--input-bg);border:1px dashed var(--border);color:var(--muted);font-size:13px}.micro-app-price-tracking .access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:16px}.micro-app-price-tracking .boot-status{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:var(--bg);color:var(--text);text-align:center}.micro-app-price-tracking .boot-status.visible{display:flex}.micro-app-price-tracking .boot-status-inner{max-width:620px;line-height:1.5}.micro-app-price-tracking .boot-status-title{display:block;margin-bottom:6px;font-size:16px}.micro-app-price-tracking .boot-status-message{color:var(--muted);font-size:13px}@media(max-width:720px){.micro-app-price-tracking .container{padding:16px}.micro-app-price-tracking .header-actions{margin-left:0}}.micro-app-msrp-discount-calculator .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-msrp-discount-calculator .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-msrp-discount-calculator .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-msrp-discount-calculator .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-msrp-discount-calculator .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-msrp-discount-calculator .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-msrp-discount-calculator .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-msrp-discount-calculator body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #d3870f;--err: #d64545;--border: #d8e0ef;--scroll-track: #eef2fb;--scroll-thumb: #c7d1e5;--scroll-thumb-hover: #b3c0db;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--pill-active-bg: rgba(47, 107, 255, .12);--logo-text: #1a2440;--logo-accent: #78b52a}.micro-app-msrp-discount-calculator{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-msrp-discount-calculator{height:100%}.micro-app-msrp-discount-calculator *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.micro-app-msrp-discount-calculator *::-webkit-scrollbar{width:10px;height:10px}.micro-app-msrp-discount-calculator *::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}.micro-app-msrp-discount-calculator *::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:2px solid var(--scroll-track)}.micro-app-msrp-discount-calculator *::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.micro-app-msrp-discount-calculator .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.micro-app-msrp-discount-calculator h1{margin:0;font-size:20px;white-space:nowrap}.micro-app-msrp-discount-calculator #root>.container{padding:10px}.micro-app-msrp-discount-calculator .header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}.micro-app-msrp-discount-calculator .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-msrp-discount-calculator .logo .wave{fill:var(--logo-accent)}.micro-app-msrp-discount-calculator .logo .wordmark{fill:var(--logo-text)}.micro-app-msrp-discount-calculator .header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.micro-app-msrp-discount-calculator .tab-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-msrp-discount-calculator .tab-button{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-msrp-discount-calculator .tab-button.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.micro-app-msrp-discount-calculator .tab-search{width:clamp(200px,24vw,300px);height:38px;flex:0 1 300px}.micro-app-msrp-discount-calculator .panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px}.micro-app-msrp-discount-calculator .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.micro-app-msrp-discount-calculator .row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.micro-app-msrp-discount-calculator label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.micro-app-msrp-discount-calculator input[type=text],.micro-app-msrp-discount-calculator select{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;min-width:160px;height:38px}.micro-app-msrp-discount-calculator input[type=text]{min-width:0;width:100%;font-size:12px}.micro-app-msrp-discount-calculator input[type=text]::placeholder{color:var(--muted)}.micro-app-msrp-discount-calculator .file-picker{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);min-width:360px;max-width:560px;flex:1 1 420px}.micro-app-msrp-discount-calculator .file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.micro-app-msrp-discount-calculator .file-control{display:flex;align-items:center;min-height:38px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;overflow:hidden}.micro-app-msrp-discount-calculator .file-button{align-self:stretch;display:inline-flex;align-items:center;padding:0 12px;background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border-right:1px solid var(--btn-secondary-border);font-weight:600}.micro-app-msrp-discount-calculator .file-name{min-width:0;padding:0 10px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.micro-app-msrp-discount-calculator button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer;min-height:38px}.micro-app-msrp-discount-calculator button.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-msrp-discount-calculator button.small{padding:6px 10px;font-size:12px;border-radius:6px;min-height:30px}.micro-app-msrp-discount-calculator button:disabled{opacity:.6;cursor:not-allowed}.micro-app-msrp-discount-calculator .meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}.micro-app-msrp-discount-calculator .progress-panel{display:flex;flex-direction:column;gap:6px;padding:10px}.micro-app-msrp-discount-calculator .progress-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.micro-app-msrp-discount-calculator .progress-track{width:100%;height:14px;border-radius:999px;border:1px solid var(--border);background:var(--input-bg);overflow:hidden}.micro-app-msrp-discount-calculator .progress-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease}.micro-app-msrp-discount-calculator .progress-fill.ok{background:var(--ok)}.micro-app-msrp-discount-calculator .progress-fill.error,.micro-app-msrp-discount-calculator .progress-fill.canceled{background:var(--err)}.micro-app-msrp-discount-calculator .table-wrap{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border);border-radius:10px}.micro-app-msrp-discount-calculator table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.micro-app-msrp-discount-calculator .expand-col{width:44px}.micro-app-msrp-discount-calculator .details-toggle{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border-radius:6px;line-height:1}.micro-app-msrp-discount-calculator .vendor-detail-row td{background:color-mix(in srgb,var(--input-bg) 72%,transparent);padding:10px 12px 14px}.micro-app-msrp-discount-calculator .vendor-detail-table{font-size:12px}.micro-app-msrp-discount-calculator .vendor-detail-table th{position:static;background:transparent}.micro-app-msrp-discount-calculator .vendor-detail-table th,.micro-app-msrp-discount-calculator .vendor-detail-table td{padding:6px 8px}.micro-app-msrp-discount-calculator .category-item-row td{background:color-mix(in srgb,var(--input-bg) 86%,transparent);padding:10px 12px 14px}.micro-app-msrp-discount-calculator .category-items-meta{color:var(--muted);font-size:12px;margin-bottom:8px}.micro-app-msrp-discount-calculator .category-items-table{font-size:12px}.micro-app-msrp-discount-calculator .category-items-table th{position:static;background:transparent}.micro-app-msrp-discount-calculator .category-items-table th,.micro-app-msrp-discount-calculator .category-items-table td{padding:6px 8px}.micro-app-msrp-discount-calculator .load-more-bar{flex:0 0 auto;display:flex;justify-content:center;padding-top:10px}.micro-app-msrp-discount-calculator .load-more-bar button{min-width:120px}.micro-app-msrp-discount-calculator th,.micro-app-msrp-discount-calculator td{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.micro-app-msrp-discount-calculator td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.micro-app-msrp-discount-calculator th{color:var(--muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--panel);z-index:2}.micro-app-msrp-discount-calculator th:first-child:not(.expand-col),.micro-app-msrp-discount-calculator td.status-cell{min-width:120px}.micro-app-msrp-discount-calculator td.status-cell{overflow:visible}.micro-app-msrp-discount-calculator .description-cell{line-height:1.35}.micro-app-msrp-discount-calculator .description-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;cursor:default}.micro-app-msrp-discount-calculator .num{text-align:right;font-variant-numeric:tabular-nums}.micro-app-msrp-discount-calculator .item-table .col-status{width:9%}.micro-app-msrp-discount-calculator .item-table .col-manufacturer,.micro-app-msrp-discount-calculator .item-table .col-item{width:13%}.micro-app-msrp-discount-calculator .item-table .col-category{width:15%}.micro-app-msrp-discount-calculator .item-table .col-description{width:22%}.micro-app-msrp-discount-calculator .item-table .col-money,.micro-app-msrp-discount-calculator .item-table .col-discount{width:8%}.micro-app-msrp-discount-calculator .item-table .col-master{width:12%}.micro-app-msrp-discount-calculator .manufacturer-table .col-expand{width:44px}.micro-app-msrp-discount-calculator .manufacturer-table .col-vendor{width:26%}.micro-app-msrp-discount-calculator .manufacturer-table .col-number{width:14.5%}.micro-app-msrp-discount-calculator .vendor-detail-table .col-expand{width:40px}.micro-app-msrp-discount-calculator .vendor-detail-table .col-category{width:24%}.micro-app-msrp-discount-calculator .vendor-detail-table .col-number{width:12%}.micro-app-msrp-discount-calculator .category-items-table .col-status{width:10%}.micro-app-msrp-discount-calculator .category-items-table .col-item{width:15%}.micro-app-msrp-discount-calculator .category-items-table .col-description{width:27%}.micro-app-msrp-discount-calculator .category-items-table .col-money,.micro-app-msrp-discount-calculator .category-items-table .col-discount{width:10%}.micro-app-msrp-discount-calculator .category-items-table .col-master{width:18%}.micro-app-msrp-discount-calculator .manufacturer-table th,.micro-app-msrp-discount-calculator .vendor-detail-table th,.micro-app-msrp-discount-calculator .category-items-table th{white-space:normal}.micro-app-msrp-discount-calculator .tooltip{display:inline-flex;align-items:center}.micro-app-msrp-discount-calculator .floating-tooltip{position:fixed;background:#000;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.3;white-space:pre-wrap;max-width:360px;width:max-content;box-shadow:0 8px 20px #00000040;opacity:0;visibility:hidden;transform:translate(-50%,-10px);transition:opacity .12s ease,transform .12s ease;pointer-events:none;z-index:50}.micro-app-msrp-discount-calculator .floating-tooltip.visible{opacity:1;visibility:visible;transform:translate(-50%,-14px)}.micro-app-msrp-discount-calculator .floating-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.micro-app-msrp-discount-calculator .pill{display:inline-block;padding:4px 8px;border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.micro-app-msrp-discount-calculator .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.micro-app-msrp-discount-calculator .small{color:var(--muted);font-size:12px}.micro-app-msrp-discount-calculator .error{color:var(--err);font-size:13px}.micro-app-msrp-discount-calculator .ok-text{color:var(--ok);font-size:13px}.micro-app-msrp-discount-calculator .empty{padding:16px;text-align:center;color:var(--muted)}.micro-app-msrp-discount-calculator .access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:16px}.micro-app-msrp-discount-calculator .boot-status{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:var(--bg);color:var(--text);text-align:center}.micro-app-msrp-discount-calculator .boot-status.visible{display:flex}.micro-app-msrp-discount-calculator .boot-status-title{display:block;margin-bottom:6px;font-size:16px}.micro-app-msrp-discount-calculator .boot-status-message{color:var(--muted);font-size:13px}.micro-app-project-forecasting .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-project-forecasting .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-project-forecasting .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-project-forecasting .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-project-forecasting .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-project-forecasting .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-project-forecasting .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-project-forecasting body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #f5a524;--err: #d64545;--border: #d8e0ef;--scroll-track: #eef2fb;--scroll-thumb: #c7d1e5;--scroll-thumb-hover: #b3c0db;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-danger-bg: rgba(214, 69, 69, .08);--btn-danger-text: #d64545;--btn-danger-border: rgba(214, 69, 69, .35);--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--pill-active-bg: rgba(47, 107, 255, .12);--logo-text: #1a2440;--logo-accent: #78b52a;--timeline-revenue: #179c58;--timeline-cost: #d3870f;--timeline-hours: #2f6bff}.micro-app-project-forecasting{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-project-forecasting{height:100%}.micro-app-project-forecasting *{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.micro-app-project-forecasting *::-webkit-scrollbar{width:10px;height:10px}.micro-app-project-forecasting *::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}.micro-app-project-forecasting *::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:2px solid var(--scroll-track)}.micro-app-project-forecasting *::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.micro-app-project-forecasting .container{width:100%;max-width:none;margin:0 auto;padding:14px;height:100%;display:flex;flex-direction:column;gap:12px;box-sizing:border-box;min-height:0;overflow:hidden}.micro-app-project-forecasting h1{margin:0;font-size:24px}.micro-app-project-forecasting .header{display:flex;align-items:center;gap:12px;flex:0 0 auto}.micro-app-project-forecasting .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-project-forecasting .logo .wave{fill:var(--logo-accent)}.micro-app-project-forecasting .logo .wordmark{fill:var(--logo-text)}.micro-app-project-forecasting .header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.micro-app-project-forecasting .panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;box-sizing:border-box}.micro-app-project-forecasting .panel.table-panel{padding:10px}.micro-app-project-forecasting .progress-panel{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.micro-app-project-forecasting .progress-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.micro-app-project-forecasting .progress-track{width:100%;height:14px;border-radius:999px;border:1px solid var(--border);background:var(--input-bg);overflow:hidden}.micro-app-project-forecasting .progress-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease}.micro-app-project-forecasting .progress-fill.running,.micro-app-project-forecasting .progress-fill.complete{background:var(--ok)}.micro-app-project-forecasting .progress-fill.error{background:var(--err)}.micro-app-project-forecasting .progress-fill.canceled{background:var(--warn)}.micro-app-project-forecasting .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.micro-app-project-forecasting .row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.micro-app-project-forecasting label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.micro-app-project-forecasting input[type=date],.micro-app-project-forecasting select{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;min-width:160px}.micro-app-project-forecasting button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}.micro-app-project-forecasting button.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-project-forecasting button.small{padding:6px 10px;font-size:12px;border-radius:6px}.micro-app-project-forecasting button:disabled{opacity:.6;cursor:not-allowed}.micro-app-project-forecasting .meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:8px}.micro-app-project-forecasting table{border-collapse:collapse;font-size:13px;table-layout:fixed;width:100%;min-width:0}.micro-app-project-forecasting th,.micro-app-project-forecasting td{text-align:left;padding:6px 7px;border-bottom:1px solid var(--border);vertical-align:middle}.micro-app-project-forecasting td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.micro-app-project-forecasting th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel);z-index:20;box-shadow:0 1px 0 var(--border)}.micro-app-project-forecasting thead th:nth-child(1),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(1){width:8%;min-width:120px}.micro-app-project-forecasting thead th:nth-child(2),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(2){width:7%}.micro-app-project-forecasting thead th:nth-child(3),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(3){width:24%}.micro-app-project-forecasting thead th:nth-child(4),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(4){width:9%}.micro-app-project-forecasting thead th:nth-child(5),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(5){width:9%}.micro-app-project-forecasting thead th:nth-child(6),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(6){width:9%}.micro-app-project-forecasting thead th:nth-child(7),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(7){width:9%}.micro-app-project-forecasting thead th:nth-child(8),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(8){width:8%}.micro-app-project-forecasting thead th:nth-child(9),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(9){width:8%}.micro-app-project-forecasting thead th:nth-child(10),.micro-app-project-forecasting tbody tr:not(.details-row) td:nth-child(10){width:9%}.micro-app-project-forecasting .project-cell{display:flex;flex-direction:column;gap:2px;line-height:1.25}.micro-app-project-forecasting .project-title{color:var(--text);font-weight:600;overflow-wrap:anywhere}.micro-app-project-forecasting .project-subtitle{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.micro-app-project-forecasting .error{color:var(--err);white-space:pre-wrap}.micro-app-project-forecasting .small{color:var(--muted);font-size:12px}.micro-app-project-forecasting .table-wrap{flex:1 1 0;min-height:0;position:relative;isolation:isolate;overflow-x:hidden;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.micro-app-project-forecasting .table-wrap tr:hover td{background:#ffffff05}.micro-app-project-forecasting .access-denied{height:100vh;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--text)}.micro-app-project-forecasting .pill{display:inline-block;padding:4px 8px;border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.micro-app-project-forecasting .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.micro-app-project-forecasting .details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;padding:8px 6px 2px;color:var(--muted);font-size:12px}.micro-app-project-forecasting .details .label{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.micro-app-project-forecasting .details .value{color:var(--text);white-space:pre-wrap}.micro-app-project-forecasting .details-row td{background:#ffffff05;padding:0;overflow:visible}.micro-app-project-forecasting .details-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 6px;box-sizing:border-box;transition:max-height .5s ease,opacity .35s ease,padding .35s ease}.micro-app-project-forecasting .details-wrap.open{max-height:5200px;opacity:1;padding:8px 6px}.micro-app-project-forecasting .timeline-card{border-top:1px solid var(--border);margin:8px 6px 2px;padding:8px 0 2px}.micro-app-project-forecasting .timeline-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.micro-app-project-forecasting .timeline-shell{border:1px solid var(--border);border-radius:8px;background:var(--input-bg);padding:8px;overflow:hidden}.micro-app-project-forecasting .timeline-plot{position:relative;min-height:52px;width:100%}.micro-app-project-forecasting .timeline-axis{position:absolute;left:0;right:0;top:16px;height:2px;background:var(--border)}.micro-app-project-forecasting .timeline-dot{position:absolute;width:10px;height:10px;border-radius:50%;border:1px solid var(--panel);transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000001f;z-index:3}.micro-app-project-forecasting .timeline-dot.revenue{background:var(--timeline-revenue)}.micro-app-project-forecasting .timeline-dot.actual-cost{background:var(--timeline-cost)}.micro-app-project-forecasting .timeline-dot.actual-hours{background:var(--timeline-hours)}.micro-app-project-forecasting .timeline-range{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:4px}.micro-app-project-forecasting .timeline-tick{position:absolute;transform:translate(-50%);display:inline-flex;flex-direction:column;align-items:center;z-index:2;pointer-events:none}.micro-app-project-forecasting .timeline-tick-mark{width:1px;height:8px;background:var(--border)}.micro-app-project-forecasting .timeline-tick-label{color:var(--muted);font-size:10px;line-height:1;white-space:nowrap}.micro-app-project-forecasting .timeline-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}.micro-app-project-forecasting .timeline-legend-item{display:inline-flex;align-items:center;gap:6px}.micro-app-project-forecasting .timeline-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.micro-app-project-forecasting .timeline-legend-dot.revenue{background:var(--timeline-revenue)}.micro-app-project-forecasting .timeline-legend-dot.actual-cost{background:var(--timeline-cost)}.micro-app-project-forecasting .timeline-legend-dot.actual-hours{background:var(--timeline-hours)}.micro-app-project-forecasting .timeline-legend-dot.materials{background:#73b86a}.micro-app-project-forecasting .timeline-legend-dot.total{background:#e6d37a}.micro-app-project-forecasting .earned-revenue-grid{display:grid;grid-template-columns:minmax(96px,120px) repeat(var(--earned-revenue-months, 1),minmax(68px,1fr));gap:6px;align-items:stretch}.micro-app-project-forecasting .earned-revenue-axis-label{color:var(--muted);font-size:10px;line-height:1;text-align:center;white-space:nowrap}.micro-app-project-forecasting .earned-revenue-row-label{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.micro-app-project-forecasting .earned-revenue-cell{min-height:34px;border:1px solid var(--border);border-radius:8px;background:#ffffff05;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5px 6px;font-size:12px;line-height:1.2;font-variant-numeric:tabular-nums}.micro-app-project-forecasting .earned-revenue-primary{font-weight:600}.micro-app-project-forecasting .earned-revenue-secondary{margin-top:3px;font-size:10px;line-height:1.1;color:var(--muted)}.micro-app-project-forecasting .earned-revenue-cell.has-value .earned-revenue-secondary{color:color-mix(in srgb,var(--text) 80%,var(--muted) 20%)}.micro-app-project-forecasting .earned-revenue-cell.missing-rate .earned-revenue-secondary{color:#ffd27a}.micro-app-project-forecasting .earned-revenue-cell.has-value{color:var(--text);border-color:#6aa4ff59;background:#6aa4ff24}.micro-app-project-forecasting .earned-revenue-cell.materials-row.has-value{border-color:#73b86a59;background:#73b86a24}.micro-app-project-forecasting .earned-revenue-cell.total-row.has-value{border-color:#e6d37a59;background:#e6d37a24}.micro-app-project-forecasting .earned-revenue-cell.missing-rate{color:#ffd27a;border-color:#f5a52473;background:#f5a52424}.micro-app-project-forecasting .earned-revenue-shell{overflow-x:auto;padding-bottom:2px}.micro-app-project-forecasting .tooltip{display:inline-flex;align-items:center}.micro-app-project-forecasting .floating-tooltip{position:fixed;background:#000;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.3;white-space:pre-wrap;max-width:340px;width:max-content;box-shadow:0 8px 20px #00000040;opacity:0;visibility:hidden;transform:translate(-50%);transition:opacity .12s ease;pointer-events:none;z-index:50}.micro-app-project-forecasting .floating-tooltip.visible{opacity:1;visibility:visible}.micro-app-project-forecasting .floating-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.micro-app-project-forecasting .num{text-align:right;font-variant-numeric:tabular-nums}.micro-app-project-forecasting .load-more-row{display:flex;justify-content:center;padding:12px 0 4px}.micro-app-project-forecasting .boot-status{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:var(--bg);color:var(--text);text-align:center}.micro-app-project-forecasting .boot-status.visible{display:flex}.micro-app-project-forecasting .boot-status-inner{max-width:620px;line-height:1.5}.micro-app-project-forecasting .boot-status-title{display:block;margin-bottom:6px;font-size:16px}.micro-app-project-forecasting .boot-status-message{color:var(--muted);font-size:13px}.micro-app-purchase-tracking .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-purchase-tracking .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-purchase-tracking .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-purchase-tracking .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-purchase-tracking .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-purchase-tracking .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-purchase-tracking .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-purchase-tracking body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #d3870f;--err: #d64545;--border: #d8e0ef;--scroll-track: #eef2fb;--scroll-thumb: #c7d1e5;--scroll-thumb-hover: #b3c0db;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--pill-active-bg: rgba(47, 107, 255, .12);--logo-text: #1a2440;--logo-accent: #78b52a}.micro-app-purchase-tracking{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-purchase-tracking{height:100%}.micro-app-purchase-tracking *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.micro-app-purchase-tracking *::-webkit-scrollbar{width:10px;height:10px}.micro-app-purchase-tracking *::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}.micro-app-purchase-tracking *::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:2px solid var(--scroll-track)}.micro-app-purchase-tracking *::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.micro-app-purchase-tracking .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.micro-app-purchase-tracking h1{margin:0;font-size:20px;white-space:nowrap}.micro-app-purchase-tracking #root>.container{padding:10px}.micro-app-purchase-tracking .header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}.micro-app-purchase-tracking .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-purchase-tracking .logo .wave{fill:var(--logo-accent)}.micro-app-purchase-tracking .logo .wordmark{fill:var(--logo-text)}.micro-app-purchase-tracking .header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.micro-app-purchase-tracking .panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px}.micro-app-purchase-tracking .progress-panel{display:flex;flex-direction:column;gap:8px;padding:10px}.micro-app-purchase-tracking .progress-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.micro-app-purchase-tracking .progress-track{width:100%;height:14px;border-radius:999px;border:1px solid var(--border);background:var(--input-bg);overflow:hidden}.micro-app-purchase-tracking .progress-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease}.micro-app-purchase-tracking .progress-fill.complete{background:var(--ok)}.micro-app-purchase-tracking .progress-fill.error,.micro-app-purchase-tracking .progress-fill.canceled{background:var(--err)}.micro-app-purchase-tracking .row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.micro-app-purchase-tracking label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.micro-app-purchase-tracking input[type=date],.micro-app-purchase-tracking input[type=text],.micro-app-purchase-tracking select{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;min-width:160px}.micro-app-purchase-tracking input[type=text]{min-width:0;width:100%;font-size:12px}.micro-app-purchase-tracking input[type=text]::placeholder{color:var(--muted)}.micro-app-purchase-tracking input.tab-search{align-self:flex-end;width:clamp(160px,22vw,280px);height:34px}.micro-app-purchase-tracking input[type=checkbox]{appearance:none;width:18px;height:18px;border-radius:6px;border:1px solid var(--input-border);background:var(--input-bg);display:inline-grid;place-items:center;cursor:pointer}.micro-app-purchase-tracking input[type=checkbox]:focus{outline:none;box-shadow:none}.micro-app-purchase-tracking input[type=checkbox]:after{content:"";width:10px;height:10px;border-radius:4px;background:var(--accent);transform:scale(0);transition:transform .1s ease-in-out}.micro-app-purchase-tracking input[type=checkbox]:checked:after{transform:scale(1)}.micro-app-purchase-tracking button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}.micro-app-purchase-tracking button.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-purchase-tracking button.danger{background:#ff5d5d24;color:var(--err);border:1px solid rgba(255,93,93,.35)}.micro-app-purchase-tracking button.small{padding:6px 10px;font-size:12px;border-radius:6px}.micro-app-purchase-tracking button:disabled{opacity:.6;cursor:not-allowed}.micro-app-purchase-tracking .meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}.micro-app-purchase-tracking .pill{display:inline-block;padding:4px 8px;border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.micro-app-purchase-tracking .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.micro-app-purchase-tracking .pill.processed{color:var(--ok)}.micro-app-purchase-tracking .pill.skipped{color:var(--warn)}.micro-app-purchase-tracking .pill.pending{color:var(--muted)}.micro-app-purchase-tracking .status-cell{white-space:nowrap}.micro-app-purchase-tracking .small{color:var(--muted);font-size:12px}.micro-app-purchase-tracking .error{color:var(--err);font-size:13px}.micro-app-purchase-tracking .actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.micro-app-purchase-tracking .col-review{width:5%}.micro-app-purchase-tracking .col-status{width:13%}.micro-app-purchase-tracking .col-source-type{width:9%}.micro-app-purchase-tracking .col-po{width:8%}.micro-app-purchase-tracking .col-part{width:15%}.micro-app-purchase-tracking .col-qty{width:5%}.micro-app-purchase-tracking .col-ship-date{width:12%}.micro-app-purchase-tracking .col-courier{width:14%}.micro-app-purchase-tracking .col-date{width:9%}.micro-app-purchase-tracking .col-actions{width:10%}.micro-app-purchase-tracking .col-email-received{width:12%}.micro-app-purchase-tracking .col-email-subject{width:28%}.micro-app-purchase-tracking .col-email-sender{width:20%}.micro-app-purchase-tracking .col-email-type{width:12%}.micro-app-purchase-tracking .col-email-status{width:9%}.micro-app-purchase-tracking .col-email-reason{width:19%}.micro-app-purchase-tracking .action-button{width:92px}.micro-app-purchase-tracking button.retry-button{background:var(--accent);color:#04122b;border:1px solid var(--accent)}.micro-app-purchase-tracking button.retry-button:hover{filter:brightness(1.05)}.micro-app-purchase-tracking .tooltip{display:inline-flex;align-items:center}.micro-app-purchase-tracking .floating-tooltip{position:fixed;background:#000;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.3;white-space:pre-wrap;max-width:320px;width:max-content;box-shadow:0 8px 20px #00000040;opacity:0;visibility:hidden;transform:translate(-50%,-10px);transition:opacity .12s ease,transform .12s ease;pointer-events:none;z-index:50}.micro-app-purchase-tracking .floating-tooltip.visible{opacity:1;visibility:visible;transform:translate(-50%,-14px)}.micro-app-purchase-tracking .floating-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.micro-app-purchase-tracking .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.micro-app-purchase-tracking .section-title{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.micro-app-purchase-tracking .panel.email-panel{flex:0 0 235px;min-height:170px;display:flex;flex-direction:column;overflow:hidden}.micro-app-purchase-tracking .table-wrap{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border);border-radius:10px}.micro-app-purchase-tracking .load-more-bar{flex:0 0 auto;display:flex;justify-content:center;padding-top:10px}.micro-app-purchase-tracking .load-more-bar button{min-width:120px}.micro-app-purchase-tracking .table-panel th:nth-child(2),.micro-app-purchase-tracking td.status-cell{min-width:120px}.micro-app-purchase-tracking .purchase-row{cursor:pointer}.micro-app-purchase-tracking .purchase-row:hover>td{background:#ffffff08}.micro-app-purchase-tracking body[data-theme=light] .purchase-row:hover>td{background:#00000008}.micro-app-purchase-tracking .details-row td{background:#ffffff05;padding:0;border-bottom:none}.micro-app-purchase-tracking body[data-theme=light] .details-row td{background:#00000005}.micro-app-purchase-tracking .details-row.open td{border-bottom:1px solid var(--border)}.micro-app-purchase-tracking .details-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 8px;transition:max-height .5s ease,opacity .35s ease,padding .35s ease}.micro-app-purchase-tracking .details-wrap.open{max-height:320px;opacity:1;padding:10px 8px}.micro-app-purchase-tracking .details{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;color:var(--muted);font-size:12px}.micro-app-purchase-tracking .details .label{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.micro-app-purchase-tracking .details .value{color:var(--text);white-space:pre-wrap}.micro-app-purchase-tracking table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.micro-app-purchase-tracking th,.micro-app-purchase-tracking td{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.micro-app-purchase-tracking td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.micro-app-purchase-tracking th{color:var(--muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--panel);z-index:2}.micro-app-purchase-tracking td.status-cell{overflow:visible}.micro-app-purchase-tracking .cell-input{width:100%;min-width:0;padding:6px 8px;border-radius:6px}.micro-app-purchase-tracking .cell-input.invalid{border-color:var(--err);color:var(--err)}.micro-app-purchase-tracking select.courier-select option{color:var(--text);background:var(--input-bg)}.micro-app-purchase-tracking select.courier-select option.courier-option-invalid{color:var(--err)}.micro-app-purchase-tracking select.courier-select:has(option.courier-option-invalid:checked){border-color:var(--err);color:var(--err)}.micro-app-purchase-tracking .learned-toast{position:fixed;top:18px;right:18px;z-index:20;max-width:min(360px,100vw - 36px);padding:10px 12px;border:0;border-radius:8px;background:var(--ok);color:#04122b;box-shadow:0 10px 30px #0000003d;font-size:13px;line-height:1.35}.micro-app-purchase-tracking .empty-placeholder{color:var(--muted);font-size:12px}.micro-app-purchase-tracking .stacked-inputs,.micro-app-purchase-tracking .stacked-values{display:flex;flex-direction:column;gap:6px}.micro-app-purchase-tracking .placeholder-box{padding:12px;border-radius:8px;background:var(--input-bg);border:1px dashed var(--border);color:var(--muted);font-size:13px}.micro-app-purchase-tracking .access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:16px}.micro-app-purchase-tracking .boot-fallback{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--text);text-align:center}.micro-app-purchase-tracking .boot-title{font-size:22px;font-weight:700}.micro-app-purchase-tracking .boot-text,.micro-app-purchase-tracking .boot-error{color:var(--muted);font-size:14px}.micro-app-purchase-tracking .boot-error{max-width:520px;color:var(--err)}.micro-app-purchase-tracking .boot-status{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:var(--bg);color:var(--text);text-align:center}.micro-app-purchase-tracking .boot-status.visible{display:flex}.micro-app-purchase-tracking .boot-status-inner{max-width:620px;line-height:1.5}.micro-app-purchase-tracking .boot-status-title{display:block;margin-bottom:6px;font-size:16px}.micro-app-purchase-tracking .boot-status-message{color:var(--muted);font-size:13px}@media(max-width:720px){.micro-app-purchase-tracking #root>.container{padding:8px}.micro-app-purchase-tracking .header-actions{margin-left:0}}.micro-app-purchase-tracking .run-dialog-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}.micro-app-purchase-tracking .settings-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.micro-app-purchase-tracking .settings-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:20px;width:100%;max-width:560px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 18px 48px #00000059}.micro-app-purchase-tracking .settings-dialog h2{margin:0 0 6px;font-size:18px}.micro-app-purchase-tracking .settings-dialog .settings-explanation{color:var(--muted);font-size:13px;line-height:1.45;margin:0 0 16px}.micro-app-purchase-tracking .settings-dialog label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.micro-app-purchase-tracking .settings-dialog input[type=date],.micro-app-purchase-tracking .settings-dialog input[type=text],.micro-app-purchase-tracking .settings-dialog select{width:100%;min-width:0;box-sizing:border-box}.micro-app-purchase-tracking .settings-dialog .settings-row{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.micro-app-purchase-tracking .settings-dialog .settings-row.centered{justify-content:center;flex-wrap:wrap}.micro-app-purchase-tracking .settings-dialog .settings-check{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-weight:600;cursor:pointer}.micro-app-purchase-tracking .settings-dialog .settings-note{color:var(--muted);font-size:12px;margin-top:10px}.micro-app-purchase-tracking .settings-dialog .settings-error{color:var(--err);font-size:13px;margin-top:10px}.micro-app-purchase-tracking .settings-dialog .settings-saved{color:var(--ok);font-size:13px;margin-top:10px}.micro-app-purchase-tracking .icon-button{display:inline-flex;align-items:center;justify-content:center;line-height:0;padding:6px}.micro-app-purchase-tracking .settings-dialog .settings-subheading{margin:20px 0 4px;font-size:15px;padding-top:16px;border-top:1px solid var(--border)}.micro-app-purchase-tracking .settings-dialog.run-history-dialog{max-width:820px;box-sizing:border-box}.micro-app-purchase-tracking .run-history-table{max-height:calc(100vh - 260px);overflow-x:auto;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.micro-app-purchase-tracking .run-history-table table{min-width:640px}.micro-app-purchase-tracking .col-run-history-started{width:18%}.micro-app-purchase-tracking .col-run-history-kind{width:17%}.micro-app-purchase-tracking .col-run-history-by{width:16%}.micro-app-purchase-tracking .col-run-history-covers{width:19%}.micro-app-purchase-tracking .col-run-history-outcome{width:21%}.micro-app-purchase-tracking .col-run-history-took{width:9%}.micro-app-purchase-tracking .run-history-table td.run-history-failed{color:var(--err)}.micro-app-vendor-quotes body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-text: #ffffff;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138}.micro-app-vendor-quotes *{box-sizing:border-box}.micro-app-vendor-quotes{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-vendor-quotes .vendor-quotes-page{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;height:auto;min-height:100%;padding:16px}.micro-app-vendor-quotes .vendor-quotes-icon{flex:none}.micro-app-vendor-quotes .vendor-quotes-muted{margin:0;color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:13px}.micro-app-vendor-quotes .vendor-quotes-source{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--text);font-weight:650;text-decoration:none}.micro-app-vendor-quotes .vendor-quotes-source:hover>span:first-of-type{color:var(--accent);text-decoration:underline}.micro-app-vendor-quotes .vendor-quotes-source-where{color:var(--muted);font-weight:400}.micro-app-vendor-quotes .vendor-quotes-summary-problem{flex-basis:100%;color:var(--danger)}.micro-app-vendor-quotes .vendor-quotes-summary-warning{color:var(--warning)}.micro-app-vendor-quotes .vendor-quotes-reading-facts{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.micro-app-vendor-quotes .vendor-quotes-fact-button{appearance:none;margin:0;padding:0;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.micro-app-vendor-quotes .vendor-quotes-fact-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.micro-app-vendor-quotes .vendor-quotes-notice{margin:0;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius)}.micro-app-vendor-quotes .vendor-quotes-notice-error{background:var(--danger-soft);color:var(--danger)}.micro-app-vendor-quotes .vendor-quotes-notice-info{background:var(--accent-soft);color:var(--text)}.micro-app-vendor-quotes .vendor-quotes-search{position:relative;display:flex;align-items:center;flex:1 1 320px;max-width:560px;min-width:0}.micro-app-vendor-quotes .vendor-quotes-search .vendor-quotes-icon{position:absolute;left:12px;color:var(--muted);pointer-events:none}.micro-app-vendor-quotes .vendor-quotes-search .ui-input{width:100%;padding-left:36px}.micro-app-vendor-quotes .vendor-quotes-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.micro-app-vendor-quotes .vendor-quotes-views{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.micro-app-vendor-quotes .vendor-quotes-sort{width:auto;min-width:160px}.micro-app-vendor-quotes .vendor-quotes-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.micro-app-vendor-quotes .vendor-quotes-table{table-layout:fixed}.micro-app-vendor-quotes .vendor-quotes-col-quote{width:46%}.micro-app-vendor-quotes .vendor-quotes-col-project{width:34%}.micro-app-vendor-quotes .vendor-quotes-col-file{width:27%}.micro-app-vendor-quotes .vendor-quotes-col-vendor{width:21%}.micro-app-vendor-quotes .vendor-quotes-col-place{width:20%}.micro-app-vendor-quotes .vendor-quotes-col-total{width:12%}.micro-app-vendor-quotes .vendor-quotes-col-line{width:5%}.micro-app-vendor-quotes .vendor-quotes-col-part{width:18%}.micro-app-vendor-quotes .vendor-quotes-col-description{width:32%}.micro-app-vendor-quotes .vendor-quotes-col-quantity{width:8%}.micro-app-vendor-quotes .vendor-quotes-col-price{width:11%}.micro-app-vendor-quotes .vendor-quotes-col-from{width:20%}.micro-app-vendor-quotes .vendor-quotes-number{text-align:right;font-variant-numeric:tabular-nums}.micro-app-vendor-quotes .vendor-quotes-part,.micro-app-vendor-quotes .vendor-quotes-description{overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-expired{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;color:var(--muted);font-size:12px}.micro-app-vendor-quotes .vendor-quotes-unverified{color:var(--warning);font-weight:650}.micro-app-vendor-quotes .vendor-quotes-fact-source{color:var(--muted);font-size:12px}.micro-app-vendor-quotes .vendor-quotes-read-problem{display:block;margin-top:4px;color:var(--danger);font-size:12px;overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-col-modified{width:20%}.micro-app-vendor-quotes .vendor-quotes-col-count{width:22%}.micro-app-vendor-quotes .vendor-quotes-file{display:inline-flex;align-items:center;gap:8px;max-width:100%;color:var(--text);text-decoration:none}.micro-app-vendor-quotes .vendor-quotes-file strong{display:inline;min-width:0;overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-file .vendor-quotes-icon{color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-file:hover strong,.micro-app-vendor-quotes .vendor-quotes-file:focus-visible strong{color:var(--accent);text-decoration:underline}.micro-app-vendor-quotes .vendor-quotes-project{appearance:none;margin:0;padding:0;border:0;background:none;color:var(--text);font:inherit;font-weight:650;line-height:1.25;text-align:left;overflow-wrap:anywhere;cursor:pointer}.micro-app-vendor-quotes .vendor-quotes-project:hover{color:var(--accent);text-decoration:underline}.micro-app-vendor-quotes .vendor-quotes-project:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.micro-app-vendor-quotes .vendor-quotes-folder-link{display:inline-flex;align-items:center;gap:5px;margin-top:3px;color:var(--muted);font-size:12px;text-decoration:none;overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-folder-link:hover{color:var(--accent)}.micro-app-vendor-quotes .vendor-quotes-none{color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:13px}.micro-app-vendor-quotes .vendor-quotes-pager-buttons{display:flex;gap:8px}.micro-app-vendor-quotes .vendor-quotes-settings{display:grid;gap:18px}.micro-app-vendor-quotes .vendor-quotes-settings-section{display:grid;gap:12px}.micro-app-vendor-quotes .vendor-quotes-settings-section h4{margin:0;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.micro-app-vendor-quotes .vendor-quotes-settings-section+.vendor-quotes-settings-section{padding-top:16px;border-top:1px solid var(--border)}.micro-app-vendor-quotes .vendor-quotes-linked{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-linked a{color:var(--text);font-weight:650}.micro-app-vendor-quotes .vendor-quotes-linked span{display:block;font-size:12px;overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-settings-note{margin:4px 0 0;color:var(--muted);font-size:12px;font-weight:600}.micro-app-vendor-quotes .vendor-quotes-settings-again{grid-template-columns:minmax(0,1fr) auto;align-items:center}.micro-app-vendor-quotes .vendor-quotes-open-link{text-decoration:none}.micro-app-vendor-quotes .vendor-quotes-dialog-footer{display:flex;justify-content:flex-end;gap:10px;width:100%}.micro-app-vendor-quotes .vendor-quotes-detail{display:grid;gap:16px}.micro-app-vendor-quotes .vendor-quotes-detail-summary{margin:0;color:var(--text);font-size:15px}.micro-app-vendor-quotes .vendor-quotes-detail-state{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-facts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 18px;margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.micro-app-vendor-quotes .vendor-quotes-facts-grid dt{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.micro-app-vendor-quotes .vendor-quotes-facts-grid dd{display:grid;margin:2px 0 0;color:var(--text);overflow-wrap:anywhere}.micro-app-vendor-quotes .vendor-quotes-facts-grid a{color:var(--accent)}.micro-app-vendor-quotes .vendor-quotes-totals{display:grid;justify-self:end;gap:4px;width:min(320px,100%);margin:0;font-variant-numeric:tabular-nums}.micro-app-vendor-quotes .vendor-quotes-totals div{display:flex;justify-content:space-between;gap:16px}.micro-app-vendor-quotes .vendor-quotes-totals dt{color:var(--muted)}.micro-app-vendor-quotes .vendor-quotes-totals dd{margin:0;color:var(--text)}.micro-app-vendor-quotes .vendor-quotes-totals-total{padding-top:6px;border-top:1px solid var(--border);font-weight:750}.micro-app-vendor-quotes .vendor-quotes-totals-total dt{color:var(--text)}.micro-app-vendor-quotes .vendor-quotes-readings{display:grid;gap:10px;margin:0;padding:0;list-style:none}.micro-app-vendor-quotes .vendor-quotes-readings li{display:grid;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--border)}.micro-app-vendor-quotes .vendor-quotes-readings li>span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.micro-app-invoice-processing .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-invoice-processing .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-invoice-processing .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-invoice-processing .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-invoice-processing .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-invoice-processing .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-invoice-processing .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-invoice-processing body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #f5a524;--err: #d64545;--pending: #e08c00;--border: #d8e0ef;--scroll-track: #eef2fb;--scroll-thumb: #c7d1e5;--scroll-thumb-hover: #b3c0db;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-danger-bg: #c62828;--btn-danger-text: #ffffff;--btn-danger-border: #c62828;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--pill-active-bg: rgba(47, 107, 255, .12);--logo-text: #1a2440;--logo-accent: #78b52a;--submit-text: #ffffff}.micro-app-invoice-processing{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-invoice-processing{height:100%}.micro-app-invoice-processing *{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.micro-app-invoice-processing *::-webkit-scrollbar{width:10px;height:10px}.micro-app-invoice-processing *::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:10px}.micro-app-invoice-processing *::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:2px solid var(--scroll-track)}.micro-app-invoice-processing *::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.micro-app-invoice-processing .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;box-sizing:border-box;min-height:0;overflow:hidden}.micro-app-invoice-processing h1{margin:0 0 16px;font-size:24px}.micro-app-invoice-processing .header{display:flex;align-items:center;gap:12px;flex:0 0 auto}.micro-app-invoice-processing .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-invoice-processing .logo .wave{fill:var(--logo-accent)}.micro-app-invoice-processing .logo .wordmark{fill:var(--logo-text)}.micro-app-invoice-processing .header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.micro-app-invoice-processing .panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;box-sizing:border-box}.micro-app-invoice-processing .progress-panel{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.micro-app-invoice-processing .progress-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.micro-app-invoice-processing .progress-track{width:100%;height:14px;border-radius:999px;border:1px solid var(--border);background:var(--input-bg);overflow:hidden}.micro-app-invoice-processing .progress-fill{height:100%;width:0%;background:var(--accent);transition:width .35s ease}.micro-app-invoice-processing .progress-fill.running,.micro-app-invoice-processing .progress-fill.complete{background:var(--ok)}.micro-app-invoice-processing .progress-fill.error{background:var(--err)}.micro-app-invoice-processing .progress-fill.canceled{background:var(--warn)}.micro-app-invoice-processing .panel.table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px}.micro-app-invoice-processing .row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.micro-app-invoice-processing label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.micro-app-invoice-processing input[type=date],.micro-app-invoice-processing select{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 10px;min-width:160px}.micro-app-invoice-processing table input,.micro-app-invoice-processing table select,.micro-app-invoice-processing table button{min-width:0;max-width:100%}.micro-app-invoice-processing input[type=text]{background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:6px 8px;font-size:12px}.micro-app-invoice-processing input[type=text]::placeholder{color:var(--muted)}.micro-app-invoice-processing input.tab-search{align-self:flex-end;width:clamp(160px,22vw,280px);height:34px}.micro-app-invoice-processing input[type=date]:focus,.micro-app-invoice-processing select:focus{outline:none;box-shadow:none;border-color:var(--border)}.micro-app-invoice-processing input[type=checkbox]{appearance:none;width:18px;height:18px;border-radius:6px;border:1px solid var(--input-border);background:var(--input-bg);display:inline-grid;place-items:center;cursor:pointer}.micro-app-invoice-processing input[type=checkbox]:focus{outline:none;box-shadow:none}.micro-app-invoice-processing input[type=checkbox]:after{content:"";width:10px;height:10px;border-radius:4px;background:var(--accent);transform:scale(0);transition:transform .1s ease-in-out}.micro-app-invoice-processing input[type=checkbox]:checked:after{transform:scale(1)}.micro-app-invoice-processing button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}.micro-app-invoice-processing button.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.micro-app-invoice-processing button.danger{background:var(--btn-danger-bg);color:var(--btn-danger-text);border:1px solid var(--btn-danger-border)}.micro-app-invoice-processing button.small{padding:6px 10px;font-size:12px;border-radius:6px}.micro-app-invoice-processing button:disabled{opacity:.6;cursor:not-allowed}.micro-app-invoice-processing .meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:8px}.micro-app-invoice-processing .icon-button{display:inline-grid;place-items:center;padding:0;width:34px;min-width:34px;height:34px}.micro-app-invoice-processing table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.micro-app-invoice-processing th,.micro-app-invoice-processing td{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.micro-app-invoice-processing td{overflow:hidden;text-overflow:ellipsis;word-break:break-word}.micro-app-invoice-processing th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel);z-index:2}.micro-app-invoice-processing .error{color:var(--err);white-space:pre-wrap}.micro-app-invoice-processing .small{color:var(--muted);font-size:12px}.micro-app-invoice-processing .table-wrap{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.micro-app-invoice-processing .table-wrap tr:hover td{background:#ffffff05}.micro-app-invoice-processing .invoice-row{cursor:pointer}.micro-app-invoice-processing .invoice-row input,.micro-app-invoice-processing .invoice-row button,.micro-app-invoice-processing .invoice-row select,.micro-app-invoice-processing .invoice-row textarea,.micro-app-invoice-processing .invoice-row label{cursor:auto}.micro-app-invoice-processing .invoice-row button{cursor:pointer}.micro-app-invoice-processing .access-denied{height:100vh;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--text)}.micro-app-invoice-processing .pill{display:inline-block;padding:4px 8px;border-radius:8px;background:var(--pill-bg);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.micro-app-invoice-processing .pill.active{border-color:var(--accent);color:var(--accent);background:var(--pill-active-bg)}.micro-app-invoice-processing .actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.micro-app-invoice-processing .actions-column{display:flex;flex-direction:column;gap:6px;align-items:stretch}.micro-app-invoice-processing .actions-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.micro-app-invoice-processing .po-retry{display:flex;gap:6px;align-items:center;margin-top:6px}.micro-app-invoice-processing .po-retry input{flex:1;min-width:0;max-width:100px}.micro-app-invoice-processing .freight-retry{display:flex;gap:6px;align-items:center;margin-top:0}.micro-app-invoice-processing .freight-retry input{flex:1;min-width:0;max-width:100px}.micro-app-invoice-processing .tooltip{display:inline-flex;align-items:center}.micro-app-invoice-processing .floating-tooltip{position:fixed;background:#000;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.3;white-space:pre-wrap;max-width:320px;width:max-content;box-shadow:0 8px 20px #00000040;opacity:0;visibility:hidden;transform:translate(-50%,-10px);transition:opacity .12s ease,transform .12s ease;pointer-events:none;z-index:50}.micro-app-invoice-processing .floating-tooltip.visible{opacity:1;visibility:visible;transform:translate(-50%,-14px)}.micro-app-invoice-processing .floating-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.micro-app-invoice-processing .retry-button{width:100%}.micro-app-invoice-processing .submit-button{width:100%;background:var(--accent);color:var(--submit-text);border:1px solid var(--accent)}.micro-app-invoice-processing .submit-button:hover{filter:brightness(1.05)}.micro-app-invoice-processing td.status-cell{overflow:visible}.micro-app-invoice-processing .col-review{width:5%}.micro-app-invoice-processing .col-status{width:10%;min-width:120px}.micro-app-invoice-processing .col-vendor{width:23%}.micro-app-invoice-processing .col-vendor-po{width:22%}.micro-app-invoice-processing .col-total{width:8%}.micro-app-invoice-processing .col-freight{width:9%}.micro-app-invoice-processing .col-quantity{width:7%}.micro-app-invoice-processing .col-download{width:16%}.micro-app-invoice-processing .details{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(140px,160px);gap:12px;padding:10px 8px;color:var(--muted);font-size:12px}.micro-app-invoice-processing .details .label{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.micro-app-invoice-processing .details .value{color:var(--text);white-space:pre-wrap}.micro-app-invoice-processing .details-row td{background:#ffffff05;padding:0;border-bottom:none}.micro-app-invoice-processing .details-row.open td{border-bottom:1px solid var(--border)}.micro-app-invoice-processing .details-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 8px;transition:max-height .5s ease,opacity .35s ease,padding .35s ease}.micro-app-invoice-processing .details-wrap.open{max-height:220px;opacity:1;padding:10px 8px}.micro-app-invoice-processing .confirm-row td{background:#ffffff05;padding:0;border-bottom:none}.micro-app-invoice-processing .confirm-row.open td{border-bottom:1px solid var(--border)}.micro-app-invoice-processing .confirm-wrap{overflow:hidden;max-height:0;opacity:0;padding:0 8px;transition:max-height .5s ease,opacity .35s ease,padding .35s ease}.micro-app-invoice-processing .confirm-wrap.open{max-height:120px;opacity:1;padding:10px 8px}.micro-app-invoice-processing .confirm-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text);font-size:13px;text-align:center}.micro-app-invoice-processing .confirm-message{color:var(--muted)}.micro-app-invoice-processing .confirm-actions{display:flex;gap:8px;align-items:center;justify-content:center}.micro-app-invoice-processing .quantity-fields{width:50px}.micro-app-invoice-processing .run-dialog-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}.micro-app-invoice-processing .settings-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.micro-app-invoice-processing .settings-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:20px;width:100%;max-width:560px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 18px 48px #00000059}.micro-app-invoice-processing .settings-dialog h2{margin:0 0 6px;font-size:18px}.micro-app-invoice-processing .settings-dialog .settings-explanation{color:var(--muted);font-size:13px;line-height:1.45;margin:0 0 16px}.micro-app-invoice-processing .settings-dialog label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.micro-app-invoice-processing .settings-dialog input[type=date],.micro-app-invoice-processing .settings-dialog input[type=text],.micro-app-invoice-processing .settings-dialog select{width:100%;min-width:0;box-sizing:border-box}.micro-app-invoice-processing .settings-dialog .settings-row{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.micro-app-invoice-processing .settings-dialog .settings-row.centered{justify-content:center;flex-wrap:wrap}.micro-app-invoice-processing .settings-dialog .settings-check{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-weight:600;cursor:pointer}.micro-app-invoice-processing .settings-dialog .settings-note{color:var(--muted);font-size:12px;margin-top:10px}.micro-app-invoice-processing .settings-dialog .settings-error{color:var(--err);font-size:13px;margin-top:10px}.micro-app-invoice-processing .settings-dialog.run-history-dialog{max-width:960px}.micro-app-invoice-processing .settings-dialog .run-history-table-wrap{overflow:auto;max-height:calc(100vh - 220px);border:1px solid var(--border);border-radius:10px}.micro-app-invoice-processing .settings-dialog .run-history-table{table-layout:auto;min-width:860px;font-size:12px}.micro-app-invoice-processing .settings-dialog .run-history-table th,.micro-app-invoice-processing .settings-dialog .run-history-table td{padding:6px 8px;vertical-align:top;word-break:normal;overflow-wrap:break-word}.micro-app-invoice-processing .settings-dialog .run-history-table .run-history-nowrap{white-space:nowrap}.micro-app-invoice-processing .boot-status{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:var(--bg);color:var(--text);text-align:center}.micro-app-invoice-processing .boot-status.visible{display:flex}.micro-app-invoice-processing .boot-status-inner{max-width:620px;line-height:1.5}.micro-app-invoice-processing .boot-status-title{display:block;margin-bottom:6px;font-size:16px}.micro-app-invoice-processing .boot-status-message{color:var(--muted);font-size:13px}.micro-app-freight-c-stock-report body[data-theme=light]{--bg: #f4f6fb;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--border: #d8e0ef}.micro-app-freight-c-stock-report *{box-sizing:border-box}.micro-app-freight-c-stock-report{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-freight-c-stock-report .freight-page{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}.micro-app-freight-c-stock-report .freight-panel{flex:0 0 auto;display:grid;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.micro-app-freight-c-stock-report .freight-muted{margin:0;color:var(--muted)}.micro-app-freight-c-stock-report .freight-small{font-size:12px}.micro-app-freight-c-stock-report .freight-notice{margin:0;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-freight-c-stock-report .freight-notice-error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.micro-app-freight-c-stock-report .freight-controls-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.micro-app-freight-c-stock-report .freight-controls-row .ui-field{width:auto}.micro-app-freight-c-stock-report .freight-select{width:auto;min-width:190px}.micro-app-freight-c-stock-report .freight-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;color:var(--muted);font-size:13px}.micro-app-freight-c-stock-report .freight-meta strong{color:var(--text)}.micro-app-freight-c-stock-report .freight-chips{display:flex;flex-wrap:wrap;gap:8px}.micro-app-freight-c-stock-report .freight-chip{appearance:none;margin:0;padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.micro-app-freight-c-stock-report .freight-chip:hover{color:var(--text)}.micro-app-freight-c-stock-report .freight-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.micro-app-freight-c-stock-report .freight-progress-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;color:var(--muted);font-size:12px}.micro-app-freight-c-stock-report .freight-progress-track{height:10px;overflow:hidden;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted)}.micro-app-freight-c-stock-report .freight-progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .3s ease}.micro-app-freight-c-stock-report .freight-table-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.micro-app-freight-c-stock-report .freight-table-wrap{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.micro-app-freight-c-stock-report .freight-table{min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}.micro-app-freight-c-stock-report .freight-table th,.micro-app-freight-c-stock-report .freight-table td{padding:10px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-freight-c-stock-report .freight-table th{position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border);background:var(--surface-muted);white-space:normal;vertical-align:bottom}.micro-app-freight-c-stock-report .freight-col-projectNo{width:8%}.micro-app-freight-c-stock-report .freight-col-projectName{width:23%}.micro-app-freight-c-stock-report .freight-col-projectType{width:10%}.micro-app-freight-c-stock-report .freight-col-projectStatus{width:11%}.micro-app-freight-c-stock-report .freight-col-percentCostComplete{width:8%}.micro-app-freight-c-stock-report .freight-col-newFreightAdjustment,.micro-app-freight-c-stock-report .freight-col-newCStockAdjustment,.micro-app-freight-c-stock-report .freight-col-icoAmount{width:11%}.micro-app-freight-c-stock-report .freight-col-warnings{width:7%}.micro-app-freight-c-stock-report .freight-number{text-align:right;font-variant-numeric:tabular-nums}.micro-app-freight-c-stock-report .freight-negative{color:var(--danger)}.micro-app-freight-c-stock-report .freight-row{cursor:pointer}.micro-app-freight-c-stock-report .freight-row:hover>td,.micro-app-freight-c-stock-report .freight-row:focus-visible>td{background:var(--accent-soft)}.micro-app-freight-c-stock-report .freight-row:focus-visible{outline:none}.micro-app-freight-c-stock-report .freight-no-rows{text-align:center}@media(max-width:900px){.micro-app-freight-c-stock-report .freight-optional{display:none}.micro-app-freight-c-stock-report .freight-col-projectNo{width:12%}.micro-app-freight-c-stock-report .freight-col-projectName{width:25%}.micro-app-freight-c-stock-report .freight-col-newFreightAdjustment,.micro-app-freight-c-stock-report .freight-col-newCStockAdjustment,.micro-app-freight-c-stock-report .freight-col-icoAmount{width:18%}.micro-app-freight-c-stock-report .freight-col-warnings{width:9%}.micro-app-freight-c-stock-report .freight-table th,.micro-app-freight-c-stock-report .freight-table td{padding:8px}}.micro-app-freight-c-stock-report .freight-run-dialog{display:grid;gap:14px}.micro-app-freight-c-stock-report .freight-dialog-buttons{display:flex;justify-content:flex-end;gap:10px}.micro-app-freight-c-stock-report .freight-dialog{display:grid;gap:18px}.micro-app-freight-c-stock-report .freight-dialog h3{margin:0 0 8px;font-size:14px}.micro-app-freight-c-stock-report .freight-dialog-warnings{padding-left:28px}.micro-app-freight-c-stock-report .freight-working{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 24px;align-items:start}.micro-app-freight-c-stock-report .freight-working-percent{grid-column:1/-1}.micro-app-freight-c-stock-report .freight-steps dl{margin:0;display:grid;gap:4px}.micro-app-freight-c-stock-report .freight-step{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px}.micro-app-freight-c-stock-report .freight-step dt{color:var(--muted)}.micro-app-freight-c-stock-report .freight-step dd{margin:0}.micro-app-freight-c-stock-report .freight-step p{grid-column:1/-1;font-size:12px}.micro-app-freight-c-stock-report .freight-step-total{padding-top:4px;border-top:1px solid var(--border)}.micro-app-freight-c-stock-report .freight-step-total dt,.micro-app-freight-c-stock-report .freight-step-total dd{color:var(--text);font-weight:650}.micro-app-freight-c-stock-report .freight-lines .freight-muted{margin-bottom:8px}.micro-app-freight-c-stock-report .freight-line-totals{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.micro-app-caractacus-ai body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-border: #2f6bff;--btn-primary-text: #ffffff}.micro-app-caractacus-ai *{box-sizing:border-box}.micro-app-caractacus-ai{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-caractacus-ai .container{padding:16px;color:var(--text)}.micro-app-caractacus-ai .cai-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:16px;align-items:start}.micro-app-caractacus-ai button.cai-btn.cai-btn.cai-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;cursor:pointer;filter:none}.micro-app-caractacus-ai button.cai-btn.cai-btn.cai-btn:hover:not(:disabled){border-color:var(--accent)}.micro-app-caractacus-ai button.cai-btn.cai-btn.cai-btn:disabled{opacity:.55;cursor:default}.micro-app-caractacus-ai button.cai-btn-primary.cai-btn-primary.cai-btn-primary{border-color:var(--btn-primary-border, var(--accent));background:var(--btn-primary-bg, var(--accent));color:var(--btn-primary-text, #ffffff)}.micro-app-caractacus-ai button.cai-icon-btn.cai-icon-btn.cai-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:6px}.micro-app-caractacus-ai .cai-note{display:block;margin:4px 0 0;color:var(--muted);font-size:12px;font-weight:400}.micro-app-caractacus-ai .cai-error{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--danger);background:var(--danger-soft)}.micro-app-caractacus-ai .cai-when{color:var(--muted);font-size:12px;font-weight:400}.micro-app-caractacus-ai .cai-conversations{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px}.micro-app-caractacus-ai .cai-conversations>summary{cursor:pointer;font-weight:600;padding:2px 4px 8px}.micro-app-caractacus-ai .cai-conversation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto}.micro-app-caractacus-ai .cai-conversation-row{display:flex;align-items:stretch;gap:4px;border-radius:var(--radius)}.micro-app-caractacus-ai .cai-conversation-row.cai-conversation-row-open{background:var(--accent-soft)}.micro-app-caractacus-ai button.cai-conversation.cai-conversation.cai-conversation{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-weight:400;text-align:left;cursor:pointer;filter:none}.micro-app-caractacus-ai button.cai-conversation.cai-conversation.cai-conversation:hover{background:var(--surface-muted)}.micro-app-caractacus-ai .cai-conversation-title{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-caractacus-ai button.cai-delete.cai-delete.cai-delete{min-height:0;padding:4px 8px;font-size:12px;font-weight:400;align-self:center}.micro-app-caractacus-ai .cai-chat{min-width:0;display:flex;flex-direction:column;gap:12px}.micro-app-caractacus-ai .cai-turns{display:flex;flex-direction:column;gap:16px}.micro-app-caractacus-ai .cai-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-caractacus-ai .cai-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-caractacus-ai .cai-empty p{margin:0 0 12px}.micro-app-caractacus-ai .cai-examples{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.micro-app-caractacus-ai button.cai-example.cai-example.cai-example{font-weight:400}.micro-app-caractacus-ai .cai-turn{display:flex;flex-direction:column;gap:8px}.micro-app-caractacus-ai .cai-said{display:flex;justify-content:flex-end}.micro-app-caractacus-ai .cai-answer{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(720px,100%)}.micro-app-caractacus-ai .cai-bubble{margin:0;padding:10px 12px;border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;max-width:min(640px,100%)}.micro-app-caractacus-ai .cai-bubble-prompt{background:var(--accent-soft);border:1px solid var(--accent)}.micro-app-caractacus-ai .cai-bubble-reply{background:var(--surface);border:1px solid var(--border)}.micro-app-caractacus-ai .cai-bubble-pending{color:var(--muted);font-style:italic}.micro-app-caractacus-ai .cai-turn-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-caractacus-ai .cai-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border)}.micro-app-caractacus-ai .cai-badge-preprocessor{color:var(--success);background:var(--success-soft)}.micro-app-caractacus-ai .cai-badge-llm{color:var(--accent);background:var(--accent-soft)}.micro-app-caractacus-ai .cai-badge-chat{color:var(--text-muted);background:var(--surface-muted)}.micro-app-caractacus-ai .cai-actions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;width:100%}.micro-app-caractacus-ai .cai-action{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-muted)}.micro-app-caractacus-ai .cai-action-state{flex:none;min-width:64px;text-align:center;padding:1px 6px;border-radius:999px;font-size:12px;font-weight:600}.micro-app-caractacus-ai .cai-action-state-done{color:var(--success);background:var(--success-soft)}.micro-app-caractacus-ai .cai-action-state-refused{color:var(--warning);background:var(--warning-soft)}.micro-app-caractacus-ai .cai-action-state-failed{color:var(--danger);background:var(--danger-soft)}.micro-app-caractacus-ai .cai-action-body{min-width:0;display:flex;flex-direction:column;gap:2px}.micro-app-caractacus-ai .cai-action-what{font-weight:600;overflow-wrap:anywhere}.micro-app-caractacus-ai .cai-action-type{margin-left:6px;color:var(--muted);font-size:12px;font-weight:400}.micro-app-caractacus-ai .cai-action-problem{color:var(--danger);overflow-wrap:anywhere}.micro-app-caractacus-ai .cai-action-refused .cai-action-problem{color:var(--warning)}.micro-app-caractacus-ai .cai-action-parameters{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.micro-app-caractacus-ai .cai-model-output{width:100%}.micro-app-caractacus-ai .cai-model-output>summary{cursor:pointer;color:var(--muted);font-size:12px}.micro-app-caractacus-ai .cai-model-output pre{margin:6px 0 0;padding:10px;max-height:320px;overflow:auto;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.micro-app-caractacus-ai .cai-ask{position:sticky;bottom:0;display:flex;gap:8px;align-items:flex-end;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-caractacus-ai .cai-input{width:100%;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.micro-app-caractacus-ai .cai-prompt{flex:1;resize:vertical;min-height:42px}@media(max-width:720px){.micro-app-caractacus-ai .cai-layout{grid-template-columns:minmax(0,1fr)}.micro-app-caractacus-ai .cai-conversation-list{max-height:40vh}}.micro-app-caractacus-ai .cai-dialog{width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}.micro-app-caractacus-ai .cai-dialog::backdrop{background:#00000080}.micro-app-caractacus-ai .cai-dialog-body{display:flex;flex-direction:column;gap:14px;padding:16px}.micro-app-caractacus-ai .cai-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.micro-app-caractacus-ai .cai-dialog-head h2{margin:0;font-size:16px}.micro-app-caractacus-ai .cai-field{display:flex;flex-direction:column;gap:4px;font-weight:600}.micro-app-caractacus-ai .cai-field-short .cai-input{max-width:120px}.micro-app-caractacus-ai .cai-textarea{resize:vertical;font-weight:400}.micro-app-caractacus-ai .cai-check{display:flex;align-items:flex-start;gap:8px;font-weight:600}.micro-app-caractacus-ai .cai-check input{margin-top:3px}.micro-app-caractacus-ai .cai-dialog-actions{display:flex;justify-content:flex-end}.micro-app-caractacus-desktop .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-caractacus-desktop .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-caractacus-desktop .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-caractacus-desktop .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-caractacus-desktop .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-caractacus-desktop .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-caractacus-desktop .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-caractacus-desktop body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .12);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--danger: #d64545;--warning: #d3870f;--success: #2fbf71;--logo-text: #1a2440;--logo-accent: #78b52a}.micro-app-caractacus-desktop{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-caractacus-desktop .boot-status{align-items:center;display:none;justify-content:center;padding:32px}.micro-app-caractacus-desktop .boot-status.visible{display:flex}.micro-app-caractacus-desktop .boot-status-title{display:block}.micro-app-caractacus-desktop .boot-status-message{color:var(--desktop-muted)}.micro-app-caractacus-desktop{height:100%}.micro-app-caractacus-desktop *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border) var(--surface-muted)}.micro-app-caractacus-desktop *::-webkit-scrollbar{width:10px;height:10px}.micro-app-caractacus-desktop *::-webkit-scrollbar-track{background:var(--surface-muted);border-radius:10px}.micro-app-caractacus-desktop *::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px;border:2px solid var(--surface-muted)}.micro-app-caractacus-desktop .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.micro-app-caractacus-desktop #root>.container{padding:10px}.micro-app-caractacus-desktop h1{margin:0;font-size:20px;white-space:nowrap}.micro-app-caractacus-desktop h3{margin:0;font-size:14px}.micro-app-caractacus-desktop h4{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.micro-app-caractacus-desktop .header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}.micro-app-caractacus-desktop .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-caractacus-desktop .header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:0 0 auto}.micro-app-caractacus-desktop .logo .wave{fill:var(--logo-accent)}.micro-app-caractacus-desktop .logo .wordmark{fill:var(--logo-text)}.micro-app-caractacus-desktop .panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;flex:0 0 auto;min-height:0}.micro-app-caractacus-desktop .panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.micro-app-caractacus-desktop .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.micro-app-caractacus-desktop .row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}.micro-app-caractacus-desktop .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.micro-app-caractacus-desktop .pill{background:var(--pill-bg);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px;padding:4px 10px;white-space:nowrap}.micro-app-caractacus-desktop .pill.warn{border-color:var(--warning);color:var(--warning)}.micro-app-caractacus-desktop .tabs{display:flex;gap:6px;margin-left:auto}.micro-app-caractacus-desktop .muted{color:var(--muted)}.micro-app-caractacus-desktop .small{font-size:12px}.micro-app-caractacus-desktop .error{border-color:var(--danger);color:var(--danger)}.micro-app-caractacus-desktop .error.small{border:0;padding:0;margin:4px 0 0}.micro-app-caractacus-desktop .saved{border-color:var(--success);color:var(--success)}.micro-app-caractacus-desktop .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 16px;margin:0 0 10px}.micro-app-caractacus-desktop .facts div{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:8px;border-bottom:1px solid var(--border);padding-bottom:4px}.micro-app-caractacus-desktop .facts dt{color:var(--muted);font-size:12px;white-space:nowrap}.micro-app-caractacus-desktop .facts dd{margin:0;word-break:break-word;font-size:12px}.micro-app-caractacus-desktop .split-panels{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;flex:1 1 auto;min-height:0}.micro-app-caractacus-desktop .split-panels>.panel,.micro-app-caractacus-desktop .commands-panel{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto}.micro-app-caractacus-desktop .commands-panel{flex:1 1 auto}.micro-app-caractacus-desktop .detail-empty{color:var(--muted);display:flex;flex-direction:column;gap:6px;padding:24px 8px;text-align:center}.micro-app-caractacus-desktop .detail-empty p{margin:0;font-size:12px}.micro-app-caractacus-desktop .send-command{display:flex;flex-direction:column;gap:8px;margin-top:4px}@media(max-width:1080px){.micro-app-caractacus-desktop .split-panels{grid-template-columns:minmax(0,1fr);overflow:auto}}.micro-app-caractacus-desktop .word-pills{display:inline-flex;flex-wrap:wrap;gap:4px}.micro-app-caractacus-desktop .small-pill{font-size:11px;margin-left:6px;padding:1px 6px}.micro-app-caractacus-desktop .agent-settings{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.micro-app-caractacus-desktop .agent-settings summary{cursor:pointer;font-weight:600}.micro-app-caractacus-desktop .model-settings{display:flex;flex-direction:column;gap:8px;margin-top:8px}.micro-app-caractacus-desktop .grounding-test{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.micro-app-caractacus-desktop .grounding-test-result{margin:0;font-size:13px;color:var(--muted)}.micro-app-caractacus-desktop .installer-publishing{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:12px}.micro-app-caractacus-desktop .installer-publishing h4,.micro-app-caractacus-desktop .installer-publishing p{margin:0}.micro-app-caractacus-desktop button{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);border-radius:var(--radius);color:var(--btn-primary-text);cursor:pointer;font:inherit;font-weight:650;min-height:34px;padding:0 12px;white-space:nowrap}.micro-app-caractacus-desktop button:disabled{cursor:not-allowed;opacity:.5}.micro-app-caractacus-desktop button.secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--btn-secondary-text)}.micro-app-caractacus-desktop button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.micro-app-caractacus-desktop button.small{min-height:26px;font-size:12px;padding:0 8px}.micro-app-caractacus-desktop button.linkish{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;min-height:0;padding:0;text-align:left}.micro-app-caractacus-desktop .tab-button{background:var(--btn-secondary-bg);border:1px solid var(--border);color:var(--text);font-weight:600;min-height:28px;padding:0 12px}.micro-app-caractacus-desktop .tab-button.active{background:var(--accent-soft);border-color:var(--accent)}.micro-app-caractacus-desktop input,.micro-app-caractacus-desktop select,.micro-app-caractacus-desktop textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius);color:var(--text);font:inherit;min-height:34px;padding:6px 8px;width:100%}.micro-app-caractacus-desktop input[type=checkbox]{min-height:0;width:auto;margin:0}.micro-app-caractacus-desktop textarea{line-height:1.45;resize:vertical}.micro-app-caractacus-desktop .field{display:flex;flex-direction:column;gap:4px;min-width:0}.micro-app-caractacus-desktop .field>label{color:var(--muted);font-size:12px;font-weight:600}.micro-app-caractacus-desktop .field.inline{flex:0 0 auto;min-width:180px}.micro-app-caractacus-desktop .field.grow{flex:1 1 220px}.micro-app-caractacus-desktop .field-hint{color:var(--muted);font-size:11px;line-height:1.4;margin:0}.micro-app-caractacus-desktop .field-hint code{font-size:11px}.micro-app-caractacus-desktop .field-problem{color:var(--danger);font-size:11px;margin:0}.micro-app-caractacus-desktop .checkbox{align-items:center;color:var(--text);display:flex;font-size:13px;gap:8px}.micro-app-caractacus-desktop code{background:var(--surface-muted);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:1px 4px}.micro-app-caractacus-desktop .table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.micro-app-caractacus-desktop table{border-collapse:collapse;width:100%}.micro-app-caractacus-desktop th,.micro-app-caractacus-desktop td{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.micro-app-caractacus-desktop th{color:var(--muted);font-size:11px;font-weight:600;position:sticky;top:0;background:var(--surface);z-index:1}.micro-app-caractacus-desktop td{font-size:12px}.micro-app-caractacus-desktop tr.open td{background:var(--accent-soft)}.micro-app-caractacus-desktop tr.agent-row.revoked td{opacity:.6}.micro-app-caractacus-desktop .prompt-cell{max-width:46ch;word-break:break-word}.micro-app-caractacus-desktop .version-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-caractacus-desktop .presence-pills{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.micro-app-caractacus-desktop .activity{max-width:260px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.micro-app-caractacus-desktop .doing-actions{margin-top:6px}.micro-app-caractacus-desktop .dialog-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:40}.micro-app-caractacus-desktop .dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto;padding:16px;width:min(520px,100%)}.micro-app-caractacus-desktop .dialog-actions{display:flex;gap:8px;justify-content:flex-end}.micro-app-caractacus-desktop .enrollment-dialog{border-color:var(--accent)}.micro-app-caractacus-desktop .enrollment-warning{color:var(--danger);font-size:12px;margin:0}.micro-app-caractacus-desktop .enrollment-secret{background:var(--surface-muted);border:1px solid var(--border);border-radius:6px;display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:10px;word-break:break-all}.micro-app-caractacus-desktop .digest{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;word-break:break-all}.micro-app-workflows .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-workflows .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-workflows .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-workflows .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-workflows .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-workflows .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-workflows .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-workflows body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .12);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--pill-bg: #ffffff;--btn-primary-bg: #ffffff;--btn-primary-text: #2f6bff;--btn-primary-border: #c9d7f5;--btn-secondary-bg: #f4f6fb;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--danger: #d64545;--warning: #d3870f;--success: #2fbf71;--logo-text: #1a2440;--logo-accent: #78b52a}.micro-app-workflows .container,.micro-app-workflows .dialog-backdrop{--family-model: #7c5cff;--family-desktop: #2f9bff;--family-data: #14a06f;--family-flow: #e08b18;--family-devices: #d6509e}.micro-app-workflows{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}.micro-app-workflows .boot-status{align-items:center;display:none;justify-content:center;padding:32px}.micro-app-workflows .boot-status.visible{display:flex}.micro-app-workflows .boot-status-title{display:block}.micro-app-workflows .boot-status-message{color:var(--muted)}.micro-app-workflows{height:100%}.micro-app-workflows *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border) var(--surface-muted)}.micro-app-workflows *::-webkit-scrollbar{width:10px;height:10px}.micro-app-workflows *::-webkit-scrollbar-track{background:var(--surface-muted);border-radius:10px}.micro-app-workflows *::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px;border:2px solid var(--surface-muted)}.micro-app-workflows .container{width:100%;max-width:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.micro-app-workflows #root>.container{padding:10px}.micro-app-workflows h1{margin:0;font-size:20px;white-space:nowrap}.micro-app-workflows h3{margin:0;font-size:14px}.micro-app-workflows h4{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.micro-app-workflows .header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}.micro-app-workflows .logo{width:148px;height:49px;flex:0 0 auto}.micro-app-workflows .header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:0 0 auto}.micro-app-workflows .logo .wave{fill:var(--logo-accent)}.micro-app-workflows .logo .wordmark{fill:var(--logo-text)}.micro-app-workflows .panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;flex:0 0 auto;min-height:0}.micro-app-workflows .flow-picker{min-width:170px;max-width:260px;width:auto}.micro-app-workflows button.attention{background:var(--warning);border-color:var(--warning);color:#1b1200}.micro-app-workflows .page-error{background:var(--surface);border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);flex:0 0 auto;font-size:12px;padding:8px 10px}.micro-app-workflows .panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.micro-app-workflows .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.micro-app-workflows .row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}.micro-app-workflows .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.micro-app-workflows .pill{background:var(--pill-bg);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px;padding:4px 10px;white-space:nowrap}.micro-app-workflows .pill.warn{border-color:var(--warning);color:var(--warning)}.micro-app-workflows .tabs{display:flex;gap:6px;margin-left:auto}.micro-app-workflows .muted{color:var(--muted)}.micro-app-workflows .small{font-size:12px}.micro-app-workflows .error{border-color:var(--danger);color:var(--danger)}.micro-app-workflows .error.small{border:0;padding:0;margin:4px 0 0}.micro-app-workflows .saved{border-color:var(--success);color:var(--success)}.micro-app-workflows .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 16px;margin:0 0 10px}.micro-app-workflows .facts div{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:8px;border-bottom:1px solid var(--border);padding-bottom:4px}.micro-app-workflows .facts dt{color:var(--muted);font-size:12px;white-space:nowrap}.micro-app-workflows .facts dd{margin:0;word-break:break-word;font-size:12px}.micro-app-workflows .workbench{display:grid;grid-template-columns:196px minmax(0,1fr);gap:8px;flex:1 1 auto;min-height:0}.micro-app-workflows .workbench.no-palette{grid-template-columns:26px minmax(0,1fr)}.micro-app-workflows .workbench.with-sidebar{grid-template-columns:196px minmax(0,1fr) 340px}.micro-app-workflows .workbench.no-palette.with-sidebar{grid-template-columns:26px minmax(0,1fr) 340px}.micro-app-workflows .palette-rail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding:6px;position:relative}.micro-app-workflows .rail-toggle{align-self:flex-end;background:var(--surface-muted);border:1px solid var(--border);border-radius:6px;color:var(--muted);flex:0 0 auto;font-size:13px;line-height:1;min-height:22px;padding:0 6px}.micro-app-workflows .canvas-column{display:flex;flex-direction:column;min-height:0;min-width:0;position:relative}.micro-app-workflows .canvas-tools{align-items:center;display:flex;gap:8px;pointer-events:none;position:absolute;right:10px;top:38px;z-index:5}.micro-app-workflows .canvas-tools button,.micro-app-workflows .canvas-tools .pill{pointer-events:all}.micro-app-workflows .lane-tabs{align-items:stretch;border-bottom:1px solid var(--border);display:flex;flex:0 0 auto;gap:8px;min-width:0}.micro-app-workflows .lane-tab-strip{align-items:center;display:flex;flex:1 1 auto;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:thin}.micro-app-workflows .lane-tab{background:none;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;color:var(--muted);font-size:12px;font-weight:600;gap:6px;min-height:28px;padding:0 10px;white-space:nowrap}.micro-app-workflows .lane-tab.active{border-bottom-color:var(--accent);color:var(--text)}.micro-app-workflows .lane-tab-count{background:var(--surface-muted);border-radius:999px;font-size:10px;margin-left:6px;padding:1px 6px}.micro-app-workflows .lane-tab-add{color:var(--muted);font-size:15px;padding:0 9px}.micro-app-workflows .lane-tools{align-items:center;display:flex;flex:0 0 auto;gap:10px;padding-left:10px}.micro-app-workflows .json-pane{display:flex;flex:1 1 auto;flex-direction:column;gap:6px;min-height:0;padding-top:8px}.micro-app-workflows .sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding:10px}.micro-app-workflows .sidebar-head{align-items:center;display:flex;flex:0 0 auto;gap:8px;justify-content:space-between;flex-wrap:wrap}.micro-app-workflows .run-list{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.micro-app-workflows .run-list-entry{align-items:center;background:var(--surface-muted);border:1px solid var(--border);border-radius:6px;color:var(--text);display:grid;gap:6px;grid-template-columns:minmax(0,1fr) auto;min-height:0;padding:6px 8px;text-align:left;width:100%}.micro-app-workflows .run-list-when{font-size:11px;color:var(--muted)}.micro-app-workflows .run-list-command{font-size:12px;grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .run-steps{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.micro-app-workflows .run-step{border-left:2px solid var(--border);padding:4px 0 4px 8px}.micro-app-workflows .run-step.failed{border-left-color:var(--danger)}.micro-app-workflows .run-step-head{align-items:center;display:flex;flex-wrap:wrap;gap:6px}@media(max-width:1080px){.micro-app-workflows .workbench,.micro-app-workflows .workbench.with-sidebar,.micro-app-workflows .workbench.no-palette.with-sidebar{grid-template-columns:26px minmax(0,1fr)}.micro-app-workflows .palette-rail .flow-palette{display:none}.micro-app-workflows .workbench.with-sidebar .sidebar{bottom:10px;position:absolute;right:10px;top:90px;width:min(340px,100% - 60px);z-index:20}.micro-app-workflows .container{position:relative}}.micro-app-workflows .page-questions{display:flex;flex:0 0 auto;flex-direction:column;gap:6px}.micro-app-workflows .question-row{align-items:center;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between;padding:8px 10px}.micro-app-workflows .question-text{display:flex;flex:1 1 240px;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.micro-app-workflows .question-answers{display:flex;flex:0 0 auto;gap:6px}.micro-app-workflows .run-question{display:flex;flex-direction:column;gap:4px;margin:8px 0}.micro-app-workflows button{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);border-radius:var(--radius);color:var(--btn-primary-text);cursor:pointer;font:inherit;font-weight:650;min-height:34px;padding:0 12px;white-space:nowrap}.micro-app-workflows button:disabled{cursor:not-allowed;opacity:.5}.micro-app-workflows button.secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--btn-secondary-text)}.micro-app-workflows button.secondary.pressed,.micro-app-workflows button.pressed{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.micro-app-workflows button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.micro-app-workflows button.small{min-height:26px;font-size:12px;padding:0 8px}.micro-app-workflows button.linkish{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;min-height:0;padding:0;text-align:left}.micro-app-workflows .tab-button{background:var(--btn-secondary-bg);border:1px solid var(--border);color:var(--text);font-weight:600;min-height:28px;padding:0 12px}.micro-app-workflows .tab-button.active{background:var(--accent-soft);border-color:var(--accent)}.micro-app-workflows input,.micro-app-workflows select,.micro-app-workflows textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius);color:var(--text);font:inherit;min-height:34px;padding:6px 8px;width:100%}.micro-app-workflows input[type=checkbox]{min-height:0;width:auto;margin:0}.micro-app-workflows textarea{line-height:1.45;resize:vertical}.micro-app-workflows .field{display:flex;flex-direction:column;gap:4px;min-width:0}.micro-app-workflows .field>label{color:var(--muted);font-size:12px;font-weight:600}.micro-app-workflows .field.inline{flex:0 0 auto;min-width:180px}.micro-app-workflows .field.grow{flex:1 1 220px}.micro-app-workflows .field-hint{color:var(--muted);font-size:11px;line-height:1.4;margin:0}.micro-app-workflows .field-hint code{font-size:11px}.micro-app-workflows .field-problem{color:var(--danger);font-size:11px;margin:0}.micro-app-workflows .checkbox{align-items:center;color:var(--text);display:flex;font-size:13px;gap:8px}.micro-app-workflows code{background:var(--surface-muted);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:1px 4px}.micro-app-workflows .document{flex:1 1 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;min-height:240px;white-space:pre}.micro-app-workflows .table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.micro-app-workflows table{border-collapse:collapse;width:100%}.micro-app-workflows th,.micro-app-workflows td{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.micro-app-workflows th{color:var(--muted);font-size:11px;font-weight:600;position:sticky;top:0;background:var(--surface);z-index:1}.micro-app-workflows td{font-size:12px}.micro-app-workflows tr.open td{background:var(--accent-soft)}.micro-app-workflows tr.step-row.failed td{background:color-mix(in srgb,var(--danger) 10%,transparent)}.micro-app-workflows .step-indent{display:inline-block}.micro-app-workflows .prompt-cell{max-width:40ch;word-break:break-word}.micro-app-workflows .output-cell{max-width:46ch}.micro-app-workflows .output{background:var(--surface-muted);border-radius:6px;font-size:11px;margin:4px 0 0;max-height:220px;overflow:auto;padding:8px;white-space:pre-wrap;word-break:break-word}.micro-app-workflows .flow-canvas{flex:1 1 auto;height:100%;min-height:0;width:100%}.micro-app-workflows .flow-canvas-waiting{align-items:center;color:var(--muted);display:flex;justify-content:center;padding:24px;text-align:center}.micro-app-workflows .flow-canvas-waiting p{margin:4px 0 0;font-size:12px}.micro-app-workflows .flow-canvas .react-flow__renderer,.micro-app-workflows .flow-canvas .react-flow__pane{background:var(--bg)}.micro-app-workflows .flow-canvas .react-flow__edge-path{stroke:var(--border);stroke-width:2}.micro-app-workflows .flow-canvas .react-flow__edge.selected .react-flow__edge-path,.micro-app-workflows .flow-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:var(--accent)}.micro-app-workflows .flow-canvas .react-flow__edge.flow-branch-edge .react-flow__edge-path{stroke:var(--family-flow)}.micro-app-workflows .flow-canvas .react-flow__edge.flow-wrap-edge .react-flow__edge-path{opacity:.35}.micro-app-workflows .flow-canvas .react-flow__handle{background:var(--surface);border:2px solid var(--border);border-radius:2px;height:9px;width:9px}.micro-app-workflows .flow-canvas .react-flow__handle-left{left:-5px}.micro-app-workflows .flow-canvas .react-flow__handle-right{right:-5px}.micro-app-workflows .flow-canvas .flow-branch-port{background:var(--family-flow);border-color:var(--family-flow);border-radius:50%;height:8px;width:8px}.micro-app-workflows .flow-canvas .react-flow__controls{box-shadow:none}.micro-app-workflows .flow-canvas .react-flow__controls-button{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text);fill:var(--text);height:26px;min-height:0;padding:4px;width:26px}.micro-app-workflows .flow-canvas .react-flow__controls-button:hover{background:var(--surface-muted)}.micro-app-workflows .flow-canvas .react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.micro-app-workflows .flow-canvas .react-flow__minimap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:96px;width:148px}.micro-app-workflows .flow-canvas .react-flow__minimap-mask{fill:#7f7f7f47}.micro-app-workflows .flow-canvas .react-flow__minimap-node{stroke:none}.micro-app-workflows .flow-canvas .react-flow__attribution{background:transparent;font-size:9px}.micro-app-workflows .flow-canvas .react-flow__attribution a{color:var(--muted)}.micro-app-workflows .flow-node{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;display:flex;gap:8px;height:34px;padding:0 10px 0 0;width:176px}.micro-app-workflows .flow-node:hover{border-color:var(--accent)}.micro-app-workflows .flow-node.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.micro-app-workflows .flow-node.disabled{opacity:.5}.micro-app-workflows .flow-node-mark{align-items:center;align-self:stretch;border-radius:4px 0 0 4px;color:#0b1020;display:flex;flex:0 0 auto;font-size:12px;font-weight:700;justify-content:center;width:30px}.micro-app-workflows .flow-node-name{flex:1 1 auto;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .flow-node-edit{background:none;border:0;color:var(--muted);flex:0 0 auto;font-size:12px;line-height:1;min-height:0;opacity:0;padding:2px;transition:opacity .12s ease}.micro-app-workflows .flow-node:hover .flow-node-edit,.micro-app-workflows .flow-node.selected .flow-node-edit{opacity:1}.micro-app-workflows .flow-node-edit:hover{color:var(--accent)}.micro-app-workflows .flow-node-branching{position:relative}.micro-app-workflows .flow-node-ports{bottom:0;pointer-events:none;position:absolute;right:8px;top:0}.micro-app-workflows .flow-node-port-label{color:var(--muted);font-size:9px;line-height:1;overflow:hidden;position:absolute;right:0;text-align:right;text-overflow:ellipsis;transform:translateY(-50%);white-space:nowrap;width:100%}.micro-app-workflows .flow-node-off{color:var(--warning);flex:0 0 auto;font-size:10px;text-transform:uppercase}.micro-app-workflows .flow-node-model .flow-node-mark{background:var(--family-model)}.micro-app-workflows .flow-node-desktop .flow-node-mark{background:var(--family-desktop)}.micro-app-workflows .flow-node-data .flow-node-mark{background:var(--family-data)}.micro-app-workflows .flow-node-flow .flow-node-mark{background:var(--family-flow)}.micro-app-workflows .flow-node-devices .flow-node-mark{background:var(--family-devices)}.micro-app-workflows .flow-node-model{border-left:2px solid var(--family-model)}.micro-app-workflows .flow-node-desktop{border-left:2px solid var(--family-desktop)}.micro-app-workflows .flow-node-data{border-left:2px solid var(--family-data)}.micro-app-workflows .flow-node-flow{border-left:2px solid var(--family-flow)}.micro-app-workflows .flow-node-devices{border-left:2px solid var(--family-devices)}.micro-app-workflows .flow-node-empty{border-style:dashed;color:var(--muted);cursor:default;justify-content:center;padding:0 10px;width:96px}.micro-app-workflows .flow-node-empty .flow-node-name{font-weight:500}.micro-app-workflows .flow-edge-tools{align-items:center;display:flex;gap:4px;pointer-events:all;position:absolute}.micro-app-workflows .flow-edge-label{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:10px;padding:1px 6px;white-space:nowrap}.micro-app-workflows .flow-edge-add{background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--muted);font-size:13px;height:18px;line-height:1;min-height:0;opacity:0;padding:0;transition:opacity .12s ease;width:18px}.micro-app-workflows .react-flow__edge:hover .flow-edge-add,.micro-app-workflows .flow-edge-tools:hover .flow-edge-add{opacity:1}.micro-app-workflows .flow-edge-add:hover{background:var(--accent);border-color:var(--accent);color:var(--btn-primary-text)}.micro-app-workflows .flow-minimap-model{fill:var(--family-model)}.micro-app-workflows .flow-minimap-desktop{fill:var(--family-desktop)}.micro-app-workflows .flow-minimap-data{fill:var(--family-data)}.micro-app-workflows .flow-minimap-flow{fill:var(--family-flow)}.micro-app-workflows .flow-minimap-devices{fill:var(--family-devices)}.micro-app-workflows .flow-palette{display:flex;flex-direction:column;gap:10px;min-height:0}.micro-app-workflows .flow-palette-search{flex:0 0 auto;font-size:12px;min-height:28px}.micro-app-workflows .flow-palette-family{display:flex;flex-direction:column;gap:3px}.micro-app-workflows .flow-palette-family .flow-chip{width:100%}.micro-app-workflows .flow-chip{align-items:center;min-width:0;overflow:hidden;width:max-content;max-width:100%;background:var(--surface-muted);border:1px solid var(--border);border-radius:5px;color:var(--text);display:flex;font-size:12px;font-weight:600;gap:8px;min-height:28px;padding:0 8px 0 0;text-align:left;white-space:nowrap}.micro-app-workflows .flow-chip:hover{border-color:var(--accent)}.micro-app-workflows .flow-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .flow-chip-mark{align-items:center;align-self:stretch;border-radius:4px 0 0 4px;color:#0b1020;display:flex;flex:0 0 auto;font-size:11px;font-weight:700;justify-content:center;width:26px}.micro-app-workflows .flow-chip-model .flow-chip-mark{background:var(--family-model)}.micro-app-workflows .flow-chip-desktop .flow-chip-mark{background:var(--family-desktop)}.micro-app-workflows .flow-chip-data .flow-chip-mark{background:var(--family-data)}.micro-app-workflows .flow-chip-flow .flow-chip-mark{background:var(--family-flow)}.micro-app-workflows .flow-chip-devices .flow-chip-mark{background:var(--family-devices)}.micro-app-workflows .kind-grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.micro-app-workflows .view-picker{min-width:110px;width:auto}.micro-app-workflows .steps-view{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding:8px 2px 24px 0}.micro-app-workflows .steps-view-tools{align-items:center;display:flex;gap:8px;min-height:30px}.micro-app-workflows .steps-list{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.micro-app-workflows .steps-item{display:flex;flex-direction:column;gap:4px}.micro-app-workflows .steps-row{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;display:flex;gap:8px;min-height:34px;overflow:hidden;padding-right:8px}.micro-app-workflows .steps-row:hover{border-color:var(--accent)}.micro-app-workflows .steps-row.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.micro-app-workflows .steps-row.disabled{opacity:.5}.micro-app-workflows .steps-row .flow-node-mark{align-self:stretch;min-height:32px}.micro-app-workflows .steps-row.dragging{opacity:.45}.micro-app-workflows .steps-row.drop-before{border-top-color:var(--accent);box-shadow:0 -3px 0 0 var(--accent)}.micro-app-workflows .steps-list-end.drop-here .steps-add{border-color:var(--accent);border-style:dashed;color:var(--accent)}.micro-app-workflows .steps-row:hover .steps-edit,.micro-app-workflows .steps-row.selected .steps-edit{opacity:1}.micro-app-workflows .steps-toggle,.micro-app-workflows .steps-toggle-space{flex:0 0 auto;width:22px}.micro-app-workflows .steps-toggle{background:none;border:0;color:var(--muted);font-size:12px;line-height:1;min-height:0;padding:4px}.micro-app-workflows .steps-toggle:hover{color:var(--accent)}.micro-app-workflows .steps-number{color:var(--muted);flex:0 0 auto;font-size:11px;min-width:18px;text-align:right}.micro-app-workflows .steps-name{flex:0 0 auto;font-size:13px;font-weight:600;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .steps-kind{color:var(--muted);flex:0 0 auto;font-size:11px;white-space:nowrap}.micro-app-workflows .steps-summary{color:var(--muted);flex:1 1 auto;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .steps-held{border:1px solid var(--border);border-radius:999px;color:var(--muted);flex:0 0 auto;font-size:10px;padding:1px 6px;white-space:nowrap}.micro-app-workflows .steps-open-group{flex:0 0 auto}.micro-app-workflows .steps-branches{border-left:2px solid var(--family-flow);display:flex;flex-direction:column;gap:8px;margin-left:11px;padding:2px 0 4px 18px}.micro-app-workflows .steps-branch{display:flex;flex-direction:column;gap:4px}.micro-app-workflows .steps-branch-label{align-items:baseline;color:var(--family-flow);display:flex;font-size:11px;font-weight:700;gap:8px;letter-spacing:.02em;text-transform:uppercase}.micro-app-workflows .steps-list-end{display:flex}.micro-app-workflows .steps-add{background:none;border:1px solid var(--border);border-radius:5px;color:var(--muted);font-size:12px;min-height:26px;padding:0 10px}.micro-app-workflows .steps-add:hover{border-color:var(--accent);color:var(--accent)}.micro-app-workflows .field-pair{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.micro-app-workflows .pairs{display:flex;flex-direction:column;gap:6px}.micro-app-workflows .pair{align-items:center;display:flex;gap:6px}.micro-app-workflows .pair input,.micro-app-workflows .pair select{min-width:0}.micro-app-workflows .pair button{flex:0 0 auto}.micro-app-workflows .reference-list{display:flex;flex-direction:column;gap:3px}.micro-app-workflows .reference-list code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .choice-typed{align-items:center;display:flex;gap:6px}.micro-app-workflows .choice-typed input{flex:1 1 auto;min-width:0}.micro-app-workflows .choice-typed button{flex:0 0 auto}.micro-app-workflows .reference-insert{font-size:12px;margin-top:4px;max-width:100%}.micro-app-workflows .condition-row{display:flex;gap:6px;margin-top:6px}.micro-app-workflows .condition-row>select{flex:0 0 40%;min-width:0;width:40%}.micro-app-workflows .condition-row>input{flex:1 1 0;min-width:0;width:auto}.micro-app-workflows .condition-row>select:only-child{flex-basis:100%;width:100%}.micro-app-workflows .watch-editor{border-left:3px solid var(--border);display:flex;flex-direction:column;gap:8px;padding-left:10px}.micro-app-workflows .command-list{display:flex;flex-direction:column;gap:8px}.micro-app-workflows .command-row{background:var(--surface-muted, var(--surface));border:1px solid var(--border);border-radius:var(--radius, 8px);display:flex;flex-direction:column;gap:6px;padding:8px 10px}.micro-app-workflows .command-row.command-row-ai{border-left:3px solid var(--accent)}.micro-app-workflows .command-row .field-hint{margin:0}.micro-app-workflows .command-head{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.micro-app-workflows .command-head select{flex:1 1 200px;min-width:0}.micro-app-workflows .command-number{color:var(--muted);font-variant-numeric:tabular-nums;min-width:1.5em}.micro-app-workflows .command-tools{display:flex;gap:4px;margin-left:auto}.micro-app-workflows .command-about{color:var(--muted)}.micro-app-workflows .command-fields{align-items:start;display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.micro-app-workflows .command-field{display:flex;flex-direction:column;gap:4px;min-width:0}.micro-app-workflows .command-field label{color:var(--muted);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-workflows .command-field input,.micro-app-workflows .command-field select,.micro-app-workflows .command-field textarea{min-width:0;width:100%}.micro-app-workflows .command-field-hint{color:var(--muted);font-size:11px;line-height:1.35;margin:0}.micro-app-workflows .command-flags{display:grid;gap:8px 12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.micro-app-workflows .command-flag{display:flex;flex-direction:column;gap:2px}.micro-app-workflows .command-flag .checkbox{align-items:center;display:flex;font-size:13px;font-weight:600;gap:8px}.micro-app-workflows .command-flag .command-field-hint{padding-left:24px}.micro-app-workflows button.command-more.command-more{align-self:flex-start;background:none;border:0;color:var(--accent);cursor:pointer;font-size:12px;font-weight:600;min-height:0;padding:2px 0}.micro-app-workflows .command-add{align-items:center;display:flex;gap:6px}.micro-app-workflows .command-add select{flex:1 1 auto;min-width:0}.micro-app-workflows .trigger-card{border:1px solid var(--border);border-radius:var(--radius, 8px);margin-bottom:8px;padding:8px 10px}.micro-app-workflows .trigger-card.off{opacity:.6}.micro-app-workflows .trigger-head{align-items:center;display:flex;gap:8px}.micro-app-workflows .trigger-head .trigger-title{flex:1 1 auto;text-align:left}.micro-app-workflows .trigger-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.micro-app-workflows .day-picker{display:flex;flex-wrap:wrap;gap:10px}.micro-app-workflows .dialog-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:40}.micro-app-workflows .dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto;padding:16px;width:min(560px,100%)}.micro-app-workflows .step-dialog{gap:0;overflow:hidden;width:min(720px,100%)}.micro-app-workflows .dialog-head{align-items:flex-start;display:flex;flex:0 0 auto;flex-wrap:wrap;gap:10px;justify-content:space-between;padding-bottom:12px}.micro-app-workflows .dialog-head h3{margin:0}.micro-app-workflows .dialog-head p{margin:6px 0 0}.micro-app-workflows .dialog-title{flex:1 1 260px;min-width:0}.micro-app-workflows .dialog-head-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px}.micro-app-workflows .dialog-body{border-top:1px solid var(--border);display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding:12px 2px}.micro-app-workflows .dialog-actions{align-items:center;border-top:1px solid var(--border);display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end;padding-top:12px}.micro-app-workflows .dialog-actions .muted{margin-right:auto}.micro-app-workflows .settings-tabs{border-top:1px solid var(--border);display:flex;flex:0 0 auto;gap:2px;padding-top:6px}.micro-app-workflows .settings-tab{background:none;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;color:var(--muted);cursor:pointer;font-size:13px;font-weight:600;min-height:30px;padding:0 12px}.micro-app-workflows .settings-tab.active{border-bottom-color:var(--accent);color:var(--text)}.micro-app-workflows .danger-zone{align-items:center;border:1px solid var(--danger);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:8px;padding:12px}.micro-app-workflows .danger-zone p{margin:4px 0 0}.micro-app-local-models body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-border: #2f6bff;--btn-primary-text: #ffffff;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-error-bg: #fbdcdc;--status-error-text: #8c1c22}.micro-app-local-models *{box-sizing:border-box}.micro-app-local-models{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-local-models .status-pill{min-height:28px;max-width:100%;flex:0 0 auto;width:max-content;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;font-size:12px;line-height:1;font-weight:700;white-space:nowrap;vertical-align:middle}.micro-app-local-models .status-pill svg{flex:0 0 auto;display:block;color:currentColor}.micro-app-local-models .status-pill-label{min-width:0;display:inline-flex;align-items:center;line-height:1.15}.micro-app-local-models .status-pill-ok{background:var(--status-ok-bg, #124b3a);color:var(--status-ok-text, #8af0cd)}.micro-app-local-models .status-pill-warning{background:var(--status-warning-bg, #4d3c11);color:var(--status-warning-text, #f5d98b)}.micro-app-local-models .status-pill-neutral{background:var(--status-neutral-bg, #22304a);color:var(--status-neutral-text, #c3d0e6)}.micro-app-local-models .status-pill-error{background:var(--status-error-bg, #4e1c1f);color:var(--status-error-text, #f9b4b4)}.micro-app-local-models .lm-page{display:flex;flex-direction:column;gap:16px;padding:16px;max-width:1200px;min-width:0}.micro-app-local-models .lm-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-local-models .lm-card-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}.micro-app-local-models .lm-card-head h2{margin:0;font-size:17px}.micro-app-local-models .lm-muted{margin:0;color:var(--muted);font-size:13px}.micro-app-local-models .lm-note{margin:0;color:var(--accent);font-size:13px;font-weight:600}.micro-app-local-models .lm-empty{margin:0;padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-local-models .lm-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-local-models .lm-empty p{margin:0}.micro-app-local-models .lm-notice,.micro-app-local-models .lm-error,.micro-app-local-models .lm-warning{margin:0;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-local-models .lm-notice p,.micro-app-local-models .lm-error p,.micro-app-local-models .lm-warning p{margin:0 0 6px}.micro-app-local-models .lm-notice p:last-child,.micro-app-local-models .lm-error p:last-child,.micro-app-local-models .lm-warning p:last-child{margin-bottom:0}.micro-app-local-models .lm-notice{background:var(--surface-muted)}.micro-app-local-models .lm-error{color:var(--danger);background:var(--danger-soft)}.micro-app-local-models .lm-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-local-models .lm-task{margin:0;font-size:13px}.micro-app-local-models .lm-page code,.micro-app-local-models .lm-model{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;overflow-wrap:anywhere}.micro-app-local-models .lm-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:8px 16px;margin:0}.micro-app-local-models .lm-facts div{min-width:0}.micro-app-local-models .lm-facts dt{color:var(--muted);font-size:12px;font-weight:600}.micro-app-local-models .lm-facts dd{margin:0;overflow-wrap:anywhere}.micro-app-local-models .lm-progress-row{display:flex;flex-direction:column;gap:6px}.micro-app-local-models .lm-progress{height:10px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);overflow:hidden}.micro-app-local-models .lm-progress span{display:block;height:100%;background:var(--accent);transition:width .4s ease}.micro-app-local-models .lm-actions,.micro-app-local-models .lm-profile-foot,.micro-app-local-models .lm-dialog-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}.micro-app-local-models .lm-dialog-actions{justify-content:flex-end}.micro-app-local-models .lm-inline-field{display:flex;flex-direction:column;gap:4px;flex:1 1 260px;min-width:0;max-width:460px}.micro-app-local-models .lm-inline-field>span{font-size:12px;font-weight:600;color:var(--muted)}.micro-app-local-models .lm-input{width:100%;min-width:0;min-height:36px;padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.micro-app-local-models .lm-form,.micro-app-local-models .lm-dialog-body{display:flex;flex-direction:column;gap:12px}.micro-app-local-models .lm-field{display:flex;flex-direction:column;gap:4px;min-width:0}.micro-app-local-models .lm-field>span:first-child{font-weight:600}.micro-app-local-models .lm-field-row{display:flex;flex-wrap:wrap;gap:12px}.micro-app-local-models .lm-field-row>.lm-field{flex:1 1 160px}.micro-app-local-models .lm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:12px}.micro-app-local-models .lm-profile{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-local-models .lm-profile-missing{border-style:dashed}.micro-app-local-models .lm-profile-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-local-models .lm-profile-head h3{margin:0;font-size:15px;overflow-wrap:anywhere}.micro-app-local-models .lm-profile-foot{margin-top:auto;padding-top:4px}.micro-app-local-models .lm-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}.micro-app-local-models .lm-downloaded{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.micro-app-local-models .lm-downloaded li{display:flex;flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:1px solid var(--border);min-width:0}.micro-app-local-models .lm-downloaded li:last-child{border-bottom:0;padding-bottom:0}.micro-app-local-models .lm-log{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.micro-app-local-models .lm-log-lines{width:100%;max-height:260px;margin:0;padding:10px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-local-models .lm-hint{padding-top:8px;border-top:1px solid var(--border)}.micro-app-local-models .lm-dialog{width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}.micro-app-local-models .lm-dialog::backdrop{background:#00000080}.micro-app-local-models .lm-page button,.micro-app-local-models .lm-dialog button{min-height:36px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--btn-primary-border);background:var(--btn-primary-bg);color:var(--btn-primary-text);font:inherit;font-weight:600;cursor:pointer}.micro-app-local-models .lm-page button:disabled,.micro-app-local-models .lm-dialog button:disabled{opacity:.55;cursor:not-allowed}.micro-app-local-models .lm-page button.secondary,.micro-app-local-models .lm-dialog button.secondary{border-color:var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}.micro-app-local-models .lm-page button.danger,.micro-app-local-models .lm-dialog button.danger{border-color:var(--btn-danger-bg);background:var(--btn-danger-bg);color:var(--btn-danger-text)}.micro-app-local-models .lm-page button.lm-link.skill-own-control{min-height:0;padding:0;border:0;background:transparent;color:var(--accent);font-weight:600;text-decoration:underline}@media(max-width:560px){.micro-app-local-models .lm-page,.micro-app-local-models .lm-card{padding:12px}.micro-app-local-models .lm-actions button{flex:1 1 auto}}.micro-app-deployment body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-text: #ffffff;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138;--status-error-bg: #fde3e3;--status-error-text: #7a1c1c}.micro-app-deployment *{box-sizing:border-box}.micro-app-deployment{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-deployment .deployment-page{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;height:auto;min-height:100%;padding:16px}.micro-app-deployment .deployment-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);align-items:start;gap:14px}@media(max-width:900px){.micro-app-deployment .deployment-layout{grid-template-columns:minmax(0,1fr)}}.micro-app-deployment .deployment-choices{display:grid;gap:6px}.micro-app-deployment .deployment-choice{display:grid;gap:2px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.micro-app-deployment .deployment-choice small{color:var(--muted)}.micro-app-deployment .deployment-choice.active{border-color:var(--accent);background:var(--accent-soft)}.micro-app-deployment .deployment-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:10px 14px}.micro-app-deployment .deployment-section-head{justify-content:space-between}.micro-app-deployment .deployment-section-head h4{margin:0}.micro-app-deployment .deployment-package{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.micro-app-deployment .deployment-skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px}.micro-app-deployment .deployment-muted{margin:0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.micro-app-deployment .deployment-problem{margin:0;padding:8px 10px;border-radius:var(--radius);background:var(--status-error-bg);color:var(--status-error-text);font-size:13px;overflow-wrap:anywhere}.micro-app-deployment .deployment-notes{display:grid;gap:4px;justify-items:start;padding:8px 10px;border-radius:var(--radius);background:var(--status-warning-bg);color:var(--status-warning-text);font-size:13px}.micro-app-deployment .deployment-notes p{margin:0}.micro-app-deployment .deployment-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.micro-app-deployment .deployment-link{color:var(--text);text-decoration:underline}.micro-app-deployment .deployment-link:hover{color:var(--accent)}.micro-app-deployment .deployment-list{margin:0;padding-left:18px}.micro-app-deployment .deployment-log{margin:0;max-height:320px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.micro-app-deployment .deployment-nowrap{white-space:nowrap}.micro-app-deployment .deployment-hidden{display:none}.micro-app-deployment .dev-host-note{margin:0;color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.micro-app-deployment .dev-host-note strong{color:var(--text)}.micro-app-deployment .dev-host-note code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.micro-app-deployment .dev-host-error{margin:0;border-radius:var(--radius);background:var(--status-error-bg);color:var(--status-error-text);padding:8px 10px;font-size:13px;overflow-wrap:anywhere}.micro-app-deployment .dev-host-watch{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-radius:var(--radius);background:var(--status-warning-bg);color:var(--status-warning-text);padding:10px 12px;font-size:13px;line-height:1.45}.micro-app-deployment .dev-host-watch.ok{background:var(--status-ok-bg);color:var(--status-ok-text)}.micro-app-deployment .dev-host-watch.error{background:var(--status-error-bg);color:var(--status-error-text)}.micro-app-deployment .dev-host-tasks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;min-width:0}.micro-app-deployment .dev-host-task{display:grid;gap:8px;align-content:start;min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);padding:12px}.micro-app-deployment .dev-host-log summary{cursor:pointer;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.micro-app-deployment .dev-host-log pre{margin:8px 0 0;max-height:320px;overflow:auto;padding:8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.micro-app-claude-code body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-error-bg: #fbdcdc;--status-error-text: #8c1c22}.micro-app-claude-code *{box-sizing:border-box}.micro-app-claude-code{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-claude-code .cc-page{display:grid;gap:12px;min-width:0;padding:0;color:var(--text)}.micro-app-claude-code .cc-host{margin:0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.micro-app-claude-code .cc-host code,.micro-app-claude-code .cc-page code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.micro-app-claude-code .cc-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:16px;align-items:start;min-width:0}.micro-app-claude-code .cc-main{display:grid;gap:14px;min-width:0}.micro-app-claude-code .cc-title{margin:0;font-size:18px;overflow-wrap:anywhere}.micro-app-claude-code .cc-muted{color:var(--muted);font-size:13px}.micro-app-claude-code .cc-empty{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:24px;display:grid;gap:8px}.micro-app-claude-code .cc-empty h2{margin:0;font-size:18px}.micro-app-claude-code .cc-empty p{margin:0;overflow-wrap:anywhere}.micro-app-claude-code .cc-error{border:1px solid var(--status-error-text);border-radius:var(--radius);background:var(--status-error-bg);color:var(--status-error-text);padding:8px 10px;font-size:13px;overflow-wrap:anywhere}.micro-app-claude-code .cc-conversations{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:10px;display:grid;gap:8px;min-width:0}.micro-app-claude-code .cc-conversations-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-claude-code .cc-conversations h2{margin:0;font-size:14px}.micro-app-claude-code .cc-conversations ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:60vh;overflow-y:auto}.micro-app-claude-code button.cc-conversation{display:grid;gap:2px;width:100%;min-width:0;text-align:left;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);padding:8px;cursor:pointer;font:inherit}.micro-app-claude-code button.cc-conversation:hover{background:var(--surface-muted)}.micro-app-claude-code button.cc-conversation.active{border-color:var(--accent);background:var(--accent-soft)}.micro-app-claude-code .cc-conversation-title{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-claude-code .cc-conversation-meta{color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}@media(max-width:760px){.micro-app-claude-code .cc-layout{grid-template-columns:minmax(0,1fr)}.micro-app-claude-code .cc-conversations ul{max-height:30vh}}.micro-app-claude-code .cc-turn{display:grid;gap:8px;min-width:0}.micro-app-claude-code .cc-prompt,.micro-app-claude-code .cc-answer{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:grid;gap:6px;min-width:0}.micro-app-claude-code .cc-prompt{background:var(--surface-muted)}.micro-app-claude-code .cc-answer{background:var(--panel)}.micro-app-claude-code .cc-prompt-head,.micro-app-claude-code .cc-answer-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.micro-app-claude-code .cc-prompt-text,.micro-app-claude-code .cc-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.micro-app-claude-code .cc-transcript{display:grid;gap:8px;min-width:0}.micro-app-claude-code .cc-caret{display:inline-block;width:7px;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--accent);animation:cc-blink 1s steps(2,start) infinite}@keyframes cc-blink{to{visibility:hidden}}.micro-app-claude-code .cc-output{margin:0;padding:8px;border-radius:var(--radius);background:var(--surface-muted);border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto}.micro-app-claude-code .cc-label{color:var(--muted);font-size:12px;font-weight:700}.micro-app-claude-code .cc-note{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.micro-app-claude-code .cc-tool{border:1px solid var(--border);border-radius:var(--radius);min-width:0}.micro-app-claude-code button.cc-tool-head{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:6px 8px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit;font-size:13px}.micro-app-claude-code .cc-tool-chevron{color:var(--muted);flex:none}.micro-app-claude-code .cc-tool-name{font-weight:700;flex:none}.micro-app-claude-code .cc-tool-summary{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.micro-app-claude-code .cc-tool-body{display:grid;gap:6px;padding:0 8px 8px}.micro-app-claude-code .cc-tool-result{display:grid;gap:4px;min-width:0}.micro-app-claude-code .cc-tool-result.is-error .cc-output{border-color:var(--danger)}.micro-app-claude-code .cc-result-line{font-size:13px;color:var(--muted);font-weight:650}.micro-app-claude-code .cc-result-line.is-error{color:var(--status-error-text)}.micro-app-claude-code button.cc-link{justify-self:start;border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer;font:inherit;font-size:13px;text-decoration:underline}.micro-app-claude-code button.cc-link:disabled{color:var(--muted);cursor:default}.micro-app-claude-code .cc-badge{display:inline-flex;align-items:center;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;border:1px solid var(--border);color:var(--muted)}.micro-app-claude-code .cc-badge-ok{border-color:transparent;background:var(--status-ok-bg);color:var(--status-ok-text)}.micro-app-claude-code .cc-badge-error{border-color:transparent;background:var(--status-error-bg);color:var(--status-error-text)}.micro-app-claude-code .cc-badge-live{border-color:var(--accent);color:var(--accent)}.micro-app-claude-code .cc-workflow-offers{display:grid;gap:8px;min-width:0}.micro-app-claude-code .cc-workflow-offer{display:grid;gap:8px;min-width:0;padding:10px 12px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.micro-app-claude-code .cc-workflow-offer-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.micro-app-claude-code .cc-workflow-offer-name{font-weight:700;overflow-wrap:anywhere}.micro-app-claude-code .cc-workflow-offer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.micro-app-claude-code .cc-workflow-saved{padding:6px 8px;border-radius:var(--radius);background:var(--status-ok-bg);color:var(--status-ok-text);overflow-wrap:anywhere}.micro-app-claude-code .cc-composer{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:12px;display:grid;gap:8px;min-width:0}.micro-app-claude-code .cc-prompt-input{width:100%;min-width:0;min-height:96px;resize:vertical;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:8px 10px;font:inherit;line-height:1.45}.micro-app-claude-code .cc-composer-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}.micro-app-claude-code .cc-mode{display:grid;gap:4px;min-width:0}.micro-app-claude-code .cc-mode select{min-height:36px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--text);padding:0 8px;font:inherit}.micro-app-claude-code .cc-composer-actions{display:flex;gap:8px}.micro-app-claude-code .cc-hint{margin:0;color:var(--muted);font-size:12px}.micro-app-claude-code .cc-warning{margin:0;border:1px solid var(--status-warning-text);border-radius:var(--radius);background:var(--status-warning-bg);color:var(--status-warning-text);padding:8px 10px;font-size:13px;line-height:1.45}.micro-app-claude-code .cc-build-workflow{display:flex;align-items:center;gap:6px;min-height:36px;font-size:13px;cursor:pointer}.micro-app-lighting body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-lighting *{box-sizing:border-box}.micro-app-lighting{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-lighting .container{padding:16px}.micro-app-lighting .lighting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.micro-app-lighting .lighting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.micro-app-lighting .lighting-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.micro-app-lighting .lighting-card-unreachable{opacity:.6}.micro-app-lighting .lighting-card-head{display:flex;align-items:center;gap:10px}.micro-app-lighting .lighting-card-title{flex:1;min-width:0}.micro-app-lighting .lighting-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.micro-app-lighting .lighting-provider{color:var(--muted);font-size:12px}.micro-app-lighting .lighting-swatch{width:14px;height:14px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border);flex:none}.micro-app-lighting .lighting-dimmer{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.micro-app-lighting .lighting-dimmer input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.micro-app-lighting .lighting-dimmer-value{min-width:3ch;text-align:right}.micro-app-lighting .lighting-note{margin:0;color:var(--muted);font-size:12px}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:4px;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:inherit;filter:none;cursor:pointer}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle:disabled{cursor:default;opacity:.5}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle:focus-visible .lighting-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.micro-app-lighting .lighting-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}.micro-app-lighting .lighting-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle-on{color:var(--text)}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-track{background:var(--accent);border-color:var(--accent)}.micro-app-lighting button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-thumb{transform:translate(20px);background:var(--surface)}.micro-app-lighting .lighting-toggle-label{min-width:2.5ch}.micro-app-lighting .lighting-room{margin-bottom:20px}.micro-app-lighting .lighting-room-name{margin:0 0 10px;font-size:16px}.micro-app-lighting .lighting-card-compact{padding:10px;gap:8px}.micro-app-lighting .lighting-card-compact .lighting-card-title h2{font-size:14px}.micro-app-lighting .lighting-grid-compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.micro-app-lighting .lighting-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.micro-app-lighting .lighting-setting{display:flex;flex-direction:column;gap:6px}.micro-app-lighting .lighting-setting select{padding:6px 8px}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-danger{color:var(--danger)}.micro-app-lighting .lighting-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-lighting .lighting-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-lighting .lighting-modal{width:min(640px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.micro-app-lighting .lighting-modal-head,.micro-app-lighting .lighting-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-lighting .lighting-modal-head h2,.micro-app-lighting .lighting-modal-foot h2{margin:0;font-size:17px}.micro-app-lighting .lighting-modal-foot{justify-content:flex-end}.micro-app-lighting .lighting-modal-section h3{margin:0 0 8px;font-size:14px}.micro-app-lighting .lighting-room-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.micro-app-lighting .lighting-room-row{display:flex;align-items:center;gap:8px}.micro-app-lighting .lighting-room-row .lighting-input:first-child{flex:1}.micro-app-lighting .lighting-room-light{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-lighting .lighting-settings{display:flex;flex-direction:column;gap:14px}.micro-app-lighting .lighting-widget-touch{height:100%;overflow:hidden}.micro-app-lighting .lighting-touch{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;min-width:112px;padding:18px 14px 16px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.micro-app-lighting .lighting-touch-loads{flex:1;min-height:0;width:100%;display:flex;gap:12px}.micro-app-lighting .lighting-touch-load{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.micro-app-lighting .lighting-touch-load.lighting-touch-unreachable{opacity:.5}.micro-app-lighting .lighting-touch-load-name{max-width:100%;font-size:17px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-lighting .lighting-touch-head{width:100%;text-align:center}.micro-app-lighting .lighting-touch-head h2{margin:0;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-lighting .lighting-touch-head span{display:block;margin-top:4px;font-size:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-lighting .lighting-touch-bar{position:relative;flex:1;width:62%;max-width:116px;min-height:120px;border-radius:20px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.micro-app-lighting .lighting-touch-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.micro-app-lighting .lighting-touch-fill{position:absolute;left:0;right:0;bottom:0;background:var(--text);transition:height .2s ease}.micro-app-lighting .lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.micro-app-lighting .lighting-touch-level{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:28px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.micro-app-lighting button.lighting-touch-power.lighting-touch-power.lighting-touch-power{display:inline-flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--muted);filter:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.micro-app-lighting button.lighting-touch-power.lighting-touch-power.lighting-touch-power:disabled{cursor:default}.micro-app-lighting .lighting-touch-load.lighting-touch-on button.lighting-touch-power.lighting-touch-power.lighting-touch-power{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.micro-app-lighting .lighting-widget-touch-room{display:flex;flex-direction:column;gap:10px}.micro-app-lighting .lighting-touch-room-name{margin:0 4px;font-size:26px;font-weight:650}.micro-app-lighting .lighting-touch-row{flex:1;min-height:0;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.micro-app-lighting .lighting-touch-row .lighting-touch{flex:1 1 0}.micro-app-lighting .lighting-load{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.micro-app-lighting .lighting-load-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px}.micro-app-lighting .lighting-room-cards{display:flex;flex-wrap:wrap;gap:8px}.micro-app-lighting .lighting-room-card-cell{flex:1 1 0;display:flex}.micro-app-lighting .lighting-room-card-cell>.lighting-card{flex:1}.micro-app-lighting .lighting-setting-inline{flex-direction:row;align-items:center;gap:8px}.micro-app-lighting .lighting-fixture{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.micro-app-lighting .lighting-fixture-mode{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.micro-app-lighting .lighting-fixture-loads{margin:0 0 0 18px}.micro-app-lighting .lighting-name-input{flex:1}.micro-app-lighting .lighting-room-row .lighting-room-select{flex:none;width:42%}.micro-app-lighting .lighting-room-row .lighting-type-select{flex:none;width:30%}.micro-app-lighting .lighting-room-row .lighting-type-select+.lighting-room-select{width:30%}.micro-app-lighting .lighting-hidden{opacity:.85}.micro-app-lighting .lighting-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-hidden-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-hidden-item .lighting-note{font-size:12px}.micro-app-lighting .lighting-card-controls{display:flex;align-items:center;gap:10px}.micro-app-lighting .lighting-card-controls .lighting-dimmer{flex:1;min-width:0}.micro-app-lighting .lighting-card-openable{cursor:pointer}.micro-app-lighting .lighting-card-openable:hover{border-color:var(--accent)}.micro-app-lighting button.lighting-card-open.lighting-card-open.lighting-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.micro-app-lighting button.lighting-card-open.lighting-card-open.lighting-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-lighting .lighting-field{display:flex;flex-direction:column;gap:6px}.micro-app-lighting .lighting-field>span:first-child{font-weight:600}.micro-app-lighting .lighting-widget-mini{height:100%}.micro-app-lighting .lighting-mini{position:relative;display:flex;align-items:center;height:100%;min-height:56px;padding:0 14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--tile-radius, 14px);background:var(--surface-muted);color:var(--text);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.micro-app-lighting .lighting-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-lighting .lighting-mini-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--accent);opacity:.28;transition:width .2s ease;pointer-events:none}.micro-app-lighting .lighting-mini-dragging .lighting-mini-fill{transition:none}.micro-app-lighting .lighting-mini-on{border-color:var(--accent);background:var(--accent-soft)}.micro-app-lighting .lighting-mini-icon{position:relative;display:inline-flex;flex:0 0 auto;margin-right:12px;color:var(--muted)}.micro-app-lighting .lighting-mini-on .lighting-mini-icon{color:var(--accent)}.micro-app-lighting .lighting-mini-words{position:relative;display:flex;flex-direction:column;min-width:0}.micro-app-lighting .lighting-mini-words strong,.micro-app-lighting .lighting-mini-words span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.micro-app-lighting .lighting-mini-words strong{font-size:.95rem}.micro-app-lighting .lighting-mini-words span{font-size:.8rem;color:var(--muted)}.micro-app-lighting .lighting-mini-unreachable{cursor:default;opacity:.6}.micro-app-lighting .lighting-mini-touch{padding:0 20px}.micro-app-lighting .lighting-mini-touch .lighting-mini-words strong{font-size:1.35rem}.micro-app-lighting .lighting-mini-touch .lighting-mini-words span{font-size:1.05rem}.micro-app-lighting .lighting-scene-list{display:flex;flex-wrap:wrap;gap:10px}.micro-app-lighting .lighting-scene{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:140px;padding:10px 14px;text-align:left}.micro-app-lighting .lighting-scene strong{font-size:.95rem}.micro-app-lighting .lighting-scene-tile{width:100%;font:inherit;text-align:left}.micro-app-lighting .lighting-grid>.lighting-room-lights{grid-column:1/-1}.micro-app-lighting .lighting-room-cards>.lighting-room-card-cell-whole{flex-basis:100%}.micro-app-lighting .lighting-card.lighting-room-lights{background:var(--accent-soft);border:2px solid var(--accent)}.micro-app-lighting .lighting-card.lighting-room-lights.lighting-room-lights-on{box-shadow:0 0 0 3px var(--accent-soft)}.micro-app-lighting .lighting-room-lights-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--surface)}.micro-app-lighting .lighting-room-lights .lighting-card-title h2{letter-spacing:.01em}.micro-app-lighting .lighting-card.lighting-room-lights .lighting-card-controls{max-width:560px}.micro-app-lighting .lighting-card.lighting-room-lights.lighting-room-lights-silent,.micro-app-lighting .lighting-touch-room-lights.lighting-room-lights-silent{border-style:dashed}.micro-app-lighting .lighting-card.lighting-room-lights.lighting-room-lights-silent .lighting-room-lights-icon,.micro-app-lighting .lighting-touch-room-lights.lighting-room-lights-silent .lighting-room-lights-icon{background:var(--surface-muted);color:var(--muted)}.micro-app-lighting .lighting-touch-room-lights{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex:none;min-width:0;padding:12px 16px;border-radius:22px;background:var(--accent-soft);border:2px solid var(--accent);user-select:none;-webkit-user-select:none}.micro-app-lighting .lighting-touch-room-lights .lighting-room-lights-icon{width:48px;height:48px}.micro-app-lighting .lighting-touch-room-lights .lighting-room-lights-icon svg{width:26px;height:26px}.micro-app-lighting .lighting-touch-room-lights.lighting-room-lights-on{box-shadow:0 0 0 4px var(--accent-soft)}.micro-app-lighting .lighting-touch-room-lights-head{flex:0 1 auto;min-width:0}.micro-app-lighting .lighting-touch-room-lights-head h2{margin:0;font-size:22px;font-weight:650;color:var(--text);white-space:nowrap}.micro-app-lighting .lighting-touch-room-lights-head span{display:block;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-lighting .lighting-touch-load.lighting-touch-load-across{flex:1 1 220px;flex-direction:row;align-items:center}.micro-app-lighting .lighting-touch-bar.lighting-touch-bar-across{flex:1 1 0;width:auto;max-width:none;min-width:0;min-height:0;height:58px;border-radius:18px;touch-action:none}.micro-app-lighting .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-fill{top:0;right:auto;transition:width .2s ease}.micro-app-lighting .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-level{top:50%;bottom:auto;transform:translateY(-50%);font-size:22px}.micro-app-lighting .lighting-touch-bar-across.lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.micro-app-lighting .lighting-room-entry{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.micro-app-lighting .lighting-room-entry .lighting-room-row{flex-wrap:wrap}.micro-app-lighting .lighting-room-entry .lighting-room-row .lighting-input:first-child{flex:1 1 160px}.micro-app-lighting .lighting-room-entry .lighting-room-actions{display:inline-flex;align-items:center;gap:8px;flex:none}.micro-app-lighting .lighting-room-control{display:flex;align-items:center;gap:8px;min-width:0}.micro-app-lighting .lighting-room-control .lighting-note{flex:none}.micro-app-lighting .lighting-room-control .lighting-room-control-select{flex:1;min-width:0}.micro-app-lighting .lighting-error,.micro-app-lighting .lighting-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-lighting .lighting-error{color:var(--danger);background:var(--danger-soft)}.micro-app-lighting .lighting-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-lighting .lighting-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-lighting .lighting-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-lighting .lighting-empty p{margin:0}.micro-app-lighting button.lighting-btn.lighting-btn.lighting-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-weight:600;cursor:pointer}.micro-app-project-tracking *{box-sizing:border-box}.micro-app-project-tracking{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.micro-app-project-tracking .pt-bar{display:flex;align-items:center;gap:12px;padding:12px 4px}.micro-app-project-tracking .pt-title{font-size:18px;margin:0;flex:1;font-weight:600}.micro-app-project-tracking .pt-muted{color:var(--muted)}.micro-app-project-tracking .pt-btn{font:inherit;border-radius:8px;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);padding:6px 12px;cursor:pointer}.micro-app-project-tracking .pt-btn:hover{border-color:var(--accent)}.micro-app-project-tracking .pt-btn.primary{background:var(--accent);color:#04122b;border-color:transparent;font-weight:600}.micro-app-project-tracking .pt-btn.link{background:none;border:none;color:var(--accent);padding:2px 5px}.micro-app-project-tracking .pt-btn.danger:hover{border-color:var(--err);color:var(--err)}.micro-app-project-tracking .pt-input,.micro-app-project-tracking .pt-textarea{font:inherit;width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.micro-app-project-tracking .pt-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;align-items:start;padding-bottom:12px}.micro-app-project-tracking .pt-stage{background:var(--panel);border:1px solid var(--border);border-radius:12px;min-width:0;display:flex;flex-direction:column}.micro-app-project-tracking .pt-stage.drop{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.micro-app-project-tracking .pt-stage-head{display:flex;align-items:center;gap:6px;padding:12px 14px;border-bottom:1px solid var(--border)}.micro-app-project-tracking .pt-stage-name{font-weight:600;flex:1}.micro-app-project-tracking .pt-count{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.micro-app-project-tracking .pt-cards{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:40px}.micro-app-project-tracking .pt-card{background:var(--panel-raised);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer}.micro-app-project-tracking .pt-card:hover{border-color:var(--accent)}.micro-app-project-tracking .pt-card.dragging{opacity:.55;transform:rotate(-1.4deg) scale(1.02);box-shadow:0 12px 28px #00000047;border-color:var(--accent);cursor:grabbing}.micro-app-project-tracking .pt-card[draggable=true]{cursor:grab}.micro-app-project-tracking .pt-stage.drop .pt-cards{background:var(--accent-soft, rgba(27, 214, 177, .08));border-radius:8px}@media(prefers-reduced-motion:reduce){.micro-app-project-tracking .pt-card{transition:none!important}.micro-app-project-tracking .pt-card.dragging{transform:none}}.micro-app-project-tracking .pt-card-title{font-weight:600}.micro-app-project-tracking .pt-card-line{color:var(--muted);font-size:12px}.micro-app-project-tracking .pt-empty{color:var(--muted);font-size:12px;padding:4px 2px}.micro-app-project-tracking .pt-stage-foot{padding:8px 10px 12px;border-top:1px solid var(--border)}.micro-app-project-tracking .pt-error{margin:8px 0;padding:10px 14px;border:1px solid var(--err);border-radius:10px;color:var(--err)}.micro-app-project-tracking .pt-label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.micro-app-project-tracking .pt-file{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.micro-app-project-tracking .pt-chips{display:flex;flex-wrap:wrap;gap:6px}.micro-app-project-tracking .pt-chips:empty{display:none}.micro-app-project-tracking .pt-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted, var(--panel));color:var(--text);font:inherit;font-size:12px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.micro-app-project-tracking .pt-chip:hover,.micro-app-project-tracking .pt-chip:focus-visible{color:var(--err);border-color:var(--err);text-decoration:line-through;outline:none}.micro-app-project-tracking .pt-chip-entry{display:flex;gap:8px;align-items:center}.micro-app-project-tracking .pt-chip-entry .pt-input{flex:1}.micro-app-project-tracking .pt-chip-role{border-color:var(--accent)}.micro-app-project-tracking .pt-hint{color:var(--muted);font-size:11px;font-weight:400}.micro-app-project-tracking .pt-saved{color:var(--ok, #1bd6b1);font-size:12px;font-weight:700}.micro-app-project-tracking .pt-error-foot{flex:1 1 auto;min-width:0;margin:0;color:var(--err);font-size:12px;overflow-wrap:anywhere}.micro-app-project-tracking .pt-icon-btn{display:inline-grid;place-items:center;padding:8px 10px;line-height:1}.micro-app-project-tracking .pt-settings-add{display:flex;gap:8px;align-items:center}.micro-app-project-tracking .pt-settings-add .pt-input{flex:1}.micro-app-project-tracking .pt-settings-section{display:flex;flex-direction:column;gap:10px}.micro-app-project-tracking .pt-settings-title{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.micro-app-project-tracking .pt-stage-rows{display:flex;flex-direction:column;gap:6px}.micro-app-project-tracking .pt-stage-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.micro-app-project-tracking .pt-stage-row.dragging{opacity:.5;border-color:var(--accent)}.micro-app-project-tracking .pt-stage-row-name{flex:1;min-width:0;overflow-wrap:anywhere}.micro-app-project-tracking .pt-grip{display:inline-grid;place-items:center;color:var(--muted);cursor:grab}.micro-app-project-tracking .pt-stage-row:active .pt-grip{cursor:grabbing}.micro-app-project-tracking .pt-person{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.micro-app-project-tracking .pt-person-head{display:flex;align-items:center;gap:8px}.micro-app-project-tracking .pt-person-rows{display:flex;flex-direction:column;gap:4px;overflow-x:auto}.micro-app-project-tracking .pt-person-row{display:grid;grid-template-columns:minmax(120px,1.4fr) repeat(4,minmax(58px,1fr));gap:8px;align-items:center}.micro-app-project-tracking .pt-person-head-row{color:var(--muted);font-size:11px}.micro-app-project-tracking .pt-person-scope{overflow-wrap:anywhere}.micro-app-project-tracking .pt-check{display:grid;place-items:center}@media(prefers-reduced-motion:reduce){.micro-app-project-tracking .pt-stage-row{transition:none!important}}.micro-app-project-tracking .pt-file-name{flex:1;overflow-wrap:anywhere}.micro-app-project-tracking .pt-picker{position:relative}.micro-app-project-tracking .pt-picker-list{position:absolute;z-index:5;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;margin:0;padding:4px;list-style:none;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:0 12px 28px #00000047}.micro-app-project-tracking .pt-picker-note{padding:8px 10px;color:var(--muted);font-size:12px}.micro-app-project-tracking .pt-picker-note.pt-error{margin:4px 0 0;padding:8px 10px}.micro-app-project-tracking .pt-picker-person{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name badge" "meta badge";align-items:center;column-gap:8px;width:100%;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.micro-app-project-tracking .pt-picker-person.highlighted,.micro-app-project-tracking .pt-picker-person:hover,.micro-app-project-tracking .pt-picker-person:focus-visible{background:var(--accent-soft, rgba(106, 164, 255, .12));outline:none}.micro-app-project-tracking .pt-picker-name{grid-area:name;font-size:13px;font-weight:650;overflow-wrap:anywhere}.micro-app-project-tracking .pt-picker-meta{grid-area:meta;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.micro-app-project-tracking .pt-picker-person .pt-pill{grid-area:badge}.micro-app-project-tracking .pt-chip.pt-chip-unlinked{border-style:dashed;color:var(--muted)}.micro-app-project-tracking .pt-chip.pt-chip-static{cursor:default}.micro-app-project-tracking .pt-chip.pt-chip-static:hover{color:var(--text);border-color:var(--border);text-decoration:none}.micro-app-project-tracking .pt-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;font-size:13px}.micro-app-project-tracking .pt-facts dt{color:var(--muted)}.micro-app-project-tracking .pt-facts dd{margin:0;overflow-wrap:anywhere}.micro-app-project-tracking .pt-lines{margin:0;padding-left:18px;color:var(--text);font-size:13px;overflow-wrap:anywhere}.micro-app-project-tracking .pt-notes{margin:0;color:var(--text);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.micro-app-project-tracking .pt-row{display:flex;flex-wrap:wrap;gap:12px}.micro-app-project-tracking .pt-row>.pt-label{flex:1 1 180px;min-width:0}.micro-app-project-tracking .pt-card-photo{display:block;width:100%;height:108px;object-fit:cover;border-radius:8px;margin:-2px 0 8px;background:var(--bg)}.micro-app-project-tracking .pt-card-marks{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.micro-app-project-tracking .pt-card-marks:empty{display:none}.micro-app-project-tracking .pt-pill{display:inline-flex;align-items:center;padding:1px 8px;border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--muted)}.micro-app-project-tracking .pt-priority-low,.micro-app-project-tracking .pt-priority-medium,.micro-app-project-tracking .pt-priority-high,.micro-app-project-tracking .pt-priority-urgent{color:#fff;border-color:transparent;font-weight:600}.micro-app-project-tracking .pt-priority-low{background:#6b7280}.micro-app-project-tracking .pt-priority-medium{background:#2f7fd1}.micro-app-project-tracking .pt-priority-high{background:#d98016}.micro-app-project-tracking .pt-priority-urgent{background:#d13c37}.micro-app-project-tracking .pt-pill-archived{color:var(--muted);border-style:dashed}.micro-app-project-tracking .pt-card.archived{opacity:.62;border-style:dashed}.micro-app-project-tracking .pt-photo-edit{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.micro-app-project-tracking .pt-photo-preview{max-width:100%;max-height:180px;border-radius:8px;border:1px solid var(--border)}.micro-app-project-tracking .pt-boards{display:flex;align-items:center;gap:6px}.micro-app-project-tracking .pt-boards .pt-input{width:auto;min-width:160px}.micro-app-project-tracking .pt-filter{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.micro-app-bug-feature-requests body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--panel-raised: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--ok: #2fbf71;--warn: #d3870f;--err: #d64545;--border: #d8e0ef;--input-bg: #ffffff}.micro-app-bug-feature-requests *{box-sizing:border-box}.micro-app-bug-feature-requests{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-bug-feature-requests .bfr-page{display:block;padding:4px 0 24px}.micro-app-bug-feature-requests .bfr-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;min-width:0}.micro-app-bug-feature-requests .bfr-panel h2{margin:0 0 4px;font-size:16px}.micro-app-bug-feature-requests .bfr-muted{color:var(--muted)}.micro-app-bug-feature-requests .bfr-error{margin:0 0 12px;padding:10px 12px;border:1px solid var(--err);border-radius:8px;color:var(--err)}.micro-app-bug-feature-requests .bfr-saved{margin:0 0 12px;padding:10px 12px;border:1px solid var(--ok);border-radius:8px;color:var(--ok)}.micro-app-bug-feature-requests .bfr-sent{margin-top:16px}.micro-app-bug-feature-requests .bfr-received h2,.micro-app-bug-feature-requests .bfr-confirmation h2{margin:0 0 6px}.micro-app-bug-feature-requests .bfr-received p,.micro-app-bug-feature-requests .bfr-confirmation p{margin:0 0 10px}.micro-app-bug-feature-requests .bfr-item-date{margin-left:auto;color:var(--muted);font-size:12px}.micro-app-bug-feature-requests .bfr-unseen{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.micro-app-bug-feature-requests .bfr-check{display:flex;align-items:center;gap:8px;margin:0 0 12px}.micro-app-bug-feature-requests .bfr-public-link{color:var(--text);font-weight:600;overflow-wrap:anywhere}.micro-app-bug-feature-requests .bfr-btn{appearance:none;border:1px solid var(--border);background:var(--panel-raised);color:var(--text);border-radius:8px;padding:7px 12px;font:inherit;cursor:pointer}.micro-app-bug-feature-requests .bfr-btn:hover{border-color:var(--accent)}.micro-app-bug-feature-requests .bfr-btn:disabled{opacity:.55;cursor:default}.micro-app-bug-feature-requests .bfr-btn:disabled:hover{border-color:var(--border)}.micro-app-bug-feature-requests .bfr-btn-primary{background:var(--accent);border-color:transparent;color:#04122b;font-weight:600}.micro-app-bug-feature-requests body[data-theme=light] .bfr-btn-primary{color:#fff}.micro-app-bug-feature-requests .bfr-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:0}.micro-app-bug-feature-requests .bfr-field{display:block;margin:0 0 12px}.micro-app-bug-feature-requests .bfr-field>span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.micro-app-bug-feature-requests .bfr-field input[type=text],.micro-app-bug-feature-requests .bfr-field input[type=email],.micro-app-bug-feature-requests .bfr-field select,.micro-app-bug-feature-requests .bfr-field textarea{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}.micro-app-bug-feature-requests .bfr-field textarea{resize:vertical}.micro-app-bug-feature-requests .bfr-hint{margin:4px 0 0;color:var(--muted);font-size:12px}.micro-app-bug-feature-requests .bfr-kinds{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.micro-app-bug-feature-requests .bfr-kind{border:1px solid var(--border);background:var(--panel-raised);color:var(--text);border-radius:10px;padding:10px;font:inherit;cursor:pointer;text-align:left}.micro-app-bug-feature-requests .bfr-kind strong{display:block}.micro-app-bug-feature-requests .bfr-kind small{color:var(--muted)}.micro-app-bug-feature-requests .bfr-kind[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.micro-app-bug-feature-requests .bfr-list{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}.micro-app-bug-feature-requests .bfr-item{border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--panel-raised)}.micro-app-bug-feature-requests .bfr-item-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.micro-app-bug-feature-requests .bfr-item-title{font-weight:600;min-width:0;overflow-wrap:anywhere}.micro-app-bug-feature-requests .bfr-tag{border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:12px;color:var(--muted);white-space:nowrap}.micro-app-bug-feature-requests .bfr-tag-bug{border-color:var(--err);color:var(--err)}.micro-app-bug-feature-requests .bfr-tag-feature,.micro-app-bug-feature-requests .bfr-tag-project{border-color:var(--accent);color:var(--accent)}.micro-app-bug-feature-requests .bfr-tag-urgent,.micro-app-bug-feature-requests .bfr-tag-high{border-color:var(--warn);color:var(--warn)}.micro-app-bug-feature-requests .bfr-item-where{margin:6px 0 0;color:var(--muted);font-size:13px}.micro-app-bug-feature-requests .bfr-item-problem{margin:6px 0 0;color:var(--warn);font-size:13px}.micro-app-bug-feature-requests .bfr-item-notes{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.micro-app-bug-feature-requests .bfr-item-links{margin:8px 0 0;padding-left:18px;color:var(--muted);overflow-wrap:anywhere}.micro-app-bug-feature-requests .bfr-modal-backdrop{position:fixed;inset:0;background:#02061499;display:grid;place-items:center;padding:16px;z-index:40}.micro-app-bug-feature-requests .bfr-modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;width:min(100%,640px);max-height:86vh;overflow:auto}.micro-app-bug-feature-requests .bfr-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.micro-app-bug-feature-requests .bfr-modal-head h2{margin:0;font-size:17px}.micro-app-bug-feature-requests .bfr-destination{border:1px solid var(--border);border-radius:10px;padding:12px;margin-top:12px}.micro-app-bug-feature-requests .bfr-destination h3{margin:0 0 2px;font-size:14px}.micro-app-bug-feature-requests .bfr-destination-choice{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:10px}@media(max-width:620px){.micro-app-bug-feature-requests .bfr-destination-choice{grid-template-columns:minmax(0,1fr)}}.micro-app-bug-feature-requests .bfr-destination-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.micro-app-media body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-media *{box-sizing:border-box}.micro-app-media{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-media .container{padding:16px}.micro-app-media .media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.micro-app-media .media-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.micro-app-media .media-card-playing{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.micro-app-media .media-card-unreachable{opacity:.6}.micro-app-media .media-card-head{display:flex;align-items:flex-start;gap:10px}.micro-app-media .media-card-title{flex:1;min-width:0}.micro-app-media .media-card-title h2{margin:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-card-meta{color:var(--muted);font-size:12px}.micro-app-media .media-state{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--border)}.micro-app-media .media-state-playing{color:var(--accent);border-color:var(--accent)}.micro-app-media .media-now-playing{display:flex;align-items:center;gap:10px;min-width:0}.micro-app-media .media-artwork{flex:none;width:56px;height:56px;border-radius:6px;object-fit:cover;background:var(--surface-muted)}.micro-app-media .media-now-playing-text{display:flex;flex-direction:column;min-width:0}.micro-app-media .media-now-playing-text strong,.micro-app-media .media-now-playing-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-now-playing-text strong{color:var(--text);font-size:14px}.micro-app-media .media-now-playing-text span{color:var(--muted);font-size:12px}.micro-app-media .media-note{margin:0;color:var(--muted);font-size:13px}.micro-app-media .media-transport{display:flex;align-items:center;gap:8px}.micro-app-media button.media-control.media-control.media-control{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.micro-app-media button.media-control.media-control.media-control:disabled{cursor:default;opacity:.5}.micro-app-media button.media-control.media-control.media-control.media-control-primary{width:44px;height:44px;background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-media button.media-control.media-control.media-control.media-mute-on{color:var(--danger)}.micro-app-media button.media-control.media-control.media-control.media-power{flex:none;width:30px;height:30px;color:var(--muted)}.micro-app-media button.media-control.media-control.media-control.media-power-on{color:var(--accent);border-color:var(--accent)}.micro-app-media button.media-control.media-control.media-control.media-art{flex:none;width:30px;height:30px;color:var(--muted)}.micro-app-media button.media-control.media-control.media-control.media-art-on{color:var(--accent);border-color:var(--accent)}.micro-app-media .media-power-pair{display:inline-flex;gap:6px}.micro-app-media button.media-control.media-control.media-control.media-power-worded{width:auto;padding:0 10px;gap:4px;border-radius:999px}.micro-app-media .media-power-word{font-size:12px;font-weight:600}.micro-app-media button.media-card-open.media-card-open.media-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.micro-app-media button.media-card-open.media-card-open.media-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-media .media-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-media .media-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-media .media-modal{width:min(600px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.micro-app-media .media-modal-head,.micro-app-media .media-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-media .media-modal-head h2,.micro-app-media .media-modal-foot h2{margin:0;font-size:17px}.micro-app-media .media-modal-foot{justify-content:flex-end}.micro-app-media .media-field{display:flex;flex-direction:column;gap:6px}.micro-app-media .media-field>span:first-child,.micro-app-media .media-field>legend{font-weight:600}.micro-app-media .media-fieldset{margin:0;padding:0;border:0;min-width:0}.micro-app-media .media-check{display:flex;align-items:center;gap:8px}.micro-app-media .media-route{display:grid;grid-template-columns:9em 1fr;align-items:center;gap:8px}.micro-app-media button.media-btn.media-btn.media-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;filter:none;cursor:pointer}.micro-app-media button.media-btn.media-btn.media-btn.media-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-media .media-state-standby{color:var(--muted);border-style:dashed}.micro-app-media .media-volume{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.micro-app-media .media-volume input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.micro-app-media .media-volume-value{min-width:4ch;text-align:right}.micro-app-media .media-card-compact{padding:10px;gap:8px}.micro-app-media .media-widget{height:100%;overflow:auto}.micro-app-media .media-settings{display:flex;flex-direction:column;gap:14px}.micro-app-media .media-setting{display:flex;flex-direction:column;gap:6px}.micro-app-media .media-setting select,.micro-app-media .media-setting input{padding:6px 8px}.micro-app-media .media-widget-touch{height:100%;overflow:hidden}.micro-app-media .media-touch{display:flex;flex-direction:column;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.micro-app-media .media-touch-unavailable{opacity:.6}.micro-app-media .media-touch-head{display:flex;align-items:flex-start;gap:14px}.micro-app-media .media-touch-head-text{flex:1;min-width:0}.micro-app-media .media-touch-head-text h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-touch-head-text span{display:block;margin-top:4px;font-size:17px;color:var(--muted)}.micro-app-media .media-touch-now{flex:1;min-height:0;display:flex;align-items:center;gap:14px}.micro-app-media .media-touch-artwork{flex:none;width:92px;height:92px;border-radius:12px;object-fit:cover;background:var(--surface-muted)}.micro-app-media .media-touch-text{min-width:0;display:flex;flex-direction:column;gap:4px}.micro-app-media .media-touch-text strong{font-size:30px;line-height:1.2;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.micro-app-media .media-touch-text span{font-size:20px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-touch-transport{display:flex;align-items:center;justify-content:center;gap:28px}.micro-app-media .media-touch-spacer{width:64px;height:64px}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:64px;height:64px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button:disabled{cursor:default;opacity:.5}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-button-primary{width:88px;height:88px;border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 0 0 5px var(--accent-soft)}.micro-app-media .media-touch-volume{display:flex;align-items:center;gap:12px}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-art{width:60px;height:60px;color:var(--muted)}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-art.media-art-on{color:var(--accent);border-color:var(--accent)}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded{width:auto;padding:0 16px;gap:6px;border-radius:999px}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded .media-power-word{font-size:19px}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-power{width:60px;height:60px;color:var(--muted)}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-on{color:var(--accent);border-color:var(--accent)}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute{width:56px;height:56px}.micro-app-media button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute-on{color:var(--danger);border-color:var(--danger)}.micro-app-media .media-touch-volume-bar{position:relative;flex:1;height:52px;border-radius:16px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.micro-app-media .media-touch-volume-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.micro-app-media .media-touch-volume-fill{position:absolute;top:0;bottom:0;left:0;background:var(--text);transition:width .2s ease}.micro-app-media .media-touch-volume-fill-muted{opacity:.35}.micro-app-media .media-touch-volume-bar-dragging .media-touch-volume-fill{transition:none}.micro-app-media .media-touch-volume-level{position:absolute;top:50%;left:16px;transform:translateY(-50%);font-size:24px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.micro-app-media .media-card-opens{cursor:pointer}.micro-app-media button.media-touch-open.media-touch-open.media-touch-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.micro-app-media button.media-touch-open.media-touch-open.media-touch-open:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.micro-app-media dialog.media-remote{width:min(560px,100% - 24px);max-width:none;max-height:calc(100% - 24px);margin:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);overflow:auto;box-shadow:0 24px 60px #00000059}.micro-app-media dialog.media-remote::backdrop{background:#00000080}.micro-app-media .media-remote-body{display:flex;flex-direction:column;gap:16px;padding:16px}.micro-app-media .media-remote-head{display:flex;align-items:center;gap:8px}.micro-app-media .media-remote-title{flex:1;min-width:0}.micro-app-media .media-remote-title h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-remote-title span{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-remote-said{color:var(--accent)}.micro-app-media .media-remote-keys{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px}.micro-app-media .media-remote-pad{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,64px);gap:6px}.micro-app-media .media-remote-key-up{grid-column:2;grid-row:1}.micro-app-media .media-remote-key-left{grid-column:1;grid-row:2}.micro-app-media .media-remote-key-select{grid-column:2;grid-row:2}.micro-app-media .media-remote-key-right{grid-column:3;grid-row:2}.micro-app-media .media-remote-key-down{grid-column:2;grid-row:3}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font:inherit;font-weight:700;filter:none;cursor:pointer;touch-action:manipulation}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key:active:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key:disabled{cursor:default;opacity:.5}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-select{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-media .media-remote-ok{font-size:17px;letter-spacing:.02em}.micro-app-media .media-remote-side{display:flex;flex-direction:column;gap:8px}.micro-app-media button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.micro-app-media button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.micro-app-media button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{justify-content:flex-start;gap:8px;width:116px;height:44px;padding:0 14px;border-radius:999px}.micro-app-media .media-remote-key-word{font-size:14px;font-weight:600}.micro-app-media .media-remote-apps{display:flex;flex-direction:column;gap:12px}.micro-app-media .media-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.micro-app-media .media-app-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}.micro-app-media .media-app-list h3{margin:0 0 2px;font-size:13px;font-weight:600;color:var(--muted)}.micro-app-media button.media-app.media-app.media-app{display:flex;align-items:center;justify-content:flex-start;min-width:0;min-height:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-align:left;filter:none;cursor:pointer;touch-action:manipulation}.micro-app-media button.media-app.media-app.media-app:hover:not(:disabled){border-color:var(--accent)}.micro-app-media button.media-app.media-app.media-app:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-media button.media-app.media-app.media-app:disabled{cursor:default;opacity:.6}.micro-app-media button.media-app.media-app.media-app.media-app-featured{align-items:flex-end;justify-content:center;min-height:76px;padding:12px 14px;background:var(--surface-muted);font-size:16px}.micro-app-media button.media-app.media-app.media-app.media-app-launching{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);opacity:1}.micro-app-media .media-app-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-media .media-remote-sources h3{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--muted)}.micro-app-media .media-sources{display:flex;flex-wrap:wrap;gap:6px}.micro-app-media button.media-app.media-app.media-app.media-source{gap:6px;padding:8px 12px;border-radius:999px}.micro-app-media button.media-app.media-app.media-app.media-source-current{background:var(--accent);border-color:var(--accent);color:var(--surface);opacity:1}.micro-app-media .media-source-mark{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}.micro-app-media .media-remote-tile{display:flex;flex-direction:column;gap:12px}.micro-app-media .media-remote-tile .media-remote-keys{gap:14px}.micro-app-media .media-remote-tile .media-remote-pad{grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px)}.micro-app-media .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.micro-app-media .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.micro-app-media .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{width:100px}.micro-app-media .media-remote-tile .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.micro-app-media .media-remote-tile button.media-app.media-app.media-app.media-app-featured{min-height:44px;font-size:14px}.micro-app-media button.media-btn.media-btn.media-btn.media-remote-all{align-self:stretch}.micro-app-media .media-remote-tile-touch{gap:18px}.micro-app-media .media-remote-tile-touch .media-remote-title h2{font-size:24px}.micro-app-media .media-remote-tile-touch .media-remote-pad{grid-template-columns:repeat(3,76px);grid-template-rows:repeat(3,76px);gap:8px}.micro-app-media .media-remote-tile-touch .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.micro-app-media .media-remote-tile-touch .media-remote-side button.media-remote-key.media-remote-key.media-remote-key{width:132px;height:58px}.micro-app-media .media-remote-tile-touch button.media-app.media-app.media-app.media-app-featured,.micro-app-media .media-remote-tile-touch button.media-app.media-app.media-app.media-source,.micro-app-media .media-remote-tile-touch button.media-btn.media-btn.media-btn.media-remote-all{min-height:64px;font-size:18px}@media(max-width:480px){.micro-app-media .media-remote-pad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px)}.micro-app-media .media-remote-side{flex-direction:row;flex-wrap:wrap;justify-content:center}}.micro-app-media .media-error,.micro-app-media .media-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-media .media-error{color:var(--danger);background:var(--danger-soft)}.micro-app-media .media-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-media .media-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-media .media-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-media .media-empty p{margin:0}.micro-app-presence body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-presence *{box-sizing:border-box}.micro-app-presence{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-presence .container{padding:16px}.micro-app-presence .presence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.micro-app-presence .presence-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.micro-app-presence .presence-card-occupied{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.micro-app-presence .presence-card-open{border-color:var(--warning)}.micro-app-presence .presence-card-unreachable{opacity:.6}.micro-app-presence .presence-card-openable{cursor:pointer}.micro-app-presence .presence-card-openable:hover{border-color:var(--accent)}.micro-app-presence .presence-card-head{display:flex;align-items:center;gap:10px}.micro-app-presence .presence-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border)}.micro-app-presence .presence-card-title{flex:1;min-width:0}.micro-app-presence .presence-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.micro-app-presence .presence-card-meta{display:block;color:var(--muted);font-size:12px}.micro-app-presence button.presence-card-open.presence-card-open.presence-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.micro-app-presence button.presence-card-open.presence-card-open.presence-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-presence .presence-card-state{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.micro-app-presence .presence-state{font-size:18px}.micro-app-presence .presence-since,.micro-app-presence .presence-card-foot{color:var(--muted);font-size:12px}.micro-app-presence .presence-card-foot{display:flex;gap:10px}.micro-app-presence .presence-battery-low{color:var(--danger)}.micro-app-presence .presence-tone-occupied{color:var(--accent)}.micro-app-presence .presence-icon.presence-tone-occupied{border-color:var(--accent);background:var(--accent-soft)}.micro-app-presence .presence-tone-open{color:var(--warning)}.micro-app-presence .presence-icon.presence-tone-open{border-color:var(--warning)}.micro-app-presence .presence-tone-quiet,.micro-app-presence .presence-tone-unknown{color:var(--muted)}.micro-app-presence .presence-note{margin:0;color:var(--muted);font-size:12px}.micro-app-presence .presence-room{margin-bottom:20px}.micro-app-presence .presence-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.micro-app-presence .presence-room-state{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.micro-app-presence .presence-card-compact{padding:10px;gap:6px}.micro-app-presence .presence-card-compact .presence-card-title h2{font-size:14px}.micro-app-presence .presence-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.micro-app-presence .presence-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.micro-app-presence .presence-widget-room-head{display:flex;align-items:center;gap:8px}.micro-app-presence .presence-widget-room-head h2{margin:0;font-size:15px}.micro-app-presence .presence-settings{display:flex;flex-direction:column;gap:14px}.micro-app-presence .presence-setting{display:flex;flex-direction:column;gap:6px}.micro-app-presence .presence-setting select,.micro-app-presence .presence-setting input{padding:6px 8px}.micro-app-presence .presence-setting-check{display:flex;align-items:center;gap:8px}.micro-app-presence .presence-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-presence .presence-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-presence .presence-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.micro-app-presence .presence-modal-head,.micro-app-presence .presence-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-presence .presence-modal-head h2,.micro-app-presence .presence-modal-foot h2{margin:0;font-size:17px}.micro-app-presence .presence-modal-foot{justify-content:flex-end}.micro-app-presence .presence-field{display:flex;flex-direction:column;gap:6px}.micro-app-presence .presence-field>span:first-child{font-weight:600}.micro-app-presence button.presence-btn.presence-btn.presence-btn.presence-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-presence .presence-hidden{opacity:.85}.micro-app-presence .presence-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.micro-app-presence .presence-widget-touch{height:100%;overflow:hidden}.micro-app-presence .presence-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-width:140px;padding:18px 14px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);text-align:center;user-select:none;-webkit-user-select:none}.micro-app-presence .presence-touch-occupied{border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.micro-app-presence .presence-touch-open{border-color:var(--warning)}.micro-app-presence .presence-touch-unknown{opacity:.7}.micro-app-presence .presence-touch-icon{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;border:2px solid currentColor}.micro-app-presence .presence-touch-name{margin:0;max-width:100%;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-presence .presence-touch-state{font-size:34px;font-weight:700;line-height:1.1}.micro-app-presence .presence-touch-since{font-size:19px;color:var(--muted)}.micro-app-presence .presence-touch-room{justify-content:flex-start;overflow:hidden}.micro-app-presence .presence-touch-room-state{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;justify-content:center}.micro-app-presence .presence-touch-contacts{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.micro-app-presence .presence-touch-contact{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:2px solid var(--border);font-size:19px;color:var(--muted)}.micro-app-presence .presence-touch-contact.presence-tone-open{color:var(--warning);border-color:var(--warning)}.micro-app-presence .presence-error,.micro-app-presence .presence-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-presence .presence-error{color:var(--danger);background:var(--danger-soft)}.micro-app-presence .presence-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-presence .presence-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-presence .presence-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-presence .presence-empty p{margin:0}.micro-app-presence button.presence-btn.presence-btn.presence-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-weight:600;cursor:pointer}.micro-app-climate body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-climate *{box-sizing:border-box}.micro-app-climate{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-climate .container{padding:16px}.micro-app-climate .climate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.micro-app-climate .climate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.micro-app-climate .climate-card-heating{border-color:var(--warning)}.micro-app-climate .climate-card-cooling{border-color:var(--accent)}.micro-app-climate .climate-card-unreachable{opacity:.6}.micro-app-climate .climate-card-openable{cursor:pointer}.micro-app-climate .climate-card-openable:hover{border-color:var(--accent)}.micro-app-climate .climate-card-head{display:flex;align-items:flex-start;gap:10px}.micro-app-climate .climate-card-title{flex:1;min-width:0}.micro-app-climate .climate-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.micro-app-climate .climate-card-meta{display:block;color:var(--muted);font-size:12px}.micro-app-climate button.climate-card-open.climate-card-open.climate-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.micro-app-climate button.climate-card-open.climate-card-open.climate-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-climate .climate-running{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid currentColor}.micro-app-climate .climate-running-heating{color:var(--warning)}.micro-app-climate .climate-running-cooling,.micro-app-climate .climate-running-fan{color:var(--accent)}.micro-app-climate .climate-reading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.micro-app-climate .climate-temperature{font-size:32px;font-weight:700;line-height:1}.micro-app-climate .climate-reading-detail{display:flex;flex-direction:column;color:var(--muted);font-size:12px}.micro-app-climate .climate-battery-low{color:var(--danger)}.micro-app-climate .climate-setpoint{display:flex;align-items:center;gap:10px}.micro-app-climate .climate-setpoint-value{flex:1;display:flex;flex-direction:column;align-items:center}.micro-app-climate .climate-setpoint-value strong{font-size:20px}.micro-app-climate .climate-setpoint-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.micro-app-climate button.climate-step.climate-step.climate-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.micro-app-climate button.climate-step.climate-step.climate-step:disabled{cursor:default;opacity:.45}.micro-app-climate .climate-modes{display:flex;flex-wrap:wrap;gap:6px}.micro-app-climate button.climate-mode.climate-mode.climate-mode{min-height:0;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:12px;font-weight:600;filter:none;cursor:pointer}.micro-app-climate button.climate-mode.climate-mode.climate-mode:disabled{cursor:default;opacity:.5}.micro-app-climate button.climate-mode.climate-mode.climate-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-climate .climate-note{margin:0;color:var(--muted);font-size:12px}.micro-app-climate .climate-room{margin-bottom:20px}.micro-app-climate .climate-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.micro-app-climate .climate-room-reading{font-size:13px;font-weight:600;color:var(--muted)}.micro-app-climate .climate-card-compact{padding:10px;gap:8px}.micro-app-climate .climate-card-compact .climate-card-title h2{font-size:14px}.micro-app-climate .climate-card-compact .climate-temperature{font-size:26px}.micro-app-climate .climate-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.micro-app-climate .climate-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.micro-app-climate .climate-widget-room-head{display:flex;align-items:center;gap:8px}.micro-app-climate .climate-widget-room-head h2{margin:0;font-size:15px}.micro-app-climate .climate-settings{display:flex;flex-direction:column;gap:14px}.micro-app-climate .climate-setting{display:flex;flex-direction:column;gap:6px}.micro-app-climate .climate-setting select,.micro-app-climate .climate-setting input{padding:6px 8px}.micro-app-climate .climate-setting-check{flex-direction:row;align-items:center;gap:8px}.micro-app-climate button.climate-btn.climate-btn.climate-btn.climate-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.micro-app-climate .climate-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-climate .climate-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-climate .climate-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.micro-app-climate .climate-modal-head,.micro-app-climate .climate-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-climate .climate-modal-head h2,.micro-app-climate .climate-modal-foot h2{margin:0;font-size:17px}.micro-app-climate .climate-modal-foot{justify-content:flex-end}.micro-app-climate .climate-switches{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px}.micro-app-climate .climate-field{display:flex;flex-direction:column;gap:6px}.micro-app-climate .climate-field>span:first-child{font-weight:600}.micro-app-climate button.climate-btn.climate-btn.climate-btn.climate-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-climate .climate-hidden{opacity:.85}.micro-app-climate .climate-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.micro-app-climate .climate-widget-touch{height:100%;overflow:hidden}.micro-app-climate .climate-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);user-select:none;-webkit-user-select:none;text-align:center}.micro-app-climate .climate-touch-heating{border-color:var(--warning)}.micro-app-climate .climate-touch-cooling{border-color:var(--accent)}.micro-app-climate .climate-touch-unreachable{opacity:.6}.micro-app-climate .climate-touch-head{width:100%}.micro-app-climate .climate-touch-head h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-climate .climate-touch-head span{display:block;margin-top:4px;font-size:18px;color:var(--muted)}.micro-app-climate .climate-touch-temperature{font-size:72px;font-weight:700;line-height:1;color:var(--text)}.micro-app-climate .climate-touch .climate-setpoint{width:100%;max-width:420px;gap:18px}.micro-app-climate .climate-touch .climate-setpoint-value strong{font-size:34px}.micro-app-climate .climate-touch .climate-setpoint-label{font-size:16px}.micro-app-climate button.climate-touch-step.climate-touch-step.climate-touch-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:76px;height:76px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.micro-app-climate button.climate-touch-step.climate-touch-step.climate-touch-step:disabled{cursor:default;opacity:.45}.micro-app-climate .climate-touch .climate-modes{justify-content:center;gap:10px}.micro-app-climate button.climate-touch-mode.climate-touch-mode.climate-touch-mode{min-height:0;min-width:96px;padding:14px 20px;border-radius:16px;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:19px;font-weight:650;filter:none;cursor:pointer}.micro-app-climate button.climate-touch-mode.climate-touch-mode.climate-touch-mode:disabled{cursor:default;opacity:.5}.micro-app-climate button.climate-touch-mode.climate-touch-mode.climate-touch-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-climate .climate-touch-room{justify-content:flex-start;overflow:auto}.micro-app-climate .climate-touch-room-thermostat{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.micro-app-climate .climate-touch-room-thermostat-name{font-size:19px;color:var(--muted)}.micro-app-climate .climate-error,.micro-app-climate .climate-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-climate .climate-error{color:var(--danger);background:var(--danger-soft)}.micro-app-climate .climate-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-climate .climate-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-climate .climate-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-climate .climate-empty p{margin:0}.micro-app-climate button.climate-btn.climate-btn.climate-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-weight:600;cursor:pointer}.micro-app-calendar body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-text: #ffffff;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05;--status-ok-bg: #d8f3e6;--status-ok-text: #0d5138}.micro-app-calendar *{box-sizing:border-box}.micro-app-calendar{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-calendar button.calendar-btn,.micro-app-calendar a.calendar-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;filter:none;cursor:pointer}.micro-app-calendar button.calendar-btn svg,.micro-app-calendar a.calendar-btn svg{flex:none;vertical-align:middle}.micro-app-calendar button.calendar-btn svg+span,.micro-app-calendar a.calendar-btn svg+span{margin-left:6px}.micro-app-calendar button.calendar-btn:hover:not(:disabled),.micro-app-calendar a.calendar-btn:hover:not(:disabled){border-color:var(--accent)}.micro-app-calendar button.calendar-btn:disabled,.micro-app-calendar a.calendar-btn:disabled{opacity:.55;cursor:default}.micro-app-calendar button.calendar-btn:focus-visible,.micro-app-calendar a.calendar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-calendar button.calendar-btn-primary,.micro-app-calendar a.calendar-btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.micro-app-calendar button.calendar-btn-primary:hover:not(:disabled),.micro-app-calendar a.calendar-btn-primary:hover:not(:disabled){border-color:var(--btn-primary-border);filter:brightness(1.08)}.micro-app-calendar button.calendar-btn-quiet{background:transparent;color:var(--muted);border-color:transparent}.micro-app-calendar button.calendar-btn-quiet:hover:not(:disabled){color:var(--text);border-color:var(--border)}.micro-app-calendar button.calendar-btn-icon{min-width:34px;padding:4px 8px}.micro-app-calendar .calendar-untitled{font-style:italic;opacity:.8}.micro-app-calendar .calendar-dialog{width:480px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);box-shadow:0 18px 42px #0000004d}.micro-app-calendar .calendar-dialog::backdrop{background:#00000080}.micro-app-calendar .calendar-dialog-inner{padding:16px}.micro-app-calendar .calendar-dialog-head{display:flex;align-items:flex-start;margin-bottom:14px}.micro-app-calendar .calendar-dialog-swatch{flex:none;width:14px;height:14px;margin:6px 10px 0 0;border-radius:4px}.micro-app-calendar .calendar-dialog-title{flex:1 1 auto;min-width:0;margin:0 8px 0 0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}.micro-app-calendar .calendar-details-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:10px 16px;margin:0}.micro-app-calendar .calendar-details-facts dt{padding-top:2px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.micro-app-calendar .calendar-details-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.micro-app-calendar .calendar-details-facts a{color:var(--accent)}.micro-app-calendar .calendar-details-relative,.micro-app-calendar .calendar-details-repeat{display:block;color:var(--muted);font-size:13px}.micro-app-calendar .calendar-details-relative{color:var(--accent);font-weight:600}.micro-app-calendar .calendar-details-notes{white-space:pre-wrap}.micro-app-calendar .calendar-details-calendar-swatch{display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:3px}.micro-app-calendar .calendar-details-links{display:flex;flex-wrap:wrap;margin-top:16px}.micro-app-calendar .calendar-details-links>*{margin:0 8px 8px 0}.micro-app-calendar .calendar-agenda{margin:0;padding:0;list-style:none}.micro-app-calendar .calendar-agenda-day{display:grid;grid-template-columns:50px minmax(0,1fr);grid-column-gap:6px;padding:8px 0;border-top:1px solid var(--border)}.micro-app-calendar .calendar-agenda-day:first-child{padding-top:0;border-top:0}.micro-app-calendar .calendar-agenda-date{display:flex;flex-direction:column;padding-top:6px;line-height:1.2}.micro-app-calendar .calendar-agenda-weekday,.micro-app-calendar .calendar-month-weekday,.micro-app-calendar .calendar-time-head-weekday{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.micro-app-calendar .calendar-agenda-monthday{font-size:14px;font-weight:700;white-space:nowrap}.micro-app-calendar .calendar-agenda-today .calendar-agenda-weekday{color:var(--accent)}.micro-app-calendar .calendar-agenda-events{margin:0;padding:0;list-style:none;min-width:0}.micro-app-calendar .calendar-agenda-item+.calendar-agenda-item{margin-top:2px}.micro-app-calendar button.calendar-agenda-event{display:block;width:100%;margin:0;padding:6px 8px;border:0;border-radius:var(--radius);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.micro-app-calendar button.calendar-agenda-event:hover{background:var(--accent-soft)}.micro-app-calendar button.calendar-agenda-event:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.micro-app-calendar .calendar-agenda-item-now button.calendar-agenda-event{background:var(--accent-soft)}.micro-app-calendar .calendar-agenda-item-ended{opacity:.6}.micro-app-calendar .calendar-agenda-row{display:grid;grid-template-columns:28px minmax(0,1fr);grid-column-gap:10px;align-items:start}.micro-app-calendar .calendar-agenda-line{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:8px;align-items:baseline}.micro-app-calendar .calendar-agenda-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:2px;border-radius:8px}.micro-app-calendar .calendar-agenda-text{display:block;min-width:0}.micro-app-calendar .calendar-agenda-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-weight:600;line-height:1.3}.micro-app-calendar .calendar-agenda-detail{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.micro-app-calendar .calendar-agenda-when{color:var(--muted);font-size:12px;white-space:nowrap}.micro-app-calendar .calendar-agenda-when-now{padding:1px 8px;border-radius:999px;background:var(--status-ok-bg);color:var(--status-ok-text);font-weight:700}.micro-app-calendar .calendar-agenda-empty{margin:0;padding:16px;color:var(--muted);text-align:center}.micro-app-calendar .calendar-month,.micro-app-calendar .calendar-time{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.micro-app-calendar .calendar-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}.micro-app-calendar .calendar-month-weekday{padding:6px 8px;font-size:12px;overflow:hidden;white-space:nowrap}.micro-app-calendar .calendar-month-body{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(6,minmax(0,1fr))}.micro-app-calendar .calendar-month-week{position:relative;min-height:0;border-top:1px solid var(--border)}.micro-app-calendar .calendar-month-week:first-child{border-top:0}.micro-app-calendar .calendar-month-days{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.micro-app-calendar .calendar-month-day{min-width:0;padding:2px 4px;border-left:1px solid var(--border);cursor:pointer}.micro-app-calendar .calendar-month-day:first-child{border-left:0}.micro-app-calendar .calendar-month-day:hover{background:var(--accent-soft)}.micro-app-calendar .calendar-month-day-outside{background:var(--surface-muted)}.micro-app-calendar .calendar-month-day-outside button.calendar-month-date{color:var(--muted)}.micro-app-calendar button.calendar-month-date{display:inline-flex;align-items:center;justify-content:center;min-width:24px;margin:2px 0 0;padding:0 6px;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.micro-app-calendar button.calendar-month-date:hover{background:var(--accent-soft)}.micro-app-calendar .calendar-month-day-today button.calendar-month-date{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.micro-app-calendar .calendar-month-lanes{position:absolute;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;overflow:hidden;pointer-events:none}.micro-app-calendar button.calendar-bar,.micro-app-calendar button.calendar-chip,.micro-app-calendar button.calendar-more{display:block;min-width:0;margin:1px 3px;padding:0 6px;border:0;border-radius:4px;font:inherit;font-size:12px;line-height:18px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;pointer-events:auto}.micro-app-calendar button.calendar-bar{font-weight:600}.micro-app-calendar button.calendar-bar:hover{filter:brightness(1.1)}.micro-app-calendar button.calendar-bar-before{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.micro-app-calendar button.calendar-bar-after{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.micro-app-calendar .calendar-bar-time{margin-right:4px;font-weight:700}.micro-app-calendar button.calendar-chip,.micro-app-calendar button.calendar-more{background:transparent;color:var(--text)}.micro-app-calendar button.calendar-chip:hover,.micro-app-calendar button.calendar-more:hover{background:var(--accent-soft)}.micro-app-calendar .calendar-chip-dot{display:inline-block;width:8px;height:8px;margin:0 5px 1px 0;border-radius:50%;vertical-align:middle}.micro-app-calendar .calendar-chip-time{margin-right:4px;color:var(--muted)}.micro-app-calendar button.calendar-more{color:var(--muted);font-weight:700}.micro-app-calendar .calendar-month-compact .calendar-month-weekday{padding:3px 2px;font-size:10px;text-align:center}.micro-app-calendar .calendar-month-compact .calendar-month-day{padding:1px 2px}.micro-app-calendar .calendar-month-compact button.calendar-month-date{min-width:20px;margin:1px 0 0;padding:0 4px;font-size:11px}.micro-app-calendar .calendar-month-compact button.calendar-bar,.micro-app-calendar .calendar-month-compact button.calendar-chip,.micro-app-calendar .calendar-month-compact button.calendar-more{margin:1px;padding:0 4px;font-size:11px;line-height:16px}.micro-app-calendar .calendar-month-compact .calendar-chip-time{display:none}.micro-app-calendar .calendar-month-large button.calendar-bar,.micro-app-calendar .calendar-month-large button.calendar-chip,.micro-app-calendar .calendar-month-large button.calendar-more{font-size:13px;line-height:20px}.micro-app-calendar .calendar-month-dotted .calendar-month-day{text-align:center}.micro-app-calendar .calendar-month-dots-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:2px}.micro-app-calendar .calendar-month-dot{width:6px;height:6px;margin:1px;border-radius:50%}.micro-app-calendar .calendar-month-dot-more{margin-left:2px;color:var(--muted);font-size:9px;line-height:8px}.micro-app-calendar .calendar-time-scroll{position:relative;flex:1 1 auto;min-height:0;overflow:auto}.micro-app-calendar .calendar-time-top{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--border)}.micro-app-calendar .calendar-time-heads{display:grid}.micro-app-calendar button.calendar-time-head{display:block;min-width:0;margin:0;padding:6px 2px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--text);font:inherit;text-align:center;cursor:pointer}.micro-app-calendar button.calendar-time-head:hover{background:var(--accent-soft)}.micro-app-calendar .calendar-time-head-weekday{display:block}.micro-app-calendar .calendar-time-head-date{display:inline-block;min-width:30px;border-radius:999px;font-size:18px;font-weight:700;line-height:30px}.micro-app-calendar .calendar-time-head-today .calendar-time-head-date{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.micro-app-calendar .calendar-time-allday{display:grid;padding:2px 0;border-top:1px solid var(--border)}.micro-app-calendar .calendar-time-allday-label{grid-column:1;align-self:start;padding:3px 6px;color:var(--muted);font-size:11px;text-align:right}.micro-app-calendar .calendar-time-body{position:relative;display:grid}.micro-app-calendar .calendar-time-gutter{position:relative}.micro-app-calendar .calendar-time-hour{position:absolute;right:6px;color:var(--muted);font-size:11px;line-height:1;white-space:nowrap;transform:translateY(-50%)}.micro-app-calendar .calendar-time-day{position:relative;min-width:0;border-left:1px solid var(--border);background-image:linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-repeat:repeat-y}.micro-app-calendar .calendar-time-day-today{background-color:var(--accent-soft)}.micro-app-calendar button.calendar-block{position:absolute;z-index:1;display:block;margin:0;padding:2px 6px;border:0;border-left:3px solid;border-radius:4px;color:var(--text);font:inherit;font-size:12px;line-height:1.25;text-align:left;overflow:hidden;cursor:pointer}.micro-app-calendar button.calendar-block:hover{z-index:2;filter:brightness(1.12)}.micro-app-calendar button.calendar-block-ended{opacity:.6}.micro-app-calendar .calendar-block-title,.micro-app-calendar .calendar-block-time,.micro-app-calendar .calendar-block-place{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-calendar .calendar-block-title{font-weight:700}.micro-app-calendar .calendar-block-time,.micro-app-calendar .calendar-block-place{color:var(--muted);font-size:11px}.micro-app-calendar .calendar-now-line{position:absolute;right:0;left:0;z-index:2;height:2px;margin-top:-1px;background:var(--danger);pointer-events:none}.micro-app-calendar .calendar-now-line:before{content:"";position:absolute;top:-4px;left:-5px;width:10px;height:10px;border-radius:50%;background:var(--danger)}.micro-app-calendar .calendar-time-compact button.calendar-time-head{padding:3px 1px}.micro-app-calendar .calendar-time-compact .calendar-time-head-weekday{font-size:9px}.micro-app-calendar .calendar-time-compact .calendar-time-head-date{min-width:22px;font-size:13px;line-height:22px}.micro-app-calendar .calendar-time-compact .calendar-time-hour{right:3px;font-size:9px}.micro-app-calendar .calendar-time-compact button.calendar-block{padding:1px 3px;border-left-width:2px;font-size:10px}.micro-app-calendar .calendar-time-compact .calendar-block-time,.micro-app-calendar .calendar-time-compact .calendar-block-place{font-size:9px}.micro-app-calendar .calendar-time-compact button.calendar-bar,.micro-app-calendar .calendar-time-compact button.calendar-more{margin:1px;padding:0 3px;font-size:10px;line-height:16px}.micro-app-calendar .calendar-widget{display:flex;flex-direction:column;height:100%;min-height:0;color:var(--text)}.micro-app-calendar .calendar-widget-head{flex:none;display:flex;align-items:center;margin-bottom:6px}.micro-app-calendar .calendar-widget-title{flex:1 1 auto;min-width:0;margin:0 4px;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.micro-app-calendar button.calendar-widget-today{margin-left:4px}.micro-app-calendar p.calendar-widget-problem{flex:none;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-calendar .calendar-widget-body{flex:1 1 auto;min-height:0;overflow:auto}.micro-app-calendar .calendar-widget-month .calendar-widget-body,.micro-app-calendar .calendar-widget-week .calendar-widget-body{display:flex;flex-direction:column;overflow:hidden}.micro-app-calendar .calendar-widget-month .calendar-widget-body>.calendar-month,.micro-app-calendar .calendar-widget-month .calendar-widget-body>.calendar-time,.micro-app-calendar .calendar-widget-week .calendar-widget-body>.calendar-month,.micro-app-calendar .calendar-widget-week .calendar-widget-body>.calendar-time{flex:1 1 auto}.micro-app-calendar .calendar-widget-touch .calendar-agenda-day{grid-template-columns:84px minmax(0,1fr);grid-column-gap:12px;padding:12px 0}.micro-app-calendar .calendar-widget-touch .calendar-agenda-date{padding-top:8px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-weekday{font-size:15px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-monthday{font-size:21px}.micro-app-calendar .calendar-widget-touch button.calendar-agenda-event{padding:8px 10px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-row{grid-template-columns:42px minmax(0,1fr);grid-column-gap:14px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-icon{width:42px;height:42px;border-radius:10px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-icon svg{width:26px;height:26px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-title{font-size:21px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-detail,.micro-app-calendar .calendar-widget-touch .calendar-agenda-when{font-size:16px}.micro-app-calendar .calendar-widget-touch .calendar-agenda-empty,.micro-app-calendar .calendar-widget-touch .widget-note,.micro-app-calendar .calendar-widget-touch .calendar-widget-title{font-size:20px}.micro-app-calendar .calendar-widget-touch button.calendar-btn{min-width:48px;min-height:48px;font-size:18px}.micro-app-calendar .calendar-widget-touch .calendar-month-compact .calendar-month-weekday{font-size:13px}.micro-app-calendar .calendar-widget-touch .calendar-month-compact button.calendar-month-date{font-size:15px}.micro-app-calendar .calendar-widget-touch .calendar-month-dot{width:9px;height:9px}.micro-app-calendar .calendar-widget-touch .calendar-time-compact .calendar-time-head-weekday{font-size:11px}.micro-app-calendar .calendar-widget-touch .calendar-time-compact .calendar-time-head-date{font-size:16px}.micro-app-calendar .calendar-widget-touch .calendar-time-compact button.calendar-block{font-size:12px}.micro-app-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-day{grid-template-columns:minmax(0,1fr)}.micro-app-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-date{flex-direction:row;align-items:baseline;padding:0 0 2px 8px}.micro-app-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-weekday{margin-right:6px}.micro-app-calendar .calendar-widget.calendar-widget-narrow.calendar-widget-touch .calendar-agenda-row{grid-template-columns:30px minmax(0,1fr);grid-column-gap:10px}.micro-app-calendar .calendar-widget.calendar-widget-narrow.calendar-widget-touch .calendar-agenda-icon{width:30px;height:30px}.micro-app-calendar .calendar-dialog-touch{width:640px;font-size:18px}.micro-app-calendar .calendar-dialog-touch .calendar-dialog-title{font-size:26px}.micro-app-calendar .calendar-dialog-touch .calendar-details-facts dt{font-size:14px}.micro-app-calendar .calendar-dialog-touch .calendar-details-relative,.micro-app-calendar .calendar-dialog-touch .calendar-details-repeat{font-size:16px}.micro-app-calendar .calendar-dialog-touch button.calendar-btn,.micro-app-calendar .calendar-dialog-touch a.calendar-btn{min-width:52px;min-height:52px;padding:8px 18px;font-size:18px}.micro-app-calendar .calendar-dialog-touch .calendar-agenda-title{font-size:20px}.micro-app-calendar .calendar-dialog-touch .calendar-agenda-detail,.micro-app-calendar .calendar-dialog-touch .calendar-agenda-when{font-size:15px}.micro-app-calendar .calendar-sync-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.micro-app-calendar .calendar-page{display:flex;flex-direction:column;height:100%;min-height:0;padding:16px}.micro-app-calendar .calendar-toolbar{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:-4px -4px 8px}.micro-app-calendar .calendar-toolbar>*{margin:4px}.micro-app-calendar .calendar-toolbar-nav,.micro-app-calendar .calendar-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;min-width:0;margin:-3px}.micro-app-calendar .calendar-toolbar-nav>*,.micro-app-calendar .calendar-toolbar-end>*{margin:3px}.micro-app-calendar .calendar-period{margin:0 0 0 8px;font-size:20px;line-height:1.2;white-space:nowrap}.micro-app-calendar .calendar-loading{color:var(--muted);font-size:13px}.micro-app-calendar .calendar-views{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.micro-app-calendar button.calendar-view-button{min-height:32px;margin:0;padding:5px 12px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.micro-app-calendar button.calendar-view-button:first-child{border-left:0}.micro-app-calendar button.calendar-view-button:hover{background:var(--accent-soft)}.micro-app-calendar button.calendar-view-button-chosen,.micro-app-calendar button.calendar-view-button-chosen:hover{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.micro-app-calendar .calendar-error,.micro-app-calendar .calendar-warning,.micro-app-calendar .calendar-note{flex:none;margin:0 0 8px}.micro-app-calendar .calendar-error{padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--danger-soft);color:var(--danger)}.micro-app-calendar .calendar-warning{display:flex;align-items:flex-start;padding:8px 12px;border-radius:var(--radius);background:var(--status-warning-bg);color:var(--status-warning-text)}.micro-app-calendar .calendar-warning svg{flex:none;margin:2px 8px 0 0}.micro-app-calendar .calendar-note{color:var(--muted)}.micro-app-calendar .calendar-hint{margin:-6px 0 0;color:var(--muted);font-size:12px}.micro-app-calendar .calendar-layout{flex:1 1 auto;min-height:460px;display:grid;grid-template-columns:210px minmax(0,1fr);grid-column-gap:16px}.micro-app-calendar .calendar-side{min-width:0;min-height:0;overflow:auto}.micro-app-calendar .calendar-main{display:flex;flex-direction:column;min-width:0;min-height:0}.micro-app-calendar .calendar-main>*{flex:1 1 auto;min-height:0}.micro-app-calendar .calendar-agenda-page{padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:auto}.micro-app-calendar .calendar-agenda-page .calendar-agenda-day{grid-template-columns:96px minmax(0,1fr);grid-column-gap:16px}.micro-app-calendar .calendar-agenda-page .calendar-agenda-weekday{font-size:12px}.micro-app-calendar .calendar-agenda-page .calendar-agenda-monthday{font-size:17px}.micro-app-calendar .calendar-agenda-page .calendar-agenda-title{font-size:15px}.micro-app-calendar .calendar-agenda-page .calendar-agenda-detail,.micro-app-calendar .calendar-agenda-page .calendar-agenda-when{font-size:13px}.micro-app-calendar .calendar-list{margin:0;padding:0;list-style:none}.micro-app-calendar button.calendar-list-item{display:flex;align-items:center;width:100%;margin:0 0 2px;padding:6px 8px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.micro-app-calendar button.calendar-list-item:hover{background:var(--accent-soft)}.micro-app-calendar .calendar-list-swatch{flex:none;width:14px;height:14px;margin-right:10px;border:2px solid;border-radius:4px}.micro-app-calendar .calendar-list-text{flex:1 1 auto;min-width:0}.micro-app-calendar .calendar-list-name,.micro-app-calendar .calendar-list-source{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.micro-app-calendar .calendar-list-name{font-weight:600}.micro-app-calendar .calendar-list-source{color:var(--muted);font-size:12px}.micro-app-calendar .calendar-list-item-hidden .calendar-list-name{color:var(--muted);text-decoration:line-through}.micro-app-calendar .calendar-list-problem{flex:none;margin-left:6px;color:var(--warning)}.micro-app-calendar button.calendar-btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.micro-app-calendar button.calendar-btn-danger:hover:not(:disabled){border-color:var(--danger);filter:brightness(1.08)}.micro-app-calendar .calendar-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;margin:8px 0 0 -8px}.micro-app-calendar .calendar-dialog-actions>*{margin:4px 0 0 8px}.micro-app-calendar .calendar-details-actions{margin-top:14px;padding-top:6px;border-top:1px solid var(--border)}.micro-app-calendar .calendar-details-actions p{margin:8px 0 0}.micro-app-calendar .calendar-time-day-addable{cursor:pointer}.micro-app-calendar .calendar-dialog-form{width:560px}.micro-app-calendar .calendar-dialog-event{width:540px}.micro-app-calendar .calendar-dialog-manage{width:680px}.micro-app-calendar .calendar-form,.micro-app-calendar .calendar-link-form{display:grid;grid-template-columns:minmax(0,1fr);grid-row-gap:12px}.micro-app-calendar .calendar-form .calendar-dialog-head,.micro-app-calendar .calendar-link-form .calendar-dialog-head{margin-bottom:0}.micro-app-calendar .calendar-field{display:grid;grid-row-gap:4px;min-width:0;margin:0}.micro-app-calendar .calendar-field>span:first-child{color:var(--muted);font-size:12px;font-weight:600}.micro-app-calendar .calendar-field input:not([type=checkbox]):not([type=color]),.micro-app-calendar .calendar-field select,.micro-app-calendar .calendar-field textarea{width:100%;min-width:0;min-height:36px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.micro-app-calendar .calendar-field textarea{resize:vertical}.micro-app-calendar .calendar-field-pair{display:flex;align-items:center;min-width:0}.micro-app-calendar .calendar-field-pair>*+*{margin-left:8px}.micro-app-calendar .calendar-field-pair input:not([type=checkbox]):not([type=color]){flex:1 1 0}.micro-app-calendar .calendar-field-short input:not([type=checkbox]):not([type=color]){flex:none;width:76px}.micro-app-calendar .calendar-field-unit{color:var(--muted);white-space:nowrap}.micro-app-calendar .calendar-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px}.micro-app-calendar .calendar-check{display:flex;align-items:center}.micro-app-calendar .calendar-check input{margin:0 8px 0 0}.micro-app-calendar .calendar-weekdays{display:flex;flex-wrap:wrap;margin:-2px 0 0}.micro-app-calendar .calendar-weekdays>*{margin:0 6px 6px 0}.micro-app-calendar button.calendar-weekday{min-width:52px;min-height:34px;padding:4px 10px;border-radius:999px;border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;cursor:pointer}.micro-app-calendar button.calendar-weekday-chosen{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.micro-app-calendar .calendar-manage-list{margin:0 0 12px;padding:0;list-style:none}.micro-app-calendar .calendar-manage-item{padding:10px 0;border-top:1px solid var(--border)}.micro-app-calendar .calendar-manage-item:first-child{border-top:0}.micro-app-calendar .calendar-manage-row{display:flex;flex-wrap:wrap;align-items:center}.micro-app-calendar .calendar-manage-text{flex:1 1 200px;min-width:0;margin-right:8px}.micro-app-calendar .calendar-manage-name{display:block;font-weight:600}.micro-app-calendar .calendar-manage-source,.micro-app-calendar .calendar-manage-problem{display:block;font-size:12px;overflow-wrap:anywhere}.micro-app-calendar .calendar-manage-source{color:var(--muted)}.micro-app-calendar .calendar-manage-problem{color:var(--status-warning-text)}.micro-app-calendar .calendar-manage-actions{display:flex;flex-wrap:wrap;margin-left:-6px}.micro-app-calendar .calendar-manage-actions>*{margin:2px 0 2px 6px}.micro-app-calendar .calendar-manage-confirm,.micro-app-calendar .calendar-link-form{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.micro-app-calendar .calendar-manage-confirm p{margin:0}.micro-app-calendar .calendar-link-title{margin:0;font-size:15px}.micro-app-calendar .calendar-link-steps p{margin:0 0 6px}.micro-app-calendar code.calendar-address{display:block;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.micro-app-calendar .calendar-colors{display:flex;flex-wrap:wrap;align-items:center}.micro-app-calendar .calendar-colors>*{margin:0 6px 6px 0}.micro-app-calendar button.calendar-color{width:28px;height:28px;min-height:0;padding:0;border:2px solid transparent;border-radius:50%;box-shadow:inset 0 0 0 2px var(--panel);cursor:pointer}.micro-app-calendar button.calendar-color-chosen{border-color:var(--text)}.micro-app-calendar input.calendar-color-other{width:44px;height:32px;padding:2px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg)}.micro-app-calendar .calendar-manage-add{display:flex;flex-wrap:wrap;align-items:center}.micro-app-calendar .calendar-manage-add>*{margin:0 8px 8px 0}.micro-app-calendar .calendar-manage-add-label{flex:1 1 100%;color:var(--muted);font-weight:600}@media(max-width:760px){.micro-app-calendar .calendar-page{padding:10px}.micro-app-calendar .calendar-period{margin-left:4px;font-size:17px}.micro-app-calendar .calendar-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-row-gap:8px;min-height:520px}.micro-app-calendar .calendar-side{overflow:visible}.micro-app-calendar .calendar-list{display:flex;overflow-x:auto}.micro-app-calendar .calendar-list>li{flex:none;margin-right:6px}.micro-app-calendar button.calendar-list-item{width:auto;margin:0;padding:4px 10px;border:1px solid var(--border)}.micro-app-calendar .calendar-list-source{display:none}.micro-app-calendar .calendar-agenda-page{padding:10px}.micro-app-calendar .calendar-agenda-page .calendar-agenda-day{grid-template-columns:64px minmax(0,1fr);grid-column-gap:8px}.micro-app-calendar button.calendar-view-button{padding:5px 9px}}.micro-app-virtual-devices body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-virtual-devices *{box-sizing:border-box}.micro-app-virtual-devices{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-virtual-devices .virtual-add{display:inline-flex;align-items:center;gap:8px}.micro-app-virtual-devices .virtual-section{margin:0 0 20px}.micro-app-virtual-devices .virtual-section-name{margin:0 0 10px;font-size:16px}.micro-app-virtual-devices .virtual-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.micro-app-virtual-devices .virtual-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-virtual-devices .virtual-card-unreachable{opacity:.7}.micro-app-virtual-devices .virtual-card-head{display:flex;flex-direction:column;gap:2px}.micro-app-virtual-devices .virtual-card-head h3{margin:0;font-size:15px}.micro-app-virtual-devices .virtual-readings,.micro-app-virtual-devices .virtual-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.micro-app-virtual-devices .virtual-steps{display:inline-flex;gap:6px}.micro-app-virtual-devices .virtual-note{color:var(--muted);font-size:13px}.micro-app-virtual-devices .virtual-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-virtual-devices .virtual-field{display:flex;flex-direction:column;gap:6px}.micro-app-virtual-devices .virtual-field>span:first-child{font-weight:600}.micro-app-virtual-devices .virtual-check{display:flex;align-items:center;gap:8px}.micro-app-virtual-devices .virtual-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-virtual-devices .virtual-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.micro-app-virtual-devices .virtual-modal-head,.micro-app-virtual-devices .virtual-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-virtual-devices .virtual-modal-head h2,.micro-app-virtual-devices .virtual-modal-foot h2{margin:0;font-size:17px}.micro-app-virtual-devices .virtual-modal-foot{justify-content:flex-end}.micro-app-virtual-devices button.virtual-btn.virtual-btn.virtual-btn.virtual-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-virtual-devices button.virtual-btn.virtual-btn.virtual-btn.virtual-btn-quiet{background:transparent}.micro-app-virtual-devices .virtual-error,.micro-app-virtual-devices .virtual-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-virtual-devices .virtual-error{color:var(--danger);background:var(--danger-soft)}.micro-app-virtual-devices .virtual-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-virtual-devices .virtual-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-virtual-devices .virtual-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-virtual-devices .virtual-empty p{margin:0}.micro-app-virtual-devices button.virtual-btn.virtual-btn.virtual-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-weight:600;cursor:pointer}.micro-app-phone body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef}.micro-app-phone *{box-sizing:border-box}.micro-app-phone{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-phone .phone-section{margin:0 0 20px}.micro-app-phone .phone-section-name{margin:0 0 10px;font-size:16px}.micro-app-phone .phone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.micro-app-phone .phone-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-phone .phone-card-head{display:flex;flex-direction:column;gap:2px}.micro-app-phone .phone-card-head h3{margin:0;font-size:15px}.micro-app-phone .phone-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.micro-app-phone .phone-note{color:var(--muted);font-size:13px}.micro-app-phone .phone-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.micro-app-phone .phone-field{display:flex;flex-direction:column;gap:6px}.micro-app-phone .phone-field>span:first-child{font-weight:600}.micro-app-phone .phone-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.micro-app-phone .phone-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.micro-app-phone .phone-modal-head,.micro-app-phone .phone-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.micro-app-phone .phone-modal-head h2,.micro-app-phone .phone-modal-foot h2{margin:0;font-size:17px}.micro-app-phone .phone-modal-foot{justify-content:flex-end}.micro-app-phone button.phone-btn.phone-btn.phone-btn.phone-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.micro-app-phone button.phone-btn.phone-btn.phone-btn.phone-btn-quiet{background:transparent}.micro-app-phone .phone-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.micro-app-phone .phone-row>.phone-input{flex:1 1 140px}.micro-app-phone .phone-link{color:var(--accent)}.micro-app-phone .phone-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.micro-app-phone .phone-facts dt{color:var(--muted)}.micro-app-phone .phone-facts dd{margin:0}.micro-app-phone .phone-release-upload{margin:10px 0 12px}.micro-app-phone .phone-release-notes{margin:0;font-size:13px;white-space:pre-wrap}.micro-app-phone .phone-error,.micro-app-phone .phone-warning{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border)}.micro-app-phone .phone-success{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--success)}.micro-app-phone .phone-error{color:var(--danger);background:var(--danger-soft)}.micro-app-phone .phone-warning{color:var(--warning);background:var(--warning-soft)}.micro-app-phone .phone-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-phone .phone-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-phone .phone-empty p{margin:0}.micro-app-phone button.phone-btn.phone-btn.phone-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font-weight:600;cursor:pointer}.micro-app-timers body[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6fb;--text: #1a2440;--muted: #5e6b85;--accent: #2f6bff;--accent-soft: rgba(47, 107, 255, .1);--border: #d8e0ef;--input-bg: #ffffff;--input-border: #d8e0ef;--btn-secondary-bg: #ffffff;--btn-secondary-text: #1a2440;--btn-secondary-border: #d8e0ef;--btn-primary-bg: #2f6bff;--btn-primary-text: #ffffff;--status-warning-bg: #fdf0cf;--status-warning-text: #6b4a05}.micro-app-timers *{box-sizing:border-box}.micro-app-timers{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.micro-app-timers .container{padding:16px}.micro-app-timers .timers-page{display:flex;flex-direction:column;gap:16px}.micro-app-timers button.timers-btn,.micro-app-timers button.timers-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;line-height:1.2;white-space:nowrap;filter:none;cursor:pointer}.micro-app-timers button.timers-btn:hover:not(:disabled),.micro-app-timers button.timers-chip:hover:not(:disabled){border-color:var(--accent)}.micro-app-timers button.timers-btn:disabled,.micro-app-timers button.timers-chip:disabled{opacity:.55;cursor:default}.micro-app-timers button.timers-btn:focus-visible,.micro-app-timers button.timers-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.micro-app-timers button.timers-btn-primary{min-width:96px;background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.micro-app-timers button.timers-btn-primary:hover:not(:disabled){border-color:var(--btn-primary-border);filter:brightness(1.08)}.micro-app-timers button.timers-btn-quiet{background:transparent;color:var(--muted);border-color:var(--border)}.micro-app-timers button.timers-btn-ring{background:var(--status-warning-text);color:var(--status-warning-bg);border-color:var(--status-warning-text)}.micro-app-timers button.timers-btn-ring:hover:not(:disabled){border-color:var(--warning)}.micro-app-timers button.timers-btn-icon{min-width:34px;padding:4px 8px}.micro-app-timers button.timers-chip{min-height:32px;padding:4px 12px;border-radius:999px;font-weight:600}.micro-app-timers button.timers-chip-chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.micro-app-timers .timers-error{margin:0;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--danger);background:var(--danger-soft)}.micro-app-timers .timers-start{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.micro-app-timers .timers-field{display:flex;flex-direction:column;gap:6px;min-width:0}.micro-app-timers .timers-field>span:first-child{color:var(--muted);font-size:12px;font-weight:600}.micro-app-timers .timers-field input{min-height:36px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.micro-app-timers .timers-field input:focus{outline:2px solid var(--accent);outline-offset:0}.micro-app-timers .timers-field-name{flex:1 1 180px}.micro-app-timers .timers-field-typed{flex:1 1 200px;position:relative}.micro-app-timers .timers-presets{display:flex;flex-wrap:wrap;gap:6px}.micro-app-timers .timers-typed-reading{min-height:16px;color:var(--muted);font-size:12px}.micro-app-timers .timers-typed-problem{color:var(--danger)}.micro-app-timers .timers-start-go{display:flex;align-items:flex-end;padding-bottom:22px}.micro-app-timers .timers-start-problem{flex:1 1 100%}.micro-app-timers .timers-group{display:flex;flex-direction:column;gap:10px}.micro-app-timers .timers-group-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0;font-size:15px}.micro-app-timers .timers-group-count{color:var(--muted);font-size:12px;font-weight:400}.micro-app-timers .timers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.micro-app-timers .timers-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.micro-app-timers .timers-card-paused{border-style:dashed}.micro-app-timers .timers-card-finished{border:2px solid var(--warning);background:var(--status-warning-bg);color:var(--status-warning-text);animation:timers-ringing 1.6s ease-in-out infinite}.micro-app-timers .timers-card-finished .timers-card-length,.micro-app-timers .timers-card-finished .timers-card-note{color:var(--status-warning-text)}@media(prefers-reduced-motion:reduce){.micro-app-timers .timers-card-finished,.micro-app-timers .timers-row-finished{animation:none}}.micro-app-timers .timers-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.micro-app-timers .timers-card-name{margin:0;min-width:0;font-size:15px;overflow-wrap:anywhere}.micro-app-timers .timers-card-length{flex:none;color:var(--muted);font-size:12px}.micro-app-timers .timers-clock{font-size:34px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:.01em}.micro-app-timers .timers-clock-paused{color:var(--muted)}.micro-app-timers .timers-done{font-size:34px;font-weight:800;line-height:1.1;letter-spacing:.02em;text-transform:uppercase}.micro-app-timers .timers-bar{display:block;height:6px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);overflow:hidden}.micro-app-timers .timers-bar-fill{display:block;height:100%;background:var(--accent)}.micro-app-timers .timers-card-note{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;color:var(--muted);font-size:12px}.micro-app-timers .timers-card-source{font-style:italic}.micro-app-timers .timers-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.micro-app-timers .timers-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.micro-app-timers .timers-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.micro-app-timers .timers-empty p{margin:0}.micro-app-timers .timers-widget{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;color:var(--text)}.micro-app-timers .timers-rows{flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.micro-app-timers .timers-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.micro-app-timers .timers-row-finished{border:2px solid var(--warning);background:var(--status-warning-bg);color:var(--status-warning-text);animation:timers-ringing-within 1.6s ease-in-out infinite}.micro-app-timers .timers-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.micro-app-timers .timers-row-whose{margin-left:8px;color:var(--muted);font-weight:400;font-size:.85em}.micro-app-timers .timers-row-clock{font-size:20px}.micro-app-timers .timers-row-done{font-size:15px}.micro-app-timers .timers-row-actions{display:inline-flex;gap:4px}.micro-app-timers .timers-row-note{grid-column:1/-1;font-size:11px}.micro-app-timers .timers-quick{flex:none;display:flex;flex-wrap:wrap;gap:6px}.micro-app-timers .timers-widget-empty{flex:1 1 auto;min-height:0;margin:0;display:flex;align-items:center;justify-content:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;overflow-wrap:anywhere}.micro-app-timers .timers-widget-touch{gap:12px}.micro-app-timers .timers-widget-touch .timers-row{grid-template-columns:minmax(0,1fr) auto;padding:10px 12px;gap:6px 14px}.micro-app-timers .timers-widget-touch .timers-row-name{grid-column:1/-1;font-size:20px;white-space:normal;overflow-wrap:anywhere}.micro-app-timers .timers-widget-touch .timers-row-clock{font-size:36px}.micro-app-timers .timers-widget-touch .timers-row-done{font-size:28px}.micro-app-timers .timers-widget-touch .timers-btn-icon svg{width:24px;height:24px}.micro-app-timers .timers-widget-touch .timers-row-note{font-size:14px}.micro-app-timers .timers-widget-touch button.timers-btn{min-height:52px;min-width:52px;padding:8px 16px;font-size:18px}.micro-app-timers .timers-widget-touch button.timers-chip{flex:1 1 0;min-height:60px;font-size:20px;border-radius:var(--radius)}.micro-app-timers .timers-widget-touch .widget-note{font-size:18px}.micro-app-timers .timers-widget-touch .timers-widget-empty{padding:16px;font-size:22px}.micro-app-timers .timers-dialog{width:min(420px,100vw - 32px);padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}.micro-app-timers .timers-dialog::backdrop{background:#00000080}.micro-app-timers .timers-dialog-form{display:flex;flex-direction:column;gap:12px;padding:16px}.micro-app-timers .timers-dialog-title{margin:0;font-size:16px}.micro-app-timers .timers-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.micro-app-timers .timers-settings{display:flex;flex-direction:column;gap:10px}.micro-app-timers .timers-setting{display:flex;flex-direction:column;gap:4px}.micro-app-timers .timers-setting select{min-height:34px}@media(max-width:520px){.micro-app-timers .timers-start{flex-direction:column;align-items:stretch}.micro-app-timers .timers-field-name,.micro-app-timers .timers-field-typed{flex:none}.micro-app-timers .timers-start-go{padding-bottom:0}.micro-app-timers .timers-start-go button.timers-btn-primary{width:100%}.micro-app-timers .timers-card .timers-clock,.micro-app-timers .timers-card .timers-done{font-size:30px}}.dash-widget-caractacus-ai-ask .cai-widget{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px;color:var(--text)}.dash-widget-caractacus-ai-ask .cai-widget-last{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.dash-widget-caractacus-ai-ask .cai-widget-prompt{margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.dash-widget-caractacus-ai-ask .cai-widget-reply{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.dash-widget-caractacus-ai-ask .cai-widget-meta{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted);font-size:12px}.dash-widget-caractacus-ai-ask .cai-widget-badge{padding:1px 6px;border-radius:999px;border:1px solid var(--border);font-weight:600}.dash-widget-caractacus-ai-ask .cai-widget-badge-preprocessor{color:var(--success);background:var(--success-soft)}.dash-widget-caractacus-ai-ask .cai-widget-badge-llm{color:var(--accent);background:var(--accent-soft)}.dash-widget-caractacus-ai-ask .cai-widget-badge-chat{color:var(--text-muted);background:var(--surface-muted)}.dash-widget-caractacus-ai-ask .cai-widget-note{margin:0;color:var(--muted)}.dash-widget-caractacus-ai-ask .cai-widget-problem{color:var(--danger)}.dash-widget-caractacus-ai-ask .cai-widget-ask{display:flex;gap:6px}.dash-widget-caractacus-ai-ask .cai-widget-input{flex:1;min-width:0;padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.dash-widget-caractacus-ai-ask button.cai-widget-button.cai-widget-button.cai-widget-button{min-height:32px;padding:4px 12px;border-radius:var(--radius);border:1px solid var(--btn-primary-border, var(--accent));background:var(--btn-primary-bg, var(--accent));color:var(--btn-primary-text, #ffffff);font:inherit;font-weight:600;cursor:pointer}.dash-widget-caractacus-ai-ask button.cai-widget-button.cai-widget-button.cai-widget-button:disabled{opacity:.55;cursor:default}.dash-widget-lighting-light .container{padding:16px}.dash-widget-lighting-light .lighting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dash-widget-lighting-light .lighting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-lighting-light .lighting-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-lighting-light .lighting-card-unreachable{opacity:.6}.dash-widget-lighting-light .lighting-card-head{display:flex;align-items:center;gap:10px}.dash-widget-lighting-light .lighting-card-title{flex:1;min-width:0}.dash-widget-lighting-light .lighting-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-lighting-light .lighting-provider{color:var(--muted);font-size:12px}.dash-widget-lighting-light .lighting-swatch{width:14px;height:14px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border);flex:none}.dash-widget-lighting-light .lighting-dimmer{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-lighting-light .lighting-dimmer input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-lighting-light .lighting-dimmer-value{min-width:3ch;text-align:right}.dash-widget-lighting-light .lighting-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:4px;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:inherit;filter:none;cursor:pointer}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle:disabled{cursor:default;opacity:.5}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle:focus-visible .lighting-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-light .lighting-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}.dash-widget-lighting-light .lighting-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle-on{color:var(--text)}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-track{background:var(--accent);border-color:var(--accent)}.dash-widget-lighting-light button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-thumb{transform:translate(20px);background:var(--surface)}.dash-widget-lighting-light .lighting-toggle-label{min-width:2.5ch}.dash-widget-lighting-light .lighting-room{margin-bottom:20px}.dash-widget-lighting-light .lighting-room-name{margin:0 0 10px;font-size:16px}.dash-widget-lighting-light .lighting-card-compact{padding:10px;gap:8px}.dash-widget-lighting-light .lighting-card-compact .lighting-card-title h2{font-size:14px}.dash-widget-lighting-light .lighting-grid-compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.dash-widget-lighting-light .lighting-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-lighting-light .lighting-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-light .lighting-setting select{padding:6px 8px}.dash-widget-lighting-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-lighting-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-lighting-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-danger{color:var(--danger)}.dash-widget-lighting-light .lighting-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-lighting-light .lighting-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-lighting-light .lighting-modal{width:min(640px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-lighting-light .lighting-modal-head,.dash-widget-lighting-light .lighting-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-lighting-light .lighting-modal-head h2,.dash-widget-lighting-light .lighting-modal-foot h2{margin:0;font-size:17px}.dash-widget-lighting-light .lighting-modal-foot{justify-content:flex-end}.dash-widget-lighting-light .lighting-modal-section h3{margin:0 0 8px;font-size:14px}.dash-widget-lighting-light .lighting-room-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-light .lighting-room-row{display:flex;align-items:center;gap:8px}.dash-widget-lighting-light .lighting-room-row .lighting-input:first-child{flex:1}.dash-widget-lighting-light .lighting-room-light{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-light .lighting-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-lighting-light .lighting-widget-touch{height:100%;overflow:hidden}.dash-widget-lighting-light .lighting-touch{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;min-width:112px;padding:18px 14px 16px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-lighting-light .lighting-touch-loads{flex:1;min-height:0;width:100%;display:flex;gap:12px}.dash-widget-lighting-light .lighting-touch-load{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.dash-widget-lighting-light .lighting-touch-load.lighting-touch-unreachable{opacity:.5}.dash-widget-lighting-light .lighting-touch-load-name{max-width:100%;font-size:17px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-light .lighting-touch-head{width:100%;text-align:center}.dash-widget-lighting-light .lighting-touch-head h2{margin:0;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-light .lighting-touch-head span{display:block;margin-top:4px;font-size:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-light .lighting-touch-bar{position:relative;flex:1;width:62%;max-width:116px;min-height:120px;border-radius:20px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-lighting-light .lighting-touch-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-lighting-light .lighting-touch-fill{position:absolute;left:0;right:0;bottom:0;background:var(--text);transition:height .2s ease}.dash-widget-lighting-light .lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-light .lighting-touch-level{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:28px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-lighting-light button.lighting-touch-power.lighting-touch-power.lighting-touch-power{display:inline-flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--muted);filter:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.dash-widget-lighting-light button.lighting-touch-power.lighting-touch-power.lighting-touch-power:disabled{cursor:default}.dash-widget-lighting-light .lighting-touch-load.lighting-touch-on button.lighting-touch-power.lighting-touch-power.lighting-touch-power{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-light .lighting-widget-touch-room{display:flex;flex-direction:column;gap:10px}.dash-widget-lighting-light .lighting-touch-room-name{margin:0 4px;font-size:26px;font-weight:650}.dash-widget-lighting-light .lighting-touch-row{flex:1;min-height:0;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.dash-widget-lighting-light .lighting-touch-row .lighting-touch{flex:1 1 0}.dash-widget-lighting-light .lighting-load{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.dash-widget-lighting-light .lighting-load-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px}.dash-widget-lighting-light .lighting-room-cards{display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-light .lighting-room-card-cell{flex:1 1 0;display:flex}.dash-widget-lighting-light .lighting-room-card-cell>.lighting-card{flex:1}.dash-widget-lighting-light .lighting-setting-inline{flex-direction:row;align-items:center;gap:8px}.dash-widget-lighting-light .lighting-fixture{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.dash-widget-lighting-light .lighting-fixture-mode{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.dash-widget-lighting-light .lighting-fixture-loads{margin:0 0 0 18px}.dash-widget-lighting-light .lighting-name-input{flex:1}.dash-widget-lighting-light .lighting-room-row .lighting-room-select{flex:none;width:42%}.dash-widget-lighting-light .lighting-room-row .lighting-type-select{flex:none;width:30%}.dash-widget-lighting-light .lighting-room-row .lighting-type-select+.lighting-room-select{width:30%}.dash-widget-lighting-light .lighting-hidden{opacity:.85}.dash-widget-lighting-light .lighting-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-light button.lighting-btn.lighting-btn.lighting-hidden-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.dash-widget-lighting-light button.lighting-btn.lighting-btn.lighting-hidden-item .lighting-note{font-size:12px}.dash-widget-lighting-light .lighting-card-controls{display:flex;align-items:center;gap:10px}.dash-widget-lighting-light .lighting-card-controls .lighting-dimmer{flex:1;min-width:0}.dash-widget-lighting-light .lighting-card-openable{cursor:pointer}.dash-widget-lighting-light .lighting-card-openable:hover{border-color:var(--accent)}.dash-widget-lighting-light button.lighting-card-open.lighting-card-open.lighting-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-lighting-light button.lighting-card-open.lighting-card-open.lighting-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-light .lighting-field{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-light .lighting-field>span:first-child{font-weight:600}.dash-widget-lighting-light .lighting-widget-mini{height:100%}.dash-widget-lighting-light .lighting-mini{position:relative;display:flex;align-items:center;height:100%;min-height:56px;padding:0 14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--tile-radius, 14px);background:var(--surface-muted);color:var(--text);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.dash-widget-lighting-light .lighting-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-light .lighting-mini-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--accent);opacity:.28;transition:width .2s ease;pointer-events:none}.dash-widget-lighting-light .lighting-mini-dragging .lighting-mini-fill{transition:none}.dash-widget-lighting-light .lighting-mini-on{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-lighting-light .lighting-mini-icon{position:relative;display:inline-flex;flex:0 0 auto;margin-right:12px;color:var(--muted)}.dash-widget-lighting-light .lighting-mini-on .lighting-mini-icon{color:var(--accent)}.dash-widget-lighting-light .lighting-mini-words{position:relative;display:flex;flex-direction:column;min-width:0}.dash-widget-lighting-light .lighting-mini-words strong,.dash-widget-lighting-light .lighting-mini-words span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dash-widget-lighting-light .lighting-mini-words strong{font-size:.95rem}.dash-widget-lighting-light .lighting-mini-words span{font-size:.8rem;color:var(--muted)}.dash-widget-lighting-light .lighting-mini-unreachable{cursor:default;opacity:.6}.dash-widget-lighting-light .lighting-mini-touch{padding:0 20px}.dash-widget-lighting-light .lighting-mini-touch .lighting-mini-words strong{font-size:1.35rem}.dash-widget-lighting-light .lighting-mini-touch .lighting-mini-words span{font-size:1.05rem}.dash-widget-lighting-light .lighting-scene-list{display:flex;flex-wrap:wrap;gap:10px}.dash-widget-lighting-light .lighting-scene{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:140px;padding:10px 14px;text-align:left}.dash-widget-lighting-light .lighting-scene strong{font-size:.95rem}.dash-widget-lighting-light .lighting-scene-tile{width:100%;font:inherit;text-align:left}.dash-widget-lighting-light .lighting-grid>.lighting-room-lights{grid-column:1/-1}.dash-widget-lighting-light .lighting-room-cards>.lighting-room-card-cell-whole{flex-basis:100%}.dash-widget-lighting-light .lighting-card.lighting-room-lights{background:var(--accent-soft);border:2px solid var(--accent)}.dash-widget-lighting-light .lighting-card.lighting-room-lights.lighting-room-lights-on{box-shadow:0 0 0 3px var(--accent-soft)}.dash-widget-lighting-light .lighting-room-lights-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--surface)}.dash-widget-lighting-light .lighting-room-lights .lighting-card-title h2{letter-spacing:.01em}.dash-widget-lighting-light .lighting-card.lighting-room-lights .lighting-card-controls{max-width:560px}.dash-widget-lighting-light .lighting-card.lighting-room-lights.lighting-room-lights-silent,.dash-widget-lighting-light .lighting-touch-room-lights.lighting-room-lights-silent{border-style:dashed}.dash-widget-lighting-light .lighting-card.lighting-room-lights.lighting-room-lights-silent .lighting-room-lights-icon,.dash-widget-lighting-light .lighting-touch-room-lights.lighting-room-lights-silent .lighting-room-lights-icon{background:var(--surface-muted);color:var(--muted)}.dash-widget-lighting-light .lighting-touch-room-lights{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex:none;min-width:0;padding:12px 16px;border-radius:22px;background:var(--accent-soft);border:2px solid var(--accent);user-select:none;-webkit-user-select:none}.dash-widget-lighting-light .lighting-touch-room-lights .lighting-room-lights-icon{width:48px;height:48px}.dash-widget-lighting-light .lighting-touch-room-lights .lighting-room-lights-icon svg{width:26px;height:26px}.dash-widget-lighting-light .lighting-touch-room-lights.lighting-room-lights-on{box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-light .lighting-touch-room-lights-head{flex:0 1 auto;min-width:0}.dash-widget-lighting-light .lighting-touch-room-lights-head h2{margin:0;font-size:22px;font-weight:650;color:var(--text);white-space:nowrap}.dash-widget-lighting-light .lighting-touch-room-lights-head span{display:block;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-light .lighting-touch-load.lighting-touch-load-across{flex:1 1 220px;flex-direction:row;align-items:center}.dash-widget-lighting-light .lighting-touch-bar.lighting-touch-bar-across{flex:1 1 0;width:auto;max-width:none;min-width:0;min-height:0;height:58px;border-radius:18px;touch-action:none}.dash-widget-lighting-light .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-fill{top:0;right:auto;transition:width .2s ease}.dash-widget-lighting-light .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-level{top:50%;bottom:auto;transform:translateY(-50%);font-size:22px}.dash-widget-lighting-light .lighting-touch-bar-across.lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-light .lighting-room-entry{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.dash-widget-lighting-light .lighting-room-entry .lighting-room-row{flex-wrap:wrap}.dash-widget-lighting-light .lighting-room-entry .lighting-room-row .lighting-input:first-child{flex:1 1 160px}.dash-widget-lighting-light .lighting-room-entry .lighting-room-actions{display:inline-flex;align-items:center;gap:8px;flex:none}.dash-widget-lighting-light .lighting-room-control{display:flex;align-items:center;gap:8px;min-width:0}.dash-widget-lighting-light .lighting-room-control .lighting-note{flex:none}.dash-widget-lighting-light .lighting-room-control .lighting-room-control-select{flex:1;min-width:0}.dash-widget-lighting-mini-light .container{padding:16px}.dash-widget-lighting-mini-light .lighting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dash-widget-lighting-mini-light .lighting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-lighting-mini-light .lighting-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-lighting-mini-light .lighting-card-unreachable{opacity:.6}.dash-widget-lighting-mini-light .lighting-card-head{display:flex;align-items:center;gap:10px}.dash-widget-lighting-mini-light .lighting-card-title{flex:1;min-width:0}.dash-widget-lighting-mini-light .lighting-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-lighting-mini-light .lighting-provider{color:var(--muted);font-size:12px}.dash-widget-lighting-mini-light .lighting-swatch{width:14px;height:14px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border);flex:none}.dash-widget-lighting-mini-light .lighting-dimmer{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-lighting-mini-light .lighting-dimmer input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-lighting-mini-light .lighting-dimmer-value{min-width:3ch;text-align:right}.dash-widget-lighting-mini-light .lighting-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:4px;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:inherit;filter:none;cursor:pointer}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle:disabled{cursor:default;opacity:.5}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle:focus-visible .lighting-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-mini-light .lighting-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}.dash-widget-lighting-mini-light .lighting-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle-on{color:var(--text)}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-track{background:var(--accent);border-color:var(--accent)}.dash-widget-lighting-mini-light button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-thumb{transform:translate(20px);background:var(--surface)}.dash-widget-lighting-mini-light .lighting-toggle-label{min-width:2.5ch}.dash-widget-lighting-mini-light .lighting-room{margin-bottom:20px}.dash-widget-lighting-mini-light .lighting-room-name{margin:0 0 10px;font-size:16px}.dash-widget-lighting-mini-light .lighting-card-compact{padding:10px;gap:8px}.dash-widget-lighting-mini-light .lighting-card-compact .lighting-card-title h2{font-size:14px}.dash-widget-lighting-mini-light .lighting-grid-compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.dash-widget-lighting-mini-light .lighting-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-lighting-mini-light .lighting-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-mini-light .lighting-setting select{padding:6px 8px}.dash-widget-lighting-mini-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-lighting-mini-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-lighting-mini-light button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-danger{color:var(--danger)}.dash-widget-lighting-mini-light .lighting-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-lighting-mini-light .lighting-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-lighting-mini-light .lighting-modal{width:min(640px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-lighting-mini-light .lighting-modal-head,.dash-widget-lighting-mini-light .lighting-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-lighting-mini-light .lighting-modal-head h2,.dash-widget-lighting-mini-light .lighting-modal-foot h2{margin:0;font-size:17px}.dash-widget-lighting-mini-light .lighting-modal-foot{justify-content:flex-end}.dash-widget-lighting-mini-light .lighting-modal-section h3{margin:0 0 8px;font-size:14px}.dash-widget-lighting-mini-light .lighting-room-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-mini-light .lighting-room-row{display:flex;align-items:center;gap:8px}.dash-widget-lighting-mini-light .lighting-room-row .lighting-input:first-child{flex:1}.dash-widget-lighting-mini-light .lighting-room-light{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-mini-light .lighting-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-lighting-mini-light .lighting-widget-touch{height:100%;overflow:hidden}.dash-widget-lighting-mini-light .lighting-touch{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;min-width:112px;padding:18px 14px 16px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-lighting-mini-light .lighting-touch-loads{flex:1;min-height:0;width:100%;display:flex;gap:12px}.dash-widget-lighting-mini-light .lighting-touch-load{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.dash-widget-lighting-mini-light .lighting-touch-load.lighting-touch-unreachable{opacity:.5}.dash-widget-lighting-mini-light .lighting-touch-load-name{max-width:100%;font-size:17px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-mini-light .lighting-touch-head{width:100%;text-align:center}.dash-widget-lighting-mini-light .lighting-touch-head h2{margin:0;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-mini-light .lighting-touch-head span{display:block;margin-top:4px;font-size:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-mini-light .lighting-touch-bar{position:relative;flex:1;width:62%;max-width:116px;min-height:120px;border-radius:20px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-lighting-mini-light .lighting-touch-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-lighting-mini-light .lighting-touch-fill{position:absolute;left:0;right:0;bottom:0;background:var(--text);transition:height .2s ease}.dash-widget-lighting-mini-light .lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-mini-light .lighting-touch-level{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:28px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-lighting-mini-light button.lighting-touch-power.lighting-touch-power.lighting-touch-power{display:inline-flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--muted);filter:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.dash-widget-lighting-mini-light button.lighting-touch-power.lighting-touch-power.lighting-touch-power:disabled{cursor:default}.dash-widget-lighting-mini-light .lighting-touch-load.lighting-touch-on button.lighting-touch-power.lighting-touch-power.lighting-touch-power{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-mini-light .lighting-widget-touch-room{display:flex;flex-direction:column;gap:10px}.dash-widget-lighting-mini-light .lighting-touch-room-name{margin:0 4px;font-size:26px;font-weight:650}.dash-widget-lighting-mini-light .lighting-touch-row{flex:1;min-height:0;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.dash-widget-lighting-mini-light .lighting-touch-row .lighting-touch{flex:1 1 0}.dash-widget-lighting-mini-light .lighting-load{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.dash-widget-lighting-mini-light .lighting-load-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px}.dash-widget-lighting-mini-light .lighting-room-cards{display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-mini-light .lighting-room-card-cell{flex:1 1 0;display:flex}.dash-widget-lighting-mini-light .lighting-room-card-cell>.lighting-card{flex:1}.dash-widget-lighting-mini-light .lighting-setting-inline{flex-direction:row;align-items:center;gap:8px}.dash-widget-lighting-mini-light .lighting-fixture{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.dash-widget-lighting-mini-light .lighting-fixture-mode{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.dash-widget-lighting-mini-light .lighting-fixture-loads{margin:0 0 0 18px}.dash-widget-lighting-mini-light .lighting-name-input{flex:1}.dash-widget-lighting-mini-light .lighting-room-row .lighting-room-select{flex:none;width:42%}.dash-widget-lighting-mini-light .lighting-room-row .lighting-type-select{flex:none;width:30%}.dash-widget-lighting-mini-light .lighting-room-row .lighting-type-select+.lighting-room-select{width:30%}.dash-widget-lighting-mini-light .lighting-hidden{opacity:.85}.dash-widget-lighting-mini-light .lighting-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-mini-light button.lighting-btn.lighting-btn.lighting-hidden-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.dash-widget-lighting-mini-light button.lighting-btn.lighting-btn.lighting-hidden-item .lighting-note{font-size:12px}.dash-widget-lighting-mini-light .lighting-card-controls{display:flex;align-items:center;gap:10px}.dash-widget-lighting-mini-light .lighting-card-controls .lighting-dimmer{flex:1;min-width:0}.dash-widget-lighting-mini-light .lighting-card-openable{cursor:pointer}.dash-widget-lighting-mini-light .lighting-card-openable:hover{border-color:var(--accent)}.dash-widget-lighting-mini-light button.lighting-card-open.lighting-card-open.lighting-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-lighting-mini-light button.lighting-card-open.lighting-card-open.lighting-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-mini-light .lighting-field{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-mini-light .lighting-field>span:first-child{font-weight:600}.dash-widget-lighting-mini-light .lighting-widget-mini{height:100%}.dash-widget-lighting-mini-light .lighting-mini{position:relative;display:flex;align-items:center;height:100%;min-height:56px;padding:0 14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--tile-radius, 14px);background:var(--surface-muted);color:var(--text);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.dash-widget-lighting-mini-light .lighting-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-mini-light .lighting-mini-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--accent);opacity:.28;transition:width .2s ease;pointer-events:none}.dash-widget-lighting-mini-light .lighting-mini-dragging .lighting-mini-fill{transition:none}.dash-widget-lighting-mini-light .lighting-mini-on{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-lighting-mini-light .lighting-mini-icon{position:relative;display:inline-flex;flex:0 0 auto;margin-right:12px;color:var(--muted)}.dash-widget-lighting-mini-light .lighting-mini-on .lighting-mini-icon{color:var(--accent)}.dash-widget-lighting-mini-light .lighting-mini-words{position:relative;display:flex;flex-direction:column;min-width:0}.dash-widget-lighting-mini-light .lighting-mini-words strong,.dash-widget-lighting-mini-light .lighting-mini-words span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dash-widget-lighting-mini-light .lighting-mini-words strong{font-size:.95rem}.dash-widget-lighting-mini-light .lighting-mini-words span{font-size:.8rem;color:var(--muted)}.dash-widget-lighting-mini-light .lighting-mini-unreachable{cursor:default;opacity:.6}.dash-widget-lighting-mini-light .lighting-mini-touch{padding:0 20px}.dash-widget-lighting-mini-light .lighting-mini-touch .lighting-mini-words strong{font-size:1.35rem}.dash-widget-lighting-mini-light .lighting-mini-touch .lighting-mini-words span{font-size:1.05rem}.dash-widget-lighting-mini-light .lighting-scene-list{display:flex;flex-wrap:wrap;gap:10px}.dash-widget-lighting-mini-light .lighting-scene{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:140px;padding:10px 14px;text-align:left}.dash-widget-lighting-mini-light .lighting-scene strong{font-size:.95rem}.dash-widget-lighting-mini-light .lighting-scene-tile{width:100%;font:inherit;text-align:left}.dash-widget-lighting-mini-light .lighting-grid>.lighting-room-lights{grid-column:1/-1}.dash-widget-lighting-mini-light .lighting-room-cards>.lighting-room-card-cell-whole{flex-basis:100%}.dash-widget-lighting-mini-light .lighting-card.lighting-room-lights{background:var(--accent-soft);border:2px solid var(--accent)}.dash-widget-lighting-mini-light .lighting-card.lighting-room-lights.lighting-room-lights-on{box-shadow:0 0 0 3px var(--accent-soft)}.dash-widget-lighting-mini-light .lighting-room-lights-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--surface)}.dash-widget-lighting-mini-light .lighting-room-lights .lighting-card-title h2{letter-spacing:.01em}.dash-widget-lighting-mini-light .lighting-card.lighting-room-lights .lighting-card-controls{max-width:560px}.dash-widget-lighting-mini-light .lighting-card.lighting-room-lights.lighting-room-lights-silent,.dash-widget-lighting-mini-light .lighting-touch-room-lights.lighting-room-lights-silent{border-style:dashed}.dash-widget-lighting-mini-light .lighting-card.lighting-room-lights.lighting-room-lights-silent .lighting-room-lights-icon,.dash-widget-lighting-mini-light .lighting-touch-room-lights.lighting-room-lights-silent .lighting-room-lights-icon{background:var(--surface-muted);color:var(--muted)}.dash-widget-lighting-mini-light .lighting-touch-room-lights{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex:none;min-width:0;padding:12px 16px;border-radius:22px;background:var(--accent-soft);border:2px solid var(--accent);user-select:none;-webkit-user-select:none}.dash-widget-lighting-mini-light .lighting-touch-room-lights .lighting-room-lights-icon{width:48px;height:48px}.dash-widget-lighting-mini-light .lighting-touch-room-lights .lighting-room-lights-icon svg{width:26px;height:26px}.dash-widget-lighting-mini-light .lighting-touch-room-lights.lighting-room-lights-on{box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-mini-light .lighting-touch-room-lights-head{flex:0 1 auto;min-width:0}.dash-widget-lighting-mini-light .lighting-touch-room-lights-head h2{margin:0;font-size:22px;font-weight:650;color:var(--text);white-space:nowrap}.dash-widget-lighting-mini-light .lighting-touch-room-lights-head span{display:block;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-mini-light .lighting-touch-load.lighting-touch-load-across{flex:1 1 220px;flex-direction:row;align-items:center}.dash-widget-lighting-mini-light .lighting-touch-bar.lighting-touch-bar-across{flex:1 1 0;width:auto;max-width:none;min-width:0;min-height:0;height:58px;border-radius:18px;touch-action:none}.dash-widget-lighting-mini-light .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-fill{top:0;right:auto;transition:width .2s ease}.dash-widget-lighting-mini-light .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-level{top:50%;bottom:auto;transform:translateY(-50%);font-size:22px}.dash-widget-lighting-mini-light .lighting-touch-bar-across.lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-mini-light .lighting-room-entry{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.dash-widget-lighting-mini-light .lighting-room-entry .lighting-room-row{flex-wrap:wrap}.dash-widget-lighting-mini-light .lighting-room-entry .lighting-room-row .lighting-input:first-child{flex:1 1 160px}.dash-widget-lighting-mini-light .lighting-room-entry .lighting-room-actions{display:inline-flex;align-items:center;gap:8px;flex:none}.dash-widget-lighting-mini-light .lighting-room-control{display:flex;align-items:center;gap:8px;min-width:0}.dash-widget-lighting-mini-light .lighting-room-control .lighting-note{flex:none}.dash-widget-lighting-mini-light .lighting-room-control .lighting-room-control-select{flex:1;min-width:0}.dash-widget-lighting-room .container{padding:16px}.dash-widget-lighting-room .lighting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dash-widget-lighting-room .lighting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-lighting-room .lighting-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-lighting-room .lighting-card-unreachable{opacity:.6}.dash-widget-lighting-room .lighting-card-head{display:flex;align-items:center;gap:10px}.dash-widget-lighting-room .lighting-card-title{flex:1;min-width:0}.dash-widget-lighting-room .lighting-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-lighting-room .lighting-provider{color:var(--muted);font-size:12px}.dash-widget-lighting-room .lighting-swatch{width:14px;height:14px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border);flex:none}.dash-widget-lighting-room .lighting-dimmer{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-lighting-room .lighting-dimmer input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-lighting-room .lighting-dimmer-value{min-width:3ch;text-align:right}.dash-widget-lighting-room .lighting-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:4px;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:inherit;filter:none;cursor:pointer}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle:disabled{cursor:default;opacity:.5}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle:focus-visible .lighting-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-room .lighting-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}.dash-widget-lighting-room .lighting-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle-on{color:var(--text)}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-track{background:var(--accent);border-color:var(--accent)}.dash-widget-lighting-room button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-thumb{transform:translate(20px);background:var(--surface)}.dash-widget-lighting-room .lighting-toggle-label{min-width:2.5ch}.dash-widget-lighting-room .lighting-room{margin-bottom:20px}.dash-widget-lighting-room .lighting-room-name{margin:0 0 10px;font-size:16px}.dash-widget-lighting-room .lighting-card-compact{padding:10px;gap:8px}.dash-widget-lighting-room .lighting-card-compact .lighting-card-title h2{font-size:14px}.dash-widget-lighting-room .lighting-grid-compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.dash-widget-lighting-room .lighting-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-lighting-room .lighting-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-room .lighting-setting select{padding:6px 8px}.dash-widget-lighting-room button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-lighting-room button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-lighting-room button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-danger{color:var(--danger)}.dash-widget-lighting-room .lighting-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-lighting-room .lighting-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-lighting-room .lighting-modal{width:min(640px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-lighting-room .lighting-modal-head,.dash-widget-lighting-room .lighting-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-lighting-room .lighting-modal-head h2,.dash-widget-lighting-room .lighting-modal-foot h2{margin:0;font-size:17px}.dash-widget-lighting-room .lighting-modal-foot{justify-content:flex-end}.dash-widget-lighting-room .lighting-modal-section h3{margin:0 0 8px;font-size:14px}.dash-widget-lighting-room .lighting-room-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-room .lighting-room-row{display:flex;align-items:center;gap:8px}.dash-widget-lighting-room .lighting-room-row .lighting-input:first-child{flex:1}.dash-widget-lighting-room .lighting-room-light{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-room .lighting-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-lighting-room .lighting-widget-touch{height:100%;overflow:hidden}.dash-widget-lighting-room .lighting-touch{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;min-width:112px;padding:18px 14px 16px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-lighting-room .lighting-touch-loads{flex:1;min-height:0;width:100%;display:flex;gap:12px}.dash-widget-lighting-room .lighting-touch-load{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.dash-widget-lighting-room .lighting-touch-load.lighting-touch-unreachable{opacity:.5}.dash-widget-lighting-room .lighting-touch-load-name{max-width:100%;font-size:17px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-room .lighting-touch-head{width:100%;text-align:center}.dash-widget-lighting-room .lighting-touch-head h2{margin:0;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-room .lighting-touch-head span{display:block;margin-top:4px;font-size:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-room .lighting-touch-bar{position:relative;flex:1;width:62%;max-width:116px;min-height:120px;border-radius:20px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-lighting-room .lighting-touch-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-lighting-room .lighting-touch-fill{position:absolute;left:0;right:0;bottom:0;background:var(--text);transition:height .2s ease}.dash-widget-lighting-room .lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-room .lighting-touch-level{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:28px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-lighting-room button.lighting-touch-power.lighting-touch-power.lighting-touch-power{display:inline-flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--muted);filter:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.dash-widget-lighting-room button.lighting-touch-power.lighting-touch-power.lighting-touch-power:disabled{cursor:default}.dash-widget-lighting-room .lighting-touch-load.lighting-touch-on button.lighting-touch-power.lighting-touch-power.lighting-touch-power{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-room .lighting-widget-touch-room{display:flex;flex-direction:column;gap:10px}.dash-widget-lighting-room .lighting-touch-room-name{margin:0 4px;font-size:26px;font-weight:650}.dash-widget-lighting-room .lighting-touch-row{flex:1;min-height:0;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.dash-widget-lighting-room .lighting-touch-row .lighting-touch{flex:1 1 0}.dash-widget-lighting-room .lighting-load{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.dash-widget-lighting-room .lighting-load-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px}.dash-widget-lighting-room .lighting-room-cards{display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-room .lighting-room-card-cell{flex:1 1 0;display:flex}.dash-widget-lighting-room .lighting-room-card-cell>.lighting-card{flex:1}.dash-widget-lighting-room .lighting-setting-inline{flex-direction:row;align-items:center;gap:8px}.dash-widget-lighting-room .lighting-fixture{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.dash-widget-lighting-room .lighting-fixture-mode{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.dash-widget-lighting-room .lighting-fixture-loads{margin:0 0 0 18px}.dash-widget-lighting-room .lighting-name-input{flex:1}.dash-widget-lighting-room .lighting-room-row .lighting-room-select{flex:none;width:42%}.dash-widget-lighting-room .lighting-room-row .lighting-type-select{flex:none;width:30%}.dash-widget-lighting-room .lighting-room-row .lighting-type-select+.lighting-room-select{width:30%}.dash-widget-lighting-room .lighting-hidden{opacity:.85}.dash-widget-lighting-room .lighting-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-room button.lighting-btn.lighting-btn.lighting-hidden-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.dash-widget-lighting-room button.lighting-btn.lighting-btn.lighting-hidden-item .lighting-note{font-size:12px}.dash-widget-lighting-room .lighting-card-controls{display:flex;align-items:center;gap:10px}.dash-widget-lighting-room .lighting-card-controls .lighting-dimmer{flex:1;min-width:0}.dash-widget-lighting-room .lighting-card-openable{cursor:pointer}.dash-widget-lighting-room .lighting-card-openable:hover{border-color:var(--accent)}.dash-widget-lighting-room button.lighting-card-open.lighting-card-open.lighting-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-lighting-room button.lighting-card-open.lighting-card-open.lighting-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-room .lighting-field{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-room .lighting-field>span:first-child{font-weight:600}.dash-widget-lighting-room .lighting-widget-mini{height:100%}.dash-widget-lighting-room .lighting-mini{position:relative;display:flex;align-items:center;height:100%;min-height:56px;padding:0 14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--tile-radius, 14px);background:var(--surface-muted);color:var(--text);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.dash-widget-lighting-room .lighting-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-room .lighting-mini-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--accent);opacity:.28;transition:width .2s ease;pointer-events:none}.dash-widget-lighting-room .lighting-mini-dragging .lighting-mini-fill{transition:none}.dash-widget-lighting-room .lighting-mini-on{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-lighting-room .lighting-mini-icon{position:relative;display:inline-flex;flex:0 0 auto;margin-right:12px;color:var(--muted)}.dash-widget-lighting-room .lighting-mini-on .lighting-mini-icon{color:var(--accent)}.dash-widget-lighting-room .lighting-mini-words{position:relative;display:flex;flex-direction:column;min-width:0}.dash-widget-lighting-room .lighting-mini-words strong,.dash-widget-lighting-room .lighting-mini-words span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dash-widget-lighting-room .lighting-mini-words strong{font-size:.95rem}.dash-widget-lighting-room .lighting-mini-words span{font-size:.8rem;color:var(--muted)}.dash-widget-lighting-room .lighting-mini-unreachable{cursor:default;opacity:.6}.dash-widget-lighting-room .lighting-mini-touch{padding:0 20px}.dash-widget-lighting-room .lighting-mini-touch .lighting-mini-words strong{font-size:1.35rem}.dash-widget-lighting-room .lighting-mini-touch .lighting-mini-words span{font-size:1.05rem}.dash-widget-lighting-room .lighting-scene-list{display:flex;flex-wrap:wrap;gap:10px}.dash-widget-lighting-room .lighting-scene{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:140px;padding:10px 14px;text-align:left}.dash-widget-lighting-room .lighting-scene strong{font-size:.95rem}.dash-widget-lighting-room .lighting-scene-tile{width:100%;font:inherit;text-align:left}.dash-widget-lighting-room .lighting-grid>.lighting-room-lights{grid-column:1/-1}.dash-widget-lighting-room .lighting-room-cards>.lighting-room-card-cell-whole{flex-basis:100%}.dash-widget-lighting-room .lighting-card.lighting-room-lights{background:var(--accent-soft);border:2px solid var(--accent)}.dash-widget-lighting-room .lighting-card.lighting-room-lights.lighting-room-lights-on{box-shadow:0 0 0 3px var(--accent-soft)}.dash-widget-lighting-room .lighting-room-lights-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--surface)}.dash-widget-lighting-room .lighting-room-lights .lighting-card-title h2{letter-spacing:.01em}.dash-widget-lighting-room .lighting-card.lighting-room-lights .lighting-card-controls{max-width:560px}.dash-widget-lighting-room .lighting-card.lighting-room-lights.lighting-room-lights-silent,.dash-widget-lighting-room .lighting-touch-room-lights.lighting-room-lights-silent{border-style:dashed}.dash-widget-lighting-room .lighting-card.lighting-room-lights.lighting-room-lights-silent .lighting-room-lights-icon,.dash-widget-lighting-room .lighting-touch-room-lights.lighting-room-lights-silent .lighting-room-lights-icon{background:var(--surface-muted);color:var(--muted)}.dash-widget-lighting-room .lighting-touch-room-lights{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex:none;min-width:0;padding:12px 16px;border-radius:22px;background:var(--accent-soft);border:2px solid var(--accent);user-select:none;-webkit-user-select:none}.dash-widget-lighting-room .lighting-touch-room-lights .lighting-room-lights-icon{width:48px;height:48px}.dash-widget-lighting-room .lighting-touch-room-lights .lighting-room-lights-icon svg{width:26px;height:26px}.dash-widget-lighting-room .lighting-touch-room-lights.lighting-room-lights-on{box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-room .lighting-touch-room-lights-head{flex:0 1 auto;min-width:0}.dash-widget-lighting-room .lighting-touch-room-lights-head h2{margin:0;font-size:22px;font-weight:650;color:var(--text);white-space:nowrap}.dash-widget-lighting-room .lighting-touch-room-lights-head span{display:block;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-room .lighting-touch-load.lighting-touch-load-across{flex:1 1 220px;flex-direction:row;align-items:center}.dash-widget-lighting-room .lighting-touch-bar.lighting-touch-bar-across{flex:1 1 0;width:auto;max-width:none;min-width:0;min-height:0;height:58px;border-radius:18px;touch-action:none}.dash-widget-lighting-room .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-fill{top:0;right:auto;transition:width .2s ease}.dash-widget-lighting-room .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-level{top:50%;bottom:auto;transform:translateY(-50%);font-size:22px}.dash-widget-lighting-room .lighting-touch-bar-across.lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-room .lighting-room-entry{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.dash-widget-lighting-room .lighting-room-entry .lighting-room-row{flex-wrap:wrap}.dash-widget-lighting-room .lighting-room-entry .lighting-room-row .lighting-input:first-child{flex:1 1 160px}.dash-widget-lighting-room .lighting-room-entry .lighting-room-actions{display:inline-flex;align-items:center;gap:8px;flex:none}.dash-widget-lighting-room .lighting-room-control{display:flex;align-items:center;gap:8px;min-width:0}.dash-widget-lighting-room .lighting-room-control .lighting-note{flex:none}.dash-widget-lighting-room .lighting-room-control .lighting-room-control-select{flex:1;min-width:0}.dash-widget-lighting-scene .container{padding:16px}.dash-widget-lighting-scene .lighting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dash-widget-lighting-scene .lighting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-lighting-scene .lighting-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-lighting-scene .lighting-card-unreachable{opacity:.6}.dash-widget-lighting-scene .lighting-card-head{display:flex;align-items:center;gap:10px}.dash-widget-lighting-scene .lighting-card-title{flex:1;min-width:0}.dash-widget-lighting-scene .lighting-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-lighting-scene .lighting-provider{color:var(--muted);font-size:12px}.dash-widget-lighting-scene .lighting-swatch{width:14px;height:14px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border);flex:none}.dash-widget-lighting-scene .lighting-dimmer{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-lighting-scene .lighting-dimmer input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-lighting-scene .lighting-dimmer-value{min-width:3ch;text-align:right}.dash-widget-lighting-scene .lighting-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:4px;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:inherit;filter:none;cursor:pointer}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle:disabled{cursor:default;opacity:.5}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle:focus-visible .lighting-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-scene .lighting-toggle-track{position:relative;width:44px;height:24px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}.dash-widget-lighting-scene .lighting-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle-on{color:var(--text)}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-track{background:var(--accent);border-color:var(--accent)}.dash-widget-lighting-scene button.lighting-toggle.lighting-toggle.lighting-toggle-on .lighting-toggle-thumb{transform:translate(20px);background:var(--surface)}.dash-widget-lighting-scene .lighting-toggle-label{min-width:2.5ch}.dash-widget-lighting-scene .lighting-room{margin-bottom:20px}.dash-widget-lighting-scene .lighting-room-name{margin:0 0 10px;font-size:16px}.dash-widget-lighting-scene .lighting-card-compact{padding:10px;gap:8px}.dash-widget-lighting-scene .lighting-card-compact .lighting-card-title h2{font-size:14px}.dash-widget-lighting-scene .lighting-grid-compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.dash-widget-lighting-scene .lighting-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-lighting-scene .lighting-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-scene .lighting-setting select{padding:6px 8px}.dash-widget-lighting-scene button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-lighting-scene button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-lighting-scene button.lighting-btn.lighting-btn.lighting-btn.lighting-btn-danger{color:var(--danger)}.dash-widget-lighting-scene .lighting-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-lighting-scene .lighting-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-lighting-scene .lighting-modal{width:min(640px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-lighting-scene .lighting-modal-head,.dash-widget-lighting-scene .lighting-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-lighting-scene .lighting-modal-head h2,.dash-widget-lighting-scene .lighting-modal-foot h2{margin:0;font-size:17px}.dash-widget-lighting-scene .lighting-modal-foot{justify-content:flex-end}.dash-widget-lighting-scene .lighting-modal-section h3{margin:0 0 8px;font-size:14px}.dash-widget-lighting-scene .lighting-room-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-scene .lighting-room-row{display:flex;align-items:center;gap:8px}.dash-widget-lighting-scene .lighting-room-row .lighting-input:first-child{flex:1}.dash-widget-lighting-scene .lighting-room-light{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-scene .lighting-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-lighting-scene .lighting-widget-touch{height:100%;overflow:hidden}.dash-widget-lighting-scene .lighting-touch{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;min-width:112px;padding:18px 14px 16px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-lighting-scene .lighting-touch-loads{flex:1;min-height:0;width:100%;display:flex;gap:12px}.dash-widget-lighting-scene .lighting-touch-load{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.dash-widget-lighting-scene .lighting-touch-load.lighting-touch-unreachable{opacity:.5}.dash-widget-lighting-scene .lighting-touch-load-name{max-width:100%;font-size:17px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-scene .lighting-touch-head{width:100%;text-align:center}.dash-widget-lighting-scene .lighting-touch-head h2{margin:0;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-scene .lighting-touch-head span{display:block;margin-top:4px;font-size:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-scene .lighting-touch-bar{position:relative;flex:1;width:62%;max-width:116px;min-height:120px;border-radius:20px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-lighting-scene .lighting-touch-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-lighting-scene .lighting-touch-fill{position:absolute;left:0;right:0;bottom:0;background:var(--text);transition:height .2s ease}.dash-widget-lighting-scene .lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-scene .lighting-touch-level{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:28px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-lighting-scene button.lighting-touch-power.lighting-touch-power.lighting-touch-power{display:inline-flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--muted);filter:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}.dash-widget-lighting-scene button.lighting-touch-power.lighting-touch-power.lighting-touch-power:disabled{cursor:default}.dash-widget-lighting-scene .lighting-touch-load.lighting-touch-on button.lighting-touch-power.lighting-touch-power.lighting-touch-power{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-scene .lighting-widget-touch-room{display:flex;flex-direction:column;gap:10px}.dash-widget-lighting-scene .lighting-touch-room-name{margin:0 4px;font-size:26px;font-weight:650}.dash-widget-lighting-scene .lighting-touch-row{flex:1;min-height:0;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.dash-widget-lighting-scene .lighting-touch-row .lighting-touch{flex:1 1 0}.dash-widget-lighting-scene .lighting-load{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.dash-widget-lighting-scene .lighting-load-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:13px}.dash-widget-lighting-scene .lighting-room-cards{display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-scene .lighting-room-card-cell{flex:1 1 0;display:flex}.dash-widget-lighting-scene .lighting-room-card-cell>.lighting-card{flex:1}.dash-widget-lighting-scene .lighting-setting-inline{flex-direction:row;align-items:center;gap:8px}.dash-widget-lighting-scene .lighting-fixture{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.dash-widget-lighting-scene .lighting-fixture-mode{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.dash-widget-lighting-scene .lighting-fixture-loads{margin:0 0 0 18px}.dash-widget-lighting-scene .lighting-name-input{flex:1}.dash-widget-lighting-scene .lighting-room-row .lighting-room-select{flex:none;width:42%}.dash-widget-lighting-scene .lighting-room-row .lighting-type-select{flex:none;width:30%}.dash-widget-lighting-scene .lighting-room-row .lighting-type-select+.lighting-room-select{width:30%}.dash-widget-lighting-scene .lighting-hidden{opacity:.85}.dash-widget-lighting-scene .lighting-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-lighting-scene button.lighting-btn.lighting-btn.lighting-hidden-item{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.dash-widget-lighting-scene button.lighting-btn.lighting-btn.lighting-hidden-item .lighting-note{font-size:12px}.dash-widget-lighting-scene .lighting-card-controls{display:flex;align-items:center;gap:10px}.dash-widget-lighting-scene .lighting-card-controls .lighting-dimmer{flex:1;min-width:0}.dash-widget-lighting-scene .lighting-card-openable{cursor:pointer}.dash-widget-lighting-scene .lighting-card-openable:hover{border-color:var(--accent)}.dash-widget-lighting-scene button.lighting-card-open.lighting-card-open.lighting-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-lighting-scene button.lighting-card-open.lighting-card-open.lighting-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-scene .lighting-field{display:flex;flex-direction:column;gap:6px}.dash-widget-lighting-scene .lighting-field>span:first-child{font-weight:600}.dash-widget-lighting-scene .lighting-widget-mini{height:100%}.dash-widget-lighting-scene .lighting-mini{position:relative;display:flex;align-items:center;height:100%;min-height:56px;padding:0 14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--tile-radius, 14px);background:var(--surface-muted);color:var(--text);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.dash-widget-lighting-scene .lighting-mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-lighting-scene .lighting-mini-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--accent);opacity:.28;transition:width .2s ease;pointer-events:none}.dash-widget-lighting-scene .lighting-mini-dragging .lighting-mini-fill{transition:none}.dash-widget-lighting-scene .lighting-mini-on{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-lighting-scene .lighting-mini-icon{position:relative;display:inline-flex;flex:0 0 auto;margin-right:12px;color:var(--muted)}.dash-widget-lighting-scene .lighting-mini-on .lighting-mini-icon{color:var(--accent)}.dash-widget-lighting-scene .lighting-mini-words{position:relative;display:flex;flex-direction:column;min-width:0}.dash-widget-lighting-scene .lighting-mini-words strong,.dash-widget-lighting-scene .lighting-mini-words span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dash-widget-lighting-scene .lighting-mini-words strong{font-size:.95rem}.dash-widget-lighting-scene .lighting-mini-words span{font-size:.8rem;color:var(--muted)}.dash-widget-lighting-scene .lighting-mini-unreachable{cursor:default;opacity:.6}.dash-widget-lighting-scene .lighting-mini-touch{padding:0 20px}.dash-widget-lighting-scene .lighting-mini-touch .lighting-mini-words strong{font-size:1.35rem}.dash-widget-lighting-scene .lighting-mini-touch .lighting-mini-words span{font-size:1.05rem}.dash-widget-lighting-scene .lighting-scene-list{display:flex;flex-wrap:wrap;gap:10px}.dash-widget-lighting-scene .lighting-scene{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:140px;padding:10px 14px;text-align:left}.dash-widget-lighting-scene .lighting-scene strong{font-size:.95rem}.dash-widget-lighting-scene .lighting-scene-tile{width:100%;font:inherit;text-align:left}.dash-widget-lighting-scene .lighting-grid>.lighting-room-lights{grid-column:1/-1}.dash-widget-lighting-scene .lighting-room-cards>.lighting-room-card-cell-whole{flex-basis:100%}.dash-widget-lighting-scene .lighting-card.lighting-room-lights{background:var(--accent-soft);border:2px solid var(--accent)}.dash-widget-lighting-scene .lighting-card.lighting-room-lights.lighting-room-lights-on{box-shadow:0 0 0 3px var(--accent-soft)}.dash-widget-lighting-scene .lighting-room-lights-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--surface)}.dash-widget-lighting-scene .lighting-room-lights .lighting-card-title h2{letter-spacing:.01em}.dash-widget-lighting-scene .lighting-card.lighting-room-lights .lighting-card-controls{max-width:560px}.dash-widget-lighting-scene .lighting-card.lighting-room-lights.lighting-room-lights-silent,.dash-widget-lighting-scene .lighting-touch-room-lights.lighting-room-lights-silent{border-style:dashed}.dash-widget-lighting-scene .lighting-card.lighting-room-lights.lighting-room-lights-silent .lighting-room-lights-icon,.dash-widget-lighting-scene .lighting-touch-room-lights.lighting-room-lights-silent .lighting-room-lights-icon{background:var(--surface-muted);color:var(--muted)}.dash-widget-lighting-scene .lighting-touch-room-lights{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex:none;min-width:0;padding:12px 16px;border-radius:22px;background:var(--accent-soft);border:2px solid var(--accent);user-select:none;-webkit-user-select:none}.dash-widget-lighting-scene .lighting-touch-room-lights .lighting-room-lights-icon{width:48px;height:48px}.dash-widget-lighting-scene .lighting-touch-room-lights .lighting-room-lights-icon svg{width:26px;height:26px}.dash-widget-lighting-scene .lighting-touch-room-lights.lighting-room-lights-on{box-shadow:0 0 0 4px var(--accent-soft)}.dash-widget-lighting-scene .lighting-touch-room-lights-head{flex:0 1 auto;min-width:0}.dash-widget-lighting-scene .lighting-touch-room-lights-head h2{margin:0;font-size:22px;font-weight:650;color:var(--text);white-space:nowrap}.dash-widget-lighting-scene .lighting-touch-room-lights-head span{display:block;font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-lighting-scene .lighting-touch-load.lighting-touch-load-across{flex:1 1 220px;flex-direction:row;align-items:center}.dash-widget-lighting-scene .lighting-touch-bar.lighting-touch-bar-across{flex:1 1 0;width:auto;max-width:none;min-width:0;min-height:0;height:58px;border-radius:18px;touch-action:none}.dash-widget-lighting-scene .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-fill{top:0;right:auto;transition:width .2s ease}.dash-widget-lighting-scene .lighting-touch-bar.lighting-touch-bar-across .lighting-touch-level{top:50%;bottom:auto;transform:translateY(-50%);font-size:22px}.dash-widget-lighting-scene .lighting-touch-bar-across.lighting-touch-bar-dragging .lighting-touch-fill{transition:none}.dash-widget-lighting-scene .lighting-room-entry{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.dash-widget-lighting-scene .lighting-room-entry .lighting-room-row{flex-wrap:wrap}.dash-widget-lighting-scene .lighting-room-entry .lighting-room-row .lighting-input:first-child{flex:1 1 160px}.dash-widget-lighting-scene .lighting-room-entry .lighting-room-actions{display:inline-flex;align-items:center;gap:8px;flex:none}.dash-widget-lighting-scene .lighting-room-control{display:flex;align-items:center;gap:8px;min-width:0}.dash-widget-lighting-scene .lighting-room-control .lighting-note{flex:none}.dash-widget-lighting-scene .lighting-room-control .lighting-room-control-select{flex:1;min-width:0}.dash-widget-media-player .container{padding:16px}.dash-widget-media-player .media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.dash-widget-media-player .media-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-media-player .media-card-playing{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-media-player .media-card-unreachable{opacity:.6}.dash-widget-media-player .media-card-head{display:flex;align-items:flex-start;gap:10px}.dash-widget-media-player .media-card-title{flex:1;min-width:0}.dash-widget-media-player .media-card-title h2{margin:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-card-meta{color:var(--muted);font-size:12px}.dash-widget-media-player .media-state{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--border)}.dash-widget-media-player .media-state-playing{color:var(--accent);border-color:var(--accent)}.dash-widget-media-player .media-now-playing{display:flex;align-items:center;gap:10px;min-width:0}.dash-widget-media-player .media-artwork{flex:none;width:56px;height:56px;border-radius:6px;object-fit:cover;background:var(--surface-muted)}.dash-widget-media-player .media-now-playing-text{display:flex;flex-direction:column;min-width:0}.dash-widget-media-player .media-now-playing-text strong,.dash-widget-media-player .media-now-playing-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-now-playing-text strong{color:var(--text);font-size:14px}.dash-widget-media-player .media-now-playing-text span{color:var(--muted);font-size:12px}.dash-widget-media-player .media-note{margin:0;color:var(--muted);font-size:13px}.dash-widget-media-player .media-transport{display:flex;align-items:center;gap:8px}.dash-widget-media-player button.media-control.media-control.media-control{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-media-player button.media-control.media-control.media-control:disabled{cursor:default;opacity:.5}.dash-widget-media-player button.media-control.media-control.media-control.media-control-primary{width:44px;height:44px;background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-player button.media-control.media-control.media-control.media-mute-on{color:var(--danger)}.dash-widget-media-player button.media-control.media-control.media-control.media-power{flex:none;width:30px;height:30px;color:var(--muted)}.dash-widget-media-player button.media-control.media-control.media-control.media-power-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-player button.media-control.media-control.media-control.media-art{flex:none;width:30px;height:30px;color:var(--muted)}.dash-widget-media-player button.media-control.media-control.media-control.media-art-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-player .media-power-pair{display:inline-flex;gap:6px}.dash-widget-media-player button.media-control.media-control.media-control.media-power-worded{width:auto;padding:0 10px;gap:4px;border-radius:999px}.dash-widget-media-player .media-power-word{font-size:12px;font-weight:600}.dash-widget-media-player button.media-card-open.media-card-open.media-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-media-player button.media-card-open.media-card-open.media-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-player .media-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-media-player .media-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-media-player .media-modal{width:min(600px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-media-player .media-modal-head,.dash-widget-media-player .media-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-media-player .media-modal-head h2,.dash-widget-media-player .media-modal-foot h2{margin:0;font-size:17px}.dash-widget-media-player .media-modal-foot{justify-content:flex-end}.dash-widget-media-player .media-field{display:flex;flex-direction:column;gap:6px}.dash-widget-media-player .media-field>span:first-child,.dash-widget-media-player .media-field>legend{font-weight:600}.dash-widget-media-player .media-fieldset{margin:0;padding:0;border:0;min-width:0}.dash-widget-media-player .media-check{display:flex;align-items:center;gap:8px}.dash-widget-media-player .media-route{display:grid;grid-template-columns:9em 1fr;align-items:center;gap:8px}.dash-widget-media-player button.media-btn.media-btn.media-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;filter:none;cursor:pointer}.dash-widget-media-player button.media-btn.media-btn.media-btn.media-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-player .media-state-standby{color:var(--muted);border-style:dashed}.dash-widget-media-player .media-volume{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-media-player .media-volume input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-media-player .media-volume-value{min-width:4ch;text-align:right}.dash-widget-media-player .media-card-compact{padding:10px;gap:8px}.dash-widget-media-player .media-widget{height:100%;overflow:auto}.dash-widget-media-player .media-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-media-player .media-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-media-player .media-setting select,.dash-widget-media-player .media-setting input{padding:6px 8px}.dash-widget-media-player .media-widget-touch{height:100%;overflow:hidden}.dash-widget-media-player .media-touch{display:flex;flex-direction:column;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-media-player .media-touch-unavailable{opacity:.6}.dash-widget-media-player .media-touch-head{display:flex;align-items:flex-start;gap:14px}.dash-widget-media-player .media-touch-head-text{flex:1;min-width:0}.dash-widget-media-player .media-touch-head-text h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-touch-head-text span{display:block;margin-top:4px;font-size:17px;color:var(--muted)}.dash-widget-media-player .media-touch-now{flex:1;min-height:0;display:flex;align-items:center;gap:14px}.dash-widget-media-player .media-touch-artwork{flex:none;width:92px;height:92px;border-radius:12px;object-fit:cover;background:var(--surface-muted)}.dash-widget-media-player .media-touch-text{min-width:0;display:flex;flex-direction:column;gap:4px}.dash-widget-media-player .media-touch-text strong{font-size:30px;line-height:1.2;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dash-widget-media-player .media-touch-text span{font-size:20px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-touch-transport{display:flex;align-items:center;justify-content:center;gap:28px}.dash-widget-media-player .media-touch-spacer{width:64px;height:64px}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:64px;height:64px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button:disabled{cursor:default;opacity:.5}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-button-primary{width:88px;height:88px;border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 0 0 5px var(--accent-soft)}.dash-widget-media-player .media-touch-volume{display:flex;align-items:center;gap:12px}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-art{width:60px;height:60px;color:var(--muted)}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-art.media-art-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded{width:auto;padding:0 16px;gap:6px;border-radius:999px}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded .media-power-word{font-size:19px}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-power{width:60px;height:60px;color:var(--muted)}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute{width:56px;height:56px}.dash-widget-media-player button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute-on{color:var(--danger);border-color:var(--danger)}.dash-widget-media-player .media-touch-volume-bar{position:relative;flex:1;height:52px;border-radius:16px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-media-player .media-touch-volume-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-media-player .media-touch-volume-fill{position:absolute;top:0;bottom:0;left:0;background:var(--text);transition:width .2s ease}.dash-widget-media-player .media-touch-volume-fill-muted{opacity:.35}.dash-widget-media-player .media-touch-volume-bar-dragging .media-touch-volume-fill{transition:none}.dash-widget-media-player .media-touch-volume-level{position:absolute;top:50%;left:16px;transform:translateY(-50%);font-size:24px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-media-player .media-card-opens{cursor:pointer}.dash-widget-media-player button.media-touch-open.media-touch-open.media-touch-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-media-player button.media-touch-open.media-touch-open.media-touch-open:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-media-player dialog.media-remote{width:min(560px,100% - 24px);max-width:none;max-height:calc(100% - 24px);margin:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);overflow:auto;box-shadow:0 24px 60px #00000059}.dash-widget-media-player dialog.media-remote::backdrop{background:#00000080}.dash-widget-media-player .media-remote-body{display:flex;flex-direction:column;gap:16px;padding:16px}.dash-widget-media-player .media-remote-head{display:flex;align-items:center;gap:8px}.dash-widget-media-player .media-remote-title{flex:1;min-width:0}.dash-widget-media-player .media-remote-title h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-remote-title span{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-remote-said{color:var(--accent)}.dash-widget-media-player .media-remote-keys{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px}.dash-widget-media-player .media-remote-pad{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,64px);gap:6px}.dash-widget-media-player .media-remote-key-up{grid-column:2;grid-row:1}.dash-widget-media-player .media-remote-key-left{grid-column:1;grid-row:2}.dash-widget-media-player .media-remote-key-select{grid-column:2;grid-row:2}.dash-widget-media-player .media-remote-key-right{grid-column:3;grid-row:2}.dash-widget-media-player .media-remote-key-down{grid-column:2;grid-row:3}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font:inherit;font-weight:700;filter:none;cursor:pointer;touch-action:manipulation}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key:active:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key:disabled{cursor:default;opacity:.5}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-select{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-player .media-remote-ok{font-size:17px;letter-spacing:.02em}.dash-widget-media-player .media-remote-side{display:flex;flex-direction:column;gap:8px}.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.dash-widget-media-player button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{justify-content:flex-start;gap:8px;width:116px;height:44px;padding:0 14px;border-radius:999px}.dash-widget-media-player .media-remote-key-word{font-size:14px;font-weight:600}.dash-widget-media-player .media-remote-apps{display:flex;flex-direction:column;gap:12px}.dash-widget-media-player .media-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.dash-widget-media-player .media-app-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}.dash-widget-media-player .media-app-list h3{margin:0 0 2px;font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-media-player button.media-app.media-app.media-app{display:flex;align-items:center;justify-content:flex-start;min-width:0;min-height:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-align:left;filter:none;cursor:pointer;touch-action:manipulation}.dash-widget-media-player button.media-app.media-app.media-app:hover:not(:disabled){border-color:var(--accent)}.dash-widget-media-player button.media-app.media-app.media-app:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-player button.media-app.media-app.media-app:disabled{cursor:default;opacity:.6}.dash-widget-media-player button.media-app.media-app.media-app.media-app-featured{align-items:flex-end;justify-content:center;min-height:76px;padding:12px 14px;background:var(--surface-muted);font-size:16px}.dash-widget-media-player button.media-app.media-app.media-app.media-app-launching{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);opacity:1}.dash-widget-media-player .media-app-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-player .media-remote-sources h3{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-media-player .media-sources{display:flex;flex-wrap:wrap;gap:6px}.dash-widget-media-player button.media-app.media-app.media-app.media-source{gap:6px;padding:8px 12px;border-radius:999px}.dash-widget-media-player button.media-app.media-app.media-app.media-source-current{background:var(--accent);border-color:var(--accent);color:var(--surface);opacity:1}.dash-widget-media-player .media-source-mark{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}.dash-widget-media-player .media-remote-tile{display:flex;flex-direction:column;gap:12px}.dash-widget-media-player .media-remote-tile .media-remote-keys{gap:14px}.dash-widget-media-player .media-remote-tile .media-remote-pad{grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px)}.dash-widget-media-player .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.dash-widget-media-player .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.dash-widget-media-player .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{width:100px}.dash-widget-media-player .media-remote-tile .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.dash-widget-media-player .media-remote-tile button.media-app.media-app.media-app.media-app-featured{min-height:44px;font-size:14px}.dash-widget-media-player button.media-btn.media-btn.media-btn.media-remote-all{align-self:stretch}.dash-widget-media-player .media-remote-tile-touch{gap:18px}.dash-widget-media-player .media-remote-tile-touch .media-remote-title h2{font-size:24px}.dash-widget-media-player .media-remote-tile-touch .media-remote-pad{grid-template-columns:repeat(3,76px);grid-template-rows:repeat(3,76px);gap:8px}.dash-widget-media-player .media-remote-tile-touch .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.dash-widget-media-player .media-remote-tile-touch .media-remote-side button.media-remote-key.media-remote-key.media-remote-key{width:132px;height:58px}.dash-widget-media-player .media-remote-tile-touch button.media-app.media-app.media-app.media-app-featured,.dash-widget-media-player .media-remote-tile-touch button.media-app.media-app.media-app.media-source,.dash-widget-media-player .media-remote-tile-touch button.media-btn.media-btn.media-btn.media-remote-all{min-height:64px;font-size:18px}@media(max-width:480px){.dash-widget-media-player .media-remote-pad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px)}.dash-widget-media-player .media-remote-side{flex-direction:row;flex-wrap:wrap;justify-content:center}}.dash-widget-media-remote .container{padding:16px}.dash-widget-media-remote .media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.dash-widget-media-remote .media-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}.dash-widget-media-remote .media-card-playing{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-media-remote .media-card-unreachable{opacity:.6}.dash-widget-media-remote .media-card-head{display:flex;align-items:flex-start;gap:10px}.dash-widget-media-remote .media-card-title{flex:1;min-width:0}.dash-widget-media-remote .media-card-title h2{margin:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-card-meta{color:var(--muted);font-size:12px}.dash-widget-media-remote .media-state{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--border)}.dash-widget-media-remote .media-state-playing{color:var(--accent);border-color:var(--accent)}.dash-widget-media-remote .media-now-playing{display:flex;align-items:center;gap:10px;min-width:0}.dash-widget-media-remote .media-artwork{flex:none;width:56px;height:56px;border-radius:6px;object-fit:cover;background:var(--surface-muted)}.dash-widget-media-remote .media-now-playing-text{display:flex;flex-direction:column;min-width:0}.dash-widget-media-remote .media-now-playing-text strong,.dash-widget-media-remote .media-now-playing-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-now-playing-text strong{color:var(--text);font-size:14px}.dash-widget-media-remote .media-now-playing-text span{color:var(--muted);font-size:12px}.dash-widget-media-remote .media-note{margin:0;color:var(--muted);font-size:13px}.dash-widget-media-remote .media-transport{display:flex;align-items:center;gap:8px}.dash-widget-media-remote button.media-control.media-control.media-control{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-media-remote button.media-control.media-control.media-control:disabled{cursor:default;opacity:.5}.dash-widget-media-remote button.media-control.media-control.media-control.media-control-primary{width:44px;height:44px;background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-remote button.media-control.media-control.media-control.media-mute-on{color:var(--danger)}.dash-widget-media-remote button.media-control.media-control.media-control.media-power{flex:none;width:30px;height:30px;color:var(--muted)}.dash-widget-media-remote button.media-control.media-control.media-control.media-power-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-remote button.media-control.media-control.media-control.media-art{flex:none;width:30px;height:30px;color:var(--muted)}.dash-widget-media-remote button.media-control.media-control.media-control.media-art-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-remote .media-power-pair{display:inline-flex;gap:6px}.dash-widget-media-remote button.media-control.media-control.media-control.media-power-worded{width:auto;padding:0 10px;gap:4px;border-radius:999px}.dash-widget-media-remote .media-power-word{font-size:12px;font-weight:600}.dash-widget-media-remote button.media-card-open.media-card-open.media-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-media-remote button.media-card-open.media-card-open.media-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-remote .media-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-media-remote .media-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-media-remote .media-modal{width:min(600px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-media-remote .media-modal-head,.dash-widget-media-remote .media-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-media-remote .media-modal-head h2,.dash-widget-media-remote .media-modal-foot h2{margin:0;font-size:17px}.dash-widget-media-remote .media-modal-foot{justify-content:flex-end}.dash-widget-media-remote .media-field{display:flex;flex-direction:column;gap:6px}.dash-widget-media-remote .media-field>span:first-child,.dash-widget-media-remote .media-field>legend{font-weight:600}.dash-widget-media-remote .media-fieldset{margin:0;padding:0;border:0;min-width:0}.dash-widget-media-remote .media-check{display:flex;align-items:center;gap:8px}.dash-widget-media-remote .media-route{display:grid;grid-template-columns:9em 1fr;align-items:center;gap:8px}.dash-widget-media-remote button.media-btn.media-btn.media-btn{min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;filter:none;cursor:pointer}.dash-widget-media-remote button.media-btn.media-btn.media-btn.media-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-remote .media-state-standby{color:var(--muted);border-style:dashed}.dash-widget-media-remote .media-volume{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.dash-widget-media-remote .media-volume input{flex:1 1 0;min-width:0;width:0;accent-color:var(--accent)}.dash-widget-media-remote .media-volume-value{min-width:4ch;text-align:right}.dash-widget-media-remote .media-card-compact{padding:10px;gap:8px}.dash-widget-media-remote .media-widget{height:100%;overflow:auto}.dash-widget-media-remote .media-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-media-remote .media-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-media-remote .media-setting select,.dash-widget-media-remote .media-setting input{padding:6px 8px}.dash-widget-media-remote .media-widget-touch{height:100%;overflow:hidden}.dash-widget-media-remote .media-touch{display:flex;flex-direction:column;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:1px solid var(--border);user-select:none;-webkit-user-select:none}.dash-widget-media-remote .media-touch-unavailable{opacity:.6}.dash-widget-media-remote .media-touch-head{display:flex;align-items:flex-start;gap:14px}.dash-widget-media-remote .media-touch-head-text{flex:1;min-width:0}.dash-widget-media-remote .media-touch-head-text h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-touch-head-text span{display:block;margin-top:4px;font-size:17px;color:var(--muted)}.dash-widget-media-remote .media-touch-now{flex:1;min-height:0;display:flex;align-items:center;gap:14px}.dash-widget-media-remote .media-touch-artwork{flex:none;width:92px;height:92px;border-radius:12px;object-fit:cover;background:var(--surface-muted)}.dash-widget-media-remote .media-touch-text{min-width:0;display:flex;flex-direction:column;gap:4px}.dash-widget-media-remote .media-touch-text strong{font-size:30px;line-height:1.2;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dash-widget-media-remote .media-touch-text span{font-size:20px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-touch-transport{display:flex;align-items:center;justify-content:center;gap:28px}.dash-widget-media-remote .media-touch-spacer{width:64px;height:64px}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:64px;height:64px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button:disabled{cursor:default;opacity:.5}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-button-primary{width:88px;height:88px;border-color:var(--accent);background:var(--accent);color:var(--surface);box-shadow:0 0 0 5px var(--accent-soft)}.dash-widget-media-remote .media-touch-volume{display:flex;align-items:center;gap:12px}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-art{width:60px;height:60px;color:var(--muted)}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-art.media-art-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded{width:auto;padding:0 16px;gap:6px;border-radius:999px}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-worded .media-power-word{font-size:19px}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-power{width:60px;height:60px;color:var(--muted)}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-power.media-power-on{color:var(--accent);border-color:var(--accent)}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute{width:56px;height:56px}.dash-widget-media-remote button.media-touch-button.media-touch-button.media-touch-button.media-touch-mute-on{color:var(--danger);border-color:var(--danger)}.dash-widget-media-remote .media-touch-volume-bar{position:relative;flex:1;height:52px;border-radius:16px;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;touch-action:none}.dash-widget-media-remote .media-touch-volume-bar:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-media-remote .media-touch-volume-fill{position:absolute;top:0;bottom:0;left:0;background:var(--text);transition:width .2s ease}.dash-widget-media-remote .media-touch-volume-fill-muted{opacity:.35}.dash-widget-media-remote .media-touch-volume-bar-dragging .media-touch-volume-fill{transition:none}.dash-widget-media-remote .media-touch-volume-level{position:absolute;top:50%;left:16px;transform:translateY(-50%);font-size:24px;font-weight:700;color:#fff;mix-blend-mode:difference;pointer-events:none}.dash-widget-media-remote .media-card-opens{cursor:pointer}.dash-widget-media-remote button.media-touch-open.media-touch-open.media-touch-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-media-remote button.media-touch-open.media-touch-open.media-touch-open:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dash-widget-media-remote dialog.media-remote{width:min(560px,100% - 24px);max-width:none;max-height:calc(100% - 24px);margin:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);overflow:auto;box-shadow:0 24px 60px #00000059}.dash-widget-media-remote dialog.media-remote::backdrop{background:#00000080}.dash-widget-media-remote .media-remote-body{display:flex;flex-direction:column;gap:16px;padding:16px}.dash-widget-media-remote .media-remote-head{display:flex;align-items:center;gap:8px}.dash-widget-media-remote .media-remote-title{flex:1;min-width:0}.dash-widget-media-remote .media-remote-title h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-remote-title span{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-remote-said{color:var(--accent)}.dash-widget-media-remote .media-remote-keys{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px}.dash-widget-media-remote .media-remote-pad{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,64px);gap:6px}.dash-widget-media-remote .media-remote-key-up{grid-column:2;grid-row:1}.dash-widget-media-remote .media-remote-key-left{grid-column:1;grid-row:2}.dash-widget-media-remote .media-remote-key-select{grid-column:2;grid-row:2}.dash-widget-media-remote .media-remote-key-right{grid-column:3;grid-row:2}.dash-widget-media-remote .media-remote-key-down{grid-column:2;grid-row:3}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font:inherit;font-weight:700;filter:none;cursor:pointer;touch-action:manipulation}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key:active:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key:disabled{cursor:default;opacity:.5}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-select{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-media-remote .media-remote-ok{font-size:17px;letter-spacing:.02em}.dash-widget-media-remote .media-remote-side{display:flex;flex-direction:column;gap:8px}.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.dash-widget-media-remote button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{justify-content:flex-start;gap:8px;width:116px;height:44px;padding:0 14px;border-radius:999px}.dash-widget-media-remote .media-remote-key-word{font-size:14px;font-weight:600}.dash-widget-media-remote .media-remote-apps{display:flex;flex-direction:column;gap:12px}.dash-widget-media-remote .media-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.dash-widget-media-remote .media-app-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}.dash-widget-media-remote .media-app-list h3{margin:0 0 2px;font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-media-remote button.media-app.media-app.media-app{display:flex;align-items:center;justify-content:flex-start;min-width:0;min-height:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-align:left;filter:none;cursor:pointer;touch-action:manipulation}.dash-widget-media-remote button.media-app.media-app.media-app:hover:not(:disabled){border-color:var(--accent)}.dash-widget-media-remote button.media-app.media-app.media-app:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-media-remote button.media-app.media-app.media-app:disabled{cursor:default;opacity:.6}.dash-widget-media-remote button.media-app.media-app.media-app.media-app-featured{align-items:flex-end;justify-content:center;min-height:76px;padding:12px 14px;background:var(--surface-muted);font-size:16px}.dash-widget-media-remote button.media-app.media-app.media-app.media-app-launching{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);opacity:1}.dash-widget-media-remote .media-app-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-media-remote .media-remote-sources h3{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-media-remote .media-sources{display:flex;flex-wrap:wrap;gap:6px}.dash-widget-media-remote button.media-app.media-app.media-app.media-source{gap:6px;padding:8px 12px;border-radius:999px}.dash-widget-media-remote button.media-app.media-app.media-app.media-source-current{background:var(--accent);border-color:var(--accent);color:var(--surface);opacity:1}.dash-widget-media-remote .media-source-mark{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}.dash-widget-media-remote .media-remote-tile{display:flex;flex-direction:column;gap:12px}.dash-widget-media-remote .media-remote-tile .media-remote-keys{gap:14px}.dash-widget-media-remote .media-remote-tile .media-remote-pad{grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px)}.dash-widget-media-remote .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-home,.dash-widget-media-remote .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-back,.dash-widget-media-remote .media-remote-tile button.media-remote-key.media-remote-key.media-remote-key.media-remote-key-menu{width:100px}.dash-widget-media-remote .media-remote-tile .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.dash-widget-media-remote .media-remote-tile button.media-app.media-app.media-app.media-app-featured{min-height:44px;font-size:14px}.dash-widget-media-remote button.media-btn.media-btn.media-btn.media-remote-all{align-self:stretch}.dash-widget-media-remote .media-remote-tile-touch{gap:18px}.dash-widget-media-remote .media-remote-tile-touch .media-remote-title h2{font-size:24px}.dash-widget-media-remote .media-remote-tile-touch .media-remote-pad{grid-template-columns:repeat(3,76px);grid-template-rows:repeat(3,76px);gap:8px}.dash-widget-media-remote .media-remote-tile-touch .media-app-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.dash-widget-media-remote .media-remote-tile-touch .media-remote-side button.media-remote-key.media-remote-key.media-remote-key{width:132px;height:58px}.dash-widget-media-remote .media-remote-tile-touch button.media-app.media-app.media-app.media-app-featured,.dash-widget-media-remote .media-remote-tile-touch button.media-app.media-app.media-app.media-source,.dash-widget-media-remote .media-remote-tile-touch button.media-btn.media-btn.media-btn.media-remote-all{min-height:64px;font-size:18px}@media(max-width:480px){.dash-widget-media-remote .media-remote-pad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px)}.dash-widget-media-remote .media-remote-side{flex-direction:row;flex-wrap:wrap;justify-content:center}}.dash-widget-presence-room .container{padding:16px}.dash-widget-presence-room .presence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.dash-widget-presence-room .presence-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.dash-widget-presence-room .presence-card-occupied{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-presence-room .presence-card-open{border-color:var(--warning)}.dash-widget-presence-room .presence-card-unreachable{opacity:.6}.dash-widget-presence-room .presence-card-openable{cursor:pointer}.dash-widget-presence-room .presence-card-openable:hover{border-color:var(--accent)}.dash-widget-presence-room .presence-card-head{display:flex;align-items:center;gap:10px}.dash-widget-presence-room .presence-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border)}.dash-widget-presence-room .presence-card-title{flex:1;min-width:0}.dash-widget-presence-room .presence-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-presence-room .presence-card-meta{display:block;color:var(--muted);font-size:12px}.dash-widget-presence-room button.presence-card-open.presence-card-open.presence-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-presence-room button.presence-card-open.presence-card-open.presence-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-presence-room .presence-card-state{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.dash-widget-presence-room .presence-state{font-size:18px}.dash-widget-presence-room .presence-since,.dash-widget-presence-room .presence-card-foot{color:var(--muted);font-size:12px}.dash-widget-presence-room .presence-card-foot{display:flex;gap:10px}.dash-widget-presence-room .presence-battery-low{color:var(--danger)}.dash-widget-presence-room .presence-tone-occupied{color:var(--accent)}.dash-widget-presence-room .presence-icon.presence-tone-occupied{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-presence-room .presence-tone-open{color:var(--warning)}.dash-widget-presence-room .presence-icon.presence-tone-open{border-color:var(--warning)}.dash-widget-presence-room .presence-tone-quiet,.dash-widget-presence-room .presence-tone-unknown{color:var(--muted)}.dash-widget-presence-room .presence-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-presence-room .presence-room{margin-bottom:20px}.dash-widget-presence-room .presence-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.dash-widget-presence-room .presence-room-state{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.dash-widget-presence-room .presence-card-compact{padding:10px;gap:6px}.dash-widget-presence-room .presence-card-compact .presence-card-title h2{font-size:14px}.dash-widget-presence-room .presence-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-presence-room .presence-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.dash-widget-presence-room .presence-widget-room-head{display:flex;align-items:center;gap:8px}.dash-widget-presence-room .presence-widget-room-head h2{margin:0;font-size:15px}.dash-widget-presence-room .presence-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-presence-room .presence-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-presence-room .presence-setting select,.dash-widget-presence-room .presence-setting input{padding:6px 8px}.dash-widget-presence-room .presence-setting-check{display:flex;align-items:center;gap:8px}.dash-widget-presence-room .presence-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-presence-room .presence-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-presence-room .presence-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-presence-room .presence-modal-head,.dash-widget-presence-room .presence-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-presence-room .presence-modal-head h2,.dash-widget-presence-room .presence-modal-foot h2{margin:0;font-size:17px}.dash-widget-presence-room .presence-modal-foot{justify-content:flex-end}.dash-widget-presence-room .presence-field{display:flex;flex-direction:column;gap:6px}.dash-widget-presence-room .presence-field>span:first-child{font-weight:600}.dash-widget-presence-room button.presence-btn.presence-btn.presence-btn.presence-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-presence-room .presence-hidden{opacity:.85}.dash-widget-presence-room .presence-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-presence-room .presence-widget-touch{height:100%;overflow:hidden}.dash-widget-presence-room .presence-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-width:140px;padding:18px 14px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);text-align:center;user-select:none;-webkit-user-select:none}.dash-widget-presence-room .presence-touch-occupied{border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.dash-widget-presence-room .presence-touch-open{border-color:var(--warning)}.dash-widget-presence-room .presence-touch-unknown{opacity:.7}.dash-widget-presence-room .presence-touch-icon{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;border:2px solid currentColor}.dash-widget-presence-room .presence-touch-name{margin:0;max-width:100%;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-presence-room .presence-touch-state{font-size:34px;font-weight:700;line-height:1.1}.dash-widget-presence-room .presence-touch-since{font-size:19px;color:var(--muted)}.dash-widget-presence-room .presence-touch-room{justify-content:flex-start;overflow:hidden}.dash-widget-presence-room .presence-touch-room-state{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;justify-content:center}.dash-widget-presence-room .presence-touch-contacts{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.dash-widget-presence-room .presence-touch-contact{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:2px solid var(--border);font-size:19px;color:var(--muted)}.dash-widget-presence-room .presence-touch-contact.presence-tone-open{color:var(--warning);border-color:var(--warning)}.dash-widget-presence-sensor .container{padding:16px}.dash-widget-presence-sensor .presence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.dash-widget-presence-sensor .presence-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.dash-widget-presence-sensor .presence-card-occupied{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.dash-widget-presence-sensor .presence-card-open{border-color:var(--warning)}.dash-widget-presence-sensor .presence-card-unreachable{opacity:.6}.dash-widget-presence-sensor .presence-card-openable{cursor:pointer}.dash-widget-presence-sensor .presence-card-openable:hover{border-color:var(--accent)}.dash-widget-presence-sensor .presence-card-head{display:flex;align-items:center;gap:10px}.dash-widget-presence-sensor .presence-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--surface-muted);border:1px solid var(--border)}.dash-widget-presence-sensor .presence-card-title{flex:1;min-width:0}.dash-widget-presence-sensor .presence-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-presence-sensor .presence-card-meta{display:block;color:var(--muted);font-size:12px}.dash-widget-presence-sensor button.presence-card-open.presence-card-open.presence-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-presence-sensor button.presence-card-open.presence-card-open.presence-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-presence-sensor .presence-card-state{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.dash-widget-presence-sensor .presence-state{font-size:18px}.dash-widget-presence-sensor .presence-since,.dash-widget-presence-sensor .presence-card-foot{color:var(--muted);font-size:12px}.dash-widget-presence-sensor .presence-card-foot{display:flex;gap:10px}.dash-widget-presence-sensor .presence-battery-low{color:var(--danger)}.dash-widget-presence-sensor .presence-tone-occupied{color:var(--accent)}.dash-widget-presence-sensor .presence-icon.presence-tone-occupied{border-color:var(--accent);background:var(--accent-soft)}.dash-widget-presence-sensor .presence-tone-open{color:var(--warning)}.dash-widget-presence-sensor .presence-icon.presence-tone-open{border-color:var(--warning)}.dash-widget-presence-sensor .presence-tone-quiet,.dash-widget-presence-sensor .presence-tone-unknown{color:var(--muted)}.dash-widget-presence-sensor .presence-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-presence-sensor .presence-room{margin-bottom:20px}.dash-widget-presence-sensor .presence-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.dash-widget-presence-sensor .presence-room-state{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.dash-widget-presence-sensor .presence-card-compact{padding:10px;gap:6px}.dash-widget-presence-sensor .presence-card-compact .presence-card-title h2{font-size:14px}.dash-widget-presence-sensor .presence-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-presence-sensor .presence-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.dash-widget-presence-sensor .presence-widget-room-head{display:flex;align-items:center;gap:8px}.dash-widget-presence-sensor .presence-widget-room-head h2{margin:0;font-size:15px}.dash-widget-presence-sensor .presence-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-presence-sensor .presence-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-presence-sensor .presence-setting select,.dash-widget-presence-sensor .presence-setting input{padding:6px 8px}.dash-widget-presence-sensor .presence-setting-check{display:flex;align-items:center;gap:8px}.dash-widget-presence-sensor .presence-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-presence-sensor .presence-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-presence-sensor .presence-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-presence-sensor .presence-modal-head,.dash-widget-presence-sensor .presence-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-presence-sensor .presence-modal-head h2,.dash-widget-presence-sensor .presence-modal-foot h2{margin:0;font-size:17px}.dash-widget-presence-sensor .presence-modal-foot{justify-content:flex-end}.dash-widget-presence-sensor .presence-field{display:flex;flex-direction:column;gap:6px}.dash-widget-presence-sensor .presence-field>span:first-child{font-weight:600}.dash-widget-presence-sensor button.presence-btn.presence-btn.presence-btn.presence-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-presence-sensor .presence-hidden{opacity:.85}.dash-widget-presence-sensor .presence-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-presence-sensor .presence-widget-touch{height:100%;overflow:hidden}.dash-widget-presence-sensor .presence-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-width:140px;padding:18px 14px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);text-align:center;user-select:none;-webkit-user-select:none}.dash-widget-presence-sensor .presence-touch-occupied{border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.dash-widget-presence-sensor .presence-touch-open{border-color:var(--warning)}.dash-widget-presence-sensor .presence-touch-unknown{opacity:.7}.dash-widget-presence-sensor .presence-touch-icon{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;border:2px solid currentColor}.dash-widget-presence-sensor .presence-touch-name{margin:0;max-width:100%;font-size:24px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-presence-sensor .presence-touch-state{font-size:34px;font-weight:700;line-height:1.1}.dash-widget-presence-sensor .presence-touch-since{font-size:19px;color:var(--muted)}.dash-widget-presence-sensor .presence-touch-room{justify-content:flex-start;overflow:hidden}.dash-widget-presence-sensor .presence-touch-room-state{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;justify-content:center}.dash-widget-presence-sensor .presence-touch-contacts{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.dash-widget-presence-sensor .presence-touch-contact{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:2px solid var(--border);font-size:19px;color:var(--muted)}.dash-widget-presence-sensor .presence-touch-contact.presence-tone-open{color:var(--warning);border-color:var(--warning)}.dash-widget-climate-room .container{padding:16px}.dash-widget-climate-room .climate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.dash-widget-climate-room .climate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.dash-widget-climate-room .climate-card-heating{border-color:var(--warning)}.dash-widget-climate-room .climate-card-cooling{border-color:var(--accent)}.dash-widget-climate-room .climate-card-unreachable{opacity:.6}.dash-widget-climate-room .climate-card-openable{cursor:pointer}.dash-widget-climate-room .climate-card-openable:hover{border-color:var(--accent)}.dash-widget-climate-room .climate-card-head{display:flex;align-items:flex-start;gap:10px}.dash-widget-climate-room .climate-card-title{flex:1;min-width:0}.dash-widget-climate-room .climate-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-climate-room .climate-card-meta{display:block;color:var(--muted);font-size:12px}.dash-widget-climate-room button.climate-card-open.climate-card-open.climate-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-climate-room button.climate-card-open.climate-card-open.climate-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-climate-room .climate-running{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid currentColor}.dash-widget-climate-room .climate-running-heating{color:var(--warning)}.dash-widget-climate-room .climate-running-cooling,.dash-widget-climate-room .climate-running-fan{color:var(--accent)}.dash-widget-climate-room .climate-reading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.dash-widget-climate-room .climate-temperature{font-size:32px;font-weight:700;line-height:1}.dash-widget-climate-room .climate-reading-detail{display:flex;flex-direction:column;color:var(--muted);font-size:12px}.dash-widget-climate-room .climate-battery-low{color:var(--danger)}.dash-widget-climate-room .climate-setpoint{display:flex;align-items:center;gap:10px}.dash-widget-climate-room .climate-setpoint-value{flex:1;display:flex;flex-direction:column;align-items:center}.dash-widget-climate-room .climate-setpoint-value strong{font-size:20px}.dash-widget-climate-room .climate-setpoint-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.dash-widget-climate-room button.climate-step.climate-step.climate-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-climate-room button.climate-step.climate-step.climate-step:disabled{cursor:default;opacity:.45}.dash-widget-climate-room .climate-modes{display:flex;flex-wrap:wrap;gap:6px}.dash-widget-climate-room button.climate-mode.climate-mode.climate-mode{min-height:0;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:12px;font-weight:600;filter:none;cursor:pointer}.dash-widget-climate-room button.climate-mode.climate-mode.climate-mode:disabled{cursor:default;opacity:.5}.dash-widget-climate-room button.climate-mode.climate-mode.climate-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-room .climate-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-climate-room .climate-room{margin-bottom:20px}.dash-widget-climate-room .climate-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.dash-widget-climate-room .climate-room-reading{font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-climate-room .climate-card-compact{padding:10px;gap:8px}.dash-widget-climate-room .climate-card-compact .climate-card-title h2{font-size:14px}.dash-widget-climate-room .climate-card-compact .climate-temperature{font-size:26px}.dash-widget-climate-room .climate-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-climate-room .climate-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.dash-widget-climate-room .climate-widget-room-head{display:flex;align-items:center;gap:8px}.dash-widget-climate-room .climate-widget-room-head h2{margin:0;font-size:15px}.dash-widget-climate-room .climate-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-climate-room .climate-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-climate-room .climate-setting select,.dash-widget-climate-room .climate-setting input{padding:6px 8px}.dash-widget-climate-room .climate-setting-check{flex-direction:row;align-items:center;gap:8px}.dash-widget-climate-room button.climate-btn.climate-btn.climate-btn.climate-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-climate-room .climate-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-climate-room .climate-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-climate-room .climate-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-climate-room .climate-modal-head,.dash-widget-climate-room .climate-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-climate-room .climate-modal-head h2,.dash-widget-climate-room .climate-modal-foot h2{margin:0;font-size:17px}.dash-widget-climate-room .climate-modal-foot{justify-content:flex-end}.dash-widget-climate-room .climate-switches{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px}.dash-widget-climate-room .climate-field{display:flex;flex-direction:column;gap:6px}.dash-widget-climate-room .climate-field>span:first-child{font-weight:600}.dash-widget-climate-room button.climate-btn.climate-btn.climate-btn.climate-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-room .climate-hidden{opacity:.85}.dash-widget-climate-room .climate-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-climate-room .climate-widget-touch{height:100%;overflow:hidden}.dash-widget-climate-room .climate-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);user-select:none;-webkit-user-select:none;text-align:center}.dash-widget-climate-room .climate-touch-heating{border-color:var(--warning)}.dash-widget-climate-room .climate-touch-cooling{border-color:var(--accent)}.dash-widget-climate-room .climate-touch-unreachable{opacity:.6}.dash-widget-climate-room .climate-touch-head{width:100%}.dash-widget-climate-room .climate-touch-head h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-climate-room .climate-touch-head span{display:block;margin-top:4px;font-size:18px;color:var(--muted)}.dash-widget-climate-room .climate-touch-temperature{font-size:72px;font-weight:700;line-height:1;color:var(--text)}.dash-widget-climate-room .climate-touch .climate-setpoint{width:100%;max-width:420px;gap:18px}.dash-widget-climate-room .climate-touch .climate-setpoint-value strong{font-size:34px}.dash-widget-climate-room .climate-touch .climate-setpoint-label{font-size:16px}.dash-widget-climate-room button.climate-touch-step.climate-touch-step.climate-touch-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:76px;height:76px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-climate-room button.climate-touch-step.climate-touch-step.climate-touch-step:disabled{cursor:default;opacity:.45}.dash-widget-climate-room .climate-touch .climate-modes{justify-content:center;gap:10px}.dash-widget-climate-room button.climate-touch-mode.climate-touch-mode.climate-touch-mode{min-height:0;min-width:96px;padding:14px 20px;border-radius:16px;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:19px;font-weight:650;filter:none;cursor:pointer}.dash-widget-climate-room button.climate-touch-mode.climate-touch-mode.climate-touch-mode:disabled{cursor:default;opacity:.5}.dash-widget-climate-room button.climate-touch-mode.climate-touch-mode.climate-touch-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-room .climate-touch-room{justify-content:flex-start;overflow:auto}.dash-widget-climate-room .climate-touch-room-thermostat{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.dash-widget-climate-room .climate-touch-room-thermostat-name{font-size:19px;color:var(--muted)}.dash-widget-climate-thermostat .container{padding:16px}.dash-widget-climate-thermostat .climate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.dash-widget-climate-thermostat .climate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;color:var(--text)}.dash-widget-climate-thermostat .climate-card-heating{border-color:var(--warning)}.dash-widget-climate-thermostat .climate-card-cooling{border-color:var(--accent)}.dash-widget-climate-thermostat .climate-card-unreachable{opacity:.6}.dash-widget-climate-thermostat .climate-card-openable{cursor:pointer}.dash-widget-climate-thermostat .climate-card-openable:hover{border-color:var(--accent)}.dash-widget-climate-thermostat .climate-card-head{display:flex;align-items:flex-start;gap:10px}.dash-widget-climate-thermostat .climate-card-title{flex:1;min-width:0}.dash-widget-climate-thermostat .climate-card-title h2{margin:0;font-size:15px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-widget-climate-thermostat .climate-card-meta{display:block;color:var(--muted);font-size:12px}.dash-widget-climate-thermostat button.climate-card-open.climate-card-open.climate-card-open{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-align:left;white-space:normal;filter:none;cursor:pointer}.dash-widget-climate-thermostat button.climate-card-open.climate-card-open.climate-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-climate-thermostat .climate-running{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid currentColor}.dash-widget-climate-thermostat .climate-running-heating{color:var(--warning)}.dash-widget-climate-thermostat .climate-running-cooling,.dash-widget-climate-thermostat .climate-running-fan{color:var(--accent)}.dash-widget-climate-thermostat .climate-reading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.dash-widget-climate-thermostat .climate-temperature{font-size:32px;font-weight:700;line-height:1}.dash-widget-climate-thermostat .climate-reading-detail{display:flex;flex-direction:column;color:var(--muted);font-size:12px}.dash-widget-climate-thermostat .climate-battery-low{color:var(--danger)}.dash-widget-climate-thermostat .climate-setpoint{display:flex;align-items:center;gap:10px}.dash-widget-climate-thermostat .climate-setpoint-value{flex:1;display:flex;flex-direction:column;align-items:center}.dash-widget-climate-thermostat .climate-setpoint-value strong{font-size:20px}.dash-widget-climate-thermostat .climate-setpoint-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.dash-widget-climate-thermostat button.climate-step.climate-step.climate-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;min-height:0;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-climate-thermostat button.climate-step.climate-step.climate-step:disabled{cursor:default;opacity:.45}.dash-widget-climate-thermostat .climate-modes{display:flex;flex-wrap:wrap;gap:6px}.dash-widget-climate-thermostat button.climate-mode.climate-mode.climate-mode{min-height:0;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:12px;font-weight:600;filter:none;cursor:pointer}.dash-widget-climate-thermostat button.climate-mode.climate-mode.climate-mode:disabled{cursor:default;opacity:.5}.dash-widget-climate-thermostat button.climate-mode.climate-mode.climate-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-thermostat .climate-note{margin:0;color:var(--muted);font-size:12px}.dash-widget-climate-thermostat .climate-room{margin-bottom:20px}.dash-widget-climate-thermostat .climate-room-name{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:16px}.dash-widget-climate-thermostat .climate-room-reading{font-size:13px;font-weight:600;color:var(--muted)}.dash-widget-climate-thermostat .climate-card-compact{padding:10px;gap:8px}.dash-widget-climate-thermostat .climate-card-compact .climate-card-title h2{font-size:14px}.dash-widget-climate-thermostat .climate-card-compact .climate-temperature{font-size:26px}.dash-widget-climate-thermostat .climate-widget{display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.dash-widget-climate-thermostat .climate-widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.dash-widget-climate-thermostat .climate-widget-room-head{display:flex;align-items:center;gap:8px}.dash-widget-climate-thermostat .climate-widget-room-head h2{margin:0;font-size:15px}.dash-widget-climate-thermostat .climate-settings{display:flex;flex-direction:column;gap:14px}.dash-widget-climate-thermostat .climate-setting{display:flex;flex-direction:column;gap:6px}.dash-widget-climate-thermostat .climate-setting select,.dash-widget-climate-thermostat .climate-setting input{padding:6px 8px}.dash-widget-climate-thermostat .climate-setting-check{flex-direction:row;align-items:center;gap:8px}.dash-widget-climate-thermostat button.climate-btn.climate-btn.climate-btn.climate-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}.dash-widget-climate-thermostat .climate-input{padding:6px 8px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit;min-width:0}.dash-widget-climate-thermostat .climate-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:#00000073;overflow:auto}.dash-widget-climate-thermostat .climate-modal{width:min(560px,100%);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:16px}.dash-widget-climate-thermostat .climate-modal-head,.dash-widget-climate-thermostat .climate-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-widget-climate-thermostat .climate-modal-head h2,.dash-widget-climate-thermostat .climate-modal-foot h2{margin:0;font-size:17px}.dash-widget-climate-thermostat .climate-modal-foot{justify-content:flex-end}.dash-widget-climate-thermostat .climate-switches{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px}.dash-widget-climate-thermostat .climate-field{display:flex;flex-direction:column;gap:6px}.dash-widget-climate-thermostat .climate-field>span:first-child{font-weight:600}.dash-widget-climate-thermostat button.climate-btn.climate-btn.climate-btn.climate-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-thermostat .climate-hidden{opacity:.85}.dash-widget-climate-thermostat .climate-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-widget-climate-thermostat .climate-widget-touch{height:100%;overflow:hidden}.dash-widget-climate-thermostat .climate-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;padding:18px;border-radius:var(--tile-radius, 22px);background:var(--surface);border:2px solid var(--border);user-select:none;-webkit-user-select:none;text-align:center}.dash-widget-climate-thermostat .climate-touch-heating{border-color:var(--warning)}.dash-widget-climate-thermostat .climate-touch-cooling{border-color:var(--accent)}.dash-widget-climate-thermostat .climate-touch-unreachable{opacity:.6}.dash-widget-climate-thermostat .climate-touch-head{width:100%}.dash-widget-climate-thermostat .climate-touch-head h2{margin:0;font-size:26px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-climate-thermostat .climate-touch-head span{display:block;margin-top:4px;font-size:18px;color:var(--muted)}.dash-widget-climate-thermostat .climate-touch-temperature{font-size:72px;font-weight:700;line-height:1;color:var(--text)}.dash-widget-climate-thermostat .climate-touch .climate-setpoint{width:100%;max-width:420px;gap:18px}.dash-widget-climate-thermostat .climate-touch .climate-setpoint-value strong{font-size:34px}.dash-widget-climate-thermostat .climate-touch .climate-setpoint-label{font-size:16px}.dash-widget-climate-thermostat button.climate-touch-step.climate-touch-step.climate-touch-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:76px;height:76px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);filter:none;cursor:pointer}.dash-widget-climate-thermostat button.climate-touch-step.climate-touch-step.climate-touch-step:disabled{cursor:default;opacity:.45}.dash-widget-climate-thermostat .climate-touch .climate-modes{justify-content:center;gap:10px}.dash-widget-climate-thermostat button.climate-touch-mode.climate-touch-mode.climate-touch-mode{min-height:0;min-width:96px;padding:14px 20px;border-radius:16px;border:2px solid var(--border);background:var(--surface-muted);color:var(--text);font-size:19px;font-weight:650;filter:none;cursor:pointer}.dash-widget-climate-thermostat button.climate-touch-mode.climate-touch-mode.climate-touch-mode:disabled{cursor:default;opacity:.5}.dash-widget-climate-thermostat button.climate-touch-mode.climate-touch-mode.climate-touch-mode.climate-mode-on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.dash-widget-climate-thermostat .climate-touch-room{justify-content:flex-start;overflow:auto}.dash-widget-climate-thermostat .climate-touch-room-thermostat{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.dash-widget-climate-thermostat .climate-touch-room-thermostat-name{font-size:19px;color:var(--muted)}.dash-widget-calendar-calendar button.calendar-btn,.dash-widget-calendar-calendar a.calendar-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;filter:none;cursor:pointer}.dash-widget-calendar-calendar button.calendar-btn svg,.dash-widget-calendar-calendar a.calendar-btn svg{flex:none;vertical-align:middle}.dash-widget-calendar-calendar button.calendar-btn svg+span,.dash-widget-calendar-calendar a.calendar-btn svg+span{margin-left:6px}.dash-widget-calendar-calendar button.calendar-btn:hover:not(:disabled),.dash-widget-calendar-calendar a.calendar-btn:hover:not(:disabled){border-color:var(--accent)}.dash-widget-calendar-calendar button.calendar-btn:disabled,.dash-widget-calendar-calendar a.calendar-btn:disabled{opacity:.55;cursor:default}.dash-widget-calendar-calendar button.calendar-btn:focus-visible,.dash-widget-calendar-calendar a.calendar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-calendar-calendar button.calendar-btn-primary,.dash-widget-calendar-calendar a.calendar-btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.dash-widget-calendar-calendar button.calendar-btn-primary:hover:not(:disabled),.dash-widget-calendar-calendar a.calendar-btn-primary:hover:not(:disabled){border-color:var(--btn-primary-border);filter:brightness(1.08)}.dash-widget-calendar-calendar button.calendar-btn-quiet{background:transparent;color:var(--muted);border-color:transparent}.dash-widget-calendar-calendar button.calendar-btn-quiet:hover:not(:disabled){color:var(--text);border-color:var(--border)}.dash-widget-calendar-calendar button.calendar-btn-icon{min-width:34px;padding:4px 8px}.dash-widget-calendar-calendar .calendar-untitled{font-style:italic;opacity:.8}.dash-widget-calendar-calendar .calendar-dialog{width:480px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);box-shadow:0 18px 42px #0000004d}.dash-widget-calendar-calendar .calendar-dialog::backdrop{background:#00000080}.dash-widget-calendar-calendar .calendar-dialog-inner{padding:16px}.dash-widget-calendar-calendar .calendar-dialog-head{display:flex;align-items:flex-start;margin-bottom:14px}.dash-widget-calendar-calendar .calendar-dialog-swatch{flex:none;width:14px;height:14px;margin:6px 10px 0 0;border-radius:4px}.dash-widget-calendar-calendar .calendar-dialog-title{flex:1 1 auto;min-width:0;margin:0 8px 0 0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}.dash-widget-calendar-calendar .calendar-details-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:10px 16px;margin:0}.dash-widget-calendar-calendar .calendar-details-facts dt{padding-top:2px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.dash-widget-calendar-calendar .calendar-details-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.dash-widget-calendar-calendar .calendar-details-facts a{color:var(--accent)}.dash-widget-calendar-calendar .calendar-details-relative,.dash-widget-calendar-calendar .calendar-details-repeat{display:block;color:var(--muted);font-size:13px}.dash-widget-calendar-calendar .calendar-details-relative{color:var(--accent);font-weight:600}.dash-widget-calendar-calendar .calendar-details-notes{white-space:pre-wrap}.dash-widget-calendar-calendar .calendar-details-calendar-swatch{display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:3px}.dash-widget-calendar-calendar .calendar-details-links{display:flex;flex-wrap:wrap;margin-top:16px}.dash-widget-calendar-calendar .calendar-details-links>*{margin:0 8px 8px 0}.dash-widget-calendar-calendar .calendar-agenda{margin:0;padding:0;list-style:none}.dash-widget-calendar-calendar .calendar-agenda-day{display:grid;grid-template-columns:50px minmax(0,1fr);grid-column-gap:6px;padding:8px 0;border-top:1px solid var(--border)}.dash-widget-calendar-calendar .calendar-agenda-day:first-child{padding-top:0;border-top:0}.dash-widget-calendar-calendar .calendar-agenda-date{display:flex;flex-direction:column;padding-top:6px;line-height:1.2}.dash-widget-calendar-calendar .calendar-agenda-weekday,.dash-widget-calendar-calendar .calendar-month-weekday,.dash-widget-calendar-calendar .calendar-time-head-weekday{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dash-widget-calendar-calendar .calendar-agenda-monthday{font-size:14px;font-weight:700;white-space:nowrap}.dash-widget-calendar-calendar .calendar-agenda-today .calendar-agenda-weekday{color:var(--accent)}.dash-widget-calendar-calendar .calendar-agenda-events{margin:0;padding:0;list-style:none;min-width:0}.dash-widget-calendar-calendar .calendar-agenda-item+.calendar-agenda-item{margin-top:2px}.dash-widget-calendar-calendar button.calendar-agenda-event{display:block;width:100%;margin:0;padding:6px 8px;border:0;border-radius:var(--radius);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.dash-widget-calendar-calendar button.calendar-agenda-event:hover{background:var(--accent-soft)}.dash-widget-calendar-calendar button.calendar-agenda-event:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dash-widget-calendar-calendar .calendar-agenda-item-now button.calendar-agenda-event{background:var(--accent-soft)}.dash-widget-calendar-calendar .calendar-agenda-item-ended{opacity:.6}.dash-widget-calendar-calendar .calendar-agenda-row{display:grid;grid-template-columns:28px minmax(0,1fr);grid-column-gap:10px;align-items:start}.dash-widget-calendar-calendar .calendar-agenda-line{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:8px;align-items:baseline}.dash-widget-calendar-calendar .calendar-agenda-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:2px;border-radius:8px}.dash-widget-calendar-calendar .calendar-agenda-text{display:block;min-width:0}.dash-widget-calendar-calendar .calendar-agenda-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-weight:600;line-height:1.3}.dash-widget-calendar-calendar .calendar-agenda-detail{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.dash-widget-calendar-calendar .calendar-agenda-when{color:var(--muted);font-size:12px;white-space:nowrap}.dash-widget-calendar-calendar .calendar-agenda-when-now{padding:1px 8px;border-radius:999px;background:var(--status-ok-bg);color:var(--status-ok-text);font-weight:700}.dash-widget-calendar-calendar .calendar-agenda-empty{margin:0;padding:16px;color:var(--muted);text-align:center}.dash-widget-calendar-calendar .calendar-month,.dash-widget-calendar-calendar .calendar-time{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.dash-widget-calendar-calendar .calendar-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}.dash-widget-calendar-calendar .calendar-month-weekday{padding:6px 8px;font-size:12px;overflow:hidden;white-space:nowrap}.dash-widget-calendar-calendar .calendar-month-body{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(6,minmax(0,1fr))}.dash-widget-calendar-calendar .calendar-month-week{position:relative;min-height:0;border-top:1px solid var(--border)}.dash-widget-calendar-calendar .calendar-month-week:first-child{border-top:0}.dash-widget-calendar-calendar .calendar-month-days{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.dash-widget-calendar-calendar .calendar-month-day{min-width:0;padding:2px 4px;border-left:1px solid var(--border);cursor:pointer}.dash-widget-calendar-calendar .calendar-month-day:first-child{border-left:0}.dash-widget-calendar-calendar .calendar-month-day:hover{background:var(--accent-soft)}.dash-widget-calendar-calendar .calendar-month-day-outside{background:var(--surface-muted)}.dash-widget-calendar-calendar .calendar-month-day-outside button.calendar-month-date{color:var(--muted)}.dash-widget-calendar-calendar button.calendar-month-date{display:inline-flex;align-items:center;justify-content:center;min-width:24px;margin:2px 0 0;padding:0 6px;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.dash-widget-calendar-calendar button.calendar-month-date:hover{background:var(--accent-soft)}.dash-widget-calendar-calendar .calendar-month-day-today button.calendar-month-date{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.dash-widget-calendar-calendar .calendar-month-lanes{position:absolute;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;overflow:hidden;pointer-events:none}.dash-widget-calendar-calendar button.calendar-bar,.dash-widget-calendar-calendar button.calendar-chip,.dash-widget-calendar-calendar button.calendar-more{display:block;min-width:0;margin:1px 3px;padding:0 6px;border:0;border-radius:4px;font:inherit;font-size:12px;line-height:18px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;pointer-events:auto}.dash-widget-calendar-calendar button.calendar-bar{font-weight:600}.dash-widget-calendar-calendar button.calendar-bar:hover{filter:brightness(1.1)}.dash-widget-calendar-calendar button.calendar-bar-before{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.dash-widget-calendar-calendar button.calendar-bar-after{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.dash-widget-calendar-calendar .calendar-bar-time{margin-right:4px;font-weight:700}.dash-widget-calendar-calendar button.calendar-chip,.dash-widget-calendar-calendar button.calendar-more{background:transparent;color:var(--text)}.dash-widget-calendar-calendar button.calendar-chip:hover,.dash-widget-calendar-calendar button.calendar-more:hover{background:var(--accent-soft)}.dash-widget-calendar-calendar .calendar-chip-dot{display:inline-block;width:8px;height:8px;margin:0 5px 1px 0;border-radius:50%;vertical-align:middle}.dash-widget-calendar-calendar .calendar-chip-time{margin-right:4px;color:var(--muted)}.dash-widget-calendar-calendar button.calendar-more{color:var(--muted);font-weight:700}.dash-widget-calendar-calendar .calendar-month-compact .calendar-month-weekday{padding:3px 2px;font-size:10px;text-align:center}.dash-widget-calendar-calendar .calendar-month-compact .calendar-month-day{padding:1px 2px}.dash-widget-calendar-calendar .calendar-month-compact button.calendar-month-date{min-width:20px;margin:1px 0 0;padding:0 4px;font-size:11px}.dash-widget-calendar-calendar .calendar-month-compact button.calendar-bar,.dash-widget-calendar-calendar .calendar-month-compact button.calendar-chip,.dash-widget-calendar-calendar .calendar-month-compact button.calendar-more{margin:1px;padding:0 4px;font-size:11px;line-height:16px}.dash-widget-calendar-calendar .calendar-month-compact .calendar-chip-time{display:none}.dash-widget-calendar-calendar .calendar-month-large button.calendar-bar,.dash-widget-calendar-calendar .calendar-month-large button.calendar-chip,.dash-widget-calendar-calendar .calendar-month-large button.calendar-more{font-size:13px;line-height:20px}.dash-widget-calendar-calendar .calendar-month-dotted .calendar-month-day{text-align:center}.dash-widget-calendar-calendar .calendar-month-dots-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:2px}.dash-widget-calendar-calendar .calendar-month-dot{width:6px;height:6px;margin:1px;border-radius:50%}.dash-widget-calendar-calendar .calendar-month-dot-more{margin-left:2px;color:var(--muted);font-size:9px;line-height:8px}.dash-widget-calendar-calendar .calendar-time-scroll{position:relative;flex:1 1 auto;min-height:0;overflow:auto}.dash-widget-calendar-calendar .calendar-time-top{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--border)}.dash-widget-calendar-calendar .calendar-time-heads{display:grid}.dash-widget-calendar-calendar button.calendar-time-head{display:block;min-width:0;margin:0;padding:6px 2px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--text);font:inherit;text-align:center;cursor:pointer}.dash-widget-calendar-calendar button.calendar-time-head:hover{background:var(--accent-soft)}.dash-widget-calendar-calendar .calendar-time-head-weekday{display:block}.dash-widget-calendar-calendar .calendar-time-head-date{display:inline-block;min-width:30px;border-radius:999px;font-size:18px;font-weight:700;line-height:30px}.dash-widget-calendar-calendar .calendar-time-head-today .calendar-time-head-date{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.dash-widget-calendar-calendar .calendar-time-allday{display:grid;padding:2px 0;border-top:1px solid var(--border)}.dash-widget-calendar-calendar .calendar-time-allday-label{grid-column:1;align-self:start;padding:3px 6px;color:var(--muted);font-size:11px;text-align:right}.dash-widget-calendar-calendar .calendar-time-body{position:relative;display:grid}.dash-widget-calendar-calendar .calendar-time-gutter{position:relative}.dash-widget-calendar-calendar .calendar-time-hour{position:absolute;right:6px;color:var(--muted);font-size:11px;line-height:1;white-space:nowrap;transform:translateY(-50%)}.dash-widget-calendar-calendar .calendar-time-day{position:relative;min-width:0;border-left:1px solid var(--border);background-image:linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-repeat:repeat-y}.dash-widget-calendar-calendar .calendar-time-day-today{background-color:var(--accent-soft)}.dash-widget-calendar-calendar button.calendar-block{position:absolute;z-index:1;display:block;margin:0;padding:2px 6px;border:0;border-left:3px solid;border-radius:4px;color:var(--text);font:inherit;font-size:12px;line-height:1.25;text-align:left;overflow:hidden;cursor:pointer}.dash-widget-calendar-calendar button.calendar-block:hover{z-index:2;filter:brightness(1.12)}.dash-widget-calendar-calendar button.calendar-block-ended{opacity:.6}.dash-widget-calendar-calendar .calendar-block-title,.dash-widget-calendar-calendar .calendar-block-time,.dash-widget-calendar-calendar .calendar-block-place{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-calendar-calendar .calendar-block-title{font-weight:700}.dash-widget-calendar-calendar .calendar-block-time,.dash-widget-calendar-calendar .calendar-block-place{color:var(--muted);font-size:11px}.dash-widget-calendar-calendar .calendar-now-line{position:absolute;right:0;left:0;z-index:2;height:2px;margin-top:-1px;background:var(--danger);pointer-events:none}.dash-widget-calendar-calendar .calendar-now-line:before{content:"";position:absolute;top:-4px;left:-5px;width:10px;height:10px;border-radius:50%;background:var(--danger)}.dash-widget-calendar-calendar .calendar-time-compact button.calendar-time-head{padding:3px 1px}.dash-widget-calendar-calendar .calendar-time-compact .calendar-time-head-weekday{font-size:9px}.dash-widget-calendar-calendar .calendar-time-compact .calendar-time-head-date{min-width:22px;font-size:13px;line-height:22px}.dash-widget-calendar-calendar .calendar-time-compact .calendar-time-hour{right:3px;font-size:9px}.dash-widget-calendar-calendar .calendar-time-compact button.calendar-block{padding:1px 3px;border-left-width:2px;font-size:10px}.dash-widget-calendar-calendar .calendar-time-compact .calendar-block-time,.dash-widget-calendar-calendar .calendar-time-compact .calendar-block-place{font-size:9px}.dash-widget-calendar-calendar .calendar-time-compact button.calendar-bar,.dash-widget-calendar-calendar .calendar-time-compact button.calendar-more{margin:1px;padding:0 3px;font-size:10px;line-height:16px}.dash-widget-calendar-calendar .calendar-widget{display:flex;flex-direction:column;height:100%;min-height:0;color:var(--text)}.dash-widget-calendar-calendar .calendar-widget-head{flex:none;display:flex;align-items:center;margin-bottom:6px}.dash-widget-calendar-calendar .calendar-widget-title{flex:1 1 auto;min-width:0;margin:0 4px;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-widget-calendar-calendar button.calendar-widget-today{margin-left:4px}.dash-widget-calendar-calendar p.calendar-widget-problem{flex:none;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-calendar-calendar .calendar-widget-body{flex:1 1 auto;min-height:0;overflow:auto}.dash-widget-calendar-calendar .calendar-widget-month .calendar-widget-body,.dash-widget-calendar-calendar .calendar-widget-week .calendar-widget-body{display:flex;flex-direction:column;overflow:hidden}.dash-widget-calendar-calendar .calendar-widget-month .calendar-widget-body>.calendar-month,.dash-widget-calendar-calendar .calendar-widget-month .calendar-widget-body>.calendar-time,.dash-widget-calendar-calendar .calendar-widget-week .calendar-widget-body>.calendar-month,.dash-widget-calendar-calendar .calendar-widget-week .calendar-widget-body>.calendar-time{flex:1 1 auto}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-day{grid-template-columns:84px minmax(0,1fr);grid-column-gap:12px;padding:12px 0}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-date{padding-top:8px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-weekday{font-size:15px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-monthday{font-size:21px}.dash-widget-calendar-calendar .calendar-widget-touch button.calendar-agenda-event{padding:8px 10px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-row{grid-template-columns:42px minmax(0,1fr);grid-column-gap:14px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-icon{width:42px;height:42px;border-radius:10px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-icon svg{width:26px;height:26px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-title{font-size:21px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-detail,.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-when{font-size:16px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-agenda-empty,.dash-widget-calendar-calendar .calendar-widget-touch .widget-note,.dash-widget-calendar-calendar .calendar-widget-touch .calendar-widget-title{font-size:20px}.dash-widget-calendar-calendar .calendar-widget-touch button.calendar-btn{min-width:48px;min-height:48px;font-size:18px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-month-compact .calendar-month-weekday{font-size:13px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-month-compact button.calendar-month-date{font-size:15px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-month-dot{width:9px;height:9px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-time-compact .calendar-time-head-weekday{font-size:11px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-time-compact .calendar-time-head-date{font-size:16px}.dash-widget-calendar-calendar .calendar-widget-touch .calendar-time-compact button.calendar-block{font-size:12px}.dash-widget-calendar-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-day{grid-template-columns:minmax(0,1fr)}.dash-widget-calendar-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-date{flex-direction:row;align-items:baseline;padding:0 0 2px 8px}.dash-widget-calendar-calendar .calendar-widget.calendar-widget-narrow .calendar-agenda-weekday{margin-right:6px}.dash-widget-calendar-calendar .calendar-widget.calendar-widget-narrow.calendar-widget-touch .calendar-agenda-row{grid-template-columns:30px minmax(0,1fr);grid-column-gap:10px}.dash-widget-calendar-calendar .calendar-widget.calendar-widget-narrow.calendar-widget-touch .calendar-agenda-icon{width:30px;height:30px}.dash-widget-calendar-calendar .calendar-dialog-touch{width:640px;font-size:18px}.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-dialog-title{font-size:26px}.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-details-facts dt{font-size:14px}.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-details-relative,.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-details-repeat{font-size:16px}.dash-widget-calendar-calendar .calendar-dialog-touch button.calendar-btn,.dash-widget-calendar-calendar .calendar-dialog-touch a.calendar-btn{min-width:52px;min-height:52px;padding:8px 18px;font-size:18px}.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-agenda-title{font-size:20px}.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-agenda-detail,.dash-widget-calendar-calendar .calendar-dialog-touch .calendar-agenda-when{font-size:15px}.dash-widget-calendar-calendar .calendar-sync-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.dash-widget-timers-timers .container{padding:16px}.dash-widget-timers-timers .timers-page{display:flex;flex-direction:column;gap:16px}.dash-widget-timers-timers button.timers-btn,.dash-widget-timers-timers button.timers-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);font:inherit;font-weight:600;line-height:1.2;white-space:nowrap;filter:none;cursor:pointer}.dash-widget-timers-timers button.timers-btn:hover:not(:disabled),.dash-widget-timers-timers button.timers-chip:hover:not(:disabled){border-color:var(--accent)}.dash-widget-timers-timers button.timers-btn:disabled,.dash-widget-timers-timers button.timers-chip:disabled{opacity:.55;cursor:default}.dash-widget-timers-timers button.timers-btn:focus-visible,.dash-widget-timers-timers button.timers-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-widget-timers-timers button.timers-btn-primary{min-width:96px;background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.dash-widget-timers-timers button.timers-btn-primary:hover:not(:disabled){border-color:var(--btn-primary-border);filter:brightness(1.08)}.dash-widget-timers-timers button.timers-btn-quiet{background:transparent;color:var(--muted);border-color:var(--border)}.dash-widget-timers-timers button.timers-btn-ring{background:var(--status-warning-text);color:var(--status-warning-bg);border-color:var(--status-warning-text)}.dash-widget-timers-timers button.timers-btn-ring:hover:not(:disabled){border-color:var(--warning)}.dash-widget-timers-timers button.timers-btn-icon{min-width:34px;padding:4px 8px}.dash-widget-timers-timers button.timers-chip{min-height:32px;padding:4px 12px;border-radius:999px;font-weight:600}.dash-widget-timers-timers button.timers-chip-chosen{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.dash-widget-timers-timers .timers-error{margin:0;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--danger);background:var(--danger-soft)}.dash-widget-timers-timers .timers-start{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.dash-widget-timers-timers .timers-field{display:flex;flex-direction:column;gap:6px;min-width:0}.dash-widget-timers-timers .timers-field>span:first-child{color:var(--muted);font-size:12px;font-weight:600}.dash-widget-timers-timers .timers-field input{min-height:36px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font:inherit}.dash-widget-timers-timers .timers-field input:focus{outline:2px solid var(--accent);outline-offset:0}.dash-widget-timers-timers .timers-field-name{flex:1 1 180px}.dash-widget-timers-timers .timers-field-typed{flex:1 1 200px;position:relative}.dash-widget-timers-timers .timers-presets{display:flex;flex-wrap:wrap;gap:6px}.dash-widget-timers-timers .timers-typed-reading{min-height:16px;color:var(--muted);font-size:12px}.dash-widget-timers-timers .timers-typed-problem{color:var(--danger)}.dash-widget-timers-timers .timers-start-go{display:flex;align-items:flex-end;padding-bottom:22px}.dash-widget-timers-timers .timers-start-problem{flex:1 1 100%}.dash-widget-timers-timers .timers-group{display:flex;flex-direction:column;gap:10px}.dash-widget-timers-timers .timers-group-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0;font-size:15px}.dash-widget-timers-timers .timers-group-count{color:var(--muted);font-size:12px;font-weight:400}.dash-widget-timers-timers .timers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.dash-widget-timers-timers .timers-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.dash-widget-timers-timers .timers-card-paused{border-style:dashed}.dash-widget-timers-timers .timers-card-finished{border:2px solid var(--warning);background:var(--status-warning-bg);color:var(--status-warning-text);animation:timers-ringing 1.6s ease-in-out infinite}.dash-widget-timers-timers .timers-card-finished .timers-card-length,.dash-widget-timers-timers .timers-card-finished .timers-card-note{color:var(--status-warning-text)}@keyframes timers-ringing{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 5px var(--warning)}}@media(prefers-reduced-motion:reduce){.dash-widget-timers-timers .timers-card-finished,.dash-widget-timers-timers .timers-row-finished{animation:none}}.dash-widget-timers-timers .timers-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.dash-widget-timers-timers .timers-card-name{margin:0;min-width:0;font-size:15px;overflow-wrap:anywhere}.dash-widget-timers-timers .timers-card-length{flex:none;color:var(--muted);font-size:12px}.dash-widget-timers-timers .timers-clock{font-size:34px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:.01em}.dash-widget-timers-timers .timers-clock-paused{color:var(--muted)}.dash-widget-timers-timers .timers-done{font-size:34px;font-weight:800;line-height:1.1;letter-spacing:.02em;text-transform:uppercase}.dash-widget-timers-timers .timers-bar{display:block;height:6px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);overflow:hidden}.dash-widget-timers-timers .timers-bar-fill{display:block;height:100%;background:var(--accent)}.dash-widget-timers-timers .timers-card-note{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;color:var(--muted);font-size:12px}.dash-widget-timers-timers .timers-card-source{font-style:italic}.dash-widget-timers-timers .timers-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.dash-widget-timers-timers .timers-empty{padding:24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.dash-widget-timers-timers .timers-empty h2{margin:0 0 6px;color:var(--text);font-size:16px}.dash-widget-timers-timers .timers-empty p{margin:0}.dash-widget-timers-timers .timers-widget{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;color:var(--text)}.dash-widget-timers-timers .timers-rows{flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.dash-widget-timers-timers .timers-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.dash-widget-timers-timers .timers-row-finished{border:2px solid var(--warning);background:var(--status-warning-bg);color:var(--status-warning-text);animation:timers-ringing-within 1.6s ease-in-out infinite}@keyframes timers-ringing-within{0%,to{box-shadow:inset 0 0 0 0 transparent}50%{box-shadow:inset 0 0 0 3px var(--warning)}}.dash-widget-timers-timers .timers-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.dash-widget-timers-timers .timers-row-whose{margin-left:8px;color:var(--muted);font-weight:400;font-size:.85em}.dash-widget-timers-timers .timers-row-clock{font-size:20px}.dash-widget-timers-timers .timers-row-done{font-size:15px}.dash-widget-timers-timers .timers-row-actions{display:inline-flex;gap:4px}.dash-widget-timers-timers .timers-row-note{grid-column:1/-1;font-size:11px}.dash-widget-timers-timers .timers-quick{flex:none;display:flex;flex-wrap:wrap;gap:6px}.dash-widget-timers-timers .timers-widget-empty{flex:1 1 auto;min-height:0;margin:0;display:flex;align-items:center;justify-content:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;overflow-wrap:anywhere}.dash-widget-timers-timers .timers-widget-touch{gap:12px}.dash-widget-timers-timers .timers-widget-touch .timers-row{grid-template-columns:minmax(0,1fr) auto;padding:10px 12px;gap:6px 14px}.dash-widget-timers-timers .timers-widget-touch .timers-row-name{grid-column:1/-1;font-size:20px;white-space:normal;overflow-wrap:anywhere}.dash-widget-timers-timers .timers-widget-touch .timers-row-clock{font-size:36px}.dash-widget-timers-timers .timers-widget-touch .timers-row-done{font-size:28px}.dash-widget-timers-timers .timers-widget-touch .timers-btn-icon svg{width:24px;height:24px}.dash-widget-timers-timers .timers-widget-touch .timers-row-note{font-size:14px}.dash-widget-timers-timers .timers-widget-touch button.timers-btn{min-height:52px;min-width:52px;padding:8px 16px;font-size:18px}.dash-widget-timers-timers .timers-widget-touch button.timers-chip{flex:1 1 0;min-height:60px;font-size:20px;border-radius:var(--radius)}.dash-widget-timers-timers .timers-widget-touch .widget-note{font-size:18px}.dash-widget-timers-timers .timers-widget-touch .timers-widget-empty{padding:16px;font-size:22px}.dash-widget-timers-timers .timers-dialog{width:min(420px,100vw - 32px);padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}.dash-widget-timers-timers .timers-dialog::backdrop{background:#00000080}.dash-widget-timers-timers .timers-dialog-form{display:flex;flex-direction:column;gap:12px;padding:16px}.dash-widget-timers-timers .timers-dialog-title{margin:0;font-size:16px}.dash-widget-timers-timers .timers-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dash-widget-timers-timers .timers-settings{display:flex;flex-direction:column;gap:10px}.dash-widget-timers-timers .timers-setting{display:flex;flex-direction:column;gap:4px}.dash-widget-timers-timers .timers-setting select{min-height:34px}@media(max-width:520px){.dash-widget-timers-timers .timers-start{flex-direction:column;align-items:stretch}.dash-widget-timers-timers .timers-field-name,.dash-widget-timers-timers .timers-field-typed{flex:none}.dash-widget-timers-timers .timers-start-go{padding-bottom:0}.dash-widget-timers-timers .timers-start-go button.timers-btn-primary{width:100%}.dash-widget-timers-timers .timers-card .timers-clock,.dash-widget-timers-timers .timers-card .timers-done{font-size:30px}}
