.brand-wordmark[data-v-81307ecf]{--logo-height:34px;align-items:center;gap:12px;min-width:0;display:inline-flex}.brand-logo[data-v-81307ecf]{height:var(--logo-height);object-fit:contain;flex-shrink:0;width:auto;max-width:148px;display:block}.brand-name[data-v-81307ecf]{color:#0f172a;white-space:nowrap;align-items:center;gap:8px;font-size:28px;font-weight:700;line-height:1;display:inline-flex}.brand-edition[data-v-81307ecf]{color:#1a73e8;background:#e8f0fe;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;line-height:1}.brand-wordmark.compact .brand-name[data-v-81307ecf]{font-size:18px;font-weight:600}.brand-wordmark.logo-only[data-v-81307ecf]{--logo-height:42px}.brand-wordmark.logo-only.compact[data-v-81307ecf]{--logo-height:32px}.brand-wordmark.compact .brand-edition[data-v-81307ecf]{padding:3px 6px;font-size:10px}@media (width<=640px){.brand-wordmark[data-v-81307ecf]{--logo-height:30px;gap:10px}.brand-name[data-v-81307ecf]{font-size:22px}.brand-wordmark.compact .brand-name[data-v-81307ecf]{font-size:16px}}.auth-page[data-v-c05e291f]{box-sizing:border-box;background:radial-gradient(circle at top,#f7fbff 0,#eef3f8 45%,#e8edf3 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px 72px;font-family:Roboto,sans-serif;display:flex;position:relative}.auth-card[data-v-c05e291f]{background:#fff;border:1px solid #dbe4ef;border-radius:12px;width:420px;max-width:100%;padding:48px 40px;box-shadow:0 24px 70px #2438631f}.brand-area[data-v-c05e291f]{justify-content:center;align-items:center;margin-bottom:24px;display:flex}.welcome-text[data-v-c05e291f]{text-align:center;margin-bottom:36px}.welcome-text h2[data-v-c05e291f]{color:#1f2937;margin:0 0 8px;font-size:24px;font-weight:500}.welcome-text p[data-v-c05e291f]{color:#6b7280;margin:0;font-size:14px}.auth-form[data-v-c05e291f]{flex-direction:column;gap:18px;display:flex}.form-group label[data-v-c05e291f]{color:#374151;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.form-label-row[data-v-c05e291f]{justify-content:space-between;align-items:center;display:flex}.gcp-input[data-v-c05e291f]{border:1px solid #d1d9e6;border-radius:8px;outline:none;width:100%;padding:11px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.gcp-input[data-v-c05e291f]:focus{border-color:#1a73e8;box-shadow:0 0 0 4px #1a73e81f}.gcp-btn-block[data-v-c05e291f]{color:#fff;cursor:pointer;background:#1a73e8;border:none;border-radius:8px;justify-content:center;align-items:center;width:100%;height:42px;margin-top:8px;font-size:14px;font-weight:600;transition:background-color .2s,transform .2s;display:flex}.gcp-btn-block[data-v-c05e291f]:hover{background:#1967d2;transform:translateY(-1px)}.gcp-btn-block[data-v-c05e291f]:disabled{cursor:not-allowed;background:#9ec0f7;transform:none}.footer-links[data-v-c05e291f]{text-align:center;color:#6b7280;margin-top:24px;font-size:13px}.link-btn[data-v-c05e291f],.primary-link[data-v-c05e291f]{color:#1a73e8;font-weight:600;text-decoration:none}.link-btn[data-v-c05e291f]:hover,.primary-link[data-v-c05e291f]:hover{text-decoration:underline}.primary-link[data-v-c05e291f]{margin-left:8px}.copyright[data-v-c05e291f]{color:#94a3b8;letter-spacing:.01em;text-align:center;width:max-content;max-width:calc(100% - 32px);font-size:12px;line-height:1.5;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.spin[data-v-c05e291f]{font-size:18px;animation:1s linear infinite rotate-c05e291f}@keyframes rotate-c05e291f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=640px){.auth-page[data-v-c05e291f]{padding:20px 16px 64px}.auth-card[data-v-c05e291f]{width:calc(100vw - 32px);padding:36px 24px}}.app-layout[data-v-ea34d014]{flex-direction:column;height:100vh;display:flex}.app-bar[data-v-ea34d014]{height:var(--header-height);border-bottom:1px solid var(--border);z-index:1001;background:#fff;flex-shrink:0;align-items:center;padding:0 16px;display:flex;position:relative}.brand[data-v-ea34d014]{width:var(--nav-width);color:var(--text-sec);align-items:center;font-size:18px;display:flex}.search-omnibox[data-v-ea34d014]{background:#f1f3f4;border-radius:8px;flex:1;align-items:center;max-width:720px;height:40px;margin:0 24px;padding:0 12px;display:flex;position:relative}.search-omnibox input[data-v-ea34d014]{background:0 0;border:none;outline:none;flex:1;margin-left:8px;font-size:14px}.loading-icon[data-v-ea34d014]{color:var(--text-sec);font-size:18px;animation:1s linear infinite spin-ea34d014}@keyframes spin-ea34d014{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-dropdown[data-v-ea34d014]{z-index:1000;background:#fff;border:1px solid #e0e0e0;border-radius:8px;max-height:400px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0003}.result-group[data-v-ea34d014]{border-bottom:1px solid #e0e0e0;padding:8px 0}.result-group[data-v-ea34d014]:last-child{border-bottom:none}.group-title[data-v-ea34d014]{color:var(--text-sec);text-transform:uppercase;padding:4px 16px;font-size:11px;font-weight:600}.result-item[data-v-ea34d014]{cursor:pointer;align-items:center;padding:10px 16px;transition:background .15s;display:flex}.result-item[data-v-ea34d014]:hover{background:#f5f5f5}.result-item>span[data-v-ea34d014]{color:var(--text-sec);margin-right:12px;font-size:20px}.item-info[data-v-ea34d014]{flex:1;min-width:0}.item-name[data-v-ea34d014]{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.item-sub[data-v-ea34d014]{color:var(--text-sec);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.no-results[data-v-ea34d014]{text-align:center;color:var(--text-sec);padding:24px;font-size:14px}.actions[data-v-ea34d014]{align-items:center;gap:16px;margin-left:auto;display:flex}.notification-wrapper[data-v-ea34d014]{cursor:pointer;align-items:center;display:flex;position:relative}.notification-wrapper .badge[data-v-ea34d014]{color:#fff;text-align:center;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px;box-shadow:0 8px 18px #dc262647}.username-display[data-v-ea34d014]{color:var(--text-main);background:#f1f3f4;border-radius:16px;padding:6px 12px;font-size:14px;font-weight:500}.layout-body[data-v-ea34d014]{flex:1;min-height:0;display:flex;overflow:hidden}.nav-sidebar[data-v-ea34d014]{width:var(--nav-width);border-right:1px solid var(--border);background:#fff;flex-direction:column;padding-top:12px;display:flex}.nav-item-link[data-v-ea34d014]{color:inherit;text-decoration:none;display:block}.nav-item[data-v-ea34d014]{cursor:pointer;height:40px;color:var(--text-main);border-radius:0 20px 20px 0;align-items:center;margin-right:12px;padding:0 24px;font-size:13px;font-weight:500;display:flex}.nav-item[data-v-ea34d014]:hover{background:#f1f3f4}.nav-item.active[data-v-ea34d014]{color:var(--primary);background:#e8f0fe}.nav-item span[data-v-ea34d014]{color:var(--text-sec);margin-right:16px;font-size:20px}.nav-item.active span[data-v-ea34d014]{color:var(--primary)}.nav-group-title[data-v-ea34d014]{color:var(--text-sec);text-transform:uppercase;margin:16px 24px 8px;font-size:11px;font-weight:500}.main-view[data-v-ea34d014]{background:#fff;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.main-view[data-v-ea34d014]>*{flex:1;min-width:0;min-height:0}.date-picker[data-v-3b2f7370]{width:100%;position:relative}.date-input[data-v-3b2f7370]{border:1px solid var(--border,#dadce0);cursor:pointer;background:#fff;border-radius:4px;justify-content:space-between;align-items:center;padding:8px 12px;transition:border-color .2s;display:flex}.date-input[data-v-3b2f7370]:hover{border-color:var(--primary,#1a73e8)}.date-value[data-v-3b2f7370]{color:#333;font-size:14px}.date-value[data-v-3b2f7370]:empty:before{content:attr(data-placeholder);color:#999}.date-icon[data-v-3b2f7370]{font-size:16px}.date-picker-dropdown{background:#fff;border:1px solid #dadce0;border-radius:8px;width:280px;padding:12px;box-shadow:0 4px 20px #00000026}.picker-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.nav-btn{cursor:pointer;color:#333;background:#f5f5f5;border:none;border-radius:4px;width:28px;height:28px;font-size:14px;transition:background .2s}.nav-btn:hover{background:#e0e0e0}.current-month{cursor:pointer;border-radius:4px;padding:4px 8px;font-size:14px;font-weight:600}.current-month:hover{background:#f5f5f5}.year-month-selector{gap:12px;margin-bottom:12px;display:flex}.year-month-selector select{border:1px solid #dadce0;border-radius:4px;flex:1;padding:6px;font-size:13px}.weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:8px;display:grid}.weekdays span{text-align:center;color:#666;padding:4px 0;font-size:12px}.days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.day{text-align:center;cursor:pointer;border-radius:4px;padding:8px 0;font-size:13px;transition:all .2s}.day:hover{background:#e8f0fe}.day.other-month{color:#ccc}.day.today{color:#f57c00;background:#fff3e0;font-weight:600}.day.selected{color:#fff;background:#1a73e8;font-weight:600}.picker-footer{border-top:1px solid #eee;gap:8px;margin-top:12px;padding-top:12px;display:flex}.today-btn,.clear-btn{cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;flex:1;padding:6px 12px;font-size:13px;transition:all .2s}.today-btn:hover{color:#fff;background:#1a73e8;border-color:#1a73e8}.clear-btn:hover{background:#f5f5f5}.async-content-state[data-v-5f5615ec]{position:relative}.async-content-state__initial[data-v-5f5615ec],.async-content-state__empty[data-v-5f5615ec]{min-height:inherit}.async-content-state__initial[data-v-5f5615ec]{justify-content:center;align-items:center;display:flex}.async-content-state__content[data-v-5f5615ec]{transition:opacity .18s}.async-content-state__content.is-loading[data-v-5f5615ec]{opacity:.58}.async-content-state__overlay[data-v-5f5615ec]{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:auto;cursor:progress;background:#ffffff73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.region-selector[data-v-b442e1cb]{grid-template-columns:minmax(0,1fr);gap:10px;width:100%;display:grid}.region-selector--row[data-v-b442e1cb]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.region-select[data-v-b442e1cb]{box-sizing:border-box;border:1px solid var(--border,#dadce0);background:#fff;border-radius:8px;outline:none;width:100%;min-width:0;height:44px;min-height:44px;padding:0 14px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.region-select[data-v-b442e1cb]:focus{border-color:var(--primary,#1a73e8);box-shadow:0 0 0 3px #1967d214}.region-select[data-v-b442e1cb]:disabled{color:#9aa0a6;cursor:not-allowed;background:#f5f5f5}@media (width<=420px){.region-selector--row[data-v-b442e1cb]{grid-template-columns:minmax(0,1fr)}}.empty-state[data-v-37d08666]{text-align:center;color:var(--text-sec);flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.empty-icon[data-v-37d08666]{background:#f1f3f4;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;display:flex}.empty-icon .material-icons-outlined[data-v-37d08666]{color:#9aa0a6;font-size:32px}.empty-title[data-v-37d08666]{color:var(--text-main);margin:0 0 8px;font-size:16px;font-weight:500}.empty-desc[data-v-37d08666]{max-width:400px;margin:0 0 24px;font-size:13px;line-height:1.5}.empty-actions[data-v-37d08666]{gap:12px;display:flex}.filter-bar input[data-v-71cf48ae]{border:none;outline:none;flex:220px;min-width:180px;font-size:13px}.filter-select[data-v-71cf48ae]:disabled{color:#9aa0a6;cursor:not-allowed;background:#f1f3f4}.filter-chip[data-v-71cf48ae]{color:var(--primary);cursor:default;white-space:nowrap;background:#e8f0fe;border-radius:12px;align-items:center;margin:0;padding:2px 8px;font-size:12px;display:flex}.close-icon[data-v-71cf48ae]{cursor:pointer;margin-left:4px;font-size:14px}.toolbar-actions[data-v-71cf48ae]{align-items:center;gap:12px;display:flex}.gcp-btn-danger[data-v-71cf48ae]{color:#fff;background:#d93025;border:none;box-shadow:0 1px 2px #0003}.gcp-btn-danger[data-v-71cf48ae]:hover{background:#b31412}.fade-enter-active[data-v-71cf48ae],.fade-leave-active[data-v-71cf48ae]{transition:opacity .2s}.fade-enter-from[data-v-71cf48ae],.fade-leave-to[data-v-71cf48ae]{opacity:0}.project-table[data-v-71cf48ae]{table-layout:fixed;min-width:1150px}.gcp-table th[data-v-71cf48ae]{z-index:2;background:#fff}.project-table th[data-v-71cf48ae],.project-table td[data-v-71cf48ae]{white-space:nowrap}.project-name-cell .cell-text[data-v-71cf48ae]{font-weight:500}.cell-text[data-v-71cf48ae]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.gcp-table tr.selected td[data-v-71cf48ae]{background:#e8f0fe}.status-indicator[data-v-71cf48ae]{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.icon-sm[data-v-71cf48ae]{font-size:16px}.drawer-overlay[data-v-71cf48ae]{z-index:1200;opacity:0;pointer-events:none;background:#00000080;justify-content:flex-end;transition:opacity .3s;display:flex;position:fixed;inset:0}.drawer-overlay.open[data-v-71cf48ae]{opacity:1;pointer-events:auto}.drawer-panel[data-v-71cf48ae]{background:#fff;flex-direction:column;width:480px;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;transform:translate(100%);box-shadow:-4px 0 16px #00000026}.drawer-overlay.open .drawer-panel[data-v-71cf48ae]{transform:translate(0)}.drawer-header[data-v-71cf48ae]{border-bottom:1px solid var(--border);color:#202124;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 24px;font-size:18px;font-weight:400;display:flex}.drawer-body[data-v-71cf48ae]{flex-direction:column;flex:1;gap:12px;padding:16px 24px;display:flex;overflow-y:auto}.drawer-body .form-group[data-v-71cf48ae]{flex:none}.drawer-footer[data-v-71cf48ae]{border-top:1px solid var(--border);background:#fff;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.input-wrapper[data-v-71cf48ae]{background:#fff;border:1px solid #dadce0;border-radius:4px;align-items:center;height:56px;padding:0 12px;transition:border-color .2s,box-shadow .2s;display:flex;position:relative}.input-wrapper[data-v-71cf48ae]:focus-within{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.input-wrapper.error[data-v-71cf48ae]{border-color:#d93025}.input-wrapper.error[data-v-71cf48ae]:focus-within{box-shadow:inset 0 0 0 1px #d93025}.input-wrapper[data-v-71cf48ae]:hover:not(:focus-within):not(.error){border-color:#3c4043}.md-label[data-v-71cf48ae]{color:var(--text-sec);pointer-events:none;z-index:1;background:#fff;padding:0 4px;font-size:16px;transition:all .2s ease-out;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-wrapper:focus-within .md-label[data-v-71cf48ae],.input-wrapper input:not(:placeholder-shown)~.md-label[data-v-71cf48ae],.input-wrapper .md-label.active[data-v-71cf48ae]{color:var(--primary);font-weight:500;top:0;left:8px;transform:translateY(-50%)scale(.75)}.input-wrapper.error .md-label[data-v-71cf48ae]{color:#d93025}.input-wrapper input[data-v-71cf48ae],.input-wrapper .md-select[data-v-71cf48ae]{color:#202124;z-index:2;background:0 0;border:none;outline:none;width:100%;height:100%;font-size:16px}.md-select[data-v-71cf48ae]{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='%235f6368'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:24px}.input-wrapper-region[data-v-71cf48ae]{align-items:center;height:auto;min-height:56px;padding:14px 12px}.input-wrapper-region[data-v-71cf48ae] .region-selector{gap:12px;width:100%;margin-top:2px}.input-wrapper-region[data-v-71cf48ae] .region-select{border-radius:4px;min-height:40px;padding:0 12px}.error-text[data-v-71cf48ae]{color:#d93025;margin-top:4px;margin-left:12px;font-size:12px}.auto-hint[data-v-71cf48ae]{color:var(--text-sec);background:#f8f9fa;border-radius:4px;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}.auto-hint .icon[data-v-71cf48ae]{color:var(--primary);font-size:18px}.warning-box[data-v-71cf48ae]{color:#c5221f;background:#fce8e6;border-radius:4px;align-items:center;gap:8px;margin-top:16px;padding:12px;font-weight:500;display:flex}.warning-box .icon[data-v-71cf48ae]{font-size:20px}.form-group label[data-v-c9d5d628]{color:var(--text-sec);font-size:13px;font-weight:500}.form-group .required[data-v-c9d5d628]{color:var(--danger)}.form-group input[data-v-c9d5d628],.form-group textarea[data-v-c9d5d628]{border:1px solid var(--border);border-radius:4px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.form-group input[data-v-c9d5d628]:focus,.form-group textarea[data-v-c9d5d628]:focus{border-color:var(--primary)}.form-group textarea[data-v-c9d5d628]{resize:vertical}.upload-area[data-v-1ca0f254]{border:2px dashed var(--border);text-align:center;cursor:pointer;box-sizing:border-box;border-radius:8px;width:100%;margin-bottom:20px;padding:40px 24px;transition:all .2s}.upload-area[data-v-1ca0f254]:hover,.upload-area.drag-over[data-v-1ca0f254]{border-color:var(--primary);background:#1a73e80d}.upload-prompt[data-v-1ca0f254]{color:var(--text-sec)}.upload-icon[data-v-1ca0f254]{color:var(--primary);margin-bottom:12px;font-size:48px}.upload-prompt p[data-v-1ca0f254]{margin:8px 0}.text-hint[data-v-1ca0f254]{color:#80868b;font-size:12px}.file-selected[data-v-1ca0f254]{background:#f8f9fa;border-radius:4px;align-items:center;gap:12px;padding:12px;display:flex}.file-icon[data-v-1ca0f254]{color:var(--primary);font-size:32px}.file-info[data-v-1ca0f254]{text-align:left;flex:1}.file-name[data-v-1ca0f254]{color:var(--text-main);margin-bottom:4px;font-weight:500}.file-size[data-v-1ca0f254]{color:var(--text-sec);font-size:12px}.remove-btn[data-v-1ca0f254]{cursor:pointer;color:var(--text-sec);background:0 0;border:none;border-radius:4px;padding:4px}.remove-btn[data-v-1ca0f254]:hover{background:#e8eaed}.form-group[data-v-1ca0f254]{margin-bottom:16px}.form-group label[data-v-1ca0f254]{color:var(--text-sec);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group select[data-v-1ca0f254],.form-group textarea[data-v-1ca0f254]{border:1px solid var(--border);box-sizing:border-box;border-radius:4px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px}.form-group select[data-v-1ca0f254]:focus,.form-group textarea[data-v-1ca0f254]:focus{border-color:var(--primary)}.readonly-field[data-v-1ca0f254]{border:1px solid var(--border);width:100%;color:var(--text-main);box-sizing:border-box;background:#f8f9fa;border-radius:4px;padding:8px 12px;font-size:14px}.form-group textarea[data-v-1ca0f254]{resize:vertical}.upload-progress[data-v-1ca0f254]{margin-top:16px}.progress-bar[data-v-1ca0f254]{background:#e8eaed;border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden}.progress-fill[data-v-1ca0f254]{background:var(--primary);height:100%;transition:width .3s}.progress-text[data-v-1ca0f254]{text-align:center;color:var(--text-sec);font-size:13px}.modal-overlay[data-v-de894a69]{z-index:1100;background:#000c}.modal-overlay.modal-overlay-image[data-v-de894a69]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle at top,#3b82f629,#0000 28%),radial-gradient(circle at bottom,#0f172a6b,#0000 38%),#020617f0}.modal-dialog.preview-dialog[data-v-de894a69]{background:#fff;border-radius:8px;flex-direction:column;width:90vw;height:90vh;display:flex;overflow:hidden}.modal-dialog.preview-dialog.preview-dialog-image[data-v-de894a69]{width:100vw;height:100vh;box-shadow:none;background:0 0;border-radius:0}.modal-header[data-v-de894a69]{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.modal-header h3[data-v-de894a69]{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;max-width:70%;margin:0;font-size:16px;font-weight:500;overflow:hidden}.header-actions[data-v-de894a69]{align-items:center;gap:10px;display:flex}.close-btn[data-v-de894a69]{cursor:pointer;color:var(--text-sec);background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.close-btn[data-v-de894a69]:hover{color:var(--text-main);background:#f1f3f4}.modal-body.preview-body[data-v-de894a69]{background:#f8f9fa;flex:1;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:auto}.modal-body.preview-body.preview-body-image[data-v-de894a69]{background:0 0;overflow:hidden}.image-preview[data-v-de894a69]{justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex;overflow:auto}.image-stage[data-v-de894a69]{justify-content:center;align-items:center;min-width:min(92vw,280px);min-height:min(72vh,320px);display:inline-flex;position:relative}.image-close-btn[data-v-de894a69]{z-index:2;color:#f8fafc;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a94;border:none;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:absolute;top:14px;right:14px;box-shadow:0 10px 30px #02061747}.image-close-btn[data-v-de894a69]:hover{background:#0f172ac7}.image-preview img[data-v-de894a69]{object-fit:contain;border-radius:18px;max-width:min(94vw,1680px);max-height:calc(100vh - 48px);animation:.22s ease-out imagePreviewFadeIn-de894a69;display:block;box-shadow:0 32px 90px #02061770,0 0 0 1px #ffffff14}.pdf-preview[data-v-de894a69]{width:100%;height:100%}.no-preview[data-v-de894a69]{text-align:center;color:var(--text-sec)}.no-preview .icon[data-v-de894a69]{color:#dadce0;margin-bottom:16px;font-size:64px}.no-preview p[data-v-de894a69]{margin:4px 0;font-size:16px}.no-preview .sub-text[data-v-de894a69]{margin-bottom:24px;font-size:14px}@keyframes imagePreviewFadeIn-de894a69{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.doc-table[data-v-a9fcd8d7]{border-collapse:collapse;width:100%}.doc-table th[data-v-a9fcd8d7]{text-align:left;color:var(--text-sec);border-bottom:1px solid var(--border);background:#fafafa;padding:12px 16px;font-size:12px;font-weight:500}.doc-table td[data-v-a9fcd8d7]{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:12px 16px}.doc-table tr:hover td[data-v-a9fcd8d7]{background:#f8f9fa}.file-icon[data-v-a9fcd8d7]{font-size:20px}.file-icon.icon-red[data-v-a9fcd8d7]{color:#ea4335}.file-icon.icon-blue[data-v-a9fcd8d7]{color:#4285f4}.file-icon.icon-green[data-v-a9fcd8d7]{color:#34a853}.file-icon.icon-orange[data-v-a9fcd8d7]{color:#fbbc04}.file-icon.icon-purple[data-v-a9fcd8d7]{color:#9c27b0}.file-icon.icon-gray[data-v-a9fcd8d7]{color:#9e9e9e}.doc-name-button[data-v-a9fcd8d7]{font:inherit;color:var(--primary,#1a73e8);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:500;line-height:1.4}.doc-name-button[data-v-a9fcd8d7]:hover{color:#1557b0;text-decoration:underline}.doc-name-button[data-v-a9fcd8d7]:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #1a73e83d}.doc-desc[data-v-a9fcd8d7]{color:var(--text-sec);margin-top:2px;font-size:12px}.actions-cell[data-v-a9fcd8d7]{white-space:nowrap}.chip[data-v-a9fcd8d7]{background:var(--secondary-bg);color:var(--text-sec);border-radius:12px;padding:2px 8px;font-size:11px;display:inline-flex}.chip.small[data-v-a9fcd8d7]{padding:1px 6px;font-size:10px}.empty-table-cell[data-v-a9fcd8d7]{padding:0!important}.document-empty-state[data-v-a9fcd8d7]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:220px;padding:32px 24px;display:flex}.document-empty-icon[data-v-a9fcd8d7]{color:#5f7fb8;background:#eef4ff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:inline-flex}.document-empty-icon .material-icons-outlined[data-v-a9fcd8d7]{font-size:30px}.document-empty-title[data-v-a9fcd8d7]{color:var(--text-primary);font-size:18px;font-weight:600}.document-empty-description[data-v-a9fcd8d7]{color:var(--text-sec);font-size:13px}.document-empty-meta[data-v-a9fcd8d7]{color:var(--text-ter);font-size:12px}.image-upload-area[data-v-b21a74d1]{flex-wrap:wrap;gap:12px;display:flex}.image-preview-item[data-v-b21a74d1]{border:1px solid var(--border);border-radius:4px;flex-shrink:0;width:80px;height:80px;position:relative;overflow:hidden}.image-preview-item img[data-v-b21a74d1],.image-preview-item video[data-v-b21a74d1]{object-fit:cover;width:100%;height:100%;display:block}.remove-btn[data-v-b21a74d1]{color:#fff;cursor:pointer;background:#00000080;border:none;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:background-color .2s;display:flex;position:absolute;top:0;right:0}.remove-btn[data-v-b21a74d1]:hover{background:#000000b3}.remove-btn span[data-v-b21a74d1]{font-size:14px;line-height:1}.upload-btn-wrapper[data-v-b21a74d1]{border:1px dashed var(--border);cursor:pointer;background:#f8f9fa;border-radius:4px;flex-shrink:0;width:80px;height:80px;transition:border-color .2s,background-color .2s;position:relative}.upload-btn-wrapper[data-v-b21a74d1]:hover{border-color:var(--primary);background:#f1f8ff}.upload-btn-wrapper input[data-v-b21a74d1]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.upload-placeholder[data-v-b21a74d1]{width:100%;height:100%;color:var(--text-sec);flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex}.upload-placeholder .material-icons-outlined[data-v-b21a74d1]{margin-bottom:4px;font-size:24px}.spin[data-v-b21a74d1]{animation:1s linear infinite spin-b21a74d1}@keyframes spin-b21a74d1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-preview-item video[data-v-b21a74d1]{background:#000}.site-logs-container[data-v-e0712596]{flex-direction:column;gap:16px;display:flex}.site-log-empty-state[data-v-e0712596]{justify-content:center;align-items:center;gap:20px;min-height:220px;padding:32px 24px;display:flex}.site-log-empty-marker[data-v-e0712596]{color:#5f7fb8;background:#eef4ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex}.site-log-empty-marker .material-icons-outlined[data-v-e0712596]{font-size:32px}.site-log-empty-content[data-v-e0712596]{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.site-log-empty-title[data-v-e0712596]{color:var(--text-primary);font-size:18px;font-weight:600}.site-log-empty-description[data-v-e0712596]{color:var(--text-sec);font-size:13px;line-height:1.6}.timeline-list[data-v-e0712596]{flex-direction:column;gap:16px;display:flex}.timeline-item[data-v-e0712596]{gap:16px;display:flex}.timeline-date[data-v-e0712596]{text-align:center;flex-shrink:0;width:60px;padding-top:16px}.timeline-date .day[data-v-e0712596]{color:var(--primary);font-size:24px;font-weight:600;line-height:1}.timeline-date .month[data-v-e0712596]{color:var(--text-sec);margin-top:4px;font-size:12px}.timeline-content[data-v-e0712596]{flex:1;padding:16px}.log-header[data-v-e0712596]{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.log-title[data-v-e0712596]{color:var(--text-main);margin:0;font-size:15px;font-weight:600}.log-meta[data-v-e0712596]{color:var(--text-sec);align-items:center;gap:8px;font-size:12px;display:flex}.log-meta .table-action-link[data-v-e0712596]{font-size:12px}.log-body p[data-v-e0712596]{color:var(--text-main);margin:0;font-size:14px;line-height:1.6}.log-images[data-v-e0712596]{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.log-img-thumb[data-v-e0712596]{cursor:pointer;border-radius:6px;width:80px;height:80px;position:relative;overflow:hidden}.log-img-thumb img[data-v-e0712596],.log-img-thumb video[data-v-e0712596]{object-fit:cover;background:#f5f5f5;width:100%;height:100%}.log-img-thumb.video .video-badge[data-v-e0712596]{color:#fff;text-shadow:0 2px 4px #0000004d;font-size:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-state[data-v-e0712596]{justify-content:center;align-items:center;min-height:120px;display:flex}.modal-overlay[data-v-e0712596]{background:#000c}.media-preview-modal[data-v-e0712596]{max-width:90vw;max-height:90vh;position:relative}.media-preview-modal .close-btn[data-v-e0712596]{color:#fff;cursor:pointer;background:0 0;border:none;font-size:32px;position:absolute;top:-40px;right:0}.preview-image[data-v-e0712596],.preview-video[data-v-e0712596]{object-fit:contain;max-width:90vw;max-height:85vh}@media (width<=768px){.site-log-empty-state[data-v-e0712596]{text-align:center;flex-direction:column}.site-log-empty-content[data-v-e0712596]{align-items:center}}.activity-timeline[data-v-d65acdad]{padding:16px}.activity-item[data-v-d65acdad]{gap:16px;padding-bottom:20px;display:flex}.activity-item[data-v-d65acdad]:last-child{padding-bottom:0}.activity-icon-wrapper[data-v-d65acdad]{flex-direction:column;align-items:center;display:flex;position:relative}.activity-line[data-v-d65acdad]{background:var(--border-light);width:2px;height:calc(100% + 20px);position:absolute;top:28px}.activity-item:last-child .activity-line[data-v-d65acdad]{display:none}.activity-icon[data-v-d65acdad]{z-index:1;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.activity-icon .material-icons-outlined[data-v-d65acdad]{font-size:16px}.activity-icon.icon-green[data-v-d65acdad]{background:var(--success-bg);color:var(--success)}.activity-icon.icon-blue[data-v-d65acdad]{background:var(--primary-light);color:var(--primary)}.activity-icon.icon-red[data-v-d65acdad]{background:var(--danger-bg);color:var(--danger)}.activity-icon.icon-orange[data-v-d65acdad]{background:var(--warning-bg);color:var(--warning)}.activity-icon.icon-gray[data-v-d65acdad]{background:var(--secondary-bg);color:var(--text-sec)}.activity-content[data-v-d65acdad]{flex:1;padding-top:4px}.activity-header[data-v-d65acdad]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.activity-user[data-v-d65acdad]{color:var(--text-main);font-weight:500}.activity-module[data-v-d65acdad]{background:var(--secondary-bg);height:20px;color:var(--text-sec);border-radius:999px;align-items:center;padding:0 8px;font-size:12px;display:inline-flex}.activity-action[data-v-d65acdad]{color:var(--text-sec)}.activity-time[data-v-d65acdad]{color:var(--text-disabled);margin-left:auto;font-size:12px}.activity-changes[data-v-d65acdad],.activity-detail[data-v-d65acdad]{background:#f8f9fa;border-radius:6px;margin-top:8px;padding:8px 12px;font-size:13px}.change-row[data-v-d65acdad]{align-items:center;gap:8px;padding:4px 0;display:flex}.change-field[data-v-d65acdad]{color:var(--text-sec);min-width:80px}.change-old[data-v-d65acdad]{color:var(--danger);text-decoration:line-through}.change-arrow[data-v-d65acdad]{color:var(--text-disabled)}.change-new[data-v-d65acdad]{color:var(--success)}.activity-detail[data-v-d65acdad]{color:var(--text-sec);line-height:1.6}.loading-card[data-v-e5201db4]{text-align:center;padding:40px}.loading-overlay[data-v-e5201db4]{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:2;pointer-events:none;background:#ffffff7a;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.workorder-card[data-v-e5201db4]{padding:0;position:relative;overflow:hidden}.gcp-table-container[data-v-e5201db4]{width:100%;overflow-x:auto}.workorder-table[data-v-e5201db4]{min-width:890px}.gcp-table[data-v-e5201db4]{border-collapse:collapse;width:100%}.gcp-table th[data-v-e5201db4]{text-align:left;color:#5f6368;background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:12px 16px;font-size:13px;font-weight:500}.gcp-table td[data-v-e5201db4]{border-bottom:1px solid #f0f0f0;padding:12px 16px;font-size:14px}.id-cell[data-v-e5201db4]{color:#5f6368;font-family:monospace}.id-link-btn[data-v-e5201db4]{color:#1a73e8;cursor:pointer;background:0 0;border:none;padding:0;font-family:monospace;text-decoration:underline}.id-link-btn[data-v-e5201db4]:hover{color:#174ea6}.title-text[data-v-e5201db4]{color:#202124;font-weight:500}.empty-table-cell[data-v-e5201db4]{padding:0!important}.workorder-empty-state[data-v-e5201db4]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:220px;padding:32px 24px;display:flex}.workorder-empty-icon[data-v-e5201db4]{color:#5f7fb8;background:#eef4ff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:inline-flex}.workorder-empty-icon .material-icons-outlined[data-v-e5201db4]{font-size:30px}.workorder-empty-title[data-v-e5201db4]{color:var(--text-primary);font-size:18px;font-weight:600}.workorder-empty-description[data-v-e5201db4]{color:var(--text-sec);font-size:13px}.status-chip[data-v-e5201db4]{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.status-chip.blue[data-v-e5201db4]{color:#1565c0;background:#e3f2fd}.status-chip.orange[data-v-e5201db4]{color:#e65100;background:#fff3e0}.status-chip.green[data-v-e5201db4]{color:#2e7d32;background:#e8f5e9}.status-chip.gray[data-v-e5201db4]{color:#616161;background:#f5f5f5}.priority-chip[data-v-e5201db4]{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.priority-chip.red[data-v-e5201db4]{color:#c62828;background:#ffebee}.priority-chip.orange[data-v-e5201db4]{color:#e65100;background:#fff3e0}.priority-chip.gray[data-v-e5201db4]{color:#616161;background:#f5f5f5}.priority-chip.urgent[data-v-e5201db4]{color:#c62828;background:0 0;border:1px solid #c62828;font-weight:600}.empty-state[data-v-e5201db4]{text-align:center;padding:48px 24px}.empty-state h4[data-v-e5201db4]{color:#202124;margin:16px 0 8px}.text-sec[data-v-e5201db4]{color:#5f6368}.text-center[data-v-e5201db4]{text-align:center}.spinner[data-v-e5201db4]{border:2px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;width:24px;height:24px;margin:0 auto 12px;animation:1s linear infinite spin-e5201db4}@keyframes spin-e5201db4{to{transform:rotate(360deg)}}.drinking-water-config[data-v-2cbd4d84]{background:0 0}.config-tabs[data-v-2cbd4d84]{background:#f1f3f4;border-radius:8px;gap:2px;margin-bottom:16px;padding:3px;display:flex}.tab-item[data-v-2cbd4d84]{color:#5f6368;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:7px 22px;font-size:14px;font-weight:500;transition:all .18s}.tab-item.active[data-v-2cbd4d84]{color:#1558d6;background:#fff;font-weight:600;box-shadow:0 1px 4px #00000024}.tab-item[data-v-2cbd4d84]:hover:not(.active){color:#1a73e8;background:#fff9}.config-content[data-v-2cbd4d84]{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.tab-pane[data-v-2cbd4d84]{padding:20px 24px 28px}.fields-grid[data-v-2cbd4d84]{flex-direction:column;display:flex}.field-row[data-v-2cbd4d84]{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;gap:0 24px;padding:2px 0;display:flex}.field-row[data-v-2cbd4d84]:last-child{border-bottom:none}.field-item[data-v-2cbd4d84]{flex:1 1 0;align-items:center;min-width:220px;padding:10px 0;display:flex}.field-item.full-width[data-v-2cbd4d84]{flex:100%}.field-label[data-v-2cbd4d84]{color:#5f6368;white-space:nowrap;flex-shrink:0;width:114px;padding-right:10px;font-size:13px;font-weight:500;line-height:1.5}.field-value[data-v-2cbd4d84]{flex:1;min-width:0;padding:2px 0;line-height:1.5}.gcp-input[data-v-2cbd4d84]{color:#202124;background:#fff;border:1px solid #dadce0;border-radius:6px;outline:none;width:100%;padding:6px 10px;font-size:14px;transition:border .2s,box-shadow .2s}.gcp-input[data-v-2cbd4d84]:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e82e}.gcp-input[data-v-2cbd4d84]:disabled{color:#202124;cursor:default;background:0 0;border-color:#0000;padding-left:0;font-weight:500}textarea.gcp-input[data-v-2cbd4d84]{resize:vertical;min-height:60px}textarea.gcp-input[data-v-2cbd4d84]:disabled{padding:0}.underline-input[data-v-2cbd4d84]{background:0 0;border:none;border-bottom:1.5px solid #d0d0d0;outline:none;padding:2px 4px;font-size:14px;transition:border-color .2s}.underline-input[data-v-2cbd4d84]:focus{border-bottom-color:#1a73e8}.underline-input[data-v-2cbd4d84]:disabled{color:#999;cursor:default;border-bottom-color:#e0e0e0}.radio-group[data-v-2cbd4d84],.checkbox-group[data-v-2cbd4d84]{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex;border:none!important}.radio-item[data-v-2cbd4d84],.checkbox-item[data-v-2cbd4d84]{color:#202124;cursor:pointer;align-items:center;gap:5px;padding:2px 0;font-size:14px;display:inline-flex}.radio-item input[type=radio][data-v-2cbd4d84],.checkbox-item input[type=checkbox][data-v-2cbd4d84]{appearance:none;cursor:pointer;background:#fff;border:2px solid #adb5bd;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin:0;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}.checkbox-item input[type=checkbox][data-v-2cbd4d84]{border-radius:3px}.radio-item input[type=radio][data-v-2cbd4d84]:checked{background:#1a73e8;border-color:#1a73e8;box-shadow:inset 0 0 0 3px #fff}.checkbox-item input[type=checkbox][data-v-2cbd4d84]:checked{background:#1a73e8 url("data:image/svg+xml,%3Csvg viewBox='0 0 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%23fff' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/10px no-repeat;border-color:#1a73e8}.radio-item input[type=radio][data-v-2cbd4d84]:hover:not(:disabled),.checkbox-item input[type=checkbox][data-v-2cbd4d84]:hover:not(:disabled){border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.radio-item input[type=radio][data-v-2cbd4d84]:disabled,.checkbox-item input[type=checkbox][data-v-2cbd4d84]:disabled{cursor:default;box-shadow:none;background:#f5f5f5;border-color:#d0d0d0}.radio-item input[type=radio][data-v-2cbd4d84]:checked:disabled{background:#a8c7fa;border-color:#a8c7fa;box-shadow:inset 0 0 0 3px #fff}.radio-item.disabled[data-v-2cbd4d84]{color:#bdbdbd;cursor:default}.radio-item.disabled input[data-v-2cbd4d84]{cursor:default}.sub-section[data-v-2cbd4d84]{margin-top:8px}.sub-section-title[data-v-2cbd4d84]{color:#1558d6;letter-spacing:.2px;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:12px -24px 4px;padding:7px 14px;font-size:13px;font-weight:600}.dynamic-item[data-v-2cbd4d84]{background:#fafbff;border:1px solid #dde3ff;border-radius:8px;margin-bottom:12px;padding:14px 16px}.dynamic-item .field-row[data-v-2cbd4d84]:last-child{border-bottom:none}.dynamic-header[data-v-2cbd4d84]{color:#303f9f;border-bottom:1px solid #dde3ff;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;font-size:13px;font-weight:600;display:flex}.delete-btn[data-v-2cbd4d84]{color:#d32f2f;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;font-size:12px;transition:background .15s}.delete-btn[data-v-2cbd4d84]:hover{background:#ffebee}.empty-hint[data-v-2cbd4d84]{color:#aaa;padding:8px 0;font-size:13px;font-style:italic}.three-col .field-item[data-v-2cbd4d84]{flex:1 1 0;min-width:140px}.input-with-unit[data-v-2cbd4d84]{align-items:center;gap:4px;display:flex}.input-with-unit .unit[data-v-2cbd4d84]{color:#5f6368;white-space:nowrap;font-size:13px}.gcp-btn-secondary[data-v-2cbd4d84]{cursor:pointer;color:#1a73e8;background:#f0f4ff;border:1px dashed #1a73e8;border-radius:6px;margin-top:4px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s}.gcp-btn-secondary[data-v-2cbd4d84]:hover{background:#dce8ff}.small[data-v-2cbd4d84]{padding:4px 10px;font-size:12px}.room-sketch-list[data-v-2cbd4d84]{flex-direction:column;gap:8px;margin-top:10px;display:flex}.room-sketch-item[data-v-2cbd4d84]{background:#f8faff;border:1px solid #e0e6f9;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.room-sketch-name[data-v-2cbd4d84]{color:#202124;word-break:break-all;font-size:13px}.room-sketch-actions[data-v-2cbd4d84]{flex-shrink:0;gap:10px;display:flex}.text-link-btn[data-v-2cbd4d84]{color:#1a73e8;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.text-link-btn.danger[data-v-2cbd4d84]{color:#d93025}.room-sketch-tips .field-value[data-v-2cbd4d84]{color:#5f6368;flex-direction:column;gap:4px;display:flex}.secondary-water-config[data-v-1ff31bca]{background:0 0}.config-tabs[data-v-1ff31bca]{background:#f1f3f4;border-radius:8px;gap:2px;margin-bottom:16px;padding:3px;display:flex}.tab-item[data-v-1ff31bca]{color:#5f6368;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:7px 22px;font-size:14px;font-weight:500;transition:all .18s}.tab-item.active[data-v-1ff31bca]{color:#1558d6;background:#fff;font-weight:600;box-shadow:0 1px 4px #00000024}.detail-radio-group[data-v-1ff31bca]{border-top:1px dashed #e6ebf1;margin-top:10px;padding-top:10px}.tab-item[data-v-1ff31bca]:hover:not(.active){color:#1a73e8;background:#fff9}.config-content[data-v-1ff31bca]{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.tab-pane[data-v-1ff31bca]{padding:20px 24px 28px}.fields-grid[data-v-1ff31bca]{flex-direction:column;display:flex}.field-row[data-v-1ff31bca]{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;gap:0 24px;padding:2px 0;display:flex}.field-row[data-v-1ff31bca]:last-child{border-bottom:none}.field-item[data-v-1ff31bca]{flex:1 1 0;align-items:center;min-width:220px;padding:10px 0;display:flex}.field-item.full-width[data-v-1ff31bca]{flex:100%}.field-label[data-v-1ff31bca]{color:#5f6368;white-space:nowrap;flex-shrink:0;width:114px;padding-right:10px;font-size:13px;font-weight:500;line-height:1.5}.field-value[data-v-1ff31bca]{flex:1;min-width:0;padding:2px 0;line-height:1.5}.gcp-input[data-v-1ff31bca]{color:#202124;background:#fff;border:1px solid #dadce0;border-radius:6px;outline:none;width:100%;padding:6px 10px;font-size:14px;transition:border .2s,box-shadow .2s}.gcp-input[data-v-1ff31bca]:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e82e}.gcp-input[data-v-1ff31bca]:disabled{color:#202124;cursor:default;background:0 0;border-color:#0000;padding-left:0;font-weight:500}textarea.gcp-input[data-v-1ff31bca]{resize:vertical;min-height:60px}textarea.gcp-input[data-v-1ff31bca]:disabled{padding:0}.underline-input[data-v-1ff31bca]{background:0 0;border:none;border-bottom:1.5px solid #d0d0d0;outline:none;padding:2px 4px;font-size:14px;transition:border-color .2s}.underline-input[data-v-1ff31bca]:focus{border-bottom-color:#1a73e8}.underline-input[data-v-1ff31bca]:disabled{color:#999;cursor:default;border-bottom-color:#e0e0e0}.radio-group[data-v-1ff31bca],.checkbox-group[data-v-1ff31bca]{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex;border:none!important}.radio-item[data-v-1ff31bca],.checkbox-item[data-v-1ff31bca]{color:#202124;cursor:pointer;align-items:center;gap:5px;padding:2px 0;font-size:14px;display:inline-flex}.radio-item input[type=radio][data-v-1ff31bca],.checkbox-item input[type=checkbox][data-v-1ff31bca]{appearance:none;cursor:pointer;background:#fff;border:2px solid #adb5bd;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin:0;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}.checkbox-item input[type=checkbox][data-v-1ff31bca]{border-radius:3px}.radio-item input[type=radio][data-v-1ff31bca]:checked{background:#1a73e8;border-color:#1a73e8;box-shadow:inset 0 0 0 3px #fff}.checkbox-item input[type=checkbox][data-v-1ff31bca]:checked{background:#1a73e8 url("data:image/svg+xml,%3Csvg viewBox='0 0 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%23fff' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/10px no-repeat;border-color:#1a73e8}.radio-item input[type=radio][data-v-1ff31bca]:hover:not(:disabled),.checkbox-item input[type=checkbox][data-v-1ff31bca]:hover:not(:disabled){border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.radio-item input[type=radio][data-v-1ff31bca]:disabled,.checkbox-item input[type=checkbox][data-v-1ff31bca]:disabled{cursor:default;box-shadow:none;background:#f5f5f5;border-color:#d0d0d0}.radio-item input[type=radio][data-v-1ff31bca]:checked:disabled{background:#a8c7fa;border-color:#a8c7fa;box-shadow:inset 0 0 0 3px #fff}.radio-item.disabled[data-v-1ff31bca]{color:#bdbdbd;cursor:default}.radio-item.disabled input[data-v-1ff31bca]{cursor:default}.sub-section[data-v-1ff31bca]{margin-top:8px}.sub-section-title[data-v-1ff31bca]{color:#1558d6;letter-spacing:.2px;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:12px -24px 4px;padding:7px 14px;font-size:13px;font-weight:600}.screen-size-group[data-v-1ff31bca]{border-left:1px solid #e0e0e0;align-items:center;gap:8px;margin-left:8px;padding-left:8px;display:inline-flex}.empty-hint[data-v-1ff31bca]{color:#aaa;padding:8px 0;font-size:13px;font-style:italic}.three-col .field-item[data-v-1ff31bca]{flex:1 1 0;min-width:140px}.input-with-unit[data-v-1ff31bca]{align-items:center;gap:4px;display:flex}.input-with-unit .unit[data-v-1ff31bca]{color:#5f6368;white-space:nowrap;font-size:13px}.gcp-btn-secondary[data-v-1ff31bca]{cursor:pointer;color:#1a73e8;background:#f0f4ff;border:1px dashed #1a73e8;border-radius:6px;margin-top:4px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s}.gcp-btn-secondary[data-v-1ff31bca]:hover{background:#dce8ff}.small[data-v-1ff31bca]{padding:4px 10px;font-size:12px}.inner-tabs[data-v-1ff31bca]{border-bottom:2px solid #d0d9ff;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:0;display:flex}.inner-tab-item[data-v-1ff31bca]{color:#5f6368;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:4px;margin-bottom:-2px;padding:5px 14px 5px 12px;font-size:12px;transition:background .12s,color .12s;display:flex}.inner-tab-item[data-v-1ff31bca]:hover{color:#3730a3;background:#eef2ff}.inner-tab-item.active[data-v-1ff31bca]{color:#3730a3;background:#fff;border-color:#d0d9ff #d0d9ff #fff;font-weight:600}.inner-tab-close[data-v-1ff31bca]{color:#aaa;border-radius:2px;padding:0 1px;font-size:13px;line-height:1;transition:color .1s,background .1s}.inner-tab-close[data-v-1ff31bca]:hover{color:#e53935;background:#fde8e8}.tab-name-input[data-v-1ff31bca]{color:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:none;outline:none;width:52px;min-width:32px;padding:0}.tab-name-input[data-v-1ff31bca]:focus{cursor:text}.inner-tab-add[data-v-1ff31bca]{color:#7986cb;cursor:pointer;border:1px dashed #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:4px 12px;font-size:16px;line-height:1;transition:background .12s,color .12s}.inner-tab-add[data-v-1ff31bca]:hover{color:#3730a3;background:#eef2ff;border-color:#d0d9ff}.inner-tab-content[data-v-1ff31bca]{background:#fafbff;border:1px solid #d0d9ff;border-top:none;border-radius:0 4px 8px 8px;margin-bottom:8px;padding:16px 14px 10px}.project-config-content[data-v-a79af171]{margin-top:16px;padding:24px}.type-badge[data-v-a79af171]{color:#1967d2;background:#e8f0fe;border-radius:12px;margin-left:8px;padding:2px 10px;font-size:12px;font-weight:500}.config-readonly-wrapper[data-v-a79af171] .tab-content{border-top:1px solid #d9d9d9;border-left:1px solid #d9d9d9;margin-top:16px;box-shadow:none!important;background:0 0!important;border-radius:0!important;padding:0!important}.config-readonly-wrapper[data-v-a79af171] .panel-title{display:none!important}.config-readonly-wrapper[data-v-a79af171] .form-row{display:flex;margin-bottom:0!important}.config-readonly-wrapper[data-v-a79af171] .form-group{background:0 0;border:none;flex:1;min-width:0;display:flex;margin-bottom:0!important;padding:0!important}.config-readonly-wrapper[data-v-a79af171] .form-group label{background:#f5f5f5;border-bottom:1px solid #d9d9d9;border-right:1px solid #d9d9d9;flex-shrink:0;align-items:center;width:140px;color:#333!important;margin:0!important;padding:12px 16px!important;font-size:14px!important;font-weight:600!important;display:flex!important}.config-readonly-wrapper[data-v-a79af171] .form-group input,.config-readonly-wrapper[data-v-a79af171] .form-group select,.config-readonly-wrapper[data-v-a79af171] .form-group textarea{flex:1;min-height:auto;color:#333!important;-webkit-text-fill-color:#333!important;opacity:1!important;cursor:default!important;pointer-events:none!important;appearance:none!important;box-shadow:none!important;background:#fff!important;border:1px solid #d9d9d9!important;border-top:none!important;border-left:none!important;border-radius:0!important;width:100%!important;margin:0!important;padding:12px 16px!important;font-size:14px!important;font-weight:500!important}.config-readonly-wrapper[data-v-a79af171] .sub-section-title{color:#333;background:#e8eaec;border-bottom:1px solid #d9d9d9;border-right:1px solid #d9d9d9;padding:10px 16px;font-size:14px;font-weight:700;margin:0!important}.config-readonly-wrapper[data-v-a79af171] .checkbox-group{background:#fff;border-bottom:1px solid #d9d9d9;border-right:1px solid #d9d9d9;flex-wrap:wrap;gap:16px;display:flex;margin:0!important;padding:12px 1px!important}.config-readonly-wrapper[data-v-a79af171] .checkbox-item{color:#555;transition:all .3s;pointer-events:none!important}.config-readonly-wrapper[data-v-a79af171] .checkbox-item input[type=checkbox]{display:none!important}.config-readonly-wrapper[data-v-a79af171] .checkbox-item:before{content:"☐";vertical-align:text-bottom;margin-right:4px;font-size:16px}.config-readonly-wrapper[data-v-a79af171] .checkbox-item:has(input:checked){color:var(--primary);font-weight:600}.config-readonly-wrapper[data-v-a79af171] .checkbox-item:has(input:checked):before{content:"☑"}.config-readonly-wrapper[data-v-a79af171] .config-actions{display:none!important}.checklist-section-title[data-v-a60952f7]{align-items:center;gap:12px;display:flex}.checklist-card[data-v-a60952f7]{flex-direction:column;gap:20px;display:flex}.checklist-error-box[data-v-a60952f7]{background:#fff7f7;border:1px solid #f3c7c7;border-radius:12px;flex-direction:column;gap:10px;padding:20px 24px;display:flex}.checklist-error-title[data-v-a60952f7]{color:#c62828;font-size:15px;font-weight:600}.checklist-error-message[data-v-a60952f7]{color:#7a3c3c;font-size:13px;line-height:1.6}.checklist-error-actions[data-v-a60952f7]{justify-content:flex-start;display:flex}.checklist-block[data-v-a60952f7]{flex-direction:column;gap:14px;display:flex}.installation-grid[data-v-a60952f7]{box-sizing:border-box;flex-direction:column;gap:18px;padding:20px;display:flex}.checklist-records-block[data-v-a60952f7]{box-sizing:border-box;padding:0 20px 20px}.block-title[data-v-a60952f7]{color:#1f1f1f;font-size:18px;font-weight:700}.record-title[data-v-a60952f7]{color:#1558d6;letter-spacing:.2px;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:0 0 4px;padding:7px 14px;font-size:13px;font-weight:600}.installation-grid>div[data-v-a60952f7],.record-group[data-v-a60952f7]{background:#f8fbff;border:1px solid #e3edf9;border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:16px 18px;display:flex}.record-group[data-v-a60952f7]{margin-top:8px}.group-title[data-v-a60952f7]{color:#1558d6;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:0 0 4px;padding:7px 14px;font-size:13px;font-weight:600}.installation-table-wrapper[data-v-a60952f7]{border-radius:10px}.installation-table[data-v-a60952f7]{table-layout:fixed;min-width:0}.installation-table th[data-v-a60952f7],.installation-table td[data-v-a60952f7]{padding:8px 10px;font-size:12px}.installation-table .col-no[data-v-a60952f7]{width:52px}.installation-table .col-check[data-v-a60952f7]{width:72px}.installation-table .col-text[data-v-a60952f7],.installation-table .col-date[data-v-a60952f7]{width:148px}.installation-table .compact-input[data-v-a60952f7]{min-height:32px;padding:6px 8px;font-size:12px}.table-wrapper[data-v-a60952f7]{border:1px solid #e6eaef;border-radius:12px;overflow-x:auto}.checklist-table[data-v-a60952f7]{border-collapse:collapse;background:#fff;width:100%;min-width:860px}.checklist-table th[data-v-a60952f7],.checklist-table td[data-v-a60952f7]{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f2;padding:10px 12px;font-size:13px}.checklist-table th[data-v-a60952f7]{color:#425466;white-space:nowrap;background:#f7fafe;font-weight:700}.checklist-table tbody tr[data-v-a60952f7]:nth-child(2n){background:#fcfdff}.col-no[data-v-a60952f7]{width:64px}.col-check[data-v-a60952f7]{text-align:center;width:96px}.col-text[data-v-a60952f7]{width:180px}.col-date[data-v-a60952f7]{width:170px}.check-cell[data-v-a60952f7]{text-align:center}.check-input[data-v-a60952f7]{appearance:none;cursor:pointer;background:#fff;border:1.5px solid #b8c2d1;border-radius:4px;place-content:center;width:18px;height:18px;margin:0;transition:background-color .18s,border-color .18s,box-shadow .18s;display:inline-grid}.check-input[data-v-a60952f7]:after{content:"";transform-origin:50%;border-bottom:2px solid #fff;border-left:2px solid #fff;width:9px;height:5px;transition:transform .15s;transform:rotate(-45deg)scale(0)}.check-input[data-v-a60952f7]:hover:not(:disabled){border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e814}.check-input[data-v-a60952f7]:checked,.check-input.is-checked[data-v-a60952f7]{background:#34a853;border-color:#34a853}.check-input[data-v-a60952f7]:checked:after,.check-input.is-checked[data-v-a60952f7]:after{transform:rotate(-45deg)scale(1)}.check-input[data-v-a60952f7]:disabled{opacity:1;cursor:not-allowed}.check-input[data-v-a60952f7]:disabled:not(.is-checked){background:#f8fafc;border-color:#cfd7e3}.compact-input[data-v-a60952f7]{width:100%;min-height:36px;padding:7px 10px;font-size:13px}.notice-box[data-v-a60952f7],.note-text[data-v-a60952f7]{border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7}.notice-box[data-v-a60952f7]{color:#7a4f01;background:#fff8e1;border:1px solid #f6d365;margin:0 20px}.note-text[data-v-a60952f7]{color:#5f6368;background:#f8f9fa;border:1px solid #e6eaef}@media (width<=960px){.section-title[data-v-a60952f7]{flex-wrap:wrap;gap:10px}.installation-grid[data-v-a60952f7]{grid-template-columns:1fr}.checklist-actions[data-v-a60952f7]{justify-content:flex-end;width:100%}}@media print{.no-print[data-v-a60952f7],.checklist-actions[data-v-a60952f7]{display:none!important}.checklist-card[data-v-a60952f7]{box-shadow:none;border:none;padding:0}.table-wrapper[data-v-a60952f7]{overflow:visible}.checklist-table[data-v-a60952f7]{min-width:0}}.checklist-section-title[data-v-306fd583]{align-items:center;gap:12px;display:flex}.checklist-card[data-v-306fd583]{flex-direction:column;gap:20px;display:flex}.checklist-stale-box[data-v-306fd583]{background:#fff8e1;border:1px solid #f6d365;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin:0 20px;padding:16px 20px;display:flex}.checklist-stale-content[data-v-306fd583]{flex-direction:column;gap:6px;display:flex}.checklist-stale-title[data-v-306fd583]{color:#7a4f01;font-size:14px;font-weight:600}.checklist-stale-message[data-v-306fd583]{color:#8a6110;font-size:13px;line-height:1.6}.checklist-error-box[data-v-306fd583]{background:#fff7f7;border:1px solid #f3c7c7;border-radius:12px;flex-direction:column;gap:10px;padding:20px 24px;display:flex}.checklist-error-title[data-v-306fd583]{color:#c62828;font-size:15px;font-weight:600}.checklist-error-message[data-v-306fd583]{color:#7a3c3c;font-size:13px;line-height:1.6}.checklist-error-actions[data-v-306fd583]{justify-content:flex-start;display:flex}.checklist-block[data-v-306fd583]{flex-direction:column;gap:14px;display:flex}.installation-grid[data-v-306fd583]{box-sizing:border-box;flex-direction:column;gap:18px;padding:20px;display:flex}.checklist-records-block[data-v-306fd583]{box-sizing:border-box;padding:0 20px 20px}.record-title[data-v-306fd583]{color:#1558d6;letter-spacing:.2px;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:0 0 4px;padding:7px 14px;font-size:13px;font-weight:600}.installation-grid>div[data-v-306fd583],.record-group[data-v-306fd583]{background:#f8fbff;border:1px solid #e3edf9;border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:16px 18px;display:flex}.record-group[data-v-306fd583]{margin-top:8px}.group-title[data-v-306fd583]{color:#1558d6;background:#eef2ff;border-left:3px solid #1a73e8;border-radius:0 4px 4px 0;margin:0 0 4px;padding:7px 14px;font-size:13px;font-weight:600}.installation-table-wrapper[data-v-306fd583]{border-radius:10px}.installation-table[data-v-306fd583]{table-layout:fixed;min-width:0}.installation-table th[data-v-306fd583],.installation-table td[data-v-306fd583]{padding:8px 10px;font-size:12px}.installation-table .col-no[data-v-306fd583]{width:52px}.installation-table .col-check[data-v-306fd583]{width:72px}.installation-table .col-text[data-v-306fd583],.installation-table .col-date[data-v-306fd583]{width:148px}.installation-table .compact-input[data-v-306fd583]{min-height:32px;padding:6px 8px;font-size:12px}.table-wrapper[data-v-306fd583]{border:1px solid #e6eaef;border-radius:12px;overflow-x:auto}.checklist-table[data-v-306fd583]{border-collapse:collapse;background:#fff;width:100%;min-width:860px}.checklist-table th[data-v-306fd583],.checklist-table td[data-v-306fd583]{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f2;padding:10px 12px;font-size:13px}.checklist-table th[data-v-306fd583]{color:#425466;white-space:nowrap;background:#f7fafe;font-weight:700}.checklist-table tbody tr[data-v-306fd583]:nth-child(2n){background:#fcfdff}.col-no[data-v-306fd583]{width:64px}.col-check[data-v-306fd583]{text-align:center;width:96px}.col-text[data-v-306fd583]{width:180px}.col-date[data-v-306fd583]{width:170px}.check-cell[data-v-306fd583]{text-align:center}.check-input[data-v-306fd583]{appearance:none;cursor:pointer;background:#fff;border:1.5px solid #b8c2d1;border-radius:4px;place-content:center;width:18px;height:18px;margin:0;transition:background-color .18s,border-color .18s,box-shadow .18s;display:inline-grid}.check-input[data-v-306fd583]:after{content:"";transform-origin:50%;border-bottom:2px solid #fff;border-left:2px solid #fff;width:9px;height:5px;transition:transform .15s;transform:rotate(-45deg)scale(0)}.check-input[data-v-306fd583]:hover:not(:disabled){border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e814}.check-input[data-v-306fd583]:checked,.check-input.is-checked[data-v-306fd583]{background:#34a853;border-color:#34a853}.check-input[data-v-306fd583]:checked:after,.check-input.is-checked[data-v-306fd583]:after{transform:rotate(-45deg)scale(1)}.check-input[data-v-306fd583]:disabled{opacity:1;cursor:not-allowed}.check-input[data-v-306fd583]:disabled:not(.is-checked){background:#f8fafc;border-color:#cfd7e3}.compact-input[data-v-306fd583]{width:100%;min-height:36px;padding:7px 10px;font-size:13px}.notice-box[data-v-306fd583]{color:#7a4f01;background:#fff8e1;border:1px solid #f6d365;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7}.note-text[data-v-306fd583]{color:#7a8591;font-size:12px;line-height:1.7}.section-actions[data-v-fb098580]{gap:10px;margin-left:auto;display:flex}.bom-card[data-v-fb098580]{flex-direction:column;gap:16px;display:flex}.bom-hint[data-v-fb098580]{color:#607080;font-size:13px;line-height:1.7}.bom-table[data-v-fb098580]{border-collapse:collapse;width:100%}.bom-table th[data-v-fb098580],.bom-table td[data-v-fb098580]{vertical-align:top;border:1px solid #e6ebf1;padding:10px 12px}.bom-table th[data-v-fb098580]{color:#607080;text-align:left;background:#f8fafc;font-size:12px;font-weight:600}.compact-input[data-v-fb098580]{height:34px}.material-name-cell[data-v-fb098580],.source-cell[data-v-fb098580]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.source-extra[data-v-fb098580]{color:#8a94a0;font-size:12px}.status-tag[data-v-fb098580]{border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.status-tag-blue[data-v-fb098580]{color:#1967d2;background:#e8f0fe}.status-tag-orange[data-v-fb098580]{color:#c26401;background:#fff3e0}.status-tag-muted[data-v-fb098580]{color:#5f6368;background:#eef1f5}.rule-tip[data-v-fb098580]{color:#8a94a0;margin-top:6px;font-size:12px;line-height:1.4}.empty-cell[data-v-fb098580]{text-align:center;color:#8b96a3;padding:28px 12px}.section-error-box[data-v-fb098580]{background:#fff6f4;border:1px solid #ffd7d1;border-radius:12px;padding:18px}.section-error-title[data-v-fb098580]{color:#c5221f;font-size:14px;font-weight:600}.section-error-message[data-v-fb098580]{color:#5f6368;margin-top:8px;font-size:13px}.row-actions[data-v-fb098580]{justify-content:center;align-items:center;display:flex}.excluded-row[data-v-fb098580]{color:#7b8591;background:#fafbfc}.excluded-row[data-v-fb098580] input{background:#f5f7fa}.material-picker[data-v-fb098580]{flex-direction:column;gap:16px;display:flex}.material-picker-toolbar[data-v-fb098580]{grid-template-columns:1fr auto;gap:12px;display:grid}.remote-lookup[data-v-33c73541]{width:100%;position:relative}.lookup-input-wrap[data-v-33c73541]{border:1px solid var(--border,#d1d5db);background:#fff;border-radius:8px;align-items:center;min-height:38px;transition:border-color .2s,box-shadow .2s;display:flex;position:relative}.lookup-input-wrap.open[data-v-33c73541]{border-color:var(--primary,#2563eb);box-shadow:0 0 0 3px #2563eb14}.remote-lookup.disabled .lookup-input-wrap[data-v-33c73541]{cursor:not-allowed;background:#f3f4f6}.lookup-icon[data-v-33c73541],.lookup-arrow[data-v-33c73541],.lookup-clear .material-icons-outlined[data-v-33c73541]{color:#94a3b8;font-size:18px}.lookup-icon[data-v-33c73541]{margin-left:10px}.lookup-input[data-v-33c73541]{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:9px 10px;font-size:14px}.lookup-clear[data-v-33c73541]{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.lookup-arrow[data-v-33c73541]{margin-right:10px;transition:transform .2s}.lookup-arrow.open[data-v-33c73541]{transform:rotate(180deg)}.lookup-dropdown[data-v-33c73541]{z-index:1100;border:1px solid var(--border,#d1d5db);background:#fff;border-radius:10px;max-height:280px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 36px #0f172a24}.lookup-option[data-v-33c73541],.lookup-state[data-v-33c73541]{text-align:left;width:100%;padding:10px 12px}.lookup-option[data-v-33c73541]{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;display:flex}.lookup-option[data-v-33c73541]:hover,.lookup-option.active[data-v-33c73541]{background:#eff6ff}.lookup-option.selected .lookup-option-label[data-v-33c73541]{color:var(--primary,#2563eb);font-weight:600}.lookup-option-label[data-v-33c73541]{color:#111827;font-size:14px}.lookup-option-desc[data-v-33c73541]{color:#6b7280;font-size:12px}.lookup-state[data-v-33c73541]{color:#6b7280;font-size:13px}.form-group label[data-v-f7624660]{color:var(--text-sec);font-size:13px;font-weight:500}.form-group input[data-v-f7624660],.form-group select[data-v-f7624660],.form-group textarea[data-v-f7624660]{border:1px solid var(--border);border-radius:4px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.form-group input[data-v-f7624660]:focus,.form-group select[data-v-f7624660]:focus,.form-group textarea[data-v-f7624660]:focus{border-color:var(--primary)}.form-group textarea[data-v-f7624660]{resize:vertical}.readonly-input[data-v-f7624660]{cursor:not-allowed;background:#f5f5f5}.form-group[data-v-f7624660] .region-selector--row{gap:12px}.equip-edit-checks[data-v-3fd2f9b9],.tank-basic-config-list[data-v-3fd2f9b9]{flex-wrap:wrap;gap:12px;display:flex}.equip-edit-check[data-v-3fd2f9b9],.tank-basic-config-chip[data-v-3fd2f9b9]{color:#334155;cursor:pointer;background:linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #d8e3f2;border-radius:18px;align-items:center;min-height:48px;padding:10px 16px;font-size:14px;font-weight:600;transition:border-color .18s,background-color .18s,box-shadow .18s,color .18s,transform .18s;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffffe6}.equip-edit-check[data-v-3fd2f9b9]:hover,.tank-basic-config-chip[data-v-3fd2f9b9]:hover{background:linear-gradient(#fdfefe 0%,#f1f6ff 100%);border-color:#9dbdff;transform:translateY(-1px);box-shadow:0 10px 22px #2563eb14}.equip-edit-check span[data-v-3fd2f9b9],.tank-basic-config-chip span[data-v-3fd2f9b9]{white-space:nowrap;align-items:center;gap:10px;line-height:1.2;display:inline-flex}.equip-edit-check span[data-v-3fd2f9b9]:before,.tank-basic-config-chip span[data-v-3fd2f9b9]:before{content:"";background:#fff;border:1.5px solid #bdd0ea;border-radius:999px;flex-shrink:0;width:18px;height:18px;transition:border-color .18s,background-color .18s,box-shadow .18s;box-shadow:inset 0 1px 2px #0f172a0f}.equip-edit-check input[type=checkbox][data-v-3fd2f9b9],.tank-basic-config-chip input[type=checkbox][data-v-3fd2f9b9]{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}:is(.equip-edit-check[data-v-3fd2f9b9]:has(input[type=checkbox]:focus-visible),.tank-basic-config-chip[data-v-3fd2f9b9]:has(input[type=checkbox]:focus-visible)){box-shadow:0 0 0 3px #2563eb24}.equip-edit-check:has(input[type=checkbox]:checked) span[data-v-3fd2f9b9]:before{background-color:#2563eb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1.5 5.25 4.5 8 10.5 2' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:11px 9px;border-color:#2563eb;box-shadow:0 6px 14px #2563eb2e}.tank-basic-config-chip:has(input[type=checkbox]:checked) span[data-v-3fd2f9b9]:before{background-color:#2563eb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1.5 5.25 4.5 8 10.5 2' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:11px 9px;border-color:#2563eb;box-shadow:0 6px 14px #2563eb2e}:is(.equip-edit-check[data-v-3fd2f9b9]:has(input[type=checkbox]:checked),.tank-basic-config-chip[data-v-3fd2f9b9]:has(input[type=checkbox]:checked)){color:#1d4ed8;background:linear-gradient(135deg,#edf4ff 0%,#f8fbff 100%);border-color:#2563eb;box-shadow:0 12px 24px #2563eb1f}.equip-edit-fieldset:disabled .equip-edit-check[data-v-3fd2f9b9],.equip-edit-fieldset:disabled .tank-basic-config-chip[data-v-3fd2f9b9]{box-shadow:none;cursor:not-allowed;background:#f8fafc;border-color:#e2e8f0;transform:none}.equip-edit-fieldset:disabled .equip-edit-check span[data-v-3fd2f9b9]:before,.equip-edit-fieldset:disabled .tank-basic-config-chip span[data-v-3fd2f9b9]:before{box-shadow:none;background:#f8fafc;border-color:#cbd5e1}.equipment-edit-modal[data-v-3fd2f9b9]{width:min(92vw,880px);max-width:880px;transition:transform .2s,opacity .2s,filter .2s}.equipment-edit-modal.submodal-active[data-v-3fd2f9b9]{opacity:.42;filter:blur(1px);pointer-events:none;transform:scale(.985)}.equip-edit-section[data-v-3fd2f9b9]{border-left:3px solid var(--primary);color:var(--primary);margin-top:14px;margin-bottom:10px;padding-left:8px;font-size:14px;font-weight:600}.equip-edit-row[data-v-3fd2f9b9]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-note[data-v-3fd2f9b9]{color:var(--text-sec);background:#f5f8ff;border-radius:8px;margin-bottom:12px;padding:10px 12px}.equip-edit-fieldset[data-v-3fd2f9b9]{border:0;min-width:0;margin:0;padding:0}.readonly-banner[data-v-3fd2f9b9]{color:#2f5bd3;background:#f5f8ff;border:1px solid #d6e4ff;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px}.equip-edit-fieldset[data-v-3fd2f9b9]:disabled .gcp-input,.equip-edit-fieldset:disabled input[data-v-3fd2f9b9],.equip-edit-fieldset:disabled select[data-v-3fd2f9b9],.equip-edit-fieldset:disabled textarea[data-v-3fd2f9b9]{cursor:not-allowed;color:#98a2b3!important;background:#f5f7fb!important;border-color:#e5e7eb!important}.equip-edit-fieldset:disabled .equip-edit-check[data-v-3fd2f9b9],.equip-edit-fieldset:disabled .pump-count-joiner[data-v-3fd2f9b9],.equip-edit-fieldset:disabled .form-label[data-v-3fd2f9b9]{color:#98a2b3}.model-select-row[data-v-3fd2f9b9]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.pump-count-grid[data-v-3fd2f9b9]{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.pump-count-joiner[data-v-3fd2f9b9]{color:var(--text-sec);white-space:nowrap;font-size:13px}.pump-count-total[data-v-3fd2f9b9]{min-height:40px;color:var(--text-main);white-space:nowrap;background:#f5f7fb;border-radius:8px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.pump-count-total-label[data-v-3fd2f9b9]{color:var(--text-sec);font-size:13px}.pump-count-total-value[data-v-3fd2f9b9]{font-weight:600}.model-select-row .gcp-input[data-v-3fd2f9b9]{flex:1}.select-equipment-btn[data-v-3fd2f9b9]{white-space:nowrap;min-width:108px}.security-select-btn[data-v-3fd2f9b9]{align-self:stretch}.radio-group[data-v-3fd2f9b9]{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.radio-item[data-v-3fd2f9b9]{color:#202124;cursor:pointer;align-items:center;gap:5px;padding:2px 0;font-size:14px;display:inline-flex}.radio-item input[type=radio][data-v-3fd2f9b9]{appearance:none;cursor:pointer;background:#fff;border:2px solid #adb5bd;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin:0;transition:border-color .15s,background .15s,box-shadow .15s}.radio-item input[type=radio][data-v-3fd2f9b9]:checked{background:#1a73e8;border-color:#1a73e8;box-shadow:inset 0 0 0 3px #fff}.radio-item input[type=radio][data-v-3fd2f9b9]:hover:not(:disabled){border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.security-standard-group[data-v-3fd2f9b9]{align-items:center}@media (width<=768px){.equip-edit-row[data-v-3fd2f9b9],.model-select-row[data-v-3fd2f9b9]{grid-template-columns:1fr}}.simple-workflow[data-v-7cfd560f]{scrollbar-width:none;-ms-overflow-style:none;width:100%;padding:10px 0 20px;overflow-x:auto}.simple-workflow[data-v-7cfd560f]::-webkit-scrollbar{display:none}.workflow-container[data-v-7cfd560f]{justify-content:space-between;min-width:1040px;margin:0 auto;padding:0 40px;display:flex;position:relative}.progress-track[data-v-7cfd560f]{z-index:0;height:3px;position:absolute;top:64px;left:40px;right:40px}.track-bg[data-v-7cfd560f]{background:#e5e7eb;border-radius:3px;width:100%;height:100%;position:absolute}.track-fill[data-v-7cfd560f]{background:linear-gradient(90deg, var(--primary) 0%, #60a5fa 100%);border-radius:3px;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);position:absolute}.stage-item[data-v-7cfd560f]{z-index:1;flex-direction:column;flex:1;align-items:center;min-width:80px;display:flex;position:relative}.stage-meta[data-v-7cfd560f]{justify-content:center;align-items:flex-end;height:36px;margin-bottom:12px;display:flex}.meta-content[data-v-7cfd560f]{text-align:center;line-height:1.2}.meta-date[data-v-7cfd560f]{color:var(--text-primary);font-size:12px}.meta-time[data-v-7cfd560f]{color:var(--text-secondary);font-size:11px}.meta-placeholder[data-v-7cfd560f]{height:100%}.stage-icon-bubble[data-v-7cfd560f]{color:#9ca3af;background:#fff;border:2px solid #e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 2px 4px #0000000d}.stage-icon[data-v-7cfd560f]{font-size:16px}.status-badge[data-v-7cfd560f]{background:var(--success);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;animation:.3s scaleIn-7cfd560f;display:flex;position:absolute;top:-2px;right:-2px}.status-badge .material-icons-outlined[data-v-7cfd560f]{color:#fff;font-size:9px;font-weight:700}@keyframes scaleIn-7cfd560f{0%{transform:scale(0)}to{transform:scale(1)}}.stage-info[data-v-7cfd560f]{text-align:center;flex-direction:column;align-items:center;gap:6px;margin-top:12px;display:flex}.stage-name[data-v-7cfd560f]{color:var(--text-secondary);font-size:13px;font-weight:500;transition:color .3s}.stage-dept[data-v-7cfd560f]{color:var(--text-disabled);background:#f3f4f6;border-radius:10px;padding:2px 8px;font-size:12px}.stage-user-pill[data-v-7cfd560f]{color:var(--primary);background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;display:flex}.user-icon[data-v-7cfd560f]{font-size:14px}.user-name[data-v-7cfd560f]{font-size:12px;font-weight:500}.stage-item.is-completed .stage-icon-bubble[data-v-7cfd560f]{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 6px #2563eb33}.stage-item.is-completed .stage-name[data-v-7cfd560f]{color:var(--primary)}.stage-item.is-active .stage-icon-bubble[data-v-7cfd560f]{border-color:var(--primary);color:var(--primary);z-index:2;background:#fff;transform:scale(1.15);box-shadow:0 0 0 4px #2563eb26}.stage-item.is-active .stage-name[data-v-7cfd560f]{color:var(--primary);font-size:14px}.stage-item.is-future .stage-icon-bubble[data-v-7cfd560f]{background:#f9fafb}.stage-item:not(.is-future):hover .stage-icon-bubble[data-v-7cfd560f]{transform:translateY(-2px)}.modal-dialog[data-v-0c8d7754]{background:#fff;border-radius:8px;flex-direction:column;width:90%;max-width:600px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 4px 12px #00000026}.form-group[data-v-0c8d7754]{margin-bottom:20px}.form-group label[data-v-0c8d7754]{color:#1a1a1a;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group label .required[data-v-0c8d7754]{color:#ea4335}.gcp-input[data-v-0c8d7754],input[type=text][data-v-0c8d7754],input[type=number][data-v-0c8d7754],input[type=date][data-v-0c8d7754]{box-sizing:border-box;background:#fff;border:1px solid #dadce0;border-radius:4px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.gcp-input[data-v-0c8d7754]:focus,input[type=text][data-v-0c8d7754]:focus,input[type=number][data-v-0c8d7754]:focus,input[type=date][data-v-0c8d7754]:focus{border-color:#1967d2;outline:none;box-shadow:0 0 0 3px #1967d21a}input[type=number][data-v-0c8d7754]::-webkit-inner-spin-button{opacity:1}input[type=number][data-v-0c8d7754]::-webkit-outer-spin-button{opacity:1}.modal-footer[data-v-0c8d7754]{border-top:1px solid #e0e0e0;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.gcp-btn[data-v-1f4d17fb]{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-weight:500;transition:background .2s,box-shadow .2s;display:inline-flex}.gcp-btn-medium[data-v-1f4d17fb]{height:32px;padding:0 16px;font-size:13px}.gcp-btn-small[data-v-1f4d17fb]{height:28px;padding:0 12px;font-size:12px}.gcp-btn-primary[data-v-1f4d17fb]{background:var(--primary);color:#fff;box-shadow:0 1px 2px #3c40434d}.gcp-btn-primary[data-v-1f4d17fb]:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 1px 3px 1px #3c404326}.gcp-btn-primary[data-v-1f4d17fb]:active:not(:disabled){background:var(--primary-active);box-shadow:none}.gcp-btn-outlined[data-v-1f4d17fb]{border-color:var(--border);color:var(--text-main);background:#fff}.gcp-btn-outlined[data-v-1f4d17fb]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-main);color:var(--text-main)}.gcp-btn-text[data-v-1f4d17fb]{color:var(--primary);background:0 0}.gcp-btn-text[data-v-1f4d17fb]:hover:not(:disabled){background:#1a73e80a}.gcp-btn-danger[data-v-1f4d17fb]{background:var(--danger);color:#fff;box-shadow:0 1px 2px #3c40434d}.gcp-btn-danger[data-v-1f4d17fb]:hover:not(:disabled){background:#b31412;box-shadow:0 1px 3px 1px #3c404326}.gcp-btn[data-v-1f4d17fb]:disabled,.gcp-btn.is-disabled[data-v-1f4d17fb]{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-icon[data-v-1f4d17fb]{flex-shrink:0;margin-right:6px;font-size:18px;line-height:1;display:block}.gcp-btn-small .btn-icon[data-v-1f4d17fb]{margin-right:4px;font-size:16px}.spinner[data-v-1f4d17fb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin-1f4d17fb}.gcp-btn-outlined .spinner[data-v-1f4d17fb],.gcp-btn-text .spinner[data-v-1f4d17fb]{border-color:#1a73e84d;border-top-color:var(--primary)}@keyframes spin-1f4d17fb{to{transform:rotate(360deg)}}.gcp-modal-overlay[data-v-76b73e01]{z-index:1300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#20212499;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gcp-modal[data-v-76b73e01]{background:#fff;border-radius:8px;flex-direction:column;width:80vw;max-width:1200px;height:85vh;animation:.2s ease-out slideIn-76b73e01;display:flex;box-shadow:0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f,0 11px 15px -7px #0003}.gcp-modal-header[data-v-76b73e01]{border-bottom:1px solid #dadce0;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.gcp-modal-title[data-v-76b73e01]{color:#202124;margin:0;font-size:18px;font-weight:500}.close-btn[data-v-76b73e01]{color:#5f6368;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:background .2s;display:flex}.close-btn[data-v-76b73e01]:hover{color:#202124;background:#f1f3f4}.gcp-modal-body[data-v-76b73e01]{background:#f8f9fa;flex:1;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.image-preview[data-v-76b73e01]{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:auto}.image-preview img[data-v-76b73e01]{object-fit:contain;max-width:100%;max-height:100%;box-shadow:0 1px 3px #0000001f}.pdf-preview[data-v-76b73e01]{width:100%;height:100%}.unsupported-preview[data-v-76b73e01]{text-align:center;color:#5f6368}.unsupported-preview .icon[data-v-76b73e01]{color:#dadce0;margin-bottom:16px;font-size:64px}.unsupported-preview p[data-v-76b73e01]{margin-bottom:24px;font-size:16px}@keyframes slideIn-76b73e01{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.gcp-input-wrapper[data-v-1e8cc00f]{margin-bottom:16px}.gcp-label[data-v-1e8cc00f]{color:var(--text-sec);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.required[data-v-1e8cc00f]{color:var(--danger)}.input-container[data-v-1e8cc00f]{align-items:center;display:flex;position:relative}.gcp-input[data-v-1e8cc00f]{width:100%;height:36px;color:var(--text-main);border:1px solid var(--border);background:#fff;border-radius:4px;outline:none;padding:0 12px;font-family:inherit;font-size:13px;transition:border-color .2s,box-shadow .2s}.gcp-input.textarea[data-v-1e8cc00f]{resize:vertical;height:auto;padding:8px 12px}.gcp-input[data-v-1e8cc00f]:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}.gcp-input[data-v-1e8cc00f]:disabled{background:var(--bg-body);color:var(--text-disabled);cursor:not-allowed}.has-error .gcp-input[data-v-1e8cc00f]{border-color:var(--danger)}.has-error .gcp-input[data-v-1e8cc00f]:focus{box-shadow:0 0 0 2px #d9302533}.error-msg[data-v-1e8cc00f]{color:var(--danger);margin-top:4px;font-size:12px}.hint-msg[data-v-1e8cc00f]{color:var(--text-sec);margin-top:4px;font-size:12px}.prefix[data-v-1e8cc00f],.suffix[data-v-1e8cc00f]{color:var(--text-sec);pointer-events:none;font-size:13px;position:absolute}.prefix[data-v-1e8cc00f]{left:12px}.suffix[data-v-1e8cc00f]{right:12px}.input-container:has(.prefix) .gcp-input[data-v-1e8cc00f]{padding-left:28px}.input-container:has(.suffix) .gcp-input[data-v-1e8cc00f]{padding-right:28px}.form-group[data-v-077bd406]{margin-bottom:20px}.form-row[data-v-077bd406]{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-row .form-group[data-v-077bd406]{margin-bottom:0}.form-group label[data-v-077bd406]{color:#202124;margin-bottom:8px;font-size:14px;font-weight:600;display:block}.gcp-input[data-v-077bd406]{box-sizing:border-box;background:#fff;border:2px solid #dadce0;border-radius:6px;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}.gcp-input[data-v-077bd406]:hover{border-color:#bdc1c6}.gcp-input[data-v-077bd406]:focus{border-color:#1967d2;outline:none;box-shadow:0 0 0 3px #1967d21a}textarea.gcp-input[data-v-077bd406]{resize:vertical;min-height:80px;font-family:inherit}.contract-payment-view[data-v-af3f0ae7]{flex-direction:column;gap:0;width:100%;padding:0;display:flex}.gcp-card[data-v-af3f0ae7]{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.section-header[data-v-af3f0ae7]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.section-header .section-title[data-v-af3f0ae7]{margin-bottom:0;font-weight:600}.section-actions[data-v-af3f0ae7]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.approval-target-hint[data-v-af3f0ae7]{color:#64748b;margin:-6px 0 18px;font-size:12px;line-height:1.6}.contract-setup-hint[data-v-af3f0ae7]{background:linear-gradient(#f8fbff 0%,#eef5ff 100%);border:1px solid #dbeafe;border-radius:12px;flex-direction:column;gap:10px;margin:-6px 0 18px;padding:14px 16px;display:flex}.contract-setup-title[data-v-af3f0ae7]{color:#174ea6;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.contract-setup-title .material-icons-outlined[data-v-af3f0ae7]{font-size:18px}.contract-setup-steps[data-v-af3f0ae7]{color:#475569;flex-wrap:wrap;gap:12px;font-size:12px;line-height:1.7;display:flex}.section-title .material-icons-outlined[data-v-af3f0ae7]{color:#1967d2;font-size:24px}.contract-content[data-v-af3f0ae7]{grid-template-columns:1.2fr 1fr;align-items:start;gap:32px;display:grid}.contract-payment-divider[data-v-af3f0ae7]{background:linear-gradient(90deg,#0f172a0a 0%,#0f172a24 18% 82%,#0f172a0a 100%);height:1px;margin:28px -24px 0}.embedded-payment-section[data-v-af3f0ae7]{margin-top:28px}.embedded-section-header[data-v-af3f0ae7]{margin-bottom:18px}@media (width<=1024px){.contract-content[data-v-af3f0ae7]{grid-template-columns:1fr}}.contract-details[data-v-af3f0ae7]{flex-direction:column;align-self:flex-start;gap:24px;display:flex}.approval-banner[data-v-af3f0ae7]{background:linear-gradient(#f8fbff 0%,#eef5ff 100%);border:1px solid #dbeafe;border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.approval-banner.draft[data-v-af3f0ae7]{background:linear-gradient(#fafafa 0%,#f4f4f5 100%);border-color:#e5e7eb}.approval-banner.pending[data-v-af3f0ae7]{background:linear-gradient(#fff9db 0%,#fff4bf 100%);border-color:#fcd34d}.approval-banner.approved[data-v-af3f0ae7]{background:linear-gradient(#f0fdf4 0%,#dcfce7 100%);border-color:#bbf7d0}.approval-banner.rejected[data-v-af3f0ae7]{background:linear-gradient(#fff7f7 0%,#fee2e2 100%);border-color:#fecaca}.approval-banner-main[data-v-af3f0ae7]{justify-content:space-between;align-items:center;gap:12px;display:flex}.approval-label[data-v-af3f0ae7]{color:#475569;font-size:13px}.approval-value[data-v-af3f0ae7]{color:#0f172a;font-size:14px;font-weight:700}.approval-remark[data-v-af3f0ae7]{color:#475569;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.7}.detail-grid[data-v-af3f0ae7]{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:24px;display:grid}.detail-item[data-v-af3f0ae7]{flex-direction:column;gap:6px;min-width:0;display:flex;overflow:hidden}.detail-item label[data-v-af3f0ae7]{color:#909399;margin-bottom:4px;font-size:13px}.detail-item span[data-v-af3f0ae7]{color:#303133;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.detail-item .amount[data-v-af3f0ae7]{color:#1967d2;letter-spacing:.5px;font-size:18px;font-weight:700}.payment-progress[data-v-af3f0ae7]{background:0 0;border:none;margin-top:0;padding:0}.progress-header[data-v-af3f0ae7]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.progress-label[data-v-af3f0ae7]{color:#1a1a1a;font-size:14px;font-weight:500}.progress-percent[data-v-af3f0ae7]{color:#1967d2;font-size:24px;font-weight:700}.progress-bar-container[data-v-af3f0ae7]{background:#fffc;border-radius:8px;height:16px;margin-bottom:20px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.progress-bar-fill[data-v-af3f0ae7]{background:linear-gradient(90deg,#1967d2 0%,#42a5f5 100%);height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #1967d24d}.progress-stats[data-v-af3f0ae7]{justify-content:flex-start;gap:48px;margin-bottom:16px;display:flex}.stat-item[data-v-af3f0ae7]{flex-direction:column;gap:4px;display:flex}.stat-label[data-v-af3f0ae7]{color:#666;font-size:12px}.stat-value[data-v-af3f0ae7]{color:#1a1a1a;font-size:16px;font-weight:600}.stat-value.paid[data-v-af3f0ae7]{color:#34a853}.stat-value.unpaid[data-v-af3f0ae7]{color:#ea4335}.contract-attachments[data-v-af3f0ae7]{border-left:2px solid #e8eaed;flex-direction:column;align-self:flex-start;gap:16px;padding-left:32px;display:flex}@media (width<=1024px){.contract-attachments[data-v-af3f0ae7]{border-top:2px solid #e8eaed;border-left:none;padding-top:24px;padding-left:0}}.attachments-header[data-v-af3f0ae7]{border-bottom:1px solid #e8eaed;justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.attachments-header h4[data-v-af3f0ae7]{color:#1a1a1a;margin:0;font-size:16px;font-weight:600}.attachments-list[data-v-af3f0ae7]{flex-direction:column;gap:12px;max-height:450px;padding-right:4px;display:flex;overflow-y:auto}.attachments-list[data-v-af3f0ae7]::-webkit-scrollbar{width:6px}.attachments-list[data-v-af3f0ae7]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.attachments-list[data-v-af3f0ae7]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.attachments-list[data-v-af3f0ae7]::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.attachment-item[data-v-af3f0ae7]{background:#fff;border:1px solid #e8eaed;border-radius:6px;align-items:center;gap:12px;padding:14px 12px;transition:all .2s;display:flex}.attachment-item[data-v-af3f0ae7]:hover{background:#f8f9fa;border-color:#1967d2;box-shadow:0 2px 4px #0000000d}.danger-outline[data-v-af3f0ae7]{color:#d93025;border-color:#f5c2c0}.file-icon[data-v-af3f0ae7]{color:#1967d2;font-size:24px}.file-info[data-v-af3f0ae7]{flex:1;min-width:0}.file-name[data-v-af3f0ae7]{color:#1a1a1a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.file-meta[data-v-af3f0ae7]{color:#666;margin-top:2px;font-size:12px}.file-actions[data-v-af3f0ae7]{gap:4px;display:flex}.action-btn[data-v-af3f0ae7]{cursor:pointer;color:#666;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.action-btn[data-v-af3f0ae7]:hover{color:#1a1a1a;background:#e0e0e0}.action-btn.delete[data-v-af3f0ae7]:hover{color:#ea4335;background:#fce8e6}.table-container[data-v-af3f0ae7]{border:1px solid #e8eaed;border-radius:8px;position:relative;overflow-x:auto}.gcp-table[data-v-af3f0ae7]{border-collapse:collapse;width:100%}.gcp-table th[data-v-af3f0ae7],.gcp-table td[data-v-af3f0ae7]{text-align:left;border-bottom:1px solid #e8eaed;padding:14px 16px}.gcp-table th[data-v-af3f0ae7]{color:#5f6368;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;background:linear-gradient(#f8f9fa 0%,#f1f3f4 100%);font-size:13px;font-weight:600}.gcp-table td[data-v-af3f0ae7]{color:#202124;background:#fff;font-size:14px}.gcp-table tbody tr:hover td[data-v-af3f0ae7]{background:#f8f9fa;transition:background .2s}.gcp-table td.amount[data-v-af3f0ae7]{color:#111827;font-variant-numeric:tabular-nums;letter-spacing:.5px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:600}.gcp-table tfoot[data-v-af3f0ae7]{background:linear-gradient(#f1f3f4 0%,#e8eaed 100%);font-weight:600}.gcp-table tfoot tr[data-v-af3f0ae7]{background-color:#f8f9fa;border-top:2px solid #e8eaed}.gcp-table tfoot td[data-v-af3f0ae7]{color:#333;padding:16px}.text-right[data-v-af3f0ae7]{text-align:right;padding-right:24px}.summary-label[data-v-af3f0ae7]{text-align:right;color:#666;padding-right:16px}.status-badge[data-v-af3f0ae7]{white-space:nowrap;border-radius:12px;align-items:center;padding:2px 8px;font-size:13px;font-weight:400;display:inline-flex}.status-badge.pending[data-v-af3f0ae7]{color:#b06000;background:#fef7e0}.status-badge.paid[data-v-af3f0ae7]{color:#137333;background:#e6f4ea}.status-badge.partial[data-v-af3f0ae7]{color:#1967d2;background:#e8f0fe}.empty-cell[data-v-af3f0ae7]{text-align:center;color:#999;padding:32px!important}.empty-state[data-v-af3f0ae7]{color:#999;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.empty-state .material-icons-outlined[data-v-af3f0ae7]{color:#ccc;font-size:48px}.loading-state[data-v-af3f0ae7]{color:#666;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.loading-overlay[data-v-af3f0ae7]{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:2;background:#ffffff8f;position:absolute;inset:0}.spinner[data-v-af3f0ae7]{border:3px solid #e0e0e0;border-top-color:#1967d2;border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin-af3f0ae7}@keyframes spin-af3f0ae7{to{transform:rotate(360deg)}}.summary-row td[data-v-af3f0ae7]{background:#f8f9fa}.summary-row td.unpaid[data-v-af3f0ae7]{color:#ea4335}.approval-modal-body[data-v-af3f0ae7]{flex-direction:column;gap:12px;display:flex}.approval-modal-hint[data-v-af3f0ae7]{color:#64748b;font-size:12px}.detail-layout[data-v-6f43d9c2]{flex-direction:column;height:100%;min-height:0;font-family:Roboto,-apple-system,sans-serif;display:flex;overflow:hidden}.loading-container[data-v-6f43d9c2],.error-container[data-v-6f43d9c2]{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;display:flex}.spinner[data-v-6f43d9c2]{border:4px solid #f1f3f4;border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin-6f43d9c2}@keyframes spin-6f43d9c2{to{transform:rotate(360deg)}}.detail-header[data-v-6f43d9c2]{border-bottom:1px solid var(--border);z-index:10;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;box-shadow:0 1px 2px #0000000d}.header-left[data-v-6f43d9c2]{flex-direction:column;gap:4px;display:flex}.back-link[data-v-6f43d9c2]{color:var(--primary);cursor:pointer;align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.arrow[data-v-6f43d9c2]{font-size:16px}.title-row[data-v-6f43d9c2]{align-items:center;gap:12px;display:flex}.title[data-v-6f43d9c2]{color:var(--text-main);font-size:20px;font-weight:400}.update-time[data-v-6f43d9c2]{color:#9aa0a6;margin-left:8px;font-size:12px}.header-actions[data-v-6f43d9c2]{gap:8px;display:flex}.gcp-btn[data-v-6f43d9c2]{cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;height:32px;padding:0 16px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.gcp-btn[data-v-6f43d9c2]:disabled{opacity:.5;cursor:not-allowed}.gcp-btn-primary[data-v-6f43d9c2]{background:var(--primary);color:#fff}.gcp-btn-primary[data-v-6f43d9c2]:hover:not(:disabled){background:#1557b0}.gcp-btn-success[data-v-6f43d9c2]{background:var(--success);color:#fff}.gcp-btn-success[data-v-6f43d9c2]:hover:not(:disabled){background:#0d652d}.gcp-btn-outlined[data-v-6f43d9c2]{border-color:var(--border);color:var(--text-main);background:#fff}.gcp-btn-outlined[data-v-6f43d9c2]:hover:not(:disabled){border-color:var(--primary);background:#f8f9fa}.gcp-btn-text[data-v-6f43d9c2]{color:var(--primary);background:0 0;padding:0 8px}.gcp-btn-text[data-v-6f43d9c2]:hover:not(:disabled){background:#f1f3f4}.gcp-btn.small[data-v-6f43d9c2]{height:28px;padding:0 12px;font-size:12px}.icon-btn-primary[data-v-6f43d9c2]{color:#1a73e8}.icon-btn-primary[data-v-6f43d9c2]:hover{background:#e8f0fe}.icon-btn-danger[data-v-6f43d9c2]{color:#d93025}.icon-btn-danger[data-v-6f43d9c2]:hover{background:#fce8e6}.detail-body[data-v-6f43d9c2]{background:#f8f9fa;flex:1;min-width:0;display:flex;overflow:hidden}.detail-toc[data-v-6f43d9c2]{border-right:1px solid var(--border);z-index:1;background:#fff;flex:0 0 180px;width:180px;min-width:180px;max-width:180px;padding:24px 0 0 16px;position:relative;overflow:hidden auto}.toc-title[data-v-6f43d9c2]{color:var(--text-sec);text-transform:uppercase;margin-bottom:12px;padding-left:12px;font-size:11px;font-weight:700}.toc-item[data-v-6f43d9c2]{color:var(--text-sec);border-radius:0 20px 20px 0;align-items:center;margin-bottom:2px;padding:10px 12px;font-size:13px;text-decoration:none;transition:all .2s;display:flex}.toc-item[data-v-6f43d9c2]:hover{color:var(--text-main);background:#f1f3f4}.toc-item.active[data-v-6f43d9c2]{color:var(--primary);background:#e8f0fe;font-weight:500}.toc-icon[data-v-6f43d9c2]{margin-right:12px;font-size:18px}.detail-main-wrapper[data-v-6f43d9c2]{box-sizing:border-box;flex-direction:column;flex:auto;min-width:0;min-height:0;padding-left:24px;display:flex;position:relative;overflow:hidden}.detail-content[data-v-6f43d9c2]{scroll-behavior:smooth;flex:1;min-width:0;min-height:0;padding:0;position:relative;overflow:hidden auto}.detail-section[data-v-6f43d9c2]{box-sizing:border-box;max-width:100%;margin-bottom:40px;padding:0 40px;scroll-margin-top:60px}.detail-section[data-v-6f43d9c2]:first-of-type{padding-top:24px}.workflow-section[data-v-6f43d9c2]{margin-top:-8px}.workflow-submenu[data-v-6f43d9c2]{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.gcp-card[data-v-6f43d9c2]{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #3c40431a}.info-card .kv-row[data-v-6f43d9c2]{border-bottom:1px solid var(--border);display:flex}.info-card .kv-row[data-v-6f43d9c2]:last-child{border-bottom:none}.kv-cell[data-v-6f43d9c2]{border-right:1px solid var(--border);flex:1;padding:16px 24px}.kv-cell[data-v-6f43d9c2]:last-child{border-right:none}.kv-cell.full-width[data-v-6f43d9c2]{flex:1 0 100%}.label[data-v-6f43d9c2]{color:var(--text-sec);margin-bottom:6px;font-size:12px;font-weight:500}.value[data-v-6f43d9c2]{color:var(--text-main);font-size:14px}.grid-card[data-v-6f43d9c2]{grid-template-columns:repeat(3,1fr);gap:24px;padding:16px;display:grid}.grid-item[data-v-6f43d9c2]{padding:8px}.grid-label[data-v-6f43d9c2]{color:var(--text-sec);margin-bottom:4px;font-size:12px}.grid-value[data-v-6f43d9c2]{color:var(--text-main);font-size:15px;font-weight:500}.finance-summary[data-v-6f43d9c2]{border-bottom:1px solid var(--border);background:linear-gradient(#fff,#fcfcfc);justify-content:space-between;align-items:flex-start;padding:32px 24px;display:flex;position:relative}.f-item[data-v-6f43d9c2]{flex-direction:column;flex:1;padding-right:20px;display:flex}.f-item[data-v-6f43d9c2]:first-child{border-right:1px solid #f1f3f4;flex:1.2;margin-right:24px}.f-label[data-v-6f43d9c2]{color:var(--text-sec);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:13px}.f-val[data-v-6f43d9c2]{color:var(--text-main);font-family:Roboto,sans-serif;font-size:24px;font-weight:500}.f-val.green[data-v-6f43d9c2]{color:#188038}.f-val.orange[data-v-6f43d9c2]{color:#e37400}.f-sub[data-v-6f43d9c2]{color:var(--text-sec);margin-top:4px;font-size:12px;font-weight:500}.f-progress[data-v-6f43d9c2]{background:#f1f3f4;height:6px;position:absolute;bottom:0;left:0;right:0}.progress-fill[data-v-6f43d9c2]{background:linear-gradient(90deg,#188038,#34a853);border-radius:0 4px 4px 0;height:100%;box-shadow:0 1px 2px #0000001a}.empty-state[data-v-6f43d9c2]{text-align:center;color:var(--text-sec);padding:48px}.empty-state p[data-v-6f43d9c2]{margin-top:16px;font-size:14px}.legend[data-v-6f43d9c2]{color:var(--text-sec);align-items:center;gap:16px;font-size:12px;display:flex}.legend .dot[data-v-6f43d9c2]{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.dot.done[data-v-6f43d9c2]{background:#1e8e3e}.dot.running[data-v-6f43d9c2]{background:#1a73e8}.dot.plan[data-v-6f43d9c2]{background:#fbbc04}.id-tag[data-v-6f43d9c2]{background:#f1f3f4;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:11px}.doc-table[data-v-6f43d9c2]{border-collapse:collapse;width:100%}.doc-table th[data-v-6f43d9c2]{text-align:left;color:var(--text-sec);border-bottom:1px solid var(--border);padding:12px;font-size:12px;font-weight:500}.doc-table td[data-v-6f43d9c2]{border-bottom:1px solid #f1f3f4;padding:12px;font-size:14px}.doc-table tr[data-v-6f43d9c2]:hover{background:#f8f9fa}.file-icon[data-v-6f43d9c2]{font-size:24px;transition:transform .2s}.file-icon.icon-red[data-v-6f43d9c2]{color:#ea4335}.file-icon.icon-green[data-v-6f43d9c2]{color:#34a853}.file-icon.icon-blue[data-v-6f43d9c2]{color:#4285f4}.file-icon.icon-orange[data-v-6f43d9c2]{color:#ff9800}.file-icon.icon-purple[data-v-6f43d9c2]{color:#9c27b0}.file-icon.icon-yellow[data-v-6f43d9c2]{color:#fbbc04}.file-icon.icon-orange-red[data-v-6f43d9c2]{color:#ff6d00}.file-icon.icon-gray[data-v-6f43d9c2]{color:#5f6368}.file-icon.icon-default[data-v-6f43d9c2]{color:#80868b}.doc-name[data-v-6f43d9c2]{color:var(--text-main);margin-bottom:2px;font-weight:500}.doc-desc[data-v-6f43d9c2]{color:var(--text-sec);font-size:12px}.chip.small[data-v-6f43d9c2]{padding:2px 8px;font-size:11px}.chip[data-v-6f43d9c2]{border-radius:10px;padding:2px 8px;font-size:12px}.chip.blue[data-v-6f43d9c2],.chip-blue[data-v-6f43d9c2]{color:#1967d2;background:#e8f0fe}.chip-green[data-v-6f43d9c2]{color:#137333;background:#e6f4ea}.chip-orange[data-v-6f43d9c2]{color:#b06000;background:#fef7e0}.chip-purple[data-v-6f43d9c2]{color:#8e24aa;background:#f3e8fd}.chip-gray[data-v-6f43d9c2]{color:#5f6368;background:#f1f3f4}.mono[data-v-6f43d9c2]{font-family:monospace}.form-grid[data-v-6f43d9c2]{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-field[data-v-6f43d9c2]{flex-direction:column;gap:6px;display:flex}.form-field.full-width[data-v-6f43d9c2]{grid-column:1/-1}.form-label[data-v-6f43d9c2]{color:#3c4043;font-size:13px;font-weight:500}.form-label.required[data-v-6f43d9c2]:after{content:" *";color:#d93025}.gcp-input[data-v-6f43d9c2],.gcp-textarea[data-v-6f43d9c2]{border:1px solid #dadce0;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.gcp-input[data-v-6f43d9c2]:focus,.gcp-textarea[data-v-6f43d9c2]:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 3px #1a73e81a}.gcp-textarea[data-v-6f43d9c2]{resize:vertical;line-height:1.6}.bom-table[data-v-6f43d9c2]{border-collapse:collapse;width:100%}.bom-table th[data-v-6f43d9c2],.bom-table td[data-v-6f43d9c2]{text-align:left;border-bottom:1px solid #e0e0e0;padding:12px}.bom-table th[data-v-6f43d9c2]{color:#5f6368;background:#f5f5f5;font-size:13px;font-weight:500}.bom-table tbody tr[data-v-6f43d9c2]:hover{background:#f8f9fa}.bom-table .actions[data-v-6f43d9c2]{gap:8px;display:flex}.bom-table .icon-btn[data-v-6f43d9c2]:hover{color:var(--primary);background:#e8f0fe}.bom-table .icon-btn.delete[data-v-6f43d9c2]:hover{color:#ea4335;background:#fce8e6}.load-more-container[data-v-6f43d9c2]{border-top:1px solid #e0e0e0;justify-content:center;margin-top:16px;padding:16px 0;display:flex}.load-more-container .gcp-btn-text[data-v-6f43d9c2]{color:var(--primary);align-items:center;gap:4px;font-weight:500;display:flex}.load-more-container .gcp-btn-text[data-v-6f43d9c2]:hover{background:#e8f0fe}.bom-table tfoot[data-v-6f43d9c2]{font-weight:600}.bom-table .total-label[data-v-6f43d9c2]{text-align:right}.bom-table .total-price[data-v-6f43d9c2]{color:var(--primary);font-size:16px}.module-spec-tag[data-v-6f43d9c2]{color:#1967d2;background:#e8f0fe;border-radius:12px;align-items:center;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.quotation-card[data-v-6f43d9c2]{background:linear-gradient(#fff,#fafbfc);border:1px solid #e8eaed;border-radius:12px;margin-bottom:24px;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:0 1px 3px #3c40430d,0 4px 8px #3c40430d}.quotation-card[data-v-6f43d9c2]:hover{box-shadow:0 2px 6px #3c404314,0 8px 16px #3c404314}.quotation-header[data-v-6f43d9c2]{background:linear-gradient(135deg,#f8f9fa 0%,#fff 100%);border-bottom:2px solid #e8eaed;justify-content:space-between;align-items:flex-start;padding:24px 28px;display:flex}.quotation-title-section[data-v-6f43d9c2]{flex:1}.quotation-main-title[data-v-6f43d9c2]{align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.quotation-actions[data-v-6f43d9c2]{align-items:center;gap:8px;display:flex}.quotation-summary[data-v-6f43d9c2]{background:linear-gradient(135deg,#f8f9fa 0%,#fff 100%);border-bottom:1px solid #e8eaed;justify-content:space-evenly;align-items:center;gap:16px;padding:28px;display:flex}.summary-item[data-v-6f43d9c2]{background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:8px;min-width:180px;padding:16px 24px;transition:all .2s;display:flex;box-shadow:0 1px 3px #3c404314}.summary-item[data-v-6f43d9c2]:hover{transform:translateY(-2px);box-shadow:0 2px 6px #3c40431f}.summary-total[data-v-6f43d9c2]{background:linear-gradient(135deg,#e8f5e9 0%,#f1f8f4 100%);border:2px solid #81c784}.summary-label[data-v-6f43d9c2]{color:#5f6368;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.summary-label .material-icons-outlined[data-v-6f43d9c2]{color:#80868b;font-size:16px}.summary-value[data-v-6f43d9c2]{color:#1a73e8;letter-spacing:-.5px;font-family:Roboto Mono,monospace;font-size:28px;font-weight:700}.summary-value-total[data-v-6f43d9c2]{color:#137333;letter-spacing:-.5px;text-shadow:0 1px 2px #1373331a;font-family:Roboto Mono,monospace;font-size:32px;font-weight:800}.summary-desc[data-v-6f43d9c2]{color:#80868b;font-size:11px;font-weight:500}.summary-divider[data-v-6f43d9c2]{color:#5f6368;background:#e8eaed;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.summary-divider .material-icons-outlined[data-v-6f43d9c2]{font-size:18px}.quotation-table-container[data-v-6f43d9c2]{overflow-x:hidden}.quotation-table[data-v-6f43d9c2]{table-layout:fixed;width:100%;min-width:0}.quotation-table-container[data-v-6f43d9c2] .quotation-table td,.quotation-table-container[data-v-6f43d9c2] .quotation-table th{box-sizing:border-box}.quotation-table col.col-index[data-v-6f43d9c2]{width:52px}.quotation-table col.col-name[data-v-6f43d9c2]{width:18%}.quotation-table col.col-brand[data-v-6f43d9c2]{width:120px}.quotation-table col.col-model[data-v-6f43d9c2]{width:124px}.quotation-table col.col-spec[data-v-6f43d9c2]{width:28%}.quotation-table col.col-unit[data-v-6f43d9c2]{width:64px}.quotation-table col.col-qty[data-v-6f43d9c2]{width:72px}.quotation-table col.col-money[data-v-6f43d9c2]{width:104px}.quotation-table col.col-actions[data-v-6f43d9c2]{width:84px}.item-number[data-v-6f43d9c2]{color:#1a73e8;background:linear-gradient(135deg,#e8f0fe 0%,#d2e3fc 100%);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.item-name[data-v-6f43d9c2]{color:#3c4043;margin-bottom:4px;font-size:13px;font-weight:500;line-height:1.4}.item-category[data-v-6f43d9c2]{color:#5f6368;background:#f1f3f4;border-radius:10px;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;font-size:11px;display:inline-flex}.item-group-badge[data-v-6f43d9c2]{color:#2e7d32;background:linear-gradient(135deg,#e8f5e9 0%,#c8e6c9 100%);border:1px solid #81c784;border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.item-brand[data-v-6f43d9c2]{color:#5f6368;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:13px;font-weight:600;overflow:hidden}.item-model[data-v-6f43d9c2]{color:#80868b;white-space:nowrap;text-overflow:ellipsis;font-family:Courier New,monospace;font-size:12px;overflow:hidden}.item-spec-chips[data-v-6f43d9c2]{flex-wrap:wrap;gap:4px;width:100%;min-width:0;max-width:100%;display:flex;overflow:hidden}.quotation-spec-cell[data-v-6f43d9c2]{max-width:0}.spec-chip[data-v-6f43d9c2]{color:#1a73e8;text-overflow:ellipsis;white-space:nowrap;background:#e8f0fe;border-radius:10px;max-width:100%;padding:2px 8px;font-size:11px;line-height:1.6;display:inline-block;overflow:hidden}.item-unit[data-v-6f43d9c2]{color:#5f6368;background:#f8f9fa;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.item-quantity[data-v-6f43d9c2]{color:#1a73e8;background:linear-gradient(135deg,#e8f0fe 0%,#d2e3fc 100%);border-radius:6px;padding:4px 12px;font-size:14px;font-weight:700;display:inline-block}.item-price[data-v-6f43d9c2]{color:#3c4043;white-space:nowrap;font-variant-numeric:tabular-nums;font-family:Roboto Mono,monospace;font-size:14px;font-weight:600}.item-total[data-v-6f43d9c2]{color:#137333;white-space:nowrap;font-variant-numeric:tabular-nums;font-family:Roboto Mono,monospace;font-size:15px;font-weight:700}.quotation-remark-row[data-v-6f43d9c2]{background:#fafafa;border-top:1px solid #e8eaed;align-items:flex-start;gap:12px;padding:12px 28px;display:flex}.quotation-remark-label[data-v-6f43d9c2]{color:#666;flex-shrink:0;min-width:36px;padding-top:6px;font-size:13px}.quotation-remark-input[data-v-6f43d9c2]{color:#333;resize:vertical;background:#fff;border:1px solid #e0e0e0;border-radius:6px;outline:none;flex:1;min-height:38px;padding:6px 10px;font-family:inherit;font-size:13px;line-height:1.5;transition:border-color .15s}.quotation-remark-input[data-v-6f43d9c2]:focus{border-color:var(--primary)}.quotation-remark-input[readonly][data-v-6f43d9c2]{color:#888;cursor:default;background:#f5f5f5}.quotation-group-total-row td[data-v-6f43d9c2]{background:#f8fbff;border-top:1px solid #e8f0fe}.quotation-group-total-label[data-v-6f43d9c2]{text-align:right;color:#5f6368;font-weight:600}.quotation-group-total-value[data-v-6f43d9c2]{text-align:right;color:#137333;font-weight:700}.quotation-group-remark-row td[data-v-6f43d9c2]{background:#fbfbfb}.quotation-group-remark-box[data-v-6f43d9c2]{align-items:flex-start;gap:12px;padding:10px 0;display:flex}.quotation-group-remark-label[data-v-6f43d9c2]{color:#5f6368;flex-shrink:0;width:64px;font-size:13px;line-height:32px}.quotation-group-remark-input[data-v-6f43d9c2]{resize:vertical;background:#fff;border:1px solid #e0e0e0;border-radius:6px;outline:none;flex:1;min-height:38px;padding:6px 10px;font-family:inherit;font-size:13px;line-height:1.5}.quotation-group-remark-input[data-v-6f43d9c2]:focus{border-color:var(--primary)}.quotation-group-remark-input[readonly][data-v-6f43d9c2]{color:#888;cursor:default;background:#f5f5f5}.quotation-footer[data-v-6f43d9c2]{background:#f8f9fa;border-top:1px solid #e8eaed;justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.footer-left[data-v-6f43d9c2]{gap:24px;display:flex}.footer-item[data-v-6f43d9c2]{color:#5f6368;align-items:center;gap:8px;font-size:13px;display:flex}.footer-item .material-icons-outlined[data-v-6f43d9c2]{color:#80868b;font-size:18px}.footer-right[data-v-6f43d9c2]{gap:24px;display:flex}.footer-signature[data-v-6f43d9c2]{white-space:nowrap}.footer-signature span[data-v-6f43d9c2]:last-child{white-space:nowrap;font-weight:500}@media (width<=1200px){.quotation-summary[data-v-6f43d9c2]{flex-wrap:wrap}.summary-item[data-v-6f43d9c2]{min-width:140px}}@media (width<=1024px){.detail-main-wrapper[data-v-6f43d9c2]{padding-left:16px}.detail-section[data-v-6f43d9c2]{padding:0 24px 0 0}}@media (width<=768px){.quotation-header[data-v-6f43d9c2]{flex-direction:column;gap:16px}.quotation-actions[data-v-6f43d9c2]{justify-content:flex-start;width:100%}.quotation-summary[data-v-6f43d9c2]{flex-direction:column;gap:12px}.summary-divider[data-v-6f43d9c2]{transform:rotate(90deg)}.summary-item[data-v-6f43d9c2]{width:100%}.quotation-footer[data-v-6f43d9c2]{flex-direction:column;align-items:flex-start;gap:16px}.footer-left[data-v-6f43d9c2],.empty-features[data-v-6f43d9c2]{flex-direction:column;gap:12px}}.quotation-group-header-row td[data-v-6f43d9c2]{background:0 0;padding:0}.quotation-group-header[data-v-6f43d9c2]{color:#202124;border-top:1px solid #e8eaed;align-items:center;gap:6px;margin-top:4px;padding:10px 16px 6px;font-size:14px;font-weight:700;display:flex}.quotation-group-header-row:hover .quotation-group-header[data-v-6f43d9c2]{color:#1a73e8}.group-chevron[data-v-6f43d9c2]{color:#9aa0a6;margin-left:auto;transition:transform .2s;transform:rotate(0);font-size:16px!important}.group-chevron-up[data-v-6f43d9c2]{transform:rotate(180deg)}.group-header-summary[data-v-6f43d9c2]{color:#888;text-transform:none;letter-spacing:0;margin-left:4px;font-size:12px;font-weight:400}.group-header-total[data-v-6f43d9c2]{color:#137333;font-size:13px;font-weight:700}.group-model-tag[data-v-6f43d9c2]{color:#1a73e8;letter-spacing:.5px;background:#e8f0fe;border-radius:4px;margin-left:4px;padding:1px 8px;font-size:12px;font-weight:600}.quotation-group-aggregate-total-row td[data-v-6f43d9c2]{background:#f7faff}.quotation-group-aggregate-total-cell[data-v-6f43d9c2]{padding:10px 16px}.quotation-group-aggregate-total-content[data-v-6f43d9c2]{color:#174ea6;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;font-size:13px;display:flex}.quotation-group-aggregate-total-label[data-v-6f43d9c2]{color:#5f6368;font-weight:600}.quotation-group-aggregate-total-metric[data-v-6f43d9c2]{color:#137333;font-family:Roboto Mono,monospace;font-weight:700}.quotation-group-aggregate-total-sep[data-v-6f43d9c2]{color:#9aa0a6}.quotation-group-header-row:first-child .quotation-group-header[data-v-6f43d9c2]{border-top:none;margin-top:0}.quotation-subgroup-header-row td[data-v-6f43d9c2]{background:0 0;padding:0}.quotation-subgroup-header[data-v-6f43d9c2]{color:#5f6368;text-transform:uppercase;letter-spacing:.3px;align-items:center;gap:5px;padding:6px 16px 4px 28px;font-size:12px;font-weight:600;display:flex}.quotation-header-simple[data-v-6f43d9c2]{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.quotation-summary-simple[data-v-6f43d9c2]{background:#f8f9fa;border-bottom:1px solid #e0e0e0;align-items:center;gap:20px;padding:12px 24px;display:flex}.quotation-summary-bottom[data-v-6f43d9c2]{border-top:1px solid #e0e0e0;border-bottom:none;justify-content:flex-end}.q-summary-stat[data-v-6f43d9c2]{align-items:baseline;gap:8px;display:flex}.q-summary-total[data-v-6f43d9c2]{margin-left:4px}.q-stat-label[data-v-6f43d9c2]{color:#666;font-size:13px}.q-stat-value[data-v-6f43d9c2]{color:#333;font-family:Roboto Mono,monospace;font-size:15px;font-weight:600}.q-stat-value.total[data-v-6f43d9c2]{color:#137333;font-size:18px;font-weight:700}.q-summary-sep[data-v-6f43d9c2]{color:#9aa0a6;font-size:16px;font-weight:500}.bom-container[data-v-6f43d9c2]{gap:24px;min-height:500px;display:flex}.module-list[data-v-6f43d9c2]{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;flex:0 0 280px;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000d}.module-header[data-v-6f43d9c2]{background:#f8f9fa;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:16px;display:flex}.module-group-header[data-v-6f43d9c2]{background:linear-gradient(135deg,#e8f5e9 0%,#f1f8e9 100%);border-bottom:2px solid #81c784;border-radius:8px 8px 0 0;align-items:center;gap:8px;margin:-1px -1px 0;padding:12px 16px;display:flex}.module-group-header .material-icons-outlined[data-v-6f43d9c2]{color:#2e7d32;font-size:20px}.module-group-header h4[data-v-6f43d9c2]{color:#1b5e20;margin:0;font-size:15px;font-weight:600}.module-group-header .equipment-count[data-v-6f43d9c2]{color:#558b2f;margin-left:4px;font-size:12px}.module-header .title[data-v-6f43d9c2]{color:#333;font-size:15px;font-weight:600}.module-items[data-v-6f43d9c2]{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.module-item[data-v-6f43d9c2]{cursor:pointer;border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex;position:relative}.module-item[data-v-6f43d9c2]:hover{background-color:#f0f7ff}.module-item.active[data-v-6f43d9c2]{color:#1976d2;background-color:#e3f2fd;font-weight:500}.module-item.active[data-v-6f43d9c2]:before{content:"";background-color:#1976d2;width:4px;position:absolute;top:0;bottom:0;left:0}.module-info[data-v-6f43d9c2]{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex;overflow:hidden}.module-name[data-v-6f43d9c2]{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.module-meta[data-v-6f43d9c2]{color:#757575;gap:8px;font-size:12px;display:flex}.module-actions[data-v-6f43d9c2]{opacity:0;gap:4px;transition:opacity .2s;display:flex}.module-item:hover .module-actions[data-v-6f43d9c2]{opacity:1}.equipment-detail[data-v-6f43d9c2]{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;flex:1;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000d}.equipment-toolbar[data-v-6f43d9c2]{background:#fff;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:16px;display:flex}.equipment-table[data-v-6f43d9c2]{border-collapse:collapse;width:100%}.equipment-table th[data-v-6f43d9c2]{text-align:left;color:#5f6368;background:#f8f9fa;border-bottom:1px solid #eee;padding:12px 16px;font-size:13px;font-weight:600}.equipment-table td[data-v-6f43d9c2]{color:#333;vertical-align:top;border-bottom:1px solid #eee;padding:12px 16px;font-size:14px}.equipment-table tr[data-v-6f43d9c2]:hover{background-color:#f8f9fa}.equipment-table .actions[data-v-6f43d9c2]{justify-content:center;gap:8px;display:flex}.equip-meta-row[data-v-6f43d9c2]{color:#888;align-items:center;gap:3px;margin-top:3px;font-size:11.5px;line-height:1.4;display:flex}.equip-meta-remark[data-v-6f43d9c2]{color:#999;font-style:italic}.equip-meta-icon[data-v-6f43d9c2]{color:#bbb;flex-shrink:0;font-size:12px!important}.cabinet-components[data-v-6f43d9c2]{flex-direction:column;gap:5px;display:flex}.cabinet-comp-row[data-v-6f43d9c2]{align-items:center;gap:6px;font-size:12px;line-height:1.4;display:flex}.equip-section-header-row[data-v-6f43d9c2]{background:#eef2ff;border-top:2px solid #c7d2fe}.equip-section-header-cell[data-v-6f43d9c2]{color:#3730a3;letter-spacing:.04em;font-size:12px;font-weight:700;padding:6px 14px!important}.equip-in-section-row td[data-v-6f43d9c2]:first-child{color:#bbb;font-size:11px}.equip-in-section-row td[data-v-6f43d9c2]:nth-child(2){padding-left:20px}.quotation-group-selector[data-v-6f43d9c2]{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:6px 4px 10px;display:flex}.quotation-group-label[data-v-6f43d9c2]{color:#888;white-space:nowrap;font-size:12px}.quotation-group-options[data-v-6f43d9c2]{flex-wrap:wrap;gap:6px;display:flex}.quotation-group-item[data-v-6f43d9c2]{border:1px solid var(--border);cursor:pointer;color:#555;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:4px;padding:3px 12px;font-size:12px;transition:all .15s;display:flex}.quotation-group-item input[type=radio][data-v-6f43d9c2]{display:none}.quotation-group-item.active[data-v-6f43d9c2]{border-color:var(--primary);color:var(--primary);background:#eef2ff;font-weight:600}.quotation-group-item[data-v-6f43d9c2]:hover{border-color:var(--primary);color:var(--primary)}.input-readonly[data-v-6f43d9c2]{cursor:not-allowed;color:#888!important;background:#f5f5f5!important;border-color:#e0e0e0!important}.module-drag-handle[data-v-6f43d9c2]{color:#ccc;cursor:grab;flex-shrink:0;margin-right:6px;font-size:16px;transition:color .15s}.module-item:hover .module-drag-handle[data-v-6f43d9c2]{color:#999}.module-item.drag-over[data-v-6f43d9c2]{box-shadow:inset 3px 0 0 var(--primary);background:#dbeafe!important}.equip-drag-handle[data-v-6f43d9c2]{color:#ccc;cursor:grab;vertical-align:middle;font-size:15px;transition:color .15s}tr[draggable=true]:hover .equip-drag-handle[data-v-6f43d9c2]{color:#888}tr.equip-drag-over td[data-v-6f43d9c2]{background:#dbeafe!important}tr.section-drag-over td[data-v-6f43d9c2]{box-shadow:inset 0 -2px #6366f1;background:#c7d2fe!important}.equip-section-chevron[data-v-6f43d9c2]{color:#3730a3;transition:transform .2s;font-size:16px!important}.equip-section-chevron.collapsed[data-v-6f43d9c2]{transform:rotate(-90deg)}.cabinet-comp-icon[data-v-6f43d9c2]{color:var(--primary);opacity:.65;flex-shrink:0;font-size:13px!important}.cabinet-comp-label[data-v-6f43d9c2]{color:#999;flex-shrink:0;min-width:46px;font-size:11.5px}.cabinet-comp-value[data-v-6f43d9c2]{color:#333;font-weight:500}.equip-edit-section[data-v-6f43d9c2]{color:#1558d6;letter-spacing:.02em;text-transform:uppercase;border-bottom:1px solid #e8ecf0;margin-bottom:12px;padding:6px 0 8px;font-size:12px;font-weight:600}.equip-edit-row[data-v-6f43d9c2]{grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:12px;display:grid}.equip-edit-row .form-group[data-v-6f43d9c2]{margin-bottom:0}.equip-edit-row .form-group[data-v-6f43d9c2]:only-child{grid-column:1}.equip-edit-checks[data-v-6f43d9c2]{flex-wrap:wrap;gap:18px;padding:6px 0;display:flex}.equip-edit-check[data-v-6f43d9c2]{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.equip-edit-check input[type=checkbox][data-v-6f43d9c2]{cursor:pointer;accent-color:#1558d6;width:15px;height:15px}.info-card[data-v-6f43d9c2]{padding:24px}.kv-row[data-v-6f43d9c2]{border-bottom:1px solid #f5f5f5;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px;padding-bottom:24px;display:grid}.kv-row[data-v-6f43d9c2]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.kv-cell[data-v-6f43d9c2]{flex-direction:column;gap:6px;display:flex;overflow:hidden}.kv-cell .label[data-v-6f43d9c2]{color:#5f6368;font-size:12px;font-weight:500}.kv-cell .value[data-v-6f43d9c2]{color:#202124;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.kv-cell .value.mono[data-v-6f43d9c2]{color:#1a73e8;font-family:Roboto Mono,monospace}.overview-grid[data-v-6f43d9c2]{border-top:1px solid #e0e0e0;border-left:1px solid #e0e0e0;grid-template-columns:repeat(4,1fr);display:grid}.overview-cell[data-v-6f43d9c2]{background:#fff;border-bottom:1px solid #e0e0e0;border-right:1px solid #e0e0e0;flex-direction:column;gap:8px;min-width:0;padding:16px 24px;display:flex;overflow:hidden}.overview-cell.full-width[data-v-6f43d9c2]{grid-column:1/-1}.overview-cell .label[data-v-6f43d9c2]{color:#6a7580;font-size:12px}.overview-cell .value[data-v-6f43d9c2]{color:#202124;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:400;line-height:1.4;overflow:hidden}.overview-cell .value.link-text[data-v-6f43d9c2]{cursor:pointer}.overview-cell.full-width .value[data-v-6f43d9c2]{white-space:pre-wrap;text-overflow:unset;overflow:visible}.module-empty-state[data-v-6f43d9c2]{color:#9e9e9e;flex-direction:column;justify-content:center;align-items:center;padding:20px 14px;display:flex}.guide-card-header[data-v-6f43d9c2]{color:var(--text-main);align-items:center;gap:6px;width:100%;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.guide-zones[data-v-6f43d9c2]{width:100%;margin-bottom:10px}.guide-label[data-v-6f43d9c2]{color:var(--text-sec);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-size:11px}.guide-zone-item[data-v-6f43d9c2]{border-bottom:1px dashed var(--border-light);align-items:flex-start;gap:6px;padding:6px 0;display:flex}.guide-zone-item[data-v-6f43d9c2]:last-child{border-bottom:none}.zone-info[data-v-6f43d9c2]{flex:1;min-width:0}.zone-name-row[data-v-6f43d9c2]{color:var(--text-main);flex-wrap:wrap;align-items:center;gap:5px;font-size:13px;display:flex}.zone-sub[data-v-6f43d9c2]{color:var(--text-sec);font-size:12px;font-weight:400}.zone-pump-badge[data-v-6f43d9c2]{color:#1565c0;white-space:nowrap;background:#e8f4ff;border-radius:4px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:500}.zone-params-row[data-v-6f43d9c2]{color:#999;letter-spacing:.2px;margin-top:2px;font-size:11px}.guide-tags[data-v-6f43d9c2]{flex-wrap:wrap;gap:5px;width:100%;margin-bottom:12px;display:flex}.guide-tag[data-v-6f43d9c2]{color:#1565c0;background:#f0f7ff;border:1px solid #bbdefb;border-radius:12px;padding:3px 8px;font-size:12px}.tag-label[data-v-6f43d9c2]{color:#5e8ebf;margin-right:2px}.guide-actions[data-v-6f43d9c2]{flex-direction:column;gap:6px;width:100%;display:flex}.guide-action-btn[data-v-6f43d9c2]{justify-content:center;gap:4px;width:100%}.action-btn[data-v-6f43d9c2]{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 1px 3px #0000001f}.action-btn[data-v-6f43d9c2]:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.action-btn[data-v-6f43d9c2]:active{transform:translateY(0)}.btn-export[data-v-6f43d9c2]{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.btn-export[data-v-6f43d9c2]:hover{background:linear-gradient(135deg,#5568d3 0%,#65408a 100%)}.btn-add[data-v-6f43d9c2]{color:#fff;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%)}.btn-add[data-v-6f43d9c2]:hover{background:linear-gradient(135deg,#45a049 0%,#3d8b40 100%)}.btn-delete[data-v-6f43d9c2]{color:#fff;background:linear-gradient(135deg,#f44336 0%,#e53935 100%)}.btn-delete[data-v-6f43d9c2]:hover{background:linear-gradient(135deg,#e53935 0%,#d32f2f 100%)}.config-drawer-overlay[data-v-6f43d9c2]{z-index:1000;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.config-drawer[data-v-6f43d9c2]{background:#fff;flex-direction:column;width:700px;max-width:92vw;height:100%;display:flex;box-shadow:-4px 0 24px #00000026}.config-drawer-header[data-v-6f43d9c2]{border-bottom:1px solid var(--border);background:#f8fbff;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.config-drawer-body[data-v-6f43d9c2]{flex:1;padding:16px 20px;overflow-y:auto}.drawer-enter-active[data-v-6f43d9c2],.drawer-leave-active[data-v-6f43d9c2]{transition:opacity .2s}.drawer-enter-active .config-drawer[data-v-6f43d9c2]{transition:transform .25s}.drawer-leave-active .config-drawer[data-v-6f43d9c2]{transition:transform .2s}.drawer-enter-from[data-v-6f43d9c2],.drawer-leave-to[data-v-6f43d9c2]{opacity:0}.drawer-enter-from .config-drawer[data-v-6f43d9c2],.drawer-leave-to .config-drawer[data-v-6f43d9c2]{transform:translate(100%)}.tax-rate-btn[data-v-6f43d9c2]{border:1px dashed var(--primary,#1a73e8);color:var(--primary,#1a73e8);cursor:pointer;vertical-align:baseline;background:0 0;border-radius:4px;align-items:center;gap:2px;margin-left:4px;padding:2px 7px;font-size:12px;line-height:1.4;transition:background .15s;display:inline-flex}.tax-rate-btn[data-v-6f43d9c2]:hover{background:#e8f0fe}.tax-rate-static[data-v-6f43d9c2]{color:#888;margin-left:4px;font-size:12px}.tax-rate-picker[data-v-6f43d9c2]{z-index:300;background:#fff;border:1px solid #dde1e6;border-radius:8px;min-width:230px;padding:10px 12px 12px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 6px 24px #00000021}.tax-rate-picker-title[data-v-6f43d9c2]{color:#9aa0a6;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.tax-rate-presets[data-v-6f43d9c2]{gap:6px;margin-bottom:10px;display:flex}.tax-rate-preset-btn[data-v-6f43d9c2]{cursor:pointer;color:#333;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;flex:1;padding:5px 0;font-size:13px;transition:all .15s}.tax-rate-preset-btn[data-v-6f43d9c2]:hover{border-color:var(--primary,#1a73e8);color:var(--primary,#1a73e8);background:#e8f0fe}.tax-rate-preset-btn.active[data-v-6f43d9c2]{background:var(--primary,#1a73e8);border-color:var(--primary,#1a73e8);color:#fff;font-weight:600}.tax-rate-custom[data-v-6f43d9c2]{align-items:center;gap:6px;display:flex}.tax-rate-custom input[data-v-6f43d9c2]{color:#333;border:1px solid #dde1e6;border-radius:4px;outline:none;flex:1;padding:5px 8px;font-size:13px}.tax-rate-custom input[data-v-6f43d9c2]:focus{border-color:var(--primary,#1a73e8)}.tax-rate-confirm-btn[data-v-6f43d9c2]{background:var(--primary,#1a73e8);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:5px 12px;font-size:13px}.tax-rate-confirm-btn[data-v-6f43d9c2]:hover{opacity:.88}.paged-role-selector[data-v-c23ae4fb]{flex-direction:column;gap:12px;display:flex}.selector-topbar[data-v-c23ae4fb]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.role-search[data-v-c23ae4fb]{flex:1;min-width:220px}.selector-stats[data-v-c23ae4fb]{align-items:center;gap:8px;display:flex}.selector-count[data-v-c23ae4fb]{color:#475569;background:#f1f5f9;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.selector-count.selected[data-v-c23ae4fb]{color:var(--primary);background:#e8f0fe}.selected-role-strip[data-v-c23ae4fb]{background:linear-gradient(#f7faff 0%,#eef4ff 100%);border:1px solid #dbe7ff;border-radius:12px;flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex}.selected-role-chip[data-v-c23ae4fb]{color:#1f4fbf;background:#fff;border:1px solid #c9dafc;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:0 10px 0 12px;font-size:12px;font-weight:600;display:inline-flex}.selected-role-remove[data-v-c23ae4fb]{width:18px;height:18px;color:inherit;cursor:pointer;background:#1a73e81a;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.selected-role-remove .material-icons-outlined[data-v-c23ae4fb]{font-size:12px}.role-list[data-v-c23ae4fb]{border:1px solid var(--border);background:#fff;border-radius:14px;min-height:220px;overflow:hidden}.role-list.disabled[data-v-c23ae4fb]{background:#f8fafc}.role-option[data-v-c23ae4fb]{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.role-option[data-v-c23ae4fb]:last-child{border-bottom:none}.role-option[data-v-c23ae4fb]:hover{background:#f8fbff}.role-option.selected[data-v-c23ae4fb]{background:linear-gradient(#f7faff 0%,#eef4ff 100%)}.role-option.disabled[data-v-c23ae4fb]{cursor:not-allowed;opacity:.72}.role-content[data-v-c23ae4fb]{flex-direction:column;gap:6px;min-width:0;display:flex}.role-header[data-v-c23ae4fb]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-title[data-v-c23ae4fb]{color:var(--text-main);font-size:14px;font-weight:700}.role-type-chip[data-v-c23ae4fb]{border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.role-type-chip.system[data-v-c23ae4fb]{color:#4f46e5;background:#eef2ff}.role-type-chip.custom[data-v-c23ae4fb]{color:#137333;background:#eaf7ef}.role-meta[data-v-c23ae4fb]{color:var(--text-sec);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.role-code[data-v-c23ae4fb]{color:#355fb1;font-family:Roboto Mono,monospace}.role-toggle[data-v-c23ae4fb]{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}.role-state[data-v-c23ae4fb]{text-align:center;color:var(--text-sec);padding:36px 16px;font-size:13px}.org-layout[data-v-2b717530]{border:1px solid var(--border);border-radius:var(--radius-md);flex:1;display:flex;overflow:hidden}.dept-sidebar[data-v-2b717530]{border-right:1px solid var(--border);background:#fff;flex-direction:column;width:280px;display:flex}.sidebar-header[data-v-2b717530]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex}.sidebar-header h3[data-v-2b717530]{color:var(--text-main);margin:0;font-size:14px;font-weight:600}.tree-content[data-v-2b717530]{flex:1;padding:8px 0;overflow-y:auto}.dept-tree[data-v-2b717530]{margin:0;padding:0;list-style:none}.dept-tree li[data-v-2b717530]{cursor:pointer;color:var(--text-main);padding:8px 16px;font-size:13px}.dept-tree li[data-v-2b717530]:hover{background:#f1f3f4}.dept-tree li.active[data-v-2b717530]{color:var(--primary);background:#e8f0fe;font-weight:500}.tree-prefix[data-v-2b717530]{color:var(--text-sec);margin-right:8px;font-family:monospace}.active .tree-prefix[data-v-2b717530]{color:var(--primary)}.main-content[data-v-2b717530]{background:#fff;flex-direction:column;flex:1;display:flex}.list-toolbar[data-v-2b717530]{border-bottom:1px solid var(--border);height:56px;padding:0 16px}.main-content .table-container[data-v-2b717530]{border:none;border-radius:0;position:relative}.toolbar-title h3[data-v-2b717530]{color:var(--text-main);margin:0;font-size:15px;font-weight:600}.subtitle[data-v-2b717530]{color:var(--text-sec);margin-top:4px;font-size:12px;display:block}.actions[data-v-2b717530]{gap:12px;display:flex}.gcp-table tr:hover td[data-v-2b717530]{background:#f8f9fa}.status-badge[data-v-2b717530]{border-radius:12px;padding:2px 8px;font-size:11px;font-weight:500}.status-badge.active[data-v-2b717530]{background:var(--status-green-bg);color:var(--status-green-text)}.status-badge.inactive[data-v-2b717530]{background:var(--status-red-bg);color:var(--status-red-text)}.username-link[data-v-2b717530]{color:var(--primary);cursor:pointer;font-weight:500}.username-link[data-v-2b717530]:hover{text-decoration:underline}.modal-content[data-v-2b717530]{width:400px}.grant-modal[data-v-2b717530]{width:720px}.grant-modal-body[data-v-2b717530]{gap:18px}.application-modal[data-v-2b717530]{width:760px}.application-modal .modal-body[data-v-2b717530]{position:relative}.modal-header h3[data-v-2b717530]{font-size:16px}.form-group input[data-v-2b717530],.form-group select[data-v-2b717530],.form-group textarea[data-v-2b717530]{border:1px solid var(--border);border-radius:4px;outline:none;height:32px;padding:0 8px;font-size:13px}.required-field label[data-v-2b717530]{font-weight:600}.required-mark[data-v-2b717530]{color:#d93025}.field-hint[data-v-2b717530]{color:var(--text-sec);margin-top:4px;font-size:12px;line-height:1.5}.form-group textarea[data-v-2b717530]{resize:vertical;height:auto;min-height:88px;padding:8px}.form-group input[data-v-2b717530]:focus{border-color:var(--primary)}.form-note[data-v-2b717530]{color:var(--text-sec);background:#f5f8ff;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:13px}.grant-note[data-v-2b717530]{margin-top:0}.grant-hero[data-v-2b717530]{background:linear-gradient(135deg,#f8fbff 0%,#eef4ff 100%);border:1px solid #dbe7ff;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;display:flex}.grant-hero-title[data-v-2b717530]{letter-spacing:.08em;text-transform:uppercase;color:#5b6f95;font-size:12px;font-weight:700}.grant-hero-name[data-v-2b717530]{color:#16325c;font-size:22px;font-weight:700}.grant-hero-meta[data-v-2b717530]{flex-wrap:wrap;gap:8px;display:flex}.grant-panel[data-v-2b717530]{border:1px solid var(--border);background:#fff;border-radius:16px;flex-direction:column;gap:14px;padding:16px;display:flex}.grant-panel-header[data-v-2b717530]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.grant-panel-title[data-v-2b717530]{color:var(--text-main);font-size:15px;font-weight:700}.grant-panel-subtitle[data-v-2b717530]{color:var(--text-sec);margin-top:4px;font-size:13px}.grant-panel-state[data-v-2b717530]{border:1px dashed var(--border);min-height:56px;color:var(--text-sec);background:#fafbfc;border-radius:12px;justify-content:center;align-items:center;font-size:13px;display:flex}.loading-container[data-v-2b717530]{justify-content:center;align-items:center;width:100%;min-height:200px;display:flex}.loading-container-table[data-v-2b717530]{justify-content:center;align-items:center;width:100%;padding:60px 0;display:flex}.loading-overlay[data-v-2b717530]{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:2;pointer-events:none;background:#ffffff7a;padding:0;position:absolute;inset:0}.spinner[data-v-2b717530]{border:3px solid #f0f0f0;border-top:3px solid var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin-2b717530}@keyframes spin-2b717530{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.current-grants[data-v-2b717530]{flex-wrap:wrap;gap:6px;display:flex}.rich-grants[data-v-2b717530]{gap:10px}.grant-tag[data-v-2b717530]{color:#1f4fbf;background:linear-gradient(135deg,#eef4ff 0%,#e3efff 100%);border:1px solid #cfe0ff;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.grant-tag .material-icons-outlined[data-v-2b717530]{font-size:15px}.grant-revoke[data-v-2b717530]{width:20px;height:20px;color:inherit;cursor:pointer;opacity:.72;background:#1a73e81a;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s,background .15s;display:inline-flex}.grant-revoke .material-icons-outlined[data-v-2b717530]{font-size:13px!important}.grant-revoke[data-v-2b717530]:hover{opacity:1;background:#1a73e829}.confirm-dialog[data-v-2b717530]{background:#fff;border-radius:8px;flex-direction:column;width:360px;animation:.15s ease-out fadeIn-2b717530;display:flex;box-shadow:0 8px 32px #00000026}@keyframes fadeIn-2b717530{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-icon[data-v-2b717530]{display:none}.confirm-title[data-v-2b717530]{color:var(--text-main);margin:0;padding:24px 24px 0;font-size:18px;font-weight:500}.confirm-message[data-v-2b717530]{color:var(--text-sec);white-space:pre-line;margin:0;padding:16px 24px 24px;font-size:14px;line-height:1.6}.confirm-actions[data-v-2b717530]{justify-content:flex-end;gap:8px;padding:8px 16px 16px;display:flex}.confirm-actions .gcp-btn[data-v-2b717530]{text-transform:uppercase;letter-spacing:.5px;min-width:80px;padding:8px 16px;font-size:13px;font-weight:500}.gcp-btn-danger[data-v-2b717530]{color:#d93025;background:0 0;border:none}.gcp-btn-danger[data-v-2b717530]:hover{color:#c5221f;background:#fce8e6}.user-details-body[data-v-2b717530]{padding:0}.user-header[data-v-2b717530]{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);align-items:center;gap:16px;padding:24px;display:flex}.user-avatar[data-v-2b717530]{background:#fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.user-avatar .material-icons-outlined[data-v-2b717530]{color:#fff;font-size:36px}.user-info[data-v-2b717530]{flex:1}.user-name[data-v-2b717530]{color:#fff;margin:0;font-size:20px;font-weight:500}.user-username[data-v-2b717530]{color:#ffffffe6;margin:4px 0 0;font-size:14px}.status-badge-large[data-v-2b717530]{color:#fff;background:#fff3;border:1px solid #ffffff4d;border-radius:16px;padding:6px 16px;font-size:12px;font-weight:500}.details-section[data-v-2b717530]{padding:24px}.detail-row[data-v-2b717530]{margin-bottom:16px}.detail-row[data-v-2b717530]:last-child{margin-bottom:0}.detail-item-modern[data-v-2b717530]{border-left:3px solid var(--primary);background:#f8f9fa;border-radius:8px;align-items:flex-start;gap:16px;padding:16px;display:flex}.detail-icon[data-v-2b717530]{color:var(--primary);margin-top:2px;font-size:24px}.detail-content[data-v-2b717530]{flex:1}.detail-label[data-v-2b717530]{color:var(--text-sec);margin-bottom:4px;font-size:12px;font-weight:500}.detail-value[data-v-2b717530]{color:var(--text-main);font-size:15px;font-weight:400}.subtitle[data-v-fb7e381b]{color:var(--text-sec);margin-top:4px;font-size:13px;display:block}.table-container[data-v-fb7e381b]{position:relative}.role-name[data-v-fb7e381b]{color:var(--text-main);font-weight:600}.role-code[data-v-fb7e381b]{color:var(--text-sec);font-family:Roboto Mono,monospace}.description-cell[data-v-fb7e381b]{color:var(--text-sec)}.table-action[data-v-fb7e381b]{padding:0}.danger-action[data-v-fb7e381b]{color:var(--danger)}.danger-action[data-v-fb7e381b]:hover{background:#c5221f0f}.loading-overlay[data-v-fb7e381b]{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:2;pointer-events:none;background:#ffffff7a;align-items:center;padding:0;position:absolute;inset:0}.role-modal[data-v-fb7e381b]{width:920px;max-width:94%}.role-modal-body[data-v-fb7e381b]{gap:18px}.role-intro-card[data-v-fb7e381b]{background:linear-gradient(135deg,#f8fbff 0%,#eef4ff 100%);border:1px solid #dbe7ff;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;display:flex}.role-intro-title[data-v-fb7e381b]{color:#16325c;font-size:20px;font-weight:700}.role-intro-subtitle[data-v-fb7e381b]{color:#5b6f95;font-size:13px}.role-intro-stats[data-v-fb7e381b]{flex-wrap:wrap;gap:8px;display:flex}.role-form-grid[data-v-fb7e381b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.role-form-full[data-v-fb7e381b]{grid-column:1/-1}.form-group input[data-v-fb7e381b]{border:1px solid var(--border);border-radius:10px;outline:none;height:38px;padding:0 12px;font-size:13px}.form-group input[data-v-fb7e381b]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1a73e814}.permission-shell[data-v-fb7e381b]{border:1px solid var(--border);background:#fff;border-radius:16px;flex-direction:column;gap:16px;padding:16px;display:flex}.permission-toolbar[data-v-fb7e381b]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.permission-title[data-v-fb7e381b]{color:var(--text-main);font-size:15px;font-weight:700}.permission-subtitle[data-v-fb7e381b]{color:var(--text-sec);margin-top:4px;font-size:13px}.permission-search[data-v-fb7e381b]{flex:1;min-width:280px;max-width:360px}.permission-notice[data-v-fb7e381b]{color:#8a6310;background:#fff8e8;border:1px solid #f5df9f;border-radius:12px;padding:12px 14px;font-size:13px}.permission-empty[data-v-fb7e381b]{border:1px dashed var(--border);min-height:120px;color:var(--text-sec);background:#fafbfc;border-radius:12px;justify-content:center;align-items:center;font-size:13px;display:flex}.permission-module-grid[data-v-fb7e381b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.permission-module-card[data-v-fb7e381b]{background:#fbfcfe;border:1px solid #e8eaed;border-radius:14px;overflow:hidden}.permission-module-header[data-v-fb7e381b]{background:radial-gradient(circle at 100% 0,#1a73e81f,#0000 52%),linear-gradient(#f8fbff 0%,#f6f8fc 100%);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 14px 12px;display:flex}.permission-module-summary[data-v-fb7e381b]{flex-direction:column;gap:4px;min-width:0;display:flex}.permission-module-headline[data-v-fb7e381b]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.permission-module-meta[data-v-fb7e381b]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.permission-module-title[data-v-fb7e381b]{color:var(--text-main);font-size:14px;font-weight:700}.permission-module-caption[data-v-fb7e381b]{color:#6b7a93;font-size:12px;line-height:1.5}.permission-module-inline-count[data-v-fb7e381b]{color:#5b6880;letter-spacing:.02em;background:#94a3b81f;border-radius:999px;justify-content:center;align-items:center;min-width:46px;min-height:24px;padding:0 10px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #94a3b829}.permission-module-inline-count.active[data-v-fb7e381b]{color:#1450b8;background:#1a73e81a;box-shadow:inset 0 0 0 1px #1a73e829}.permission-module-toggle[data-v-fb7e381b]{color:#4f5f79;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffffe6;border:1px solid #e0e7f0;border-radius:10px;align-items:center;gap:8px;min-height:32px;padding:0 10px;font-size:12px;font-weight:600;transition:border-color .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.permission-module-toggle-input[data-v-fb7e381b]{accent-color:#1a73e8;cursor:pointer;width:14px;height:14px;margin:0}.permission-module-toggle-label[data-v-fb7e381b]{line-height:1}.permission-module-toggle[data-v-fb7e381b]:hover{border-color:#c5d5ee;box-shadow:0 4px 12px #0f172a0d}.permission-module-toggle.active[data-v-fb7e381b]{color:#1450b8;background:#1a73e814;border-color:#c3d6fb;box-shadow:0 4px 12px #1a73e814}.permission-module-toggle.partial[data-v-fb7e381b]{color:#235bbf;border-color:#bfd3ff}.permission-option-list[data-v-fb7e381b]{flex-direction:column;gap:8px;max-height:320px;padding:12px 10px 10px;display:flex;overflow-y:auto}.permission-option[data-v-fb7e381b]{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,background .15s;display:grid}.permission-option[data-v-fb7e381b]:hover{border-color:#cbd5e1}.permission-option.selected[data-v-fb7e381b]{background:#f7faff;border-color:#bfd3ff;box-shadow:inset 0 0 0 1px #1a73e814}.permission-option input[data-v-fb7e381b]{width:16px;height:16px;accent-color:var(--primary)}.permission-option-body[data-v-fb7e381b]{flex-direction:column;gap:4px;min-width:0;display:flex}.permission-name[data-v-fb7e381b]{color:var(--text-main);font-size:13px;font-weight:600}.permission-description[data-v-fb7e381b]{color:var(--text-sec);font-size:12px;line-height:1.45}.permission-code[data-v-fb7e381b]{color:#4b5563;white-space:nowrap;background:#f1f5f9;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-family:Roboto Mono,monospace;font-size:11px;display:inline-flex}@media (width<=900px){.role-form-grid[data-v-fb7e381b],.permission-module-grid[data-v-fb7e381b]{grid-template-columns:1fr}.permission-search[data-v-fb7e381b]{min-width:0;max-width:none}}.dashboard-container[data-v-e3fe8604]{background:#f8f9fa;height:100%;padding:24px;overflow-y:auto}.dashboard-header[data-v-e3fe8604]{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.page-title[data-v-e3fe8604]{color:#202124;margin:0 0 4px;font-size:22px;font-weight:400}.page-subtitle[data-v-e3fe8604]{color:#5f6368;margin:0;font-size:13px}.date-filter[data-v-e3fe8604]{background:#fff;border:1px solid #dadce0;border-radius:4px;display:flex;overflow:hidden}.filter-btn[data-v-e3fe8604]{color:#5f6368;cursor:pointer;background:#fff;border:none;border-right:1px solid #dadce0;padding:6px 16px;font-size:13px}.filter-btn[data-v-e3fe8604]:last-child{border-right:none}.filter-btn.active[data-v-e3fe8604]{color:#1a73e8;background:#e8f0fe;font-weight:500}.kpi-grid[data-v-e3fe8604]{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:24px;display:grid}.kpi-card[data-v-e3fe8604]{background:#fff;border:1px solid #dadce0;border-radius:8px;align-items:flex-start;gap:16px;padding:20px;display:flex;box-shadow:0 1px 2px #3c40431a}.kpi-card.clickable[data-v-e3fe8604]{cursor:pointer;transition:box-shadow .2s,transform .2s}.kpi-card.clickable[data-v-e3fe8604]:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3c404329}.kpi-icon[data-v-e3fe8604]{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.kpi-icon span[data-v-e3fe8604]{color:#fff;font-size:24px}.blue[data-v-e3fe8604]{background:#1a73e8}.green[data-v-e3fe8604]{background:#188038}.orange[data-v-e3fe8604]{background:#e37400}.red[data-v-e3fe8604]{background:#d93025}.kpi-data[data-v-e3fe8604]{flex:1}.kpi-label[data-v-e3fe8604]{color:#5f6368;margin-bottom:4px;font-size:12px;font-weight:500}.kpi-value[data-v-e3fe8604]{color:#202124;font-size:24px;font-weight:500}.kpi-support[data-v-e3fe8604]{color:#1a73e8;margin-top:6px;font-size:12px;font-weight:600}.kpi-trend[data-v-e3fe8604]{align-items:center;gap:4px;margin-top:4px;font-size:12px;font-weight:500;display:flex}.kpi-trend .material-icons-outlined[data-v-e3fe8604]{font-size:16px;line-height:1}.kpi-note[data-v-e3fe8604]{color:#5f6368;margin-top:8px;font-size:12px;line-height:1.5}.up[data-v-e3fe8604]{color:#188038}.down[data-v-e3fe8604]{color:#d93025}.flat[data-v-e3fe8604],.text-sec[data-v-e3fe8604]{color:#5f6368}.charts-row[data-v-e3fe8604]{grid-template-columns:2fr 1fr;gap:24px;margin-bottom:24px;display:grid}.chart-card[data-v-e3fe8604]{flex-direction:column;height:340px;padding:24px;display:flex}.card-header[data-v-e3fe8604]{border-bottom:1px solid #f1f3f4;justify-content:space-between;align-items:center;margin-bottom:0;padding-bottom:16px;display:flex}.card-title[data-v-e3fe8604]{color:#202124;font-size:16px;font-weight:500}.card-subtitle[data-v-e3fe8604]{color:#5f6368;margin-top:4px;font-size:12px}.css-chart-box[data-v-e3fe8604]{flex:1;justify-content:space-around;align-items:flex-end;padding-top:20px;padding-bottom:10px;display:flex}.bar-col[data-v-e3fe8604]{flex-direction:column;justify-content:flex-end;align-items:center;width:40px;height:100%;display:flex;position:relative}.bar-track[data-v-e3fe8604]{background:#f8f9fa;border-radius:4px 4px 0 0;align-items:flex-end;width:24px;height:100%;display:flex}.bar-fill[data-v-e3fe8604]{background:#1a73e8;border-radius:4px 4px 0 0;width:100%;transition:height .5s}.bar-fill.muted[data-v-e3fe8604]{opacity:.35;background:#7ba6f7}.bar-fill.future[data-v-e3fe8604]{background:#dadce0}.bar-tooltip[data-v-e3fe8604]{color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#202124;border-radius:4px;padding:4px 8px;font-size:11px;transition:opacity .15s,transform .15s;position:absolute;top:-28px;transform:translateY(4px)}.bar-col:hover .bar-tooltip[data-v-e3fe8604]{opacity:1;transform:translateY(0)}.bar-label[data-v-e3fe8604]{color:#5f6368;margin-top:12px;font-size:11px}.bar-label.muted[data-v-e3fe8604]{color:#9aa0a6}.payment-ranking-header[data-v-e3fe8604]{align-items:flex-start;gap:12px}.rank-tabs[data-v-e3fe8604]{background:#f1f3f4;border-radius:999px;gap:4px;padding:4px;display:inline-flex}.rank-tab[data-v-e3fe8604]{color:#5f6368;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}.rank-tab.active[data-v-e3fe8604]{color:#1a73e8;background:#fff;box-shadow:0 1px 2px #3c40431f}.payment-ranking-state[data-v-e3fe8604],.payment-ranking-empty[data-v-e3fe8604],.payment-ranking-list[data-v-e3fe8604]{flex:1;padding-top:20px}.payment-ranking-list[data-v-e3fe8604]{flex-direction:column;gap:14px;display:flex}.payment-ranking-loading[data-v-e3fe8604]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.payment-ranking-loading-icon[data-v-e3fe8604]{color:#1a73e8;background:linear-gradient(#eef4ff 0%,#f7faff 100%);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:inset 0 0 0 1px #1a73e814}.payment-ranking-loading-icon .material-icons-outlined[data-v-e3fe8604]{font-size:24px;animation:1.2s ease-in-out infinite dashboardPulse-e3fe8604}.payment-ranking-loading-title[data-v-e3fe8604]{color:#202124;font-size:15px;font-weight:600}.payment-ranking-loading-text[data-v-e3fe8604]{color:#5f6368;max-width:260px;margin:0;font-size:13px;line-height:1.6}.payment-ranking-row[data-v-e3fe8604]{flex-direction:column;gap:8px;display:flex}.payment-ranking-head[data-v-e3fe8604]{justify-content:space-between;align-items:center;gap:12px;display:flex}.payment-ranking-labels[data-v-e3fe8604]{align-items:center;gap:10px;min-width:0;display:flex}.payment-ranking-index[data-v-e3fe8604]{color:#5f6368;font-variant-numeric:tabular-nums;flex-shrink:0;width:28px;font-size:12px;font-weight:700}.payment-ranking-name[data-v-e3fe8604]{text-overflow:ellipsis;white-space:nowrap;color:#202124;font-size:13px;font-weight:600;overflow:hidden}.payment-ranking-amount[data-v-e3fe8604]{color:#202124;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px;font-weight:700}.payment-ranking-track[data-v-e3fe8604]{background:#edf1f5;border-radius:999px;height:10px;overflow:hidden}.payment-ranking-fill[data-v-e3fe8604]{border-radius:999px;min-width:12px;height:100%}.payment-ranking-fill.paid[data-v-e3fe8604]{background:linear-gradient(90deg,#2e7d32 0%,#34a853 100%)}.payment-ranking-fill.unpaid[data-v-e3fe8604]{background:linear-gradient(90deg,#d97706 0%,#f29900 100%)}.payment-ranking-empty[data-v-e3fe8604]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.payment-ranking-empty-icon[data-v-e3fe8604]{color:#1a73e8;background:linear-gradient(#eef4ff 0%,#f7faff 100%);border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;display:flex;box-shadow:inset 0 0 0 1px #1a73e814}.payment-ranking-empty-icon .material-icons-outlined[data-v-e3fe8604]{font-size:26px}.payment-ranking-empty-title[data-v-e3fe8604]{color:#202124;font-size:15px;font-weight:600}.payment-ranking-empty-text[data-v-e3fe8604]{color:#5f6368;max-width:260px;margin:0;font-size:13px;line-height:1.6}@keyframes dashboardPulse-e3fe8604{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.94)}}@keyframes dashboardSpin-e3fe8604{to{transform:rotate(360deg)}}.list-card[data-v-e3fe8604]{padding:0}.list-card .card-header[data-v-e3fe8604]{padding:16px 24px}.card-actions[data-v-e3fe8604]{align-items:center;gap:12px;display:flex}.todo-refresh-badge[data-v-e3fe8604]{color:#1a73e8;background:#1a73e814;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.todo-refresh-badge .material-icons-outlined[data-v-e3fe8604]{font-size:15px;animation:.9s linear infinite dashboardSpin-e3fe8604}.todo-table tbody td[data-v-e3fe8604]{transition:opacity .2s}.todo-table-body-updating td[data-v-e3fe8604]{opacity:.72}.todo-table-state-row td[data-v-e3fe8604]{padding:0}.todo-state[data-v-e3fe8604]{min-height:176px;padding:28px 24px 30px}.todo-state-empty[data-v-e3fe8604]{color:#5f6368;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.todo-empty-icon[data-v-e3fe8604]{color:#1a73e8;background:linear-gradient(#eef4ff 0%,#f7faff 100%);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:inset 0 0 0 1px #1a73e814}.todo-empty-icon .material-icons-outlined[data-v-e3fe8604]{font-size:26px}.todo-empty-title[data-v-e3fe8604]{color:#202124;font-size:15px;font-weight:600}.todo-empty-text[data-v-e3fe8604]{color:#5f6368;max-width:360px;margin:0;font-size:13px;line-height:1.6}.todo-state-loading[data-v-e3fe8604]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.todo-state-loading-inline[data-v-e3fe8604]{min-height:148px}.todo-loading-icon[data-v-e3fe8604]{color:#1a73e8;background:linear-gradient(#eef4ff 0%,#f7faff 100%);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:inset 0 0 0 1px #1a73e814}.todo-loading-icon .material-icons-outlined[data-v-e3fe8604]{font-size:24px;animation:1.2s ease-in-out infinite dashboardPulse-e3fe8604}.todo-loading-title[data-v-e3fe8604]{color:#202124;font-size:15px;font-weight:600}.todo-loading-text[data-v-e3fe8604]{color:#5f6368;max-width:360px;margin:0;font-size:13px;line-height:1.6}.list-toolbar[data-v-8f901a41]{align-items:stretch}.toolbar-actions[data-v-8f901a41]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.segmented[data-v-8f901a41]{background:#f1f5f9;border:1px solid #94a3b838;border-radius:12px;gap:4px;padding:4px;display:inline-flex}.segmented button[data-v-8f901a41]{color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;line-height:1;transition:all .18s}.segmented button[data-v-8f901a41]:hover{color:var(--text-main);background:#ffffffb8}.segmented button.active[data-v-8f901a41]{color:var(--primary);background:#fff;box-shadow:0 8px 18px #0f172a14}.workorder-table th[data-v-8f901a41]{background:#fff}.workorder-table th[data-v-8f901a41],.workorder-table td[data-v-8f901a41]{white-space:nowrap}.workorder-id-link[data-v-8f901a41],.title-text[data-v-8f901a41],.cell-text[data-v-8f901a41]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.title-cell[data-v-8f901a41]{color:var(--text-main)}.advanced-filters[data-v-8f901a41]{background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #94a3b829;border-radius:16px;margin-top:14px;padding:18px;box-shadow:0 10px 30px #0f172a0d}.workorder-modal[data-v-8f901a41]{border-radius:18px;width:min(760px,100vw - 32px);max-height:90vh;overflow-y:auto;box-shadow:0 28px 70px #0f172a3d}.workorder-modal-body[data-v-8f901a41]{background:linear-gradient(#fff 0%,#f8fafc 100%)}.form-label[data-v-8f901a41]{color:#334155;font-size:13px;font-weight:600}.workorder-textarea[data-v-8f901a41]{resize:vertical;min-height:112px}.attachment-field[data-v-8f901a41]{gap:12px}.attachment-upload[data-v-8f901a41]{background:linear-gradient(#eff6ffeb 0%,#f8fafcf5 100%);border:1px dashed #2563eb47;border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.file-hint[data-v-8f901a41]{color:var(--text-sec);font-size:12px}.attachment-grid[data-v-8f901a41]{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:12px;display:grid}.attachment-card[data-v-8f901a41]{background:#fff;border:1px solid #94a3b82e;border-radius:16px;position:relative;overflow:hidden;box-shadow:0 10px 24px #0f172a0f}.attachment-preview[data-v-8f901a41]{background:linear-gradient(#eff6ff 0%,#f8fafc 100%);justify-content:center;align-items:center;width:100%;height:112px;display:flex;overflow:hidden}.attachment-preview img[data-v-8f901a41],.attachment-preview video[data-v-8f901a41]{object-fit:cover;width:100%;height:100%;display:block}.attachment-fallback[data-v-8f901a41]{color:#64748b;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.attachment-meta[data-v-8f901a41]{flex-direction:column;gap:4px;padding:12px 14px 14px;display:flex}.attachment-type[data-v-8f901a41]{letter-spacing:.04em;color:var(--primary);font-size:11px;font-weight:700}.attachment-name[data-v-8f901a41]{color:var(--text-main);word-break:break-word;font-size:13px;text-decoration:none;display:block}.attachment-remove[data-v-8f901a41]{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172aad;border:none;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;position:absolute;top:10px;right:10px}.attachment-remove[data-v-8f901a41]:hover{background:#dc2626eb}@media (width<=768px){.toolbar-actions[data-v-8f901a41]{justify-content:space-between;width:100%}.segmented[data-v-8f901a41]{width:100%}.segmented button[data-v-8f901a41]{flex:1 1 0}.attachment-grid[data-v-8f901a41]{grid-template-columns:repeat(2,minmax(0,1fr))}}.gcp-icon[data-v-b5e6cb46]{vertical-align:middle;-webkit-user-select:none;user-select:none;line-height:1}.gcp-icon--sm[data-v-b5e6cb46]{font-size:16px}.gcp-icon--md[data-v-b5e6cb46]{font-size:20px}.gcp-icon--lg[data-v-b5e6cb46]{font-size:24px}.gcp-icon--primary[data-v-b5e6cb46]{color:var(--primary)}.gcp-icon--success[data-v-b5e6cb46]{color:var(--status-green-text)}.gcp-icon--warning[data-v-b5e6cb46]{color:var(--status-yellow-text)}.gcp-icon--danger[data-v-b5e6cb46]{color:var(--status-red-text)}.gcp-icon--info[data-v-b5e6cb46]{color:var(--status-blue-text,#1967d2)}.gcp-btn[data-v-d003c173]{cursor:pointer;height:32px;color:var(--text-main);white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.gcp-btn.is-block[data-v-d003c173]{width:100%}.gcp-btn[data-v-d003c173]:disabled{cursor:not-allowed;opacity:.6}.gcp-btn--sm[data-v-d003c173]{height:28px;padding:0 12px;font-size:12px}.gcp-btn--lg[data-v-d003c173]{height:36px;padding:0 20px;font-size:14px}.gcp-btn--primary[data-v-d003c173]{background:var(--primary);color:#fff;box-shadow:0 1px 2px #4285f44d}.gcp-btn--primary[data-v-d003c173]:hover{background:var(--primary-hover);box-shadow:0 1px 3px #4285f466}.gcp-btn--outlined[data-v-d003c173]{border-color:var(--border);color:var(--text-main);background:#fff}.gcp-btn--outlined[data-v-d003c173]:hover{border-color:var(--text-main);background:#f8f9fa}.gcp-btn--text[data-v-d003c173]{color:var(--primary);padding:0 8px}.gcp-btn--text[data-v-d003c173]:hover{background:#1a73e80a}.spinner[data-v-d003c173]{border:2px solid #fff9;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin-d003c173}.gcp-btn--outlined .spinner[data-v-d003c173],.gcp-btn--text .spinner[data-v-d003c173]{border:2px solid #1a73e84d;border-top-color:var(--primary)}@keyframes spin-d003c173{to{transform:rotate(360deg)}}.btn-label[data-v-d003c173]{align-items:center;gap:6px;display:inline-flex}.gcp-card[data-v-71570e6e]{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.card-header[data-v-71570e6e]{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.title[data-v-71570e6e]{color:var(--text-main);font-size:14px;font-weight:600}.actions[data-v-71570e6e]{align-items:center;gap:8px;display:inline-flex}.card-body[data-v-71570e6e]{padding:12px 16px}.card-footer[data-v-71570e6e]{border-top:1px solid var(--border);background:#fafafa;padding:10px 16px}.no-padding .card-body[data-v-71570e6e]{padding:0}.gcp-toolbar[data-v-cabdf273]{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.left[data-v-cabdf273],.right[data-v-cabdf273]{align-items:center;gap:8px;display:inline-flex}.gcp-page-header[data-v-c416820e]{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:12px;padding:12px 0 16px;display:grid}.breadcrumb[data-v-c416820e]{color:var(--text-sec);grid-column:1/-1;font-size:12px}.heading .title[data-v-c416820e]{color:var(--text-main);margin:0;font-size:18px;font-weight:600}.subtitle[data-v-c416820e]{color:var(--text-sec);margin:6px 0 0;font-size:13px}.extra[data-v-c416820e]{align-self:end;gap:8px;display:inline-flex}.gcp-table[data-v-fbfc2f8a]{position:relative}.loading[data-v-fbfc2f8a]{z-index:1;background:#fff9;border-radius:4px;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.spinner[data-v-fbfc2f8a]{border:2px solid #1a73e84d;border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin-fbfc2f8a}@keyframes spin-fbfc2f8a{to{transform:rotate(360deg)}}table[data-v-fbfc2f8a]{border-collapse:collapse;background:#fff;width:100%}table.is-fixed-layout[data-v-fbfc2f8a]{table-layout:fixed}table.is-loading[data-v-fbfc2f8a]{opacity:.72}thead th[data-v-fbfc2f8a]{color:var(--text-sec);border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;background:#f8f9fa;padding:10px 12px;font-size:12px;font-weight:600;overflow:hidden}tbody td[data-v-fbfc2f8a]{border-bottom:1px solid var(--border);vertical-align:middle;overflow-wrap:anywhere;padding:10px 12px}tbody tr[data-v-fbfc2f8a]{transition:background .15s}tbody tr[data-v-fbfc2f8a]:hover{background:#f8f9fa}table.is-row-clickable tbody tr[data-v-fbfc2f8a]:hover{cursor:pointer}table.striped tbody tr[data-v-fbfc2f8a]:nth-child(2n){background:#fcfcfd}table.compact thead th[data-v-fbfc2f8a],table.compact tbody td[data-v-fbfc2f8a]{padding:8px 10px}.empty[data-v-fbfc2f8a]{text-align:center;border:1px solid var(--border);background:#fff;border-top:none;padding:24px}.empty-wrap[data-v-fbfc2f8a]{color:var(--text-sec);flex-direction:column;align-items:center;gap:6px;display:inline-flex}.tip[data-v-fbfc2f8a]{font-size:13px}.table-footer[data-v-fbfc2f8a]{justify-content:flex-end;padding-top:8px;display:flex}:root{--primary:#1a73e8;--primary-hover:#1967d2;--primary-light:#e8f0fe;--success:#137333;--success-bg:#e6f4ea;--warning:#ea8600;--warning-bg:#fef7e0;--danger:#c5221f;--danger-bg:#fce8e6;--secondary:#5f6368;--secondary-bg:#f1f3f4;--bg-body:#f8f9fa;--bg-surface:#fff;--bg-hover:#f8f9fa;--border:#dadce0;--border-light:#e8eaed;--text-main:#202124;--text-sec:#5f6368;--text-disabled:#80868b;--nav-width:200px;--header-height:56px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}body{color:var(--text-main);background:var(--bg-body);-webkit-font-smoothing:antialiased;margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.5}a{color:inherit;text-decoration:none}.gcp-btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 16px;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.gcp-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.gcp-btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #4285f44d}.gcp-btn-primary:hover{background:var(--primary-hover);box-shadow:0 1px 3px #4285f466}.gcp-btn-outlined{border-color:var(--border);color:var(--text-main);background:#fff}.gcp-btn-outlined:hover{border-color:var(--text-main);color:var(--text-main);background:#f8f9fa}.gcp-btn-text{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:13px;font-weight:500}.gcp-btn-text:hover{background:#1a73e80a}.gcp-btn-danger{background:var(--danger);color:#fff}.gcp-btn-danger:hover{background:#b31412}.gcp-btn.small{height:28px;padding:0 12px;font-size:12px}.gcp-icon-btn{width:32px;height:32px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .2s;display:inline-flex}.gcp-icon-btn:hover{color:var(--text-main);background:#0000000a}.gcp-icon-btn.primary{color:var(--primary)}.gcp-icon-btn.primary:hover{background:var(--primary-light)}.gcp-icon-btn.danger{color:var(--danger)}.gcp-icon-btn.danger:hover{background:var(--danger-bg)}.gcp-card{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;transition:box-shadow .2s;overflow:hidden}.gcp-table-container{width:100%;overflow-x:auto}.gcp-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.table-fixed-layout{table-layout:fixed}.gcp-table thead{z-index:10;background:linear-gradient(#f8f9fa 0%,#f1f3f4 100%);position:sticky;top:0}.gcp-table th{text-align:left;color:#3c4043;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-bottom:2px solid #dadce0;padding:10px 12px;font-size:12px;font-weight:600}.gcp-table tbody tr{transition:background .15s}.gcp-table tbody tr:hover{background:#f8f9fa}.gcp-table td{vertical-align:middle;border-bottom:1px solid var(--border-light);color:var(--text-main);padding:8px 12px}.gcp-table th.operation-column,.gcp-table td.operation-column{text-align:center}.gcp-table td.operation-column .row-actions,.gcp-table td.operation-column .actions,.gcp-table td.operation-column .table-action-row{justify-content:center;width:100%}.gcp-table tbody tr:last-child td{border-bottom:none}.gcp-status-chip{white-space:nowrap;border-radius:12px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;line-height:1.5;display:inline-flex}.gcp-status-chip.success{background:var(--success-bg);color:var(--success)}.gcp-status-chip.warning{background:var(--warning-bg);color:var(--warning)}.gcp-status-chip.danger{background:var(--danger-bg);color:var(--danger)}.gcp-status-chip.blue{background:var(--primary-light);color:var(--primary)}.gcp-status-chip.gray{background:var(--secondary-bg);color:var(--text-sec)}.gcp-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gcp-modal{border-radius:var(--radius-md);background:#fff;flex-direction:column;width:600px;max-width:90%;max-height:90vh;animation:.2s ease-out modalSlideIn;display:flex;box-shadow:0 4px 24px #00000026}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gcp-modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.gcp-modal-title{color:var(--text-main);margin:0;font-size:18px;font-weight:500}.gcp-modal-body{flex:1;padding:24px;overflow-y:auto}.gcp-modal-footer{border-top:1px solid var(--border-light);border-radius:0 0 var(--radius-md) var(--radius-md);background:#f8f9fa;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.gcp-form-row{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.gcp-form-label{color:var(--text-main);font-size:13px;font-weight:500}.gcp-input,.gcp-select,.gcp-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:8px 12px;font-family:inherit;font-size:14px;transition:all .2s}.gcp-input:focus,.gcp-select:focus,.gcp-textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #1a73e81a}.gcp-textarea{resize:vertical;min-height:80px}.gcp-empty-state{text-align:center;color:var(--text-sec);flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.gcp-empty-icon{color:#dadce0;margin-bottom:16px;font-size:64px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#dadce0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#bdc1c6}.loading-container{color:var(--text-sec);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gcp-form{flex-direction:column;gap:20px;display:flex}.gcp-form .form-row,.gcp-form-row{flex-direction:column;gap:6px;display:flex}.gcp-form .form-row-group{gap:16px;display:flex}.gcp-form label,.gcp-form-label{color:var(--text-main);font-size:13px;font-weight:500}.gcp-form input,.gcp-form select,.gcp-form textarea,.gcp-input,.gcp-select,.gcp-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;background:#fff;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:all .2s}.gcp-form input:focus,.gcp-form select:focus,.gcp-form textarea:focus,.gcp-input:focus,.gcp-select:focus,.gcp-textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #1a73e81a}.gcp-form textarea,.gcp-textarea{resize:vertical;min-height:80px}.gcp-form .form-subtotal{background:#f5f5f5;border-radius:4px;justify-content:space-between;align-items:center;margin-top:8px;padding:16px;display:flex}.gcp-form .form-subtotal span{color:#666;font-size:14px}.gcp-form .form-subtotal strong{color:#2e7d32;font-size:20px}.gcp-btn-secondary{color:var(--text-sec);background:#f1f3f4}.gcp-btn-secondary:hover{color:var(--text-main);background:#e8eaed}@media (width<=768px){.gcp-form .form-row-group{flex-direction:column}}.page-container{background:var(--bg-body);box-sizing:border-box;flex-direction:column;height:100%;min-height:0;padding:24px;display:flex;overflow:hidden auto}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.page-header h2{color:var(--text-main);margin:0 0 4px;font-size:20px;font-weight:600}.page-header .subtitle{color:var(--text-sec);font-size:14px}.list-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.toolbar-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;display:flex}.toolbar-actions>.gcp-btn,.toolbar-actions>.gcp-icon-btn,.toolbar-actions>button{flex-shrink:0}.filter-bar{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;flex:1;align-items:center;gap:12px;height:36px;padding:0 12px;display:flex}.filter-icon{color:var(--text-sec);font-size:20px}.filter-input{background:0 0;border:none;outline:none;flex:1;min-width:120px;font-size:14px}.filter-input::placeholder{color:var(--text-disabled)}.filter-select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;background:#fff;padding:6px 10px;font-size:13px}.filter-select:focus{border-color:var(--primary);outline:none}.table-container{border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;flex-direction:column;flex:1;display:flex;overflow:auto}.table-scroll{flex:1;overflow:auto}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-grid.cols-3{grid-template-columns:repeat(3,1fr)}.form-grid.cols-1{grid-template-columns:1fr}.form-row{gap:16px;margin-bottom:16px;display:flex}.form-group{flex-direction:column;flex:1;gap:6px;display:flex}.form-group.full-width{grid-column:1/-1}.form-label{color:var(--text-main);font-size:13px;font-weight:500}.form-label.required:after{content:"*";color:var(--danger);margin-left:4px}.form-input,.form-select,.form-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;background:#fff;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #1a73e81a}.form-textarea{resize:vertical;min-height:80px}.form-input:disabled,.form-select:disabled{cursor:not-allowed;background:#f5f5f5}.row-actions{align-items:center;gap:4px;display:flex}.table-action-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.table-action-link{font:inherit;color:var(--primary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;margin:0;padding:0;font-size:13px;font-weight:500;line-height:1.4;text-decoration:none}.table-action-link:hover{text-decoration:underline}.table-action-link.danger{color:var(--danger)}.table-action-link:disabled{color:var(--text-sec);cursor:not-allowed;text-decoration:none}table th.operation-column,table td.operation-column{text-align:center}table td.operation-column .table-action-row{justify-content:center;width:100%}.icon-btn{width:28px;height:28px;color:var(--text-sec);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s;display:inline-flex}.icon-btn:hover{color:var(--text-main);background:#0000000a}.icon-btn.primary{color:var(--primary)}.icon-btn.primary:hover{background:var(--primary-light)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:var(--danger-bg)}.stats-row{gap:16px;margin-bottom:24px;display:flex}.stat-card{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;flex:1;align-items:center;gap:16px;padding:16px 20px;display:flex}.stat-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.stat-icon.blue{background:var(--primary-light);color:var(--primary)}.stat-icon.green{background:var(--success-bg);color:var(--success)}.stat-icon.orange{background:var(--warning-bg);color:var(--warning)}.stat-icon.red{background:var(--danger-bg);color:var(--danger)}.stat-content h3{color:var(--text-main);margin:0;font-size:24px;font-weight:600}.stat-content p{color:var(--text-sec);margin:4px 0 0;font-size:13px}.tips-box{border-radius:var(--radius-sm);color:var(--text-sec);background:#f3f4f6;margin-bottom:16px;padding:12px 16px;font-size:13px}.tips-box.info{background:var(--primary-light);color:var(--primary)}.tips-box.warning{background:var(--warning-bg);color:var(--warning)}.text-primary{color:var(--primary)}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-sm{font-size:16px}.icon-md{font-size:20px}.icon-lg{font-size:24px}@media (width<=768px){.page-container{padding:16px}.page-header{flex-direction:column;align-items:stretch;gap:16px}.list-toolbar{flex-direction:column;gap:12px}.filter-bar{width:100%}.form-grid{grid-template-columns:1fr}.stats-row{flex-direction:column}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;flex-direction:column;width:600px;max-width:90%;max-height:90vh;display:flex;box-shadow:0 4px 24px #0003}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-header h3{margin:0;font-size:18px;font-weight:500}.close-btn{cursor:pointer;color:var(--text-sec);background:0 0;border:none;padding:4px}.close-btn:hover{color:var(--text-main)}.modal-body{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.chip{border-radius:10px;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.chip-green{background:var(--success-bg,#e6f4ea);color:var(--success,#137333)}.chip-blue{background:var(--primary-light,#e8f0fe);color:var(--primary,#1a73e8)}.chip-orange{background:var(--warning-bg,#fef7e0);color:var(--warning,#b06000)}.chip-red{background:var(--danger-bg,#fce8e6);color:var(--danger,#d93025)}.chip-gray{background:var(--secondary-bg,#f1f3f4);color:var(--text-sec,#5f6368)}.empty-state{text-align:center;color:var(--text-sec,#9ca3af);flex-direction:column;justify-content:center;align-items:center;padding:48px 16px;display:flex}.empty-state.bordered{border:1px dashed var(--border);border-radius:10px}.empty-state.compact{height:200px;padding:16px}.empty-state .material-icons-outlined{margin-bottom:12px;font-size:48px}.empty-state p{margin-top:8px;font-size:14px}.text-sec{color:var(--text-sec,#6b7280)}.text-main{color:var(--text-main,#202124);font-weight:500}.text-success{color:var(--success,#52c41a)}.text-danger{color:var(--danger,#ff4d4f)}.text-warning{color:var(--warning,#faad14)}.text-center{text-align:center}.text-right{text-align:right}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.id-link{color:var(--primary);font-family:Roboto Mono,monospace;font-weight:500;text-decoration:none}.id-link:hover{text-decoration:underline}.mono{font-family:Roboto Mono,monospace}.required-mark{color:var(--danger,#d93025);margin-left:4px}.actions{gap:8px;display:flex}.header-actions{align-items:center;gap:12px;display:flex}.detail-body{flex:1;display:flex;overflow:hidden}.detail-toc{border-right:1px solid var(--border,#e5e7eb);background:#fff;flex-shrink:0;width:220px;padding:20px 0;overflow-y:auto}.section-title{color:var(--text-main);justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.page-title{color:var(--text-main);margin:0 0 12px;font-size:18px;font-weight:600}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px;display:grid}.info-item{grid-template-columns:minmax(80px,auto) 1fr;align-items:start;gap:6px;min-width:0;display:grid;overflow:hidden}.info-item.full-width{grid-column:span 2}.info-item .label{color:var(--text-sec,#5f6368);font-size:13px;font-weight:500}.info-item .value{color:var(--text-main,#202124)}.gcp-card.info-grid-bordered{border:none;padding:0}.info-grid-bordered{border-top:1px solid #e0e0e0;border-left:1px solid #e0e0e0;grid-template-columns:repeat(4,1fr);display:grid}.info-grid-bordered .info-item{background:#fff;border-bottom:1px solid #e0e0e0;border-right:1px solid #e0e0e0;flex-direction:column;gap:6px;min-width:0;padding:16px 20px;display:flex;overflow:hidden}.info-grid-bordered .info-item.full-width{grid-column:1/-1}.info-grid-bordered .info-item.span-2{grid-column:span 2}.info-grid-bordered .info-item.span-3{grid-column:span 3}.info-grid-bordered .info-label{color:var(--text-sec);font-size:12px}.info-grid-bordered .info-value{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;min-height:20px;font-size:14px;overflow:hidden}.info-grid-bordered .info-value.highlight{color:var(--primary);font-weight:500}.info-grid-bordered .info-item.full-width .info-value,.info-grid-bordered .info-item.span-2 .info-value,.info-grid-bordered .info-item.span-3 .info-value{white-space:normal;text-overflow:unset;overflow:visible}.advanced-filters{border:1px solid var(--border);border-top:1px solid var(--border-light,#e8eaed);border-radius:0 0 var(--radius-md) var(--radius-md);z-index:10;background:#f8f9fa;flex-direction:column;gap:14px;margin-top:0;margin-bottom:16px;padding:16px 24px 20px;display:flex;position:relative}.filter-grid{grid-template-columns:repeat(4,1fr);gap:12px 24px;display:grid}.advanced-filters .form-group{flex-direction:row;align-items:center;gap:8px;display:flex}.advanced-filters .form-label{text-align:right;white-space:nowrap;width:70px;min-width:70px;color:var(--text-sec);flex-shrink:0;margin-bottom:0}.advanced-filters .gcp-input,.advanced-filters .gcp-select{flex:1;width:100%;min-width:0;height:32px;padding:4px 8px}.filter-actions{border-top:1px solid var(--border-light,#e8eaed);justify-content:center;gap:8px;padding-top:12px;display:flex}.list-toolbar.has-expanded-panel{border-radius:var(--radius-md) var(--radius-md) 0 0;border:1px solid var(--border);box-shadow:none;z-index:11;background:#fff;border-bottom:none;margin-bottom:0;padding:10px 24px;position:relative}.gcp-input,.gcp-select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-main);box-sizing:border-box;background-color:#fff;padding:10px 12px;font-size:14px;transition:all .2s}.gcp-input:focus,.gcp-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #1890ff1a}.gcp-input::placeholder{color:var(--text-disabled)}.gcp-select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:32px}.message-overlay{z-index:2000;pointer-events:none;position:fixed;top:24px;right:24px}.message-card{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;border-radius:12px;align-items:flex-start;gap:12px;min-width:320px;max-width:420px;padding:16px 20px;animation:.35s cubic-bezier(.21,1.02,.73,1) messageSlideIn;display:flex;box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014}.message-card.error{border-left:4px solid var(--danger,#d93025)}.message-card.success{border-left:4px solid var(--success,#1e8e3e)}.message-card .icon{flex-shrink:0;margin-top:1px;font-size:22px}.message-card.error .icon{color:var(--danger,#d93025)}.message-card.success .icon{color:var(--success,#1e8e3e)}.message-card .content{flex:1;min-width:0}.message-card .title{color:var(--text-main,#202124);margin-bottom:2px;font-size:14px;font-weight:600}.message-card .desc{color:var(--text-sec,#5f6368);font-size:13px;line-height:1.5}.message-card .close-icon{cursor:pointer;color:var(--text-sec,#9aa0a6);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:2px;transition:all .2s;display:flex}.message-card .close-icon:hover{color:var(--text-main,#202124);background:#0000000f}.message-card .close-icon .material-icons-outlined{font-size:18px}@keyframes messageSlideIn{0%{opacity:0;transform:translate(100%)translateY(-8px)}to{opacity:1;transform:translate(0)translateY(0)}}.loading-container{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid #f1f3f4;border-top:3px solid var(--primary,#1a73e8);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/assets/MaterialIcons-Regular-7oKWXygK.ttf)format("truetype")}@font-face{font-family:Material Icons Outlined;font-style:normal;font-weight:400;font-display:block;src:url(/assets/MaterialIconsOutlined-Regular-C9WY0n77.otf)format("opentype")}.material-icons,.material-icons-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;direction:ltr;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.material-icons{font-family:Material Icons}.material-icons-outlined{font-family:Material Icons Outlined}
