html,body{color:#1b1b1f;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#f2f3f5;width:100vw;height:100vh;margin:0;padding:0;font-family:PingFang SC,HarmonyOS Sans SC,Microsoft YaHei UI,Microsoft YaHei,Noto Sans SC,Noto Sans CJK SC,system-ui,sans-serif;overflow:hidden}#root{box-sizing:border-box;flex-direction:column;width:100vw;height:100vh;margin:0;padding:0;display:flex}*{box-sizing:border-box}::selection{color:#1b1b1f;background:#f2357a33}input,textarea{caret-color:#f2357a}*{scrollbar-width:thin;scrollbar-color:#c9ccd2 transparent}:root{--ground:#f2f3f5;--surface:#fff;--fill:#eceef1;--fill-hover:#e2e5e9;--fill-press:#d8dce1;--line:#e4e6ea;--ink:#1b1b1f;--ink-2:#55565e;--ink-3:#64666f;--ink-disabled:#9a9ca5;--dot:#f2357a;--dot-ring:#f2357a2e;--dot-ink:#c4185a;--ok:#18794e;--warn:#8f5500;--warn-bg:#fff3d9;--bad:#b42318;--bad-bg:#fdecea;--warn-dot:#d98a00;--radius-pill:999px;--radius-field:10px;--radius-card:14px;--radius-dialog:18px;--shadow-float:0 1px 2px #1b1b1f14, 0 4px 12px #1b1b1f14;--shadow-menu:0 2px 6px #1b1b1f14, 0 12px 32px #1b1b1f24;--shadow-dialog:0 2px 6px #1b1b1f0f, 0 24px 60px #1b1b1f2e;--focus-ring:0 0 0 3px #1b1b1f29;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:17px;--ease-out:cubic-bezier(.23, 1, .32, 1);--dur-fast:.15s;--dur:.2s}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-top{background:var(--surface);flex-direction:column;flex-shrink:0;min-width:0;max-height:40vh;display:flex;overflow-y:auto}.toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:10px 20px;padding:10px 16px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-group.global-actions{column-gap:20px;margin-left:auto}.toolbar-cluster{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-compact{flex-flow:column;align-items:stretch;gap:6px;padding:8px 0 4px}.toolbar-row{align-items:center;gap:8px;min-width:0;padding:0 12px;display:flex}.toolbar-row .toolbar-label{margin-right:0}.toolbar-row-end{flex-wrap:nowrap;margin-left:auto}.toolbar-strip{overscroll-behavior-x:contain;scrollbar-width:none;gap:8px;padding:6px 12px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 28px),#0000)}.toolbar-strip::-webkit-scrollbar{display:none}.toolbar-strip>*{flex-shrink:0}.toolbar-compact .toolbar-room{flex-wrap:wrap;padding:4px 12px 6px}@media (width<=359px){.toolbar-compact .toolbar-label{display:none}}.toolbar-label{color:var(--ink);font-size:var(--text-lg);letter-spacing:-.01em;margin-right:8px;font-weight:800}.toolbar-field-label{color:var(--ink-2);font-size:var(--text-sm)}.toolbar-room-input{width:64px}.status-toast{z-index:2000;border-radius:var(--radius-pill);background:var(--surface);max-width:calc(100vw - 32px);box-shadow:var(--shadow-menu);color:var(--ink);font-size:var(--text-sm);pointer-events:none;animation:toast-in var(--dur) var(--ease-out);align-items:center;gap:8px;padding:8px 16px 8px 14px;font-weight:600;display:inline-flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.status-toast:before{background:var(--ok)}.status-toast.is-error{color:var(--bad)}.status-toast.is-error:before{background:var(--bad)}.toolbar-menu{z-index:1000;box-sizing:border-box;background:var(--surface);border-radius:var(--radius-card);width:168px;box-shadow:var(--shadow-menu);flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed}.toolbar-menu-item{border-radius:var(--radius-field);height:32px;color:var(--ink);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:4px;padding:0 10px 0 6px;display:flex}.toolbar-menu-item[role=menuitem]{padding-left:26px}.toolbar-menu-item:hover:not(:disabled),.toolbar-menu-item:focus-visible{background:var(--fill);outline:none}.toolbar-menu-item:disabled{color:var(--ink-disabled);cursor:not-allowed}.toolbar-menu-check{flex-shrink:0;width:16px;height:16px;position:relative}.toolbar-menu-check.is-checked:after{content:"";border:solid var(--ink);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.toolbar-menu-separator{background:var(--line);height:1px;margin:4px 6px}.draft-recovery-banner{border-bottom:1px solid var(--line);background:var(--warn-bg);color:var(--warn);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.draft-recovery-banner>div:first-child{align-items:baseline;gap:8px;min-width:0;display:flex}.draft-recovery-banner strong{color:var(--ink)}.draft-recovery-banner span{color:var(--warn)}.draft-recovery-actions{flex-shrink:0;gap:6px;display:flex}@media (width<=700px){.draft-recovery-banner{align-items:flex-start}.draft-recovery-banner>div:first-child{flex-direction:column;gap:2px}}.wiring-issue,.connection-list-item,.connection-draft,.template-card,.shopping-list,.desk-builder,.ai-suggestion-card{--button-bg:var(--surface)}.ui-button{border-radius:var(--radius-pill);background:var(--button-bg,var(--fill));height:32px;color:var(--ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border:none;justify-content:center;align-items:center;padding:0 14px;font-weight:500;display:inline-flex}.ui-button:hover{background:var(--fill-hover)}.ui-button:active:not(:disabled){background:var(--fill-press);transform:scale(.97)}.ui-button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ui-button:disabled{color:var(--ink-disabled);cursor:not-allowed;background:#f4f5f7}.ui-button-primary{background:var(--ink);color:#fff;font-weight:600}.ui-button-primary:hover,.ui-button-primary:active:not(:disabled){background:#000}.ui-button-danger{background:var(--bad-bg);color:var(--bad)}.ui-button-danger:hover{background:#fadbd7}.ui-button-danger:active:not(:disabled){background:#f6cbc5}.ui-input,.ui-select{border-radius:var(--radius-field);background-color:var(--fill);height:32px;color:var(--ink);font:inherit;font-size:var(--text-sm);font-variant-numeric:tabular-nums;box-sizing:border-box;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:1px solid #0000;padding:0 10px}.ui-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%2355565e' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:32px}.ui-input::placeholder{color:var(--ink-3)}.ui-input:hover,.ui-select:hover{background-color:var(--fill-hover)}.ui-input:focus,.ui-select:focus{border-color:var(--ink);background-color:var(--surface);box-shadow:var(--focus-ring);outline:none}.ui-input:disabled,.ui-select:disabled{color:var(--ink-disabled);cursor:not-allowed;background-color:#f4f5f7}.ui-checkbox-label{font-size:var(--text-sm);cursor:pointer;color:var(--ink-2);align-items:center;gap:6px;display:flex}.ui-checkbox-label input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--ink)}.ui-full-width{width:100%}.unsaved-indicator{color:var(--dot-ink);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.unsaved-indicator:before,.status-toast:before,.load-note:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.unsaved-indicator:before{background:var(--dot);box-shadow:0 0 0 3px var(--dot-ring)}.count-badge{color:var(--dot-ink);font-variant-numeric:tabular-nums;margin-left:-2px;font-weight:800}.ui-button:disabled .count-badge{color:var(--ink-disabled)}.side-panel{background:var(--surface);border-left:1px solid var(--line);z-index:10;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}@media (width>=900px){.side-panel{width:320px;height:auto;box-shadow:none;position:static}}@media (width<=899px){.side-panel{width:280px;box-shadow:var(--shadow-dialog);border-left:none;position:absolute;top:0;bottom:0;right:0}}.side-panel-close{border-radius:var(--radius-pill);width:32px;height:32px;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.icon{flex-shrink:0;display:block}.side-panel-close:hover{background:var(--fill);color:var(--ink)}.side-panel-close:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.side-panel-tabs{background:var(--surface);align-items:center;gap:4px;padding:8px 8px 0;display:flex}.side-panel-tab{text-align:center;cursor:pointer;height:34px;font:inherit;font-size:var(--text-sm);color:var(--ink-2);border-radius:var(--radius-pill);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex:1;font-weight:500}.side-panel-tab:hover{color:var(--ink);background:var(--ground)}.side-panel-tab:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.side-panel-tab.side-panel-tab-active{color:var(--ink);background:var(--fill);font-weight:600}.side-panel-content{flex:1;padding:16px;overflow-y:auto}.panel-section{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:20px}.panel-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.panel-section-title{font-size:var(--text-md);color:var(--ink);margin-bottom:12px;font-weight:800}.panel-field{align-items:center;margin-bottom:8px;display:flex}.panel-field:last-child{margin-bottom:0}.panel-field-label{width:70px;font-size:var(--text-sm);color:var(--ink-2);flex-shrink:0}.panel-field-content{flex:1;align-items:center;gap:8px;display:flex}.panel-text-readonly{font-size:var(--text-sm);color:var(--ink-2);background:var(--ground);border-radius:var(--radius-field);box-sizing:border-box;width:100%;padding:6px 10px}.panel-text-strong{color:var(--ink);font-weight:600}.panel-muted{color:var(--ink-3);font-size:var(--text-sm)}.panel-note{color:var(--ink-3);font-size:var(--text-xs)}.connection-list{flex-direction:column;display:flex}.connection-list-item{background:var(--ground);border-radius:var(--radius-card);font-size:var(--text-sm);margin-bottom:8px;padding:12px}.connection-list-item:last-child{margin-bottom:0}.connection-item-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.connection-direction{color:var(--ink);font-weight:600}.connection-name{color:var(--ink);font-size:var(--text-sm);margin-bottom:4px}.connection-item-actions{gap:4px;display:flex}.connection-item-actions .ui-button{height:26px;font-size:var(--text-xs);padding:0 10px}.connection-edit-form{border-radius:var(--radius-field);background:var(--surface);grid-template-columns:minmax(0,1fr) 88px;gap:8px;margin-bottom:8px;padding:10px;display:grid}.connection-edit-form label{min-width:0;color:var(--ink-2);font-size:var(--text-xs);flex-direction:column;gap:4px;display:flex}.connection-edit-form .ui-input{width:100%;min-width:0}.connection-edit-form .ui-button-primary{grid-column:1/-1}.connection-draft{border-radius:var(--radius-card);background:var(--ground);padding:12px}.connection-draft-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.connection-draft-header .panel-section-title{margin:0}.connection-draft-steps,.connection-target-choice{flex-direction:column;display:flex}.connection-target-choice{gap:8px}.connection-or{color:var(--ink-3);font-size:var(--text-xs);text-align:center;margin:2px 0}.connection-picking{border-radius:var(--radius-field);background:var(--surface);color:var(--dot-ink);font-size:var(--text-sm);text-align:center;padding:8px 10px;font-weight:600}.connection-chosen{border-radius:var(--radius-field);background:var(--surface);font-size:var(--text-sm);justify-content:space-between;align-items:center;padding:6px 6px 6px 10px;display:flex}.connection-cable-row{gap:10px;margin-bottom:12px;display:flex}.connection-cable-row>div{flex:1}.connection-confirm{width:100%;margin-top:16px}.link-button{border-radius:var(--radius-pill);color:var(--ink);font:inherit;font-size:var(--text-xs);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-weight:600;text-decoration:underline}.link-button:hover{background:var(--fill)}.field-error{color:var(--bad);font-size:var(--text-sm)}.connection-step{margin-bottom:12px}.connection-step-label{font-size:var(--text-xs);color:var(--ink-2);margin-bottom:4px;font-weight:600}.cable-distance{font-size:var(--text-xs);margin-top:8px;line-height:1.5}.cable-distance-ok{color:var(--ok)}.cable-distance-warning{color:var(--bad);font-weight:600}.load-meter{margin-top:8px;padding-left:78px}.load-meter-row{color:var(--ink-2);font-size:var(--text-xs);justify-content:space-between;margin-bottom:4px;display:flex}.load-meter-percent{font-variant-numeric:tabular-nums;font-weight:600}.load-meter-track{border-radius:var(--radius-pill);background:var(--fill);width:100%;height:6px;overflow:hidden}.load-meter-bar{border-radius:inherit;height:100%;transition:width .3s var(--ease-out)}.load-normal{color:var(--ok)}.load-warning{color:var(--warn)}.load-overload{color:var(--bad)}.load-meter-bar.load-normal{background:var(--ok)}.load-meter-bar.load-warning{background:var(--warn-dot)}.load-meter-bar.load-overload{background:var(--bad)}.load-note{font-size:var(--text-xs);align-items:baseline;gap:6px;margin-top:6px;line-height:1.4;display:flex}.load-note:before{transform:translateY(-1px)}.left-panel{background:var(--surface);border-right:1px solid var(--line);z-index:10;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}@media (width>=900px){.left-panel{width:260px;height:auto;box-shadow:none;position:static}}@media (width<=899px){.left-panel{width:260px;box-shadow:var(--shadow-dialog);border-right:none;position:absolute;top:0;bottom:0;left:0}}.left-panel-header{background:var(--surface);justify-content:space-between;align-items:center;padding:12px 12px 4px 16px;display:flex}.left-panel-title{color:var(--ink);font-size:16px;font-weight:800}.asset-search-container{background:var(--surface);padding:8px 12px}.asset-category-list{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:4px 12px 12px;display:flex}.asset-category-btn{border-radius:var(--radius-pill);background:var(--fill);height:30px;color:var(--ink);font:inherit;font-size:var(--text-xs);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:none;padding:0 12px;font-weight:500}.asset-category-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.asset-category-btn:hover{background:var(--fill-hover)}.asset-category-btn-active,.asset-category-btn-active:hover{background:var(--ink);color:#fff}.asset-list{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.asset-item{border-radius:var(--radius-card);background:var(--ground);text-align:left;cursor:pointer;width:100%;transition:background-color var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border:none;align-items:center;gap:12px;padding:8px 14px 8px 8px;font-family:inherit;display:flex}.asset-item:hover{background:var(--fill)}.asset-item:active:not(:disabled){transform:scale(.98)}.asset-item:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.asset-item:disabled{cursor:not-allowed;opacity:.6}.asset-item-thumb{border-radius:var(--radius-field);background:var(--surface);object-fit:contain;flex-shrink:0;width:56px;height:56px}.asset-item-text{flex-direction:column;min-width:0;display:flex}.asset-item-title{color:var(--ink);font-size:var(--text-md);margin-bottom:4px;font-weight:600}.asset-item-subtitle{color:var(--ink-2);font-size:var(--text-xs)}.side-panel-footer{border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.side-panel-footer .ui-button{flex:1}.empty-state{color:var(--ink-2);font-size:var(--text-sm);text-align:center;margin-top:48px;line-height:1.6}.empty-state strong{color:var(--ink)}.empty-state-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.template-intro{color:var(--ink-2);font-size:var(--text-sm);margin:0 0 12px;line-height:1.6}.template-list{flex-direction:column;gap:8px;display:flex}.template-card{border-radius:var(--radius-card);background:var(--ground);align-items:center;gap:12px;padding:14px;display:flex}.template-card-content{flex:1;min-width:0}.template-card-title{color:var(--ink);font-size:var(--text-md);font-weight:800}.template-card-description{color:var(--ink-2);font-size:var(--text-sm);margin-top:2px}.template-card-devices{color:var(--ink-3);font-size:var(--text-xs);margin-top:4px}.shopping-list{border-radius:var(--radius-card);background:var(--ground);margin-bottom:12px;padding:12px 14px}.shopping-list-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.shopping-list-title{color:var(--ink);font-size:var(--text-sm);font-weight:800}.shopping-list-items{color:var(--ink);font-size:var(--text-sm);margin:8px 0 0;padding:0;list-style:none}.shopping-list-items li{justify-content:space-between;gap:8px;padding:3px 0;display:flex}.shopping-list-items li.shopping-list-optional{color:var(--ink-3)}.shopping-list-quantity{font-variant-numeric:tabular-nums}.template-section-title{color:var(--ink);font-size:var(--text-md);margin:24px 0 8px;font-weight:800}.desk-builder{border-radius:var(--radius-card);background:var(--ground);flex-direction:column;gap:12px;padding:14px;display:flex}.desk-builder-devices{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;display:grid}.desk-builder-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.desk-builder-name{color:var(--ink);font-size:var(--text-sm)}.desk-builder-stepper{align-items:center;gap:6px;display:flex}.desk-builder-stepper .ui-button{width:32px;padding:0}.desk-builder-count{text-align:center;min-width:16px;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.desk-builder-desk{flex-wrap:wrap;gap:8px 16px;display:flex}.desk-builder-size{color:var(--ink-2);font-size:var(--text-sm);align-items:center;gap:6px;display:flex}.desk-builder-size .ui-input{background:var(--surface);width:72px}.desk-builder-notes{border-radius:var(--radius-field);background:var(--warn-bg);color:var(--warn);font-size:var(--text-xs);margin:0;padding:10px 14px 10px 30px;line-height:1.6}.desk-builder-submit{align-self:flex-end}@media (width<=700px){.template-card{flex-direction:column;align-items:stretch}.desk-builder-submit{align-self:stretch}}.modal-overlay{z-index:9999;background:#1b1b1f52;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-container{background:var(--surface);border-radius:var(--radius-dialog);width:90%;max-width:700px;max-height:80vh;box-shadow:var(--shadow-dialog);flex-direction:column;display:flex;overflow:hidden}.modal-header{background:var(--surface);justify-content:space-between;align-items:center;padding:16px 16px 8px 24px;display:flex}.modal-title{color:var(--ink);margin:0;font-size:18px;font-weight:800}.modal-body{flex:1;padding:8px 24px 24px;overflow-y:auto}.modal-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);text-align:left}.modal-table th{border-bottom:1px solid var(--line);color:var(--ink-2);font-size:var(--text-xs);padding:8px;font-weight:600}.modal-table td{border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top;padding:10px 8px}.modal-table .modal-table-actions{text-align:right}.modal-table .panel-note{margin-top:2px;display:inline-block}.wiring-report{max-width:760px}.wiring-summary{font-size:var(--text-xs);flex-wrap:wrap;gap:8px;margin-bottom:16px;font-weight:600;display:flex}.wiring-summary span{border-radius:var(--radius-pill);padding:5px 10px}.wiring-summary-error{color:var(--bad);background:var(--bad-bg)}.wiring-summary-warning{color:var(--warn);background:var(--warn-bg)}.wiring-summary-info{color:var(--ink-2);background:var(--fill)}.wiring-cleanup-button{margin-left:auto}.wiring-issue-list{flex-direction:column;gap:8px;display:flex}.wiring-issue{border-radius:var(--radius-card);background:var(--ground);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.wiring-issue:before{content:"";background:var(--ink-3);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.wiring-issue-error:before{background:var(--bad);box-shadow:0 0 0 3px #b4231829}.wiring-issue-warning:before{background:var(--warn-dot);box-shadow:0 0 0 3px #d98a002e}.wiring-issue-info:before{background:var(--ink-3)}.wiring-issue-content{flex:1;min-width:0}.wiring-issue-title{color:var(--ink);font-size:var(--text-sm);font-weight:600}.wiring-issue-description{color:var(--ink-2);font-size:var(--text-xs);margin-top:4px;line-height:1.6}.wiring-issue-severity{font-size:var(--text-xs);margin-right:8px}.wiring-disclaimer{border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-xs);margin:16px 0 0;padding-top:12px;line-height:1.6}.ui-button-tag{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-float);gap:8px;font-weight:600}.ui-button-tag:before{content:"";background:var(--dot);width:8px;height:8px;box-shadow:0 0 0 3px var(--dot-ring);border-radius:50%;flex-shrink:0}.ui-button-tag:hover{background:var(--surface);box-shadow:0 1px 2px #1b1b1f1a,0 6px 16px #1b1b1f1f}.ui-button-tag:active:not(:disabled){background:var(--ground)}.ui-button-tag:disabled{box-shadow:none}.ui-button-tag:disabled:before{background:var(--ink-disabled);box-shadow:none}.recommendation-group{margin-top:20px}.recommendation-group h4{color:var(--ink);font-size:var(--text-md);text-align:left;margin:0 0 10px;font-weight:800}.recommendations-sections{max-height:60vh;padding-right:8px;overflow-y:auto}.selection-hint{box-sizing:border-box;background:var(--ground);min-height:44px;color:var(--ink-2);font-size:var(--text-sm);overflow-wrap:anywhere;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px 14px;padding:6px 16px;display:flex}.selection-hint-active{color:var(--ink-2)}.selection-hint-active .selection-hint-title{border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-float);color:var(--ink);align-items:center;gap:8px;padding:5px 14px 5px 12px;font-weight:600;display:inline-flex}.selection-hint-active .selection-hint-title:before{content:"";background:var(--dot);width:8px;height:8px;box-shadow:0 0 0 3px var(--dot-ring);border-radius:50%;flex-shrink:0}.selection-hint-tip{color:var(--ink-2)}.connection-mode-banner{z-index:100;border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-menu);color:var(--ink);font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:8px;padding:8px 16px 8px 14px;font-weight:600;display:inline-flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.connection-mode-banner:before{content:"";background:var(--dot);width:8px;height:8px;box-shadow:0 0 0 3px var(--dot-ring);border-radius:50%}.scene-overlay{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.scene-tag{border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-float);color:var(--ink);font-size:var(--text-sm);white-space:nowrap;animation:scene-tag-in var(--dur) var(--ease-out);align-items:center;gap:8px;padding:5px 12px 5px 10px;font-weight:600;display:inline-flex;transform:translate(-50%,calc(-100% - 8px))}.scene-tag:before{content:"";background:var(--dot);width:8px;height:8px;box-shadow:0 0 0 3px var(--dot-ring);animation:dot-settle .6s var(--ease-out);border-radius:50%;flex-shrink:0}.start-guide{z-index:5;box-sizing:border-box;border-radius:var(--radius-dialog);background:var(--surface);width:min(360px,100% - 32px);box-shadow:var(--shadow-dialog);text-align:center;padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.start-guide-title{color:var(--ink);font-size:var(--text-lg);margin:0 0 8px;font-weight:800}.start-guide-text{color:var(--ink-2);font-size:var(--text-sm);margin:0 0 16px;line-height:1.6}.start-guide-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.scene-fallback{box-sizing:border-box;background:var(--ground);height:100%;color:var(--ink-2);font-size:var(--text-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;line-height:1.6;display:flex}.scene-fallback strong{color:var(--ink);font-size:16px}.scene-fallback span{max-width:420px}.scene-loading{background:var(--ground);height:100%;color:var(--ink-2);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.ai-suggestions{border-bottom:1px solid var(--line);margin:8px 0 16px;padding-bottom:16px}.ai-suggestions .template-section-title{margin-top:0}.ai-suggestions-form{color:var(--ink-2);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ai-suggestions-form .ui-input{flex:200px;min-width:0}@media (width<=599px){.ai-suggestions-form .ui-input{flex-basis:100%}}.ai-suggestions-status{color:var(--ink-2);font-size:var(--text-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.ai-suggestions-error{color:var(--bad)}.ai-suggestions-note,.ai-suggestions-privacy{color:var(--ink-3);font-size:var(--text-xs);margin:10px 0 0;line-height:1.6}.ai-suggestions-list{flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px;display:flex}.ai-suggestion-card{border-radius:var(--radius-card);background:var(--ground);align-self:stretch;padding:12px 14px}.ai-suggestion-title{color:var(--ink);font-size:var(--text-md);font-weight:600}.ai-suggestion-reason{color:var(--ink-2);font-size:var(--text-sm);margin-top:4px;line-height:1.6}.ai-suggestion-devices{color:var(--ink-3);font-size:var(--text-xs);margin:4px 0 8px}.ai-suggestions-followup{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.about-dialog{color:var(--ink-2);font-size:var(--text-sm);line-height:1.7}.about-dialog p{margin:0 0 8px}.about-dialog ul{margin:0 0 12px;padding-left:20px}.error-notice{background:var(--bad-bg);color:var(--bad)}.error-notice span{color:var(--bad)}@media (pointer:coarse){.ui-button,.asset-category-btn,.side-panel-close,.side-panel-tab,.link-button{position:relative}.ui-button:after,.asset-category-btn:after,.side-panel-close:after,.side-panel-tab:after,.link-button:after{content:"";width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toolbar-menu-item{height:44px}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}}@keyframes drawer-from-left{0%{opacity:0;transform:translate(-24px)}}@keyframes drawer-from-right{0%{opacity:0;transform:translate(24px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes scene-tag-in{0%{opacity:0;transform:translate(-50%,calc(-100% - 2px))scale(.96)}}@keyframes guide-in{0%{opacity:0;transform:translate(-50%,calc(8px - 50%))}}@keyframes dot-settle{0%{box-shadow:0 0 0 7px #f2357a00}40%{box-shadow:0 0 0 6px #f2357a38}to{box-shadow:0 0 0 3px var(--dot-ring)}}.modal-overlay{animation:fade-in var(--dur-fast) ease-out}.modal-container{animation:rise-in var(--dur) var(--ease-out)}.toolbar-menu{transform-origin:100% 0;animation:menu-in var(--dur-fast) var(--ease-out)}.start-guide{animation:guide-in var(--dur) var(--ease-out)}.count-badge{animation:pop-in var(--dur-fast) var(--ease-out)}@media (width<=899px){.left-panel{animation:drawer-from-left var(--dur) var(--ease-out)}.side-panel{animation:drawer-from-right var(--dur) var(--ease-out)}}@media (prefers-reduced-motion:reduce){.modal-container,.toolbar-menu,.start-guide,.status-toast,.count-badge,.scene-tag,.left-panel,.side-panel{animation-name:fade-in}.scene-tag:before{animation:none}.ui-button:active:not(:disabled),.asset-item:active:not(:disabled){transform:none}.load-meter-bar{transition:none}}
