:root{--navy: #0b2740;--navy-2: #133b58;--navy-3: #0f334d;--header: #172939;--ink: #10293f;--ink-2: #19374d;--muted: #617887;--muted-2: #8aa0ad;--line: #d9e4e9;--line-2: #e6eef1;--soft: #eef4f6;--bg: #f4f7f8;--white: #ffffff;--aqua: #8fd7e3;--aqua-2: #bfe9ef;--teal: #2a7796;--link: #1a647f;--mark: #cbe1f2;--danger: #c63b3b;--success: #2e9e6a;--warning: #e39a2d;--gradient-hero: linear-gradient(125deg, #0b273e 0%, #0f344c 67%, #15445d 100%);--gradient-panel: linear-gradient(145deg, #0a2439, #143b58);--radius-xs: 6px;--radius-sm: 9px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 2px 6px rgba(15, 39, 58, .06);--shadow: 0 12px 32px rgba(15, 39, 58, .06);--shadow-lg: 0 20px 60px rgba(10, 39, 64, .16);--font: Arial, Helvetica, sans-serif;--sidebar-w: 256px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}:where(h1,h2,h3,h4):where(:not(.adsk-viewing-viewer *)){margin:0;line-height:1.15;color:var(--ink)}:where(h1):where(:not(.adsk-viewing-viewer *)){font-size:clamp(1.6rem,2.4vw,2.15rem);letter-spacing:-.035em;font-weight:700}:where(h2):where(:not(.adsk-viewing-viewer *)){font-size:1.12rem;letter-spacing:-.015em}:where(h3):where(:not(.adsk-viewing-viewer *)){font-size:1rem}:where(p):where(:not(.adsk-viewing-viewer *)){margin:0}:where(a):where(:not(.adsk-viewing-viewer *)){color:var(--link);text-decoration:none}:where(a):where(:not(.adsk-viewing-viewer *)):hover{text-decoration:underline;text-underline-offset:3px}:where(img):where(:not(.adsk-viewing-viewer *)){max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{font:inherit;color:inherit}::selection{background:var(--aqua-2)}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}hr{border:0;border-top:1px solid var(--line-2);margin:6px 0}.muted{color:var(--muted)}.small{font-size:13px}.block{display:block}.prewrap{white-space:pre-wrap}.pad{padding:16px 20px}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center}.gap-xs{gap:4px}.gap-s{gap:8px}.gap-m{gap:14px}.wrap{flex-wrap:wrap}.spacer{flex:1}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid-2-wide-first{grid-template-columns:2fr 1fr}.grid-2-narrow-first{grid-template-columns:1fr 2fr}.is-late{color:var(--danger)!important;font-weight:700}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.eyebrow.is-light{color:var(--aqua-2)}.link{color:var(--link);font-weight:700;background:none;border:0;padding:0;display:inline-flex;align-items:center;gap:5px}.link.is-danger{color:var(--danger)}.splash{min-height:100vh;display:grid;place-items:center;background:var(--gradient-hero)}.loader{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px 16px;color:var(--muted)}.nb-spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--teal);animation:spin .8s linear infinite;display:inline-block;flex:none}.splash .nb-spinner{border-color:#fff3;border-top-color:var(--aqua)}.nb-spinner-sm{width:16px;height:16px;border-width:2px}.btn-primary .nb-spinner-sm{border-color:#0c2a4340;border-top-color:var(--navy)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:860px){body{font-size:15px}.grid-2,.grid-3,.grid-2-wide-first,.grid-2-narrow-first{grid-template-columns:1fr}}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--header);background-image:linear-gradient(180deg,#172939,#10283b);color:#d8e4ea;display:flex;flex-direction:column;padding:18px 14px 14px;z-index:40;overflow-y:auto}.main{margin-left:var(--sidebar-w);min-height:100vh}.app.is-bare{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;overflow:clip}.app.is-bare{position:fixed;inset:0;height:auto}.app.is-bare .main{flex:1;min-height:0;overflow:hidden;overflow:clip}html:has(.app.is-bare),html:has(.app.is-bare) body{overflow:hidden;overscroll-behavior:none}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px;text-decoration:none!important}.sidebar-logo img{height:17px;width:auto;display:block}.sidebar-product{font-size:10.5px;font-weight:800;letter-spacing:.24em;color:var(--navy);background:var(--aqua);border-radius:4px;padding:3px 6px 2px;margin-top:2px}.project-switch{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:9px 10px;color:#fff;margin-bottom:8px}.project-switch:hover{background:#ffffff1a}.project-switch-swatch{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;flex:none;font-size:12px;font-weight:800;letter-spacing:.04em;color:#fff}.project-switch-text{flex:1;min-width:0;display:flex;flex-direction:column}.project-switch-text small{font-size:10.5px;letter-spacing:.14em;color:var(--aqua-2);font-weight:700;text-transform:uppercase}.project-switch-text strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .nb-menu{width:100%}.sidebar .nb-menu-list{width:100%;max-height:60vh;overflow:auto}.nav{display:flex;flex-direction:column;gap:2px}.nav-section{margin:16px 10px 6px;font-size:10.5px;letter-spacing:.2em;font-weight:700;color:#7f97a7;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius-sm);color:#d8e4ea;font-weight:700;font-size:14.5px;text-decoration:none!important;transition:background .15s,color .15s}.nav-link .icon{color:#9ab3c2;flex:none}.nav-link:hover{background:#ffffff0f;color:#fff}.nav-link.is-active{background:#8fd7e324;color:#fff;box-shadow:inset 3px 0 0 var(--aqua)}.nav-link.is-active .icon{color:var(--aqua)}.nav-badge{margin-left:auto;background:var(--aqua);color:var(--navy);font-size:11px;font-weight:800;padding:1px 7px;border-radius:99px}.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.user-chip{width:100%;display:flex;align-items:center;gap:10px;background:none;border:0;padding:8px;border-radius:var(--radius-sm);text-align:left;color:#fff}.user-chip:hover{background:#ffffff0f}.user-chip>span:not(.avatar){flex:1;min-width:0;display:flex;flex-direction:column}.user-chip strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{font-size:12px;color:#9ab3c2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .nb-menu-list{bottom:calc(100% + 6px);top:auto}.page{padding:34px 40px 60px;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.page.is-wide{max-width:1560px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.page-heading{min-width:0}.page-subtitle{color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.back-link:hover{color:var(--teal);text-decoration:none}.save-state{font-size:12.5px;color:var(--muted);margin-left:6px}.save-state.is-saved{color:var(--success)}.save-state.is-error{color:var(--danger)}.section-block{display:flex;flex-direction:column;gap:14px}.section-title{display:flex;align-items:center;gap:10px;justify-content:space-between}.section-title h2{font-size:1.2rem;margin-right:auto}.mobile-header{position:sticky;top:0;z-index:30;height:calc(58px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:6px;padding:env(safe-area-inset-top,0px) max(10px,env(safe-area-inset-right,0px)) 0 max(10px,env(safe-area-inset-left,0px));background:var(--header);color:#fff}.mobile-title{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;min-width:0;text-decoration:none!important}.mobile-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-drawer-backdrop{position:fixed;inset:0;background:#0514218c;z-index:60;animation:fade .15s}.sidebar.is-drawer{width:min(86vw,300px);box-shadow:var(--shadow-lg);animation:slide-in .2s ease-out}@keyframes slide-in{0%{transform:translate(-100%)}}@keyframes fade{0%{opacity:0}}.mobile-tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);box-shadow:0 -6px 20px #0f273a0f}.mobile-tabs .nav-link{flex-direction:column;gap:3px;padding:8px 2px 7px;font-size:11px;color:var(--muted);border-radius:0;box-shadow:none!important;background:none!important}.mobile-tabs .nav-link .icon{color:var(--muted-2)}.mobile-tabs .nav-link.is-active,.mobile-tabs .nav-link.is-active .icon{color:var(--teal)}@media(max-width:860px){.main{margin-left:0}.app.in-project .main{padding-bottom:calc(64px + var(--safe-bottom))}.app.is-bare .main{padding-bottom:0}.app.is-bare .mobile-header{flex:none;position:relative;top:0}.app.is-bare .mobile-tabs{position:static;flex:none}.page{padding:20px 16px 40px;gap:16px}.page-header{align-items:flex-start}.page-actions{width:100%}.page-actions .btn{flex:1}}.demo-bar{position:fixed;top:0;left:0;right:0;z-index:90;height:34px;display:flex;align-items:center;gap:12px;padding:0 14px;background:var(--aqua);color:#0c2a43;font-size:12.5px;font-weight:700}.demo-badge{background:var(--navy);color:var(--aqua);border-radius:4px;padding:2px 7px;font-size:10.5px;letter-spacing:.18em}.demo-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-switch{display:flex;align-items:center;gap:6px}.demo-switch select{font:inherit;font-weight:700;color:#0c2a43;background:#ffffff8c;border:1px solid rgba(12,42,67,.25);border-radius:6px;padding:3px 6px;max-width:220px}.demo-reset{background:none;border:1px solid rgba(12,42,67,.35);border-radius:99px;padding:3px 11px;font-weight:700;color:#0c2a43}.demo-reset:hover{background:#fff6}body:has(.demo-bar){padding-top:34px}body:has(.demo-bar) .sidebar:not(.is-drawer){top:34px}body:has(.demo-bar) .mobile-header{top:34px}body:has(.demo-bar) .app.is-bare{top:34px;height:auto}body:has(.demo-bar) .auth{min-height:calc(100vh - 34px)}body:has(.demo-bar) .print-toolbar{top:34px}.demo-accounts{display:flex;flex-direction:column;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-2)}.demo-accounts .eyebrow{margin-bottom:2px}.demo-account{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px}.demo-account:hover{border-color:var(--teal);background:#f1f8fa}.demo-account>span:first-child{display:flex;flex-direction:column}.demo-account small{color:var(--muted);font-size:12px}.demo-accounts code{background:var(--soft);padding:1px 6px;border-radius:4px}@media(max-width:860px){.demo-text{display:none}.demo-bar{justify-content:space-between}}body:has(.demo-bar) .app.is-bare .mobile-header{position:relative;top:0}@media(max-width:860px){.demo-bar{gap:8px;padding:0 8px}.demo-switch .icon{display:none}.demo-switch select{max-width:46vw;font-size:12px}.demo-reset{padding:3px 8px;font-size:12px}}.project-logo{width:var(--s, 40px);height:var(--s, 40px);flex:none;display:grid;place-items:center;border-radius:calc(var(--s, 40px) * .22);color:#fff;font-weight:800;font-size:calc(var(--s, 40px) * .34);letter-spacing:.04em;overflow:hidden}.project-logo.has-img{background:#fff;box-shadow:inset 0 0 0 1px #0b27401a;padding:calc(var(--s, 40px) * .08)}.project-logo.has-img img{width:100%;height:100%;object-fit:contain}.project-switch .project-logo.has-img{box-shadow:none}.mobile-title .project-logo.has-img{padding:3px}.page-header.has-media{justify-content:flex-start;align-items:center}.page-header.has-media .page-heading{flex:1}.page-media .project-logo{box-shadow:0 4px 14px #0b27401f,inset 0 0 0 1px #0b274014}.project-card-logo{position:absolute;left:14px;top:14px;z-index:2;box-shadow:0 4px 12px #0000002e!important}.project-logo-preview{border:1px dashed var(--line)}@media(max-width:860px){.page-media .project-logo{--s: 52px !important}}.project-cover .project-logo img{position:static;inset:auto;mix-blend-mode:normal;filter:none;opacity:1}.app,.main,.auth,.install-page,.splash{min-height:100dvh}@media(max-width:860px){.page{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.modal{max-height:calc(100dvh - env(safe-area-inset-top,0px) - 8px)}.drawer{padding-top:env(safe-area-inset-top,0px)}.drawer>:last-child{padding-bottom:max(12px,var(--safe-bottom))}.sidebar.is-drawer{padding-top:env(safe-area-inset-top,0px);padding-bottom:var(--safe-bottom);padding-left:env(safe-area-inset-left,0px)}.mobile-tabs{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.viewer-toolbar{padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}.tool-rail{left:max(8px,env(safe-area-inset-left,0px))}.gantt-scroll{max-height:calc(100dvh - 260px)}}@supports (-webkit-touch-callout: none){@media(max-width:1100px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}}}@media(pointer:coarse){.gantt-toggle,.link-btn,.link.small,.page a[href^="mailto:"],.page a[href^="tel:"]{position:relative}.gantt-toggle:after,.link-btn:after,.link.small:after,.page a[href^="mailto:"]:after,.page a[href^="tel:"]:after{content:"";position:absolute;inset:-10px -6px}.gantt-toggle:after{inset:-10px}.swatch{width:32px;height:32px}.swatches.is-small .swatch{width:28px;height:28px}.checkbox-inline input[type=checkbox],.gantt input[type=checkbox]{width:20px;height:20px}.pp-tag{padding-top:4px;padding-bottom:4px}}.notif-btn{position:relative}.notif-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#d64545;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid var(--header, #0b2740);line-height:1}.notif-panel{position:fixed;z-index:400;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);max-height:min(70vh,560px);display:flex;flex-direction:column;overflow:hidden;color:var(--ink)}.notif-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-2)}.notif-list{list-style:none;margin:0;padding:4px;overflow-y:auto}.notif-item{width:100%;display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:0;border-radius:10px;background:none;text-align:left;cursor:pointer}.notif-item:hover{background:var(--bg)}.notif-item.is-unread{background:#eef7fa}.notif-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-text strong{font-size:13.5px;line-height:1.3}.notif-text small{font-size:12.5px;color:var(--ink-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif-ico{width:30px;height:30px;border-radius:50%;background:#e6f2f6;color:var(--teal);display:grid;place-items:center;flex:none}.notif-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);flex:none;margin-top:6px}.sidebar-footer{display:flex;align-items:center;gap:4px}.sidebar-footer>.nb-menu{flex:1;min-width:0}.sidebar-footer .notif-badge{border-color:#10283b}.mobile-header .notif-btn{margin-left:auto}.notif-head{flex-wrap:wrap;row-gap:4px}.notif-head .link{white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 20px;border-radius:999px;border:1px solid transparent;font-size:14px;font-weight:700;white-space:nowrap;line-height:1.1;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px #10293f1f}.btn:disabled{opacity:.55}.btn-primary{background:var(--aqua);color:#0c2a43}.btn-primary:hover:not(:disabled){background:#9fdde8}.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){border-color:#b8cbd4}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--soft);box-shadow:none;transform:none}.btn-danger{background:var(--danger);color:#fff}.btn-sm{min-height:34px;padding:6px 13px;font-size:13px}.btn-block{width:100%}.btn-icon-only{padding:0;width:42px}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;flex:none;border-radius:10px;border:0;background:transparent;color:var(--muted);text-decoration:none!important}.icon-btn:hover:not(:disabled){background:var(--soft);color:var(--ink)}.icon-btn:disabled{opacity:.35}.icon-btn.is-active{background:var(--soft);color:var(--teal)}.icon-btn.on-dark{color:#d8e4ea}.icon-btn.on-dark:hover{background:#ffffff14;color:#fff}.icon-btn.flip .icon{transform:rotate(180deg)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:12.5px;font-weight:700;color:var(--ink-2);letter-spacing:.01em}.field-label em{color:var(--danger);font-style:normal}.field-hint{font-size:12px;color:var(--muted)}.field-error{font-size:12px;color:var(--danger)}.input{width:100%;min-height:40px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}.input:hover:not(:disabled){border-color:#c2d3db}.input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #2a779624}.input:disabled{background:var(--bg);color:var(--ink-2)}.input::placeholder{color:#9fb2bd}.textarea{resize:vertical;min-height:64px;line-height:1.5}.select-wrap{position:relative;display:block;min-width:0}.select{appearance:none;padding-right:32px;cursor:pointer;text-overflow:ellipsis}.select-chevron{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}.checkbox{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer}.checkbox input{position:absolute;opacity:0;pointer-events:none}.checkbox-box{width:20px;height:20px;border-radius:6px;border:1.5px solid #b5c8d2;background:#fff;display:grid;place-items:center;flex:none;margin-top:1px;transition:all .15s;color:#fff}.checkbox.is-checked .checkbox-box{background:var(--success);border-color:var(--success)}.checkbox input:focus-visible+.checkbox-box{outline:2px solid var(--teal);outline-offset:2px}.checkbox.is-disabled{cursor:default}.checkbox-label{line-height:1.4}.segmented{display:inline-flex;background:var(--soft);border-radius:999px;padding:3px;gap:2px;max-width:100%;overflow-x:auto}.segmented-item{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.segmented-item.is-active{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.segmented-count{background:var(--line-2);color:var(--ink-2);border-radius:99px;padding:0 7px;font-size:11.5px}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:none;letter-spacing:.02em;box-shadow:0 0 0 2px #fff}.status-badge{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:4px 11px 4px 9px;border-radius:999px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,var(--c) 12%,#fff);color:color-mix(in srgb,var(--c) 70%,#10293f)}.status-badge.is-small{padding:3px 9px 3px 8px;font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}.priority-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;white-space:nowrap}.priority-tag.p1{color:var(--danger)}.priority-tag.p2{color:#b9781c}.priority-tag.p3{color:var(--muted)}.priority-tag.p4{color:#5b6bb5}.category-tag{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);white-space:nowrap}.category-tag>span{width:9px;height:9px;border-radius:3px;background:var(--c);flex:none}.pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;background:var(--soft);color:var(--ink-2);font-size:12px;font-weight:700;white-space:nowrap}.pill.is-strong{background:var(--navy);color:#fff}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.doc-status{display:inline-flex;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}.doc-status.is-done{background:#e3f4ec;color:#1f6e49}.doc-status.is-draft{background:#fff1dc;color:#8c5a12}.error-box{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-sm);background:#fdecec;color:#8f2626;font-size:14px;border:1px solid #f6caca}.error-box span{flex:1}.notice{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:var(--radius-sm);background:#eef6fa;color:var(--ink-2);font-size:14px;border:1px solid #d3e7f0}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:56px 24px;background:#fff;border:1px dashed #cbdbe2;border-radius:var(--radius-lg)}.empty-state p{color:var(--muted);max-width:480px}.empty-state .btn{margin-top:8px}.empty-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--header);color:var(--aqua)}.progress{display:block;height:6px;border-radius:99px;background:var(--line-2);overflow:hidden;flex:1;min-width:40px}.progress>span{display:block;height:100%;border-radius:99px;background:var(--success);transition:width .3s}.card:where(:not(.adsk-viewing-viewer *)){background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid #e3ecf0;min-width:0}.card-head{display:flex;align-items:center;gap:10px;padding:16px 20px 12px}.card-head h2{font-size:1.02rem;display:flex;align-items:center;gap:9px;margin-right:auto}.card-head h2 .icon{color:var(--teal)}.card-head.is-sub{border-top:1px solid var(--line-2);padding-top:14px}.card-head.is-sub h3{font-size:13px;color:var(--muted);font-weight:700;letter-spacing:.02em}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:100;background:#05162480;animation:fade .15s}.modal-backdrop{display:grid;place-items:center;padding:20px;overflow-y:auto}.modal{width:100%;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - 40px);animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(8px) scale(.98);opacity:0}}.modal-sm{max-width:440px}.modal-md{max-width:560px}.modal-lg{max-width:760px}.modal-xl{max-width:min(1200px,96vw)}.modal-header{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 12px}.modal-header>div{flex:1;min-width:0}.modal-header h2{font-size:1.25rem;letter-spacing:-.02em}.modal-header p{color:var(--muted);margin-top:5px;font-size:14px;display:flex;align-items:center;gap:6px}.modal-body{padding:8px 22px 20px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-2);background:#fbfdfd;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.confirm-text{color:var(--ink-2)}.drawer{position:absolute;right:0;top:0;bottom:0;width:min(var(--w),100vw);background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:drawer-in .2s ease-out}@keyframes drawer-in{0%{transform:translate(40px);opacity:.4}}.drawer-header{padding:16px 20px 14px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#f7fafb,#fff)}.drawer-header-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.drawer-tools{display:flex;align-items:center;gap:2px}.drawer-body{flex:1;overflow-y:auto;padding:18px 20px 30px;display:flex;flex-direction:column;gap:22px}.drawer-body>*{flex-shrink:0}.nb-menu{position:relative;display:inline-block}.nb-menu-list{position:absolute;top:calc(100% + 6px);z-index:80;min-width:220px;max-width:320px;background:#fff;border:1px solid #c9d8e1;border-radius:10px;box-shadow:0 18px 42px #0000002e;padding:6px;animation:pop .12s ease-out}.nb-menu-list.align-right{right:0}.nb-menu-list.align-left{left:0}.nb-menu-item{width:100%;display:flex;align-items:center;gap:11px;padding:10px 12px;border:0;border-radius:7px;background:none;text-align:left;font-size:14px;font-weight:600;color:var(--header)}.nb-menu-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-menu-item .icon{color:#386783;flex:none}.nb-menu-item:hover:not(:disabled){background:#e4edf3}.nb-menu-item.is-danger,.nb-menu-item.is-danger .icon{color:var(--danger)}.toasts{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:11px 18px;border-radius:999px;background:var(--header);color:#fff;box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;animation:pop .2s}.toast-success .icon{color:var(--aqua)}.toast-error{background:#8f2626}@media(max-width:860px){.toasts{bottom:calc(80px + var(--safe-bottom));width:92vw}}@media(max-width:860px){.modal-backdrop{padding:0;align-items:end}.modal{max-height:94vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-footer{border-radius:0;padding-bottom:calc(14px + var(--safe-bottom))}.modal-footer .btn{flex:1}.drawer{width:100vw}}.nb-menu-list.is-floating{position:fixed;top:auto;bottom:auto;right:auto;z-index:300;overflow-y:auto;overscroll-behavior:contain}.notice.is-warn{background:#fff6e6;border-color:#f3d9a6;color:#6b4300}.notice.is-warn .icon{color:#c27a00}.lang-picker{position:relative;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface, #fff);color:var(--ink);font-weight:700;font-size:14px;cursor:pointer}.lang-picker select{appearance:none;-webkit-appearance:none;border:0;background:transparent;font:inherit;color:inherit;padding:0 2px;cursor:pointer;outline:none}.lang-picker:focus-within{box-shadow:0 0 0 3px #2780c940;border-color:var(--blue, #2780c9)}.lang-picker .icon{flex:none;color:var(--muted);pointer-events:none}.lang-picker.is-busy{opacity:.6}.lang-picker.on-dark{background:#ffffff14;border-color:#ffffff2e;color:#fff}.lang-picker.on-dark .icon{color:#cbe1f2}.lang-picker.on-dark option{color:#111}.auth-panel{position:relative}.auth-lang{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;z-index:2}@media(max-width:900px){.auth-panel>.auth-lang{display:none}}@media(min-width:901px){.auth-lang-hero{display:none}}.auth-lang-hero{align-self:flex-start;position:relative;z-index:1;margin-top:-4px}.ai-fab{position:fixed;right:22px;bottom:22px;z-index:40;display:inline-flex;align-items:center;gap:8px;padding:11px 18px 11px 14px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-weight:700;color:#fff;background:var(--gradient-panel);box-shadow:0 10px 26px #0b274052}.ai-fab .icon{color:var(--aqua)}.ai-fab:hover{transform:translateY(-1px);box-shadow:0 14px 30px #0b274061}.ai-fab.is-mobile{right:14px;bottom:calc(76px + var(--safe-bottom, 0px));padding:13px}.ai-panel{display:flex;flex-direction:column;height:100%;min-height:0}.ai-title{display:flex;align-items:center;gap:8px;font-size:18px;margin:0}.ai-title .icon{color:var(--teal)}.ai-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--aqua-2);color:var(--navy)}.ai-log{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.ai-intro{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.ai-intro p{margin:0}.ai-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.ai-examples .chip{white-space:normal;text-align:left;max-width:100%}.ai-msg{max-width:88%;padding:9px 13px;border-radius:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14.5px}.ai-msg.is-me{align-self:flex-end;background:var(--teal);color:#fff;border-bottom-right-radius:4px}.ai-msg.is-ai{align-self:flex-start;background:#fff;border:1px solid var(--line-2);border-bottom-left-radius:4px}.ai-msg.is-busy{display:flex;align-items:center;gap:8px;color:var(--muted)}.ai-msg.is-error{align-self:flex-start;background:#fdeeee;border:1px solid #f3c9c9;color:#8a2424;display:flex;gap:6px;align-items:flex-start}.ai-card{align-self:stretch;background:#fff;border:2px solid var(--aqua);border-radius:var(--radius);padding:11px 14px;display:flex;flex-direction:column;gap:8px}.ai-card.is-done{border-color:#bfe5d0}.ai-card.is-cancelled,.ai-card.is-expired{border-color:var(--line);opacity:.8}.ai-card.is-failed{border-color:#f3c9c9}.ai-card p{margin:0}.ai-card-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.ai-card-text{font-weight:600;color:var(--ink)}.ai-card-actions{display:flex;gap:8px;flex-wrap:wrap}.ai-card-state{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}.ai-card.is-done .ai-card-state{color:var(--success);font-weight:600}.ai-card.is-failed .ai-card-state{color:var(--danger)}.ai-compose{border-top:1px solid var(--line-2);padding:10px 12px calc(10px + var(--safe-bottom, 0px));background:#fff;display:flex;flex-direction:column;gap:6px}.ai-compose-row{display:flex;align-items:flex-end;gap:6px}.ai-compose-row .textarea{flex:1;min-height:42px;max-height:140px;resize:none}.ai-send{color:var(--teal)}.ai-listening{margin:0;font-size:13px;color:var(--teal)}.ai-listening.is-error{color:var(--danger);cursor:pointer}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg)}.auth-hero{background:var(--gradient-hero);color:#fff;padding:44px 56px;display:flex;flex-direction:column;gap:40px;position:relative;overflow:hidden}.auth-hero:after{content:"";position:absolute;right:-120px;bottom:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(143,215,227,.16),transparent 65%)}.auth-logo{height:30px;width:auto;display:block}.auth-hero-copy{margin:auto 0;max-width:560px;position:relative;z-index:1}.auth-hero h1{color:#fff;font-size:clamp(2.2rem,3.6vw,3.4rem);letter-spacing:-.05em;line-height:1.1}.auth-hero h1 em{color:var(--aqua);font-style:normal}.auth-hero-copy>p:not(.eyebrow){color:#cadae2;font-size:17px;margin-top:20px;max-width:480px}.auth-points{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px}.auth-points li{display:flex;align-items:center;gap:12px;color:#e5eef2;font-weight:700}.auth-points .icon{color:var(--aqua);width:34px;height:34px;padding:8px;border-radius:9px;background:#ffffff12;border:1px solid rgba(255,255,255,.12)}.auth-footer{font-size:11.5px;letter-spacing:.22em;font-weight:700;color:#7f9cae}.auth-panel{display:grid;place-items:center;padding:32px 20px}.auth-card{width:100%;max-width:440px;background:#fff;border-radius:24px;padding:34px 32px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:10px}.auth-card h2{font-size:1.6rem;letter-spacing:-.03em}.auth-card form{margin-top:14px}.auth-help{font-size:13px;color:var(--muted);text-align:center;margin-top:8px}@media(max-width:900px){.auth{grid-template-columns:1fr}.auth-hero{padding:28px 22px 30px;gap:22px}.auth-hero h1{font-size:2rem}.auth-points,.auth-footer,.auth-hero-copy>p:not(.eyebrow){display:none}.auth-logo{height:22px}.auth-panel{padding:0 14px 30px;margin-top:-10px}.auth-card{padding:26px 20px}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.project-card{background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 34px #10293f0f;display:flex;flex-direction:column;color:inherit;text-decoration:none!important;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px #10293f1f}.project-card.is-archived{opacity:.75}.project-cover{position:relative;height:150px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#0b2740))}.project-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9;mix-blend-mode:multiply;filter:grayscale(.2)}.project-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(11,39,64,.55))}.project-code{position:absolute;left:16px;bottom:12px;z-index:1;color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.18em}.project-archived{position:absolute;right:12px;top:12px;z-index:1;background:#fff;color:var(--ink);font-size:12px;font-weight:700;padding:3px 9px;border-radius:99px}.project-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px}.project-body h3{font-size:1.12rem;letter-spacing:-.02em}.project-progress{display:flex;align-items:center;gap:10px;margin-top:4px}.project-progress small{color:var(--muted);font-size:12px;white-space:nowrap}.project-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:6px 0 0;border-top:1px solid var(--line-2);padding-top:12px}.project-stats div{display:flex;flex-direction:column;gap:1px}.project-stats dt{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.04em}.project-stats dd{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.project-stats .is-alert dd{color:var(--danger)}.home-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.row-list{list-style:none;margin:0;padding:0 8px 10px}.row-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:inherit;text-decoration:none!important}.row-link:hover{background:var(--bg)}.row-num{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;min-width:34px}.row-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-main small{color:var(--muted);font-size:12.5px}.row-due{font-size:12.5px;color:var(--muted);white-space:nowrap}.row-list.is-compact .row-link{padding:8px 12px}.activity{list-style:none;margin:0;padding:4px 20px 16px;display:flex;flex-direction:column;gap:14px}.activity li{display:flex;gap:11px;align-items:flex-start}.activity p{font-size:14px;color:var(--ink-2)}.activity small{color:var(--muted);font-size:12px}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:30px;height:30px;border-radius:9px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}.swatch.is-active{box-shadow:0 0 0 2px var(--ink)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-tile{background:#fff;border-radius:18px;padding:18px 20px;border:1px solid #e3ecf0;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.stat-tile:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:var(--aqua)}.stat-label{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.stat-label .icon{color:var(--teal)}.stat-value{font-size:2.2rem;letter-spacing:-.04em;line-height:1.1}.stat-hint{font-size:13px;color:var(--muted)}.stat-tile.is-alert:before{background:var(--danger)}.stat-tile.is-alert .stat-value{color:var(--danger)}.dash-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;align-items:start}.journal-cta{display:flex;align-items:center;gap:14px;justify-content:space-between}.status-bar-chart{display:flex;flex-direction:column;gap:14px}.stacked-bar{display:flex;gap:2px;height:16px;border-radius:6px;position:relative}.stacked-bar>span{position:relative;min-width:6px;transition:opacity .15s}.stacked-bar>span:first-child{border-radius:6px 0 0 6px}.stacked-bar>span:last-child{border-radius:0 6px 6px 0}.stacked-bar>span:only-child{border-radius:6px}.stacked-bar>span.is-dim{opacity:.35}.stacked-empty{flex:1;background:var(--line-2);border-radius:6px}.chart-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:5;background:var(--header);color:#fff;font-size:12.5px;font-weight:700;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none}.chart-tip.is-floating{top:8px;bottom:auto;display:flex;flex-direction:column;gap:3px;font-weight:600}.chart-tip.is-floating span{display:flex;align-items:center;gap:6px}.chart-tip i{width:9px;height:9px;border-radius:3px;display:inline-block}.chart-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.chart-legend li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.chart-legend li strong{margin-left:auto;font-size:15px;color:var(--ink)}.chart-legend.is-inline{display:flex;gap:16px;flex-wrap:wrap}.legend-swatch{width:10px;height:10px;border-radius:3px;flex:none}.chart-box{position:relative}.chart-box svg{width:100%;height:auto;display:block;overflow:visible}.grid-line{stroke:#e9f0f3;stroke-width:1}.axis-line{stroke:#c9d8df;stroke-width:1}.axis-label{font-size:11px;fill:var(--muted);font-family:var(--font)}.chart-box g{transition:opacity .15s}.chart-box g.is-dim{opacity:.4}.weekly-chart,.category-bars{display:flex;flex-direction:column;gap:10px}.hbar-row{display:grid;grid-template-columns:minmax(110px,160px) 1fr 62px;align-items:center;gap:12px}.hbar-label{display:flex;align-items:center;gap:8px;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-label .dot{width:9px;height:9px;border-radius:3px}.hbar-track{height:12px;display:block}.hbar-fill{display:flex;gap:2px;height:100%;min-width:8px}.hbar-fill>span:first-child{border-radius:4px 0 0 4px}.hbar-fill>span:last-child{border-radius:0 4px 4px 0}.hbar-fill>span:only-child{border-radius:4px}.hbar-value{text-align:right;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.hbar-value small{color:var(--muted);font-weight:400}.assignee-list{list-style:none;margin:0;padding:4px 20px 18px;display:flex;flex-direction:column;gap:14px}.assignee-list li{display:flex;align-items:center;gap:12px}.assignee-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:14px}.assignee-main small{color:var(--muted)}.assignee-count{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;color:var(--muted);white-space:nowrap}.assignee-count strong{font-size:16px;color:var(--ink)}.assignee-count em{color:var(--danger);font-style:normal;font-weight:700}.doc-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 20px 16px}.doc-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:14px;background:var(--bg);color:var(--ink);text-decoration:none!important;border:1px solid transparent}.doc-tile:hover{border-color:var(--line);background:#fff}.doc-tile .icon{color:var(--teal);margin-bottom:4px}.doc-tile strong{font-size:1.4rem;letter-spacing:-.03em}.doc-tile span{font-size:12.5px;color:var(--muted)}.doc-tile.is-alert strong,.doc-tile.is-alert .icon{color:var(--danger)}.report-list{display:flex;flex-direction:column;gap:10px}.report-row{display:grid;grid-template-columns:58px 1fr auto 140px 90px;align-items:center;gap:18px;background:#fff;border:1px solid #e3ecf0;border-radius:16px;padding:12px 18px;color:inherit;text-decoration:none!important;box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .15s}.report-row:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.report-date{width:52px;height:56px;border-radius:12px;background:var(--header);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.report-date strong{font-size:1.35rem;line-height:1}.report-date small{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--aqua-2)}.report-main{display:flex;flex-direction:column;min-width:0}.report-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-facts{display:flex;gap:14px;font-size:13px;color:var(--ink-2);white-space:nowrap}.report-facts span{display:flex;align-items:center;gap:5px}.report-facts .icon{color:var(--teal)}.report-author{text-align:right}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.span-2{grid-column:span 2}.workforce-table td{padding:6px 8px!important}.workforce-table .num{width:90px}.workforce-table .input{min-height:36px}@media(max-width:1000px){.report-row{grid-template-columns:52px 1fr auto}.report-facts{grid-column:2 / 4;flex-wrap:wrap}.report-author{display:none}.report-row .doc-status{grid-row:1;grid-column:3}}.result-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}.result-badge.is-ok{background:#e3f4ec;color:#1f6e49}.result-badge.is-nc{background:#fdecec;color:#a12d2d}.result-badge.is-partial{background:var(--soft);color:var(--ink-2)}.template-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.template-option{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);cursor:pointer;transition:border-color .15s,background .15s}.template-option input{position:absolute;opacity:0}.template-option small{color:var(--muted);font-size:12.5px}.template-option .pill{position:absolute;top:10px;right:10px}.template-option.is-active{border-color:var(--teal);background:#f1f8fa;box-shadow:inset 3px 0 0 var(--teal)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.template-card{padding:18px 20px;display:flex;flex-direction:column;gap:10px}.template-card-head{display:flex;gap:12px;align-items:flex-start}.template-card-head>div{flex:1;min-width:0}.template-icon{width:42px;height:42px;border-radius:8px;background:var(--header);color:#d8e4ea;display:grid;place-items:center;flex:none}.template-preview{margin:0;padding:10px 0 0;list-style:none;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.template-preview li:before{content:"\2014  ";color:var(--aqua)}.form-progress{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line-2);font-size:14px}.form-progress .progress{max-width:360px}.form-items{padding:6px 0 10px}.form-section{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:22px 22px 8px;font-weight:800}.form-item{padding:12px 22px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}.form-section+.form-item{border-top:0}.form-item.is-nc{background:#fff7f7;box-shadow:inset 3px 0 0 var(--danger)}.form-item-main{display:flex;align-items:center;gap:16px;justify-content:space-between}.form-item-label{font-size:14.5px;font-weight:600}.check-buttons{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:3px;flex:none;background:#fff}.check-btn{border:0;background:transparent;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.check-btn:hover:not(:disabled){background:var(--bg)}.check-btn.is-active.is-conforme{background:var(--success);color:#fff}.check-btn.is-active.is-non_conforme{background:var(--danger);color:#fff}.check-btn.is-active.is-na{background:#6d7f8c;color:#fff}.form-number{max-width:180px}.form-comment{min-height:40px}.form-add-comment,.form-reserve{align-self:flex-start;font-size:12.5px}.form-reserve{color:var(--danger)}.tpl-items{list-style:none;margin:0;padding:0 20px;display:flex;flex-direction:column;gap:8px;counter-reset:tpl}.tpl-item{display:grid;grid-template-columns:250px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:12px;background:var(--bg)}.tpl-item.is-section{background:#e8f1f5}.tpl-item.is-section .input:not(.select){font-weight:700}@media(max-width:860px){.template-picker{grid-template-columns:1fr}.form-item-main{flex-direction:column;align-items:stretch}.check-buttons{align-self:flex-start}.tpl-item{grid-template-columns:1fr}}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px}.member-card{padding:16px 18px;display:flex;gap:14px;align-items:flex-start}.member-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.member-info h3{display:flex;align-items:center;gap:8px}.member-contact{display:flex;flex-direction:column;font-size:13px}.member-contact a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:140px}.credentials{background:var(--header);color:#e6f0f4;padding:16px;border-radius:12px;white-space:pre-wrap;font-size:13.5px;margin-top:12px}.role-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.role-option{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer}.role-option input{position:absolute;opacity:0}.role-option small{color:var(--muted);font-size:12px;line-height:1.35}.role-option.is-active{border-color:var(--teal);background:#f1f8fa}.category-list{list-style:none;margin:0;padding:0 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.category-list li{display:flex;align-items:center;gap:8px}input[type=color]{width:36px;height:36px;padding:2px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;flex:none}@media(max-width:860px){.member-grid{grid-template-columns:1fr}.member-card{flex-wrap:wrap}.member-side{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.role-options{grid-template-columns:1fr}}.settings-form{max-width:900px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:900px}.danger-zone.is-danger{border-color:#f3caca}.profile-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:start}@media(max-width:1100px){.dash-grid,.home-columns,.profile-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.stat-grid{gap:10px}.stat-tile{padding:14px 16px}.stat-value{font-size:1.8rem}.chart-legend,.doc-tiles{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.danger-zone{flex-direction:column;align-items:flex-start}}.pill.is-info{background:#e3f1f6;color:var(--link)}.pill.is-warn{background:#fdf0e1;color:#9a5b12}.pill.is-muted{background:var(--soft);color:var(--muted)}.member-info h3 .pill{margin-left:6px;vertical-align:2px}.install-page{min-height:100vh;background:var(--bg)}.install-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(16px,4vw,40px);background:var(--gradient-hero)}.install-brand{display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;cursor:pointer}.install-brand img{height:22px;width:auto}.install-main{max-width:1120px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 60px;display:flex;flex-direction:column;gap:24px}.install-welcome{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);background:#e5f5ec;color:#1d6e48;font-weight:700}.install-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;background:#fff;border-radius:var(--radius-lg);padding:clamp(22px,4vw,40px);box-shadow:var(--shadow)}.install-app-icon{width:72px;height:72px;border-radius:18px;box-shadow:0 8px 22px #0b274038;margin-bottom:16px;display:block}.install-hero h1{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.04em;color:var(--navy);margin:4px 0 10px}.install-lead{color:var(--muted);font-size:16px;max-width:560px;margin:0 0 20px}.install-cta{min-height:52px;padding:12px 26px;font-size:16px}.install-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:var(--radius);background:var(--soft);color:var(--ink);max-width:620px}.install-status>.icon{color:var(--teal);flex:none}.install-status>span{flex:1 1 180px;min-width:0}.install-status .icon{vertical-align:-2px}.install-status.is-ok{background:#e5f5ec}.install-status.is-ok>.icon{color:var(--success)}.install-share{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.install-qr{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);text-align:center;max-width:240px}.install-qr figcaption{display:flex;flex-direction:column;gap:3px;font-size:13px}.install-qr figcaption span{color:var(--muted);font-size:12px;word-break:break-all}.qr{display:block;border-radius:6px}.install-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.install-card{padding:20px 22px;display:flex;flex-direction:column;gap:10px}.install-card header{display:flex;align-items:center;gap:10px}.install-card header .icon{color:var(--teal)}.install-card h2{font-size:17px;margin:0;flex:1}.install-card ol{margin:0;padding-left:20px;display:grid;gap:9px;color:var(--ink-2);font-size:14.5px;line-height:1.45}.install-card.is-current{box-shadow:0 0 0 2px var(--aqua),var(--shadow)}.install-key{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:6px;background:var(--soft);font-weight:700;white-space:nowrap}.install-shots{display:grid;grid-template-columns:200px 200px minmax(0,1fr);gap:18px;align-items:center}.install-shots img{width:100%;border-radius:18px;box-shadow:var(--shadow-lg);border:6px solid #10293f}.install-shots-copy h2{font-size:20px;color:var(--navy)}.install-shots-copy ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}.install-shots-copy li{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink-2)}.install-shots-copy .icon{color:var(--teal);flex:none}.install-banner{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe-bottom));z-index:40;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border-radius:16px;background:var(--navy);color:#fff;box-shadow:var(--shadow-lg)}.app.in-project .install-banner{bottom:calc(72px + var(--safe-bottom))}.install-banner img{width:38px;height:38px;border-radius:10px;flex:none}.install-banner>span{flex:1;display:flex;flex-direction:column;min-width:0;font-size:14px}.install-banner small{color:#b9cdd8;font-size:12px}.install-banner .icon-btn{color:#b9cdd8}.invite-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.invite-qr{margin:0;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:190px;text-align:center;font-size:12.5px;color:var(--muted)}.invite-sent{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);background:#e5f5ec;color:#1d5c3e;margin:0}.invite-sent-icon{flex:none;width:22px;height:22px;border-radius:50%;background:var(--success);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}.invite-error{padding:10px 12px;border-radius:var(--radius-sm);background:#fdecec;color:#8f1d2c;margin:0;font-size:13.5px}.access-options{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:860px){.install-hero{grid-template-columns:1fr}.install-qr{max-width:none;flex-direction:row;text-align:left}.install-qr .qr{width:120px;height:120px}.install-grid{grid-template-columns:1fr}.install-shots{grid-template-columns:1fr 1fr}.install-shots-copy{grid-column:1 / -1}.invite-result{grid-template-columns:1fr}.invite-qr{max-width:none}.access-options{grid-template-columns:1fr}}.invite-result .credentials{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:860px){.app:has(.install-banner) .main{padding-bottom:calc(96px + var(--safe-bottom))}.app.in-project:has(.install-banner) .main{padding-bottom:calc(150px + var(--safe-bottom))}}@media(max-width:520px){.install-top{padding:12px 14px}.install-brand img{height:17px}.install-brand .sidebar-product{display:none}.install-top .btn{padding:6px 12px;font-size:12.5px}}.history-filters{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin-bottom:12px}.history-list{display:flex;flex-direction:column;gap:14px}.history-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.history-day{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.history-item{display:flex;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line-2)}.history-body{min-width:0;flex:1}.history-body p{margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}.history-body small{color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:4px;margin-top:2px}.archived-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--radius-sm);background:#eef1f3;color:#46596a;font-size:13.5px;font-weight:600}.archived-banner .link{margin-left:auto}.archived-banner.is-compact{padding:6px 10px;font-size:12.5px;margin:6px 0}@media(max-width:860px){.history-filters{grid-template-columns:1fr}}.shared-plans{display:flex;flex-direction:column;gap:14px}.shared-plans h4{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.shared-plans ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 14px}.shared-plans li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:8px}.shared-plans li:hover{background:var(--bg)}.shared-plans li.is-auto{background:#f1f7fa}.shared-plans .plan-number{font-size:11px}.docs-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.docs-folders{padding:8px;display:flex;flex-direction:column;gap:2px;position:sticky;top:12px}.docs-folder{display:flex;align-items:center;gap:9px;width:100%;border:0;background:none;padding:9px 10px;border-radius:9px;text-align:left;font-weight:700;font-size:14px;color:var(--ink-2)}.docs-folder>span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-folder small{color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.docs-folder .icon{color:var(--teal);flex:none}.docs-folder:hover{background:var(--bg)}.docs-folder.is-active{background:#e6f2f6;color:var(--navy)}.docs-folder-access{display:inline-flex;align-items:center;gap:2px;font-size:11px;color:var(--muted)}.docs-main{display:flex;flex-direction:column;gap:12px;min-width:0}.docs-folder-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.docs-folder-head strong{display:inline-flex;align-items:center;gap:6px}.docs-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.docs-filters .select-wrap{width:auto;min-width:170px}.docs-list{list-style:none;margin:0;padding:4px}.doc-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px}.doc-row+.doc-row{border-top:1px solid var(--line-2)}.doc-row:hover{background:#f7fafb}.doc-row.is-cancelled .doc-row-title strong{text-decoration:line-through;color:var(--muted)}.doc-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;border:0;background:none;padding:4px 0;text-align:left}.doc-row-title{display:flex;flex-direction:column;min-width:0}.doc-row-title strong{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row-title small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row-title small .icon{vertical-align:-2px}.doc-row-meta{display:flex;align-items:center;gap:8px;flex:none}.doc-status{font-size:12px;font-weight:800;padding:2px 9px;border-radius:99px;white-space:nowrap}.doc-status.is-valid{background:#e3f4ec;color:#1f7a50}.doc-status.is-progress{background:#fdf0e1;color:#9a5b12}.doc-status.is-cancel{background:#f1f3f5;color:var(--muted)}.doc-access{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--ink-2);white-space:nowrap}.file-badge{flex:none;display:grid;place-items:center;width:40px;height:46px;border-radius:7px;font-size:10.5px;font-weight:900;letter-spacing:.04em;color:#fff;background:#6c7f8c;box-shadow:inset 0 -12px #00000014}.file-badge.is-small{width:30px;height:34px;font-size:9px;border-radius:6px}.file-badge.is-pdf{background:#d64545}.file-badge.is-img{background:#6b4fbb}.file-badge.is-xls{background:#2e9e6a}.file-badge.is-doc{background:#2f80c9}.file-badge.is-dwg{background:#b26b12}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip.is-static{cursor:default}.stack-xs{display:flex;flex-direction:column;gap:6px}.doc-form-files{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto;padding:2px}.doc-form-file{display:flex;align-items:center;gap:10px}.doc-form-file .input{flex:1;min-width:0}.doc-links{display:flex;flex-direction:column;gap:12px;padding:12px;border-radius:12px;background:var(--bg)}.doc-task-list{max-height:210px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:6px;background:#fff;border-radius:10px;border:1px solid var(--line-2)}.doc-access-box{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:#fbf7ee;border:1px solid #f0e2c4}.doc-access-box .field-label{display:inline-flex;align-items:center;gap:6px}.access-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.access-row{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:6px 8px;border-radius:9px;background:#fff;border:1px solid var(--line-2)}.access-row>span{display:flex;flex-direction:column;min-width:0}.access-row small{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-row .select-wrap{width:200px;flex:none}.dropzone.is-compact{display:flex;align-items:center;gap:10px;padding:16px;cursor:pointer}.doc-detail{display:flex;flex-direction:column;gap:16px}.doc-detail.has-preview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);align-items:start}.doc-preview{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f4f7f9;height:min(68vh,760px)}.doc-preview iframe{width:100%;height:100%;border:0}.doc-preview img{width:100%;height:100%;object-fit:contain}.doc-info{min-width:0}.doc-dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 12px;margin:0;font-size:14px}.doc-dl dt{color:var(--muted);font-weight:700;font-size:12.5px}.doc-dl dd{margin:0;overflow-wrap:anywhere}.doc-h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.doc-versions,.doc-views{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.doc-versions li{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:var(--bg);font-size:13.5px}.doc-versions li.is-current{background:#e6f2f6}.doc-version-text{flex:1;min-width:0;display:flex;flex-direction:column}.doc-version-text small{color:var(--muted)}.doc-views{max-height:220px;overflow-y:auto}.doc-views li{display:flex;align-items:center;gap:7px;font-size:13px}.doc-views li small{margin-left:auto}.task-docs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.task-docs li{display:flex;align-items:center;gap:4px;border-radius:9px;background:var(--bg)}.task-docs a{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px 8px;color:inherit;text-decoration:none}.task-docs a:hover strong{color:var(--teal)}.task-docs-title{flex:1;min-width:0;display:flex;flex-direction:column}.task-docs-title strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-docs-title small{color:var(--muted);font-size:12px}@media(max-width:1100px){.doc-detail.has-preview{grid-template-columns:1fr}.doc-preview{height:50vh}}@media(max-width:860px){.docs-layout{grid-template-columns:1fr}.doc-row{flex-wrap:wrap}.doc-row-main{flex:1 1 calc(100% - 50px)}.doc-row-meta{order:3;width:100%;padding-left:52px;flex-wrap:wrap}.access-row{flex-wrap:wrap}.access-row .select-wrap{width:100%}.doc-dl{grid-template-columns:1fr;gap:2px}.doc-dl dd{margin-bottom:8px}.docs-filters .select-wrap{flex:1;min-width:140px}}.sub-phase{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap;background:var(--soft);color:var(--ink-2)}.sub-phase.is-partner{background:var(--navy);color:#fff}.sub-phase.is-trial{background:#e3f3f8;color:#0f6d91}.sub-phase.is-ok{background:#e3f4ec;color:#1f7a50}.sub-phase.is-warn{background:#fdf0e1;color:#9a5b12}.sub-phase.is-danger{background:#fde8e8;color:#a12626}.sub-phase.is-muted{background:var(--soft);color:var(--muted)}.sub-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px clamp(14px,3vw,32px) 0;padding:10px 14px;border-radius:12px;font-size:14px;border:1px solid}.sub-banner>span{flex:1;min-width:200px}.sub-banner .icon-btn{width:30px;height:30px}.sub-banner.is-info{background:#eef6fa;border-color:#d3e7f0;color:var(--ink-2)}.sub-banner.is-info>.icon{color:var(--teal)}.sub-banner.is-warn{background:#fff6e6;border-color:#f3d9a6;color:#6b4300}.sub-banner.is-danger{background:#fdf0f0;border-color:#f2c9c9;color:#7a1d1d}.sub-card-head{justify-content:space-between;align-items:center}.sub-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 18px;margin:0}.sub-facts>div{display:flex;flex-direction:column;gap:4px;min-width:0}.sub-facts dt{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.sub-facts dd{margin:0;font-weight:700}.sub-facts .progress{margin-top:2px}.project-sub{position:absolute;right:12px;bottom:10px;z-index:1}.project-sub .sub-phase{box-shadow:0 2px 8px #00000026}.sub-stats{margin-bottom:18px}.sub-toolbar{justify-content:space-between;align-items:center;margin-bottom:12px}.sub-toolbar .select{width:auto;min-width:180px}.sub-table td small{display:block;font-size:12px}.sub-table tr.is-muted td{opacity:.6}.sub-quick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:var(--soft)}.sub-payment{border:1px solid var(--line);border-radius:12px;padding:10px 14px 14px;margin:0}.sub-payment legend{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 6px}.sub-history{margin-top:18px;border-top:1px solid var(--line-2);padding-top:14px}.sub-event{display:flex;gap:12px;align-items:flex-start;padding:8px 2px}.sub-event-kind{flex:none;min-width:112px;font-size:12px;font-weight:800;color:var(--muted);padding-top:2px}.sub-event-kind.is-paiement{color:#1f7a50}.sub-event-kind.is-demande{color:#9a5b12}.sub-event-body{display:flex;flex-direction:column;min-width:0}.sub-add-user{display:grid;grid-template-columns:1.4fr 1.2fr .9fr auto;gap:8px;align-items:center}.sub-add-user.is-3{grid-template-columns:1.6fr .9fr auto}.account-block{margin-bottom:28px}.account-title{font-size:1.3rem;margin:0}.account-project{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line-2);flex-wrap:wrap}.account-project:first-child{border-top:0}.account-project .row-main{min-width:180px}.account-end{white-space:nowrap}.account-grid{align-items:start}@media(max-width:720px){.sub-add-user,.sub-add-user.is-3{grid-template-columns:1fr}.sub-event{flex-direction:column;gap:2px}.sub-table th:nth-child(6),.sub-table td:nth-child(6){display:none}}.time-labor{margin:0 16px 16px;padding:12px 14px;border-radius:14px;background:#eef6f9;border:1px solid #d5e6ed}.time-labor p{margin:0 0 6px}.time-labor ul{margin:0 0 8px;padding-left:18px;font-size:13.5px;display:grid;gap:2px}.labor-card .labor-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:0 20px 18px}.labor-kpis>div{display:flex;flex-direction:column;gap:2px;background:#f5f9fa;border-radius:14px;padding:10px 14px}.labor-kpis small{color:var(--muted);font-weight:600;font-size:12.5px}.labor-kpis strong{font-size:1.25rem}.labor-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding:0 20px 18px}.labor-detail .table td.num{text-align:right;white-space:nowrap}.labor-detail>p{grid-column:1 / -1;margin:0}.key-box{display:block;padding:10px 12px;background:#fff;border-radius:10px;border:1px solid var(--line);font-size:13px;word-break:break-all;-webkit-user-select:all;user-select:all}.consent-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.consent-card{width:100%;max-width:480px}.consent-card h1{font-size:22px;display:flex;align-items:center;gap:8px;margin:0}.consent-logo{height:34px;align-self:flex-start}.consent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.consent-list li{display:flex;gap:10px;align-items:flex-start}.consent-list li svg{flex:none;margin-top:2px;color:var(--teal, #2a7796)}.filter-bar{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid #e3ecf0;border-radius:18px;padding:14px 16px;box-shadow:var(--shadow-sm)}.filter-bar.is-simple{padding:10px 12px}.search-input{position:relative;flex:1;min-width:220px}.search-input .icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-input .input{padding-left:40px;border-radius:999px;background:var(--bg);border-color:transparent}.search-input .input:focus{background:#fff}.status-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--ink-2);white-space:nowrap}.chip:hover{border-color:#b8cbd4}.chip.is-active{background:color-mix(in srgb,var(--c, #2a7796) 12%,#fff);border-color:color-mix(in srgb,var(--c, #2a7796) 45%,#fff);color:var(--ink)}.chip.is-alert{--c: #c63b3b}.chip b{font-size:12px;color:var(--muted);margin-left:2px}.filter-selects{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filter-selects .select-wrap{width:auto}.filter-selects .select{min-height:36px;font-size:13.5px;padding-top:6px;padding-bottom:6px;max-width:230px}.bulk-bar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:var(--header);color:#fff;box-shadow:var(--shadow-lg)}.bulk-bar .select{min-height:34px;font-size:13px}.bulk-bar .btn-ghost{color:#d8e4ea}.bulk-bar .btn-ghost:hover{background:#ffffff14}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #e3ecf0;border-radius:18px;box-shadow:var(--shadow-sm)}.card.table-wrap{padding:0}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:12px 14px;border-bottom:1px solid var(--line);background:#fafcfd;white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{cursor:pointer;transition:background .1s}.table tbody tr:hover{background:#f6fafb}.table tr.is-selected{background:#eef7fa}.table tr.is-open{background:#e9f4f8;box-shadow:inset 3px 0 0 var(--teal)}.table small{display:block;color:var(--muted);font-size:12px}.col-check{width:44px}.col-num{width:64px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.col-title{min-width:260px}.title-line{display:flex;align-items:center;gap:7px}.title-line strong{font-weight:700}.reserve-icon{color:var(--danger);flex:none}.sub-line{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted);margin-top:3px}.task-meta-icons{display:inline-flex;gap:10px;font-size:12px;color:var(--muted)}.task-meta-icons span{display:inline-flex;align-items:center;gap:3px}.task-meta-icons .is-done{color:var(--success)}.due{white-space:nowrap;font-size:13px}.person{display:inline-flex;align-items:center;gap:8px}.person>span:not(.avatar){display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}.task-cards{display:flex;flex-direction:column;gap:10px}.task-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:13px 14px 12px 16px;background:#fff;border:1px solid #e3ecf0;border-radius:14px;box-shadow:inset 4px 0 0 var(--c),var(--shadow-sm)}.task-card-top,.task-card-foot{display:flex;align-items:center;gap:8px}.task-card-foot{justify-content:space-between}.type-mini{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;color:var(--danger);background:#fdecec;border-radius:99px;padding:1px 7px}.board{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:14px;overflow-x:auto;padding-bottom:6px;align-items:start}.board-col{background:#eaf1f4;border-radius:16px;padding:10px;min-height:200px;transition:background .15s,box-shadow .15s}.board-col.is-over{background:#dfecf2;box-shadow:inset 0 0 0 2px var(--c)}.board-col header{display:flex;align-items:center;gap:8px;padding:4px 6px 10px;font-weight:800;font-size:13.5px}.board-count{margin-left:auto;background:#fff;border-radius:99px;padding:0 8px;font-size:12px;color:var(--muted)}.board-cards{display:flex;flex-direction:column;gap:8px}.board-card{background:#fff;border-radius:12px;padding:11px 12px;display:flex;flex-direction:column;gap:7px;box-shadow:0 1px 2px #0f273a14;cursor:grab;border:1px solid transparent;font-size:14px}.board-card:hover{border-color:#c9dbe2}.board-card:active{cursor:grabbing}.board-card-top,.board-card-foot{display:flex;align-items:center;gap:8px;justify-content:space-between}.board-card-top .row-num{min-width:0;margin-right:auto}.board-empty{font-size:12.5px;color:var(--muted);text-align:center;padding:18px 6px;border:1.5px dashed #c5d6de;border-radius:12px}.type-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;letter-spacing:.04em;color:var(--teal);background:#e6f2f6;padding:4px 10px;border-radius:99px}.type-chip.is-reserve{color:var(--danger);background:#fdecec}.task-title{font-size:1.3rem;letter-spacing:-.02em;font-weight:700;line-height:1.25}.task-title.is-editable{width:100%;border:1px solid transparent;border-radius:8px;padding:4px 6px;margin:0 -6px;resize:none;background:transparent;font-family:inherit;color:var(--ink);field-sizing:content;min-height:36px}.task-title.is-editable:hover{border-color:var(--line)}.task-title.is-editable:focus{outline:none;border-color:var(--teal);background:#fff}.status-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.status-option{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:700;color:var(--ink-2);white-space:nowrap}.status-option:hover:not(:disabled){border-color:var(--c)}.status-option.is-active{background:var(--c);border-color:var(--c);color:#fff}.status-option.is-active .status-dot{background:#fff}.status-option:disabled:not(.is-active){opacity:.45}.prop-grid{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0;align-items:center}.prop-grid dt{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.prop-grid dd{margin:0;min-width:0}.prop-grid .input{min-height:36px}.with-hint{display:flex;align-items:center;gap:10px}.with-hint small{white-space:nowrap;color:var(--muted);font-size:12.5px}.plan-snippet{position:relative;display:block;width:100%;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;padding:0}.plan-snippet-img{position:absolute;inset:0;background-repeat:no-repeat}.plan-snippet-pin{position:absolute;transform:translate(-50%,-92%);color:var(--c);filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.plan-snippet-pin .icon{fill:color-mix(in srgb,var(--c) 30%,#fff)}.plan-snippet-label{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:6px;background:#0b2740db;color:#fff;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:99px}.plan-snippet:hover{border-color:var(--teal)}.panel-section{display:flex;flex-direction:column;gap:10px}.panel-section h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800}.panel-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.checklist li{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px}.checklist li:hover{background:var(--bg)}.checklist li.is-done .checkbox-label{color:var(--muted);text-decoration:line-through}.hover-only{opacity:0}li:hover .hover-only,.hover-only:focus-visible{opacity:1}@media(hover:none){.hover-only{opacity:1}}.inline-add{display:flex;gap:8px;align-items:center}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photo-grid.is-large{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.photo-grid figure{position:relative;margin:0}.photo-grid figure>button:first-child{display:block;width:100%;padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:1;background:var(--soft)}.photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-grid figure>button:first-child:hover img{transform:scale(1.04)}.photo-grid figcaption{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-remove{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:0;background:#0b2740bf;color:#fff;display:grid;place-items:center}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.file-list li{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;background:var(--bg);font-size:14px}.file-list li>span,.file-list li>a{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-list small{color:var(--muted);white-space:nowrap}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.timeline li{display:flex;gap:10px;align-items:flex-start}.timeline li>div{flex:1;min-width:0}.timeline-dot{width:28px;display:grid;place-items:center;flex:none;padding-top:6px}.timeline-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#b5c8d2}.timeline-meta{font-size:12.5px;color:var(--muted)}.timeline-meta strong{color:var(--ink-2)}.timeline-bubble{background:var(--bg);border-radius:4px 12px 12px;padding:9px 12px;margin-top:4px;font-size:14px}.comment-box{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.task-meta{text-align:center}.lightbox .modal-body{padding:0 14px 14px}.lightbox-body{position:relative;display:grid;place-items:center;background:#0d1b26;border-radius:12px;min-height:50vh}.lightbox-body img{max-height:76vh;object-fit:contain}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffe6!important;color:var(--ink)!important;border-radius:50%;width:42px;height:42px}.lightbox-nav.is-left{left:12px}.lightbox-nav.is-right{right:12px}.form-row-split{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}.checklist-draft{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg);border-radius:8px;font-size:14px}.checklist-draft span{flex:1}.checklist-draft .icon{color:var(--success)}.photo-drafts{display:flex;flex-wrap:wrap;gap:8px}.photo-draft{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden}.photo-draft img{width:100%;height:100%;object-fit:cover}.photo-draft button{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:0;background:#0b2740bf;color:#fff;display:grid;place-items:center}.photo-add{width:76px;height:76px;border-radius:10px;border:1.5px dashed #b9ccd5;background:var(--bg);color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;font-weight:700}.photo-add:hover{border-color:var(--teal);color:var(--teal)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;border-radius:16px;border:2px dashed #b9ccd5;background:var(--bg);color:var(--ink-2);cursor:pointer;transition:all .15s;text-align:center}.dropzone .icon{color:var(--teal)}.dropzone:hover,.dropzone.is-over{border-color:var(--teal);background:#eef7fa}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0 20px;text-align:center}.upload-progress .loader{padding:16px}.upload-progress .progress{width:100%;max-width:420px;height:8px}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.plan-card{position:relative;background:#fff;border-radius:16px;border:1px solid #e3ecf0;box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s,transform .2s}.plan-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.plan-thumb{position:relative;display:block;aspect-ratio:1.42;background:#fff;border-bottom:1px solid var(--line-2);overflow:hidden}.plan-thumb img{width:100%;height:100%;object-fit:contain;padding:8px}.plan-badge{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:4px;background:#d64545;color:#fff;font-size:12px;font-weight:800;padding:3px 9px 3px 7px;border-radius:99px;box-shadow:0 3px 8px #d6454559}.plan-info{padding:12px 44px 14px 14px;display:flex;flex-direction:column;gap:3px}.plan-name{display:flex;align-items:baseline;gap:8px;color:var(--ink);min-width:0}.plan-name strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-number{font-size:12px;font-weight:800;color:var(--teal);background:#e6f2f6;padding:1px 7px;border-radius:5px;flex:none}.plan-card .nb-menu{position:absolute;right:6px;bottom:12px}@media(max-width:860px){.filter-bar{padding:12px;border-radius:14px}.filter-selects .select-wrap{flex:1 1 45%}.filter-selects .select{max-width:none}.status-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -12px;padding:0 12px 2px}.prop-grid{grid-template-columns:112px 1fr}.status-switch{grid-template-columns:repeat(2,1fr)}.plan-grid{grid-template-columns:repeat(2,1fr);gap:10px}}.plan-snippet-stage{position:absolute;display:block}.plan-snippet-stage>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none}.plan-snippet-stage .markup-layer{position:absolute;inset:0;pointer-events:none}.checklist li.has-dates{display:block}.check-row{display:flex;align-items:center;gap:8px}.check-row .checkbox{flex:1;min-width:0}.bim-chip{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--line);background:#f3f8fa;border-radius:12px;padding:10px 12px;font-weight:700;color:var(--navy);text-align:left}.bim-chip>.icon:last-child{margin-left:auto;color:var(--muted)}.bim-chip:hover{border-color:var(--teal)}.plan-import .modal-body{min-height:0}.prep-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px}.prep-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.prep-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:opacity .15s,border-color .15s}.prep-card:hover{border-color:#b9d3df}.prep-card.is-off{opacity:.5;background:var(--bg)}.prep-thumb{position:relative;height:170px;display:grid;place-items:center;background:repeating-conic-gradient(#f2f5f7 0 25%,#fff 0 50%) 0 0 / 14px 14px;border-radius:8px;overflow:hidden}.prep-img{position:relative;max-width:100%;max-height:100%;display:flex}.prep-img img{display:block;max-width:100%;max-height:170px;box-shadow:0 1px 4px #0b27402e}.prep-crop{position:absolute;border:2px solid var(--teal);box-shadow:0 0 0 999px #0b274073;pointer-events:none}.prep-img{overflow:hidden}.prep-check{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 5px;border-radius:999px;background:#fffffff0;box-shadow:0 1px 3px #00000026;font-size:12px;font-weight:700;cursor:pointer}.prep-check input{width:16px;height:16px;accent-color:var(--teal);margin:0}.prep-tags{position:absolute;right:6px;bottom:6px;display:flex;gap:4px}.prep-tags .pill{background:#fffffff0;font-size:11px;display:inline-flex;align-items:center;gap:3px}.prep-name{font-size:13px;padding:6px 9px;min-height:0}.prep-actions{display:flex;align-items:center;gap:4px}.prep-actions .btn{margin-left:auto}.prep-dxf{display:flex;flex-direction:column;gap:5px;font-size:13px}.prep-dxf select{font-size:13px;padding:5px 8px}.prep-warn{color:#a15c00;display:flex;align-items:center;gap:4px}.prep-mono{display:inline-flex;align-items:center;gap:6px;color:var(--muted);cursor:pointer}.file-list li.is-dwg{background:#fff6e6}.dwg-note{display:flex;gap:10px;padding:12px 14px;border-radius:10px;background:#fff6e6;border:1px solid #f3d9a6;font-size:14px}.dwg-note>.icon{color:#c27a00;flex:none;margin-top:2px}.dwg-note p{margin:4px 0}.dwg-note ul{margin:4px 0 8px;padding-left:18px;display:grid;gap:4px}.dwg-note .btn{margin:2px 6px 2px 0}.crop-wrap{display:flex;flex-direction:column;gap:8px;align-items:center}.crop-loading{display:flex;flex-direction:column;align-items:center;gap:8px;padding:50px 0}.crop-stage{position:relative;display:inline-flex;max-width:calc(100% - 20px);margin:10px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair;border-radius:6px;background:#fff;box-shadow:0 1px 6px #0b274033}.crop-clip{position:absolute;inset:0;overflow:hidden;border-radius:6px;pointer-events:none}.crop-shade{position:absolute;box-shadow:0 0 0 9999px #0b27408c}.crop-stage img{display:block;max-width:100%;max-height:min(64vh,720px);pointer-events:none;border-radius:6px}.crop-box{position:absolute;border:2px solid #fff;outline:1px solid var(--teal);cursor:move}.crop-grid{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent calc(33.33% - .5px),rgba(255,255,255,.5) 0 calc(33.33% + .5px),transparent 0 calc(66.66% - .5px),rgba(255,255,255,.5) 0 calc(66.66% + .5px),transparent 0),linear-gradient(to bottom,transparent calc(33.33% - .5px),rgba(255,255,255,.5) 0 calc(33.33% + .5px),transparent 0 calc(66.66% - .5px),rgba(255,255,255,.5) 0 calc(66.66% + .5px),transparent 0)}.crop-h{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;background:#fff;border:2px solid var(--teal);border-radius:4px;box-shadow:0 1px 3px #0000004d}.crop-h:after{content:"";position:absolute;inset:-10px}.h-nw{left:0;top:0;cursor:nwse-resize}.h-n{left:50%;top:0;cursor:ns-resize}.h-ne{left:100%;top:0;cursor:nesw-resize}.h-e{left:100%;top:50%;cursor:ew-resize}.h-se{left:100%;top:100%;cursor:nwse-resize}.h-s{left:50%;top:100%;cursor:ns-resize}.h-sw{left:0;top:100%;cursor:nesw-resize}.h-w{left:0;top:50%;cursor:ew-resize}.crop-help{display:flex;align-items:center;gap:6px;width:100%;flex-wrap:wrap}@media(max-width:720px){.prep-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.prep-thumb{height:140px}.prep-img img{max-height:140px}.plan-import .modal-footer,.prep-actions{flex-wrap:wrap}.prep-actions .btn{margin-left:0;flex:1 1 100%;justify-content:center}.crop-stage img{max-height:58vh}}.prep-tags .pill.is-teal,.pill.is-teal{background:#e3f3f8;color:#0f6d91}.rev-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rev-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:12px}.rev-list li.is-current{border-color:#b9dbe8;background:#f3fafc}.rev-thumb{flex:none;width:112px;height:76px;display:grid;place-items:center;background:#fff;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;color:var(--muted)}.rev-thumb img{width:100%;height:100%;object-fit:contain;padding:3px}.rev-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rev-body strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rev-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:560px){.rev-list li{flex-wrap:wrap}.rev-thumb{width:90px;height:62px}.rev-actions{width:100%}}.plan-card.is-ordering{cursor:grab;transform:none!important;outline:2px dashed transparent;outline-offset:3px;transition:outline-color .15s,box-shadow .15s}.plan-card.is-ordering:active{cursor:grabbing}.plan-card.is-ordering .plan-info{padding-right:104px}.plan-card.is-drop{outline-color:var(--teal);box-shadow:0 0 0 4px #1688b826,var(--shadow)}.plan-grip{position:absolute;top:10px;left:10px;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fffffff2;box-shadow:0 1px 4px #0000002e;color:var(--teal)}.plan-order{position:absolute;right:8px;bottom:12px;display:flex;align-items:center;gap:2px;background:var(--bg);border-radius:999px;padding:2px}.plan-order>span{min-width:20px;text-align:center;font-size:12px;font-weight:800;color:var(--muted)}.voice-field{position:relative}.voice-field>.input,.voice-field>textarea{width:100%;padding-right:44px}.voice-field>.mic-wrap{position:absolute;right:4px;top:4px}.voice-field:not(.is-multiline)>.mic-wrap{top:50%;transform:translateY(-50%)}.mic-wrap{display:inline-flex;position:relative}.mic-btn{color:var(--muted)}.mic-btn:hover{color:var(--teal)}.mic-btn.is-listening{color:#fff;background:#d64545!important;animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #d6454573}50%{box-shadow:0 0 0 7px #d6454500}}.mic-bubble{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:max-content;max-width:min(320px,80vw);padding:7px 10px;border-radius:9px;background:#0b2740;color:#fff;font-size:12.5px;line-height:1.35;box-shadow:0 6px 18px #0003;pointer-events:none}.mic-bubble.is-error{background:#b42c2c;pointer-events:auto;cursor:pointer}.voice-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:#f1f7fa;border:1px solid #dbe9f0}.voice-bar.is-listening{background:#fff4f4;border-color:#f2c5c5;flex-wrap:nowrap}.voice-dot{width:12px;height:12px;border-radius:50%;background:#d64545;flex:none;animation:micPulse 1.2s ease-in-out infinite}.voice-live{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px}.voice-live em{color:var(--muted)}.voice-hint{flex:1;min-width:200px}.voice-result{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.voice-heard{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:#1f7a4d}.voice-result .chip{font-size:12px;padding:3px 9px}.voice-error{display:inline-flex;align-items:center;gap:5px;color:#b42c2c;font-size:13px;width:100%}.panel-section .voice-field>textarea{padding-right:44px}.comment-box .voice-field{width:100%}.lightbox-annotate{position:absolute;right:12px;bottom:12px}.annot-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}.annot-tools{display:flex;gap:4px}.annot-tool.is-active{background:#e6f2f6;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--teal)}.annot-stage{background:#0d1b26;border-radius:12px;display:grid;place-items:center;padding:8px;min-height:40vh}.annot-stage .muted{color:#c9d6de}.annot-canvas{max-width:100%;max-height:68vh;touch-action:none;cursor:crosshair;display:block;border-radius:6px}.annot-canvas.is-text{cursor:text}.cmp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.cmp-bar input[type=range]{flex:1;min-width:160px;accent-color:var(--teal)}.cmp-legend{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink-2);flex-wrap:wrap}.cmp-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;margin-left:6px}.cmp-legend i.is-del{background:red}.cmp-legend i.is-add{background:#00f}.cmp-legend i.is-same{background:#000}.cmp-stage{overflow:auto;max-height:70vh;background:#e4ebef;border-radius:12px;padding:8px}.cmp-inner{min-width:100%}.cmp-img{width:100%;height:auto;display:block;background:#fff}.cmp-slider{position:relative}.cmp-before{position:absolute;inset:0}.cmp-handle{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--teal);box-shadow:0 0 0 1px #fff;pointer-events:none}.cmp-handle span{position:absolute;top:8px;white-space:nowrap;background:var(--navy);color:#fff;font-size:11px;font-weight:800;padding:2px 7px;border-radius:99px}.cmp-handle span:first-child{right:8px}.cmp-handle span:last-child{left:8px}.cmp-side{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cmp-side figure{margin:0}.cmp-side figcaption{font-size:12px;font-weight:800;color:var(--muted);margin-bottom:4px}@media(max-width:860px){.cmp-side{grid-template-columns:1fr}}.plan-viewer{height:100%;display:flex;flex-direction:column;background:#e9eff2}.viewer-toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);z-index:5;min-height:60px}.viewer-title{display:flex;align-items:center;gap:10px;min-width:0}.viewer-title .select-wrap{min-width:220px;max-width:420px}.viewer-title .select{font-weight:700}.viewer-body{flex:1;display:flex;min-height:0;position:relative}.viewer-list{width:320px;flex:none;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.viewer-filters{display:flex;flex-wrap:wrap;gap:6px;padding:12px;border-bottom:1px solid var(--line-2)}.viewer-filters .chip{padding:4px 10px;font-size:12px}.viewer-filters .chip:not(.is-active){opacity:.55}.pin-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.pin-list-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;border:0;background:none;text-align:left}.pin-list-item:hover{background:var(--bg)}.pin-list-item.is-active{background:#e6f2f6}.pin-list-num{min-width:30px;height:30px;padding:0 6px;border-radius:50% 50% 50% 4px;background:var(--c);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;flex:none}.pin-list-text{flex:1;min-width:0;display:flex;flex-direction:column}.pin-list-text strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-list-text small{color:var(--muted);font-size:12px}.viewer-canvas{flex:1;position:relative;overflow:hidden;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;background-color:#e4ebef;background-image:radial-gradient(#cdd9df 1px,transparent 1px);background-size:22px 22px}.viewer-canvas:active{cursor:grabbing}.plan-viewer.is-adding .viewer-canvas{cursor:crosshair}.viewer-stage{position:absolute;left:0;top:0;transform-origin:0 0}.viewer-stage.is-moving{will-change:transform}.plan-viewer{overflow:hidden;overflow:clip}.viewer-stage>img{width:100%;height:100%;max-width:none;background:#fff;box-shadow:0 10px 40px #0b27402e;pointer-events:none}.pin{position:absolute;width:0;height:0;z-index:2;transform:scale(var(--inv));transform-origin:0 0}.pin-head{position:absolute;left:0;bottom:12px;transform:translate(-50%);min-width:32px;height:32px;padding:0 7px;border-radius:999px;background:var(--c);color:#fff;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;gap:2px;font:800 13px/1 var(--font);box-shadow:0 3px 10px #0b274059;cursor:pointer;white-space:nowrap;transition:transform .12s}.pin-tail{position:absolute;left:0;bottom:0;width:0;height:0;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:14px solid var(--c);pointer-events:none;filter:drop-shadow(0 2px 1px rgba(11,39,64,.25))}.pin.is-reserve .pin-head{border-radius:8px}.pin.is-done .pin-head{opacity:.8}.pin:hover{z-index:3}.pin:hover .pin-head{transform:translate(-50%) scale(1.12)}.pin.is-selected{z-index:4}.pin.is-selected .pin-head{transform:translate(-50%) scale(1.25);box-shadow:0 0 0 4px #8fd7e3d9,0 6px 18px #0b274066}.pin.is-dragging .pin-head{cursor:grabbing;transform:translate(-50%) scale(1.3)}.pin.is-draft .pin-head{animation:bob .8s ease-in-out infinite alternate}@keyframes bob{to{transform:translate(-50%) translateY(-5px)}}.viewer-hint{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--header);color:#fff;padding:9px 16px;border-radius:99px;font-weight:700;font-size:14px;box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap}.viewer-hint .icon{color:var(--aqua)}.viewer-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;border-radius:14px;padding:5px;box-shadow:var(--shadow)}.zoom-level{font-size:11px;font-weight:700;color:var(--muted);padding:2px 0 3px}.viewer-legend{position:absolute;left:16px;bottom:16px;display:flex;gap:12px;background:#fffffff0;border-radius:99px;padding:7px 14px;box-shadow:var(--shadow-sm);font-size:12px;font-weight:700;color:var(--ink-2)}.viewer-legend span{display:flex;align-items:center;gap:6px}.viewer-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}@media(max-width:860px){.viewer-toolbar{padding:8px 10px;gap:6px;min-height:54px}.viewer-title{flex:1 1 auto;min-width:0}.viewer-title>*{min-width:0}.viewer-title .select-wrap{min-width:0;width:100%;flex:1}.viewer-title .select{padding-left:10px;padding-right:28px;text-overflow:ellipsis}.viewer-toolbar>.icon-btn,.viewer-toolbar>.btn{flex:none}.viewer-toolbar .spacer{display:none}.viewer-toolbar .btn{padding:8px 14px;min-height:38px}.viewer-list{position:absolute;inset:0 0 auto;max-height:55%;width:100%;z-index:6;border-right:0;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg)}.viewer-legend{display:none}.viewer-zoom{right:10px;bottom:10px}}.plan-viewer.is-fullscreen{position:fixed;inset:0;z-index:80;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:#fff}.plan-viewer.is-drawing .viewer-canvas{cursor:crosshair}.scale-pill{border:0;cursor:pointer;background:#e6f2f6;color:var(--navy)}.scale-pill.is-warn{background:#fdf0e1;color:#9a5b12}.markup-layer{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:1}.markup-layer.is-interactive g[data-markup]{pointer-events:auto;cursor:pointer}.markup-layer .markup-hit{pointer-events:stroke}.markup-layer path[fill=transparent].markup-hit{pointer-events:all}.markup-layer .markup-text{pointer-events:all;-webkit-user-select:none;user-select:none}.markup-layer .markup-handle{pointer-events:all;cursor:move;touch-action:none}.markup-layer .markup-handle:hover rect{fill:#8fd7e3}.tool-rail{position:absolute;left:14px;top:14px;z-index:7;display:flex;flex-direction:column;gap:6px;touch-action:none}.tool-group{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid transparent}.tool-rail.is-horizontal{flex-direction:row;align-items:flex-start}.tool-rail.is-horizontal .tool-group{flex-direction:row;padding-top:0;padding-left:6px}.tool-rail-head{display:grid;grid-template-columns:1fr 1fr;gap:2px;width:38px;padding:2px;border-radius:9px;background:#1f2b33;box-shadow:0 2px 6px #0b274047}.tool-rail-head .tool-grip{grid-column:1 / -1;height:18px}.tool-rail.is-horizontal .tool-rail-head{grid-template-columns:auto auto;grid-template-rows:1fr 1fr;width:auto;height:38px}.tool-rail.is-horizontal .tool-rail-head .tool-grip{grid-column:1;grid-row:1 / -1;width:18px;height:auto}.tool-grip,.tool-mini{border:0;padding:0;background:transparent;color:#b8c7d0;display:grid;place-items:center;border-radius:6px;min-width:0}.tool-grip{cursor:grab;touch-action:none}.tool-grip svg{transform:rotate(90deg)}.tool-rail.is-horizontal .tool-grip svg{transform:none}.tool-mini{height:18px}.tool-rail.is-horizontal .tool-mini{width:18px;height:auto}.tool-grip:hover,.tool-mini:hover{background:#33434d;color:#fff}.tool-grip:focus-visible,.tool-mini:focus-visible{outline:2px solid var(--aqua);outline-offset:1px}.tool-rail.is-dragging,.tool-rail.is-dragging .tool-grip,.tool-rail.is-dragging .tool-rail-fab{cursor:grabbing}.tool-rail.is-dragging{opacity:.92}.tool-btn.tool-rail-fab{width:44px;height:44px;border-radius:12px;cursor:grab;touch-action:none}.tool-rail-fab-more{position:absolute;right:3px;bottom:2px;color:var(--aqua);line-height:0}.tool-rail .tool-pop,.tool-rail .tool-pop.is-style{position:fixed;left:var(--pop-left, 64px);right:var(--pop-right, auto);top:var(--pop-top, 120px);bottom:var(--pop-bottom, auto);max-height:var(--pop-maxh, calc(100dvh - 150px) );overflow-y:auto;max-width:min(320px,calc(100vw - 16px));z-index:60}.tool-btn{width:38px;height:38px;border-radius:9px;border:0;background:#1f2b33;color:#fff;display:grid;place-items:center;box-shadow:0 2px 6px #0b274047;position:relative;transition:background .12s,transform .12s}.tool-btn:hover:not(:disabled){background:#33434d}.tool-btn.is-active{background:#4c8fd6}.tool-btn:disabled{opacity:.45}.tool-color{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0003}.tool-pop-wrap{position:relative}.tool-pop{position:absolute;left:48px;top:0;z-index:9;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:12px;min-width:230px;display:flex;flex-direction:column;gap:8px}.tool-pop-title{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.tool-pop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tool-pop-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--line-2);border-radius:10px;background:#fff;font-size:11.5px;font-weight:700;color:var(--ink-2)}.tool-pop-item:hover{border-color:var(--teal)}.tool-pop-item.is-active{background:#e6f2f6;border-color:var(--teal);color:var(--navy)}.tool-pop-note{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#2e9e6a}.tool-pop-note.is-warn{color:#b26b12}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0b274040;padding:0}.swatch.is-active{box-shadow:0 0 0 2px var(--navy)}.swatches.is-small .swatch{width:20px;height:20px}.zoom-badge{position:absolute;right:16px;bottom:16px;background:#fffffff0;border-radius:99px;padding:5px 11px;font-size:12px;font-weight:800;color:var(--muted);box-shadow:var(--shadow-sm)}.hint-btn{margin-left:6px;border:0;background:var(--aqua);color:var(--navy);font-weight:800;border-radius:99px;padding:3px 10px;pointer-events:auto}.viewer-hint{pointer-events:none}.viewer-hint .hint-btn{pointer-events:auto}.markup-inspector{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:8;width:min(440px,calc(100% - 100px));background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mi-head,.mi-row{display:flex;align-items:center;gap:8px;min-width:0}.mi-row .select-wrap{flex:1;min-width:0}.mi-swatch{width:14px;height:14px;border-radius:4px;flex:none}.mi-meta{font-size:12px;color:var(--muted)}.tour-overlay{position:absolute;inset:0;pointer-events:none}.tour-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tour-path polyline{fill:none;stroke:#6b4fbb;stroke-dasharray:10 8;opacity:.8}.tour-dot{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px solid #fff;background:#6b4fbb;color:#fff;display:grid;place-items:center;transform:scale(var(--inv));pointer-events:auto;box-shadow:0 2px 6px #0000004d;padding:0;z-index:2}.tour-dot:hover{background:#8a6fe0}@media(max-width:860px){.tool-rail{left:8px;top:8px;gap:4px;max-height:calc(100% - 16px);overflow-y:auto;overflow-x:visible}.tool-rail.is-horizontal{max-height:none;max-width:calc(100% - 16px);overflow-x:auto;overflow-y:visible}.tool-rail-head{width:34px}.tool-rail.is-horizontal .tool-rail-head{height:34px}.tool-rail.is-collapsed{overflow:visible}.tool-btn{width:34px;height:34px}.tool-pop{position:fixed;left:52px;top:120px}.markup-inspector{width:calc(100% - 60px);left:auto;right:8px;transform:none;bottom:8px}.zoom-badge{display:none}}.pin{-webkit-touch-callout:none}.pin.is-dragging .pin-head{animation:pin-pulse 1s ease-in-out infinite;box-shadow:0 0 0 4px #8fd7e3e6,0 6px 16px #0b274066}@keyframes pin-pulse{50%{transform:translate(-50%) scale(1.12)}}.pin-menu{position:absolute;z-index:12;width:200px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 14px 40px #0b274047;border:1px solid var(--line);display:flex;flex-direction:column;animation:pop .14s ease-out}.pin-menu-title{display:flex;align-items:center;gap:8px;padding:6px 8px 8px;border-bottom:1px solid var(--line-2);margin-bottom:4px;min-width:0}.pin-menu-title strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-menu-title .pin-list-num{min-width:26px;height:26px;font-size:11px}.pin-menu button{display:flex;align-items:center;gap:10px;padding:11px 10px;border:0;background:none;border-radius:9px;font-size:14.5px;font-weight:700;color:var(--ink);text-align:left}.pin-menu button:hover{background:var(--soft)}.pin-menu button .icon{color:var(--teal)}.pin-menu button.is-danger,.pin-menu button.is-danger .icon{color:var(--danger)}.move-bar{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:11;display:flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border-radius:14px;padding:8px 8px 8px 14px;box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:700;max-width:calc(100% - 24px)}.move-bar>span{min-width:0}.move-bar .hint-btn.is-ghost{background:transparent;color:#cfe3ec;border:1px solid rgba(255,255,255,.3)}@media(max-width:860px){.move-bar{left:52px;right:8px;transform:none;bottom:10px;flex-wrap:wrap;font-size:12.5px}.move-bar>span{flex:1 1 100%}.move-bar .hint-btn{flex:1;padding:9px}}.tool-pop.is-style{min-width:268px;max-width:300px;max-height:calc(100dvh - 150px);overflow-y:auto}.ms{display:flex;flex-direction:column;gap:10px}.ms.is-compact{gap:8px}.ms-colors{display:flex;flex-direction:column;gap:6px}.swatch.is-fluo{box-shadow:0 0 0 1px #0b274040,0 0 6px var(--glow, rgba(0,0,0,0))}.swatch.is-custom{position:relative;overflow:hidden;background:conic-gradient(#ff4d4d,#ffd84d,#4dff88,#4dd8ff,#8a4dff,#ff4dd2,#ff4d4d);cursor:pointer;display:inline-block}.swatch.is-custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:0;padding:0}.ms-range{display:flex;flex-direction:column;gap:3px}.ms-range-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;color:var(--ink-2)}.ms-range-head output{font-variant-numeric:tabular-nums;color:var(--navy);font-weight:800}.ms-range-row{display:flex;align-items:center;gap:8px}.ms-range input[type=range]{flex:1;min-width:0;accent-color:var(--teal);height:22px}.ms-preview{width:64px;height:30px;flex:none;background:#f4f7f9;border-radius:8px;border:1px solid var(--line-2)}.ms-line{display:flex;align-items:center;gap:8px}.ms-line .segmented{flex:1}.ms-line .segmented-item{flex:1;justify-content:center;padding-left:4px;padding-right:4px;font-size:12px}.ms-label{font-size:12px;font-weight:700;color:var(--ink-2)}.ms-fill{display:flex;flex-direction:column;gap:6px}.ms-fill-sample{width:30px;height:22px;flex:none;border-radius:6px;border:2px solid var(--c);background:color-mix(in srgb,var(--c) calc(var(--a) * 100%),#fff)}.ms-pens{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.ms-pen{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 5px;border:1px solid var(--line-2);border-radius:10px;background:#fff;font-size:11px;font-weight:700;color:var(--ink-2)}.ms-pen svg{width:46px;height:20px}.ms-pen:hover{border-color:var(--teal)}.ms-pen.is-active{background:#e6f2f6;border-color:var(--teal);color:var(--navy)}.mi-style{border-top:1px solid var(--line-2);padding-top:8px;max-height:min(52vh,420px);overflow-y:auto;display:flex;flex-direction:column;gap:8px}.mi-text{display:flex;flex-direction:column;gap:6px}@media(max-width:860px){.tool-pop.is-style{max-height:calc(100dvh - 190px)}.mi-style{max-height:38vh}}@media(max-width:860px){.tool-rail .tool-pop,.tool-rail .tool-pop.is-style{max-height:var(--pop-maxh, calc(100dvh - 150px) )}}.link-btn{background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.link-btn:hover{color:var(--teal);text-decoration:underline}.planning-page{gap:16px}.planning-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.planning-kpis>div{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.planning-kpis span{font-size:12px;color:var(--muted);font-weight:700}.planning-kpis strong{font-size:22px;letter-spacing:-.02em}.planning-kpis i{position:absolute;left:0;bottom:0;height:4px;background:#2e9e6a}.planning-kpis .is-critical strong{color:#8f1d2c}.planning-kpis .is-late strong{color:#d64545}.planning-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.planning-toolbar .chip{padding:5px 11px;font-size:12.5px}.planning-toolbar .chip:not(.is-active){opacity:.6}.gantt{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}.gantt-scroll{overflow:auto;max-height:calc(100vh - 330px);min-height:320px;position:relative;overscroll-behavior:contain}.gantt-inner{position:relative}.gantt-head{position:sticky;top:0;z-index:6;display:flex;background:#f4f7f9;border-bottom:1px solid var(--line)}.gantt-left{position:sticky;left:0;z-index:5;width:var(--left);flex:none;display:flex;align-items:center;gap:8px;padding:0 10px;background:#fff;border-right:1px solid var(--line);height:100%;min-width:0}.gantt-head-left{background:#f4f7f9;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);z-index:8}.gantt-head-left span:first-child{flex:1}.gantt-head-left span:not(:first-child){width:44px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html:not([lang=fr]) .gantt-head-left span:not(:first-child){letter-spacing:0;font-size:10px}.gantt-time{position:relative;flex:none}.gantt-month{position:absolute;top:6px;padding-left:6px;font-size:12px;font-weight:800;color:var(--navy);text-transform:capitalize;white-space:nowrap;border-left:1px solid #c9d6dd;line-height:16px}.gantt-tick{position:absolute;bottom:5px;font-size:11px;font-weight:700;color:var(--muted);text-align:center;padding-left:3px}.gantt-tick.is-we{color:#a9b8c1}.gantt-tick.is-today{color:#fff;background:#d64545;border-radius:6px}.gantt-body{position:relative}.gantt-bg{position:absolute;top:0;bottom:0;pointer-events:none}.gantt-we{position:absolute;top:0;bottom:0;background:#f4f7f9}.gantt-mline{position:absolute;top:0;bottom:0;width:1px;background:#dfe7ec}.gantt-today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #d64545;z-index:2}.gantt-row{position:absolute;left:0;right:0;height:var(--row);display:flex;border-bottom:1px solid #eef2f4}.gantt-row:hover .gantt-left,.gantt-row.is-active .gantt-left{background:#f1f8fa}.gantt-row.is-group .gantt-left{background:#f7fafb;font-weight:800}.gantt-row .gantt-left{cursor:pointer}.gantt-toggle{border:0;background:none;padding:2px;color:var(--muted);display:grid;place-items:center;border-radius:6px}.gantt-toggle:hover{background:var(--soft)}.gantt-swatch{width:10px;height:10px;border-radius:3px;flex:none}.gantt-wbs{font-size:11px;font-weight:800;color:var(--muted-2);min-width:28px}.gantt-label{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;line-height:1.2}.gantt-label,.gantt-label>*:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label small{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label.is-critical{color:#8f1d2c;font-weight:700}.gantt-c{width:44px;text-align:center;font-size:12px;color:var(--ink-2);flex:none;font-variant-numeric:tabular-nums}.gantt-c.is-neg{color:#8f1d2c;font-weight:800}.gantt-summary{position:absolute;top:calc(var(--row) / 2 - 4px);height:8px;background:#33536a;border-radius:2px}.gantt-summary:before,.gantt-summary:after{content:"";position:absolute;top:4px;border:5px solid transparent;border-top-color:#33536a}.gantt-summary:before{left:-1px;border-left-width:0}.gantt-summary:after{right:-1px;border-right-width:0}.gantt-bar{position:absolute;top:7px;height:calc(var(--row) - 14px);border-radius:6px;background:var(--c);z-index:2;display:flex;align-items:center;gap:4px;padding:0 8px;color:#fff;font-size:11.5px;font-weight:700;box-shadow:0 1px 2px #0b27402e;touch-action:none;-webkit-user-select:none;user-select:none}.gantt-bar.is-editable{cursor:grab}.gantt-bar.is-dragging{cursor:grabbing;opacity:.85;box-shadow:0 6px 16px #0b27404d;z-index:5}.gantt-bar.is-critical{box-shadow:0 0 0 2px #8f1d2c,0 1px 3px #8f1d2c66}.gantt-bar.is-conflict:before{content:"!";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:13px;height:13px;border-radius:50%;background:#d64545;color:#fff;font-size:10px;font-weight:900;display:grid;place-items:center}.gantt-bar.is-done{background:repeating-linear-gradient(135deg,var(--c) 0 8px,color-mix(in srgb,var(--c) 82%,#fff) 8px 16px)}.gantt-bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.18)}.gantt-bar-check{flex:none;margin-left:auto}.gantt-out-label{position:absolute;top:0;line-height:var(--row);font-size:12px;color:var(--ink-2);white-space:nowrap;pointer-events:none;z-index:1}.gantt-row.is-group .gantt-label{font-size:12.5px}.gantt-handle{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize;border-radius:0 6px 6px 0}.gantt-handle:hover{background:#ffffff59}.gantt-link-dot{position:absolute;right:-13px;top:50%;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;background:#fff;border:2px solid var(--navy);cursor:crosshair;opacity:0;transition:opacity .12s}.gantt-row:hover .gantt-link-dot,.gantt-bar.is-dragging .gantt-link-dot{opacity:1}.gantt-links{position:absolute;top:0;pointer-events:none;overflow:visible;z-index:3}.gantt-links path{fill:none;stroke:#6f8796;stroke-width:1.4}.gantt-links path.is-critical{stroke:#8f1d2c;stroke-width:2}.gantt-links path.is-violated{stroke:#d64545;stroke-dasharray:4 3}.gantt-links path.is-drawing{stroke:var(--teal);stroke-width:2;stroke-dasharray:5 4}.planning-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-2);font-weight:600;align-items:center}.planning-legend span{display:inline-flex;align-items:center;gap:6px}.planning-legend i{width:18px;height:9px;border-radius:3px;display:inline-block}.planning-legend i.is-crit{background:#fff;box-shadow:0 0 0 2px #8f1d2c}.planning-legend i.is-today{width:0;height:14px;border-left:2px dashed #d64545;border-radius:0}.planning-legend .muted{font-weight:500;flex-basis:100%}.step-title-input{font-weight:800;font-size:16px}.drawer-title{font-size:1.15rem}.is-critical-pill{background:#f7e1e4!important;color:#8f1d2c!important}.step-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.step-grid .field{display:flex;flex-direction:column;gap:6px}.step-cpm{background:var(--bg);border-radius:12px;padding:12px 14px}.step-cpm h3,.step-h{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}.step-h small{text-transform:none;letter-spacing:0;font-weight:600}.step-cpm dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0}.step-cpm dt{font-size:12px;color:var(--muted)}.step-cpm dd{margin:0;font-weight:800}.step-cpm dd.is-neg{color:#8f1d2c}.step-warn{display:flex;gap:6px;align-items:center;color:#b3302e;font-weight:700;font-size:13px;margin-top:10px}.step-links{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}.step-links li{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--line-2);border-radius:10px}.step-links li>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}.step-links strong{font-size:13.5px}.step-links small{font-size:12px;color:var(--muted)}.check-dates{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:#1688b8;background:#e8f4f9;border-radius:99px;padding:2px 8px;white-space:nowrap;border:0}.check-dates.is-empty{color:var(--muted);background:var(--soft)}.check-dates:hover{filter:brightness(.96)}.checklist-add{display:grid;grid-template-columns:minmax(0,1fr) 132px 132px auto;gap:6px;align-items:end}.checklist-add .field-mini{display:flex;flex-direction:column;gap:2px}.checklist-add .field-mini span{font-size:10.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.checklist-add .input{min-height:36px;padding-top:6px;padding-bottom:6px;font-size:13.5px}.check-edit-dates{display:flex;gap:6px;align-items:center;margin:4px 0 2px 30px}.check-edit-dates .input{min-height:32px;padding:4px 8px;font-size:13px;width:140px}@media(max-width:860px){.planning-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-kpis>div:first-child{grid-column:span 2}.gantt-scroll{max-height:calc(100vh - 260px)}.checklist-add{grid-template-columns:1fr 1fr}.checklist-add>:first-child,.checklist-add>:last-child{grid-column:span 2}}.planning-plan{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.planning-plan-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.planning-plan-head h2{font-size:1.15rem}.planning-plan-head .select-wrap{width:auto;min-width:260px}.checkbox-inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2)}.planning-date{display:flex;align-items:center;gap:10px}.planning-date input[type=range]{flex:1;accent-color:var(--teal)}.planning-date .input{width:150px;min-height:34px;padding:4px 8px}.planning-plan-body{display:flex;gap:10px}.pp-tools{display:flex;flex-direction:column;gap:5px;align-items:center;position:relative;z-index:10}.pp-tools .swatch{width:20px;height:20px}.pp-sep{height:1px;width:26px;background:var(--line);margin:3px 0}.pp-canvas{flex:1;position:relative;height:560px;overflow:hidden;border-radius:12px;background:#e9eff2;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.pp-canvas.is-drawing{cursor:crosshair}.pp-canvas .viewer-stage>img{width:100%;height:100%;max-width:none;background:#fff;pointer-events:none}.pp-tag{position:absolute;transform:translate(-50%,calc(-100% - var(--gap, 8px) + var(--dy, 0px) * var(--inv))) scale(calc(var(--inv) * var(--tk, 1)));transform-origin:50% calc(100% + var(--gap, 8px));z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:3px 8px 3px 10px;border-radius:6px;border:0;line-height:1.25;background:#fff;box-shadow:0 2px 7px #0b274042,inset 3px 0 0 var(--c);white-space:nowrap;text-align:left;max-width:230px}.pp-tag:after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top:7px solid #fff}.pp-tag strong{font-size:11.5px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;max-width:210px}.pp-tag small{font-size:10.5px;color:var(--ink-2);font-weight:600}.pp-tag.is-critical{box-shadow:0 2px 7px #0b274042,inset 3px 0 0 var(--c),0 0 0 1.5px #8f1d2c}.pp-tag.is-dim{opacity:.35}.pp-tag.is-moved:after{display:none}.pp-lead{position:absolute;z-index:2;width:calc(2px * var(--inv));height:calc(var(--len) * var(--inv));background:var(--navy);transform:translate(-50%,-100%);pointer-events:none}.pp-lead.is-down{transform:translate(-50%)}.pp-lead:after{content:"";position:absolute;left:50%;width:calc(8px * var(--inv));height:calc(8px * var(--inv));margin-left:calc(-4px * var(--inv));border-radius:50%;background:var(--c);box-shadow:0 0 0 calc(1.5px * var(--inv)) #fff;bottom:calc(-4px * var(--inv))}.pp-lead.is-down:after{bottom:auto;top:calc(-4px * var(--inv))}.pp-legend{position:absolute;left:10px;bottom:10px;display:flex;gap:10px;flex-wrap:wrap;background:#fffffff0;border-radius:99px;padding:5px 12px;font-size:11.5px;font-weight:700}.pp-legend span{display:inline-flex;align-items:center;gap:5px}.pp-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.pp-rows{display:flex;flex-direction:column;max-height:260px;overflow-y:auto;border-top:1px solid var(--line-2)}.pp-row{display:grid;grid-template-columns:14px minmax(0,1fr) 110px 50px 90px;gap:10px;align-items:center;padding:6px 8px;border:0;background:none;border-bottom:1px solid var(--line-2);text-align:left;font-size:13px}.pp-row:hover,.pp-row.is-active{background:#f1f8fa}.pp-row i{width:12px;height:12px;border-radius:3px}.pp-row-name{display:flex;flex-direction:column;min-width:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-row-name small{font-weight:600;color:var(--muted);font-size:11.5px}.pp-state{font-weight:800;font-size:12px}@media(max-width:860px){.planning-plan{padding:10px}.planning-plan-body{flex-direction:column}.pp-tools{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.pp-tools .tool-btn{flex:none}.pp-sep{width:1px;height:26px;margin:0 3px;flex:none}.pp-canvas{flex:none;height:62vh;min-height:340px;max-height:560px}.planning-plan-head .select-wrap{min-width:0;width:100%}.planning-date .input{width:128px;flex:none}.planning-date input[type=range]{min-width:0}.pp-row{grid-template-columns:12px minmax(0,1fr) auto;row-gap:2px}.pp-row>span:nth-child(3){font-size:12px;white-space:nowrap}.pp-row>span:nth-child(4){display:none}.pp-row>span:nth-child(5){grid-column:2 / -1;font-size:11.5px}.planning-date{flex-wrap:wrap;row-gap:6px}.planning-date input[type=range]{flex:1 1 100%;order:5}.pp-tag{padding:2px 6px 2px 8px}.pp-tag strong{max-width:130px;font-size:10.5px}.pp-tag small{font-size:9.5px}.pp-legend{left:6px;right:6px;bottom:6px;gap:4px 8px;padding:4px 9px;font-size:10.5px;border-radius:10px}}.pp-pin{transform:scale(calc(var(--inv) * .82));cursor:pointer;z-index:2}.pp-pin.is-dim{opacity:.3}.pp-pin .pin-head{font-size:12px}.pp-selbar{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px 8px 6px 12px;max-width:calc(100% - 20px)}.pp-selbar strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.pp-selbar small{font-size:11.5px;white-space:nowrap}.pp-legend i.is-rainbow{background:conic-gradient(#d64545,#e39a2d,#f2c230,#2e9e6a,#1688b8,#6b4fbb,#d64545)}.planning-plan-head .segmented{flex:none}@media(max-width:860px){.pp-selbar small{display:none}.planning-plan-head{flex-wrap:wrap}}.pp-zoom{position:absolute;right:10px;bottom:10px;z-index:5;display:flex;flex-direction:column;gap:5px}@media(max-width:860px){.pp-zoom{bottom:52px}}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}.panel-h{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.model-card{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px 8px 6px 6px}.model-card:hover{border-color:var(--teal)}.model-card-main{flex:1;display:flex;align-items:center;gap:12px;padding:8px;text-decoration:none!important;color:inherit;min-width:0}.model-card-icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#0b2740,#1688b8);color:var(--aqua);flex:none}.model-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.model-card-body small{font-size:12.5px;color:var(--ink-2)}.model-viewer,.tour-viewer{height:100%;display:flex;flex-direction:column;background:#e9eff2}.model-viewer .viewer-toolbar .select-wrap{width:auto;max-width:260px}.model-body{flex:1;min-height:0;display:flex;position:relative}.model-panel{width:310px;flex:none;background:#fff;border-right:1px solid var(--line);overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:18px}.model-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.model-list button{width:100%;display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;background:none;border-radius:9px;text-align:left;font-size:13.5px;font-weight:600;color:var(--ink)}.model-list button>span:not(.pin-list-num){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-list .pin-list-num{flex:none}.model-list button small{color:var(--muted);font-variant-numeric:tabular-nums}.model-list button:hover{background:var(--bg)}.model-list button.is-active{background:#e6f2f6;color:var(--navy)}.model-list .pin-list-num{min-width:24px;height:24px;font-size:11px}.model-types{display:flex;flex-direction:column;gap:4px}.model-canvas-wrap{flex:1;position:relative;min-width:0;overflow:hidden}.model-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.model-canvas:active{cursor:grabbing}.model-canvas-wrap.is-picking .model-canvas{cursor:crosshair}.model-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--navy)}.model-loading .progress{width:min(320px,70%)}.model-tools{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:14px;padding:5px;box-shadow:var(--shadow)}.model-tools .icon-btn.is-active{background:#e6f2f6;color:var(--teal)}.model-help{position:absolute;left:14px;bottom:12px;font-size:12px;color:var(--muted);background:#ffffffd9;padding:4px 10px;border-radius:99px}.pin3d{position:absolute;transform:translate(-50%,-100%);min-width:28px;height:28px;padding:0 6px;border-radius:99px 99px 99px 4px;background:var(--c);color:#fff;border:2px solid #fff;font-weight:800;font-size:12px;box-shadow:0 3px 10px #0b274059;z-index:3}.pin3d.is-reserve{border-radius:7px 7px 7px 2px}.pin3d.is-selected{box-shadow:0 0 0 4px #8fd7e3e6,0 4px 14px #0b274066;transform:translate(-50%,-100%) scale(1.15);z-index:4}.link-mark{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:#6b4fbb;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;border:2px solid #fff;box-shadow:0 2px 8px #00000059;pointer-events:none;z-index:5}.element-info{display:flex;flex-direction:column;gap:12px}.element-info-head{display:flex;align-items:center;gap:8px}.element-info h3{font-size:1.05rem}.element-dl{display:flex;flex-direction:column;gap:6px;margin:0}.element-dl>div{display:grid;grid-template-columns:110px 1fr;gap:8px;font-size:13px}.element-dl dt{color:var(--muted)}.element-dl dd{margin:0;font-weight:600}.pset{border:1px solid var(--line-2);border-radius:10px;padding:8px 10px}.pset summary{font-weight:800;font-size:13px;cursor:pointer;color:var(--navy)}.pset .element-dl{margin-top:8px}.plan-picker{max-height:68vh;overflow:auto;background:#e4ebef;border-radius:12px}.plan-picker-stage{position:relative;cursor:crosshair}.plan-picker-stage img{width:100%;height:100%;display:block;max-width:none}.tour-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none!important;color:inherit}.tour-card:hover{border-color:var(--teal);box-shadow:var(--shadow-sm)}.tour-card-cover{position:relative;height:150px;background:linear-gradient(135deg,#33536a,#6b4fbb) center / cover no-repeat;background-size:200% auto;background-position:center}.tour-card-badge{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;background:#0b2740d9;color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px}.tour-card-body{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.tour-card-body small{font-size:12.5px;color:var(--ink-2)}.tour-body{flex:1;min-height:0;position:relative;display:flex}.tour-empty{flex:1;display:grid;place-items:center;padding:20px}.pano{position:relative;flex:1;min-width:0;overflow:hidden;background:#0b1620;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.pano:active{cursor:grabbing}.pano canvas{width:100%;height:100%;display:block}.pano-state{position:absolute;inset:0;display:grid;place-items:center;color:#cfe2ea;font-weight:700}.pano-hotspot{position:absolute;transform:translate(-50%,-50%);border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.pano-hotspot-ring{width:46px;height:46px;border-radius:50%;border:3px solid #fff;background:#6b4fbb8c;box-shadow:0 0 0 6px #ffffff2e,0 4px 16px #0006;transition:transform .15s}.pano-hotspot:hover .pano-hotspot-ring{transform:scale(1.12);background:#6b4fbbd9}.pano-hotspot-label{background:#0b1620cc;color:#fff;font-size:12px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}.pano-hud{position:absolute;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;pointer-events:none}.pano-caption{background:#0b1620c7;color:#fff;font-weight:800;padding:6px 12px;border-radius:99px;font-size:13.5px}.pano-actions{display:flex;gap:6px;flex-wrap:wrap;pointer-events:auto}.pano-actions button{display:inline-flex;align-items:center;gap:6px;border:0;background:#ffffffeb;color:var(--navy);font-weight:700;font-size:12.5px;padding:6px 11px;border-radius:99px}.pano-actions button.is-active{background:var(--aqua)}.tour-map{position:absolute;right:14px;bottom:86px;width:min(340px,42%);background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:4}.tour-map-head{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:800;color:var(--navy);border-bottom:1px solid var(--line-2)}.tour-map-stage{position:relative;width:100%}.tour-map-stage img{width:100%;height:100%;display:block;max-width:none}.tour-map-stage svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.tour-map.is-placing .tour-map-stage{cursor:crosshair;outline:3px solid var(--aqua);outline-offset:-3px}.tour-map-path{fill:none;stroke:#6b4fbb;stroke-dasharray:12 8}.tour-map-cone{fill:#1688b852;stroke:#1688b8;stroke-width:6}.tour-map-dot{position:absolute;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;background:#6b4fbb;color:#fff;border:2px solid #fff;font-size:10px;font-weight:800;padding:0;display:grid;place-items:center;box-shadow:0 1px 4px #00000059}.tour-map-dot.is-active{background:#1688b8;width:24px;height:24px;z-index:2}.tour-map-hint{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:700;color:var(--teal)}.tour-strip{position:absolute;left:12px;right:12px;bottom:12px;display:flex;gap:8px;overflow-x:auto;padding:4px;z-index:3}.tour-thumb{flex:none;width:92px;height:54px;border-radius:9px;border:2px solid rgba(255,255,255,.7);background:#33536a center / cover no-repeat;position:relative;padding:0;box-shadow:0 2px 6px #00000059}.tour-thumb.is-active{border-color:var(--aqua);box-shadow:0 0 0 2px var(--aqua)}.tour-thumb.is-unplaced:after{content:"!";position:absolute;right:-5px;top:-5px;width:16px;height:16px;border-radius:50%;background:#e39a2d;color:#fff;font-size:11px;font-weight:900;display:grid;place-items:center}.tour-thumb span{position:absolute;left:4px;bottom:3px;background:#0b1620cc;color:#fff;font-size:11px;font-weight:800;border-radius:6px;padding:0 5px}@media(max-width:860px){.model-panel{position:absolute;inset:0 auto 0 0;width:min(320px,88%);z-index:6;box-shadow:var(--shadow-lg)}.model-viewer .viewer-toolbar .select-wrap{max-width:150px}.tour-map{width:46%;right:8px;bottom:76px}.tour-thumb{width:72px;height:44px}}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.report-checks{display:flex;flex-direction:column;gap:6px}.report-count{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}.report-busy{padding:40px 10px;display:flex;flex-direction:column;gap:14px}@media(max-width:860px){.report-grid{grid-template-columns:1fr}}.model-card-icon.is-fed{background:linear-gradient(135deg,#6b4fbb,#1688b8)}.model-card-icon.is-revit{background:linear-gradient(135deg,#0b2740,#2f80c9);color:#fff}.fed-chips{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--ink-2)}.fed-chips span{display:inline-flex;align-items:center;gap:5px}.fed-chips i,.fed-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}.aps-status{font-weight:700;color:#b26b12}.aps-status.is-success{color:#2e9e6a}.aps-status.is-failed{color:#d64545}.aps-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.fed-rows{display:flex;flex-direction:column;gap:6px}.fed-row{display:grid;grid-template-columns:minmax(0,1.6fr) 48px minmax(0,1.6fr) 80px;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--line-2);border-radius:10px}.fed-row.is-head{border:0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:0}.fed-row.is-off{opacity:.55}.fed-row .checkbox-label{display:flex;flex-direction:column}.fed-row .checkbox-label small{color:var(--muted);font-size:12px}.fed-row input[type=color]{width:40px;height:32px;border:1px solid var(--line);border-radius:8px;padding:2px;background:#fff}.fed-offset{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.fed-row .input{min-height:34px;padding:5px 8px;font-size:13px}.fed-legend{position:absolute;left:14px;top:14px;display:flex;flex-direction:column;gap:4px;background:#ffffffeb;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.fed-legend span{display:flex;align-items:center;gap:6px}.model-panel-tabs{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--line-2);margin:-14px -14px 0;padding:6px 8px;position:sticky;top:-14px;background:#fff;z-index:2}.model-panel-tabs button:not(.icon-btn){border:0;background:none;padding:7px 9px;border-radius:8px;font-weight:700;font-size:13px;color:var(--muted)}.model-panel-tabs button.is-active{background:#e6f2f6;color:var(--navy)}.model-panel-tabs .icon-btn{margin-left:auto}.model-tree{display:flex;flex-direction:column;font-size:13px}.tree-row{display:flex;align-items:center;gap:4px;min-height:28px;border-radius:6px}.tree-row:hover{background:var(--bg)}.tree-caret{width:18px;height:18px;display:grid;place-items:center;border:0;background:none;color:var(--muted);padding:0;flex:none}.tree-eye{width:24px;height:24px;display:grid;place-items:center;border:0;background:none;color:var(--ink-2);border-radius:6px;padding:0;flex:none}.tree-eye.is-off{color:#b5c2ca}.tree-swatch{width:10px;height:10px;border-radius:3px;flex:none}.tree-label{flex:1;min-width:0;display:flex;justify-content:space-between;gap:6px;border:0;background:none;text-align:left;padding:3px 4px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px}.tree-row.is-leaf .tree-label{font-weight:500;color:var(--ink-2)}.tree-label small{color:var(--muted);font-weight:600}.tree-label.is-selected{background:#d8eef5;color:var(--navy)}.tree-more{font-size:12px;color:var(--muted);padding:4px 0 4px 64px}.nb-viewcube{position:absolute;right:18px;top:16px;width:110px;height:118px;z-index:6;-webkit-user-select:none;user-select:none}.nb-viewcube-home{position:absolute;left:0;top:0;width:28px;height:28px;border-radius:8px;border:0;background:#ffffffe6;color:var(--navy);display:grid;place-items:center;box-shadow:var(--shadow-sm)}.nb-viewcube-home:hover{background:#fff;color:var(--teal)}.nb-viewcube-stage{position:absolute;left:23px;top:18px;width:64px;height:64px;perspective:400px}.nb-viewcube-cube{position:absolute;left:32px;top:32px;width:0;height:0;transform-style:preserve-3d}.nb-viewcube-face{position:absolute;left:0;top:0;display:grid;place-items:center;backface-visibility:hidden;border:1px solid #9fb4c0;background:#f4f7f9f0;color:#33536a;font:800 9px/1 var(--font);letter-spacing:.06em;padding:0;transform-origin:0 0}.nb-viewcube-face:hover{background:#8fd7e3;color:var(--navy)}.nb-viewcube-corners{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:3px}.nb-viewcube-corners button{border:0;background:#ffffffd9;border-radius:5px;font-size:9.5px;font-weight:800;color:var(--muted);padding:2px 4px}.nb-viewcube-corners button:hover{color:var(--teal);background:#fff}.model-viewer .model-tools{display:none}.nb-vtoolbar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:2px;background:#1f2b33eb;border-radius:12px;padding:5px;box-shadow:0 6px 22px #0b274059}.nb-vbtn{width:38px;height:38px;border:0;border-radius:8px;background:none;color:#e7eef2;display:grid;place-items:center}.nb-vbtn:hover:not(:disabled){background:#ffffff1a}.nb-vbtn.is-active{background:#4c8fd6;color:#fff}.nb-vbtn:disabled{opacity:.35}.nb-vsep{width:1px;height:24px;background:#ffffff2e;margin:0 4px}.nb-vpop{position:absolute;bottom:54px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:12px;min-width:250px;display:flex;flex-direction:column;gap:8px;color:var(--ink)}.nb-vpop .tool-pop-grid{grid-template-columns:repeat(4,1fr)}.section-handle{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:#1688b8;border:3px solid #fff;box-shadow:0 2px 6px #00000059;cursor:grab;z-index:5;touch-action:none}.section-handle:active{cursor:grabbing;background:#8fd7e3}.measure-label{position:absolute;transform:translate(-50%,-130%);background:#d64545;color:#fff;font-weight:800;font-size:12px;padding:3px 8px;border-radius:99px;white-space:nowrap;box-shadow:0 2px 6px #0000004d;pointer-events:auto;z-index:4}.model-canvas-wrap.is-walking .model-canvas{cursor:move}.aps-viewer{position:absolute;inset:0}.aps-error{position:absolute;left:20px;right:20px;top:20px;z-index:5}@media(max-width:860px){.nb-vtoolbar{bottom:8px;max-width:calc(100% - 16px);overflow-x:auto}.nb-vbtn{width:34px;height:34px}.nb-viewcube{transform:scale(.85);transform-origin:top right;right:8px}.nb-vpop{position:fixed;left:8px!important;right:8px!important;bottom:64px}}.doc-logo{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.doc-logo-preview{width:220px;height:80px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:#fff;padding:10px}.doc-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.card .h3{font-size:1.05rem;margin-bottom:4px}label.btn{cursor:pointer}.report-logo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-logo .select-wrap{width:auto;min-width:200px}.doc-logo-preview.is-small{width:120px;height:44px;padding:6px}.pivot-mark{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:3px solid #4c8fd6;background:#ffffffb3;box-shadow:0 0 0 4px #4c8fd640;pointer-events:none;z-index:6;animation:pivotPulse 1.6s ease-out forwards}@keyframes pivotPulse{0%{transform:scale(1.6);opacity:0}20%{transform:scale(1);opacity:1}to{opacity:0}}.model-viewer{position:relative}.sync-plan{position:absolute;right:12px;bottom:76px;width:min(460px,42%);z-index:8;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow:hidden}.model-panel~.model-canvas-wrap .sync-plan{left:12px}.sync-plan-head{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line-2);color:var(--navy)}.sync-plan-head select{flex:1;min-width:0;border:0;font:inherit;font-weight:700;font-size:13px;color:var(--navy);background:none}.sync-plan-stage{position:relative;width:100%;cursor:crosshair;touch-action:none}.sync-plan-stage img{width:100%;height:100%;display:block;max-width:none;pointer-events:none}.sync-plan-stage svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.sync-cone{fill:#4c8fd64d;stroke:#4c8fd6;stroke-width:4}.sync-eye{fill:#4c8fd6;stroke:#fff;stroke-width:5}.sync-plan-hint{font-size:11.5px;color:var(--muted);padding:5px 10px}@media(max-width:860px){.sync-plan{width:calc(100% - 24px);bottom:64px}}.aps-viewer .minimap3D canvas{filter:url(#nb-ink)}.aps-viewer .minimap3D .minimapScrollArea{background:#fff}.aps-viewer .minimap3D{box-shadow:0 6px 20px #00000059;border-radius:6px;overflow:hidden}@media(max-width:640px){.model-viewer .viewer-title .pill{display:none}.model-viewer .viewer-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-viewer .viewer-toolbar .btn{padding-left:10px;padding-right:10px}.model-viewer .viewer-toolbar .btn>span{display:none}}.fed-row.is-aps{grid-template-columns:1fr}.multi-rvt{border:1px solid var(--line);border-radius:12px;overflow:hidden}.multi-rvt-head,.multi-rvt-row{display:grid;grid-template-columns:44px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;padding:8px 12px}.multi-rvt-head{background:#f4f7f9;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.multi-rvt-row+.multi-rvt-row{border-top:1px solid var(--line-2)}.multi-rvt-row.is-host{background:#eef7fb}.multi-rvt-row input[type=radio]{width:20px;height:20px;justify-self:center;accent-color:var(--blue, #2780c9)}.multi-rvt-file{display:flex;flex-direction:column;min-width:0;font-weight:700;font-size:13.5px;overflow-wrap:anywhere}.multi-rvt-file small{font-weight:500;color:var(--muted)}.multi-rvt-file .icon{display:none}@media(max-width:640px){.multi-rvt-head{display:none}.multi-rvt-row{grid-template-columns:32px minmax(0,1fr)}.multi-rvt-row>.input,.multi-rvt-row>.select-wrap{grid-column:2}}.fed-wait{max-width:760px}.fed-wait-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2)}.fed-wait-row .spacer{flex:1}.fed-wait-row .nb-spinner{width:16px;height:16px;border-width:2px}.multi-rvt.no-host input[type=radio]{opacity:.3}.print-root{background:#dfe7eb;min-height:100vh;padding-bottom:40px}.print-toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--header);color:#d8e4ea;font-size:14px}.print-page{width:210mm;min-height:297mm;margin:24px auto;background:#fff;padding:16mm 15mm;box-shadow:var(--shadow-lg);font-size:10.5pt;color:var(--ink)}.print-header{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;border-bottom:3px solid var(--navy);padding-bottom:14px;margin-bottom:14px}.print-header img{height:16px;width:auto;flex:none;order:2}.print-eyebrow{font-size:8pt;letter-spacing:.2em;font-weight:700;color:var(--teal)}.print-header h1{font-size:20pt;letter-spacing:-.03em;margin-top:4px}.print-sub{color:var(--muted);margin-top:4px}.print-info{display:flex;gap:28px;flex-wrap:wrap;margin:0 0 14px}.print-info dt{font-size:7.5pt;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}.print-info dd{margin:2px 0 0;font-weight:700}.print-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-bottom:16px}.print-kpis>div{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;font-size:8.5pt;color:var(--muted);position:relative}.print-kpis>div>span{position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%}.print-kpis strong{font-size:14pt;color:var(--ink);margin-top:2px}.print-h2{font-size:11pt;text-transform:uppercase;letter-spacing:.12em;color:var(--navy);margin:18px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line)}.print-table{width:100%;border-collapse:collapse;font-size:9pt}.print-table th{background:var(--navy);color:#fff;text-align:left;padding:6px 8px;font-size:8pt;letter-spacing:.06em;text-transform:uppercase}.print-table td{padding:6px 8px;border-bottom:1px solid var(--line-2);vertical-align:top}.print-table tr:nth-child(2n) td{background:#f7fafb}.print-table small{display:block;color:var(--muted);font-size:8pt}.print-status{display:inline-flex;align-items:center;gap:5px;font-weight:700;white-space:nowrap}.print-status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}.print-cards{display:flex;flex-direction:column;gap:10px}.print-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;break-inside:avoid;display:grid;grid-template-columns:1fr auto}.print-card header{grid-column:1 / -1;display:flex;justify-content:space-between;gap:10px;padding:7px 10px;background:#f1f6f8;border-bottom:1px solid var(--line)}.print-card-body{padding:8px 10px}.print-card-body dl{display:grid;grid-template-columns:90px 1fr;gap:2px 8px;margin:0;font-size:9pt}.print-card-body dt{color:var(--muted)}.print-card-body dd{margin:0}.print-desc{margin-top:6px;font-size:9pt;white-space:pre-wrap;color:var(--ink-2)}.print-card-media{display:flex;gap:8px;padding:8px 10px 8px 0;align-items:flex-start}.print-plan-crop{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#fff}.print-plan-crop img{position:absolute;max-width:none}.print-plan-crop small{position:absolute;left:4px;bottom:4px;background:#0b2740d9;color:#fff;font-size:7pt;padding:1px 6px;border-radius:99px}.print-pin{position:absolute;width:14px;height:14px;border-radius:50%;border:2.5px solid #fff;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px #0b274099}.print-photo{width:150px;height:150px;object-fit:cover;border-radius:6px}.print-section p{font-size:10pt}.print-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.print-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;break-inside:avoid}.print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;break-inside:avoid}.print-signatures>div{border:1px solid var(--line);border-radius:8px;height:80px;padding:8px 10px;display:flex;flex-direction:column;font-size:8.5pt;color:var(--muted)}.print-signatures strong{color:var(--ink);font-size:10pt;margin-top:2px}.print-form td:first-child{width:72%}.print-form-section th{background:#e8f1f5!important;color:var(--navy)!important}.print-form tr.is-nc td{background:#fdeeee!important}.print-answer{font-weight:700}.print-list{margin:0;padding-left:18px}.print-footer{margin-top:24px;padding-top:8px;border-top:1px solid var(--line);font-size:7.5pt;color:var(--muted);text-align:center}@media print{@page{size:A4;margin:12mm}body{background:#fff}.no-print,.print-toolbar{display:none!important}.print-root{background:#fff;padding:0}.print-page{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.page-break{break-before:page}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media(max-width:860px){.print-page{width:100%;margin:0;padding:18px 14px;min-height:0}.print-toolbar{flex-direction:column;align-items:stretch}}.print-header img.is-custom{height:40px;max-width:180px;object-fit:contain}
