:root{--bg-primary: #f0f4f8;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .9);--bg-glass: rgba(0, 0, 0, .03);--bg-glass-hover: rgba(0, 0, 0, .06);--bg-sidebar: rgba(255, 255, 255, .97);--border-glass: rgba(0, 0, 0, .08);--border-active: rgba(37, 99, 235, .5);--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #94a3b8;--accent: #2563eb;--accent-glow: rgba(37, 99, 235, .2);--success: #16a34a;--warning: #d97706;--danger: #dc2626;--info: #2563eb;--gradient-primary: linear-gradient(135deg, #2563eb 0%, #3b82f6 50%, #60a5fa 100%);--gradient-card: linear-gradient(135deg, rgba(37,99,235,.06) 0%, rgba(59,130,246,.03) 100%);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow: 0 8px 32px rgba(0,0,0,.08);--shadow-sm: 0 2px 8px rgba(0,0,0,.06);--transition: all .25s cubic-bezier(.4, 0, .2, 1);--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Space Grotesk", var(--font);--sidebar-width: 260px}[data-theme=dark]{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: rgba(17, 24, 39, .7);--bg-glass: rgba(255, 255, 255, .04);--bg-glass-hover: rgba(255, 255, 255, .08);--bg-sidebar: rgba(10, 14, 26, .95);--border-glass: rgba(255, 255, 255, .08);--border-active: rgba(37, 99, 235, .5);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #475569;--accent: #3b82f6;--accent-glow: rgba(59, 130, 246, .3);--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--gradient-primary: linear-gradient(135deg, #2563eb 0%, #3b82f6 50%, #60a5fa 100%);--gradient-card: linear-gradient(135deg, rgba(37,99,235,.1) 0%, rgba(59,130,246,.05) 100%);--shadow: 0 8px 32px rgba(0,0,0,.3);--shadow-sm: 0 2px 8px rgba(0,0,0,.2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}input,select,textarea,button{font-family:inherit;font-size:inherit}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-glass);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform .3s ease}.sidebar-brand{padding:20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border-glass)}.brand-icon{width:40px;height:40px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text-primary)}.brand-sub{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 8px}.nav-section{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;padding:16px 16px 6px;font-weight:600}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition);font-size:.9rem;font-weight:500}.nav-item:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.nav-item.active{background:#6366f126;color:#a5b4fc}.nav-item svg{width:18px;height:18px;flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid var(--border-glass)}.user-badge{display:flex;align-items:center;gap:10px}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff}.user-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.user-role{font-size:.7rem;color:var(--text-muted);text-transform:capitalize}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh}.page-content{padding:24px 32px;max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px;gap:16px;flex-wrap:wrap}.page-header h1{font-family:var(--font-display);font-size:1.8rem;font-weight:700}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{color:var(--text-muted);font-size:.9rem;margin-top:4px}.header-actions{display:flex;gap:10px;align-items:center}.glass-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:var(--transition)}.glass-card:hover{border-color:#ffffff1f}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-glass);display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.95rem}.card-body{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:var(--transition)}.stat-card:hover{transform:translateY(-2px);border-color:var(--border-active);box-shadow:var(--shadow)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:.85rem;cursor:pointer;border:1px solid transparent;transition:var(--transition)}.btn-primary{background:var(--gradient-primary);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.btn-secondary{background:var(--bg-glass);color:var(--text-secondary);border-color:var(--border-glass)}.btn-secondary:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.btn-danger{background:#ef444426;color:#fca5a5;border-color:#ef44444d}.btn-danger:hover{background:#ef444440}.btn-sm{padding:5px 10px;font-size:.78rem}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.btn-icon:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.table-wrap{overflow-x:auto;border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:12px 16px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border-glass);font-weight:600;white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.03);font-size:.88rem}.data-table tr{transition:var(--transition)}.data-table tbody tr:hover{background:var(--bg-glass-hover)}.data-table .clickable{cursor:pointer}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.phase-tabs{display:flex;gap:4px;margin-bottom:20px;flex-wrap:wrap}.phase-tab{padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary);transition:var(--transition);display:flex;align-items:center;gap:6px}.phase-tab:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.phase-tab.active{background:#6366f126;color:#a5b4fc;border-color:var(--border-active)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;transition:var(--transition);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-input:disabled,.form-select:disabled{opacity:.4;cursor:not-allowed}.form-textarea{min-height:80px;resize:vertical}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.field-locked{position:relative}.field-locked:after{content:"🔒";position:absolute;right:12px;top:38px;font-size:.8rem}.filter-chips{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-chip{padding:6px 14px;border-radius:20px;font-size:.8rem;font-weight:600;cursor:pointer;background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary);transition:var(--transition)}.filter-chip:hover{background:var(--bg-glass-hover)}.filter-chip.active{background:#6366f133;color:#a5b4fc;border-color:var(--border-active)}.project-context-card{margin-bottom:18px}.project-context-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,.65fr);gap:20px;align-items:start}.context-eyebrow{margin-bottom:6px;color:var(--text-muted);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.project-context-main h2{margin:0 0 8px;font-family:var(--font-display);font-size:1.35rem}.project-context-main p{margin:0 0 14px;color:var(--text-secondary);line-height:1.55}.project-context-meta{display:flex;flex-wrap:wrap;gap:8px}.project-context-meta span,.asset-scope-note span{border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-secondary);padding:7px 10px;font-size:.8rem}.project-context-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-kpi{border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);padding:12px}.project-kpi strong{display:block;color:var(--text-primary);font-family:var(--font-display);font-size:1.35rem;line-height:1}.project-kpi span{display:block;margin-top:6px;color:var(--text-muted);font-size:.72rem;font-weight:700}.project-lifecycle-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-top:16px}.project-lifecycle-pill{border-radius:var(--radius-sm);display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;margin:0;text-align:left}.project-lifecycle-pill strong{color:var(--text-primary);font-family:var(--font-display)}.project-lifecycle-pill em{color:var(--text-muted);font-size:.72rem;font-style:normal;font-weight:700}.asset-scope-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px}.asset-scope-note strong{color:var(--text-primary);font-family:var(--font-display);font-size:1rem}.empty-state.compact{min-height:74px;margin-top:16px}.chart-container{padding:16px}.bar-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));align-items:stretch;gap:10px;min-height:250px}.bar-col{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-primary);min-width:0;height:100%;display:grid;grid-template-rows:auto 1fr auto auto;justify-items:center;gap:6px;cursor:pointer}.bar-col:hover .bar-track,.bar-col:focus-visible .bar-track{border-color:var(--border-active);box-shadow:0 8px 20px var(--accent-glow)}.bar-col:focus-visible{outline:none}.bar-track{width:min(44px,100%);height:176px;display:flex;align-items:flex-end;border:1px solid var(--border-glass);border-radius:10px;background:var(--bg-glass);overflow:hidden;transition:var(--transition)}.bar-fill{display:block;width:100%;border-radius:9px 9px 0 0;transition:height .6s ease}.bar-label{width:100%;min-height:28px;font-size:.68rem;line-height:1.15;color:var(--text-muted);text-align:center;overflow-wrap:anywhere}.bar-value{font-size:.76rem;font-weight:800;color:var(--text-secondary)}.bar-percent{font-size:.68rem;color:var(--text-muted);font-weight:700}.lifecycle-card{margin-bottom:24px}.lifecycle-total{font-size:.78rem;color:var(--text-muted);font-weight:600}.lifecycle-scope-note{margin-bottom:14px;color:var(--text-secondary);font-size:.82rem;line-height:1.5}.lifecycle-pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px}.lifecycle-stage{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-glass);background:linear-gradient(180deg,var(--bg-card),var(--bg-glass));color:var(--text-primary);border-radius:var(--radius-sm);padding:14px 12px;min-height:118px;display:grid;grid-template-rows:auto auto 1fr auto;gap:8px;text-align:left;cursor:pointer;transition:var(--transition)}.lifecycle-stage:hover,.lifecycle-stage:focus-visible{border-color:var(--border-active);box-shadow:0 8px 24px var(--accent-glow);outline:none;transform:translateY(-1px)}.lifecycle-count{font-family:var(--font-display);font-size:1.45rem;line-height:1;font-weight:800}.lifecycle-track{display:block;height:5px;width:100%;overflow:hidden;border-radius:999px;background:var(--bg-glass)}.lifecycle-track span{display:block;height:100%;border-radius:inherit}.lifecycle-name{color:var(--text-secondary);font-size:.76rem;line-height:1.25;font-weight:700}.lifecycle-percent{color:var(--text-muted);font-size:.72rem;font-weight:700}.distribution-list{display:grid;gap:10px}.distribution-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-glass);background:var(--bg-glass);color:var(--text-primary);border-radius:var(--radius-sm);padding:10px 12px;display:grid;grid-template-columns:12px minmax(128px,1fr) 42px minmax(100px,1.2fr) 44px;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:var(--transition)}.distribution-row:hover,.distribution-row:focus-visible{background:var(--bg-glass-hover);border-color:var(--border-active);outline:none}.distribution-dot{width:10px;height:10px;border-radius:999px}.distribution-label{font-weight:700;color:var(--text-secondary)}.distribution-count{font-family:var(--font-display);font-weight:800;text-align:right}.distribution-bar{height:8px;border-radius:999px;background:var(--bg-glass);overflow:hidden}.distribution-bar span{display:block;height:100%;border-radius:inherit}.distribution-percent{color:var(--text-muted);font-size:.78rem;font-weight:700;text-align:right}.chip-dot{width:8px;height:8px;border-radius:999px;display:inline-block;margin-right:6px}.empty-state{min-height:120px;display:grid;place-items:center;color:var(--text-muted);text-align:center;border:1px dashed var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass)}.carbon-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.carbon-source-note{margin-bottom:16px;padding:10px 12px;border:1px solid rgba(59,130,246,.18);border-radius:var(--radius-sm);background:#3b82f612;color:var(--text-secondary);font-size:.78rem;line-height:1.45}.carbon-label-group{width:150px;min-width:150px}.carbon-label{font-size:.85rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.carbon-label-group small{display:block;margin-top:3px;color:var(--text-muted);font-size:.68rem;line-height:1.25}.carbon-metric{flex:1;display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:4px 10px;align-items:center}.carbon-bar{height:20px;background:var(--bg-glass);border-radius:6px;overflow:hidden}.carbon-bar>div{height:100%;background:linear-gradient(90deg,#22c55e,#f59e0b);border-radius:6px}.carbon-metric strong{font-size:.78rem;font-weight:800;color:var(--text-primary);white-space:nowrap;text-align:right}.carbon-metric em{grid-column:1 / -1;color:var(--text-muted);font-size:.68rem;font-style:normal;font-weight:700}.report-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-bottom:24px}.report-template-card{min-height:220px;padding:22px;display:grid;align-content:space-between;gap:18px;cursor:pointer;overflow:hidden;position:relative}.report-template-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#2563eb,#14b8a6,#f97316);opacity:0;transition:var(--transition)}.report-template-card:hover{transform:translateY(-3px);border-color:var(--border-active);box-shadow:var(--shadow)}.report-template-card:hover:before{opacity:1}.report-template-icon{width:50px;height:50px;display:grid;place-items:center;border:1px solid rgba(37,99,235,.18);border-radius:12px;background:linear-gradient(135deg,#2563eb1f,#14b8a61a);color:var(--text-primary);font-size:1.75rem}.report-template-card strong{display:block;color:var(--text-primary);font-family:var(--font-display);font-size:1.08rem;line-height:1.3;margin-bottom:8px}.report-template-card p{color:var(--text-secondary);font-size:.87rem;line-height:1.55}.report-output-card{overflow:hidden;margin-bottom:32px}.report-output-header{align-items:flex-start;background:color-mix(in srgb,var(--bg-card) 88%,#ffffff 12%)}#reportTitle{color:var(--text-primary);font-family:var(--font-display);font-size:1rem;font-weight:800}#reportMeta{margin-top:4px;color:var(--text-muted);font-size:.78rem;font-weight:700}.report-output-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.report-output-body{padding:0;background:#f8fafc}.report-document{background:var(--bg-secondary);overflow:hidden}.report-hero{display:flex;justify-content:space-between;gap:22px;padding:28px 30px;color:#fff;background:linear-gradient(135deg,#111827fa,#1e293bf2),linear-gradient(90deg,#2563eb,#14b8a6)}.report-hero>div{display:grid;gap:7px}.report-hero span{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:#ffffff1c;font-size:1.45rem}.report-hero strong{display:block;max-width:780px;font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.15}.report-hero em,.report-hero small{color:#e2e8f0e0;font-style:normal;font-size:.9rem;line-height:1.5}.report-hero aside{min-width:180px;text-align:right}.report-hero aside b{display:block;color:#fff;font-size:.9rem}.report-hero aside small{display:block;margin-top:5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.report-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:18px 22px;background:#f8fafc}.report-kpi-card{padding:14px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;box-shadow:0 8px 18px #0f172a0a}.report-kpi-card span{display:block;color:#64748b;font-size:.68rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.report-kpi-card strong{display:block;margin-top:5px;color:#0f172a;font-family:var(--font-display);font-size:1.5rem;line-height:1}.report-kpi-card em{display:block;margin-top:7px;color:#8494ab;font-size:.74rem;font-style:normal;font-weight:700}.report-lifecycle-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:0 22px 22px;background:#f8fafc}.report-lifecycle-stage{padding:12px;border:1px solid #dbe4ef;border-radius:12px;background:#fff}.report-lifecycle-stage>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-lifecycle-stage span{min-width:0;color:#334155;font-size:.78rem;font-weight:900;line-height:1.25}.report-lifecycle-stage strong{color:#0f172a;font-family:var(--font-display);font-size:1.15rem}.report-lifecycle-stage em{color:#8494ab;font-size:.72rem;font-style:normal;font-weight:800}.report-stage-track{height:8px;margin:10px 0 7px;overflow:hidden;border-radius:99px;background:#e2e8f0}.report-stage-track i{display:block;height:100%;min-width:5px;border-radius:inherit;background:var(--stage-color)}.report-body{padding:28px 30px 34px;background:#fff}.report-section-title{margin:26px 0 12px;padding:0 0 9px;border-bottom:2px solid #e2e8f0;color:#111827;font-family:var(--font-display);font-size:.92rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.report-section-title:first-child{margin-top:0}.report-paragraph{margin:0 0 11px;color:#263346;font-size:.94rem;line-height:1.75}.report-paragraph strong{color:#0f172a;font-weight:900}.report-body em{color:#475569;font-style:italic}.report-bullet-list{display:grid;gap:8px;margin:10px 0 18px;padding-left:0;list-style:none}.report-bullet-list li{position:relative;padding:10px 12px 10px 34px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#263346;line-height:1.55}.report-bullet-list li:before{content:"";position:absolute;top:15px;left:14px;width:9px;height:9px;border-radius:50%;background:#2563eb}.report-status-token{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid color-mix(in srgb,var(--token-color) 42%,#ffffff);border-radius:999px;background:color-mix(in srgb,var(--token-color) 14%,#ffffff);color:#172033;font-size:.86em;font-weight:900;white-space:nowrap}.report-status-token:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--token-color)}.report-empty-band{margin:22px;padding:16px 18px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a;font-weight:800}.report-empty-band.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.report-loading{display:flex;align-items:center;gap:12px;padding:28px 30px;background:#fff;color:#64748b;font-weight:800}.report-loading i{width:18px;height:18px;border:3px solid #dbe4ef;border-top-color:#2563eb;border-radius:50%;animation:reportSpin .8s linear infinite}@keyframes reportSpin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 50%,rgba(99,102,241,.15) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(168,85,247,.1) 0%,transparent 50%),var(--bg-primary)}.login-card{width:100%;max-width:480px;padding:40px}.login-card h1{font-family:var(--font-display);font-size:2rem;text-align:center;margin-bottom:8px}.login-card p{text-align:center;color:var(--text-muted);margin-bottom:32px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.role-option{padding:16px;border-radius:var(--radius);cursor:pointer;background:var(--bg-glass);border:2px solid var(--border-glass);text-align:center;transition:var(--transition)}.role-option:hover{border-color:#ffffff26;background:var(--bg-glass-hover)}.role-option.selected{border-color:var(--accent);background:#6366f11a}.role-option .role-icon{font-size:2rem;margin-bottom:8px}.role-option .role-name{font-weight:700;font-size:.9rem}.role-option .role-desc{font-size:.75rem;color:var(--text-muted);margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.active{opacity:1;pointer-events:all}.modal{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:85vh;overflow-y:auto;transform:scale(.95);transition:transform .2s}.modal-overlay.active .modal{transform:scale(1)}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-glass);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-family:var(--font-display);font-size:1.2rem}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:4px}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-glass);display:flex;justify-content:flex-end;gap:10px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;background:var(--bg-secondary);border:1px solid var(--border-glass);color:var(--text-primary);box-shadow:var(--shadow);animation:slideIn .3s ease}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--danger)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;margin-bottom:24px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px}.bim-shell{display:grid;grid-template-columns:minmax(520px,1fr) 360px;gap:18px;align-items:stretch;min-height:0}.bim-viewer-panel{min-width:0;overflow:hidden;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.bim-viewer-toolbar{min-height:58px;padding:12px 16px;border-bottom:1px solid var(--border-glass);display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--bg-secondary)}.bim-viewer-toolbar strong,.bim-viewer-toolbar span{display:block}.bim-viewer-toolbar strong{font-size:.9rem;color:var(--text-primary)}.bim-viewer-toolbar span{margin-top:2px;font-size:.78rem;color:var(--text-muted)}.bim-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:min(560px,60%)}.bim-view-mode{width:150px;flex:0 0 150px;background:var(--bg-secondary)}.bim-status{max-width:400px;min-width:260px;padding:6px 10px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--bg-glass);font-size:.78rem;line-height:1.35;text-align:right}.bim-status[data-type=success]{color:var(--success);border-color:#16a34a47;background:#16a34a14}.bim-status[data-type=warning]{color:var(--warning);border-color:#d9770647;background:#d9770614}.bim-status[data-type=error]{color:var(--danger);border-color:#dc262647;background:#dc262614}.bim-status[data-type=loading]{color:var(--info);border-color:#2563eb47;background:#2563eb14}.bim-status-legend{position:relative;z-index:5;display:flex;align-items:flex-start;gap:12px;padding:9px 16px;border-bottom:1px solid var(--border-glass);background:color-mix(in srgb,var(--bg-secondary) 82%,#ffffff 18%);overflow:visible}.bim-status-legend[hidden]{display:none}.bim-status-legend strong{flex:0 0 auto;color:var(--text-primary);font-size:.78rem;font-weight:800}.bim-status-legend>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.bim-status-key{position:relative;z-index:6;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:5px 8px;border:1px solid color-mix(in srgb,var(--status-color) 58%,transparent);border-radius:999px;background:color-mix(in srgb,var(--status-color) 18%,#ffffff);color:var(--text-secondary);font-size:.72rem;font-weight:800;white-space:nowrap;cursor:pointer;pointer-events:auto;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.bim-status-key:hover{transform:translateY(-1px);box-shadow:0 6px 16px color-mix(in srgb,var(--status-color) 18%,transparent)}.bim-status-key.active{border-color:color-mix(in srgb,var(--status-color) 82%,#111827);background:color-mix(in srgb,var(--status-color) 30%,#ffffff);color:var(--text-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-color) 22%,transparent)}.bim-status-key-all{background:color-mix(in srgb,var(--status-color) 12%,#ffffff)}.bim-status-key i{width:12px;height:12px;border-radius:999px;background:var(--status-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-color) 24%,transparent)}.bim-canvas-wrap{position:relative;z-index:1;height:max(380px,calc(100dvh - 410px));min-height:380px;background:linear-gradient(180deg,#c2d0dc,#aebfcc)}[data-theme=dark] .bim-canvas-wrap{background:linear-gradient(180deg,#172033,#0e1726)}#bimCanvas{display:block;width:100%;height:100%}.aps-viewer{position:absolute;top:0;right:0;bottom:0;left:0;display:none;width:100%;height:100%;background:#d9e2ec}.bim-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text-secondary);background:#f0f4f8b8;font-weight:600}[data-theme=dark] .bim-loading{background:#0a0e1ab8}.bim-side{display:flex;flex-direction:column;gap:14px;min-width:0;max-height:calc(100dvh - 210px);overflow:auto;padding-right:2px}.bim-source-note{padding:10px 12px;border-left:3px solid var(--info);border-radius:var(--radius-sm);color:var(--text-secondary);background:#2563eb12;font-size:.8rem;line-height:1.45}.bim-source-files{display:grid;gap:8px;margin-top:12px}.bim-rvt-blocker{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid rgba(217,119,6,.28);border-radius:var(--radius-sm);background:#d9770614;color:var(--text-secondary);font-size:.8rem;line-height:1.45}.bim-rvt-blocker>strong{color:var(--warning);font-size:.86rem}.bim-rvt-blocker code{color:var(--text-primary);font-size:.76rem;word-break:break-word}.bim-rvt-grid{display:grid;grid-template-columns:1fr;gap:8px}.bim-rvt-grid div{padding:9px 10px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-secondary)}.bim-rvt-grid b,.bim-rvt-grid span{display:block}.bim-rvt-grid b{color:var(--text-primary);font-size:.78rem}.bim-rvt-grid span{margin-top:2px;color:var(--text-muted);font-size:.74rem}.bim-aps-actions{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;margin-top:12px;padding:10px;border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-sm);background:#2563eb0f}.bim-aps-actions span{color:var(--text-secondary);font-size:.76rem;line-height:1.35}.bim-aps-actions-warning{border-color:#d9770647;background:#d9770614}.bim-source-files>strong{color:var(--text-primary);font-size:.82rem}.bim-source-file{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass)}.bim-source-file b,.bim-source-file span{display:block;overflow-wrap:anywhere}.bim-source-file b{color:var(--text-primary);font-size:.82rem}.bim-source-file span{color:var(--text-muted);font-size:.72rem;margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.bim-source-file-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.bim-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bim-metrics div{padding:14px;border:1px solid var(--border-glass);border-radius:var(--radius);background:var(--bg-card)}.bim-metrics strong{display:block;font-family:var(--font-display);font-size:1.45rem;line-height:1}.bim-metrics span{display:block;margin-top:5px;color:var(--text-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.45px}.bim-category-list{display:grid;gap:8px}.bim-category-row{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary)}.bim-category-row:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.bim-category-row input{width:16px;height:16px;accent-color:var(--accent)}.bim-category-row strong{min-width:2.2rem;text-align:right;color:var(--text-primary);font-family:var(--font-display)}.bim-category-empty{padding:10px;border:1px dashed var(--border-glass);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.82rem}.bim-empty{color:var(--text-muted);font-size:.86rem;line-height:1.55}.bim-selected-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}.bim-selected-title h2{font-family:var(--font-display);font-size:1.05rem;line-height:1.25;overflow-wrap:anywhere}.bim-phase-card{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--border-glass);border-radius:var(--radius)}.bim-phase-card span,.bim-phase-card em{color:var(--text-muted);font-size:.72rem;font-style:normal;text-transform:uppercase;letter-spacing:.45px}.bim-phase-card strong{display:block;margin-top:4px;font-family:var(--font-display);font-size:1rem}.bim-phase-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bim-phase-meta em{text-transform:none;letter-spacing:0}.bim-phase-pill{display:inline-flex;width:fit-content;padding:4px 8px;border:1px solid;border-radius:999px;font-size:.78rem;font-weight:700}.bim-facts{display:grid;gap:8px;margin-bottom:14px}.bim-facts div,.bim-properties div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass)}.bim-facts dt,.bim-properties b{color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.45px}.bim-facts dd,.bim-properties span{color:var(--text-secondary);font-size:.82rem;overflow-wrap:anywhere}.bim-linked-asset{margin:14px 0;padding:12px;border:1px solid rgba(22,163,74,.26);border-radius:var(--radius);background:#16a34a14}.bim-linked-asset.warning{border-color:#d9770647;background:#d9770614}.bim-linked-asset.context,.bim-context-card{border-color:#64748b47;background:#64748b14}.bim-linked-asset strong,.bim-linked-asset span{display:block}.bim-linked-asset strong{font-size:.86rem}.bim-linked-asset span{margin-top:4px;color:var(--text-secondary);font-size:.8rem}.bim-selection-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.bim-properties{display:grid;gap:8px;margin-top:12px}@keyframes slideIn{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-in{animation:fadeUp .4s ease}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.page-content{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3,.project-context-layout{grid-template-columns:1fr}.project-context-kpis,.bar-chart{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-track{height:140px}.lifecycle-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}.lifecycle-stage{min-height:112px}.distribution-row{grid-template-columns:12px 1fr 36px}.distribution-bar,.distribution-percent{grid-column:2 / -1}.carbon-row{align-items:flex-start;flex-direction:column;gap:6px}.carbon-label-group{width:100%;min-width:0}.carbon-metric,.carbon-bar{width:100%}.role-grid{grid-template-columns:1fr}.page-header{flex-direction:column}.bim-shell{grid-template-columns:1fr;min-height:0}.bim-canvas-wrap{height:58vh;min-height:360px}.bim-side{max-height:none}.bim-viewer-toolbar{align-items:flex-start;flex-direction:column}.bim-toolbar-actions{width:100%;min-width:0;align-items:stretch;flex-direction:column}.bim-view-mode{width:100%;flex-basis:auto}.bim-status{max-width:none;width:100%;text-align:left}.report-template-grid{grid-template-columns:1fr}.report-template-card{min-height:180px}.report-output-header{flex-direction:column;gap:12px}.report-output-actions{justify-content:flex-start;width:100%}.report-hero{display:block;padding:22px}.report-hero aside{min-width:0;margin-top:16px;text-align:left}.report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.report-lifecycle-strip{grid-template-columns:1fr;padding:0 16px 16px}.report-body{padding:22px 18px}.report-paragraph{font-size:.9rem}}.btn-lg{padding:12px 28px;font-size:1rem;border-radius:var(--radius)}.landing-page{min-height:100vh}.landing-hero{min-height:100vh;position:relative;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 50%,rgba(99,102,241,.18) 0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(168,85,247,.12) 0%,transparent 45%),radial-gradient(ellipse at 50% 90%,rgba(59,130,246,.08) 0%,transparent 40%),var(--bg-primary);overflow:hidden}.hero-bg-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4}.orb-1{width:500px;height:500px;background:#6366f14d;top:-100px;left:-100px;animation:float 8s ease-in-out infinite}.orb-2{width:400px;height:400px;background:#a855f740;bottom:-50px;right:-50px;animation:float 10s ease-in-out infinite reverse}.orb-3{width:300px;height:300px;background:#3b82f633;top:40%;left:60%;animation:float 12s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(30px,-30px)}}.landing-nav{display:flex;justify-content:space-between;align-items:center;padding:20px 48px;position:relative;z-index:1}.landing-link{color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .2s}.landing-link:hover{color:var(--text-primary)}.hero-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px 60px;position:relative;z-index:1}.hero-badge{display:inline-block;padding:6px 18px;border-radius:20px;background:#6366f11f;border:1px solid rgba(99,102,241,.25);font-size:.8rem;font-weight:600;color:#a5b4fc;margin-bottom:24px;animation:fadeUp .6s ease}.hero-title{font-family:var(--font-display);font-size:3.5rem;font-weight:800;line-height:1.15;margin-bottom:20px;animation:fadeUp .6s ease .1s both}.hero-subtitle{max-width:600px;color:var(--text-secondary);font-size:1.1rem;line-height:1.7;margin-bottom:36px;animation:fadeUp .6s ease .2s both}.hero-actions{display:flex;gap:16px;margin-bottom:48px;animation:fadeUp .6s ease .3s both}.hero-stats{display:flex;gap:48px;animation:fadeUp .6s ease .4s both;padding:24px 40px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero-stat{text-align:center}.hero-stat-value{font-family:var(--font-display);font-size:2rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.landing-section{padding:100px 24px}.landing-section-dark{background:var(--bg-secondary)}.section-inner{max-width:1100px;margin:0 auto}.section-badge{display:inline-block;padding:4px 14px;border-radius:12px;background:#6366f11f;color:#a5b4fc;font-size:.7rem;font-weight:700;letter-spacing:1.5px;margin-bottom:16px}.section-title{font-family:var(--font-display);font-size:2.4rem;font-weight:800;line-height:1.2;margin-bottom:48px}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-card{padding:28px;transition:var(--transition);cursor:default}.feature-card:hover{transform:translateY(-4px);border-color:var(--border-active);box-shadow:var(--shadow)}.feature-icon{font-size:2rem;margin-bottom:16px}.feature-title{font-size:1rem;font-weight:700;margin-bottom:8px}.feature-desc{font-size:.85rem;color:var(--text-muted);line-height:1.6}.phases-timeline{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.phase-timeline-card{padding:24px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border-glass);transition:var(--transition)}.phase-timeline-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.phase-num{font-size:.85rem;font-weight:700}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tech-item{padding:20px;display:flex;align-items:center;gap:14px}.landing-cta{padding:100px 24px;background:var(--bg-primary)}.landing-footer{padding:24px 48px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-glass)}.timeline-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}.timeline-summary-card{padding:16px}.timeline-summary-card span{display:block;color:var(--text-muted);font-size:.74rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.timeline-summary-card strong{display:block;margin-top:8px;font-family:var(--font-display);font-size:1.8rem;line-height:1}.timeline-next{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:20px;border-left:3px solid var(--accent)}.timeline-next strong{display:block;margin:4px 0;font-family:var(--font-display);font-size:1.1rem}.timeline-next p{margin:0;color:var(--text-secondary);font-size:.86rem}.timeline-layout{display:grid;grid-template-columns:minmax(430px,1fr) minmax(360px,.9fr);gap:20px;margin-bottom:24px;align-items:start}.project-timeline-list{display:grid;gap:12px}.project-timeline-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-primary);padding:14px;text-align:left;cursor:pointer;transition:var(--transition)}.project-timeline-row:hover,.project-timeline-row:focus-visible{border-color:var(--border-active);background:var(--bg-glass-hover);outline:none}.project-timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.project-timeline-head strong,.project-timeline-head span{display:block}.project-timeline-head strong{font-size:.98rem}.project-timeline-head span{margin-top:3px;color:var(--text-muted);font-size:.78rem}.project-timeline-head em{flex-shrink:0;color:var(--text-secondary);font-size:.76rem;font-style:normal;font-weight:800}.project-progress-track{height:7px;border-radius:999px;background:var(--bg-secondary);overflow:hidden;margin-bottom:12px}.project-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--gradient-primary)}.project-milestones{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.timeline-milestone-pill{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-card)}.milestone-code{width:36px;height:26px;border:1px solid;border-radius:6px;display:grid;place-items:center;font-size:.68rem;font-weight:900}.timeline-milestone-pill strong,.timeline-milestone-pill small{display:block;min-width:0}.timeline-milestone-pill strong{color:var(--text-secondary);font-size:.76rem}.timeline-milestone-pill small{margin-top:2px;color:var(--text-muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-milestone-pill em{color:var(--text-primary);font-family:var(--font-display);font-size:.76rem;font-style:normal;font-weight:800}.timeline-container{max-width:800px}.timeline-container.wide{max-width:none}.timeline-day{margin-bottom:32px}.timeline-day-label{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--border-glass)}.timeline-items{display:flex;flex-direction:column;gap:12px;padding-left:24px}.timeline-item{display:flex;gap:16px;position:relative}.timeline-dot{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.9rem;border:2px solid;z-index:1}.timeline-line{position:absolute;left:17px;top:36px;bottom:-12px;width:2px;background:var(--border-glass)}.timeline-item:last-child .timeline-line{display:none}.timeline-card{flex:1;padding:14px 18px}.timeline-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.timeline-time{font-size:.75rem;color:var(--text-muted)}.timeline-detail{font-size:.88rem;color:var(--text-secondary);margin-bottom:8px}.timeline-user{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted)}.timeline-action{text-transform:uppercase;font-size:.7rem;font-weight:800;letter-spacing:.05em}.timeline-entity{margin-left:8px;color:var(--text-muted);font-size:.75rem}.programme-event-card{min-width:0}.timeline-tags{display:flex;flex-wrap:wrap;gap:6px}.timeline-tags span,.timeline-state-complete,.timeline-state-at-risk,.timeline-state-due-soon,.timeline-state-scheduled,.timeline-state-past,.timeline-state-no-data{border-radius:999px;padding:3px 8px;background:var(--bg-glass);color:var(--text-muted);font-size:.68rem;font-weight:800}.timeline-state-complete{background:#22c55e1f;color:#16a34a}.timeline-state-at-risk{background:#ef44441f;color:#dc2626}.timeline-state-due-soon{background:#f59e0b24;color:#d97706}.timeline-state-scheduled{background:#3b82f61f;color:#2563eb}.timeline-state-past{background:#64748b1f;color:#64748b}.activity-feed-compact{display:grid;gap:8px}.activity-feed-row{display:grid;grid-template-columns:120px minmax(0,1fr) 180px;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass)}.activity-feed-row strong{color:var(--text-primary);font-size:.8rem}.activity-feed-row span{color:var(--text-secondary);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-feed-row em{color:var(--text-muted);font-size:.74rem;font-style:normal;text-align:right}@media (max-width: 768px){.hero-title{font-size:2rem}.hero-stats{flex-wrap:wrap;gap:24px;padding:20px}.features-grid,.phases-timeline,.tech-grid,.timeline-layout{grid-template-columns:1fr}.timeline-next{align-items:flex-start;flex-direction:column}.activity-feed-row{grid-template-columns:1fr}.activity-feed-row span{white-space:normal}.activity-feed-row em{text-align:left}.bim-status-legend{align-items:flex-start;flex-direction:column;gap:8px}.landing-nav{padding:16px 20px;flex-wrap:wrap;gap:12px}.hero-actions{flex-direction:column;align-items:center}.landing-footer{flex-direction:column;gap:12px;text-align:center}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#fff3}.theme-toggle{width:36px;height:36px;border-radius:50%;background:var(--bg-glass);border:1px solid var(--border-glass);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);font-size:1.1rem}.theme-toggle:hover{background:var(--bg-glass-hover)}.sidebar{box-shadow:2px 0 8px #0000000a}[data-theme=dark] .sidebar{box-shadow:none}.glass-card{box-shadow:var(--shadow-sm)}[data-theme=dark] .glass-card{box-shadow:none}.asset-bim-card{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;margin:0 0 22px;padding:16px;border:1px solid var(--border-glass);border-radius:var(--radius);background:linear-gradient(135deg,#2563eb14,#10b98114)}.wall-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.45fr);gap:20px;align-items:center;padding:22px;margin-bottom:20px;border-left:3px solid var(--accent)}.wall-hero h2{margin:4px 0 8px;font-family:var(--font-display);font-size:1.45rem}.wall-hero p{color:var(--text-secondary);max-width:760px}.wall-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wall-kpis span{padding:14px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.wall-kpis strong{display:block;color:var(--text-primary);font-family:var(--font-display);font-size:1.6rem;line-height:1;margin-bottom:6px}.wall-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;margin-bottom:20px;align-items:start}.wall-side{display:grid;gap:20px}.wall-feed,.wall-list,.wall-docs,.wall-members,.wall-people{display:grid;gap:12px}.wall-post,.wall-item,.wall-doc,.wall-member{border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);padding:14px}.wall-post-head,.wall-member,.wall-doc{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.wall-post-head strong,.wall-item strong,.wall-doc strong,.wall-member strong{display:block;color:var(--text-primary)}.wall-post-head span,.wall-member span,.wall-doc span,.wall-item small{display:block;color:var(--text-muted);font-size:.75rem;margin-top:3px}.wall-post p,.wall-item p,.wall-doc p{margin-top:8px;color:var(--text-secondary);line-height:1.55;white-space:pre-wrap}.wall-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.wall-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:start}.wall-item>span{border-radius:999px;padding:4px 9px;background:#2563eb1f;color:var(--accent);font-size:.72rem;font-weight:800}.wall-item.done{opacity:.72}.wall-item.done strong{text-decoration:line-through}.wall-docs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.wall-doc{min-height:132px}.wall-members code{display:block;margin-top:8px;padding:7px 9px;border-radius:7px;background:var(--bg-secondary);color:var(--text-primary);font-size:.78rem}.wall-people{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.wall-people span{padding:12px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass);font-weight:800}.wall-people small{display:block;margin-top:4px;color:var(--text-muted);font-size:.68rem;line-height:1.35}.wall-grid{margin-bottom:20px}@media (max-width: 900px){.wall-hero,.wall-layout{grid-template-columns:1fr}.wall-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.wall-post-head,.wall-member,.wall-doc{flex-direction:column}}.asset-bim-copy h3{margin:4px 0 8px;font-family:var(--font-display);font-size:1.05rem}.asset-bim-copy p{color:var(--text-secondary);font-size:.84rem;line-height:1.55}.asset-bim-meta,.asset-bim-actions,.asset-bim-dims{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.asset-bim-meta{margin-top:12px}.asset-bim-meta span{padding:5px 8px;border:1px solid var(--border-glass);border-radius:999px;color:var(--text-secondary);background:var(--bg-glass);font-size:.74rem;font-weight:700}.asset-bim-actions{margin-top:14px}.asset-bim-actions>span{color:var(--text-muted);font-size:.78rem}.asset-bim-actions>.asset-bim-link-ok{color:#16a34a;font-weight:800}.asset-bim-actions>.asset-bim-link-missing{color:#b45309;font-weight:800}.asset-bim-preview{min-height:188px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bg-secondary) 86%,#ffffff 14%);display:grid;align-content:stretch;justify-items:center;overflow:hidden}.asset-real-image{width:100%;height:100%;min-height:150px;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.asset-real-image img{width:100%;height:100%;min-height:150px;object-fit:cover;display:block}.asset-real-image.is-bim-snapshot img{object-fit:contain;background:#eaf2f8}.asset-real-image figcaption{padding:8px 10px;border-top:1px solid var(--border-glass);color:var(--text-secondary);background:color-mix(in srgb,var(--bg-card) 86%,transparent);font-size:.74rem;font-weight:800;text-align:center}.asset-real-image figcaption small{display:block;margin-top:2px;color:var(--text-muted);font-size:.66rem;font-weight:700}.asset-real-image-empty{width:100%;min-height:150px;display:grid;gap:8px;place-items:center;align-content:center;padding:20px 22px;text-align:center}.asset-real-image-empty i{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;border:1px solid rgba(100,116,139,.26);background:#64748b14;color:var(--text-muted);font-size:.72rem;font-style:normal;font-weight:900;letter-spacing:.04em}.asset-real-image-empty.is-capturing i{border-color:#2563eb47;background:#2563eb1a;color:#2563eb}.asset-real-image-empty.is-link-required i{border-color:#f59e0b57;background:#f59e0b1f;color:#b45309}.asset-real-image-empty strong{color:var(--text-primary);font-size:.9rem}.asset-real-image-empty span{max-width:230px;color:var(--text-muted);font-size:.75rem;line-height:1.42}.asset-bim-dims{justify-content:center;padding:0 10px 12px}.asset-bim-dims span{color:var(--text-muted);font-size:.72rem;font-weight:700}@media (max-width: 760px){.asset-bim-card{grid-template-columns:1fr}}select option{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important}:root{--text-muted: #52637a}[data-theme=dark]{--text-muted: #a4b2c7}.main-content,.page-content,.glass-card,.card-body,.grid-2>*,.grid-3>*{min-width:0}.workspace-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 32px;background:var(--bg-secondary);border-bottom:1px solid var(--border-glass)}.workspace-bar a{color:var(--accent);text-decoration:underline}.project-picker{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-weight:600}.project-picker select{max-width:420px}.field-notice{padding:12px 16px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-secondary);line-height:1.6}.work-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.work-summary>div{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius);padding:16px}.work-summary strong{display:block;font-size:1.6rem;font-variant-numeric:tabular-nums}.work-summary span{color:var(--text-secondary);font-size:.85rem}.field-list{display:grid;gap:8px;margin-top:16px}.field-asset{text-align:left;display:grid;gap:6px;width:100%;padding:14px 16px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.field-asset:hover{background:var(--bg-glass-hover);border-color:var(--accent)}.field-asset span,.field-asset small{color:var(--text-secondary);overflow-wrap:anywhere}.field-title{margin:24px 0 12px}.asset-identity{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;margin:0 0 20px}.asset-identity dt{color:var(--text-secondary)}.asset-identity dd{margin:0;overflow-wrap:anywhere}.card-body h3{margin:26px 0 14px}.identity-check{display:flex;gap:12px;align-items:center;margin:16px 0;line-height:1.5}.identity-check input{flex:none;width:22px;height:22px}.field-history{display:grid;gap:12px}.field-history>div{padding:12px 0;border-bottom:1px solid var(--border-glass)}.field-history p{margin:8px 0;overflow-wrap:anywhere}.work-readiness,.sync-record{margin-top:20px}.work-readiness li{margin:12px 0;line-height:1.6}.work-readiness ol{padding-left:22px}.sync-record pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;max-height:350px;overflow:auto;padding:12px;background:var(--bg-glass)}.qr-video{width:100%;max-height:300px;margin:16px 0;background:#000}.qr-output{margin-top:18px}.print-label{display:grid;justify-items:center;gap:8px;color:#111;background:#fff;border:1px solid #d2d8e1;padding:16px;margin-bottom:16px;text-align:center}.print-label img{width:100%;max-width:280px}.print-label small{overflow-wrap:anywhere}.login-help{margin-top:22px;font-size:.82rem;overflow-wrap:anywhere}.btn:focus-visible,.field-asset:focus-visible,.form-input:focus-visible,.form-select:focus-visible,.nav-item:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.nav-item{text-decoration:none}[hidden]{display:none!important}@media (max-width:768px){.main-content{width:100%}.workspace-bar{padding:12px 16px 12px 62px}.project-picker{display:block}.project-picker select{max-width:100%;margin-top:8px}.work-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.page-header,.header-actions{flex-wrap:wrap}.page-header>div{min-width:0;max-width:100%}.form-input,.form-select,.form-textarea,.btn,.btn-icon,.filter-chip,.phase-tab,.theme-toggle,.modal-close,.nav-item{min-height:44px}.btn-icon,.theme-toggle,.modal-close{min-width:44px}.asset-identity{grid-template-columns:1fr;gap:6px}.asset-identity dd{margin-bottom:8px}.identity-check{min-height:44px}.table-wrap{width:100%;overflow-x:auto}.modal{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.modal-body{min-width:0}.phase-tabs,.project-context-chips,.project-context-header{flex-wrap:wrap}.project-context-layout{grid-template-columns:minmax(0,1fr)}}@media print{body *{visibility:hidden}.print-label,.print-label *{visibility:visible}.print-label{position:absolute;left:0;top:0;width:320px}}@media (max-width:768px){#menuToggle{display:flex!important}}.receipt-panel{margin:24px 0;padding:16px;border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-secondary)}.receipt-panel h3{margin:0 0 12px}.receipt-panel p{margin:10px 0;overflow-wrap:anywhere}.receipt-panel .form-group{margin-top:16px}.field-history a{display:inline-flex;align-items:center;min-height:44px}.workspace-bar>a{display:inline-flex;align-items:center;min-height:44px}@media (max-width:768px){.workspace-bar .header-actions{gap:8px}}.investor-demo-notice,.bim-demo-bar{background:#eef2ff;color:#334155;border:1px solid #c7d2fe;border-radius:8px;padding:12px 16px;font-size:12px;line-height:1.5}.bim-demo-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:0;border-left:0;border-right:0;flex-wrap:wrap}body.scanning-native{background:transparent!important}body.scanning-native #app{visibility:hidden}#nativeScanControls{position:fixed;inset:auto 16px 32px;z-index:9999;background:#fff;padding:16px;border-radius:12px;color:#17263b;text-align:center}
