*{font-family:var(--font-family-primary)}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-color, #212529);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-color, #212529);margin:0}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}h5{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}h6{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}p{font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0}a{font-family:var(--font-family-primary);font-size:inherit;color:var(--primary-color, #0066cc);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-color, #0052a3);text-decoration:underline}button,.btn{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}input,textarea,select{font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal)}select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 8px center!important;background-size:12px!important;padding-right:28px!important;cursor:pointer!important;border:1px solid var(--select-border-color, var(--border-color))!important;border-radius:var(--select-border-radius-sm, 4px)!important;transition:var(--select-transition)!important;background-color:var(--select-bg-color, #ffffff)!important;color:var(--select-text-color, #1f2937)!important;font-size:var(--select-font-size, 13px)!important;padding:var(--select-padding-y, 6px) var(--spacing-xl, 18px) var(--select-padding-y, 6px) var(--select-padding-x, 10px)!important}select:hover{border-color:var(--select-hover-border, #60a5fa)!important}select:focus{outline:none!important;border-color:var(--select-focus-border, #1460b8)!important;box-shadow:0 0 0 3px var(--select-focus-shadow, rgba(20, 96, 184, .15))!important}code,pre,.monospace{font-family:var(--font-family-monospace);font-size:var(--font-size-sm)}small,.text-small{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.text-large{font-size:var(--font-size-lg);line-height:var(--line-height-normal)}.font-light{font-weight:var(--font-weight-light)}:root{--color-primary: #0066cc;--color-primary-hover: #0052a3;--color-primary-light: #3b82f6;--color-primary-lighter: #60a5fa;--color-primary-lightest: #eef2ff;--color-primary-bg: #eff6ff;--color-primary-dark: #1e40af;--color-secondary: #1e40af;--color-accent: #0284c7;--color-success: #10b981;--color-success-bg: #dcfce7;--color-success-dark: #166534;--color-success-border: #7ecfa0;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-warning-dark: #92400e;--color-warning-border: #f5d080;--color-danger: #ef4444;--color-danger-bg: #fee2e2;--color-danger-dark: #dc2626;--color-danger-border: #f0b0a8;--color-info: #3b82f6;--color-info-bg: #eff6ff;--color-info-dark: #1d4ed8;--color-purple: #8b5cf6;--color-purple-bg: #f3e8ff;--color-purple-dark: #7c3aed;--color-pink: #ec4899;--color-pink-bg: #fce7f3;--color-pink-dark: #be185d;--bg-surface: #ffffff;--bg-body: #f4f5f7;--bg-light: #f8f9fa;--bg-lighter: #f9fafb;--bg-secondary: #f1f5f9;--bg-hover: #dfe0e2;--bg-white: #ffffff;--text-color: #1f2937;--text-primary: #111827;--text-secondary: #374151;--text-muted: #6b7280;--text-light: #9ca3af;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--cde-wip: #b86e00;--cde-wip-bg: #fff8ec;--cde-wip-border: #f5d080;--cde-shared: #1460b8;--cde-shared-bg: #eef5ff;--cde-shared-border: #a8c8f8;--cde-publish: #157a35;--cde-publish-bg: #eefaf3;--cde-publish-border: #7ecfa0;--cde-archive: #6530b0;--cde-archive-bg: #f4eeff;--cde-archive-border: #c0a0e8;--cde-blue: #1460b8;--cde-blue-bg: #eef5ff;--cde-blue-dark: #0d4a8a;--cde-red: #c0392b;--cde-green: #157a35;--cde-zone-published: #1e8a4a;--cde-zone-published-bg: #f0fdf4;--cde-zone-published-border: #86efac;--cde-zone-shared: #0e7fad;--cde-zone-shared-bg: #e0f2fe;--cde-zone-shared-border: #7dd3fc;--cde-zone-wip: #2e5be0;--cde-zone-wip-bg: #eff6ff;--cde-zone-wip-border: #93c5fd;--cde-zone-archive: #6b7591;--cde-zone-archive-bg: #f3f4f6;--cde-zone-archive-border: #d1d5db;--cde-role-kt: #2e5be0;--cde-role-kc: #6d3fcc;--cde-role-mep: #c07c14;--cde-role-tc: #0a8fa0;--cde-role-rel: #c07c14;--cde-role-cdt: #1e8a4a;--cde-role-bim: #0e7fad;--cde-role-sys: #6b7591;--cde-edge-spine: #2e5be0;--cde-edge-branch: #8c92a4;--cde-edge-merge: #1e8a4a;--cde-edge-archive: #b4b9c8;--cde-status-s0: #2e5be0;--cde-status-s1: #0e7fad;--cde-status-s2: #0e7fad;--cde-status-s3: #0e7fad;--cde-status-s4: #c07c14;--cde-status-a1: #1e8a4a;--cde-status-b1: #c43b3b;--vw-sidebar-width: 210px;--vw-lane-height: 22px;--vw-lane-sub-height: 50px;--vw-lane-plain-height: 64px;--vw-lane-collapsed-height: 18px;--vw-node-min-size: 18px;--vw-node-max-size: 24px;--vw-panel-width: 280px;--vw-timeline-padding-left: 148px;--vw-timeline-padding-right: 80px;--vw-timeline-padding-top: 30px;--vw-timeline-padding-bottom: 60px;--vw-font-family: "FZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--vw-font-mono: "FZ Poppins", monospace;--color-bg-dark: #111827;--color-bg-medium: #1f2937;--color-bg-light: #f7fafc;--color-bg-lighter: #f9fafb;--color-bg-white: #ffffff;--color-text-primary: #111827;--color-text-secondary: #374151;--color-text-muted: #6b7280;--color-text-light: #9ca3af;--color-text-white: #ffffff;--cde-bg: #f4f5f7;--cde-surface: #ffffff;--cde-s2: #f7f8fa;--cde-s3: #eef0f3;--cde-border: #e1e4e8;--cde-border2: #cdd1d8;--cde-text: #1c1f26;--cde-text2: #4b5263;--cde-muted: #8c94a3;--cde-muted2: #c4c9d4;--primary-color: var(--color-primary);--secondary-color: var(--color-secondary);--success-color: var(--color-success);--danger-color: var(--color-danger);--light-bg: var(--bg-light);--border-color: var(--cde-border);--text-color: var(--text-primary);--text-muted: var(--text-muted);--text-primary: var(--gray-900);--text-secondary: var(--gray-700);--text-muted: var(--gray-500);--text-light: var(--gray-400);--primary-blue: #0066cc;--primary-blue-light: #3b82f6;--primary-blue-lighter: #60a5fa;--primary-blue-lightest: #eef2ff;--secondary-blue: #0d4a8a;--font-family: "FZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-primary: "FZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "SF Mono", "Cascadia Code", "Consolas", "Monaco", monospace;--font-mono: var(--font-family-mono);--font-size-4xs: 9px;--font-size-xxs: 10px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 13px;--font-size-md: 14px;--font-size-lg: 15px;--font-size-xl: 18px;--font-size-xxl: 20px;--font-size-xxxl: 24px;--font-size-4xl: 28px;--font-size-icon-lg: 48px;--font-size-icon-xl: 64px;--cde-fs-xs: 10px;--cde-fs-sm: 12px;--cde-fs-md: 13px;--cde-fs-lg: 14px;--cde-fs-xl: 15px;--cde-fs-xxl: 18px;--cde-fs-xxxl: 20px;--spacing-xs: 3px;--spacing-sm: 6px;--spacing-md: 10px;--spacing-lg: 14px;--spacing-xl: 18px;--spacing-2xl: 24px;--spacing-3xl: 32px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px rgba(0,0,0,.07);--shadow-lg: 0 10px 25px rgba(0,0,0,.1);--shadow-xl: 0 20px 40px rgba(0,0,0,.15);--shadow: var(--shadow-md);--shadow-lg: var(--shadow-lg);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 9999px;--measurement-yellow: #ffeb3b;--measurement-orange: #ff9800;--measurement-purple: #494cb6;--measurement-purple-dark: #3d3ea8;--measurement-green: #4caf50;--measurement-red: #f44336;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 10000;--z-modal: 10001;--z-popover: 10002;--z-tooltip: 10003;--sidebar-width: 280px;--sidebar-collapsed: 56px;--properties-width: 320px;--topbar-height: 52px;--toolbar-height: 64px;--menubar-height: 32px;--filterbar-height: 44px;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--color-primary-dark: #094b7e;--color-primary-light: #4ba5db;--select-padding-x: 10px;--select-padding-y: 6px;--select-padding-x-sm: 8px;--select-padding-y-sm: 4px;--select-font-size: var(--font-size-base, 13px);--select-font-size-sm: var(--font-size-sm, 12px);--select-line-height: 1.4;--select-bg-color: var(--bg-surface, #ffffff);--select-border-color: var(--cde-border, #e1e4e8);--select-border-radius: var(--radius-md, 6px);--select-border-radius-sm: var(--radius-sm, 4px);--select-text-color: var(--text-primary, #1f2937);--select-text-muted: var(--text-muted, #6b7280);--select-arrow-color: var(--text-muted, #6b7280);--select-hover-border: var(--primary-blue-lighter, #60a5fa);--select-focus-border: var(--cde-blue, #1460b8);--select-focus-shadow: rgba(20, 96, 184, .15);--select-min-width: 100px;--select-min-width-sm: 80px;--select-transition: border-color var(--transition-fast, .15s ease), box-shadow var(--transition-fast, .15s ease)}:root{--t-micro: .12s;--t-base: .18s;--t-enter: .22s;--t-leave: .15s;--t-layout: .28s;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}#app-container>*{animation:viewEnter var(--t-enter) var(--ease-out-quart) both}@keyframes viewEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes popoverEnter{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popoverLeave{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.97)}}.avatar-dropdown,.bell-dropdown,.topbar-search-suggestions{animation:popoverEnter var(--t-enter) var(--ease-out-quart) both;transform-origin:top right}.avatar-dropdown.is-closing,.bell-dropdown.is-closing,.topbar-search-suggestions.is-closing{animation:popoverLeave var(--t-leave) ease both;pointer-events:none}.cs-select__list{display:block!important;visibility:hidden;opacity:0;transform:translateY(-4px) scaleY(.97);transform-origin:top center;pointer-events:none;transition:opacity var(--t-enter) var(--ease-out-quart),transform var(--t-enter) var(--ease-out-quart),visibility 0s linear var(--t-enter)}.cs-select.open .cs-select__list{visibility:visible;opacity:1;transform:translateY(0) scaleY(1);pointer-events:auto;transition:opacity var(--t-enter) var(--ease-out-quart),transform var(--t-enter) var(--ease-out-quart),visibility 0s linear 0s}:focus-visible{outline:2px solid var(--color-primary-light, #4ba5db);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-family, "FZ Poppins", -apple-system, BlinkMacSystemFont, sans-serif);font-size:var(--font-size-base, 13px);line-height:var(--line-height-normal, 1.5);color:var(--text-primary, #111827);background-color:var(--bg-body, #f9fafb);overflow:hidden}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--line-height-tight, 1.2);color:var(--text-primary, #111827)}h1{font-size:var(--font-size-3xl, 24px)}h2{font-size:var(--font-size-2xl, 20px)}h3{font-size:var(--font-size-xl, 18px)}h4{font-size:var(--font-size-lg, 15px)}h5{font-size:var(--font-size-md, 14px)}h6{font-size:var(--font-size-base, 13px)}p{margin-bottom:var(--space-3, 12px)}a{color:var(--color-primary, #0066cc);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-primary-hover, #0052a3);text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}input,select,textarea{border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-md, 6px);padding:var(--space-2, 8px) var(--space-3, 12px);background-color:var(--bg-surface, #ffffff);color:var(--text-primary, #111827);transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary, #0066cc);box-shadow:0 0 0 3px #0066cc1a}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:var(--space-2, 8px) var(--space-3, 12px);border-bottom:1px solid var(--border-color, #e5e7eb)}th{font-weight:600;background-color:var(--bg-hover, #f3f4f6)}ul,ol{padding-left:var(--space-5, 20px)}li{margin-bottom:var(--space-1, 4px)}img{max-width:100%;height:auto;display:block}.text-primary{color:var(--text-primary, #111827)}.text-secondary{color:var(--text-secondary, #374151)}.text-muted{color:var(--text-muted, #6b7280)}.text-success{color:var(--color-success, #16a34a)}.text-warning{color:var(--color-warning, #d97706)}.text-danger{color:var(--color-danger, #dc2626)}.bg-surface{background-color:var(--bg-surface, #ffffff)}.bg-hover{background-color:var(--bg-hover, #f3f4f6)}.hidden{display:none!important}.invisible{visibility:hidden}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1, 4px)}.gap-2{gap:var(--space-2, 8px)}.gap-3{gap:var(--space-3, 12px)}.gap-4{gap:var(--space-4, 16px)}.p-1{padding:var(--space-1, 4px)}.p-2{padding:var(--space-2, 8px)}.p-3{padding:var(--space-3, 12px)}.p-4{padding:var(--space-4, 16px)}.m-1{margin:var(--space-1, 4px)}.m-2{margin:var(--space-2, 8px)}.m-3{margin:var(--space-3, 12px)}.m-4{margin:var(--space-4, 16px)}.rounded{border-radius:var(--radius-md, 6px)}.rounded-lg{border-radius:var(--radius-lg, 10px)}.shadow{box-shadow:var(--shadow-md, 0 4px 6px rgba(0,0,0,.07))}::-webkit-scrollbar-track{background:var(--gray-100, #f3f4f6)}::-webkit-scrollbar-thumb{background:var(--gray-300, #d1d5db);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400, #9ca3af)}.login-page{display:flex;min-height:100vh;width:100%;background-color:var(--bg-surface)}.login-left{flex:0 0 66.666%;position:relative;display:flex;flex-direction:column;min-height:100vh}.login-background{width:100%;height:60vh;background-color:var(--color-primary-dark);background-image:url(/img/background.png);background-size:cover;background-position:left center;background-repeat:no-repeat;position:relative;margin:0;padding:0;animation:loginBgFadeIn .6s ease-out both}@keyframes loginBgFadeIn{0%{opacity:0}to{opacity:1}}.login-services{display:flex;width:100%;height:40vh;gap:24px;padding:40px;background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary-light) 100%);position:relative;overflow:visible;margin:0}.login-services:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 50%,rgba(75,165,219,.1) 0%,transparent 70%);pointer-events:none}.service-card{flex:1;background:#fffffff2;border-radius:16px;padding:32px;position:relative;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s;cursor:pointer;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #094b7e33}.service-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(75,165,219,.1),transparent);transform:rotate(45deg);transition:transform .6s}.service-card:hover:before{transform:rotate(45deg) translate(100%,100%)}.service-card:hover{transform:translateY(-12px) rotateX(5deg) rotateY(-2deg);box-shadow:0 20px 60px #094b7e66}@keyframes float1{0%,to{transform:translateY(0) rotateX(0)}50%{transform:translateY(-8px) rotateX(2deg)}}@keyframes float2{0%,to{transform:translateY(0) rotateX(0)}50%{transform:translateY(-10px) rotateX(-2deg)}}@keyframes float3{0%,to{transform:translateY(0) rotateX(0)}50%{transform:translateY(-8px) rotateX(2deg)}}.network-lines{position:absolute;top:50%;left:0;width:100%;height:2px;pointer-events:none;z-index:1;transform:translateY(-50%)}.network-line{stroke:#4ba5db4d;stroke-width:2;stroke-dasharray:6,4;opacity:0;transition:opacity .4s ease,stroke .4s ease,stroke-width .4s ease;filter:drop-shadow(0 0 3px rgba(75,165,219,.4))}.service-card:hover~.service-card .network-line,.service-card:hover .network-line{opacity:.4}.service-card-1:hover~.service-card-2 .network-line.line-1-2,.service-card-2:hover .network-line.line-1-2{opacity:1;stroke:#4ba5db;stroke-width:3;filter:drop-shadow(0 0 6px rgba(75,165,219,.8))}.service-card-2:hover~.service-card-3 .network-line.line-2-3,.service-card-3:hover .network-line.line-2-3{opacity:1;stroke:#4ba5db;stroke-width:3;filter:drop-shadow(0 0 6px rgba(75,165,219,.8))}.service-card-1:hover~.service-card-3 .network-line.line-1-3,.service-card-3:hover .network-line.line-1-3{opacity:1;stroke:#4ba5db;stroke-width:3;filter:drop-shadow(0 0 6px rgba(75,165,219,.8))}@keyframes dashMove{0%{stroke-dashoffset:0}to{stroke-dashoffset:10}}.service-card:hover .network-line.line-1-2,.service-card:hover .network-line.line-2-3,.service-card:hover .network-line.line-1-3{animation:dashMove 1.5s linear infinite}.service-icon{margin-bottom:20px;display:flex;align-items:center;justify-content:center;height:80px}.icon-3d-canvas{width:80px;height:80px;display:block;cursor:pointer}.service-title{font-size:var(--font-size-xxl);font-weight:700;color:var(--color-primary-dark);margin:0 0 12px;text-transform:uppercase;letter-spacing:1px}.service-description{font-size:var(--font-size-md);color:var(--gray-600);margin:0;line-height:1.6}@keyframes loginSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-form-container{animation:loginSlideUp .5s ease-out .1s both}.service-card-1{animation:loginSlideUp .4s ease-out .05s both,float1 6s ease-in-out .45s infinite}.service-card-2{animation:loginSlideUp .4s ease-out .15s both,float2 6s ease-in-out .55s infinite}.service-card-3{animation:loginSlideUp .4s ease-out .25s both,float3 6s ease-in-out .65s infinite}.login-right{flex:0 0 33.333%;display:flex;align-items:center;justify-content:center;background-color:var(--bg-surface);padding:40px}.login-form-container{width:100%;max-width:400px}.login-header{margin-bottom:32px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.brand-icon-img{width:40px;height:40px;object-fit:contain}.brand-text{font-size:var(--font-size-xxxl);font-weight:600;color:var(--color-primary-dark)}.login-title{font-size:var(--font-size-xxxl);font-weight:600;color:var(--gray-900);margin:0 0 8px;line-height:1.2}.login-subtitle{font-size:var(--font-size-md);color:var(--gray-600);margin:0}.link-primary{color:var(--color-primary-light);text-decoration:none;font-weight:500}.link-primary:hover{color:var(--color-primary-dark);text-decoration:underline}.login-form{margin-bottom:32px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:var(--font-size-md);font-weight:500;color:var(--gray-900);margin-bottom:8px}.form-input{width:100%;padding:12px 16px;font-size:var(--font-size-xl);border:1px solid var(--gray-300);border-radius:6px;background-color:var(--bg-surface);color:var(--gray-600);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-bg)}.form-input::placeholder{color:var(--gray-400)}.company-code-preview{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;background-color:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:6px;font-size:var(--font-size-md)}.preview-label{color:var(--color-success-dark);font-weight:500}.preview-company-name{color:var(--color-success);font-weight:600}.preview-company-name.error{color:var(--color-danger)}.company-code-preview:has(.preview-company-name.error){background-color:var(--color-danger-bg);border-color:var(--color-danger-border)}.company-code-preview:has(.preview-company-name.error) .preview-label{color:var(--color-danger-dark)}.form-options{margin-bottom:24px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:var(--font-size-md);color:var(--gray-900);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary-light)}.btn-login{width:100%;padding:12px 24px;font-size:var(--font-size-xl);font-weight:600;color:var(--bg-surface);background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary-light) 100%);border:none;border-radius:6px;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #094b7e4d}.btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 20px #094b7e66}.btn-login:active{transform:translateY(0)}.btn-login:disabled{background:var(--gray-400);cursor:not-allowed;transform:none;box-shadow:none}.login-error{background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:6px;padding:12px 16px;margin-bottom:20px;color:var(--color-danger-dark);font-size:var(--font-size-md);text-align:center}.login-error.success{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-dark)}.login-footer{margin-top:40px;padding-top:24px;border-top:1px solid var(--gray-200)}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:16px;font-size:var(--font-size-base)}.footer-link{color:var(--gray-600);text-decoration:none}.footer-link:hover{color:var(--color-primary-light);text-decoration:underline}.footer-separator{color:var(--gray-300)}.footer-copyright{text-align:center;font-size:var(--font-size-base);color:var(--gray-400)}.role-selector{display:flex;gap:12px;margin-bottom:20px}.role-option{flex:1;cursor:pointer}.role-option input[type=radio]{display:none}.role-card{display:block;padding:16px;border:2px solid var(--gray-200);border-radius:8px;background:var(--bg-surface);transition:all .2s ease}.role-card strong{display:block;color:var(--gray-900);margin-bottom:4px}.role-card small{display:block;color:var(--gray-600);font-size:var(--font-size-base)}.role-option input[type=radio]:checked+.role-card{border-color:var(--color-primary-light);background:#4ba5db0d}.role-option:hover .role-card{border-color:var(--color-primary-light)}.login-form-scrollable{max-height:calc(100vh - 80px);overflow-y:auto;overflow-x:hidden;padding-right:8px}.login-form-scrollable::-webkit-scrollbar{width:6px}.login-form-scrollable::-webkit-scrollbar-track{background:var(--gray-100);border-radius:3px}.login-form-scrollable::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.login-form-scrollable::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@media(max-width:1024px){.login-left,.login-right{flex:0 0 50%}.login-services{flex-direction:column;gap:16px;padding:24px}.service-card{padding:24px}}@media(max-width:768px){.login-page{flex-direction:column}.login-left{flex:0 0 auto;min-height:50vh}.login-background{min-height:300px}.login-right{flex:1 1 auto;padding:24px}.login-services{flex-direction:column;gap:16px;padding:20px}.service-card{padding:20px}.service-title{font-size:var(--font-size-xl)}.service-description{font-size:var(--font-size-base)}}.register-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid var(--color-border, #e5e7eb);padding-bottom:0}.register-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:14px;color:var(--color-text-secondary, #6b7280);font-weight:500;transition:color .15s,border-color .15s}.register-tab.active{color:var(--color-primary, #094b7e);border-bottom-color:var(--color-primary, #094b7e)}.register-tab:hover:not(.active){color:var(--color-text, #111827)}.register-tab-content{display:none}.register-tab-content.active{display:block}.register-tier-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px;color:#0369a1}.register-tier-info--business{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.register-tier-info p{margin:0 0 8px;font-weight:500}.tier-features{margin:0;padding-left:4px;list-style:none;display:flex;flex-direction:column;gap:2px}.tier-features li{font-size:12px}.register-pending-confirmation{padding:24px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-4, 16px);font-family:var(--font-family-primary);font-size:var(--font-size-md, 14px);font-weight:500;border-radius:var(--radius-md, 6px);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast, .15s ease);min-height:36px;white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none;position:relative;overflow:hidden}.btn-primary{background-color:var(--cde-blue, #1460b8);color:#fff;border-color:var(--cde-blue, #1460b8)}.btn-primary:hover:not(:disabled){background-color:#0e51a0;border-color:#0e51a0}.btn-secondary{background-color:var(--cde-surface, #ffffff);color:var(--cde-text2, #4b5263);border-color:var(--cde-border, #e1e4e8)}.btn-secondary:hover:not(:disabled){background-color:var(--cde-s2, #f7f8fa);border-color:var(--cde-border2, #cdd1d8)}.btn-ghost{background-color:transparent;color:var(--cde-text2, #4b5263);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--cde-s2, #f7f8fa)}.btn-danger{background-color:var(--cde-red, #c0392b);color:#fff;border-color:var(--cde-red, #c0392b)}.btn-danger:hover:not(:disabled){background-color:#a33025;border-color:#a33025}.btn-success{background-color:var(--cde-publish, #157a35);color:#fff;border-color:var(--cde-publish, #157a35)}.btn-success:hover:not(:disabled){background-color:#12662c;border-color:#12662c}.btn-warning{background-color:var(--cde-wip, #b86e00);color:#fff;border-color:var(--cde-wip, #b86e00)}.btn-warning:hover:not(:disabled){background-color:#9a5c00;border-color:#9a5c00}.btn-sm{padding:var(--space-1, 4px) var(--space-3, 12px);font-size:var(--font-size-sm, 12px);min-height:28px;border-radius:var(--radius-sm, 4px)}.btn-md{padding:var(--space-2, 8px) var(--space-4, 16px);font-size:var(--font-size-md, 14px);min-height:36px}.btn-lg{padding:var(--space-3, 12px) var(--space-5, 20px);font-size:var(--font-size-lg, 15px);min-height:44px;border-radius:var(--radius-lg, 8px)}.btn-back{background:transparent;border:none;font-size:18px;cursor:pointer}.btn-back:hover{opacity:.7}.btn:focus{outline:none;box-shadow:0 0 0 3px #1460b826}.btn:disabled,.btn--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn--sm{padding:var(--space-1, 4px) var(--space-3, 12px);font-size:var(--font-size-sm, 12px);min-height:28px;border-radius:var(--radius-sm, 4px)}.btn--md{padding:var(--space-2, 8px) var(--space-4, 16px);font-size:var(--font-size-md, 14px);min-height:36px}.btn--lg{padding:var(--space-3, 12px) var(--space-5, 20px);font-size:var(--font-size-lg, 15px);min-height:44px;border-radius:var(--radius-lg, 8px)}.btn--primary{background-color:var(--cde-blue, #1460b8);color:#fff;border-color:var(--cde-blue, #1460b8)}.btn--primary:hover:not(:disabled){background-color:#0e51a0;border-color:#0e51a0}.btn--primary:active:not(:disabled){background-color:#0a4080}.btn--secondary{background-color:var(--cde-surface, #ffffff);color:var(--cde-text2, #4b5263);border-color:var(--cde-border, #e1e4e8)}.btn--secondary:hover:not(:disabled){background-color:var(--cde-s2, #f7f8fa);border-color:var(--cde-border2, #cdd1d8)}.btn--secondary:active:not(:disabled){background-color:var(--cde-s3, #eef0f3)}.btn--ghost{background-color:transparent;color:var(--cde-text2, #4b5263);border-color:transparent}.btn--ghost:hover:not(:disabled){background-color:var(--cde-s2, #f7f8fa)}.btn--ghost:active:not(:disabled){background-color:var(--cde-s3, #eef0f3)}.btn--danger{background-color:var(--cde-red, #c0392b);color:#fff;border-color:var(--cde-red, #c0392b)}.btn--danger:hover:not(:disabled){background-color:#a33025;border-color:#a33025}.btn--danger:active:not(:disabled){background-color:#8a2820}.btn--success{background-color:var(--cde-publish, #157a35);color:#fff;border-color:var(--cde-publish, #157a35)}.btn--success:hover:not(:disabled){background-color:#12662c;border-color:#12662c}.btn--warning{background-color:var(--cde-wip, #b86e00);color:#fff;border-color:var(--cde-wip, #b86e00)}.btn--warning:hover:not(:disabled){background-color:#9a5c00;border-color:#9a5c00}.btn--link{background-color:transparent;color:var(--cde-blue, #1460b8);border-color:transparent;padding-left:0;padding-right:0;min-height:auto}.btn--link:hover:not(:disabled){color:#0e51a0;text-decoration:underline}.btn--round{border-radius:var(--radius-full, 9999px)}.btn--square{border-radius:0}.btn--full{width:100%}.btn--loading{pointer-events:none}.btn__spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.btn__loading-text{opacity:.7}.btn__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn__icon--svg svg{width:18px;height:18px}.btn--sm .btn__icon--svg svg{width:14px;height:14px}.btn--lg .btn__icon--svg svg{width:22px;height:22px}.btn-group{display:inline-flex;gap:0;border-radius:var(--radius-md, 6px);overflow:hidden}.btn-group .btn{border-radius:0;margin:0}.btn-group .btn:first-child{border-radius:var(--radius-md, 6px) 0 0 var(--radius-md, 6px)}.btn-group .btn:last-child{border-radius:0 var(--radius-md, 6px) var(--radius-md, 6px) 0}.btn-icon{padding:var(--space-2, 8px);min-width:36px}.input-wrapper{display:inline-flex;flex-direction:column;gap:var(--space-1, 4px);font-family:var(--font-family-primary)}.input-wrapper--full{width:100%}.input-label{font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--cde-text2, #4b5263)}.input-required{color:var(--cde-red, #c0392b);margin-left:2px}.input-container{display:flex;align-items:center;gap:var(--space-2, 8px);background:var(--cde-surface, #ffffff);border:1px solid var(--cde-border, #e1e4e8);border-radius:var(--radius-md, 6px);padding:0 var(--space-3, 12px);transition:all var(--transition-fast, .15s ease)}.input-container:focus-within{border-color:var(--cde-blue, #1460b8);box-shadow:0 0 0 3px #1460b81a}.input-wrapper--sm .input-container{padding:0 var(--space-2, 8px);border-radius:var(--radius-sm, 4px)}.input-wrapper--sm .input-field{height:28px;font-size:var(--font-size-sm, 12px)}.input-wrapper--md .input-field{height:36px;font-size:var(--font-size-md, 14px)}.input-wrapper--lg .input-container{padding:0 var(--space-4, 16px);border-radius:var(--radius-lg, 8px)}.input-wrapper--lg .input-field{height:44px;font-size:var(--font-size-lg, 15px)}.input-field{flex:1;border:none;outline:none;background:transparent;font-family:inherit;color:var(--cde-text, #24292e);min-width:0}.input-field::placeholder{color:var(--cde-muted, #8c94a3)}.input-field:disabled{cursor:not-allowed;opacity:.6}.input-wrapper--error .input-container{border-color:var(--cde-red, #c0392b)}.input-wrapper--error .input-container:focus-within{box-shadow:0 0 0 3px #c0392b1a}.input-wrapper--success .input-container{border-color:var(--cde-publish, #157a35)}.input-wrapper--success .input-container:focus-within{box-shadow:0 0 0 3px #157a351a}.input-wrapper--disabled .input-container{background:var(--cde-s2, #f7f8fa);cursor:not-allowed}.input-icon{display:flex;align-items:center;justify-content:center;color:var(--cde-muted, #8c94a3);flex-shrink:0}.input-wrapper--icon-left .input-icon{order:0}.input-wrapper--icon-left .input-field{order:1}.input-wrapper--icon-right .input-icon{order:2}.input-wrapper--icon-right .input-field{order:1}.input-prefix,.input-suffix{font-size:var(--font-size-sm, 13px);color:var(--cde-muted, #8c94a3);white-space:nowrap;flex-shrink:0}.input-helper{font-size:var(--font-size-xs, 11px);color:var(--cde-muted, #8c94a3);padding-left:var(--space-1, 4px)}.input-helper--error{color:var(--cde-red, #c0392b)}.input-helper--success{color:var(--cde-publish, #157a35)}.textarea-wrapper .input-container{padding:var(--space-2, 8px) var(--space-3, 12px);align-items:flex-start}.textarea-field{resize:vertical;min-height:60px;line-height:1.5}.textarea-field--noresize{resize:none}.select-wrapper .input-container{padding-right:var(--space-5, 20px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238c94a3' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.select-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:transparent}.select-field:focus{outline:none}.form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;display:inline-block;width:100%;padding:var(--select-padding-y, 6px) var(--spacing-xl, 18px) var(--select-padding-y, 6px) var(--select-padding-x, 10px);font-family:var(--font-family-primary);font-size:var(--select-font-size, 13px);line-height:var(--select-line-height, 1.4);color:var(--select-text-color, #1f2937);background-color:var(--select-bg-color, #ffffff);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:14px;border:1px solid var(--select-border-color, #e1e4e8);border-radius:var(--select-border-radius, 6px);cursor:pointer;transition:var(--select-transition);min-width:var(--select-min-width, 100px);box-sizing:border-box}.form-select:hover{border-color:var(--select-hover-border, #60a5fa)}.form-select:focus{outline:none;border-color:var(--select-focus-border, #1460b8);box-shadow:0 0 0 3px var(--select-focus-shadow, rgba(20, 96, 184, .15))}.form-select:disabled{background-color:var(--gray-100, #f3f4f6);color:var(--text-muted, #6b7280);cursor:not-allowed;opacity:.7}.form-select-sm{padding:var(--select-padding-y-sm, 4px) var(--spacing-lg, 14px) var(--select-padding-y-sm, 4px) var(--select-padding-x-sm, 8px);font-size:var(--select-font-size-sm, 12px);min-width:var(--select-min-width-sm, 80px);background-position:right 6px center;background-size:12px;border-radius:var(--select-border-radius-sm, 4px)}.form-select-lg{padding:8px 36px 8px 14px;font-size:var(--font-size-md, 14px);min-width:120px;background-position:right 12px center;background-size:16px}.form-select--no-arrow{background-image:none;padding-right:var(--select-padding-x, 10px)}.form-select option{padding:8px 12px;background-color:var(--bg-surface, #ffffff);color:var(--text-primary, #1f2937);font-family:var(--font-family-primary);font-size:var(--select-font-size, 13px)}.form-select option:hover,.form-select option:focus{background-color:var(--cde-blue-bg, #eef5ff);color:var(--cde-blue, #1460b8)}.form-select option:checked,.form-select option[selected]{background-color:var(--cde-blue, #1460b8);color:#fff}.checkbox,.radio{width:16px;height:16px;accent-color:var(--cde-blue, #1460b8);cursor:pointer}.card{background-color:var(--cde-surface, #ffffff);border:1px solid var(--cde-border, #e1e4e8);border-radius:var(--radius-lg, 10px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0,0,0,.05))}.card-header{padding:var(--space-4, 16px);border-bottom:1px solid var(--cde-border, #e1e4e8);font-weight:600}.card-body{padding:var(--space-4, 16px)}.card-footer{padding:var(--space-4, 16px);border-top:1px solid var(--cde-border, #e1e4e8);background-color:var(--cde-s2, #f7f8fa)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-md, 14px)}.table th,.table td{padding:var(--space-2, 8px) var(--space-3, 12px);text-align:left;border-bottom:1px solid var(--gray-200, #e5e7eb)}.table th{font-weight:600;background-color:var(--bg-hover, #f3f4f6);color:var(--text-secondary, #374151)}.table tbody tr:hover{background-color:var(--bg-hover, #f3f4f6)}.table-striped tbody tr:nth-child(2n){background-color:var(--gray-50, #f9fafb)}.table-bordered th,.table-bordered td{border:1px solid var(--gray-200, #e5e7eb)}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-xs, 10px);font-weight:500;border-radius:var(--radius-full, 9999px);text-transform:uppercase}.badge-primary{background-color:var(--blue-100, #dbeafe);color:var(--blue-800, #1e40af)}.badge-success{background-color:var(--color-success-bg, #eefaf3);color:var(--color-success, #16a34a)}.badge-warning{background-color:var(--color-warning-bg, #fffbeb);color:var(--color-warning, #d97706)}.badge-danger{background-color:var(--color-danger-bg, #fef2f2);color:var(--color-danger, #dc2626)}.alert{padding:var(--space-3, 12px) var(--space-4, 16px);border-radius:var(--radius-md, 6px);border:1px solid transparent;font-size:var(--font-size-md, 14px)}.alert-success{background-color:var(--color-success-bg, #eefaf3);border-color:var(--color-success-border, #86efac);color:#166534}.alert-warning{background-color:var(--color-warning-bg, #fffbeb);border-color:var(--color-warning-border, #fcd34d);color:#92400e}.alert-danger{background-color:var(--color-danger-bg, #fef2f2);border-color:var(--color-danger-border, #fca5a5);color:#991b1b}.alert-info{background-color:var(--color-info-bg, #f0f9ff);border-color:var(--color-info-border, #7dd3fc);color:#075985}.tabs{display:flex;border-bottom:1px solid var(--gray-200, #e5e7eb)}.tab{padding:var(--space-3, 12px) var(--space-4, 16px);font-size:var(--font-size-md, 14px);font-weight:500;color:var(--text-muted, #6b7280);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.tab:hover{color:var(--text-primary, #111827)}.tab.active{color:var(--color-primary, #0066cc);border-bottom-color:var(--color-primary, #0066cc)}.pagination{display:flex;gap:var(--space-1, 4px);align-items:center}.pagination-item{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0 var(--space-2, 8px);font-size:var(--font-size-sm, 11px);border:1px solid var(--gray-300, #d1d5db);border-radius:var(--radius-md, 6px);background-color:var(--bg-surface, #ffffff);color:var(--text-secondary, #374151);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pagination-item:hover:not(:disabled){background-color:var(--bg-hover, #f3f4f6);border-color:var(--gray-400, #9ca3af)}.pagination-item.active{background-color:var(--color-primary, #0066cc);border-color:var(--color-primary, #0066cc);color:#fff}.spinner{width:20px;height:20px;border:2px solid var(--gray-200, #e5e7eb);border-top-color:var(--color-primary, #0066cc);border-radius:50%;animation:spin .8s linear infinite}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:var(--space-1, 4px) var(--space-2, 8px);font-size:var(--font-size-xs, 10px);white-space:nowrap;background-color:var(--gray-800, #1f2937);color:#fff;border-radius:var(--radius-sm, 4px);opacity:0;visibility:hidden;transition:all var(--transition-fast, .15s ease);z-index:var(--z-tooltip, 10002)}.tooltip:hover:after{opacity:1;visibility:visible}.data-table{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--cde-surface, #ffffff)}.data-table__wrapper{flex:1;overflow:auto;position:relative}.data-table__table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table__thead{position:sticky;top:0;z-index:20;background:var(--cde-s2, #f7f8fa)}.data-table__thead .data-table__header-row{border-bottom:2px solid var(--cde-border2, #cdd1d8)}.data-table__th{padding:0;font-size:var(--font-size-sm, 12px);font-weight:700;color:var(--cde-text2, #4b5263);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;background:transparent}.data-table__th--checkbox{width:40px;text-align:center}.data-table__th-inner{display:flex;align-items:center;gap:4px;padding:10px 12px;cursor:pointer;transition:background .1s ease;height:40px}.data-table__th-inner:hover{background:var(--cde-s3, #eef0f3)}.data-table__th-inner--left{justify-content:flex-start}.data-table__th-inner--center{justify-content:center}.data-table__th-inner--right{justify-content:flex-end}.data-table__th-label{flex:1;overflow:hidden;text-overflow:ellipsis}.data-table__sort-icon{opacity:.3;font-size:var(--font-size-xs, 11px);width:16px;text-align:center;transition:opacity .15s ease}.data-table__th[data-sortable=true] .data-table__sort-icon{opacity:.5}.data-table__th[data-sortable=true]:hover .data-table__sort-icon{opacity:.8}.data-table__th.sorted .data-table__sort-icon{opacity:1;color:var(--cde-blue, #1460b8)}.data-table__sort-icon--asc:after{content:"↑"}.data-table__sort-icon--desc:after{content:"↓"}.data-table__resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .15s ease}.data-table__resize-handle:hover,.data-table__resize-handle.active{background:var(--cde-blue, #1460b8)}.data-table__tbody{background:var(--cde-surface, #ffffff)}.data-table__row{border-bottom:1px solid var(--cde-border, #e1e4e8);transition:background .08s ease;cursor:pointer}.data-table__row:hover{background:var(--cde-s2, #f7f8fa)}.data-table__row--selected{background:#eef5ff}.data-table__row--selected:hover{background:#e0ebff}.data-table__zone-row{background:var(--cde-s2, #f7f8fa);cursor:default;border-bottom:2px solid var(--cde-border2, #cdd1d8)}.data-table__zone-row td{padding:8px 16px;font-weight:700;font-size:var(--font-size-xs, 11px);letter-spacing:.04em;text-transform:uppercase;color:var(--cde-text2, #4b5263)}.data-table__zone-label{margin-right:8px}.data-table__zone-count{font-family:var(--font-family-mono);opacity:.7}.data-table__td{padding:0;vertical-align:middle;overflow:hidden}.data-table__td--checkbox{width:40px;text-align:center}.data-table__td-inner{padding:8px 12px;display:flex;align-items:center;gap:6px;height:40px;overflow:hidden}.data-table__td-inner--left{justify-content:flex-start}.data-table__td-inner--center{justify-content:center}.data-table__td-inner--right{justify-content:flex-end}.data-table__checkbox{width:14px;height:14px;cursor:pointer;accent-color:var(--cde-blue, #1460b8)}.data-table__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--cde-muted, #8c94a3);font-size:var(--font-size-md, 14px)}.data-table__loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--cde-muted, #8c94a3)}.data-table__spinner{width:24px;height:24px;border:2px solid var(--cde-border, #e1e4e8);border-top-color:var(--cde-blue, #1460b8);border-radius:50%;animation:spin .8s linear infinite}.cde-zone-pill{font-family:var(--font-family-mono);font-size:var(--font-size-xs, 11px);font-weight:700;letter-spacing:.05em;padding:3px 9px;border-radius:4px;color:#fff;flex-shrink:0}.cde-zone-pill--wip{background:var(--cde-wip, #b86e00)}.cde-zone-pill--shared{background:var(--cde-shared, #1460b8)}.cde-zone-pill--publish{background:var(--cde-publish, #157a35)}.cde-zone-pill--archive{background:var(--cde-archive, #6530b0)}.cde-chip{font-family:var(--font-family-mono);font-size:var(--font-size-xs, 11px);font-weight:700;padding:2px 7px;border-radius:4px;border:1px solid transparent;white-space:nowrap;flex-shrink:0}.cde-chip--s0{background:#f4f4f4;border-color:#ccc;color:#888}.cde-chip--s1{background:var(--cde-shared-bg, #eef5ff);border-color:var(--cde-shared-border, #a8c8f8);color:var(--cde-shared, #1460b8)}.cde-chip--s2{background:#e8f2ff;border-color:#99c0f0;color:#1460b8}.cde-chip--s3{background:#deeeff;border-color:#88b8f0;color:#0e4fa0}.cde-chip--s4{background:#fff0ee;border-color:#f0b0a8;color:var(--cde-red, #c0392b)}.cde-chip--a1{background:var(--cde-publish-bg, #eefaf3);border-color:var(--cde-publish-border, #7ecfa0);color:var(--cde-publish, #157a35)}.cde-chip--b1{background:var(--cde-wip-bg, #fff8ec);border-color:var(--cde-wip-border, #f5d080);color:var(--cde-wip, #b86e00)}.cde-chip--none{display:none}.cde-review{font-size:var(--font-size-xs, 11px);padding:2px 8px;border-radius:3px;border:1px solid;white-space:nowrap}.cde-review--none{color:var(--cde-muted2, #c4c9d4);border-color:var(--cde-muted2, #c4c9d4);background:transparent}.cde-review--approved{color:var(--cde-publish, #157a35);border-color:var(--cde-publish-border, #7ecfa0);background:var(--cde-publish-bg, #eefaf3)}.cde-review--pending{color:var(--cde-wip, #b86e00);border-color:var(--cde-wip-border, #f5d080);background:var(--cde-wip-bg, #fff8ec)}.cde-review--rejected{color:var(--cde-red, #c0392b);border-color:#f0b0a8;background:#fff0ee}.cde-perm{font-family:var(--font-family-mono);font-size:var(--font-size-xs, 11px);font-weight:700;padding:2px 7px;border-radius:3px;border:1px solid transparent}.cde-perm--full{background:#e8faf0;border-color:#7ecfa0;color:var(--cde-publish, #157a35)}.cde-perm--edit{background:var(--cde-shared-bg, #eef5ff);border-color:var(--cde-shared-border, #a8c8f8);color:var(--cde-shared, #1460b8)}.cde-perm--view{background:var(--cde-s2, #f7f8fa);border-color:var(--cde-border2, #cdd1d8);color:var(--cde-text2, #4b5263)}.cde-perm--approve{background:var(--cde-wip-bg, #fff8ec);border-color:var(--cde-wip-border, #f5d080);color:var(--cde-wip, #b86e00)}.cde-perm--none{background:#fff0ee;border-color:#f0b0a8;color:var(--cde-red, #c0392b)}.cde-perm--upload{background:var(--cde-archive-bg, #f4eeff);border-color:var(--cde-archive-border, #c0a0e8);color:var(--cde-archive, #6530b0)}.cde-version-dot{width:26px;height:26px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-family:var(--font-family-mono);font-size:var(--font-size-xs, 11px);font-weight:700}.cde-version-dot--past{border-color:var(--cde-border2, #cdd1d8);color:var(--cde-muted, #8c94a3);background:var(--cde-s2, #f7f8fa)}.cde-version-dot--current{border-color:var(--cde-shared, #1460b8);color:var(--cde-shared, #1460b8);background:var(--cde-shared-bg, #eef5ff)}.cde-version-dot--final{border-color:var(--cde-publish, #157a35);color:var(--cde-publish, #157a35);background:var(--cde-publish-bg, #eefaf3)}.section{display:none;height:100%;overflow:hidden}.section-tabs{display:flex;gap:var(--space-1, 4px);padding:var(--space-3, 12px) var(--space-4, 16px);background:var(--bg-surface, #ffffff);border-bottom:1px solid var(--cde-border, #e1e4e8)}.section-tab{display:inline-flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-4, 16px);font-family:var(--font-family-primary);font-size:var(--font-size-md, 14px);font-weight:500;color:var(--cde-text2, #4b5263);background:transparent;border:none;border-radius:var(--radius-md, 6px);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.section-tab:hover{background:var(--cde-s2, #f7f8fa);color:var(--cde-text1, #24272e)}.section-tab.active{background:var(--cde-blue, #1460b8);color:#fff}.section-tab-icon{display:flex;align-items:center;justify-content:center}.section-tab-icon svg{width:16px;height:16px}.section-filters{display:flex;align-items:center;gap:var(--space-3, 12px);padding:var(--space-3, 12px) var(--space-4, 16px);background:var(--bg-surface, #ffffff);border-bottom:1px solid var(--cde-border, #e1e4e8);flex-wrap:wrap}.section-search{position:relative;display:flex;align-items:center;min-width:280px}.section-search-icon{position:absolute;left:var(--space-3, 12px);color:var(--cde-muted, #8c94a3);pointer-events:none}.section-search-icon svg{width:16px;height:16px}.section-search-input{width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);padding-left:36px;font-family:var(--font-family-primary);font-size:var(--font-size-md, 14px);color:var(--cde-text1, #24272e);background:var(--bg-surface, #ffffff);border:1px solid var(--cde-border, #e1e4e8);border-radius:var(--radius-md, 6px);outline:none;transition:border-color var(--transition-fast, .15s ease)}.section-search-input:focus{border-color:var(--cde-blue, #1460b8);box-shadow:0 0 0 3px #1460b81a}.section-search-input::placeholder{color:var(--cde-muted, #8c94a3)}.section-filter-buttons{display:flex;gap:var(--space-2, 8px)}.section-filter-btn{padding:var(--space-2, 8px) var(--space-3, 12px);font-family:var(--font-family-primary);font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--cde-text2, #4b5263);background:var(--cde-s2, #f7f8fa);border:1px solid var(--cde-border2, #cdd1d8);border-radius:var(--radius-sm, 4px);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.section-filter-btn:hover{background:var(--cde-s3, #edeef1)}.section-filter-btn.active{background:var(--cde-blue, #1460b8);color:#fff;border-color:var(--cde-blue, #1460b8)}.section-actions{display:flex;gap:var(--space-2, 8px);margin-left:auto}.section-action-btn{display:inline-flex;align-items:center;gap:var(--space-2, 8px)}.section-action-icon{display:flex;align-items:center}.section-action-icon svg{width:14px;height:14px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4, 16px);padding:var(--space-4, 16px);background:var(--bg-surface, #ffffff)}.summary-card{display:flex;flex-direction:column;padding:var(--space-4, 16px);background:var(--bg-surface, #ffffff);border:1px solid var(--cde-border, #e1e4e8);border-radius:var(--radius-lg, 8px);transition:box-shadow var(--transition-fast, .15s ease)}.summary-card:hover{box-shadow:0 2px 8px #00000014}.summary-card--success .summary-card-value{color:var(--cde-publish, #157a35)}.summary-card--warning .summary-card-value{color:var(--cde-wip, #b86e00)}.summary-card--danger .summary-card-value{color:var(--cde-red, #c0392b)}.summary-card--info .summary-card-value{color:var(--cde-blue, #1460b8)}.summary-card-title{font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--cde-text2, #4b5263);margin-bottom:var(--space-2, 8px)}.summary-card-value{font-size:var(--font-size-2xl, 24px);font-weight:700;color:var(--cde-text1, #24272e);line-height:1.2}.summary-card-subtitle{font-size:var(--font-size-xs, 11px);color:var(--cde-muted, #8c94a3);margin-top:var(--space-1, 4px)}.section-content{flex:1;overflow:auto;padding:var(--space-4, 16px)}.section-content--table{padding:0}.section-content--split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4, 16px)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5, 32px);text-align:center;min-height:200px}.empty-state-icon{margin-bottom:var(--space-4, 16px);color:var(--cde-muted, #8c94a3)}.empty-state-icon svg{width:48px;height:48px}.empty-state-title{font-size:var(--font-size-lg, 16px);font-weight:600;color:var(--cde-text1, #24272e);margin-bottom:var(--space-2, 8px)}.empty-state-description{font-size:var(--font-size-md, 14px);color:var(--cde-text2, #4b5263);margin-bottom:var(--space-4, 16px)}.empty-state-action{margin-top:var(--space-2, 8px)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5, 32px);min-height:150px}.spinner{width:32px;height:32px;border:3px solid var(--cde-border2, #cdd1d8);border-top-color:var(--cde-blue, #1460b8);border-radius:50%;animation:spin .8s linear infinite}.loading-message{margin-top:var(--space-3, 12px);font-size:var(--font-size-md, 14px);color:var(--cde-text2, #4b5263)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-light);display:flex;flex-direction:column;overflow:hidden}.menu-bar{background:#ffffffa6;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid rgba(0,0,0,.06);display:flex;height:32px;align-items:center;padding:0 var(--spacing-md);gap:var(--spacing-sm);box-shadow:0 4px 12px #0000000f;position:sticky;top:0;z-index:20000}.menu-item-container{position:relative}.menu-button{background:#ffffff80;border:1px solid rgba(0,0,0,.06);padding:6px 10px;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;border-radius:8px;transition:background .2s ease,box-shadow .2s ease,transform .15s ease;white-space:nowrap}.menu-button:hover{background:#fffc;box-shadow:0 6px 12px #0000000f;transform:translateY(-1px)}.menu-button:hover{background-color:var(--primary-blue-lightest);color:var(--primary-blue)}.menu-dropdown{position:absolute;top:100%;left:0;background-color:var(--bg-white);border:1px solid #d0d0d0;border-radius:4px;min-width:160px;box-shadow:0 2px 8px #00000026;display:none;z-index:100002;margin-top:4px}.menu-dropdown.open{display:block}.menu-option{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-sm);transition:background-color .15s;color:var(--text-primary)}.menu-option:hover{background-color:var(--primary-blue-lightest);color:var(--primary-blue)}.menu-icon{font-size:var(--font-size-md);display:flex;align-items:center;justify-content:center;width:16px;height:16px}.menu-icon svg{width:100%;height:100%}.menu-label{flex:1}.menu-separator{height:1px;background-color:#e0e0e0;margin:var(--spacing-xs) 0}.toolbar{background:#fff9;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid rgba(0,0,0,.06);display:flex;height:64px;align-items:center;padding:6px 12px;gap:12px;box-shadow:0 6px 16px #0000000f;overflow-x:auto;z-index:1000}.toolbar-button-container{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:transform .15s ease,background .2s ease,box-shadow .2s ease;padding:6px 8px;border-radius:10px;background:#ffffff80;border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 8px #0000000f}.toolbar-button-container:hover{transform:translateY(-1px);background:#ffffffb3;box-shadow:0 6px 12px #00000014}.toolbar-button-container.active{background:#1e5a9614;border:1px solid rgba(30,90,150,.25)}.toolbar-button{background:none;border:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);cursor:pointer;transition:all .15s}.toolbar-button:hover{transform:scale(1.05)}.toolbar-icon{font-size:var(--font-size-xxl);line-height:1;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.toolbar-icon svg{width:100%;height:100%}.toolbar-label{font-size:var(--font-size-xs);color:var(--text-primary);text-align:center;white-space:nowrap;max-width:48px;overflow:hidden;text-overflow:ellipsis;line-height:1.2}#container{display:flex;flex:1;overflow:hidden;gap:0;position:relative}#controls{flex:0 0 280px;width:280px;background-color:var(--bg-white);border-right:1px solid #d0d0d0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;box-shadow:1px 0 3px #0000000d;transition:flex-basis .25s ease,width .25s ease;will-change:flex-basis,width}#controls.collapsed{flex-basis:0!important;width:0!important;min-width:0!important;border-right:none;overflow:hidden}#controls h1{font-size:var(--font-size-base);margin:var(--spacing-md) var(--spacing-md) var(--spacing-sm) var(--spacing-md);color:var(--primary-blue);font-weight:600}#controls p{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 var(--spacing-md) var(--spacing-md) var(--spacing-md);line-height:1.4}#file-input{margin:var(--spacing-md);font-size:var(--font-size-sm);padding:8px 12px;border:1px solid rgba(0,0,0,.06);border-radius:10px;cursor:pointer;background:#ffffffa6;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);color:var(--text-primary);box-shadow:0 4px 12px #0000000f;transition:box-shadow .2s ease,transform .15s ease,background .2s ease}#file-input:hover{transform:translateY(-1px);background:#fffc;box-shadow:0 8px 20px #00000014}#file-input::file-selector-button{padding:6px 10px;border:none;margin-right:10px;border-radius:8px;background:var(--primary-blue);color:#fff;cursor:pointer}#file-input::-webkit-file-upload-button{padding:6px 10px;border:none;margin-right:10px;border-radius:8px;background:var(--primary-blue);color:#fff;cursor:pointer}#file-explorer-container{flex:1;overflow-y:auto;padding:var(--spacing-md);border-top:1px solid #e0e0e0}#file-explorer-container h2{font-size:var(--font-size-md);margin:0 0 var(--spacing-md) 0;color:var(--primary-blue);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-blue-lightest)}#file-explorer-output{max-height:100%;overflow-y:auto}.spatial-tree{width:100%;min-width:max-content;font-size:var(--font-size-sm)}.tree-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none;border-radius:3px;margin:2px 0;width:100%;min-width:max-content;box-sizing:border-box}.panel-body.scrollable,.viewer-left-3d .panel-body.scrollable,.bim-view-left-file-explorer .panel-body{overflow-x:auto;overflow-y:auto}.viewer-left-3d,.bim-view-left-file-explorer{overflow-x:auto;overflow-y:hidden;min-width:0}.tree-folder-item{font-weight:500;background-color:var(--bg-light);border:1px solid #e0e0e0}.tree-folder-item:hover,.tree-folder-item.expanded{background-color:var(--primary-blue-lightest);border-color:var(--primary-blue-lighter)}.tree-leaf-item{background-color:var(--bg-white);border:1px solid #e0e0e0}.tree-leaf-item:hover{background-color:#f9f9f9;border-color:var(--primary-blue-lighter)}.tree-leaf-item.selected{background-color:var(--primary-blue-lightest);border-color:var(--primary-blue-lighter);box-shadow:inset 0 0 3px #1e5a9633}.tree-toggle{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:16px;height:16px;transition:transform .15s;color:var(--primary-blue);flex-shrink:0}.tree-toggle.open{transform:rotate(90deg)}.tree-toggle-spacer{width:16px;height:16px;flex-shrink:0}.tree-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.tree-content{flex:1;display:flex;align-items:center;gap:var(--spacing-xs);min-width:max-content}.tree-name{color:var(--text-primary);font-weight:400;white-space:nowrap}.tree-folder-item .tree-name{font-weight:500}.tree-count,.tree-type{color:var(--text-light);font-size:var(--font-size-xs);white-space:nowrap}.tree-checkbox{display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:var(--font-size-sm);flex-shrink:0}.tree-checkbox svg{width:100%;height:100%}.tree-children{display:none}.tree-children[style*=block]{display:block}.file-explorer-tree-container{width:100%}.file-explorer-tree,.file-explorer-tree ul{list-style-type:none;padding:0;margin:0}.file-explorer-tree li{margin:0}.item-checkbox{font-size:var(--font-size-sm);min-width:14px;text-align:center;display:flex;align-items:center;justify-content:center}.item-checkbox svg{width:14px;height:14px}.item-icon{font-size:var(--font-size-md);display:flex;align-items:center;justify-content:center;width:14px;height:14px}.item-icon svg{width:100%;height:100%}.item-name{flex:1;color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-type{color:var(--text-light);font-size:var(--font-size-xs);white-space:nowrap}#viewer-container{flex:1 1 auto;background-color:#e8e8e8;min-width:0}canvas{display:block;width:100%;height:100%}#properties-container{flex:0 0 320px;width:320px;background-color:var(--bg-white);border-left:1px solid #d0d0d0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;box-shadow:-1px 0 3px #0000000d;transition:flex-basis .25s ease,width .25s ease;will-change:flex-basis,width}#properties-container.collapsed{flex-basis:0!important;width:0!important;min-width:0!important;border-left:none;overflow:hidden}#properties-container h2{font-size:var(--font-size-base);margin:var(--spacing-md) var(--spacing-md) var(--spacing-sm) var(--spacing-md);color:var(--primary-blue);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-blue-lightest)}#properties-output{flex:1;overflow-y:hidden;padding:var(--spacing-md);display:flex;flex-direction:column}.property-detail-container{width:100%;overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column}.property-detail-header{border-bottom:2px solid var(--primary-blue-lightest);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md)}.property-detail-type{font-size:var(--font-size-base);color:var(--primary-blue);font-weight:600;margin-bottom:var(--spacing-xs)}.property-detail-name{font-size:var(--font-size-base);color:var(--text-primary);font-weight:500}.property-detail-list{flex:1;overflow-y:auto;min-height:0}.collapsible-section{margin-bottom:var(--spacing-sm);border:1px solid #e0e0e0;border-radius:3px;overflow:hidden;background-color:var(--bg-white)}.collapsible-header{background-color:var(--bg-light);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-weight:500;color:var(--text-primary);display:flex;align-items:center;-webkit-user-select:none;user-select:none;transition:background-color .15s;font-size:var(--font-size-base)}.collapsible-header:hover{background-color:#efefef}.collapsible-toggle{display:inline-block;margin-right:var(--spacing-sm);font-size:var(--font-size-xs);transition:transform .15s;min-width:12px}.collapsible-title{flex:1}.collapsible-body{max-height:2000px;overflow-y:auto;background-color:var(--bg-white);transition:max-height .3s ease-out}.property-section{margin-bottom:var(--spacing-sm);border:1px solid #e0e0e0;border-radius:3px;overflow:hidden;background-color:var(--bg-white)}.property-section-header{background-color:var(--bg-light);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-weight:500;color:var(--text-primary);display:flex;align-items:center;-webkit-user-select:none;user-select:none;transition:background-color .15s;font-size:var(--font-size-base)}.property-section-header:hover{background-color:#efefef}.section-toggle{display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-sm);font-size:var(--font-size-xs);transition:transform .15s;min-width:12px;width:12px;height:12px}.section-toggle svg{width:100%;height:100%}.section-name{flex:1}.empty-indicator{color:var(--text-light);font-size:var(--font-size-xs);font-weight:400;margin-left:var(--spacing-sm)}.property-section-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out;background-color:var(--bg-white)}.property-section-content.open{max-height:2000px;overflow-y:auto}.property-item-row{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid #f0f0f0;font-size:var(--font-size-xs);display:flex;flex-direction:column;gap:var(--spacing-xs)}.property-item-row:last-child{border-bottom:none}.property-item-row strong{color:var(--text-primary);font-weight:600;font-size:var(--font-size-base)}.property-value-text{color:var(--text-secondary);word-break:break-word;white-space:pre-wrap;font-family:Courier New,Monaco,monospace;font-size:var(--font-size-xs);background-color:var(--bg-light);padding:var(--spacing-xs) var(--spacing-sm);border-radius:2px;display:block;line-height:1.4}.empty-row{padding:var(--spacing-md)!important;text-align:center}.empty-text{color:var(--text-light);font-style:italic;font-size:var(--font-size-xs)}.no-data{color:var(--text-light);font-size:var(--font-size-xs);text-align:center;padding:var(--spacing-lg)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:silver;border-radius:4px;transition:background-color .15s}::-webkit-scrollbar-thumb:hover{background-color:var(--primary-blue-lighter)}.panel-toggle-button{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid rgba(0,0,0,.06);background:#ffffffb3;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);box-shadow:0 6px 16px #0000000f;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1200;transition:transform .15s ease,background .2s ease,box-shadow .2s ease;padding:0}.panel-toggle-button:hover{transform:translateY(-50%) scale(1.05);background:#ffffffd9;box-shadow:0 10px 24px #00000014}.panel-toggle-left{left:0}.panel-toggle-right{right:0}.panel-toggle-button svg{width:18px;height:18px}@media(max-width:1200px){#controls{width:240px}#properties-container{width:280px}}@media(max-width:768px){#controls,#properties-container{width:200px}.toolbar{height:60px}}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}#file-explorer-output{background:var(--bg-surface);font-family:var(--font-family-primary);font-size:var(--font-size-xs);display:flex;flex-direction:column;height:100%;overflow:hidden}.ift-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.ift-controls{flex-shrink:0;padding:8px 10px 6px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;background:var(--bg-surface)}.ift-search{display:block;width:100%;box-sizing:border-box;height:28px;padding:0 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-surface);color:var(--text-color);font-size:var(--font-size-xs);font-family:var(--font-family-primary);outline:none}.ift-search:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #0066cc1f}.ift-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ift-filter-group{display:flex;flex-direction:column;gap:2px}.ift-filter-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted, #6b7280);line-height:1.2}.ift-select{height:26px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-surface);color:var(--text-color);font-size:var(--font-size-xs);font-family:var(--font-family-primary);padding:0 4px;outline:none;cursor:pointer}.ift-select:focus{border-color:var(--color-primary)}.ift-reset-btn{height:24px;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-muted, #6b7280);font-size:var(--font-size-xs);font-family:var(--font-family-primary);font-weight:500;cursor:pointer}.ift-reset-btn:hover{background:var(--bg-hover);color:var(--text-color)}.ift-loading{display:flex;align-items:center;justify-content:center;padding:24px;color:var(--text-muted, #9ca3af)}.ift-loading-text{font-size:var(--font-size-xs)}.ift-tree{flex:1;overflow-y:auto;overflow-x:auto;min-height:0;padding:4px 0}.ift-row{display:flex;align-items:center;gap:4px;min-height:24px;padding-top:1px;padding-bottom:1px;padding-right:8px;cursor:pointer;-webkit-user-select:none;user-select:none;border-left:2px solid transparent;white-space:nowrap}.ift-row:hover{background:#0066cc0d}.ift-row--selected{background:#0066cc14!important;border-left-color:var(--color-primary, #0066cc)!important}.ift-caret{flex-shrink:0;width:14px;font-size:10px;color:var(--text-muted, #9ca3af);line-height:1;display:inline-flex;align-items:center;justify-content:center}.ift-label{flex:1;font-size:var(--font-size-xs);color:var(--text-color, #111827);line-height:1.4;overflow:hidden;text-overflow:ellipsis}.ift-match{background:#fef08a;color:#1a1a1a;border-radius:2px;padding:0 1px}.ift-row--search-miss{opacity:.3}.ift-row--search-match .ift-label{color:var(--text-color, #111827)}.ift-eye{flex-shrink:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted, #9ca3af);opacity:0;cursor:pointer;border-radius:3px;padding:1px;transition:opacity .1s,color .1s}.ift-eye svg{width:14px;height:14px;pointer-events:none}.ift-row:hover .ift-eye{opacity:1}.ift-eye:hover{color:var(--color-primary, #0066cc);background:#0066cc14}.ift-eye--ghosted{opacity:1!important;color:var(--text-muted, #9ca3af)}.ift-eye--ghosted:hover{color:var(--color-primary, #0066cc)}.ift-row:has(.ift-eye--ghosted) .ift-label{opacity:.4;font-style:italic}.ift-toolbar-row{display:flex;align-items:center;gap:4px}.ift-toolbar-row .ift-reset-btn{flex:1}.ift-tree-actions{display:flex;gap:2px;flex-shrink:0}.ift-action-btn{width:26px;height:24px;padding:0;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-muted, #6b7280);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s}.ift-action-btn svg{width:14px;height:14px;pointer-events:none}.ift-action-btn:hover{background:var(--bg-hover);color:var(--color-primary, #0066cc);border-color:var(--color-primary, #0066cc)}.ift-resize-handle{flex-shrink:0;width:4px;height:100%;background:transparent;cursor:col-resize;-webkit-user-select:none;user-select:none;position:relative;transition:background-color .15s}.ift-resize-handle:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:2px;height:100%;background:transparent;transition:background .15s}.ift-resize-handle--hovered:after{background:var(--color-primary, #0066cc);opacity:.35}.ift-resize-handle--resizing:after{background:var(--color-primary, #0066cc);opacity:.8}.ift-dropdown{position:relative;width:100%;font-size:var(--font-size-xs);font-family:var(--font-family-primary)}.ift-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;height:26px;padding:0 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-surface);color:var(--text-color);cursor:pointer;-webkit-user-select:none;user-select:none;gap:4px;transition:border-color .15s}.ift-dropdown-trigger:hover{border-color:var(--color-primary, #0066cc)}.ift-dropdown--open .ift-dropdown-trigger{border-color:var(--color-primary, #0066cc);box-shadow:0 0 0 2px #0066cc1f}.ift-dropdown-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs)}.ift-dropdown-arrow{flex-shrink:0;font-size:10px;color:var(--text-muted, #9ca3af);line-height:1}.ift-dropdown-menu{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:200;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px #0000001f;max-height:180px;overflow-y:auto;padding:2px 0}.ift-dropdown-item{padding:5px 10px;font-size:var(--font-size-xs);color:var(--text-color);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.ift-dropdown-item:hover{background:#0066cc0f}.ift-dropdown-item--active{color:var(--color-primary, #0066cc);font-weight:600;background:#0066cc0f}.ift-empty{padding:16px;text-align:center;color:var(--text-muted, #9ca3af);font-size:var(--font-size-xs)}.cde-topbar{height:52px;background:var(--cde-surface);border-bottom:1.5px solid var(--cde-border);display:flex;align-items:center;padding:0 18px;gap:14px;flex-shrink:0;box-shadow:0 1px 3px #0000000f;z-index:100}.cde-logo{display:flex;align-items:center;gap:7px;font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:600;color:var(--cde-text2);flex-shrink:0}.logo-mark{width:26px;height:26px;border-radius:5px;background:var(--cde-text);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:700}.logo-text{font-family:var(--font-family-primary);font-weight:500}.t-sep{width:1px;height:18px;background:var(--cde-border);flex-shrink:0}.cde-proj-info{font-size:var(--font-size-base);color:var(--cde-muted);display:flex;align-items:center;gap:6px}.cde-proj-info .proj-name{color:var(--cde-text);font-weight:600}.badge{font-family:var(--font-family-primary, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--font-size-base);font-weight:600;background:var(--cde-s2);border:1px solid var(--cde-border);color:var(--cde-text2);padding:2px 6px;border-radius:3px;letter-spacing:.05em}.cde-topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.t-btn{font-size:var(--cde-fs-sm);padding:8px 14px;border-radius:6px;border:1.5px solid var(--cde-border2);background:var(--cde-surface);color:var(--cde-text2);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.t-btn:hover{background:var(--cde-s2);border-color:var(--cde-text2);color:var(--cde-text)}.t-btn.primary{background:var(--cde-blue);border-color:var(--cde-blue);color:#fff}.t-btn.primary:hover{background:#0e51a0}.search-wrap{position:relative;display:flex;align-items:center}.cde-search-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:320px;background:var(--cde-surface);border:1px solid var(--cde-border);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:1200;overflow:hidden}.cde-search-suggest-list{max-height:280px;overflow-y:auto;padding:6px}.cde-search-suggest-item{width:100%;border:0;background:transparent;text-align:left;border-radius:6px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.cde-search-suggest-item:hover,.cde-search-suggest-item.active{background:var(--cde-s2)}.cde-search-suggest-title{font-size:var(--cde-fs-sm);font-weight:700;color:var(--cde-text);line-height:1.35}.cde-search-suggest-sub{font-size:var(--cde-fs-xs);color:var(--cde-text2);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cde-search-suggest-empty{padding:10px 12px;font-size:var(--cde-fs-sm);color:var(--cde-text2)}.cde-search-scope-btn{width:100%;border:0;border-top:1px solid var(--cde-border);background:var(--cde-s2);color:var(--cde-blue);font-size:var(--cde-fs-sm);font-weight:700;padding:10px 12px;text-align:left;cursor:pointer}.cde-search-scope-btn:hover{background:#e8f1fb}.search-wrap svg{position:absolute;left:9px;color:var(--cde-muted);pointer-events:none}.search-input{background:var(--cde-s2);border:1.5px solid var(--cde-border);border-radius:6px;color:var(--cde-text);font-size:var(--cde-fs-sm);padding:8px 12px 8px 34px;width:220px;outline:none;transition:all .15s}.search-input:focus{border-color:var(--cde-blue);box-shadow:0 0 0 3px #1460b81f;width:260px;background:var(--cde-surface)}.search-input::placeholder{color:var(--cde-muted2)}.filterbar{height:44px;background:var(--cde-surface);border-bottom:1.5px solid var(--cde-border);display:flex;align-items:center;padding:0 18px;gap:8px;flex-shrink:0}.fb-lbl{font-size:var(--cde-fs-xs);font-weight:700;color:var(--cde-text2);letter-spacing:.06em;text-transform:uppercase;margin-right:6px}.zf{font-size:var(--cde-fs-xs);font-weight:700;letter-spacing:.03em;padding:5px 14px;border-radius:20px;border:1.5px solid var(--cde-border2);background:transparent;cursor:pointer;transition:all .13s}.zf[data-z=ALL]{color:var(--cde-text2)}.zf[data-z=WIP]{color:var(--cde-wip)}.zf[data-z=SHARED]{color:var(--cde-shared)}.zf[data-z=PUBLISH]{color:var(--cde-publish)}.zf[data-z=ARCHIVE]{color:var(--cde-archive)}.zf.on[data-z=ALL]{background:var(--cde-s3);border-color:var(--cde-border2)}.zf.on[data-z=WIP]{background:var(--cde-wip-bg);border-color:var(--cde-wip-b)}.zf.on[data-z=SHARED]{background:var(--cde-shared-bg);border-color:var(--cde-shared-b)}.zf.on[data-z=PUBLISH]{background:var(--cde-publish-bg);border-color:var(--cde-publish-b)}.zf.on[data-z=ARCHIVE]{background:var(--cde-archive-bg);border-color:var(--cde-archive-b)}.zf:not(.on){opacity:.42}.fb-right{margin-left:auto;display:flex;align-items:center;gap:4px}.sf{font-size:var(--cde-fs-xs);font-weight:700;letter-spacing:.03em;padding:4px 10px;border-radius:4px;border:1.5px solid;cursor:pointer;transition:all .13s;opacity:.5}.sf.on{opacity:1}.sf[data-s=S0]{color:#777;border-color:#ccc}.sf.on[data-s=S0]{background:#f5f5f5}.sf[data-s=S1]{color:var(--cde-shared);border-color:var(--cde-shared-b)}.sf.on[data-s=S1]{background:var(--cde-shared-bg)}.sf[data-s=S2]{color:#1460b8;border-color:#99c0f0}.sf.on[data-s=S2]{background:#e8f2ff}.sf[data-s=S3]{color:#0e4fa0;border-color:#88b8f0}.sf.on[data-s=S3]{background:#deeeff}.sf[data-s=S4]{color:var(--cde-red);border-color:#f0b0a8}.sf.on[data-s=S4]{background:#fff0ee}.sf[data-s=A1]{color:var(--cde-publish);border-color:var(--cde-publish-b)}.sf.on[data-s=A1]{background:var(--cde-publish-bg)}.sf[data-s=B1]{color:var(--cde-wip);border-color:var(--cde-wip-b)}.sf.on[data-s=B1]{background:var(--cde-wip-bg)}.fb-sep{width:1px;height:18px;background:var(--cde-border);margin:0 4px}.cde-body{display:flex;flex:1;min-height:0}.cde-sidebar{width:230px;flex-shrink:0;background:var(--cde-surface);border-right:1px solid var(--cde-border);overflow-y:auto;padding:8px 0 24px}.cde-sidebar::-webkit-scrollbar{width:4px}.cde-sidebar::-webkit-scrollbar-thumb{background:var(--cde-border2);border-radius:2px}.sb-zone{margin-bottom:2px}.sb-zone-hdr{display:flex;align-items:center;gap:7px;padding:6px 10px 6px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;border-left:3px solid transparent;transition:background .1s}.sb-zone-hdr:hover,.sb-zone-hdr.active{background:var(--cde-s2)}.sb-zone[data-zone=WIP] .sb-zone-hdr{border-color:var(--cde-wip)}.sb-zone[data-zone=SHARED] .sb-zone-hdr{border-color:var(--cde-shared)}.sb-zone[data-zone=PUBLISH] .sb-zone-hdr{border-color:var(--cde-publish)}.sb-zone[data-zone=ARCHIVE] .sb-zone-hdr{border-color:var(--cde-archive)}.sb-zone.zone-hidden{display:none}.sb-chv{color:var(--cde-muted2);transition:transform .18s,background .15s,color .15s;flex-shrink:0;width:24px;height:24px;cursor:pointer;padding:5px;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-right:2px}.sb-chv:hover{background:var(--cde-s2);color:var(--cde-blue)}.sb-chv.open{transform:rotate(90deg)}.cde-sidebar-resize-handle{position:relative;width:2px;height:100%;background:transparent;cursor:col-resize;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:background-color .15s,opacity .15s}.cde-sidebar-resize-handle.hovered{background:var(--cde-blue);opacity:.3}.cde-sidebar-resize-handle.resizing{background:var(--cde-blue);opacity:.8}@keyframes sidebarReset{0%{width:var(--current-width, 230px)}50%{width:calc(var(--current-width, 230px) * .95)}to{width:230px}}.cde-sidebar.resetting{animation:sidebarReset .3s ease}.sb-chv-placeholder{display:inline-block;width:24px;height:24px;flex-shrink:0}.sb-item-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;border-radius:4px;transition:background .15s,color .15s}.sb-item-toggle:hover{background:var(--cde-s2);color:var(--cde-blue)}.sb-item-toggle svg{width:16px;height:16px}.sb-item-toggle.open svg{transform:rotate(90deg)}.sb-zone-label{font-weight:700;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-zone[data-zone=WIP] .sb-zone-label{color:var(--cde-wip)}.sb-zone[data-zone=SHARED] .sb-zone-label{color:var(--cde-shared)}.sb-zone[data-zone=PUBLISH] .sb-zone-label{color:var(--cde-publish)}.sb-zone[data-zone=ARCHIVE] .sb-zone-label{color:var(--cde-archive)}.sb-cnt{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--cde-muted);flex-shrink:0}.sb-body{display:none}.sb-body.open{display:block}.sb-item{display:flex;align-items:center;gap:5px;padding:5px 10px;cursor:pointer;border-left:2px solid transparent;transition:all .1s;color:var(--cde-text2);white-space:nowrap;overflow:hidden}.sb-item:hover{background:var(--cde-s2)}.sb-item.sel{background:var(--cde-shared-bg);border-left-color:var(--cde-shared);color:var(--cde-shared);font-weight:600}.sb-item.item-hidden{display:none}.sb-item svg{flex-shrink:0}.sb-item-name{flex:1;overflow:hidden;text-overflow:ellipsis}.sb-more-btn{background:none;border:none;padding:2px 6px;cursor:pointer;border-radius:4px;opacity:0;transition:opacity .2s,background-color .2s;display:flex;align-items:center;justify-content:center;color:var(--cde-text2)}.sb-item:hover .sb-more-btn{opacity:1}.sb-more-btn:hover{background:var(--cde-s1)}.sb-more-btn svg{display:block}.sb-children{display:none}.sb-children.open{display:block}.sb-root{font-weight:700;color:var(--cde-text);display:flex;align-items:center;gap:6px;padding:8px 10px 4px;border-bottom:1px solid var(--cde-border);cursor:pointer}.sb-root:hover{background:var(--cde-s2)}.sb-root.sel{color:var(--cde-blue)}.cde-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.content-top{height:44px;background:var(--cde-surface);border-bottom:1px solid var(--cde-border);display:flex;align-items:center;padding:0 16px;gap:10px;flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:4px;font-size:var(--font-size-base);color:var(--cde-muted);flex:1;min-width:0;overflow:hidden}.bc-part{color:var(--cde-text2);cursor:pointer;white-space:nowrap}.bc-part:hover{color:var(--cde-blue);text-decoration:underline}.bc-part.cur{color:var(--cde-text);font-weight:600;cursor:default}.bc-part.cur:hover{color:var(--cde-text);text-decoration:none}.bc-sep{color:var(--cde-muted2)}.ct-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.act-btn{font-size:var(--cde-fs-sm);padding:6px 14px;border-radius:6px;border:1.5px solid var(--cde-border);background:var(--cde-surface);color:var(--cde-text2);cursor:pointer;transition:all .13s;display:flex;align-items:center;gap:6px;font-weight:500}.act-btn:hover{background:var(--cde-s2);border-color:var(--cde-border2)}.act-btn.prim{background:var(--cde-blue);border-color:var(--cde-blue);color:#fff}.act-btn.prim:hover{background:#0e51a0}.sort-info{font-size:var(--cde-fs-sm);color:var(--cde-muted);display:flex;align-items:center;gap:5px;font-weight:500}.table-wrap{flex:1;overflow-x:auto;overflow-y:auto;background:var(--cde-surface)}.table-wrap::-webkit-scrollbar{width:6px;height:6px}.table-wrap::-webkit-scrollbar-thumb{background:var(--cde-border2);border-radius:3px}#cde-main-table{width:100%;border-collapse:collapse;table-layout:fixed}#cde-main-table thead{position:sticky;top:0;z-index:20;background:var(--cde-s2)}#cde-main-table thead tr{border-bottom:2px solid var(--cde-border2)}#cde-main-table th{padding:0;font-size:var(--cde-fs-sm);font-weight:700;color:var(--cde-text2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative}.resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .15s}.resize-handle:hover,.resize-handle.active{background:var(--cde-blue)}.th-inner{display:flex;align-items:center;gap:5px;padding:10px 12px;cursor:pointer;transition:background .1s;height:40px;-webkit-user-select:none;user-select:none}.th-inner:hover{background:var(--cde-s3)}.th-inner .sort-arrow{opacity:.3;font-size:var(--font-size-xs)}#cde-main-table th.sorted .sort-arrow{opacity:1;color:var(--cde-blue)}#cde-main-table th.sort-asc .sort-arrow:before{content:"↑"}#cde-main-table th.sort-desc .sort-arrow:before{content:"↓"}.th-inner:hover{background:var(--cde-s3);color:var(--cde-text2)}th.sorted .th-inner{color:var(--cde-blue)}.sort-arrow{opacity:.4;font-size:var(--font-size-xs);margin-left:2px}th.sorted .sort-arrow{opacity:1;color:var(--cde-blue)}.col-check{width:36px}.col-name{width:280px}#cde-main-table th.col-name{position:sticky;left:0;z-index:15;background:var(--cde-s2);border-right:2px solid var(--cde-border2)}#cde-main-table td.col-name{position:sticky;left:0;z-index:14;background:var(--cde-surface);border-right:2px solid var(--cde-border2)}#cde-main-table tr:hover td.col-name{background:var(--cde-s2)}.col-code{width:200px}.col-status,.col-ver{width:80px}.col-zone{width:95px}.col-type{width:56px}.col-size{width:72px}.col-updated{width:130px}.col-updby{width:110px}.col-review{width:100px}.col-access{width:90px}.col-more{width:100px}#cde-main-table tbody tr{border-bottom:1px solid var(--cde-border);transition:background .08s;cursor:pointer}#cde-main-table tbody tr:hover{background:var(--cde-s2)}#cde-main-table tbody tr.tr-sel{background:#eef5ff}#cde-main-table tbody tr.tr-hidden{display:none}#cde-main-table tbody tr.zone-row{background:var(--cde-s2);cursor:default;border-bottom:2px solid var(--cde-border2)}#cde-main-table tbody tr.zone-row td{padding:6px 10px;font-weight:700;font-size:var(--font-size-xs);letter-spacing:.04em}#cde-main-table tbody tr.folder-row td .row-name{font-weight:600;color:var(--cde-text)}#cde-main-table td{padding:0;vertical-align:middle;overflow:hidden}.td-inner{padding:7px 10px;display:flex;align-items:center;gap:6px;height:36px;overflow:hidden}.td-name-wrap{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.convert-status-badge{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10px;font-weight:500;color:#b86e00;background:#fff3e0;border:1px solid #ffe0a0;border-radius:10px;padding:1px 7px 1px 5px;white-space:nowrap}.convert-spinner{display:inline-block;width:8px;height:8px;border:1.5px solid #f0c060;border-top-color:#b86e00;border-radius:50%;animation:convert-spin .8s linear infinite}@keyframes convert-spin{to{transform:rotate(360deg)}}.file-status-uploading{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10px;font-weight:500;color:#1976d2;background:#e3f2fd;border:1px solid #90caf9;border-radius:10px;padding:1px 7px 1px 5px;white-space:nowrap}.upload-spinner{display:inline-block;font-size:9px;animation:upload-float .6s ease-in-out infinite}@keyframes upload-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}tr.row-uploading{opacity:.65;cursor:not-allowed;pointer-events:none}tr.row-uploading .row-name{cursor:not-allowed}tr.row-uploading .row-name:hover{color:inherit;text-decoration:none}tr.converting{opacity:.6;cursor:not-allowed}tr.converting .row-name{cursor:not-allowed}tr.converting .row-name:hover{color:inherit;text-decoration:none}.row-name{font-size:var(--cde-fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-weight:500;cursor:pointer;transition:color .15s ease,text-decoration .15s ease}.row-name:hover{color:var(--cde-blue);text-decoration:underline}.row-code{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);color:var(--cde-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-ver{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);font-weight:700}.row-size{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);color:var(--cde-text2);font-weight:500}.row-date{font-size:var(--cde-fs-sm);color:var(--cde-text2);white-space:nowrap;font-weight:500}.row-by{font-size:var(--cde-fs-sm);color:var(--cde-text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.row-rev{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);color:var(--cde-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-co{font-size:var(--cde-fs-sm);color:var(--cde-text2);font-weight:500;white-space:nowrap}.row-access{font-size:var(--cde-fs-sm);color:var(--cde-text2);font-weight:500}.dash{color:var(--cde-muted2);font-family:var(--font-family-mono);font-size:var(--cde-fs-sm)}.chip{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);font-weight:700;padding:2px 7px;border-radius:4px;border:1px solid transparent;white-space:nowrap;flex-shrink:0}.chip-S0{background:#f4f4f4;border-color:#ccc;color:#888}.chip-S1{background:var(--cde-shared-bg);border-color:var(--cde-shared-b);color:var(--cde-shared)}.chip-S2{background:#e8f2ff;border-color:#99c0f0;color:#1460b8}.chip-S3{background:#deeeff;border-color:#88b8f0;color:#0e4fa0}.chip-S4{background:#fff0ee;border-color:#f0b0a8;color:var(--cde-red)}.chip-A1{background:var(--cde-publish-bg);border-color:var(--cde-publish-b);color:var(--cde-publish)}.chip-B1{background:var(--cde-wip-bg);border-color:var(--cde-wip-b);color:var(--cde-wip)}.chip-none{display:none}.zone-pill{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);font-weight:700;letter-spacing:.05em;padding:3px 9px;border-radius:4px;color:#fff;flex-shrink:0}.zp-WIP{background:var(--cde-wip)}.zp-SHARED{background:var(--cde-shared)}.zp-PUBLISH{background:var(--cde-publish)}.zp-ARCHIVE{background:var(--cde-archive)}.ext-dot{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);font-weight:700;padding:2px 5px;border-radius:3px;flex-shrink:0}.tag-pill{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);font-weight:600;padding:2px 6px;border-radius:3px;background:var(--cde-blue-bg);color:var(--cde-blue);border:1px solid #c8daf5;white-space:nowrap;flex-shrink:0}.td-desc{font-size:var(--cde-fs-sm);color:var(--cde-text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.rev-chip{font-size:var(--cde-fs-xs);padding:2px 8px;border-radius:3px;border:1px solid;white-space:nowrap}.rev-none{color:var(--cde-muted2);border-color:var(--cde-muted2);background:transparent}.rev-approved{color:var(--cde-publish);border-color:var(--cde-publish-b);background:var(--cde-publish-bg)}.rev-pending{color:var(--cde-wip);border-color:var(--cde-wip-b);background:var(--cde-wip-bg)}.rev-rejected{color:var(--cde-red);border-color:#f0b0a8;background:#fff0ee}.indent-1{padding-left:18px}.indent-2{padding-left:34px}.indent-3{padding-left:50px}.move-picker-field,.move-picker-toolbar{margin-bottom:8px}.move-tree-search{min-height:34px}.move-tree{border:1px solid var(--cde-border2);border-radius:8px;background:var(--cde-surface);max-height:50vh;min-height:260px;overflow:auto;padding:6px}.move-tree-item{width:100%;border:none;background:transparent;color:var(--cde-text2);display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;cursor:pointer;text-align:left;padding-left:calc(10px + var(--move-depth, 0) * 18px);transition:background-color .12s ease,color .12s ease}.move-tree-item:hover{background:var(--cde-s2);color:var(--cde-text)}.move-tree-item.selected{background:var(--cde-blue-bg);color:var(--cde-blue);font-weight:600}.move-tree-folder-icon{flex-shrink:0;color:var(--cde-muted2)}.move-tree-item.selected .move-tree-folder-icon{color:var(--cde-blue)}.move-tree-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-dialog-hint{margin-top:8px;font-size:var(--cde-fs-xs);color:var(--cde-muted2)}input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--cde-blue)}.more-btn{width:24px;height:24px;border-radius:4px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cde-muted);opacity:0;transition:all .1s}tr:hover .more-btn{opacity:1}.more-btn:hover{background:var(--cde-s3);color:var(--cde-text)}.cde-drawer-wrapper{position:relative}.drawer{position:absolute;right:0;top:0;height:100%;width:380px;max-width:90%;background:var(--cde-surface);border-left:1.5px solid var(--cde-border);box-shadow:-4px 0 24px #0000001a;z-index:300;transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;border-radius:8px 0 0 8px}.drawer.docked{transform:translate(calc(100% - 44px))}html body #app-container .project-detail-view .project-main{position:relative!important}html body #app-container .project-detail-view .project-main #section-data{transition:width .3s ease}html body #app-container .project-detail-view .project-main>.drawer.docked{position:absolute!important;right:0!important;top:0!important;width:350px!important;height:100%!important;flex-shrink:0!important;transform:none!important;border-radius:0!important;box-shadow:none!important;z-index:100!important;opacity:1!important;pointer-events:all!important;margin-top:0!important}html body #app-container .project-detail-view .project-shell #section-data.drawer-docked-layout>.drawer.docked .drawer-peek{display:none}.drawer.docked .drawer-inner{opacity:0;pointer-events:none}.drawer.docked:hover .drawer-inner{opacity:1;pointer-events:all}.drawer.docked .drawer-peek{display:flex}.drawer-peek{display:none;position:absolute;left:0;top:50%;transform:translateY(-50%);width:44px;height:80px;background:var(--cde-surface);border:1px solid var(--cde-border);border-left:none;border-radius:8px 0 0 8px;cursor:pointer;align-items:center;justify-content:center;color:var(--cde-muted)}.drawer-peek:hover{background:var(--cde-s2);color:var(--cde-text)}.drawer.open{transform:translate(0)}.drawer-inner{flex:1;display:flex;flex-direction:column;overflow:hidden;transition:opacity .15s}.drawer-top{position:relative;padding:16px 18px 14px;border-bottom:1.5px solid var(--cde-border);background:var(--cde-s2);flex-shrink:0}.drawer-zone-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-right:42px}.drawer-close{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:5px;border:1.5px solid var(--cde-border);background:var(--cde-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cde-muted);transition:all .1s;z-index:10}.drawer-close:hover{background:var(--cde-s3);color:var(--cde-text)}.drawer-dock-btn{position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:28px;height:48px;background:var(--cde-surface);border:1.5px solid var(--cde-border);border-right:none;border-radius:6px 0 0 6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cde-muted);z-index:10;transition:all .15s}.drawer-dock-btn:hover{background:var(--cde-s2);color:var(--cde-blue)}.drawer.docked .drawer-dock-btn{border-radius:6px;background:var(--cde-blue);border-color:var(--cde-blue);color:#fff}.drawer-name{font-size:var(--cde-fs-lg);font-weight:700;line-height:1.3;color:var(--cde-text)}.drawer-code{font-family:var(--font-family-mono);font-size:var(--cde-fs-xs);color:var(--cde-muted);margin-top:4px;word-break:break-all}.drawer-body{flex:1;overflow-y:auto;padding:14px 16px 24px}.drawer-body::-webkit-scrollbar{width:4px}.drawer-body::-webkit-scrollbar-thumb{background:var(--cde-border2);border-radius:2px}.d-sec{margin-bottom:16px}.d-sec-title{font-size:var(--cde-fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cde-muted);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--cde-border)}.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px}.d-card{background:var(--cde-s2);border:1px solid var(--cde-border);border-radius:5px;padding:9px 11px}.d-card.full{grid-column:1 / -1}.d-card-lbl{font-size:var(--cde-fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cde-muted);margin-bottom:5px}.d-card-val{font-family:var(--font-family-mono);font-size:var(--cde-fs-md);font-weight:700;color:var(--cde-text)}.d-card-sub{font-size:var(--cde-fs-sm);color:var(--cde-text2);margin-top:4px;font-family:var(--font-family-primary);font-weight:500}.d-card-pretext{white-space:pre-wrap;font-size:var(--font-size-sm);font-family:var(--font-family-primary);font-weight:400}.d-card-capitalize{text-transform:capitalize}.d-card-thumbnail{display:flex;align-items:center;justify-content:center;padding:12px;height:200px;background:var(--cde-s3);border-radius:6px;margin-bottom:12px}.d-thumbnail-img{max-width:100%;max-height:100%;border-radius:4px;object-fit:contain}.ver-tl{display:flex;align-items:center;flex-wrap:wrap}.ver-n{display:flex;align-items:center}.ver-dot{width:26px;height:26px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:700}.ver-line{width:12px;height:2px;background:var(--cde-border2)}.ver-past .ver-dot{border-color:var(--cde-border2);color:var(--cde-muted);background:var(--cde-s2)}.ver-cur .ver-dot{border-color:var(--cde-shared);color:var(--cde-shared);background:var(--cde-shared-bg)}.ver-fin .ver-dot{border-color:var(--cde-publish);color:var(--cde-publish);background:var(--cde-publish-bg)}.acc-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--cde-border);font-size:var(--font-size-xs)}.acc-row:last-child{border:none}.acc-role{flex:1;color:var(--cde-text2)}.acc-perm{font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:700;padding:2px 7px;border-radius:3px;border:1px solid transparent}.p-full{background:#e8faf0;border-color:#7ecfa0;color:var(--cde-publish)}.p-edit{background:var(--cde-shared-bg);border-color:var(--cde-shared-b);color:var(--cde-shared)}.p-view{background:var(--cde-s2);border-color:var(--cde-border2);color:var(--cde-text2)}.p-approve{background:var(--cde-wip-bg);border-color:var(--cde-wip-b);color:var(--cde-wip)}.p-none{background:#fff0ee;border-color:#f0b0a8;color:var(--cde-red)}.p-upload{background:var(--cde-archive-bg);border-color:var(--cde-archive-b);color:var(--cde-archive)}.d-note{background:var(--cde-s2);border:1px solid var(--cde-border);border-left:3px solid var(--cde-border2);border-radius:5px;padding:9px 12px;font-size:var(--font-size-xs);color:var(--cde-text2);line-height:1.65}.ver-history-wrap{padding:4px 0}.ver-panel-cur{display:flex;align-items:center;gap:8px;padding:6px 0;flex-wrap:wrap}.ver-dot-cur{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 6px;border-radius:12px;font-size:11px;font-weight:700;background:var(--cde-shared-bg);color:var(--cde-shared);border:1.5px solid var(--cde-shared);flex-shrink:0}.ver-dot-old{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 6px;border-radius:12px;font-size:11px;font-weight:600;background:var(--cde-s2);color:var(--cde-muted);border:1px solid var(--cde-border2);flex-shrink:0}.ver-cur-meta{flex:1;font-size:var(--font-size-xs);color:var(--cde-text2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ver-view-btn{flex-shrink:0;padding:3px 10px;border-radius:4px;border:1px solid var(--cde-shared);background:transparent;color:var(--cde-shared);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.ver-view-btn:hover{background:var(--cde-shared);color:#fff}.ver-view-btn-disabled{opacity:.4;cursor:not-allowed}.ver-view-btn-disabled:hover{background:transparent;color:var(--cde-shared)}.ver-expand-btn{flex-shrink:0;padding:3px 8px;border-radius:4px;border:1px solid var(--cde-border);background:var(--cde-s2);color:var(--cde-text2);font-size:var(--font-size-xs);cursor:pointer;transition:background .15s}.ver-expand-btn:hover{background:var(--cde-border2)}.ver-list-panel{border:1px solid var(--cde-border);border-radius:6px;overflow:hidden;margin-top:4px}.ver-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.ver-table th{background:var(--cde-s2);color:var(--cde-muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px;font-size:10px;padding:4px 8px;text-align:left}.ver-table td{padding:5px 8px;border-top:1px solid var(--cde-border2)}.ver-table tr:first-child td{border-top:none}.ver-th-ver{width:80px}.ver-th-actions{text-align:right!important}.ver-td-ver{color:var(--cde-text)}.ver-td-date{color:var(--cde-text2)}.ver-td-actions{text-align:right;white-space:nowrap}.ver-td-actions .ver-download-btn{color:var(--cde-shared);font-size:11px;text-decoration:none;white-space:nowrap}.ver-td-actions .ver-view-btn{padding:2px 8px;font-size:11px;text-align:center;white-space:nowrap}.ver-restore-btn{width:20px;height:20px;border:1px solid var(--cde-border2);border-radius:4px;background:var(--cde-s1);color:var(--cde-text2);cursor:pointer;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center}.ver-restore-btn:hover{background:var(--cde-border2)}.ver-restore-btn:disabled{opacity:.6;cursor:default}.ver-restore-btn-hide{visibility:hidden;pointer-events:none}.ver-compare-bar{padding:6px 8px;border-top:1px solid var(--cde-border2);display:flex;justify-content:flex-end}.ver-compare-btn{padding:4px 14px;border-radius:4px;border:1.5px solid var(--cde-shared);background:var(--cde-shared);color:#fff;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.ver-compare-btn:hover{background:var(--cde-shared-dark, var(--cde-shared));opacity:.85}.drawer-edit-form{padding:4px 0}.d-form-section-hd{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--cde-muted);padding:10px 0 6px;border-bottom:1px solid var(--cde-border2);margin-bottom:10px}.d-form-section-hd:first-child{padding-top:2px}.d-form-section-ro{font-weight:400;text-transform:none;letter-spacing:0;font-style:italic}.d-form-static{font-size:var(--font-size-sm);color:var(--cde-text2);padding:5px 8px;background:var(--cde-s2);border-radius:4px;border:1px solid var(--cde-border2);min-height:28px;display:flex;align-items:center}.d-form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.d-form-row.d-form-full{grid-column:1 / -1}.d-form-lbl{font-size:var(--font-size-xs);color:var(--cde-text2);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.d-form-sel,.d-form-inp{border:1px solid var(--cde-border);border-radius:4px;padding:5px 8px;font-size:var(--font-size-sm);background:var(--cde-bg);color:var(--cde-text);width:100%;box-sizing:border-box}.d-form-sel:focus,.d-form-inp:focus{outline:none;border-color:var(--cde-shared)}.d-form-actions{display:flex;gap:8px;margin-top:14px}.d-btn{padding:6px 14px;border-radius:4px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;border:1px solid transparent;transition:opacity .15s}.d-btn:hover{opacity:.85}.d-btn-save{background:var(--cde-shared);color:#fff;border-color:var(--cde-shared)}.d-btn-cancel{background:transparent;color:var(--cde-text2);border-color:var(--cde-border)}.drawer-edit-btn{margin-left:auto;padding:3px 10px;font-size:var(--font-size-sm);border:1px solid var(--cde-border);border-radius:4px;background:transparent;cursor:pointer;color:var(--cde-text2);transition:all .15s;flex-shrink:0}.drawer-edit-btn:hover{background:var(--cde-s3);color:var(--cde-text);border-color:var(--cde-border2)}.d-form-row-inline{display:flex;align-items:center;gap:8px;margin-bottom:10px}.d-form-check{width:15px;height:15px;cursor:pointer;accent-color:var(--cde-shared)}.d-form-check-lbl{font-size:var(--font-size-sm);color:var(--cde-text);cursor:pointer}.zt-panel{padding:4px 0}.zt-section-title{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cde-muted);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--cde-border)}.zt-zone-btns{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.zt-zone-btn{padding:7px 6px;border-radius:5px;border:1.5px solid var(--cde-border);background:var(--cde-s2);cursor:pointer;font-size:var(--font-size-xs);font-weight:700;color:var(--cde-text2);text-align:center;transition:all .15s}.zt-zone-btn:hover{border-color:var(--cde-shared);color:var(--cde-shared)}.zt-zone-btn.zt-active{border-color:var(--cde-shared);background:var(--cde-shared-bg);color:var(--cde-shared)}.zt-zone-btn.zt-wip{border-color:var(--cde-wip)}.zt-zone-btn.zt-shared{border-color:var(--cde-shared)}.zt-zone-btn.zt-publish{border-color:var(--cde-publish)}.zt-zone-btn.zt-archive{border-color:var(--cde-archive)}.zt-zone-btn.zt-active.zt-wip{background:var(--cde-wip-bg);color:var(--cde-wip)}.zt-zone-btn.zt-active.zt-shared{background:var(--cde-shared-bg);color:var(--cde-shared)}.zt-zone-btn.zt-active.zt-publish{background:var(--cde-publish-bg);color:var(--cde-publish)}.zt-zone-btn.zt-active.zt-archive{background:var(--cde-archive-bg);color:var(--cde-archive)}.zt-lbl{font-size:var(--font-size-xs);color:var(--cde-text2);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.zt-optional{font-weight:400;text-transform:none;letter-spacing:0;font-style:italic;opacity:.7}.zt-folder-sel{border:1px solid var(--cde-border);border-radius:4px;padding:5px 8px;font-size:var(--font-size-sm);background:var(--cde-bg);color:var(--cde-text);width:100%;box-sizing:border-box;margin-bottom:10px}.zt-folder-sel:focus{outline:none;border-color:var(--cde-shared)}.zt-tree-hint{font-size:var(--font-size-xs);color:var(--cde-text2);padding:4px 0 6px}#zt-folder-tree{max-height:220px;overflow-y:auto;border:1px solid var(--cde-border);border-radius:4px;padding:4px 0;background:var(--cde-bg)}.zt-tree-row{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;border-radius:3px;font-size:var(--font-size-sm);color:var(--cde-text);white-space:nowrap;transition:background .1s}.zt-tree-row:hover{background:var(--cde-s2)}.zt-tree-row.zt-tree-sel{background:var(--cde-selected-bg);color:var(--cde-shared);font-weight:600}.zt-tree-chevron{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;border-radius:3px;transition:transform .15s,background .1s;color:var(--cde-muted)}.zt-tree-chevron:hover{background:var(--cde-s2);color:var(--cde-text)}.zt-tree-chevron.open{transform:rotate(90deg)}.zt-tree-children{padding-left:18px}.zt-tree-icon{flex-shrink:0;color:var(--cde-muted)}.zt-tree-name{flex:1;overflow:hidden;text-overflow:ellipsis}.zt-tree-check{flex-shrink:0;color:var(--cde-shared);font-size:12px;width:16px;text-align:center}.zt-new-folder-row{display:flex;flex-direction:column;gap:4px;margin-top:10px}.zt-new-folder-label{font-size:var(--font-size-xs);color:var(--cde-text2);font-weight:600}.zt-new-inp{border:1px solid var(--cde-border);border-radius:4px;padding:6px 8px;font-size:var(--font-size-sm);background:var(--cde-bg);color:var(--cde-text);width:100%;box-sizing:border-box}.zt-new-inp:focus{outline:none;border-color:var(--cde-shared)}.zt-no-folders{font-size:var(--font-size-xs);color:var(--cde-muted);font-style:italic;padding:4px 0 10px}.zt-actions{display:flex;gap:8px;margin-top:14px}.zt-error{color:#e53935;font-size:var(--font-size-xs);padding:6px 0 4px;display:none}.zt-error.zt-error-show{display:block}.zt-scope-notice{font-size:var(--font-size-xs);color:var(--cde-text2);padding:4px 0 8px;display:flex;align-items:center;gap:4px}.zt-scope-notice:before{content:"⚠"}.zt-type-indicator{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--cde-text2);padding-bottom:6px}.zt-type-indicator svg{vertical-align:middle}.d-form-zone-wrap{display:flex;align-items:center;gap:8px}.ver-clickable{cursor:pointer}.ver-clickable:hover .ver-dot{background:var(--cde-shared);color:#fff;border-color:var(--cde-shared)}.acc-empty-note{font-size:var(--font-size-sm);color:var(--cde-text2);margin-bottom:8px;font-style:italic}.perm-manage-btn{margin-top:8px;padding:3px 10px;font-size:var(--font-size-sm);border:1px solid var(--cde-border);border-radius:4px;background:transparent;cursor:pointer;color:var(--cde-text2);transition:all .15s}.perm-manage-btn:hover{background:var(--cde-s3);color:var(--cde-text)}.perm-entry-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--cde-border)}.perm-entry-user{flex:1;font-size:var(--font-size-sm);color:var(--cde-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}.perm-role-badge{display:inline-block;font-size:10px;padding:1px 5px;border-radius:10px;background:var(--cde-s3, #f1f5f9);color:var(--cde-text2, #64748b);border:1px solid var(--cde-border, #e2e8f0);white-space:nowrap;flex-shrink:0}.perm-entry-sel{padding:2px 4px;font-size:var(--font-size-xs);border:1px solid var(--cde-border);border-radius:3px}.perm-entry-remove{padding:1px 6px;font-size:var(--font-size-sm);border:1px solid var(--cde-border);border-radius:3px;background:transparent;cursor:pointer;color:var(--cde-danger, #e53e3e);line-height:1.4}.perm-entry-remove:hover{background:#fff0f0}.perm-add-row{display:flex;align-items:center;gap:6px;margin-top:10px}.perm-new-user{flex:1;max-width:100px}.perm-new-level{padding:4px 6px;font-size:var(--font-size-xs);border:1px solid var(--cde-border);border-radius:3px}.perm-add-btn{white-space:nowrap;flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 0;color:var(--cde-muted2)}.empty-state p{font-size:var(--font-size-base)}.sel-bar{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:var(--cde-surface, #fff);color:var(--cde-text, #1c1f26);border-radius:12px;padding:10px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 20px #00000026,0 0 0 1px var(--cde-border, #e1e4e8);font-size:var(--cde-fs-md, 13px);z-index:200;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.sel-bar.show{opacity:1;pointer-events:all;transform:translate(-50%) translateY(0)}.sel-bar-actions{display:flex;align-items:center;gap:6px;border-left:1px solid var(--cde-border, #e1e4e8);padding-left:12px}.sel-bar-btn{font-size:var(--cde-fs-sm, 12px);padding:6px 10px;border-radius:6px;border:1px solid var(--cde-border, #e1e4e8);background:var(--cde-surface, #fff);color:var(--cde-text, #1c1f26);cursor:pointer;transition:all .15s ease;font-weight:500;display:flex;align-items:center;gap:5px;white-space:nowrap}.sel-bar-btn:hover{background:var(--cde-s2, #f7f8fa);border-color:var(--cde-blue, #1460b8)}.sel-bar-btn:active{transform:scale(.97)}.sel-bar-btn.sel-danger{color:var(--cde-red, #c0392b)}.sel-bar-btn.sel-danger:hover{background:#fff0ee;border-color:var(--cde-red, #c0392b)}.sel-bar-btn.sel-clear{padding:6px 8px;border:none;background:transparent}.sel-bar-btn.sel-clear:hover{background:var(--cde-s3, #eef0f3);border-color:transparent}.cde-context-menu{background:var(--cde-surface, #fff);border:1px solid var(--cde-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 20px #0000001f;min-width:180px;padding:4px 0;animation:ctxFadeIn .15s ease}@keyframes ctxFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ctx-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;font-size:var(--font-size-base);color:#333;transition:background .1s}.ctx-item:hover{background:var(--cde-row-hover, #f0f4ff)}.ctx-item svg{flex-shrink:0;color:#666}.ctx-item:hover svg{color:var(--primary-blue, #2563eb)}.ctx-divider{height:1px;background:var(--cde-border, #e0e0e0);margin:4px 8px}.ctx-danger{color:#dc2626}.ctx-danger svg{color:#dc2626}:root{--pdf-toolbar-bg: var(--bg-white);--pdf-sidebar-bg: var(--bg-lighter);--pdf-main-bg: var(--bg-secondary);--pdf-page-bg: #fff;--pdf-thumbnail-selected: var(--color-primary);--pdf-text-primary: var(--text-primary);--pdf-text-secondary: var(--text-secondary);--pdf-text-muted: var(--text-muted);--pdf-border: var(--cde-border);--pdf-btn-hover: var(--primary-blue-lightest);--pdf-btn-active: var(--color-primary-bg);--pdf-annotation-yellow: rgba(255, 235, 59, .4);--pdf-annotation-green: rgba(76, 175, 80, .3);--pdf-annotation-blue: rgba(33, 150, 243, .3);--pdf-annotation-pink: rgba(233, 30, 99, .3);--pdf-shadow: var(--shadow-md);--pdf-shadow-lg: var(--shadow-lg);--pdf-radius: var(--radius-md);--pdf-radius-sm: var(--radius-sm)}.pdf-viewer-container{display:flex;flex-direction:column;height:calc(100vh - 56px);background:var(--pdf-main-bg);font-family:var(--font-family);font-size:var(--font-size-base);overflow:hidden}.pdf-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--pdf-toolbar-bg);border-bottom:1px solid var(--pdf-border);flex-wrap:wrap;min-height:48px;z-index:100;box-shadow:var(--shadow-sm)}.pdf-toolbar-group{display:flex;align-items:center;gap:var(--spacing-xs)}.pdf-toolbar-divider{width:1px;height:20px;background:var(--pdf-border);margin:0 var(--spacing-sm)}.pdf-title-group{flex:1;min-width:150px;justify-content:center}.pdf-filename{color:var(--pdf-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--pdf-radius-sm);color:var(--pdf-text-secondary);cursor:pointer;transition:all var(--transition-fast);position:relative}.pdf-btn:hover{background:var(--pdf-btn-hover);color:var(--color-primary)}.pdf-btn:active{background:var(--pdf-btn-active)}.pdf-btn.active{background:var(--color-primary-bg);color:var(--color-primary)}.pdf-btn[disabled]{opacity:.5;cursor:not-allowed}.pdf-btn svg{width:18px;height:18px}.pdf-page-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.pdf-page-info{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--pdf-text-primary);font-size:var(--font-size-base)}.page-input{width:50px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-white);border:1px solid var(--pdf-border);border-radius:var(--pdf-radius-sm);color:var(--pdf-text-primary);font-size:var(--font-size-base);text-align:center;transition:border-color var(--transition-fast)}.page-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-bg)}.pdf-zoom-group{display:flex;align-items:center;gap:var(--spacing-xs)}.zoom-select{padding:6px 28px 6px 10px;background:var(--bg-white);border:1px solid var(--pdf-border);border-radius:var(--pdf-radius-sm);color:var(--pdf-text-primary);font-size:var(--font-size-sm);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2 4l4 4 4-4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color var(--transition-fast)}.zoom-select:focus{outline:none;border-color:var(--color-primary)}.zoom-level{font-size:var(--font-size-sm);color:var(--pdf-text-secondary);min-width:45px;text-align:center}.pdf-tools-group{display:flex;align-items:center;gap:2px}.tool-btn.active{background:var(--color-primary-bg);color:var(--color-primary)}.draw-color{width:28px;height:28px;padding:2px;border:1px solid var(--pdf-border);border-radius:var(--pdf-radius-sm);cursor:pointer;background:var(--bg-white)}.pdf-main-wrapper{display:flex;flex:1;overflow:hidden}.pdf-sidebar{width:250px;background:var(--pdf-sidebar-bg);border-right:1px solid var(--pdf-border);display:flex;flex-direction:column;overflow:hidden}.pdf-sidebar.collapsed{width:0;border-right:none}.pdf-sidebar-tabs{display:flex;border-bottom:1px solid var(--pdf-border);background:var(--bg-white)}.pdf-sidebar-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;cursor:pointer;font-size:var(--font-size-sm);color:var(--pdf-text-muted);transition:all var(--transition-fast)}.pdf-sidebar-tab:hover{background:var(--pdf-btn-hover);color:var(--color-primary)}.pdf-sidebar-tab.active{background:var(--bg-white);color:var(--color-primary);font-weight:var(--font-weight-medium);border-bottom:2px solid var(--color-primary)}.pdf-sidebar-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}.pdf-thumbnails{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center}.pdf-thumbnail{position:relative;cursor:pointer;border:2px solid transparent;border-radius:var(--pdf-radius-sm);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);background:var(--bg-white);box-shadow:var(--shadow-sm)}.pdf-thumbnail:hover{border-color:var(--pdf-text-muted);box-shadow:var(--shadow-md)}.pdf-thumbnail.selected{border-color:var(--pdf-thumbnail-selected);box-shadow:0 0 0 2px var(--color-primary-bg)}.pdf-thumbnail canvas{display:block}.pdf-thumbnail-label{position:absolute;bottom:0;left:0;right:0;background:#000000bf;color:#fff;font-size:var(--font-size-xs);text-align:center;padding:2px 4px}.pdf-outline{font-size:var(--font-size-base)}.pdf-outline-item{padding:var(--spacing-sm);cursor:pointer;border-radius:var(--pdf-radius-sm);display:flex;align-items:center;gap:var(--spacing-sm);color:var(--pdf-text-secondary);transition:background var(--transition-fast)}.pdf-outline-item:hover{background:var(--pdf-btn-hover);color:var(--color-primary)}.pdf-outline-item.selected{background:var(--color-primary-bg);color:var(--color-primary)}.pdf-outline-children{margin-left:var(--spacing-lg)}.pdf-outline-toggle{width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--pdf-text-muted)}.pdf-main{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;background:var(--pdf-main-bg);padding:var(--spacing-xl);position:relative}.pdf-viewer{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl)}.pdf-page-container{position:relative;box-shadow:var(--pdf-shadow-lg);background:var(--pdf-page-bg);border-radius:var(--pdf-radius-sm)}.pdf-page-container canvas{display:block}.textLayer{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.5;line-height:1;z-index:1}.textLayer>span{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%;pointer-events:auto}.textLayer ::selection{background:var(--color-primary)}.pdf-page-container{position:relative}.pdf-page-container canvas{position:relative;z-index:0}.annotationLayer{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;z-index:0}.annotationLayer>section{position:absolute;pointer-events:auto}.annotation-highlight{background:var(--pdf-annotation-yellow);cursor:pointer;border-radius:2px}.annotation-highlight.green{background:var(--pdf-annotation-green)}.annotation-highlight.blue{background:var(--pdf-annotation-blue)}.annotation-highlight.pink{background:var(--pdf-annotation-pink)}.pdf-search{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--bg-white);border:1px solid var(--pdf-border);border-radius:var(--pdf-radius-sm);padding:var(--spacing-xs) var(--spacing-sm)}.pdf-search svg{color:var(--pdf-text-muted);flex-shrink:0}.pdf-search input{background:transparent;border:none;color:var(--pdf-text-primary);font-size:var(--font-size-sm);width:120px;outline:none}.pdf-search input::placeholder{color:var(--pdf-text-muted)}.pdf-search-count{color:var(--pdf-text-muted);font-size:var(--font-size-xs);white-space:nowrap}.search-btn{width:24px;height:24px;padding:0}.pdf-error,.pdf-viewer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--pdf-text-primary);font-size:var(--font-size-base);text-align:center;padding:var(--spacing-3xl)}.pdf-error{color:var(--color-danger)}.pdf-error .error-detail{color:var(--pdf-text-muted);margin:var(--spacing-md) 0;font-size:var(--font-size-sm)}.pdf-viewer-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--pdf-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.pdf-version-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pdf-version-modal.show{display:flex}.pdf-version-modal-content{background:var(--bg-white);border-radius:var(--radius-lg);width:90%;max-width:1400px;height:90%;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-xl)}.pdf-version-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background:var(--bg-lighter);border-bottom:1px solid var(--pdf-border)}.pdf-version-header h3{margin:0;font-size:var(--font-size-lg);color:var(--pdf-text-primary);font-weight:var(--font-weight-medium)}.pdf-version-controls{display:flex;align-items:center;gap:var(--spacing-lg)}.pdf-version-select{display:flex;align-items:center;gap:var(--spacing-sm)}.pdf-version-select label{font-size:var(--font-size-sm);color:var(--pdf-text-secondary);white-space:nowrap}.pdf-version-select select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--pdf-border);border-radius:var(--pdf-radius-sm);font-size:var(--font-size-sm);min-width:150px;background:var(--bg-white);color:var(--pdf-text-primary);cursor:pointer;transition:border-color var(--transition-fast)}.pdf-version-select select:focus{outline:none;border-color:var(--color-primary)}.pdf-version-body{flex:1;display:flex;overflow:hidden}.pdf-version-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--pdf-border)}.pdf-version-pane:last-child{border-right:none}.pdf-version-pane-header{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-lighter);border-bottom:1px solid var(--pdf-border);font-size:var(--font-size-sm);color:var(--pdf-text-secondary);font-weight:var(--font-weight-medium)}.pdf-version-pane-content{flex:1;overflow:auto;background:var(--pdf-main-bg);display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl)}.pdf-version-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--pdf-text-muted);padding:var(--spacing-xs);line-height:1;transition:color var(--transition-fast)}.pdf-version-close:hover{color:var(--pdf-text-primary)}.pdf-page-container.diff-old{border:3px solid var(--color-danger)}.pdf-page-container.diff-new{border:3px solid var(--color-success)}.pdf-sidebar-content::-webkit-scrollbar,.pdf-main::-webkit-scrollbar,.pdf-version-pane-content::-webkit-scrollbar{width:8px;height:8px}.pdf-sidebar-content::-webkit-scrollbar-track,.pdf-main::-webkit-scrollbar-track,.pdf-version-pane-content::-webkit-scrollbar-track{background:var(--bg-lighter)}.pdf-sidebar-content::-webkit-scrollbar-thumb,.pdf-main::-webkit-scrollbar-thumb,.pdf-version-pane-content::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}.pdf-sidebar-content::-webkit-scrollbar-thumb:hover,.pdf-main::-webkit-scrollbar-thumb:hover,.pdf-version-pane-content::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.pane-placeholder{color:var(--pdf-text-muted);font-size:var(--font-size-base);text-align:center;padding:var(--spacing-xl)}.search-highlight{background:var(--color-warning-bg);border-radius:2px;padding:0 2px}@media(max-width:768px){.pdf-sidebar{position:absolute;left:0;top:48px;bottom:0;z-index:50;box-shadow:var(--shadow-lg)}.pdf-version-body{flex-direction:column}.pdf-version-pane{border-right:none;border-bottom:1px solid #ddd}}.pdf-toolbar-simple{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border-bottom:1px solid var(--cde-border);min-height:48px}.pdf-toolbar-simple .pdf-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);min-width:100px;min-height:32px;background:transparent;border:1px solid var(--cde-border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm)}.pdf-toolbar-simple .pdf-btn:hover{background:var(--bg-hover);border-color:var(--cde-blue)}.pdf-toolbar-simple .pdf-filename{font-weight:500;color:var(--text-primary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-toolbar-spacer{flex:1}.version-compare-section{display:flex;align-items:center;gap:var(--spacing-sm)}.version-select{padding:6px 12px;border:1px solid var(--cde-border);border-radius:4px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;min-width:160px;max-width:220px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-select:hover{border-color:var(--cde-blue)}.version-compare-section .pdf-btn,#btn-compare,#btn-exit-compare{padding:6px 14px;font-size:13px;font-weight:500;white-space:nowrap;background:var(--cde-blue)!important;color:#fff!important;border:none!important;border-radius:4px;cursor:pointer;transition:background .2s}.version-compare-section .pdf-btn:hover,#btn-compare:hover,#btn-exit-compare:hover{background:#1565c0!important}.pdf-btn-save,#btn-save-annotations{display:inline-flex!important;align-items:center;gap:5px;padding:6px 14px!important;font-size:13px!important;font-weight:500!important;white-space:nowrap;background:var(--color-primary, #2563eb);color:#fff!important;border:none!important;border-radius:4px;cursor:pointer;transition:background .2s}.pdf-btn-save:hover,#btn-save-annotations:hover{background:#1b5e20!important}.pdf-main-area{flex:1;display:flex;overflow:hidden;background:var(--pdf-main-bg, #525252)}.pdf-main-area .pdf-viewer{flex:1;display:block;overflow:auto;background:var(--pdf-main-bg, #525252)}.pdf-main-area .pdf-viewer-compare{flex:1;display:none;overflow:auto;border-left:1px solid var(--cde-border);background:var(--pdf-main-bg, #525252)}.pdf-main-area.compare-mode .pdf-viewer{width:50%}.pdf-main-area.compare-mode .pdf-viewer-compare{display:block;width:50%}.pdf-viewer>div,.pdf-viewer-compare>div{height:100%!important}.btn-exit-compare{background:var(--bg-danger-light, #fee2e2);border-color:var(--bg-danger, #dc2626);color:var(--bg-danger, #dc2626)}.btn-exit-compare:hover{background:var(--bg-danger);color:#fff}body{font-family:var(--font-family-primary, "FZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);color:var(--text-color);background-color:var(--color-bg-light)}.btn{display:inline-block;padding:8px 16px;border:1px solid transparent;border-radius:6px;font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:all .2s ease;margin:2px}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-secondary{background-color:var(--bg-surface);color:var(--text-color);border-color:var(--border-color)}.icon-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:6px}.icon-btn:hover{color:var(--color-primary);background:var(--light-bg)}.scrollable{overflow:auto}.projects-view{padding:24px;max-width:1400px;margin:0 auto;height:calc(100vh - 56px);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.projects-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.projects-header h1{font-size:var(--font-size-xxxl);font-weight:700;color:var(--text-color)}.projects-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;flex:1;overflow-y:auto;padding-right:6px;align-content:start}.project-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;transition:all .2s ease;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;height:420px}.project-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.project-thumb{height:160px;background:linear-gradient(135deg,var(--gray-100) 0%,var(--gray-200) 100%);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.project-thumb img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.project-thumb-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(10px);transform:scale(1.06);transition:filter .45s ease,transform .45s ease;will-change:filter,transform}.project-thumb-img.loaded{filter:blur(0);transform:scale(1)}.project-thumb.small{width:80px;height:80px;border-radius:8px;flex-shrink:0;overflow:hidden;position:relative}.project-thumb.small img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:8px}.project-thumb.small .project-thumb-img{border-radius:8px}.project-body{padding:18px 20px;display:grid;grid-template-rows:56px 48px 36px 42px;row-gap:10px;flex:1;min-height:0}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin:0;min-height:56px}.project-card-header h2{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-color);flex:1;min-width:0;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.project-description{color:var(--text-muted);font-size:var(--font-size-md);margin:0;line-height:1.5;min-height:48px;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.project-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0;font-size:var(--font-size-base);color:var(--text-muted);align-items:center}.meta-item{display:flex;align-items:center;gap:4px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-actions{display:flex;gap:8px;margin-top:0;align-items:center}.projects-list.list{display:flex;flex-direction:column;gap:12px}.project-row{display:grid;grid-template-columns:minmax(0,1fr) 170px auto;align-items:center;column-gap:16px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;transition:all .2s ease;min-height:112px}.project-row:hover{box-shadow:0 2px 8px #00000014}.row-left{display:flex;align-items:center;gap:16px;flex:1}.row-left .info{flex:1;min-width:0}.row-left .name{font-size:var(--font-size-xl);font-weight:600;color:var(--text-color);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-left .desc{font-size:var(--font-size-md);color:var(--text-muted);line-height:1.4;min-height:38px;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.row-center{color:var(--text-muted);font-size:var(--font-size-md);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-right{display:flex;align-items:center;gap:8px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.skeleton-block{background:var(--gray-200, #e5e7eb);border-radius:4px;animation:skeleton-pulse 1.5s ease-in-out infinite}.project-card.skeleton{pointer-events:none;cursor:default}.project-card.skeleton:hover{transform:none;box-shadow:0 1px 3px #0000000d}.skeleton-thumb{width:100%;height:160px;border-radius:0}.skeleton-body{padding:18px 20px;display:grid;grid-template-rows:56px 48px 36px 42px;row-gap:10px}.skeleton-title-line{height:18px;width:68%;margin-bottom:8px}.skeleton-title-line-2{height:18px;width:44%}.skeleton-desc-line{height:13px;width:100%;margin-bottom:6px}.skeleton-desc-line-2{height:13px;width:72%}.skeleton-meta-row{display:flex;gap:12px;align-items:center}.skeleton-meta-item{height:12px;width:80px}.skeleton-btn{height:34px;width:76px;border-radius:6px}.project-row.skeleton{pointer-events:none;cursor:default}.project-row.skeleton:hover{box-shadow:none}.skeleton-row-thumb{width:80px;height:80px;border-radius:8px;flex-shrink:0}.skeleton-row-name{height:16px;width:55%;margin-bottom:8px}.skeleton-row-desc{height:13px;width:90%;margin-bottom:5px}.skeleton-row-desc-2{height:13px;width:65%}.skeleton-row-meta{height:13px;width:100px}.skeleton-row-btn{height:34px;width:76px;border-radius:6px}.project-shell{display:grid;grid-template-columns:220px 1fr;gap:16px;height:calc(100vh - 72px);transition:grid-template-columns .25s ease}.project-shell:has(.project-nav.collapsed){grid-template-columns:60px 1fr}.project-nav{background:transparent;color:inherit;border-radius:8px;padding:0;display:flex;flex-direction:column;transition:all .25s ease}.project-nav .nav-item{background:transparent;border:none;color:var(--text-color);text-align:left;padding:13px 16px;cursor:pointer;font-weight:500;display:flex;align-items:center;gap:12px;transition:all .2s ease;border-radius:8px;height:45px}.project-nav .nav-item svg{flex-shrink:0;width:18px;height:18px}.project-nav .nav-item .nav-label{white-space:nowrap;overflow:hidden;transition:opacity .2s ease,width .2s ease;flex:1;min-width:0}.project-nav .nav-item.active{background:var(--color-primary);color:var(--bg-surface)}.project-nav.collapsed .nav-item{padding:13px 16px;justify-content:center;gap:12px}.project-nav.collapsed .nav-label{flex:0;width:0;opacity:0;overflow:hidden}.project-main{background:var(--cde-surface, var(--bg-surface));border:1px solid var(--cde-border, var(--border-color));border-radius:10px;padding:16px;overflow:auto;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--cde-fs-md, 13px);color:var(--cde-text, var(--text-color));position:relative}.section{display:none}.section.active{display:block}.data-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.data-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;height:calc(100% - 48px)}.folder-pane,.file-pane{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.pane-header{padding:10px 12px;font-weight:700;border-bottom:1px solid var(--border-color);background:var(--gray-100)}.file-list-container,.folder-tree-container{flex:1}.file-table.head,.file-row{align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-color)}.file-table.head{font-weight:600;background:var(--gray-100)}.file-row:hover{background:var(--gray-50)}.file-row .cell.name{font-weight:600}.file-row .file-status{font-size:var(--font-size-base);color:var(--text-muted)}.clash-section{display:flex;flex-direction:column;gap:16px}.clash-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.clash-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:var(--font-size-base)}.clash-actions{display:flex;gap:8px}.clash-actions-row{align-items:flex-end;flex-wrap:wrap}.clash-inline{display:inline-flex;align-items:center;gap:8px;padding:2px 6px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface)}.clash-inline label{font-size:var(--font-size-base);color:var(--text-muted);font-weight:600}.clash-select{border:none;outline:none;padding:6px 8px;font-size:var(--font-size-base);background:transparent;min-width:220px}.clash-table th{position:relative}.clash-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.clash-table th.sortable:hover{color:var(--primary-color)}.acc-clashes{display:flex;flex-direction:column;gap:10px}.acc-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.acc-title{font-size:var(--font-size-xxxl);font-weight:600;letter-spacing:-.02em}.acc-header-right{display:flex;gap:12px;align-items:center}.acc-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-base)}.acc-btn-link{background:transparent;border:none;color:var(--color-primary);font-weight:600;cursor:pointer}.acc-tabs{display:flex;gap:16px;margin-left:10px}.acc-tab{background:transparent;border:none;padding:8px 0;cursor:pointer;color:var(--text-secondary);font-weight:600}.acc-tab.active{color:var(--color-primary);border-bottom:2px solid var(--color-primary)}.acc-toolbar{display:flex;gap:12px;align-items:center}.acc-search{flex:1}.acc-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:var(--font-size-md)}.acc-select{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:var(--font-size-md);background:var(--bg-surface);min-width:220px}.acc-body{display:grid;grid-template-columns:1fr 320px;gap:12px;min-height:420px}.acc-matrix-wrap,.acc-side{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface);overflow:auto}.acc-muted{color:var(--text-muted)}.acc-footer{display:flex;justify-content:space-between;align-items:center;padding:6px 2px;color:var(--text-secondary)}.acc-footer-strong{font-weight:700}.acc-matrix{min-width:920px}.acc-cell{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:10px;font-size:var(--font-size-base)}.acc-cell:last-child{border-right:none}.acc-header-row .acc-cell{position:sticky;top:0;background:var(--bg-surface);z-index:3}.acc-corner{position:sticky;left:0;z-index:4;background:var(--bg-surface)}.acc-row-head{position:sticky;left:0;background:var(--bg-surface);z-index:2}.acc-col-head{height:170px;display:flex;align-items:flex-end;justify-content:center}.acc-rot{display:inline-block;transform:rotate(-90deg);transform-origin:left bottom;width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-ellipsis{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-val{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.acc-zero{background:var(--bg-surface);color:var(--text-primary)}.acc-na{background:var(--gray-100);color:var(--text-muted)}.acc-diag{background:var(--gray-50)}.acc-hot{background:var(--color-warning);color:var(--text-primary);font-weight:700}.acc-hi .acc-val,.acc-cell.acc-hi,.acc-row.acc-hi .acc-row-head{background:var(--color-primary-lightest)!important}.acc-side-empty{padding:14px}.acc-side-panel{padding:14px;display:flex;flex-direction:column;gap:10px}.acc-side-title{font-weight:700}.acc-side-sub{color:var(--text-muted);font-size:var(--font-size-base)}.acc-side-pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.acc-chip{border:1px solid var(--border-color);border-radius:999px;padding:6px 10px;background:var(--bg-surface);cursor:pointer;font-size:var(--font-size-base)}.acc-side-list{display:flex;flex-direction:column;gap:10px}.acc-side-item{border:1px solid var(--border-color);border-radius:10px;padding:10px;background:var(--bg-surface)}.acc-side-item-title{font-weight:700;margin-bottom:4px}.acc-side-item-desc{color:var(--text-secondary);font-size:var(--font-size-base);margin-bottom:8px}.acc-tooltip{position:fixed;z-index:9999;background:#111827eb;color:var(--bg-surface);padding:6px 8px;border-radius:6px;font-size:var(--font-size-sm);pointer-events:none;opacity:0;transition:opacity .12s ease;max-width:260px}.clash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.clash-card{border:1px solid var(--border-color);border-radius:10px;padding:14px;background:var(--bg-surface);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}.clash-card-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-base);color:var(--text-muted)}.clash-tag{background:var(--color-primary-lightest);color:var(--text-primary);padding:4px 8px;border-radius:12px;font-weight:600}.clash-badge{background:var(--color-primary-lightest);color:var(--color-primary);padding:4px 10px;border-radius:12px;font-weight:600}.clash-badge-accent{background:var(--color-warning-bg);color:var(--color-warning-dark)}.clash-card-actions{display:flex;gap:8px;flex-wrap:wrap}.clash-list,.clash-issue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:var(--text-primary);font-size:var(--font-size-base)}.issue-id{display:inline-block;min-width:56px;font-weight:700;color:var(--color-primary)}.clash-stats{display:flex;gap:12px}.clash-stat{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;min-width:90px;text-align:center}.clash-stat strong{display:block;font-size:var(--font-size-xl);color:var(--color-primary)}.clash-stat span{color:var(--text-muted);font-size:var(--font-size-base)}.clash-tabs{display:inline-flex;gap:4px;background:var(--bg-light);padding:4px;border-radius:10px;border:1px solid var(--border-color)}.clash-tab-btn{border:none;background:transparent;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:500;color:var(--text-secondary);font-size:var(--font-size-md);transition:all .2s ease}.clash-tab-btn:hover{color:var(--primary-blue);background:#3b82f614}.clash-tab-btn.active{background:#fff;color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #00000014}.clash-tab-content{display:none;border:1px solid var(--border-color);border-radius:10px;padding:12px;background:var(--bg-surface)}.clash-tab-content.active{display:block}.clash-table-wrapper{border:1px solid var(--border-color);border-radius:10px;overflow:hidden;background:var(--bg-surface);margin-top:10px}.clash-table{width:100%;border-collapse:collapse;font-size:var(--font-size-md)}.clash-table thead{background:var(--gray-100)}.clash-table th,.clash-table td{padding:10px 12px;border-bottom:1px solid var(--border-color);text-align:left}.clash-table tr:hover{background:var(--gray-50)}.clash-actions-row{align-items:flex-start;flex-wrap:wrap;gap:16px}.clash-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:250px;max-width:300px}.clash-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted)}.clash-model-list{width:100%;min-width:200px;max-height:140px;overflow-y:auto;background:var(--gray-100);border-radius:8px;padding:6px 8px}.clash-model-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:var(--font-size-base)}.clash-model-item:hover{background:var(--color-primary-lightest)}.clash-model-item input[type=checkbox]{width:14px;height:14px;cursor:pointer}.clash-model-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}.clash-model-name .model-name{flex:1;overflow:hidden;text-overflow:ellipsis}.clash-model-name .model-version{background:var(--color-warning-bg);color:var(--color-warning);padding:1px 6px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;flex-shrink:0}.clash-hint{font-size:var(--font-size-sm);color:var(--text-muted);padding:8px;text-align:center;line-height:1.5}.clash-matrix-output{margin-top:10px;border:1px solid var(--border-color);border-radius:10px;overflow:auto;background:var(--bg-surface)}.clash-matrix-loading{padding:14px;color:var(--text-muted)}.mx-grid{width:100%;display:flex;flex-direction:column}.mx-row{display:flex;width:100%}.mx-cell{padding:8px 10px;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.mx-corner{width:20%;flex:0 0 20%;background:var(--gray-100)}.mx-cell:last-child{border-right:none}.mx-header .mx-cell{background:var(--gray-100);font-weight:700}.mx-head{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:4px}.mx-head .model-name{flex:1;overflow:hidden;text-overflow:ellipsis}.mx-head .model-version{background:var(--color-warning-bg);color:var(--color-warning);padding:1px 4px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;flex-shrink:0}.mx-val{text-align:center;background:var(--color-warning-bg)}.mx-hi{background:var(--color-primary-lightest)!important;color:var(--color-primary)}.clash-empty{border:1px dashed var(--gray-300);border-radius:10px;padding:14px;background:var(--gray-50);color:var(--text-muted);margin-top:10px}.clash-space-list{margin-top:10px}#section-clash .clash-summary-bar{display:flex;gap:2rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;margin-bottom:1rem;font-size:.95rem}#section-clash .clash-summary-item{color:#495057}#section-clash .clash-summary-value,#section-clash .clash-summary-total{font-weight:600}#section-clash .clash-summary-open{color:#f59e0b}#section-clash .clash-summary-progress{color:#3b82f6}#section-clash .clash-summary-resolved{color:#22c55e}#section-clash .clash-summary-closed{color:#6366f1}#section-clash .clash-summary-date{color:#999;margin-left:auto}#section-clash .clash-matrix.autodesk-grid{background:#fff;border:1px solid #d0d5dd;border-radius:8px;overflow:hidden}#section-clash .clash-matrix.autodesk-grid .clash-matrix-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}#section-clash .clash-matrix.autodesk-grid .clash-matrix-header h4{margin:0;font-size:14px;font-weight:600;color:#1e293b;flex-shrink:0}#section-clash .clash-matrix.autodesk-grid .clash-matrix-info{font-size:12px;color:#64748b;background:#e2e8f0;padding:2px 8px;border-radius:10px;flex-shrink:0}#section-clash .clash-mode-controls{display:flex;align-items:center;gap:10px;margin:0 auto}#section-clash .clash-mode-switch{display:flex;align-items:center;background:#e8f0fe;border-radius:8px;padding:3px;flex-shrink:0}#section-clash .clash-mode-tab{padding:5px 18px;font-size:12px;font-weight:500;border:none;border-radius:6px;background:transparent;color:#06c;cursor:pointer;transition:background .15s,color .15s;line-height:1.5;white-space:nowrap}#section-clash .clash-mode-tab:hover{background:#0066cc1a}#section-clash .clash-mode-tab.active{background:#06c;color:#fff}#section-clash .clash-clearance-input{display:flex;align-items:center;gap:4px;font-size:12px;color:#64748b;flex-shrink:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s}#section-clash .clash-clearance-input.visible{visibility:visible;opacity:1;pointer-events:auto}#section-clash .clash-clearance-input label{white-space:nowrap;font-weight:500}#section-clash .clash-clearance-input input{width:56px;padding:3px 6px;font-size:12px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#1e293b;text-align:right;outline:none}#section-clash .clash-clearance-input input:focus{border-color:#06c;box-shadow:0 0 0 2px #0066cc1f}#section-clash .clash-clearance-input span{color:#94a3b8}#section-clash .clash-matrix.autodesk-grid .clash-matrix-table-wrapper{overflow-x:auto;max-height:500px;overflow-y:auto}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;--matrix-col-width: calc(100% / var(--matrix-col-count, 3))}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid col.matrix-col{width:var(--matrix-col-width)}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th,#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid td{border:1px solid #e2e8f0;padding:8px;text-align:center;white-space:nowrap;width:var(--matrix-col-width);min-width:var(--matrix-col-width);max-width:var(--matrix-col-width);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th{background:#f8fafc;font-weight:600;color:#475569;position:sticky;top:0;z-index:10}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th.corner-cell{background:#f1f5f9;left:0;z-index:20}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th.th-model-a{text-align:left;position:sticky;left:0;z-index:15}#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th.corner-cell,#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th.th-model-a,#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid th.th-model-b,#section-clash .clash-matrix.autodesk-grid .clash-matrix-grid td.matrix-cell{width:var(--matrix-col-width);min-width:var(--matrix-col-width);max-width:var(--matrix-col-width)}#section-clash .clash-matrix.autodesk-grid .matrix-cell{height:40px;cursor:default;transition:background .15s}#section-clash .clash-matrix.autodesk-grid .matrix-cell.loading{color:#94a3b8;vertical-align:middle}#section-clash .clash-matrix.autodesk-grid .matrix-cell.diagonal{background:#f1f5f9!important;color:#94a3b8;cursor:not-allowed}#section-clash .clash-matrix.autodesk-grid .matrix-cell.no-clash{background:#f0fdf4;color:#166534;cursor:pointer}#section-clash .clash-matrix.autodesk-grid .matrix-cell.no-clash:hover{background:#dcfce7}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-low{background:#fef9c3;color:#854d0e;cursor:pointer;font-weight:600}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-low:hover{background:#fef08a}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-medium{background:#fed7aa;color:#9a3412;cursor:pointer;font-weight:600}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-medium:hover{background:#fdba74}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-high{background:#fecaca;color:#991b1b;cursor:pointer;font-weight:600}#section-clash .clash-matrix.autodesk-grid .matrix-cell.has-clash-high:hover{background:#fca5a5}#section-clash .clash-matrix.autodesk-grid .matrix-cell.error{background:#fef2f2;color:#991b1b}#section-clash .clash-matrix.autodesk-grid .clash-matrix-cell-meta{opacity:.7;font-size:.75em}#section-clash .clash-matrix.autodesk-grid .cell-spinner{display:inline-block;width:14px;height:14px;border:2px solid #e2e8f0;border-top-color:#06c;border-radius:50%;animation:cell-spin .7s linear infinite;vertical-align:middle}@keyframes cell-spin{to{transform:rotate(360deg)}}#section-clash .clash-matrix.autodesk-grid .matrix-cell.cell-new{animation:clash-matrix-highlight-new .5s ease-out;box-shadow:0 0 8px #22c55e80,inset 0 0 4px #22c55e4d}#section-clash .self-clash.autodesk-grid{background:#fff;border:1px solid #d0d5dd;border-radius:8px;overflow:hidden;margin-top:20px}#section-clash .self-clash.autodesk-grid .self-clash-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}#section-clash .self-clash.autodesk-grid .self-clash-header h4{margin:0;font-size:14px;font-weight:600;color:#1e293b}#section-clash .self-clash.autodesk-grid .self-clash-info{font-size:12px;color:#64748b;background:#e2e8f0;padding:2px 8px;border-radius:10px}#section-clash .self-clash.autodesk-grid .self-clash-grid{display:flex;flex-wrap:wrap;gap:8px;padding:12px}#section-clash .self-clash.autodesk-grid .self-clash-item{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;min-width:150px}#section-clash .self-clash.autodesk-grid .self-clash-model-name{font-size:12px;color:#475569;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}#section-clash .self-clash.autodesk-grid .self-clash-count{font-size:14px;font-weight:600;padding:2px 10px;border-radius:4px;cursor:pointer;transition:all .15s}#section-clash .self-clash.autodesk-grid .self-clash-count.loading{color:#94a3b8}#section-clash .self-clash.autodesk-grid .self-clash-count.no-clash{background:#f0fdf4;color:#166534}#section-clash .self-clash.autodesk-grid .self-clash-count.no-clash:hover{background:#dcfce7}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-low{background:#fef9c3;color:#854d0e}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-low:hover{background:#fef08a}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-medium{background:#fed7aa;color:#9a3412}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-medium:hover{background:#fdba74}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-high{background:#fecaca;color:#991b1b}#section-clash .self-clash.autodesk-grid .self-clash-count.has-clash-high:hover{background:#fca5a5}#section-clash .self-clash.autodesk-grid .self-clash-count.error{background:#fef2f2;color:#991b1b}@keyframes clash-matrix-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes clash-matrix-highlight-new{0%{transform:scale(1.05);background-color:#22c55e33}to{transform:scale(1)}}.settings-container{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}.setting-category{border:1px solid var(--border-color);border-radius:8px;padding:16px}.setting-category h4{margin-bottom:12px}.setting-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.file-viewer-view{display:flex;flex-direction:column;height:calc(100vh - 56px)}.viewer-header{display:flex;align-items:center;padding:12px 16px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);gap:12px;position:relative}.viewer-header h1{font-size:var(--font-size-xl);font-weight:600;flex:1;color:var(--text-color)}.viewer-header .btn-back{background-color:var(--light-bg);color:var(--text-color);border:1px solid var(--border-color)}.viewer-shell{display:grid;grid-template-columns:260px 1fr 280px;gap:12px;padding:12px;flex:1}.viewer-left,.viewer-right{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.viewer-center{position:relative;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.viewer-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--gray-100)}.panel-header{padding:10px 12px;font-weight:600;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-surface);color:var(--text-color)}.panel-header span{color:var(--text-color)}.panel-body{flex:1;padding:8px 10px;background-color:var(--bg-surface);color:var(--text-color);overflow:hidden;display:flex;flex-direction:column;position:relative;z-index:1}.viewer-progress{position:absolute;left:50%;top:12px;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;min-width:240px;background:#fffffff2;border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow-lg);z-index:10}.vp-bar{width:100%;height:8px;background:var(--gray-200);border-radius:6px;overflow:hidden}.vp-fill{height:100%;width:0;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-lighter));transition:width .2s ease}.vp-text{font-size:var(--font-size-base);color:var(--text-color);text-align:center;font-weight:500}.project-3d-view{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.viewer-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg-surface);border-bottom:1px solid var(--border-color);min-height:36px;flex-shrink:0}.viewer-header h1{font-size:var(--font-size-base);font-weight:600;margin:0}.viewer-shell-3d{display:flex;flex-direction:row;gap:0;flex:1;height:100%;width:100%;overflow:hidden}.viewer-left-3d{display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border-color);overflow:hidden;height:100%;position:relative;width:280px;flex-basis:280px;flex-shrink:0}.viewer-right-3d{display:flex;flex-direction:column;background:var(--bg-surface);overflow:hidden;height:100%;position:relative;width:300px;flex-basis:300px;flex-shrink:0}.viewer-center-3d{flex:1;min-width:0;position:relative;background-color:var(--gray-100);height:100%;overflow:hidden}.viewer-right-3d{border-right:none;border-left:1px solid var(--border-color)}.panel-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--border-color);background:var(--gray-50);position:relative;z-index:1000;pointer-events:auto}.panel-tab{flex:1;padding:12px 16px;border:none;background:transparent;cursor:pointer;font-size:var(--font-size-base);font-weight:500;color:var(--text-secondary);transition:all 0s;border-bottom:2px solid transparent;position:relative;z-index:1001;pointer-events:auto}.panel-tab:hover{background:var(--gray-100);color:var(--text-primary)}.panel-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--bg-surface)}.viewer-center-3d #viewer-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.viewer-center-3d #viewer-toolbar-container{position:absolute;top:16px;left:16px;z-index:100}.model-tree{position:relative;height:100%}.model-tree .mt-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden}.mt-root{min-width:260px}.mt-row{display:grid;grid-template-columns:22px 16px 18px 1fr 24px;align-items:center;gap:6px;height:34px;padding:0 8px;white-space:nowrap}.mt-row.mt-file{grid-template-columns:22px 28px 16px 18px 1fr 24px}.mt-row:hover{background-color:var(--gray-50)}.mt-row.mt-active{background-color:var(--color-primary-lightest)}.mt-row.mt-element{cursor:pointer;transition:background-color .15s ease}.mt-row.mt-element:hover{background-color:var(--color-primary-lightest)}.mt-row.mt-element.mt-selected{background-color:var(--color-primary-light);border-left:3px solid var(--color-primary);font-weight:500}.mt-row.mt-element.mt-selected .mt-name{color:var(--color-primary-dark)}.mt-name{overflow:hidden;text-overflow:ellipsis;min-width:0}.mt-icon svg,.mt-toggle svg,.mt-visibility svg{width:16px;height:16px}.mt-toggle svg{transition:transform .2s ease;transform-origin:center}.mt-toggle.open svg{transform:rotate(90deg)}.mt-visibility{background:transparent;border:1px solid var(--border-color);border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer}.mt-visibility:hover{background-color:var(--color-primary);border-color:var(--color-primary)}.mt-visibility:hover svg{stroke:var(--bg-surface)}.mt-row.mt-file:not(.mt-loaded) .mt-visibility{opacity:.6;border-color:var(--gray-300);background-color:var(--gray-100)}.mt-row.mt-file:not(.mt-loaded) .mt-visibility svg{stroke:var(--text-muted)}.mt-row.mt-file:not(.mt-loaded) .mt-visibility:hover{background-color:var(--gray-200);border-color:var(--gray-400)}.mt-row.mt-file.mt-loaded[data-visible=true] .mt-visibility{background-color:var(--color-primary);border-color:var(--color-primary)}.mt-row.mt-file.mt-loaded[data-visible=true] .mt-visibility svg{stroke:var(--bg-surface)}.mt-row.mt-file.mt-loaded[data-visible=false] .mt-visibility{background-color:var(--gray-100);border-color:var(--gray-300)}.mt-row.mt-file.mt-loaded[data-visible=false] .mt-visibility svg{stroke:var(--text-muted)}.mt-checkbox input{width:16px;height:16px;cursor:pointer}.tree-folder-item{margin-bottom:2px}.tree-folder-header{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.tree-folder-header:hover{background-color:var(--gray-50)}.tree-file-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background-color .2s ease}.tree-file-item:hover{background-color:var(--gray-50)}.tree-toggle{display:flex;align-items:center;width:12px;height:12px;flex-shrink:0}.tree-toggle svg{width:100%;height:100%}.tree-children{margin-left:0}.tree-icon{display:flex;align-items:center;width:18px;height:18px;flex-shrink:0}.tree-icon svg{width:100%;height:100%}.tree-name{flex:1;font-size:var(--font-size-base);color:var(--text-color)}.tree-load-btn{background:transparent;border:1px solid var(--border-color);border-radius:4px;padding:4px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:all .2s ease;margin-left:auto}.tree-load-btn:hover{background-color:var(--color-primary);border-color:var(--color-primary)}.tree-load-btn:hover svg{stroke:var(--bg-surface)}.tree-load-btn svg{width:16px;height:16px}.revision-clouds-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-surface)}.revision-clouds-panel .panel-header{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--gray-50)}.revision-clouds-panel .panel-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.revision-clouds-panel .panel-body{flex:1;padding:12px;overflow-y:auto}.revision-clouds-panel .no-clouds-message{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:var(--font-size-md)}.revision-clouds-panel .cloud-item{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:12px;transition:all .2s ease}.revision-clouds-panel .cloud-item:hover{box-shadow:var(--shadow);border-color:var(--color-primary)}.revision-clouds-panel .cloud-item-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}.revision-clouds-panel .cloud-color-indicator{width:20px;height:20px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.revision-clouds-panel .cloud-content-wrapper{flex:1;min-width:0}.revision-clouds-panel .cloud-content{font-size:var(--font-size-md);font-weight:500;color:var(--text-color);line-height:1.4;word-wrap:break-word}.revision-clouds-panel .cloud-item-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:var(--font-size-base);color:var(--text-muted)}.revision-clouds-panel .cloud-element{font-family:Courier New,monospace}.revision-clouds-panel .cloud-date{font-size:var(--font-size-xs)}.revision-clouds-panel .cloud-item-actions{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--gray-200)}.revision-clouds-panel .cloud-color-input{width:32px;height:32px;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;padding:0}.revision-clouds-panel .cloud-item-actions .btn{font-size:var(--font-size-base);padding:6px 12px;min-height:32px}.revision-clouds-panel .cloud-item-actions .btn-danger{background-color:var(--danger-color);color:#fff;border-color:var(--danger-color)}.revision-clouds-panel .cloud-item-actions .btn-danger:hover{background-color:var(--color-danger-dark);border-color:var(--color-danger-dark)}.revision-clouds-panel .cloud-item-actions .btn-primary{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.revision-clouds-panel .cloud-item-actions .btn-primary:hover{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.revision-clouds-panel .loading{text-align:center;padding:40px;color:var(--text-muted)}.revision-clouds-panel .error{color:var(--danger-color);padding:20px;text-align:center}.topics-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-surface)}.topics-panel-header{padding:16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--gray-50)}.topics-header-left{display:flex;align-items:center;gap:16px}.topics-header-left h2{margin:0;font-size:var(--font-size-xxl);font-weight:600;color:var(--text-color)}.topics-view-selector{display:flex;align-items:center;gap:8px}.view-label{font-size:var(--font-size-md);color:var(--text-muted)}.topics-filter-select{padding:var(--select-padding-y, 6px) var(--spacing-xl, 18px) var(--select-padding-y, 6px) var(--select-padding-x, 10px);border:1px solid var(--select-border-color, var(--border-color));border-radius:var(--select-border-radius-sm, 4px);font-size:var(--select-font-size, 13px);background-color:var(--select-bg-color, var(--bg-surface));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:12px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:var(--select-transition);color:var(--select-text-color, var(--text-primary));min-width:100px;box-sizing:border-box}.topics-filter-select:hover{border-color:var(--select-hover-border, var(--primary-blue-lighter))}.topics-filter-select:focus{outline:none;border-color:var(--select-focus-border, var(--cde-blue));box-shadow:0 0 0 3px var(--select-focus-shadow, rgba(20, 96, 184, .15))}.topics-header-right{display:flex;align-items:center;gap:8px}.topics-header-actions{display:flex;align-items:center;gap:4px}.topics-filters-bar{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--gray-50)}.topics-filters-left{display:flex;align-items:center;gap:12px}.topics-checkbox-label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-md);color:var(--text-color);cursor:pointer}.topics-checkbox-label input[type=checkbox]{cursor:pointer}.topics-list{flex:1;overflow-y:auto;padding:12px}.topic-item{display:flex;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;cursor:pointer;transition:all .2s ease;background-color:var(--bg-surface)}.topic-item:hover{box-shadow:var(--shadow);border-color:var(--color-primary)}.topic-thumbnail{width:120px;height:90px;flex-shrink:0;border-radius:4px;overflow:hidden;background-color:var(--gray-200)}.topic-thumbnail img{width:100%;height:100%;object-fit:cover}.topic-thumbnail-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--gray-200) 0%,var(--gray-100) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--font-size-base)}.topic-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.topic-id{font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.topic-status-badge{padding:4px 8px;border-radius:4px;font-size:var(--font-size-base);font-weight:500}.topic-status-new{background-color:var(--color-primary);color:var(--bg-surface)}.topic-status-active{background-color:var(--color-success);color:var(--bg-surface)}.topic-status-resolved,.topic-status-closed{background-color:var(--gray-500);color:var(--bg-surface)}.topic-description{font-size:var(--font-size-md);color:var(--text-color);margin-bottom:8px;line-height:1.4}.topic-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-base);color:var(--text-muted);margin-bottom:8px}.topic-tags{display:flex;flex-wrap:wrap;gap:6px}.topic-tag{padding:2px 8px;background-color:var(--gray-200);border-radius:12px;font-size:var(--font-size-xs);color:var(--text-color)}.topic-item-actions{display:flex;align-items:flex-start}.topic-action-btn{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--text-muted)}.topic-action-btn:hover{background-color:var(--gray-100);color:var(--text-color)}.no-topics-message{text-align:center;padding:40px;color:var(--text-muted)}.topics-panel-compact{height:100%;width:100%;overflow-x:hidden;padding:8px 10px}.topics-compact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.topics-compact-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-color)}.topics-compact-new-btn{width:24px;height:24px;border-radius:4px;border:1px solid var(--border-color);font-size:var(--font-size-xl);line-height:1;display:flex;align-items:center;justify-content:center;background-color:var(--bg-surface)}.topics-compact-new-btn:hover{background-color:var(--gray-100)}.topics-compact-filters{display:flex;gap:6px;margin-bottom:8px}.topics-compact-select{flex:1;min-width:0;padding:var(--select-padding-y-sm, 4px) var(--spacing-lg, 14px) var(--select-padding-y-sm, 4px) var(--select-padding-x-sm, 8px);font-size:var(--select-font-size-sm, 12px);border-radius:var(--select-border-radius-sm, 4px);border:1px solid var(--select-border-color, var(--border-color));background-color:var(--select-bg-color, var(--bg-surface));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:var(--select-transition);color:var(--select-text-color, var(--text-primary));box-sizing:border-box}.topics-compact-select:hover{border-color:var(--select-hover-border, var(--primary-blue-lighter))}.topics-compact-select:focus{outline:none;border-color:var(--select-focus-border, var(--cde-blue));box-shadow:0 0 0 2px var(--select-focus-shadow, rgba(20, 96, 184, .1))}.topics-compact-list{flex:1;overflow-y:auto}.topic-compact-item{padding:6px 8px;border-radius:6px;border:1px solid var(--border-color);background-color:var(--bg-surface);margin-bottom:6px;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.topic-compact-item:hover{background-color:var(--gray-50);box-shadow:var(--shadow)}.topic-compact-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.topic-compact-id{font-size:var(--font-size-base);font-weight:600;color:var(--text-color)}.topic-compact-status{font-size:var(--font-size-xs);padding:1px 6px;border-radius:10px;background-color:var(--gray-200)}.topic-compact-description{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topics-compact-empty{font-size:var(--font-size-base);color:var(--text-muted);text-align:center;padding:16px 8px}.conflicts-panel{display:flex;flex-direction:column;height:100%;width:100%;max-width:100%;background:var(--bg-surface);padding:10px 12px;overflow:hidden;box-sizing:border-box}.conflicts-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.conflicts-panel-header h3{margin:0;font-size:var(--font-size-md);font-weight:600}.conflicts-filters{display:flex;gap:6px;margin-bottom:8px}.conflict-select{flex:1;min-width:0;padding:6px 8px;font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:4px}.conflicts-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.conflict-item{border:1px solid var(--border-color);border-radius:8px;padding:8px;background:var(--bg-surface);box-shadow:0 1px 2px #0000000a}.conflict-title-row{display:flex;gap:6px;align-items:center;margin-bottom:4px;flex-wrap:wrap}.conflict-id{font-weight:600;font-size:var(--font-size-base);color:var(--text-color)}.conflict-status,.conflict-severity{font-size:var(--font-size-xs);padding:2px 6px;border-radius:10px;line-height:1.2}.conflict-status-open{background:var(--color-danger-bg);color:var(--color-danger)}.conflict-status-new{background:var(--color-primary-lightest);color:var(--color-primary)}.conflict-status-resolved{background:var(--color-success-bg);color:var(--color-success)}.conflict-severity-high{background:var(--color-danger-bg);color:var(--color-danger)}.conflict-severity-medium{background:var(--color-warning-bg);color:var(--color-warning)}.conflict-severity-low{background:var(--color-info-bg);color:var(--color-info)}.conflict-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:4px;color:var(--text-color)}.conflict-meta{font-size:var(--font-size-xs);color:var(--text-muted);display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.conflict-actions{display:flex;gap:6px;justify-content:flex-start}.conflicts-empty{text-align:center;color:var(--text-muted);font-size:var(--font-size-base);padding:12px 8px}.form-dialog-form .form-section{margin-bottom:24px}.form-dialog-form .form-section:last-child{margin-bottom:0}.form-dialog-form .section-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:16px;color:var(--text-color);border-bottom:1px solid var(--border-color);padding-bottom:8px}.form-dialog-form .form-group{margin-bottom:16px}.form-dialog-form .form-group:last-child{margin-bottom:0}.form-dialog-form .form-label{display:block;font-size:var(--font-size-md);font-weight:500;margin-bottom:8px;color:var(--text-color)}.form-dialog-form .form-label .required{color:var(--color-danger);margin-left:4px}.form-dialog-form input[type=text],.form-dialog-form input[type=number],.form-dialog-form select{width:100%;padding:8px 12px;font-size:var(--font-size-md);border:1px solid var(--border-color);border-radius:4px;box-sizing:border-box}.form-dialog-form input[type=text]:focus,.form-dialog-form input[type=number]:focus,.form-dialog-form select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 2px #2563eb1a}.form-dialog-form .model-select-container{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;padding:8px;border:1px solid var(--border-color);border-radius:4px;background:var(--gray-50)}.form-dialog-form .checkbox-label{display:flex;align-items:center;gap:8px;padding:8px;cursor:pointer;border-radius:4px;transition:background-color .2s}.form-dialog-form .checkbox-label:hover{background-color:var(--gray-100)}.form-dialog-form .checkbox-label input[type=checkbox]{width:auto;margin:0;cursor:pointer}.form-dialog-form .checkbox-label .model-category{font-size:var(--font-size-base);color:var(--text-muted);margin-left:auto}.form-dialog-form .rules-container{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--border-color);border-radius:4px;background:var(--gray-50)}.viewpoints-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-surface)}.viewpoints-panel-header{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--gray-50)}.viewpoints-panel-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.viewpoint-item{display:flex;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;background-color:var(--bg-surface)}.viewpoint-snapshot{width:120px;height:90px;flex-shrink:0;border-radius:4px;object-fit:cover;background-color:var(--gray-200)}.viewpoint-content{flex:1;display:flex;flex-direction:column;justify-content:space-between}.viewpoint-header{margin-bottom:12px}.viewpoint-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.viewpoint-actions{display:flex;gap:8px;flex-wrap:wrap}.viewpoint-actions .btn{font-size:var(--font-size-base);padding:6px 12px;min-height:32px}.loading-indicator{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:var(--bg-surface);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{position:fixed;top:20px;right:20px;background-color:var(--color-danger-bg);color:var(--color-danger);padding:16px 20px;border-radius:4px;border:1px solid var(--color-danger);box-shadow:var(--shadow-lg);z-index:10000;max-width:400px;animation:slideIn .3s ease}.success-message{position:fixed;top:20px;right:20px;background-color:var(--color-success-bg);color:var(--color-success);padding:16px 20px;border-radius:4px;border:1px solid var(--color-success);box-shadow:var(--shadow-lg);z-index:10000;max-width:400px;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.main-layout{display:flex;flex-direction:column;height:100vh;background-color:var(--light-bg)}.layout-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);padding:16px 20px;box-shadow:var(--shadow)}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.app-title{font-size:var(--font-size-xxxl);font-weight:700;color:var(--color-primary);margin:0}.header-actions{display:flex;gap:12px}.layout-content{flex:1;overflow:hidden;display:flex}#app-container{flex:1;overflow:hidden;height:100%}.layout-footer{background-color:var(--bg-surface);border-top:1px solid var(--border-color);padding:16px 20px;text-align:center;font-size:var(--font-size-base);color:var(--text-muted)}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);padding:0;box-shadow:var(--shadow)}.header-container{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;max-width:1400px;margin:0 auto;width:100%}.header-nav{display:flex;gap:12px}.nav-button{background-color:transparent;border:none;padding:8px 16px;color:var(--text-color);cursor:pointer;font-weight:500;transition:all .2s ease;border-radius:4px}.nav-button:hover{background-color:var(--light-bg);color:var(--color-primary)}.app-sidebar{width:250px;background-color:var(--bg-surface);border-right:1px solid var(--border-color);overflow-y:auto;padding:20px 0}.sidebar-content{padding:0}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin:0}.nav-link{display:block;padding:12px 20px;color:var(--text-color);text-decoration:none;transition:all .2s ease;border-left:3px solid transparent}.nav-link:hover{background-color:var(--light-bg);color:var(--color-primary);border-left-color:var(--color-primary)}.nav-link.active{background-color:var(--light-bg);color:var(--color-primary);border-left-color:var(--color-primary);font-weight:600}.app-footer{background-color:var(--bg-surface);border-top:1px solid var(--border-color);padding:16px 20px;text-align:center;font-size:var(--font-size-base);color:var(--text-muted)}.footer-content{max-width:1400px;margin:0 auto}@media(max-width:768px){.header-container{flex-direction:column;gap:12px}.app-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-color);max-height:200px;overflow-x:auto}.sidebar-nav ul{display:flex;gap:0}.sidebar-nav li{flex:1}.nav-link{text-align:center;border-left:none;border-bottom:3px solid transparent}.nav-link:hover,.nav-link.active{border-left:none;border-bottom-color:var(--color-primary)}}.breadcrumb{padding:12px 20px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-color)}.breadcrumb-list{list-style:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}.breadcrumb-item{display:flex;align-items:center;font-size:var(--font-size-base);color:var(--text-color)}.breadcrumb-item:not(:last-child):after{content:"/";margin-left:8px;color:var(--text-muted)}.breadcrumb-item a{color:var(--color-primary);text-decoration:none;transition:all .2s ease}.breadcrumb-item a:hover{text-decoration:underline;color:var(--color-primary-dark)}.breadcrumb-item[aria-current=page]{color:var(--text-muted);font-weight:500}.dialog{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal);pointer-events:auto}.dialog-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0f172a8c;opacity:0;transition:opacity .25s ease;pointer-events:auto}.dialog.dialog-open>.dialog-overlay{opacity:1}.dialog-content{position:relative;background-color:var(--bg-surface);border-radius:10px;box-shadow:0 20px 60px #0000004d,0 8px 20px #00000026;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;opacity:0;transform:translateY(-12px) scale(.97);transition:opacity .2s ease,transform .2s ease;border:1px solid var(--border-color);pointer-events:auto;z-index:1}.dialog-small .dialog-content{width:400px;max-width:calc(100vw - 40px)}.dialog-medium .dialog-content{width:700px;max-width:calc(100vw - 40px)}.dialog-large .dialog-content{width:800px;max-width:calc(100vw - 40px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background-color:var(--bg-surface)}.dialog-header h2{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.dialog-close{background-color:transparent;border:none;font-size:var(--font-size-xxxl);line-height:1;color:var(--text-muted);cursor:pointer;padding:4px;width:28px;height:28px;display:flex;justify-content:center;align-items:center;transition:all .2s ease;border-radius:4px}.dialog-close:hover{color:var(--text-primary);background-color:var(--gray-100)}.dialog-body{flex:1;padding:24px 20px;overflow-y:auto;background-color:var(--bg-surface);min-height:0}.dialog-body::-webkit-scrollbar{width:8px}.dialog-body::-webkit-scrollbar-track{background:var(--gray-100)}.dialog-body::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.dialog-body::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border-color);background-color:var(--gray-50)}.dialog-footer .btn{padding:8px 16px;font-size:var(--font-size-md);font-weight:500;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .2s ease;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.dialog-footer .btn-primary{background-color:var(--color-primary);color:var(--bg-surface);border-color:var(--color-primary)}.dialog-footer .btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.dialog-footer .btn-primary:active{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.dialog-footer .btn-secondary{background-color:var(--bg-surface);color:var(--text-secondary);border-color:var(--gray-300)}.dialog-footer .btn-secondary:hover{background-color:var(--gray-50);border-color:var(--gray-400)}.dialog-footer .btn-secondary:active{background-color:var(--gray-100);border-color:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog.dialog-open .dialog-content{opacity:1;transform:translateY(0) scale(1)}.dialog.closing .dialog-overlay{opacity:0}.dialog.closing .dialog-content{opacity:0;transform:translateY(-12px) scale(.97)}.form-dialog-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:var(--font-size-md);font-weight:500;color:var(--text-primary)}.form-field .required{color:var(--color-danger);margin-left:2px}.form-field input,.form-field textarea,.form-field select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:var(--font-size-md);font-family:inherit;color:var(--text-primary);background-color:var(--bg-surface);transition:all .2s ease}.form-field input:hover,.form-field textarea:hover,.form-field select:hover{border-color:var(--gray-400)}.form-field select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.form-field textarea{resize:vertical;min-height:80px}.form-field input:invalid:not(:placeholder-shown),.form-field textarea:invalid:not(:placeholder-shown){border-color:var(--color-danger)}.form-field input:invalid:not(:placeholder-shown):focus,.form-field textarea:invalid:not(:placeholder-shown):focus{box-shadow:0 0 0 3px #dc26261a}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border:1px solid var(--gray-300);border-radius:6px;transition:all .2s ease}.radio-option:hover{background-color:var(--gray-50);border-color:var(--gray-400)}.radio-option input[type=radio]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--color-primary)}.radio-option span{font-size:var(--font-size-md);color:var(--text-secondary)}.radio-option:has(input[type=radio]:checked){background-color:var(--color-primary-lightest);border-color:var(--color-primary)}.checkbox-group{display:flex;flex-direction:column;gap:8px;max-height:190px;overflow:auto;padding:8px;border:1px solid var(--gray-300);border-radius:6px;background:#fff}.checkbox-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.checkbox-option:hover{background:var(--gray-50)}.checkbox-option input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--color-primary)}.checkbox-option span{font-size:var(--font-size-md);color:var(--text-secondary)}@media(max-width:768px){.dialog-small .dialog-content,.dialog-medium .dialog-content,.dialog-large .dialog-content{width:calc(100% - 40px);max-width:100%}}.model-picker-dialog{padding:8px 0}.model-picker-dialog p{margin:0 0 12px;font-size:var(--font-size-md);color:var(--text-muted)}.model-picker-dialog .model-list{display:flex;flex-direction:column;gap:8px}.model-picker-dialog .model-item{display:flex;align-items:center;padding:10px 12px;border:1px solid var(--gray-200);border-radius:6px;background:var(--gray-50);transition:all .2s ease}.model-picker-dialog .model-item:hover{background:var(--color-primary-lightest);border-color:var(--color-primary)}.model-picker-dialog .model-checkbox-row{display:flex;align-items:center;gap:12px;width:100%;cursor:pointer}.model-picker-dialog .model-checkbox-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.model-picker-dialog .model-name{flex:1;font-size:var(--font-size-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-picker-dialog .model-version-select{padding:6px 10px;border:1px solid var(--gray-300);border-radius:4px;font-size:var(--font-size-base);background:var(--bg-surface);cursor:pointer;min-width:70px}.model-picker-dialog .model-version-select:hover{border-color:var(--color-primary)}.model-picker-dialog .model-version-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f61a}.space-folder-picker{border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#fff}.space-folder-picker .ftree-search{border:none;outline:none;background:transparent;font-size:13px;flex:1}.space-folder-picker .space-folder-opt{cursor:pointer}.space-folder-picker .space-folder-opt.selected{outline:2px solid var(--color-primary, #3b82f6);outline-offset:-2px;background:#eff6ff!important}.space-folder-picker .space-folder-opt.selected .ftree-foldname{color:var(--color-primary, #3b82f6)}.topbar{position:sticky;top:0;z-index:3000;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-surface);-webkit-backdrop-filter:saturate(180%) blur(6px);backdrop-filter:saturate(180%) blur(6px);border-bottom:1px solid var(--border-color)}.topbar__left,.topbar__center,.topbar__right{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:6px;text-decoration:none}.brand-text{font-weight:800;color:var(--color-primary);letter-spacing:.2px;font-size:var(--font-size-xl)}.brand-logo{width:40px;height:40px;border-radius:4px}.brand-model{font-size:var(--font-size-base);color:var(--text-muted);margin-left:4px}.search{position:relative}.search input{height:36px;width:360px;padding:0 36px 0 12px;border:1px solid var(--border-color);border-radius:8px;outline:none;background-color:var(--bg-surface);color:var(--text-color)}.search input::placeholder{color:var(--text-muted)}.search .icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.topbar-search-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-lg);z-index:3002;max-height:320px;overflow-y:auto;padding:6px}.topbar-search-suggestion{width:100%;border:0;background:transparent;color:var(--text-color);text-align:left;border-radius:8px;padding:9px 10px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.topbar-search-suggestion:hover,.topbar-search-suggestion.active{background:var(--light-bg)}.topbar-search-suggestion .suggestion-name{font-size:var(--font-size-base);font-weight:600;line-height:1.35}.topbar-search-suggestion .suggestion-description{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.view-toggle{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.toggle-btn{padding:6px 10px;background:var(--bg-surface);border:0;cursor:pointer;color:var(--text-muted);font-size:var(--font-size-base)}.toggle-btn.active{background:var(--light-bg);color:var(--color-primary);font-weight:600}.avatar-container{position:relative}.avatar{width:32px;height:32px;border-radius:50%;background:var(--light-bg);display:grid;place-items:center;color:var(--text-muted);cursor:pointer;transition:all .2s ease;font-size:var(--font-size-md);font-weight:600;overflow:hidden}.avatar:hover{background:var(--border-color)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);min-width:220px;z-index:3003;overflow:hidden;margin-top:4px}.dropdown-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text-color);text-decoration:none;transition:background-color .2s ease;font-size:var(--font-size-md)}.dropdown-item:hover{background-color:var(--light-bg)}.dropdown-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dropdown-icon svg{width:100%;height:100%}.dropdown-divider{height:1px;background-color:var(--border-color);margin:4px 0}.language-switcher{display:flex;align-items:center;gap:12px;position:relative}.language-select{margin-left:auto;padding:6px 32px 6px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface);color:var(--text-color);font-size:var(--font-size-base);cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%234ba5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:12px;min-width:120px}.language-select:hover{border-color:var(--color-primary)}.language-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #4ba5db1a}.btn-primary{background-color:var(--color-primary);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{opacity:.9}.notification-bell{position:relative}.bell-btn{position:relative;width:36px;height:36px;background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-primary);transition:background .2s ease,transform .15s ease}.bell-btn:hover{background:color-mix(in srgb,var(--color-primary) 16%,transparent);transform:translateY(-1px)}.bell-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary) 45%,transparent);outline-offset:2px}.bell-icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.bell-badge{position:absolute;top:2px;right:2px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:10px;padding:0 3px;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.bell-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);width:320px;z-index:3003;overflow:hidden}.bell-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border-color)}.bell-dropdown-title{font-weight:600;font-size:var(--font-size-md);color:var(--text-color)}.bell-mark-all-btn{background:transparent;border:0;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-primary);padding:2px 4px}.bell-mark-all-btn:hover{text-decoration:underline}.bell-dropdown-list{max-height:360px;overflow-y:auto}.bell-item{display:flex;flex-direction:column;gap:4px;padding:10px 14px;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--border-color)}.bell-item:last-child{border-bottom:0}.bell-item:hover{background:var(--light-bg)}.bell-item--unread{border-left:3px solid var(--color-primary);padding-left:11px}.bell-item--read{border-left:3px solid transparent;padding-left:11px}.bell-item-top{display:flex;align-items:center;gap:8px}.bell-item-type-icon{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;border:1px solid transparent}.bell-item-type-icon--created{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 28%,transparent)}.bell-item-type-icon--commented{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}.bell-item-type-icon--status{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.bell-item-type-icon--default{background:var(--light-bg);color:var(--text-muted);border-color:var(--border-color)}.bell-item-status{font-size:11px;color:var(--text-muted);font-weight:500}.bell-item-status.is-unread{color:var(--color-primary);font-weight:700}.bell-unread-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--color-primary)}.bell-item-msg{font-size:var(--font-size-base);color:var(--text-color);line-height:1.4}.bell-item--unread .bell-item-msg{font-weight:600}.bell-item-time{font-size:var(--font-size-sm);color:var(--text-muted)}.bell-empty,.bell-loading{padding:24px 14px;text-align:center;color:var(--text-muted);font-size:var(--font-size-base)}.project-detail-view{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.project-shell{display:flex;height:100%;width:100%;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-light)}.project-tools-bar{display:flex;gap:12px;padding:12px 16px;background:#fff;border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px}.project-tools-bar{background:var(--bg-surface)}.project-nav.collapsed .nav-label,.project-nav.collapsed .nav-collapse-btn .collapse-label{opacity:0;width:0;display:none}.project-nav.collapsed svg.icon-collapse{display:block}.project-nav.collapsed svg.icon-expand{display:none}.project-nav.collapsed .nav-collapse-btn{justify-content:center;padding:12px 16px;gap:0}.project-nav.collapsed .nav-collapse-btn .icon-collapse{display:none}.project-nav.collapsed .nav-collapse-btn .icon-expand{display:block}.nav-items{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{color:var(--text-color)}.nav-item:hover{background:var(--bg-hover)}.nav-item.active{background:var(--color-primary-bg);color:var(--color-primary)}.nav-item svg{color:var(--text-muted)}.nav-item.active svg{color:var(--color-primary)}.project-nav.collapsed .nav-item{padding:12px;justify-content:center}.nav-item svg{width:18px;height:18px;flex-shrink:0;stroke:currentColor}.project-nav .nav-item,.project-nav .nav-item:hover{color:var(--text-primary)}.nav-item:hover{background-color:var(--bg-hover)}.project-nav .nav-item.active{background-color:var(--color-primary);color:var(--bg-surface)}.project-nav .nav-item.active svg{color:var(--bg-surface)!important}.nav-collapse-btn{margin-top:auto;display:flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:none;cursor:pointer;color:var(--text-secondary);transition:all .2s}.nav-collapse-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.explorer-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-color)}.nav-collapse-btn svg{flex-shrink:0}.nav-collapse-btn .collapse-label{flex:1}.project-main{flex:1;display:flex;flex-direction:column;background-color:var(--bg-white);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.section{display:none;flex:1;overflow-y:auto;padding:var(--spacing-lg)}.section.active{display:flex;flex-direction:column}.explorer-pane{display:flex;flex-direction:column;background-color:var(--bg-lighter);height:100%}.explorer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--bg-surface);border-bottom:1px solid var(--gray-200);gap:16px}.breadcrumb-container{flex:1;min-width:0}.header-controls{display:flex;gap:8px;align-items:center;flex-shrink:0}.view-mode-toggle{display:flex;gap:0;border:1px solid var(--gray-300);border-radius:4px;overflow:hidden;background-color:var(--gray-50)}.view-mode-toggle .btn-icon{padding:6px 10px;border:none;background:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.view-mode-toggle .btn-icon:hover{background-color:#0000000d}.view-mode-toggle .btn-icon.active{background-color:#fff;color:var(--primary-color);box-shadow:0 1px 2px #0000001a}.header-controls .btn-sm{padding:6px 12px;font-size:var(--font-size-base);min-height:32px}#btn-cde-submittal,#btn-cde-rfa,#btn-cde-versions{padding:6px 8px;border:1px solid var(--gray-300);border-radius:4px;background-color:var(--gray-50);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}#btn-cde-submittal:hover,#btn-cde-rfa:hover,#btn-cde-versions:hover{background-color:#fff;border-color:var(--primary-color);color:var(--primary-color)}#btn-cde-submittal svg,#btn-cde-rfa svg,#btn-cde-versions svg{width:16px;height:16px}.cde-zone-indicator{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;background-color:var(--gray-50);border:1px solid var(--gray-300);font-size:var(--font-size-xs);font-weight:500}.zone-dot{width:8px;height:8px;border-radius:50%}.zone-dot.zone-wip{background-color:var(--color-warning)}.zone-dot.zone-shared{background-color:var(--color-info)}.zone-dot.zone-published{background-color:var(--color-success)}.zone-dot.zone-archived{background-color:var(--gray-600)}.zone-label{color:var(--text-secondary)}.breadcrumb{display:flex;align-items:center;gap:0;font-size:var(--font-size-base);color:var(--text-primary)}.breadcrumb-item{color:var(--text-secondary);transition:color .2s;padding:2px 4px;border-radius:3px}.breadcrumb-item:not(.active):hover{color:var(--primary-color);background-color:#0000000d;cursor:pointer}.breadcrumb-item.active{color:var(--text-primary);font-weight:500}.breadcrumb-separator{color:var(--text-light);margin:0 6px;font-weight:300}.file-list-container{flex:1;overflow:auto;width:100%}.file-list-container .cde-table{min-width:100%;table-layout:auto}.folder-item{padding:var(--spacing-sm) 0}.folder-header{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;display:flex;align-items:center;gap:var(--spacing-sm)}.folder-header:hover{background-color:#1e5a961a}.folder-name{font-size:var(--font-size-base);color:var(--text-primary)}.subfolders{padding-left:var(--spacing-lg);border-left:1px solid var(--gray-200);margin-left:var(--spacing-sm)}.data-section{display:flex;flex-direction:column;height:100%;gap:var(--spacing-md)}.data-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:#fff;border:1px solid var(--border-color);border-radius:8px;gap:var(--spacing-md)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:var(--spacing-sm)}.search-box{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px 12px;background:var(--bg-light);border:1px solid var(--border-color);border-radius:6px}.search-box input{border:none;background:transparent;outline:none;font-size:var(--font-size-sm);width:180px}.search-box svg{width:14px;height:14px;stroke:var(--text-light)}.data-layout{display:flex;flex:1;gap:var(--spacing-md);min-height:0}.folder-tree-panel,.file-list-panel{background:#fff;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.folder-tree-panel{width:250px;flex-shrink:0}.file-list-panel{flex:1;min-width:0}.panel-header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--bg-lighter)}.panel-header h4{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.folder-tree-container,.file-list-container{flex:1;overflow:auto}.file-list-header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.cde-table{width:100%;border-collapse:collapse;background:#fff;font-size:var(--font-size-base);table-layout:fixed}.cde-table thead{background-color:var(--gray-50);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:10}.cde-table th{padding:8px 12px;text-align:left;font-weight:600;color:var(--text-color);font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--gray-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-color:var(--gray-50)}.cde-table th.col-name{position:sticky;left:0;z-index:10;background-color:var(--gray-50);border-right:1px solid var(--gray-200);min-width:200px;width:250px;resize:none;overflow:hidden}.cde-table th.col-name .resize-handle,.cde-table th.col-name:after{display:none!important;pointer-events:none}.cde-table td.col-name{position:sticky;left:0;z-index:9;background-color:var(--bg-surface);border-right:1px solid var(--gray-200);min-width:200px;width:250px}.cde-table th.col-actions{position:sticky;right:0;z-index:20;background-color:var(--gray-50);border-left:1px solid var(--gray-200);min-width:30px;width:30px;text-align:center;box-shadow:-2px 0 4px #0000000d;justify-content:space-around}.cde-table td.col-actions{position:sticky;right:0;z-index:19;background-color:var(--bg-surface);border-left:1px solid var(--gray-200);min-width:30px;width:30px;padding:2px!important;vertical-align:middle}.cde-table td.col-actions .actions-cell{display:flex;justify-content:space-around;align-items:center;width:100%;height:100%;gap:2px}.cde-table td.col-actions .btn-view-model,.cde-table td.col-actions .btn-file-menu,.cde-table td.col-actions .btn-folder-menu{width:12px;height:12px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;opacity:.5;transition:opacity .2s;flex-shrink:0}.resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;background:transparent;z-index:20}.resize-handle:hover{background:var(--color-info)}.cde-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.cde-table th.sortable:hover{background-color:var(--gray-200)}.cde-table th.sort-asc:after{content:" ▲";font-size:var(--font-size-xs);color:var(--color-info)}.cde-table th.sort-desc:after{content:" ▼";font-size:var(--font-size-xs);color:var(--color-info)}.cde-name{align-items:center;gap:6px}.folder-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.folder-icon svg{width:16px;height:16px;color:var(--color-warning)}.folder-name{font-weight:500;color:var(--text-color);font-size:inherit}.file-name{font-weight:400;color:var(--text-color);font-size:inherit}.cde-table th.col-modified-by,.cde-table th.col-created-by,.cde-table th.col-modified-on,.cde-table th.col-version,.cde-table th.col-size,.cde-table th.col-tags{min-width:100px;width:120px;max-width:200px;text-align:left;position:relative;-webkit-user-select:none;user-select:none}.cde-table th .resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;background:transparent}.cde-table th .resize-handle:hover{background:#0000001a}.cde-table tbody tr{border-bottom:1px solid var(--gray-100);transition:background-color .15s ease}.cde-table tbody tr:hover{background-color:var(--gray-50)}.cde-table tbody tr.folder-row{font-weight:500;cursor:pointer}.cde-table tbody tr.folder-row:hover{background-color:var(--gray-100)}.folder-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;cursor:pointer;margin-right:4px;color:var(--gray-500);transition:transform .15s ease;flex-shrink:0}.folder-toggle-btn:hover{color:var(--text-color)}.folder-toggle-btn.expanded{transform:rotate(90deg)}.folder-toggle-btn.invisible{visibility:hidden;pointer-events:none}.folder-toggle-btn svg{width:12px;height:12px}.folder-color{width:8px;height:8px;border-radius:2px;flex-shrink:0}.btn-folder-menu,.btn-file-menu,.btn-view-model{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--text-light);transition:all .15s ease;margin-left:4px}.btn-folder-menu:hover,.btn-file-menu:hover,.btn-view-model:hover{background-color:#00000014;color:var(--text-color)}.btn-folder-menu svg,.btn-file-menu svg,.btn-view-model svg{width:14px;height:14px}.cde-table tbody tr.file-row.file-status-converting,.cde-table tbody tr.file-row.file-status-running{background-color:#ffc1070d}.cde-table tbody tr.file-row.file-status-completed{background-color:#4caf5005}.cde-table tbody tr.file-row.file-status-failed{background-color:#f443360d}.cde-table td{padding:6px 12px;vertical-align:middle;color:var(--text-color);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;background-color:var(--bg-surface)}#cde-empty-state.cde-root-zone-empty{height:auto;min-height:220px;padding:20px 16px}.cde-root-zone-empty-wrap{width:min(760px,100%);display:flex;flex-direction:column;gap:10px}.cde-root-zone-empty-title{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text-color)}.cde-root-zone-empty-hint{margin:0;font-size:var(--font-size-sm);color:var(--text-muted, #64748b)}.cde-root-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cde-root-zone-item{border:1px solid var(--gray-300);border-radius:8px;background:var(--bg-surface);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.cde-root-zone-item:hover{transform:translateY(-1px);border-color:var(--gray-400);box-shadow:0 4px 10px #0f172a14}.cde-root-zone-main{display:flex;align-items:center;gap:8px;min-width:0}.cde-root-zone-name{font-size:var(--font-size-sm);color:var(--text-muted, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cde-root-zone-create-btn{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-md);line-height:1;border:1px solid #cbd5e1;color:#334155;background:#f8fafc;flex-shrink:0}@media(max-width:900px){.cde-root-zone-grid{grid-template-columns:1fr}}.cde-item-name{display:flex;align-items:center;gap:8px}.folder-toggle{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}.folder-toggle:hover{background-color:#0000000d;border-radius:3px}.folder-toggle.open svg{transform:rotate(90deg)}.folder-toggle-spacer{width:16px;flex-shrink:0}.column-resize-handle{position:absolute;right:0;top:0;width:4px;height:100%;cursor:col-resize;background-color:transparent;z-index:10}.column-resize-handle:hover{background-color:var(--primary-color);opacity:.5}.cde-table th{position:relative;-webkit-user-select:none;user-select:none}.cde-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.cde-icon svg{width:18px;height:18px;stroke:currentColor!important;fill:none!important}.cde-icon svg.has-color{stroke:inherit!important}.cde-name{font-weight:inherit;color:var(--text-color);font-size:inherit}.cde-table .col-name{color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 12px!important}.cde-table .col-name.level-0{padding-left:10px!important}.cde-table .col-name.level-1{padding-left:30px!important}.cde-table .col-name.level-2{padding-left:50px!important}.cde-table .col-name.level-3{padding-left:70px!important}.cde-table .col-name.level-4{padding-left:90px!important}.cde-table .col-name.level-5{padding-left:110px!important}.cde-table .col-name .cde-name{display:inline-flex;align-items:center;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cde-table .col-modified-by,.cde-table .col-created-by,.cde-table .col-modified-on{color:var(--gray-600);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cde-table .col-size{color:var(--gray-600);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-family-primary, "FZ Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)}.cde-table .col-version{color:var(--gray-600);font-size:var(--font-size-base);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cde-table .col-tags{color:var(--gray-600);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cde-table .col-actions{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;padding:6px 12px!important}.cde-table th.col-actions .btn-table-column-settings{width:24px;height:24px;padding:2px;border:none;background:transparent;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s;opacity:.6}.cde-table th.col-actions .btn-table-column-settings:hover{background-color:var(--gray-200);opacity:1}.cde-table th.col-actions .btn-table-column-settings svg{width:14px;height:14px;color:var(--gray-600)}.cde-table th.col-actions .btn-table-column-settings:hover svg{color:var(--color-info)}.cde-table td.col-actions{justify-content:space-between;align-items:center;padding:2px 4px!important;gap:2px}.cde-table td.col-actions .btn-view-model,.cde-table td.col-actions .btn-file-menu,.cde-table td.col-actions .btn-folder-menu{width:12px;height:12px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;opacity:.5;transition:opacity .2s}.cde-table td.col-actions .btn-view-model:hover,.cde-table td.col-actions .btn-file-menu:hover,.cde-table td.col-actions .btn-folder-menu:hover{opacity:1}.cde-table td.col-actions .btn-view-model svg,.cde-table td.col-actions .btn-file-menu svg,.cde-table td.col-actions .btn-folder-menu svg{width:12px;height:12px}.cde-table .col-actions .btn-icon{width:26px;height:26px;flex-shrink:0;margin:0 2px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-base)}.cde-table .col-actions .btn{margin:0;flex-shrink:0;font-size:var(--font-size-base);padding:4px 8px;min-height:26px;line-height:1}.cde-table .col-actions .btn:last-child{margin:0}.cde-table th.col-hidden,.cde-table td.col-hidden,.table-wrap th.col-hidden,.table-wrap td.col-hidden{display:none!important}.table-wrap.drag-over{position:relative;background-color:#2563eb14!important;border:2px dashed var(--color-primary, #2563eb);outline:2px solid rgba(37,99,235,.2);outline-offset:-2px;transition:all .15s ease}.table-wrap.drag-over:after{content:"Drop files here to upload";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#2563ebf2;color:#fff;padding:12px 20px;border-radius:6px;font-size:var(--font-size-md);font-weight:500;white-space:nowrap;pointer-events:none;z-index:100;box-shadow:0 4px 12px #2563eb4d}.compact-list{padding:8px}.compact-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;cursor:pointer;transition:background-color .2s ease;margin-bottom:2px}.compact-item:hover{background-color:#0000000d}.compact-item.folder-item{font-weight:500}.compact-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.compact-icon svg{width:18px;height:18px;stroke:currentColor!important;fill:none!important}.compact-icon svg.has-color{stroke:inherit!important}.compact-name{flex:1;font-size:var(--font-size-base);color:var(--text-primary)}.empty-folder-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-light);min-height:300px}.empty-folder-message .empty-icon{font-size:var(--font-size-icon-xl);margin-bottom:16px;opacity:.5}.empty-folder-message .empty-text{font-size:var(--font-size-xl);font-weight:500;color:var(--text-secondary);margin-bottom:8px}.empty-folder-message .empty-hint{font-size:var(--font-size-base);color:var(--text-light)}.tag-badge{display:inline-flex;align-items:center;padding:3px 10px;background-color:var(--color-info-bg);color:var(--color-info-dark);border-radius:12px;font-size:var(--font-size-xs);font-weight:500;white-space:nowrap;line-height:1.2}.color-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding:12px}.color-picker .color-btn{width:32px;height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #00000026}.color-picker .color-btn:hover{transform:scale(1.15);box-shadow:0 2px 8px #00000040}.color-picker .color-btn.selected{border-color:var(--text-color);transform:scale(1.1)}.color-picker-form{padding:16px}.color-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.color-option{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;cursor:pointer;transition:background-color .2s}.color-option:hover{background-color:#0000000d}.color-option.selected{background-color:#007aff1a}.color-option input[type=radio]{margin:0}.color-preview{width:24px;height:24px;border-radius:4px;flex-shrink:0}.naming-option-group{display:flex;gap:16px;margin-bottom:16px}.naming-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border-radius:6px;border:1px solid var(--gray-200);transition:all .2s ease}.naming-option:hover{background-color:var(--gray-100)}.naming-option:has(input:checked){border-color:var(--color-info-dark);background-color:#1976d20d}.naming-option input[type=radio]{margin:0}.naming-option-label{font-size:var(--font-size-base);color:var(--text-color)}.iso19650-hint{margin-top:6px;color:var(--gray-600);font-style:italic}.iso19650-hint small{color:var(--color-info-dark)}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sortable:hover{background-color:#0000000d}.sortable:after{content:" ↕";font-size:var(--font-size-4xs);opacity:.35}.sortable.sort-asc:after{content:" ↑";opacity:1;color:var(--color-primary, #3b82f6)}.sortable.sort-desc:after{content:" ↓";opacity:1;color:var(--color-primary, #3b82f6)}.sort-indicator{margin-left:4px;font-size:var(--font-size-base);color:var(--text-secondary)}.explorer-list{padding:4px}.explorer-items{display:flex;flex-direction:column}.explorer-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:4px;cursor:pointer;transition:background-color .2s ease;margin-bottom:2px}.explorer-item:hover{background-color:var(--gray-100)}.explorer-item.file-status-converting,.explorer-item.file-status-running{background-color:#ffc1070d}.explorer-item.file-status-completed{background-color:#4caf500d}.explorer-item.file-status-failed{background-color:#f443360d}.explorer-item-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.explorer-item-icon svg{width:20px;height:20px}.explorer-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.explorer-item-name{font-weight:500;font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explorer-item-meta{display:flex;align-items:center;gap:12px;font-size:var(--font-size-base);color:var(--text-secondary)}.explorer-item-status{padding:2px 6px;border-radius:3px;font-size:var(--font-size-xs);font-weight:500}.explorer-item-status.file-status-converting,.explorer-item-status.file-status-running{background-color:#ffc10733;color:var(--color-warning-dark)}.explorer-item-status.file-status-completed{background-color:#4caf5033;color:var(--color-success-dark)}.explorer-item-status.file-status-failed{background-color:#f4433633;color:var(--color-danger-dark)}.explorer-item-size,.explorer-item-date{color:var(--text-secondary)}.explorer-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;transition:opacity .2s ease}.explorer-item:hover .explorer-item-actions{opacity:1}.explorer-item-actions .btn-icon{width:28px;height:28px;padding:0;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary)}.explorer-item-actions .btn-icon:hover{background-color:var(--gray-300);color:var(--text-primary)}.cost-estimator{display:flex;flex-direction:column;height:100%}.cost-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);background-color:var(--gray-50)}.cost-header-left h3{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.cost-subtitle{margin:4px 0 0;font-size:var(--font-size-base);color:var(--text-muted)}.cost-header-right{display:flex;align-items:center;gap:8px}.cost-select{padding:6px 10px;font-size:var(--font-size-base);border-radius:4px;border:1px solid var(--border-color)}.cost-layout{display:grid;grid-template-columns:260px 1fr;gap:8px;flex:1;padding:8px 12px 12px;background-color:var(--bg-surface)}.cost-tree-panel,.cost-table-panel{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:6px;background-color:var(--gray-50);overflow:hidden}.cost-panel-header{padding:8px 10px;font-size:var(--font-size-base);font-weight:600;border-bottom:1px solid var(--border-color);background-color:var(--gray-100)}.cost-tree-body{padding:6px 8px}.cost-tree{list-style:none;margin:0;padding:0;font-size:var(--font-size-base);font-family:var(--font-mono, "Consolas", "Courier New", monospace)}.cost-tree-item{padding:2px 0;white-space:nowrap}.cost-tree-level-0{font-weight:600}.cost-table-wrapper{flex:1;overflow:auto}.cost-table{width:100%;border-collapse:collapse;min-width:640px;font-size:var(--font-size-base)}.cost-table thead{background-color:var(--color-info-bg)}.cost-table th,.cost-table td{padding:6px 8px;border-bottom:1px solid var(--gray-200);text-align:left;white-space:nowrap}.cost-table tbody tr:nth-child(odd){background-color:var(--gray-50)}.cost-table tbody tr:hover{background-color:var(--color-info-bg)}.empty-state{padding:var(--spacing-lg);text-align:center;color:var(--text-light);font-size:var(--font-size-base)}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--gray-200)}.activity-container{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.activity-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--gray-100);border-radius:6px;border-left:3px solid var(--primary-blue);transition:all .2s ease}.activity-item:hover{background-color:var(--gray-200);box-shadow:0 2px 4px #0000000d}.activity-icon{font-size:var(--font-size-xxl);min-width:28px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-icon svg{width:20px;height:20px}.activity-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.activity-title{font-size:var(--font-size-base);color:var(--text-primary);line-height:1.4}.activity-time{font-size:var(--font-size-xs);color:var(--text-light)}.collaboration-tabs{display:flex;gap:4px;background:var(--bg-light);padding:4px;border-radius:10px;margin-bottom:var(--spacing-lg);border:1px solid var(--border-color)}.collaboration-tab{display:flex;align-items:center;gap:8px;padding:10px 24px;background:transparent;border:none;color:var(--text-secondary);font-size:var(--font-size-md);font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s ease}.collaboration-tab:hover{color:var(--primary-blue);background:#3b82f614}.collaboration-tab.active{background:#fff;color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #00000014}.collaboration-tab svg{width:18px;height:18px}.collaboration-tab-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.topics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.topics-header h3{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.topics-actions{display:flex;gap:var(--spacing-xs);align-items:center}.btn-new-topic{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:var(--primary-blue);color:#fff;border:none;border-radius:4px;font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-new-topic:hover{background:var(--secondary-blue)}.btn-new-topic svg{width:12px;height:12px}.topics-filters{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.filter-select{padding:var(--select-padding-y-sm, 4px) var(--spacing-xl, 18px) var(--select-padding-y-sm, 4px) var(--select-padding-x-sm, 8px);border:1px solid var(--select-border-color, var(--border-color));border-radius:var(--select-border-radius-sm, 4px);background:var(--select-bg-color, white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 6px center;background-size:12px;font-size:var(--select-font-size-sm, 12px);color:var(--select-text-color, var(--text-secondary));cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;min-width:var(--select-min-width-sm, 100px);transition:var(--select-transition);line-height:var(--select-line-height, 1.4);box-sizing:border-box}.filter-select:hover{border-color:var(--select-hover-border, var(--primary-blue-lighter))}.filter-select:focus{outline:none;border-color:var(--select-focus-border, var(--primary-blue));box-shadow:0 0 0 3px var(--select-focus-shadow, rgba(59, 130, 246, .1))}.topics-list{overflow-y:auto;flex:1;overflow-x:hidden;display:flex;flex-direction:column;gap:6px;padding-right:4px;min-height:0}.topic-item{display:flex;gap:var(--spacing-sm);padding:10px 12px;background:#fff;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s ease;position:relative}.topic-item:hover{border-color:var(--primary-blue-lighter);background:#3b82f605}.topic-status{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:3px}.topic-status.open{background:var(--color-success)}.topic-status.closed{background:var(--gray-500)}.topic-content{flex:1;min-width:0}.topic-title{font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);margin-bottom:4px;line-height:1.4}.topic-meta{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--text-light);flex-wrap:wrap}.topic-meta span{display:inline-flex;align-items:center;gap:2px}.topic-author{font-weight:500;color:var(--text-secondary)}.topic-date:before{content:"•";margin-right:6px}.topic-comments{color:var(--primary-blue);font-weight:500}.topic-comments:before{content:"•";margin-right:6px}.topic-type-badge{display:inline-block;padding:2px 6px;border-radius:8px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.2px}.topic-type-badge.issue{background:var(--color-warning-bg);color:var(--color-warning-dark)}.topic-type-badge.question{background:var(--color-primary-bg);color:var(--color-primary-dark)}.topic-type-badge.request{background:var(--color-success-bg);color:var(--color-success-dark)}.topics-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-light);text-align:center}.topics-empty svg{width:48px;height:48px;margin-bottom:var(--spacing-sm);opacity:.4}.topics-empty p{margin:0;font-size:var(--font-size-base)}.members-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.members-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;flex:1}.members-search{position:relative;flex:1;max-width:200px;min-width:140px}.members-search svg{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:12px;height:12px;color:var(--text-light)}.members-search input{width:100%;padding:5px 8px 5px 26px;border:1px solid var(--border-color);border-radius:4px;font-size:var(--font-size-xs);transition:all .2s ease}.members-search input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 2px #3b82f61a}.members-filters{display:flex;gap:4px}.btn-add-member{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:var(--primary-blue);color:#fff;border:none;border-radius:4px;font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-add-member:hover{background:var(--secondary-blue)}.btn-add-member svg{width:12px;height:12px}.members-groups{display:flex;flex-direction:column;gap:var(--spacing-sm);overflow-y:auto;flex:1;padding-right:4px;min-height:0}.company-group{background:var(--bg-surface)}.company-group-header{background:var(--gray-50)}.company-group-header:hover{background:var(--gray-100)}.party-badge.client{background:var(--color-primary-bg);color:var(--color-primary-dark)}.company-group-info{display:flex;align-items:center;gap:8px}.company-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.party-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.2px}.party-badge.client{background:var(--color-info-bg);color:var(--color-info-dark)}.party-badge.consultant{background:var(--color-success-bg);color:var(--color-success-dark)}.party-badge.contractor{background:var(--color-warning-bg);color:var(--color-warning-dark)}.party-badge.external{background:var(--gray-100);color:var(--gray-600)}.btn-add-to-group{background:var(--bg-surface)}.btn-add-to-group:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}.btn-add-to-group svg{width:10px;height:10px}.members-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs);table-layout:fixed}.members-table th{padding:6px 10px;text-align:left;font-weight:600;color:var(--gray-600);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.3px;background:var(--gray-50);border-bottom:1px solid var(--border-color);white-space:nowrap}.members-table td{padding:6px 10px;border-bottom:1px solid var(--gray-100);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.members-table tr:last-child td{border-bottom:none}.members-table tr:hover td{background:#3b82f605}.members-table th.col-name{width:35%}.members-table th.col-email{width:25%}.members-table th.col-role{width:15%}.members-table th.col-phone{width:12%}.members-table th.col-status{width:8%}.members-table th.col-actions{width:5%}.member-info{display:flex;align-items:center;gap:8px}.member-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-xs);flex-shrink:0}.member-avatar.client{background:linear-gradient(135deg,var(--color-info-bg) 0%,var(--color-info-light) 100%);color:var(--color-info-dark)}.member-avatar.consultant{background:linear-gradient(135deg,var(--color-success-bg) 0%,var(--color-success-light) 100%);color:var(--color-success-dark)}.member-avatar.contractor{background:linear-gradient(135deg,var(--color-warning-bg) 0%,var(--color-warning-light) 100%);color:var(--color-warning-dark)}.member-avatar.external{background:linear-gradient(135deg,var(--gray-100) 0%,var(--gray-200) 100%);color:var(--gray-600)}.member-details{display:flex;flex-direction:column;gap:1px;min-width:0}.member-name{font-weight:500;color:var(--text-primary);font-size:var(--font-size-xs)}.member-email{color:var(--text-light)}.member-role{display:inline-flex;padding:2px 6px;background:var(--gray-100);border-radius:3px;font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary)}.member-phone{color:var(--text-secondary);font-size:var(--font-size-xs)}.member-phone.empty{color:var(--text-light);font-style:italic}.member-status{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:8px;font-size:var(--font-size-xs);font-weight:500}.member-status.active{background:var(--color-success-bg);color:var(--color-success-dark)}.member-status.inactive{background:var(--gray-100);color:var(--gray-600)}.member-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.member-actions{display:flex;gap:2px;justify-content:flex-end}.member-action-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:var(--text-light);transition:all .2s ease}.member-action-btn:hover{background:var(--gray-100);border-color:var(--border-color);color:var(--text-secondary)}.member-action-btn.delete:hover{background:var(--color-danger-bg);border-color:var(--color-danger-light);color:var(--color-danger-dark)}.member-action-btn svg{width:12px;height:12px}.members-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-light);text-align:center;background:#fff;border:1px dashed var(--border-color);border-radius:8px}.members-empty svg{width:48px;height:48px;margin-bottom:var(--spacing-sm);opacity:.4}.members-empty p{margin:0 0 var(--spacing-sm);font-size:var(--font-size-base)}.members-tabs{display:flex;gap:4px;background:var(--gray-200);padding:4px;border-radius:8px}.members-tab-btn{padding:8px 16px;background:transparent;border:none;color:var(--gray-600);font-size:var(--font-size-base);cursor:pointer;border-radius:6px;transition:all .2s ease}.members-tab-btn:hover{color:var(--primary-blue)}.members-tab-btn.active{background:var(--bg-surface);color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #0000001a}.members-team-panel,.members-org-panel{flex:1;overflow:hidden;display:flex;flex-direction:column}.organizations-panel-container{flex:1;overflow-y:auto}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--gray-200);gap:16px}.activity-header h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.activity-tabs{display:flex;gap:4px;background:var(--gray-200);padding:4px;border-radius:8px;margin-bottom:var(--spacing-md)}.activity-tabs .tab-btn{padding:8px 16px;background:transparent;border:none;color:var(--gray-600);font-size:var(--font-size-base);cursor:pointer;border-radius:6px;transition:all .2s ease}.activity-tabs .tab-btn:hover{color:var(--primary-blue)}.activity-tabs .tab-btn.active{background:var(--bg-surface);color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #0000001a}.team-section{display:flex;flex-direction:column;height:100%;gap:var(--spacing-md)}.team-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.team-header h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.team-actions{display:flex;gap:var(--spacing-sm)}.team-tabs{display:flex;gap:4px;background:var(--gray-200);padding:4px;border-radius:8px}.team-tabs .tab-btn{padding:8px 16px;background:transparent;border:none;color:var(--gray-600);font-size:var(--font-size-base);cursor:pointer;border-radius:6px;transition:all .2s ease}.team-tabs .tab-btn:hover{color:var(--primary-blue)}.team-tabs .tab-btn.active{background:var(--bg-surface);color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #0000001a}.team-content{flex:1;min-height:0;overflow:hidden}.team-content .tab-panel{display:none;height:100%;overflow:auto}.team-content .tab-panel.active{display:block}.members-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.members-table th,.members-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.members-table th{background:var(--bg-light);font-weight:600;color:var(--text-primary);position:sticky;top:0}.members-table tr:hover{background:var(--bg-lighter)}.members-list{padding:var(--spacing-sm)}.clash-section{display:flex;flex-direction:column;height:100%;gap:var(--spacing-md)}.clash-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.clash-header h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.clash-actions{display:flex;gap:var(--spacing-sm)}.clash-layout{display:flex;flex:1;gap:var(--spacing-md);min-height:0}.clash-tests-panel,.clash-results-panel,.clash-details-panel{background:#fff;border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.clash-tests-panel{width:280px;flex-shrink:0}.clash-results-panel{flex:1;min-width:0}.clash-details-panel{width:320px;flex-shrink:0}.clash-tests-list,.clash-results-content,.clash-details-content{flex:1;overflow:auto;padding:var(--spacing-sm)}.matrix-placeholder{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-light);font-size:var(--font-size-sm)}.empty-state{display:flex;align-items:center;justify-content:center;height:100px;color:var(--text-light);font-size:var(--font-size-sm)}.settings-section{display:flex;flex-direction:column;height:100%;gap:var(--spacing-md);font-size:var(--cde-fs-md)}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.settings-header h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.settings-tabs{display:flex;gap:4px;background:var(--bg-light);padding:4px;border-radius:10px;margin-bottom:var(--spacing-lg);border:1px solid var(--border-color)}.settings-tab{display:flex;align-items:center;gap:8px;padding:10px 24px;background:transparent;border:none;color:var(--text-secondary);font-size:var(--font-size-md);font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s ease}.settings-tab:hover{color:var(--primary-blue);background:#3b82f614}.settings-tab.active{background:#fff;color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #00000014}.settings-tab svg{width:18px;height:18px}.settings-content{flex:1;overflow:auto;background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-md)}.settings-content .tab-panel{display:none}.settings-content .tab-panel.active{display:block}.settings-form .form-group{margin-bottom:var(--spacing-md)}.settings-form .form-group label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.settings-form .form-control{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:var(--font-size-sm);transition:border-color .2s ease}.settings-form .form-control:focus{outline:none;border-color:var(--primary-blue)}.settings-form textarea.form-control{resize:vertical;min-height:80px}.settings-form .form-actions{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.settings-placeholder{color:var(--text-light);font-size:var(--font-size-sm);padding:var(--spacing-lg);text-align:center}.activity-content{display:flex;flex-direction:column;flex:1;min-height:0}.activity-content .tab-panel{display:none;flex:1;overflow:auto}.activity-content .tab-panel.active{display:block}.activity-list{padding:var(--spacing-sm)}.activity-list .activity-item{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.activity-list .activity-item:hover{background:var(--bg-light)}.activity-list .activity-icon{width:32px;height:32px;border-radius:50%;background:var(--primary-blue-lighter);display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-list .activity-icon svg{stroke:var(--primary-blue)}.activity-list .activity-content{flex:1;min-width:0}.activity-list .activity-title{font-size:var(--font-size-sm);color:var(--text-primary)}.activity-list .activity-time{font-size:var(--font-size-xs);color:var(--text-light);margin-top:2px}.activity-tab-btn{padding:8px 16px;background:transparent;border:none;color:var(--gray-600);font-size:var(--font-size-base);cursor:pointer;border-radius:6px;transition:all .2s ease}.activity-tab-btn:hover{color:var(--primary-blue)}.activity-tab-btn.active{background:var(--bg-surface);color:var(--primary-blue);font-weight:600;box-shadow:0 1px 3px #0000001a}.activity-feed-panel,.activity-audit-panel{flex:1;overflow-y:auto;display:flex;flex-direction:column}.audit-log-panel-container{flex:1;overflow-y:auto}.members-container{flex:0 0 auto;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.member-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--gray-100);border-radius:6px;border:1px solid var(--gray-200);transition:all .2s ease}.member-item:hover{background-color:var(--gray-200);box-shadow:0 2px 4px #0000000d}.member-avatar{font-size:var(--font-size-xl);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background-color:var(--primary-blue-lightest);border-radius:50%;flex-shrink:0}.member-avatar svg{width:22px;height:22px}.member-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.member-name{font-weight:600;color:var(--text-primary)}.member-role{font-size:var(--font-size-xs);color:var(--text-light)}.member-actions{display:flex;gap:var(--spacing-sm)}.member-item .btn-icon{background:transparent;border:none;color:var(--text-light);cursor:pointer;font-size:var(--font-size-lg);padding:4px 8px;border-radius:4px;transition:all .2s ease}.member-item .btn-icon:hover{background-color:var(--color-danger-bg);color:var(--color-danger)}.responsibility-matrix{background-color:var(--bg-surface);border-color:var(--border-color)}.rm-subtitle{color:var(--text-secondary)}.rm-header{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.rm-header h3{margin:0;font-size:var(--font-size-xl);font-weight:600}.rm-subtitle{font-size:var(--font-size-base);color:var(--gray-500)}.rm-table-wrapper{overflow-x:auto}.rm-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--font-size-base)}.rm-table th,.rm-table td{border:1px solid var(--gray-200);padding:6px 8px;text-align:center}.rm-col-role{text-align:left;min-width:160px;background-color:var(--gray-50)}.rm-col-phase{min-width:110px}.rm-row:nth-child(2n){background-color:var(--gray-50)}.rm-role{text-align:left;font-weight:500}.rm-select{width:100%;padding:3px 4px;border-radius:12px;border:1px solid var(--gray-300);font-size:var(--font-size-xs);background-color:var(--gray-50);cursor:pointer}.rm-select.rm-none{background-color:var(--color-danger-bg);color:var(--color-danger-dark);border-color:var(--color-danger-light)}.rm-select.rm-read{background-color:var(--color-info-bg);color:var(--color-info-dark);border-color:var(--color-info-light)}.rm-select.rm-write{background-color:var(--color-success-bg);color:var(--color-success-dark);border-color:var(--color-success-light)}.settings-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--gray-200)}.settings-header h3{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.settings-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--text-light)}.settings-content{display:flex;flex-direction:column;gap:var(--spacing-lg);overflow-y:auto;padding-right:var(--spacing-md)}.settings-tab-content{display:none}.settings-tab-content.active{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-section{padding:var(--spacing-md);background-color:var(--gray-100);border-radius:6px;border:1px solid var(--gray-200)}.settings-section h4{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-base);color:var(--text-primary);font-weight:600}.settings-section h5{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-base);color:var(--text-primary);font-weight:600}.settings-section p{margin:0;font-size:var(--font-size-sm);color:var(--text-light)}.settings-section.danger-zone{background-color:var(--color-danger-bg);border-color:var(--color-danger-light)}.settings-section.danger-zone h4{color:var(--color-danger-dark);display:flex;align-items:center;gap:var(--spacing-sm)}.danger-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.danger-icon svg{width:18px;height:18px;stroke:var(--color-danger-dark)}.setting-item{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.setting-item:last-child{margin-bottom:0}.setting-item label{min-width:140px;font-size:var(--font-size-base);color:var(--text-primary)}.setting-item input[type=text],.setting-item input[type=email],.setting-item input[type=tel],.setting-item input[type=number],.setting-item input[type=password],.setting-item input[type=checkbox],.setting-item select,.setting-item textarea{padding:6px 10px;border:1px solid var(--gray-300);border-radius:4px;font-size:var(--font-size-base);background-color:var(--bg-white);color:var(--text-primary);font-family:inherit}.setting-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;padding:0}.setting-item select,.setting-item input[type=text],.setting-item input[type=email],.setting-item input[type=tel],.setting-item input[type=number],.setting-item input[type=password],.setting-item textarea{flex:1;max-width:400px}.setting-item textarea{resize:vertical;font-family:inherit}.api-key-container{display:flex;gap:var(--spacing-sm);flex:1;max-width:500px}.api-key-container .btn{flex-shrink:0}.integration-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--bg-white);border:1px solid var(--gray-200);border-radius:6px;margin-bottom:var(--spacing-md);transition:all .2s ease}.integration-item:last-child{margin-bottom:0}.integration-item:hover{box-shadow:0 2px 4px #0000000d}.integration-info{flex:1}.integration-info h5{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-base);color:var(--text-primary)}.integration-info p{margin:0;font-size:var(--font-size-sm);color:var(--text-light)}.settings-form .form-group{margin-bottom:20px}.settings-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary);font-size:var(--font-size-md)}.settings-form .form-control{width:100%;max-width:400px;padding:10px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:var(--font-size-md);transition:border-color .2s,box-shadow .2s}.settings-form .form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0066cc1a}.settings-form .form-actions{border-top:1px solid var(--gray-200)}.zone-prefix-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.zone-prefix-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:6px}.zone-prefix-item .zone-code{font-weight:600;color:var(--color-primary);min-width:40px}.zone-prefix-item .zone-prefix{font-family:monospace;background:var(--color-info-bg);padding:4px 8px;border-radius:4px;color:var(--text-primary);font-size:var(--font-size-base)}.zone-prefix-item .zone-name{color:var(--gray-600);font-size:var(--font-size-base)}.form-hint{margin-top:6px;font-size:var(--font-size-base);color:var(--gray-600);line-height:1.4}.checkbox-option{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-option input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-option span{font-size:var(--font-size-md);color:var(--text-primary)}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:var(--font-size-base);cursor:pointer;transition:all .2s ease;font-weight:500}.btn-primary{background-color:var(--primary-blue);color:var(--text-white)}.btn-primary:hover{background-color:var(--primary-blue-light);box-shadow:0 2px 8px #1e5a9633}.btn-secondary{background-color:var(--color-warning);color:var(--text-primary);border:1px solid var(--gray-300)}.btn-secondary:hover{background-color:var(--color-warning-dark)}.btn-danger{background-color:var(--color-danger);color:var(--text-white)}.btn-danger:hover{background-color:var(--color-danger-dark);box-shadow:0 2px 8px #d32f2f33}.btn-delete-file{background:transparent;border:none;color:var(--text-light);cursor:pointer;font-size:var(--font-size-lg);padding:4px 8px;border-radius:4px;transition:all .2s ease}.btn-delete-file:hover{background-color:#f443361a;color:var(--color-danger)}.btn-open-file{padding:6px 12px;background-color:var(--primary-blue);color:var(--text-white);border:none;border-radius:4px;font-size:var(--font-size-sm);cursor:pointer}.scrollable{overflow-y:auto}.scrollable::-webkit-scrollbar{width:8px}.scrollable::-webkit-scrollbar-track{background:transparent}.scrollable::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.scrollable::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.schedule-editor{display:flex;flex-direction:column;height:100%;background:var(--bg-surface)}.schedule-toolbar{display:flex;align-items:center;gap:0;padding:6px 8px;background:var(--gray-100);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:2px;padding:0 4px}.toolbar-group-label{font-size:var(--font-size-xs);color:var(--gray-600);font-weight:600;margin-right:4px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.toolbar-divider-vertical{width:1px;height:20px;background:var(--gray-300);margin:0 2px;flex-shrink:0}.toolbar-spacer{flex:1;min-width:20px}.schedule-btn{padding:3px 8px;font-size:var(--font-size-xs);border:1px solid var(--gray-300);border-radius:2px;background:var(--bg-surface);color:var(--text-color);cursor:pointer;transition:all .15s;height:22px;line-height:1.2;white-space:nowrap;min-width:auto}.schedule-btn:hover{background:var(--color-info-bg);border-color:var(--color-info-dark);color:var(--color-primary)}.schedule-btn:active{background:var(--color-info-bg);border-color:var(--color-primary)}.schedule-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:500}.schedule-btn-primary:hover{background:var(--primary-blue-light);border-color:var(--primary-blue-light);color:#fff}.schedule-content{display:grid;grid-template-columns:350px 1fr;flex:1;overflow:hidden;min-height:0}.schedule-task-list{border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.schedule-task-header{flex:1;overflow-y:auto;overflow-x:auto}.schedule-task-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.schedule-task-table thead{background:var(--gray-100);position:sticky;top:0;z-index:10}.schedule-task-table th{padding:6px 10px;text-align:left;font-weight:600;color:var(--text-color);border-bottom:1px solid var(--border-color);white-space:nowrap;font-size:var(--font-size-xs)}.schedule-task-table .col-name{min-width:180px}.schedule-task-table .col-duration{min-width:90px}.schedule-task-table .col-start{min-width:120px}.schedule-task-table tbody tr{border-bottom:1px solid var(--gray-200);cursor:pointer;transition:background-color .15s;height:28px}.schedule-task-table tbody tr:hover{background-color:var(--gray-100)}.schedule-task-table tbody tr.task-selected{background-color:var(--color-primary);color:#fff}.schedule-task-table tbody tr.task-selected td{color:#fff}.schedule-task-table tbody tr.task-level-0{font-weight:600}.schedule-task-table tbody tr.task-level-1{background-color:var(--bg-surface)}.schedule-task-table td{padding:6px 10px;color:var(--text-color);font-size:var(--font-size-xs)}.task-indent-0{display:inline-block;width:0}.task-indent-1{display:inline-block;width:20px}.schedule-gantt{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-surface)}.gantt-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--gray-100);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.gantt-toolbar .schedule-btn{padding:3px 8px;font-size:var(--font-size-xs);height:22px}.gantt-select{padding:3px 8px;font-size:var(--font-size-xs);border:1px solid var(--border-color);border-radius:3px;background:var(--bg-surface);height:22px}.gantt-checkbox{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);cursor:pointer;margin-left:8px}.gantt-checkbox input[type=checkbox]{margin:0;cursor:pointer;width:12px;height:12px}.gantt-chart-container{flex:1;overflow:auto;position:relative;background:var(--bg-surface)}.gantt-timeline{position:sticky;top:0;z-index:5;background:var(--gray-100);border-bottom:1px solid var(--border-color)}.gantt-years{display:flex;height:28px;border-bottom:1px solid var(--border-color)}.gantt-year{flex:1;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-base);color:var(--text-color);border-right:1px solid var(--border-color)}.gantt-months{display:flex;height:24px}.gantt-month{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--text-color);border-right:1px solid var(--gray-200);background:var(--gray-100)}.gantt-grid{position:absolute;top:52px;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.gantt-grid-lines{position:relative;width:100%;height:100%;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 84 - 1px),var(--gray-200) calc(100% / 84 - 1px),var(--gray-200) calc(100% / 84))}.gantt-bars-container{position:relative;min-height:400px;padding:12px 0;z-index:2}.gantt-bar{position:absolute;height:20px;background:var(--color-info);border-radius:2px;margin-bottom:4px;display:flex;align-items:center;padding:0 6px;color:#fff;font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s;border:1px solid var(--color-info-dark);box-sizing:border-box}.gantt-bar:hover{background:var(--color-info-dark);border-color:var(--color-primary);z-index:10}.gantt-bar-main{top:0;background:var(--color-primary);height:24px;font-weight:600;border-color:var(--primary-blue-light)}.gantt-bar-level-1{top:32px;background:var(--color-info-light);border-color:var(--color-info)}.gantt-bar-level-1:nth-of-type(2){top:32px}.gantt-bar-level-1:nth-of-type(3){top:60px}.gantt-bar-level-1:nth-of-type(4){top:88px}.gantt-bar-level-1:nth-of-type(5){top:116px}.gantt-bar-level-1:nth-of-type(6){top:144px}.gantt-bar-level-1:nth-of-type(7){top:172px}.gantt-bar-level-1:nth-of-type(8){top:200px}.gantt-bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.cde-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600;color:#fff;text-transform:uppercase}.cde-table th.col-state,.cde-table th.col-suitability,.cde-table th.col-discipline,.cde-table th.col-code{width:80px;text-align:center;font-size:var(--font-size-xs)}.cde-table td.col-state,.cde-table td.col-suitability,.cde-table td.col-discipline,.cde-table td.col-code{text-align:center;font-size:var(--font-size-xs)}.cde-table td.col-code{font-family:monospace;font-size:var(--font-size-xs);color:var(--gray-600)}.cde-detail-panel{padding:16px}.cde-detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--gray-200)}.cde-detail-row label{font-weight:600;color:var(--gray-600);font-size:var(--font-size-base)}.cde-detail-row span{font-size:var(--font-size-base)}.cde-actions{display:flex;gap:8px;padding-top:16px}.cde-state-panel{padding:16px}.cde-current-state,.cde-suitability-info{display:flex;align-items:center;gap:12px;margin-bottom:16px}.cde-current-state label,.cde-suitability-info label{font-weight:600;font-size:var(--font-size-base);color:var(--gray-600)}.cde-state-options{margin-bottom:16px}.cde-state-options label{display:block;font-weight:600;font-size:var(--font-size-base);color:var(--gray-600);margin-bottom:8px}.state-buttons{display:flex;gap:8px;flex-wrap:wrap}.state-btn{padding:6px 12px;background:var(--gray-200);border:1px solid var(--gray-300);border-radius:4px;cursor:pointer;font-size:var(--font-size-base);transition:all .2s}.state-btn:hover{background:var(--color-info);color:#fff;border-color:var(--color-info)}.cde-extra-columns{display:table-cell;vertical-align:middle;padding:8px 4px}.workflow-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600}.workflow-badge.pending{background:var(--color-warning-bg);color:var(--color-warning-dark)}.workflow-badge.in_progress{background:var(--color-info-bg);color:var(--color-info-dark)}.workflow-badge.completed{background:var(--color-success-bg);color:var(--color-success-dark)}.workflow-badge.rejected{background:var(--color-danger-bg);color:var(--color-danger-dark)}.federation-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600}.federation-badge.pending{background:var(--color-warning-bg);color:var(--color-warning-dark)}.federation-badge.coordinating{background:var(--color-info-bg);color:var(--color-info-dark)}.federation-badge.clash_detected{background:var(--color-danger-bg);color:var(--color-danger-dark)}.federation-badge.resolved{background:var(--color-success-bg);color:var(--color-success-dark)}.federation-badge.approved{background:var(--color-success);color:#fff}.clash-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600}.clash-badge.critical{background:var(--color-danger);color:#fff}.clash-badge.major{background:var(--color-warning);color:var(--text-primary)}.clash-badge.minor{background:var(--color-info);color:#fff}.clash-badge.open{background:var(--color-danger);color:#fff}.clash-badge.in_progress{background:var(--color-warning);color:var(--text-primary)}.clash-badge.resolved{background:var(--color-success);color:#fff}.clash-badge.ignored{background:var(--gray-500);color:#fff}.organization-panel{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.organization-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.organization-panel .panel-header h3{margin:0;font-size:var(--font-size-xxl);color:var(--text-primary)}.organization-panel .header-actions{display:flex;gap:10px}.org-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.org-stats .stat-card{background:var(--gray-100);padding:16px;border-radius:8px;text-align:center}.org-stats .stat-value{font-size:var(--font-size-4xl);font-weight:700;color:var(--color-info)}.org-stats .stat-label{font-size:var(--font-size-base);color:var(--gray-600);margin-top:4px}.panel-filters{display:flex;gap:12px;margin-bottom:20px}.panel-filters .search-input{flex:1;padding:8px 12px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--font-size-md)}.panel-filters .filter-select{padding:var(--select-padding-y, 6px) var(--spacing-xl, 18px) var(--select-padding-y, 6px) var(--select-padding-x, 10px);border:1px solid var(--select-border-color, var(--gray-200));border-radius:var(--select-border-radius, 6px);font-size:var(--select-font-size, 13px);min-width:150px;background-color:var(--select-bg-color, var(--bg-surface));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:var(--select-transition);color:var(--select-text-color, var(--text-primary));box-sizing:border-box}.panel-filters .filter-select:hover{border-color:var(--select-hover-border, var(--primary-blue-lighter))}.panel-filters .filter-select:focus{outline:none;border-color:var(--select-focus-border, var(--cde-blue));box-shadow:0 0 0 3px var(--select-focus-shadow, rgba(20, 96, 184, .15))}.org-list{min-height:300px}.org-list .loading,.audit-list .loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--gray-600)}.org-list table,.audit-table{width:100%;border-collapse:collapse}.org-list th,.audit-table th{background:var(--gray-100);padding:12px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--gray-200)}.org-list td,.audit-table td{padding:12px;border-bottom:1px solid var(--gray-200)}.org-list tr:hover,.audit-table tbody tr:hover{background:var(--gray-100)}.org-type-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:var(--font-size-base);font-weight:500}.org-type-badge.owner{background:var(--color-info-bg);color:var(--color-info-dark)}.org-type-badge.consultant{background:var(--color-purple-bg);color:var(--color-purple-dark)}.org-type-badge.contractor{background:var(--color-success-bg);color:var(--color-success-dark)}.org-type-badge.subcontractor{background:var(--color-warning-bg);color:var(--color-warning-dark)}.org-type-badge.supplier{background:var(--color-danger-bg);color:var(--color-danger-dark)}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:var(--font-size-base);font-weight:500}.status-badge.active{background:var(--color-success-bg);color:var(--color-success-dark)}.status-badge.inactive{background:var(--color-danger-bg);color:var(--color-danger-dark)}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-600)}.empty-state .empty-icon{font-size:var(--font-size-icon-lg);margin-bottom:16px}.empty-state p{margin-bottom:16px}.audit-panel{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.audit-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.audit-panel .panel-header h3{margin:0;font-size:var(--font-size-xxl);color:var(--text-primary)}.audit-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.audit-stats .stat-card{background:var(--gray-100);padding:16px;border-radius:8px;text-align:center}.audit-stats .stat-value{font-size:var(--font-size-4xl);font-weight:700;color:var(--color-success)}.audit-stats .stat-label{font-size:var(--font-size-base);color:var(--gray-600);margin-top:4px}.audit-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px;background:var(--gray-100);border-radius:8px}.audit-filters .filter-group{display:flex;flex-direction:column;gap:4px}.audit-filters .filter-group label{font-size:var(--font-size-base);color:var(--gray-600);font-weight:500}.audit-filters .filter-input,.audit-filters .filter-select{padding:8px 12px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--font-size-md);min-width:140px}.audit-filters .filter-actions{display:flex;align-items:flex-end;gap:8px}.audit-table{font-size:var(--font-size-base)}.audit-table .timestamp{white-space:nowrap;color:var(--gray-600)}.audit-table .user-cell{display:flex;flex-direction:column}.audit-table .user-name{font-weight:500}.audit-table .org-name{font-size:var(--font-size-xs);color:var(--gray-600)}.audit-table .action-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:500;color:#fff}.audit-table .entity-id{font-size:var(--font-size-xs);background:var(--gray-100);padding:2px 6px;border-radius:3px}.audit-table .hash-status{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:var(--font-size-base)}.audit-table .hash-status.valid{background:var(--color-success-bg);color:var(--color-success-dark)}.audit-table .hash-status.invalid{background:var(--color-danger-bg);color:var(--color-danger-dark)}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-200)}.audit-pagination #page-info{font-size:var(--font-size-md);color:var(--gray-600)}.rbac-panel{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.rbac-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.rbac-panel .panel-header h3{margin:0;font-size:var(--font-size-xxl);color:var(--text-primary)}.rbac-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.rbac-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid var(--gray-200)}.rbac-tabs .tab-btn{padding:12px 24px;background:none;border:none;font-size:var(--font-size-md);font-weight:500;color:var(--gray-600);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.rbac-tabs .tab-btn:hover{color:var(--color-info)}.rbac-tabs .tab-btn.active{color:var(--color-info);border-bottom-color:var(--color-info)}.rbac-table{width:100%;border-collapse:collapse}.rbac-table th{background:var(--gray-100);padding:12px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--gray-200)}.rbac-table td{padding:12px;border-bottom:1px solid var(--gray-200)}.rbac-table tr:hover{background:var(--gray-100)}.role-name-cell{display:flex;align-items:center;gap:8px}.role-name{font-weight:500}.system-badge{background:var(--color-warning-bg);color:var(--color-warning-dark);padding:2px 6px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600}.level-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:500}.level-badge.level-system{background:var(--color-danger-bg);color:var(--color-danger-dark)}.level-badge.level-organization{background:var(--color-info-bg);color:var(--color-info-dark)}.level-badge.level-project{background:var(--color-success-bg);color:var(--color-success-dark)}.level-badge.level-member{background:var(--color-purple-bg);color:var(--color-purple-dark)}.resource-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:var(--font-size-xs);background:var(--gray-200);color:var(--text-primary)}.tab-content{display:none}.tab-content.active{display:block}.permissions-filters{display:flex;gap:12px;margin-bottom:16px}.permissions-filters .search-input{flex:1;padding:8px 12px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--font-size-md)}.permissions-filters .filter-select{padding:8px 12px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--font-size-md);min-width:150px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-surface);border-radius:12px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-content.modal-lg{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--gray-200)}.modal-header h3{margin:0;font-size:var(--font-size-xl);color:var(--text-primary)}.modal-close{background:none;border:none;font-size:var(--font-size-xxxl);color:var(--gray-600);cursor:pointer;padding:0;line-height:1}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid var(--gray-200)}.role-details .detail-section{margin-bottom:24px}.role-details .detail-section h4{margin:0 0 12px;font-size:var(--font-size-xl);color:var(--text-primary)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.sk-shimmer{position:relative;overflow:hidden;background:#e2e8f0}.sk-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,#e2e8f000,#f8fafcbf,#e2e8f000);animation:skShimmer 1.1s ease-in-out infinite}@keyframes skShimmer{to{transform:translate(100%)}}.pd-skeleton-nav .sk-item{height:34px;border-radius:8px;margin:6px 10px}.pd-skeleton-main{padding:16px}.sk-header-row{display:flex;justify-content:space-between;margin-bottom:14px}.sk-toolbar-row{display:flex;gap:10px;margin-bottom:14px}.sk-block{height:24px;border-radius:8px}.sk-pill{height:32px;width:130px;border-radius:8px}.sk-table-wrap{border:1px solid #e2e8f0;border-radius:10px;padding:12px}.sk-row{height:36px;border-radius:8px;margin-bottom:8px}.sk-row:last-child{margin-bottom:0}.cde-skel-row td{padding:8px 12px}.cde-skel-line{height:22px;border-radius:7px}.detail-item label{font-size:var(--font-size-base);color:var(--gray-600);font-weight:500}.detail-item span{font-size:var(--font-size-md);color:var(--text-primary)}.role-permissions{display:flex;flex-wrap:wrap;gap:8px}.perm-tag{background:var(--gray-200);color:var(--text-primary);padding:4px 10px;border-radius:4px;font-size:var(--font-size-base)}.details-json{background:var(--gray-100);padding:16px;border-radius:6px;font-size:var(--font-size-base);overflow-x:auto}.error-message{background:var(--color-danger-bg);color:var(--color-danger-dark);padding:16px;border-radius:8px;margin:16px 0}.permission-settings{padding:8px 0}.permission-settings .permission-header{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--gray-200)}.permission-settings .permission-header p{margin:0;font-size:var(--font-size-md);color:var(--gray-600);line-height:1.5}.permission-settings .permission-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;margin-bottom:8px;background:var(--gray-50);border:1px solid var(--gray-200);transition:all .2s ease}.permission-settings .permission-row:hover{background:var(--gray-100);border-color:var(--gray-300)}.permission-settings .permission-row.inherited{background:var(--color-info-bg);border-color:var(--color-info-dark)}.permission-settings .permission-role{display:flex;align-items:center;gap:8px}.permission-settings .role-label{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.permission-settings .inherited-badge{font-size:var(--font-size-xs);font-weight:500;color:var(--color-info-dark);background:var(--color-info-bg);padding:2px 8px;border-radius:12px}.permission-settings .permission-options{display:flex;gap:8px}.permission-settings .permission-option{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid var(--gray-300);background:var(--bg-surface);cursor:pointer;transition:all .2s ease;font-size:var(--font-size-base);color:var(--gray-600)}.permission-settings .permission-option:hover{border-color:var(--color-info);background:var(--color-info-bg)}.permission-settings .permission-option.selected{border-color:var(--color-info-dark);background:var(--color-info-bg);color:var(--color-info-dark);font-weight:500}.permission-settings .permission-option input{display:none}.cde-permission-dialog .dialog-content{width:min(980px,calc(100vw - 32px));max-height:92vh}.cde-permission-dialog .dialog-body{padding:18px 20px;flex:1;display:flex;flex-direction:column;min-height:0}.cde-permission-editor{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;position:relative;overflow:visible}.cde-permission-editor-note{font-size:var(--font-size-md);color:var(--text-secondary)}.cde-permission-editor-rule{font-size:var(--font-size-sm);color:var(--color-warning-dark);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:8px;padding:10px 12px}.cde-permission-editor-table-wrap{border:1px solid var(--border-color);border-radius:8px;overflow-y:scroll;overflow-x:hidden;flex:1;min-height:200px;max-height:400px;background:var(--bg-surface);position:relative}.cde-permission-editor-table{width:100%;border-collapse:collapse;min-width:580px;table-layout:fixed}.cde-permission-editor-table th:first-child,.cde-permission-editor-table td:first-child{width:auto}.cde-permission-editor-table th:nth-child(2),.cde-permission-editor-table td:nth-child(2){width:200px}.cde-permission-editor-table th,.cde-permission-editor-table td{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;overflow:visible}.cde-permission-editor-table th{position:sticky;top:0;z-index:1;text-align:left;font-size:var(--font-size-sm);color:var(--text-secondary);background:var(--gray-50)}.cde-permission-editor-table tr:last-child td{border-bottom:none}.cde-permission-editor-table td:last-child,.cde-permission-editor-table th:last-child{width:100px;text-align:right}.cde-permission-editor-actions{display:flex;justify-content:flex-start}.cde-perm-add-btn,.cde-perm-remove-btn{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);border-radius:6px;font-size:var(--font-size-sm);padding:7px 12px;cursor:pointer;transition:all .2s ease}.cde-perm-add-btn:hover,.cde-perm-remove-btn:hover{background:var(--gray-100);border-color:var(--gray-400)}.cde-perm-remove-btn{color:var(--color-danger-dark);min-width:64px}.cde-perm-combobox-wrap{position:relative;width:100%}.cde-perm-email{width:100%}.cde-perm-dropdown{background:#fff;border:1px solid var(--border-color);border-radius:4px;max-height:240px;overflow-y:auto;box-shadow:0 4px 12px #00000026;pointer-events:auto}.cde-perm-dropdown-portal{position:absolute!important}.cde-perm-dropdown-fixed{position:fixed!important;z-index:10002}.cde-perm-dropdown-item{padding:8px 12px;cursor:pointer;transition:background .15s}.cde-perm-dropdown-item:hover{background:var(--gray-100)}.cde-perm-item-email{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.cde-perm-item-name{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:2px}.cde-perm-no-results{padding:12px;text-align:center;color:var(--text-secondary);font-size:var(--font-size-sm)}@media(max-width:768px){.cde-permission-dialog .dialog-content{width:calc(100vw - 16px);max-height:95vh}.cde-permission-dialog .dialog-body{padding:14px 12px}.cde-permission-editor-table{min-width:480px}}.permission-settings .permission-option .permission-label{font-size:var(--font-size-base)}.permission-settings .permission-inherit-toggle{margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-200)}.permission-settings .inherit-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--font-size-md);color:var(--text-primary)}.permission-settings .inherit-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-info-dark);cursor:pointer}.naming-option-group{display:flex;flex-direction:column;gap:12px;margin:16px 0}.naming-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:2px solid var(--gray-200);border-radius:8px;cursor:pointer;transition:all .2s ease;background:var(--bg-surface)}.naming-option:hover{border-color:var(--color-info);background:var(--gray-50)}.naming-option.selected{border-color:var(--color-info);background:var(--color-info-bg)}.naming-option input[type=radio]{margin-top:3px;accent-color:var(--color-info-dark)}.naming-option-content{flex:1}.naming-option-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:4px}.naming-option-desc{font-size:var(--font-size-base);color:var(--gray-600);line-height:1.4}.iso19650-hint{margin-top:12px;padding:10px 12px;background:var(--color-warning-bg);border-radius:6px;border-left:3px solid var(--color-warning)}.iso19650-hint small{font-size:var(--font-size-base);color:var(--color-warning-dark)}.settings-section{background:var(--bg-surface);border-radius:8px;padding:24px;margin:16px}.settings-header h3{font-size:var(--font-size-xxl);font-weight:600;color:var(--text-primary);margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--gray-200)}.settings-section-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--gray-200)}.settings-description{font-size:var(--font-size-md);color:var(--gray-600);margin-bottom:16px}.settings-subsection{margin-bottom:24px;padding:16px;background:var(--gray-50);border-radius:8px}.settings-subsection h5{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:12px}.naming-settings-shell{display:flex;flex-direction:column;gap:16px}.settings-subtabs{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:4px}.settings-subtab{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border:1px solid var(--gray-300);border-radius:999px;background:var(--bg-surface);color:var(--gray-700);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.settings-subtab:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.settings-subtab.active{border-color:var(--primary-blue);background:#3b82f614;color:var(--primary-blue)}.settings-card-block{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;padding:20px;min-width:0}.naming-subpanel{display:none}.naming-subpanel.active{display:block}.settings-card-header{margin-bottom:18px}.settings-card-header .settings-section-title{margin-bottom:10px}.settings-card-header .settings-description{margin-bottom:0}.naming-settings-card .form-actions{margin-top:20px}.topic-numbering-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.summary-label{display:block;font-size:var(--font-size-sm);color:var(--gray-600);margin-bottom:4px}.topic-numbering-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--gray-200);border-radius:10px;background:var(--bg-surface)}.topic-numbering-toolbar-copy{display:grid;gap:4px;color:var(--gray-700);font-size:var(--font-size-sm)}.topic-numbering-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.topic-numbering-state{padding:14px 16px;border-radius:8px;margin-bottom:16px;font-size:var(--font-size-md);line-height:1.45}.topic-numbering-loading{background:var(--bg-surface);border:1px dashed var(--gray-300);color:var(--gray-600)}.topic-numbering-readonly{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.topic-numbering-types{display:grid;gap:16px}.topic-type-section{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:10px;padding:16px}.topic-type-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.topic-type-header{margin:0}.topic-type-label{display:flex;align-items:center;gap:8px}.topic-type-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-sm);font-size:var(--cde-fs-md);font-weight:600;letter-spacing:.02em}.topic-type-blue{background:#2563eb;color:#fff}.topic-type-green{background:#16a34a;color:#fff}.topic-type-purple{background:#7c3aed;color:#fff}.topic-type-orange{background:#ea580c;color:#fff}.topic-type-count{font-size:var(--font-size-sm);color:var(--gray-500)}.stream-card{border:1px solid var(--gray-200);border-radius:10px;background:#fff;overflow:hidden;transition:box-shadow .15s ease}.stream-card:hover{box-shadow:0 2px 8px #00000012}.stream-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--gray-100)}.stream-header-left{display:flex;align-items:center;gap:8px;min-width:0}.stream-card-body{padding:10px 14px;display:grid;gap:6px}.stream-format-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.stream-format-code,.stream-preview-code{padding:3px 8px;border-radius:6px;font-size:var(--font-size-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stream-format-code{background:var(--gray-100);color:var(--text-primary);border:1px solid var(--gray-200)}.stream-preview-code{background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd}.stream-arrow{color:var(--gray-400);flex-shrink:0}.stream-seq-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;background:var(--gray-100);border:1px solid var(--gray-200);font-size:var(--font-size-xs);color:var(--gray-600);white-space:nowrap}.stream-seq-pill strong{color:var(--text-primary)}.stream-meta{display:flex;gap:12px;font-size:var(--font-size-xs);color:var(--gray-500)}.stream-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.stream-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--gray-200);border-radius:6px;background:var(--bg-surface);color:var(--gray-700);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.stream-action-btn:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--text-primary)}.stream-action-btn.danger{color:#dc2626;border-color:#fecaca}.stream-action-btn.danger:hover{background:#fff1f2;border-color:#fca5a5}.nm2-preview-box{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg)}.nm2-preview-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-500);margin-bottom:var(--spacing-sm)}.nm2-chips-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:28px}.nm2-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:var(--radius-sm);background:var(--gray-700);color:#fff;font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium)}.nm2-chip.chip-sequence{background:var(--color-primary)}.nm2-chip-sep{color:var(--gray-400);font-size:var(--font-size-base);padding:0 1px}.nm2-sep-section{margin-bottom:var(--spacing-lg)}.nm2-sep-label{font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium);color:var(--gray-600);margin-bottom:var(--spacing-xs)}.nm2-sep-pills{display:flex;gap:5px;flex-wrap:wrap}.nm2-sep-pill{height:28px;min-width:32px;padding:0 10px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--cde-fs-md);font-family:var(--font-family-mono);color:var(--gray-600);cursor:pointer;transition:all .15s}.nm2-sep-pill.active,.nm2-sep-pill:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}.nm2-fields-section{margin-bottom:var(--spacing-lg)}.nm2-fields-label{font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium);color:var(--gray-600);margin-bottom:var(--spacing-xs);display:flex;justify-content:space-between}.nm2-field-table{width:100%;border-collapse:collapse;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.nm2-field-table th{background:var(--gray-100);font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium);color:var(--gray-600);padding:7px 8px;text-align:left;border-bottom:1px solid var(--gray-200)}.tn-field-list{display:flex;flex-direction:column;border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.tn-field-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--gray-100);background:var(--bg-surface);font-size:var(--cde-fs-md)}.tn-field-row:last-child{border-bottom:none}.tn-field-row.drag-over{background:var(--color-primary-bg)}.tn-field-row.dragging{opacity:.4}.tn-field-control{flex:1;min-width:0;display:flex}.tn-field-control .form-select-sm,.tn-field-control .form-input-sm{width:100%}.tn-field-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.tn-fixed-token{display:inline-flex;align-items:center;height:26px;padding:0 8px;border-radius:var(--radius-sm);background:var(--gray-50);border:1px dashed var(--gray-300);font-family:var(--font-family-mono);font-size:var(--cde-fs-md);color:var(--gray-500)}.drag-handle{color:var(--gray-400);font-size:var(--cde-fs-md);cursor:grab;-webkit-user-select:none;user-select:none;padding:0 2px}.drag-handle:active{cursor:grabbing}.nm2-type-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--gray-700)}.nm2-type-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--radius-sm);font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium);background:var(--gray-200);color:var(--gray-800);border:1px solid var(--gray-300)}.nm2-move-btns{display:flex;flex-direction:column;gap:1px}.nm2-move-btn{width:20px;height:15px;border:1px solid var(--gray-200);border-radius:3px;background:var(--bg-surface);font-size:var(--font-size-4xs);color:var(--gray-500);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.nm2-move-btn:hover:not(:disabled){background:var(--gray-100);color:var(--gray-700)}.nm2-move-btn:disabled{opacity:.35;cursor:not-allowed}.nm2-remove-btn{width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--gray-400);font-size:var(--font-size-xs);cursor:pointer;display:flex;align-items:center;justify-content:center}.nm2-remove-btn:hover{background:var(--color-danger-bg);color:var(--color-danger-dark)}.nm2-examples-section{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg)}.nm2-examples-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-500);margin-bottom:var(--spacing-xs)}.nm2-examples-list{display:flex;flex-direction:column;gap:3px}.snf-example-code,.nm2-example-code{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--gray-700);background:var(--bg-surface);border:1px solid var(--gray-200);padding:2px 7px;border-radius:var(--radius-sm);display:inline-block}.tn-builder{padding:0}.tn-2col{display:grid;grid-template-columns:1fr 280px;gap:var(--spacing-xl);align-items:start}.tn-col-left{min-width:0}.tn-col-right{min-width:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.tn-col-label{font-size:var(--cde-fs-md);font-weight:var(--font-weight-medium);color:var(--gray-700);margin-bottom:var(--spacing-xs);display:flex;align-items:center;justify-content:space-between}.tn-field-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--gray-400)}.tn-add-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.tn-add-row .form-select-sm{flex:1}.tn-add-btn-inline{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--gray-600);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.tn-add-btn-inline:hover{background:var(--color-primary-bg);border-color:var(--color-primary);color:var(--color-primary)}.tn-preview-compact{display:flex;align-items:flex-start;gap:var(--spacing-sm);flex-wrap:wrap;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--spacing-md)}.tn-preview-compact .nm2-chips-row{flex:1;min-height:26px}.tn-sep-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.tn-sep-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-600);white-space:nowrap}.tn-sep-row .nm2-sep-pills{gap:4px}.tn-sep-row .nm2-sep-pill{height:28px;min-width:30px;padding:0 8px;font-size:var(--cde-fs-md)}.tn-examples-compact{display:flex;flex-direction:column;gap:3px}.tn-examples-compact .snf-example-code{font-size:var(--font-size-sm);padding:2px 6px}.tn-save-row{display:flex;align-items:center;gap:var(--spacing-sm)}.tn-save-row .form-input-sm{flex:1;min-width:0}.tn-save-row .btn-primary{flex-shrink:0;white-space:nowrap}.btn-ghost{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:transparent;color:var(--gray-600);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.btn-ghost:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-800)}.tn-streams-panel{display:flex;flex-direction:column;gap:var(--spacing-xs)}.tn-panel-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-500);margin-bottom:4px}.tn-stream-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--bg-surface);transition:box-shadow var(--transition-fast)}.tn-stream-row:hover{box-shadow:var(--shadow-sm)}.tn-stream-row-left{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0;flex-wrap:wrap}.stream-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.stream-status-dot.is-enabled{background:var(--color-success)}.stream-status-dot.is-disabled{background:var(--gray-300)}.tn-stream-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap}.tn-stream-row-actions{display:flex;align-items:center;gap:3px;flex-shrink:0}.tn-row-btn{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--gray-600);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.tn-row-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.tn-row-btn.danger{color:var(--color-danger-dark);border-color:var(--color-danger-border)}.tn-row-btn.danger:hover{background:var(--color-danger-bg)}.tn-streams-empty{font-size:var(--font-size-sm);color:var(--gray-400);padding:var(--spacing-sm) var(--spacing-md);border:1px dashed var(--gray-200);border-radius:var(--radius-md);text-align:center}.tn-panel-label{margin-bottom:var(--spacing-xs)}@media(max-width:700px){.tn-2col{grid-template-columns:1fr}}.tn-type-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:2px solid var(--gray-200, #e2e8f0);padding-bottom:0}.tn-type-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;background:none;cursor:pointer;border-radius:6px 6px 0 0;font-size:var(--cde-fs-md);font-weight:500;color:var(--gray-500);transition:color .15s,border-color .15s,background .15s}.tn-type-tab:hover{background:var(--gray-50);color:var(--gray-800)}.tn-type-tab.active{color:var(--gray-900);border-bottom-color:var(--color-primary);background:var(--gray-50)}.tn-type-tab .topic-type-badge{opacity:.55}.tn-type-tab.active .topic-type-badge,.tn-type-tab:hover .topic-type-badge{opacity:1}.tn-panels{position:relative}.tn-type-panel{display:none}.tn-type-panel.active{display:block}.stream-action-btn:disabled{opacity:.5;cursor:not-allowed}.streams-list{display:grid;gap:12px}.stream-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;border:1px solid var(--gray-200);border-radius:10px;background:linear-gradient(180deg,#fff,#f8fafc)}.stream-info{flex:1;min-width:0}.stream-name-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.stream-name{font-size:var(--font-size-md);font-weight:700;color:var(--text-primary)}.stream-status-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:700}.stream-status-badge.is-enabled{background:#ecfdf5;border:1px solid #bbf7d0;color:#15803d}.stream-status-badge.is-disabled{background:#f8fafc;border:1px solid #cbd5e1;color:#475569}.stream-format,.stream-preview,.stream-sequence,.stream-metadata{font-size:var(--font-size-base);color:var(--gray-700)}.stream-format,.stream-preview,.stream-sequence{margin-bottom:6px}.stream-format code,.stream-preview code{padding:2px 6px;border-radius:6px;background:var(--gray-100);color:var(--text-primary)}.stream-metadata{display:flex;flex-wrap:wrap;gap:16px;margin-top:4px}.stream-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.stream-actions button{white-space:nowrap}.no-streams-message{padding:14px 16px;border-radius:8px;background:var(--gray-50);color:var(--gray-600);border:1px dashed var(--gray-300)}@media(max-width:900px){.topic-numbering-summary{grid-template-columns:1fr}.topic-numbering-toolbar{flex-direction:column}.topic-numbering-toolbar-actions{justify-content:flex-start}.topic-type-header-row,.stream-row,.stream-card-header{flex-direction:column;align-items:stretch}.stream-actions{justify-content:flex-start}.stream-format-row{flex-direction:column;align-items:flex-start}}.data-fields-table{margin:16px 0}.fields-table{width:100%;border-collapse:collapse;background:var(--bg-surface);border-radius:8px;overflow:hidden;border:1px solid var(--gray-200)}.fields-table th{background:var(--gray-50);padding:12px 16px;text-align:left;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--gray-200)}.fields-table td{padding:12px 16px;border-bottom:1px solid var(--gray-100);font-size:var(--font-size-md);color:var(--text-primary)}.fields-table tr:hover{background:var(--gray-50)}.fields-table .col-visible{width:80px;text-align:center}.fields-table .col-field{width:50%}.fields-table .col-required{width:100px;text-align:center}.fields-table input[type=checkbox]{width:18px;height:18px;cursor:pointer}.data-fields-simple{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.data-fields-header{display:grid;grid-template-columns:60px 1fr 120px 50px;gap:12px;padding:12px 16px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:var(--font-size-base);font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.5px}.data-fields-list{max-height:400px;overflow-y:auto}.data-field-row{display:grid;grid-template-columns:60px 1fr 120px 50px;gap:12px;padding:12px 16px;border-bottom:1px solid var(--gray-100);align-items:center;transition:background .15s ease}.data-field-row:hover{background:var(--gray-50)}.data-field-row.active{background:var(--color-info-bg)}.data-field-row .df-col-check{text-align:center}.data-field-row .df-col-check input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-info)}.data-field-row .df-col-name{display:flex;align-items:center;gap:8px}.data-field-row .field-label-text{font-size:var(--font-size-md);color:var(--text-primary)}.data-field-row .badge-required{font-size:var(--font-size-xs);padding:2px 6px;background:var(--color-warning-bg);color:var(--color-warning-dark);border-radius:4px;font-weight:500}.data-field-row .df-col-category{text-align:left}.data-field-row .category-tag{display:inline-block;font-size:var(--font-size-xs);padding:3px 8px;border-radius:4px;font-weight:500}.category-tag.category-basic{background:var(--color-info-bg);color:var(--color-info-dark)}.category-tag.category-iso19650{background:var(--color-success-bg);color:var(--color-success-dark)}.category-tag.category-audit{background:var(--color-danger-bg);color:var(--color-danger-dark)}.category-tag.category-versioning{background:var(--color-warning-bg);color:var(--color-warning-dark)}.category-tag.category-checkout{background:var(--color-info-bg);color:var(--color-info-dark)}.category-tag.category-classification{background:var(--color-purple-bg);color:var(--color-purple-dark)}.category-tag.category-workflow{background:var(--color-warning-bg);color:var(--color-warning-dark)}.category-tag.category-properties{background:var(--gray-200);color:var(--text-primary)}.data-field-row .df-col-actions{text-align:center}.btn-icon-sm{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--gray-400);border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-icon-sm:hover{background:var(--color-danger-bg);color:var(--color-danger-dark)}.data-fields-simple .btn-add-field{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px;padding:10px 16px;font-size:var(--font-size-md);accent-color:var(--color-info)}.badge-required{color:var(--color-success);font-weight:600}.badge-optional{color:var(--gray-400)}.attributes-table{width:100%;border-collapse:collapse;background:var(--bg-surface);border-radius:8px;overflow:hidden;border:1px solid var(--gray-200);margin-bottom:12px}.attributes-table th{background:var(--gray-50);padding:12px;text-align:left;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--gray-200)}.attributes-table td{padding:10px 12px;border-bottom:1px solid var(--gray-100);font-size:var(--font-size-base);color:var(--text-primary)}.attributes-table .attr-code-input{width:60px;padding:4px 8px;border:1px solid var(--gray-300);border-radius:4px;font-size:var(--font-size-base);font-family:monospace}.btn-remove-attr{background:var(--color-danger-bg);color:var(--color-danger-dark);border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:var(--font-size-base);white-space:nowrap;flex-shrink:0}.btn-remove-attr:hover{background:var(--color-danger-bg)}.naming-preview-box{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:8px;padding:16px;margin-top:12px}.naming-preview-box code{display:block;font-size:var(--font-size-xl);font-family:JetBrains Mono,monospace;color:var(--color-success-dark);margin-bottom:8px}.naming-preview-box .preview-example{font-size:var(--font-size-base);color:var(--gray-600)}.attributes-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.attr-item{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:8px;padding:16px}.attr-item .attr-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--gray-100)}.attr-item .attr-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-md)}.attr-item .attr-code{background:var(--gray-100);padding:2px 8px;border-radius:4px;font-size:var(--font-size-base);font-family:monospace;color:var(--gray-600)}.attr-item .attr-config{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.attr-item .attr-values{flex:1;min-width:200px}.attr-item .attr-values label{display:block;font-size:var(--font-size-base);color:var(--gray-600);margin-bottom:6px}.attr-item .attr-values-select{width:100%;max-width:300px}.attr-item .attr-auto{color:var(--gray-400);font-style:italic;font-size:var(--font-size-base)}.roles-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.role-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:8px}.role-info{display:flex;flex-direction:column;gap:4px}.role-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.role-desc{font-size:var(--font-size-base);color:var(--gray-600)}.role-permissions{display:flex;gap:6px;flex-wrap:wrap}.permission-badge{padding:4px 8px;background:var(--color-info-bg);border-radius:4px;font-size:var(--font-size-xs);font-weight:500;color:var(--color-info-dark)}.data-fields-categories{display:flex;flex-direction:column;gap:16px}.field-category{border:1px solid var(--gray-200);border-radius:8px;overflow:hidden;background:var(--bg-surface)}.field-category .category-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--gray-50);cursor:pointer;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:0;border-bottom:1px solid var(--gray-200);transition:background .2s}.field-category .category-header:hover{background:var(--gray-100)}.field-category .category-header .toggle-icon{font-size:var(--font-size-xs);color:var(--gray-600);transition:transform .2s}.field-category.collapsed .category-header .toggle-icon{transform:rotate(-90deg)}.field-category .category-fields{padding:12px}.field-category.collapsed .category-fields{display:none}.rbac-matrix-wrapper{overflow-x:auto;margin:16px 0}.rbac-matrix-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.rbac-matrix-table th,.rbac-matrix-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--gray-200)}.rbac-matrix-table th{background:var(--gray-50);font-weight:600;color:var(--text-primary);font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.5px}.rbac-matrix-table .col-role{min-width:180px}.rbac-matrix-table .col-party{min-width:80px}.rbac-matrix-table .col-zone{min-width:90px;text-align:center}.role-name-cell{display:flex;flex-direction:column;gap:2px}.role-name-cell .role-name{font-weight:600;color:var(--text-primary)}.role-name-cell .role-desc{font-size:var(--font-size-base);color:var(--gray-600)}.party-badge{display:inline-block;padding:3px 8px;border-radius:12px;font-size:var(--font-size-xs);font-weight:500}.party-badge.party-client{background:var(--color-info-bg);color:var(--color-info-dark)}.party-badge.party-consultant{background:var(--color-success-bg);color:var(--color-success-dark)}.party-badge.party-contractor{background:var(--color-warning-bg);color:var(--color-warning-dark)}.party-badge.party-external{background:var(--gray-100);color:var(--gray-600)}.zone-perm-select{padding:6px 10px;border:1px solid var(--gray-300);border-radius:6px;background:var(--bg-surface);font-size:var(--font-size-base);cursor:pointer;min-width:80px}.zone-perm-select:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 2px #3b82f633}.permission-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;padding:12px;background:var(--gray-50);border-radius:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:var(--font-size-base);color:var(--gray-600)}.legend-color{width:16px;height:16px;border-radius:4px}.perm-full{background:var(--color-success)}.perm-write{background:var(--color-info)}.perm-read{background:var(--color-warning)}.perm-none{background:var(--gray-200)}.perm-badge-full{background:var(--color-success);color:#fff}.perm-badge-write{background:var(--color-info);color:#fff}.perm-badge-read{background:var(--color-warning);color:#fff}.perm-badge-delete{background:var(--color-danger);color:#fff}.perm-badge-manage{background:var(--color-primary);color:#fff}.perm-badge-approve{background:var(--color-info);color:#fff}.perm-badge-publish{background:var(--color-pink);color:#fff}.perm-badge-comment{background:var(--color-success);color:#fff}.perm-badge-settings{background:var(--gray-600);color:#fff}.integration-status{display:flex;align-items:center;gap:8px;margin-bottom:16px}.status-indicator{width:10px;height:10px;border-radius:50%;background:var(--gray-400)}.status-indicator.connected{background:var(--color-success)}.api-key-container{display:flex;gap:8px}.api-key-container input{flex:1}.toast-notification{position:fixed;bottom:24px;right:24px;padding:12px 20px;border-radius:8px;font-size:var(--font-size-md);font-weight:500;z-index:9999;animation:slideIn .3s ease}.toast-notification.success,.toast-notification.error{color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.version-management{padding:24px;max-width:1600px;margin:0 auto;background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%);min-height:calc(100vh - 120px)}.version-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;border-bottom:2px solid var(--gray-200);background:var(--bg-surface);padding:20px 24px;border-radius:12px;box-shadow:0 1px 3px #0000000d}.version-header h2{font-size:var(--font-size-4xl);font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.5px}.version-view-toggle{display:flex;background:var(--gray-100);border-radius:8px;padding:4px;gap:4px}.view-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;background:transparent;color:var(--gray-500);font-size:var(--font-size-base);font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.view-toggle-btn:hover{color:var(--text-primary);background:var(--gray-200)}.view-toggle-btn.active{background:var(--bg-surface);color:var(--text-primary)}.builder-field-wrapper{margin:16px 0;padding:12px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:6px}.simple-rule-builder{display:flex;flex-direction:column;gap:12px}.builder-container{display:flex;gap:8px;align-items:center}.pattern-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:var(--font-size-sm);font-family:Monaco,Menlo,monospace;min-width:200px}.pattern-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 2px #2563eb1a}.btn-variables{padding:8px 12px;background:var(--bg-light);border:1px solid var(--border-color);border-radius:4px;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;color:var(--text-color)}.btn-variables:hover{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.preview-section{display:flex;flex-direction:column;gap:6px}.preview-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.preview-samples{padding:8px 12px;background:#f5f5f5;border:1px solid var(--border-color);border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:var(--font-size-sm);color:var(--primary-blue);font-weight:500;line-height:1.6;min-height:50px}.variables-panel{padding:12px;background:var(--bg-light);border:1px solid var(--border-color);border-radius:4px;margin-top:4px}.variables-list{display:flex;flex-direction:column;gap:8px}.var-item{display:flex;gap:8px;font-size:var(--font-size-sm);color:var(--text-color)}.var-item code{min-width:80px;padding:2px 6px;background:var(--primary-blue);color:#fff;border-radius:3px;font-family:Monaco,Menlo,monospace;font-weight:500;font-size:var(--font-size-xs)}.error-message{padding:8px 12px;background:#ffebee;border:1px solid #ef5350;border-radius:4px;font-size:var(--font-size-sm);color:#c62828;font-weight:500}.var-protected{background:#2563eb0d;border-left:3px solid var(--primary-blue);padding-left:10px}.var-custom{background:#4caf500d;border-left:3px solid #4caf50;padding-left:10px}.variables-note{padding:8px 12px;background:#fff3e0;border:1px solid #ffb74d;border-radius:4px;font-size:var(--font-size-xs);color:#e65100;margin-top:8px;font-weight:500}.topic-no-rules-dialog .dialog-content{max-width:400px;padding:24px;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003}.topic-no-rules-dialog .dialog-header h3{margin:0 0 16px;font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.topic-no-rules-dialog .dialog-body{margin-bottom:20px;color:var(--text-secondary);line-height:1.5}.topic-no-rules-dialog .dialog-body p{margin:8px 0}.topic-no-rules-dialog .dialog-footer{display:flex;gap:8px;justify-content:flex-end}.topic-no-rules-dialog .btn{padding:8px 16px;font-size:var(--font-size-sm);font-weight:500}.view-toggle-btn svg{width:16px;height:16px}.version-actions{display:flex;gap:12px}.version-gitflow{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:16px;padding:28px;margin-bottom:24px;box-shadow:0 4px 6px -1px #0000000d}.gitflow-legend{display:flex;align-items:center;gap:20px;margin-bottom:28px;border-bottom:1px solid var(--gray-100);flex-wrap:wrap;background:var(--gray-50);padding:16px 20px;border-radius:10px}.legend-title{font-weight:700;color:var(--text-primary);font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.5px}.legend-item{display:flex;align-items:center;gap:8px;font-size:var(--font-size-base);color:var(--gray-600);padding:6px 12px;background:var(--bg-surface);border-radius:20px;border:1px solid var(--gray-200)}.legend-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 2px 4px #0000001a}.legend-separator{color:var(--gray-300);font-size:var(--font-size-xl);margin:0 8px}.gitflow-timeline{min-height:200px}.gitflow-empty{text-align:center;padding:40px;color:var(--gray-400);font-size:var(--font-size-md)}.gitflow-container{display:flex;align-items:flex-start;gap:24px;overflow-x:auto;padding:20px 0}.gitflow-branch{display:flex;flex-direction:column;align-items:center;min-width:100px}.branch-label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-base);font-weight:600;color:var(--gray-600);margin-bottom:8px}.branch-icon{font-size:var(--font-size-md)}.branch-line{width:2px;height:100%;min-height:150px;background:linear-gradient(to bottom,var(--gray-200),var(--gray-300));border-radius:1px}.version-node{position:relative;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .2s}.version-node:hover{transform:scale(1.05)}.node-connector{position:absolute;top:20px;left:50%;width:40px;height:2px;background:var(--gray-200)}.version-node:first-child .node-connector{display:none}.node-circle{width:48px;height:48px;border-radius:50%;border:3px solid;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);z-index:1;box-shadow:0 2px 8px #0000001a;transition:box-shadow .2s}.version-node:hover .node-circle{box-shadow:0 4px 12px #00000026}.version-node.current .node-circle{box-shadow:0 0 0 3px #3b82f64d}.node-info{margin-top:12px;text-align:center;min-width:100px}.node-version{font-weight:700;font-size:var(--font-size-md);color:var(--text-color)}.node-label{font-size:var(--font-size-xs);font-weight:500;margin-top:2px}.node-zone{font-size:var(--font-size-xs);margin-top:2px}.node-date{font-size:var(--font-size-xs);color:var(--gray-400);margin-top:4px}.node-badge-current{position:absolute;top:-8px;right:-10px;background:var(--color-info);color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:2px 6px;border-radius:10px}.version-list-container{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:16px;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d}.version-list-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%)}.version-list-header h3{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin:0}.version-filters{display:flex;gap:12px}.version-filters .gantt-select{padding:8px 16px;border:1px solid var(--gray-200);border-radius:8px;background:var(--bg-surface);font-size:var(--font-size-base);color:var(--gray-600);cursor:pointer;transition:all .2s}.version-filters .gantt-select:hover{border-color:var(--color-info);box-shadow:0 2px 4px #3b82f61a}.version-list{padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;max-height:700px;overflow-y:auto;background:var(--gray-50)}.version-card{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:14px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.version-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--state-color, var(--gray-600))}.version-card:hover{border-color:var(--color-info);box-shadow:0 8px 25px #3b82f626;transform:translateY(-2px)}.version-card.highlight{animation:cardHighlight .5s ease}@keyframes cardHighlight{0%,to{transform:scale(1)}50%{transform:scale(1.02);border-color:var(--color-info)}}.version-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%);border-bottom:1px solid var(--gray-100)}.version-number{font-weight:700;font-size:var(--font-size-xl);color:var(--text-primary);display:flex;align-items:center;gap:8px}.version-state{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:24px;font-size:var(--font-size-base);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.version-current-badge{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-dark) 100%);color:#fff;font-size:var(--font-size-xs);font-weight:700;padding:5px 12px;border-radius:20px;box-shadow:0 2px 4px #f59e0b4d;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 2px 4px #f59e0b4d}50%{box-shadow:0 2px 8px #f59e0b80}}.version-card-body{padding:20px}.version-file{font-family:Fira Code,Consolas,monospace;font-size:var(--font-size-md);color:var(--text-primary);margin-bottom:12px;word-break:break-all;padding:10px 14px;background:var(--gray-50);border-radius:8px;border-left:3px solid var(--color-info)}.version-description{font-size:var(--font-size-md);color:var(--gray-500);margin-bottom:16px;line-height:1.6;padding:12px;background:var(--gray-50);border-radius:8px}.version-meta{display:flex;align-items:center;gap:20px;font-size:var(--font-size-base);color:var(--gray-500);flex-wrap:wrap}.version-zone{display:flex;align-items:center;gap:6px;font-weight:600;padding:4px 10px;border-radius:6px;background:var(--bg-surface);border:1px solid var(--gray-200)}.zone-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 2px 4px #0000001a}.version-card-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--gray-200);background:var(--gray-100)}.btn-icon{width:32px;height:32px;border:none;background:var(--bg-surface);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-600);transition:all .2s;border:1px solid var(--gray-200)}.btn-icon:hover{background:var(--gray-100);color:var(--color-info);border-color:var(--color-info)}.advance-dialog .state-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px}.state-option{display:flex;align-items:center;gap:10px;padding:12px 16px;border:2px solid var(--gray-200);border-radius:8px;background:var(--bg-surface);cursor:pointer;transition:all .2s;font-size:var(--font-size-base);color:var(--text-color)}.state-option:hover{border-color:var(--state-color, var(--color-info));background:var(--gray-50)}.state-dot{width:12px;height:12px;border-radius:50%}.new-version-dialog .form-group{margin-bottom:16px}.new-version-dialog label{display:block;font-size:var(--font-size-base);font-weight:500;color:var(--text-color);margin-bottom:6px}.new-version-dialog .form-input,.new-version-dialog .form-select{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:var(--font-size-base);transition:border-color .2s}.new-version-dialog .form-input:focus,.new-version-dialog .form-select:focus{outline:none;border-color:var(--color-info)}@media(max-width:768px){.version-header{flex-direction:column;align-items:flex-start;gap:16px}.version-filters{flex-direction:column;width:100%}.gitflow-container{flex-direction:column;align-items:flex-start}.gitflow-branch{flex-direction:row;min-width:auto}.branch-line{width:auto;height:2px;min-width:100px}.version-list{grid-template-columns:1fr}}.version-header-left{display:flex;align-items:center;gap:24px}.version-view-toggle{display:flex;gap:4px;background:var(--gray-100);padding:4px;border-radius:8px}.view-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:var(--font-size-base);font-weight:500;color:var(--gray-600);transition:all .2s}.view-toggle-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.view-toggle-btn.active{background:var(--bg-surface);color:var(--color-info);box-shadow:0 1px 3px #0000001a}.version-view{display:none}.version-view.active{display:block}.legend-separator{color:var(--gray-300);margin:0 8px}.file-label{font-size:var(--font-size-xs);color:var(--gray-600);margin-bottom:8px;white-space:nowrap;font-weight:500}.perfile-header{margin-bottom:20px}.perfile-header select{min-width:300px;padding:10px 16px;border:1px solid var(--gray-300);border-radius:8px;font-size:var(--font-size-md);background:var(--bg-surface)}.perfile-empty{text-align:center;padding:60px 20px;color:var(--gray-400);font-size:var(--font-size-md);background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-color)}.perfile-detail{background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.perfile-info{padding:20px;border-bottom:1px solid var(--gray-200)}.perfile-info h3{font-size:var(--font-size-xl);font-weight:600;color:var(--text-color);margin:0 0 16px;font-family:monospace}.perfile-stats{display:flex;gap:32px;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:var(--font-size-base);color:var(--gray-600);font-weight:500}.stat-value{font-size:var(--font-size-xl);font-weight:600;color:var(--text-color)}.perfile-timeline{padding:20px}.perfile-timeline h4{font-size:var(--font-size-md);font-weight:600;color:var(--text-color);margin:0 0 16px}.timeline-vertical{display:flex;flex-direction:column}.timeline-item{display:flex;gap:16px;padding-bottom:20px;position:relative}.timeline-item:not(:last-child):before{content:"";position:absolute;left:11px;top:28px;bottom:0;width:2px;background:var(--gray-200)}.timeline-marker{width:24px;height:24px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-surface);z-index:1}.timeline-content{flex:1;padding-top:2px}.timeline-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.timeline-version{font-weight:700;font-size:var(--font-size-md);color:var(--text-color)}.timeline-state{font-size:var(--font-size-base);font-weight:500}.timeline-current{background:var(--color-info);color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px;border-radius:10px}.timeline-description{font-size:var(--font-size-base);color:var(--gray-600);margin-bottom:6px}.timeline-meta{display:flex;gap:16px;font-size:var(--font-size-xs);color:var(--gray-400)}.compare-header{margin-bottom:20px}.compare-selectors{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.compare-selector{display:flex;flex-direction:column;gap:6px}.compare-selector label{font-size:var(--font-size-base);font-weight:500;color:var(--gray-600)}.compare-selector select{min-width:250px;padding:10px 16px;border:1px solid var(--gray-300);border-radius:8px;font-size:var(--font-size-base);background:var(--bg-surface)}.compare-placeholder{text-align:center;padding:80px 20px;color:var(--gray-400);background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-color)}.compare-placeholder svg{margin-bottom:16px;opacity:.3}.compare-placeholder p{font-size:var(--font-size-md)}.compare-result{background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.compare-header{display:flex;justify-content:center;align-items:center;gap:32px;padding:24px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.compare-version{display:flex;flex-direction:column;align-items:center;gap:8px}.compare-label{font-size:var(--font-size-xs);color:var(--gray-600);text-transform:uppercase;font-weight:500}.compare-version-num{font-size:var(--font-size-xl);font-weight:700;color:var(--text-color)}.compare-state{font-size:var(--font-size-base);font-weight:500}.compare-arrow{font-size:var(--font-size-xxxl);color:var(--gray-300)}.compare-details{padding:20px;overflow-x:auto}.compare-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.compare-table th,.compare-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--gray-200)}.compare-table th{font-weight:600;color:var(--gray-600);background:var(--gray-100);font-size:var(--font-size-xs);text-transform:uppercase}.compare-table td:first-child{font-weight:500;color:var(--gray-600);width:150px}.compare-table td:nth-child(2),.compare-table td:nth-child(3){font-family:monospace;font-size:var(--font-size-base)}.compare-table td:last-child{text-align:center;width:80px}.compare-table .changed{color:var(--color-danger);font-weight:600}.compare-table .unchanged{color:var(--gray-400)}.version-detail-dialog .detail-section{margin-bottom:24px}.version-detail-dialog .detail-section:last-child{margin-bottom:0}.version-detail-dialog h4{font-size:var(--font-size-md);font-weight:600;color:var(--text-color);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--gray-200)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{font-size:var(--font-size-xs);color:var(--gray-600);font-weight:500;text-transform:uppercase}.detail-item span{font-size:var(--font-size-base);color:var(--text-color)}.version-detail-dialog p{font-size:var(--font-size-base);color:var(--gray-600);line-height:1.6;margin:0}.version-approval-chain{margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-200)}.approval-chain-label{font-size:var(--font-size-xs);color:var(--gray-600);font-weight:500;margin-bottom:8px}.approval-item{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--gray-600);padding:4px 0}.approval-action{font-weight:500;color:var(--color-info)}.approval-user{color:var(--text-color)}.approval-date{color:var(--gray-400)}.approval-timeline{display:flex;flex-direction:column;gap:16px}.approval-entry{display:flex;gap:12px}.approval-icon{width:24px;height:24px;border-radius:50%;background:var(--color-success-bg);color:var(--color-success);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-base);font-weight:700;flex-shrink:0}.approval-info{flex:1}.approval-info .approval-action{font-size:var(--font-size-base);font-weight:600;color:var(--color-success);display:block;margin-bottom:2px}.approval-info .approval-user{font-size:var(--font-size-base);color:var(--text-color);display:block}.approval-info .approval-date{font-size:var(--font-size-xs);color:var(--gray-400);display:block;margin-top:2px}.approval-comment{font-size:var(--font-size-base);color:var(--gray-600);font-style:italic;margin-top:4px}@media(max-width:768px){.version-header-left{flex-direction:column;align-items:flex-start}.version-view-toggle{width:100%}.view-toggle-btn{flex:1;justify-content:center}.compare-selectors{flex-direction:column}.compare-selector select{width:100%}.detail-grid{grid-template-columns:1fr}}.clash-history-section{margin-top:16px;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-surface)}.clash-history-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--gray-50);border-bottom:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none}.clash-history-header:hover{background:var(--gray-100)}.clash-history-title{display:flex;align-items:center;gap:6px;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.clash-history-actions{display:flex;align-items:center;gap:8px}.clash-history-chevron{font-size:12px;color:var(--text-muted);line-height:1}.clash-history-body{overflow-y:auto;max-height:420px}.clash-history-body.collapsed{display:none}.clash-history-empty{margin:0;font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;padding:16px 0}.clash-history-list{box-sizing:border-box;padding:0;margin:0;overflow:hidden}.clash-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;min-width:28px;text-align:center}.clash-badge.no-clash{background:#f0fdf4;color:#166534}.clash-badge.has-clash-low{background:#fef9c3;color:#854d0e}.clash-badge.has-clash-medium{background:#fed7aa;color:#9a3412}.clash-badge.has-clash-high{background:#fecaca;color:#991b1b}.ch-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--gray-200);background:var(--gray-50);flex-wrap:wrap;position:sticky;top:0;z-index:2}.ch-search{flex:1;min-width:100px;height:26px;padding:0 8px;font-size:11px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--text-primary)}.ch-search:focus{outline:none;border-color:var(--color-primary)}.ch-sev-filter{height:26px;padding:0 6px;font-size:11px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--text-primary);cursor:pointer}.ch-group-toggle{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;font-size:11px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.ch-delete-selected{margin-left:auto;white-space:nowrap}.ch-group-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.ch-group-toggle.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ch-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ch-table thead{position:sticky;top:39px;z-index:1;background:var(--gray-50)}.ch-table th{padding:6px 10px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--gray-200);white-space:nowrap}.ch-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ch-sortable:hover{color:var(--color-primary)}.ch-sort-hint{opacity:.35}.ch-th-checkbox{width:32px;text-align:center}.ch-th-model{width:auto}.ch-th-count{width:55px;text-align:center}.ch-th-time{width:110px}.ch-th-actions{width:115px;text-align:right}.ch-row td{padding:6px 10px;border-bottom:1px solid var(--gray-100);vertical-align:middle;line-height:1.4}.ch-row:last-child td{border-bottom:none}.ch-row:hover td{background:var(--gray-50)}.ch-row-indented td:first-child{padding-left:24px}.ch-group-row td{padding:0;border-bottom:none}.ch-group-label{display:block;padding:4px 10px 3px;font-size:11px;font-weight:700;color:var(--text-secondary);background:var(--gray-100);border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200)}.ch-group-count{font-weight:400;color:var(--text-muted);margin-left:4px}.ch-td-model{word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;color:var(--text-primary);font-size:11px;line-height:1.3}.ch-model-name{display:inline;color:var(--text-primary)}.ch-vs{display:inline;color:var(--text-muted);font-weight:600;margin:0 2px}.ch-td-checkbox{text-align:center;vertical-align:middle}.ch-td-checkbox input[type=checkbox]{cursor:pointer;margin:0}.ch-td-count{text-align:center}.ch-td-time{font-size:11px;color:var(--text-secondary);white-space:nowrap}.ch-td-actions{text-align:right;white-space:nowrap}.ch-empty{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);padding:14px 0!important}.btn-history-view,.ch-btn-view{font-size:11px;padding:2px 8px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--color-primary);cursor:pointer;transition:all .15s}.btn-history-view:hover,.ch-btn-view:hover{background:var(--color-primary-lightest, #eff6ff);border-color:var(--color-primary)}.ch-btn-bcf{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:2px 7px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;margin-left:4px;transition:all .15s}.ch-btn-bcf:hover{border-color:#10b981;color:#059669;background:#f0fdf4}.ch-btn-bcf:disabled{opacity:.5;cursor:default}.btn.btn-xs{font-size:11px;padding:3px 8px;min-height:unset;border-radius:4px}.bcf-section-collapsible{border:1px solid var(--border-color);border-radius:6px;overflow:hidden;margin-bottom:8px}.section-toggle{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;background:var(--gray-50);-webkit-user-select:none;user-select:none}.section-toggle:hover{background:var(--gray-100)}.section-title{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.section-chevron{font-size:12px;color:var(--text-muted)}.section-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.bcf-header-section{border:none;padding:0;margin-bottom:8px}.bcf-header-row1{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.bcf-type-status-group{display:flex;align-items:center;gap:8px}.bcf-select-inline{font-size:var(--font-size-sm);padding:3px 8px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary)}.bcf-status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.status-open{background:#dbeafe;color:#1d4ed8}.status-in-progress{background:#fef3c7;color:#92400e}.status-resolved{background:#d1fae5;color:#065f46}.status-closed{background:var(--gray-100);color:var(--text-muted)}.bcf-priority-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:var(--font-size-sm);font-weight:600}.priority-critical{background:#fee2e2;color:#991b1b}.priority-major{background:#ffedd5;color:#9a3412}.priority-normal{background:#e0f2fe;color:#0369a1}.priority-minor{background:var(--gray-100);color:var(--text-muted)}.bcf-meta-row{display:flex;gap:12px;font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:6px}.bcf-index-label{font-weight:600}.bcf-guid-label{display:flex;align-items:center;gap:4px}.btn-copy-guid{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:0 2px;font-size:13px;line-height:1}.btn-copy-guid:hover{color:var(--color-primary)}.bcf-status-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.status-transition-btn{font-size:var(--font-size-sm);padding:4px 10px;border-radius:4px;border:1px solid transparent;cursor:pointer;font-weight:500;transition:all .15s}.status-transition-btn.btn-info{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.status-transition-btn.btn-success{background:#d1fae5;color:#065f46;border-color:#6ee7b7}.status-transition-btn.btn-primary{background:var(--color-primary);color:#fff}.status-transition-btn.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--gray-300)}.status-transition-btn:hover{filter:brightness(.93)}.bcf-priority-row{display:flex;align-items:center;gap:8px;margin-top:4px}.element-detail-row{display:flex;align-items:flex-start;gap:6px;font-size:var(--font-size-sm);line-height:1.4;margin-top:3px}.edr-key{flex-shrink:0;width:64px;color:var(--text-muted);font-size:11px}.edr-val{flex:1;color:var(--text-primary);word-break:break-all;display:flex;align-items:center;gap:4px}.ifc-guid-val{font-family:monospace;font-size:11px}.ifc-guid-missing{color:var(--text-muted);font-style:italic}.guid-missing{color:#f59e0b;cursor:help}.location-row{display:flex;gap:12px;font-size:var(--font-size-sm);color:var(--text-secondary);padding:4px 0}.labels-container{display:flex;flex-wrap:wrap;gap:6px;min-height:24px}.bcf-label-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-primary-lightest);color:var(--color-primary);border-radius:12px;font-size:var(--font-size-sm);font-weight:500}.label-remove-btn{background:none;border:none;cursor:pointer;color:var(--color-primary);padding:0;font-size:14px;line-height:1}.label-remove-btn:hover{color:var(--color-danger)}.label-input-row{display:flex;gap:6px}.viewpoints-list{display:flex;flex-wrap:wrap;gap:8px}.viewpoint-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;background:var(--gray-50)}.vp-thumb{width:64px;height:48px;object-fit:cover;border-radius:3px}.vp-thumb-empty{display:flex;align-items:center;justify-content:center;background:var(--gray-200);color:var(--text-muted)}.vp-index{font-size:11px;color:var(--text-muted)}.vp-restore-btn{width:100%}.empty-hint{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic}.related-topic-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--gray-50);border:1px solid var(--border-color);border-radius:4px;font-size:var(--font-size-sm)}.related-topic-guid{font-family:monospace}.btn-remove-related{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px}.btn-remove-related:hover{color:var(--color-danger)}.doc-refs-list{display:flex;flex-direction:column;gap:4px}.doc-ref-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--gray-50);border:1px solid var(--border-color);border-radius:4px;font-size:var(--font-size-sm);gap:8px}.doc-ref-item a{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-primary)}.btn-remove-doc-ref{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:14px;flex-shrink:0}.btn-remove-doc-ref:hover{color:var(--color-danger)}.doc-ref-input-row{display:flex;gap:6px}.detail-textarea{width:100%;padding:8px 10px;border:1px solid var(--gray-300);border-radius:6px;font-size:var(--font-size-md);font-family:inherit;color:var(--text-primary);background:var(--bg-surface);resize:vertical;min-height:64px;box-sizing:border-box}.detail-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.detail-field{display:flex;flex-direction:column;gap:4px}.detail-field.half{flex:1;min-width:0}.btn-sm{font-size:var(--font-size-sm);padding:5px 12px;min-height:28px;border-radius:5px;border:1px solid var(--gray-300);cursor:pointer;transition:all .15s}.conflict-status-pills{display:flex;flex-wrap:wrap;gap:4px;padding:6px 10px;border-bottom:1px solid var(--gray-200)}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;border:1px solid var(--gray-300);background:transparent;color:var(--gray-600);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.status-pill:hover{border-color:var(--primary-color);color:var(--primary-color)}.status-pill.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.pill-count{background:#ffffff40;border-radius:999px;padding:0 5px;font-size:10px;min-width:16px;text-align:center}.status-pill:not(.active) .pill-count{background:var(--gray-200);color:var(--gray-700)}.conflict-list-stats{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 10px;font-size:11px}.stat-item{padding:1px 8px;border-radius:4px;font-weight:600;font-size:11px}.stat-critical{background:#fee2e2;color:#991b1b}.stat-major{background:#fef3c7;color:#92400e}.stat-warn{background:#fef9c3;color:#713f12;cursor:default}.stat-total{margin-left:auto;color:var(--gray-500);font-weight:400}.conflict-card{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .12s;position:relative}.conflict-card:hover{background:var(--gray-50)}.conflict-card.active{background:var(--primary-50, #eff6ff);border-left:3px solid var(--primary-color);padding-left:7px}.conflict-card-left{display:flex;align-items:center;padding-top:4px;flex-shrink:0}.conflict-card-body{flex:1;min-width:0}.conflict-card-title{font-size:12px;font-weight:600;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.conflict-card-elements{font-size:11px;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.conflict-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.conflict-card-actions{display:flex;align-items:center;flex-shrink:0;padding-top:2px}.assigned-avatar{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--primary-100, #dbeafe);color:var(--primary-700, #1d4ed8);font-size:9px;font-weight:700;cursor:default}.due-date-indicator{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--gray-500)}.due-date-indicator.overdue{color:#dc2626;font-weight:600}.guid-warn{font-size:11px;color:#d97706;cursor:default}.clash-distance{font-size:10px;color:var(--gray-400)}.btn-resolve-sm{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--gray-200);border-radius:4px;background:transparent;cursor:pointer;transition:all .12s}.btn-resolve-sm:hover{background:#f0fdf4;border-color:#10b981}.resolved-indicator{font-size:13px;color:#10b981;font-weight:700}.ch-btn-pdf{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:2px 7px;border:1px solid var(--gray-300);border-radius:4px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;margin-left:4px;transition:all .15s}.ch-btn-pdf:hover{border-color:#6366f1;color:#4f46e5;background:#eef2ff}.ch-btn-pdf:disabled{opacity:.5;cursor:default}.clash-matrix-skeleton{padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.clash-matrix-skeleton .skeleton-bar{height:14px;width:120px;border-radius:4px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s infinite;margin-bottom:12px}.clash-matrix-skeleton .skeleton-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.clash-matrix-skeleton .skeleton-cell{height:40px;border-radius:4px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
