:root{--ink:#111827;--ink-soft:#475467;--muted:#667085;--line:#e4e7ec;--line-strong:#d0d5dd;--paper:#ffffff;--canvas:#f7f9fc;--sidebar:#0b2545;--sidebar-soft:#12345b;--accent:#d51f2a;--accent-dark:#b51620;--accent-soft:#fdecef;--green:#16803a;--green-soft:#e8f5ec;--blue:#0b2545;--blue-soft:#eaf0f7;--amber:#b86b00;--amber-soft:#fff3dd;--shadow:0 1px 2px rgba(11,37,69,.04),0 8px 26px rgba(11,37,69,.06)}*{box-sizing:border-box}html{background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}.app-frame{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);color:#eaf1ef;display:flex;flex-direction:column;min-height:100vh;padding:28px 18px 20px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{align-items:center;display:flex;min-height:54px;padding:0 8px 25px}.brand-logo{height:auto;width:145px}.brand-symbol{align-items:center;background:var(--accent);border-radius:10px;color:white;display:inline-flex;flex:0 0 auto;height:38px;justify-content:center;width:38px}.brand>span:last-child,.company-switcher>span:nth-child(2),.user-chip>span:last-child{display:grid;grid-gap:2px;gap:2px}.brand strong{font-size:19px;letter-spacing:-.02em}.brand small,.company-switcher small,.user-chip small{color:#b7c3d4;font-size:11px}.company-switcher{align-items:center;background:var(--sidebar-soft);border:1px solid #25486f;border-radius:10px;display:grid;grid-gap:9px;gap:9px;grid-template-columns:31px 1fr auto;padding:10px}.company-switcher strong{font-size:12px;font-weight:600}.company-mark{align-items:center;background:#27496f;border-radius:7px;display:flex;font-size:11px;font-weight:700;height:31px;justify-content:center}.main-nav{display:grid;grid-gap:4px;gap:4px;margin-top:28px}.nav-caption{color:#8ea1b8;font-size:10px;font-weight:700;letter-spacing:.12em;padding:0 11px 7px;text-transform:uppercase}.nav-caption.spaced{margin-top:22px}.nav-link{align-items:center;border-radius:8px;color:#bac5d3;display:flex;font-size:13px;gap:11px;padding:10px 11px;transition:background .16s ease,color .16s ease}.nav-link:hover{background:#102f55;color:white}.nav-link.active{background:#173b63;color:white;font-weight:600}.nav-link.active svg{color:#ff7a83}.sidebar-footer{display:grid;grid-gap:15px;gap:15px;margin-top:auto}.sidebar-footer>a{color:#9eadc0;font-size:12px;gap:8px;padding:0 7px}.sidebar-footer>a,.user-chip{align-items:center;display:flex}.user-chip{border-top:1px solid #214568;gap:9px;padding:16px 7px 0}.user-chip strong{font-size:12px}.mobile-brand{display:none}.main-content{min-width:0;padding:38px 42px 54px}.page-stack{display:grid;grid-gap:24px;gap:24px;margin:0 auto;max-width:1420px}.page-header{align-items:flex-end;display:flex;gap:24px;justify-content:space-between}.page-header h1{font-size:clamp(27px,3vw,38px);letter-spacing:-.035em;line-height:1.05;margin:7px 0 8px}.page-header p,.panel-heading p{color:var(--ink-soft);font-size:13px;margin:0}.eyebrow{color:var(--accent-dark);font-size:10px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.button{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:8px;justify-content:center;min-height:38px;padding:0 15px;transition:transform .12s ease,background .12s ease,border-color .12s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--accent);color:white}.button-primary:hover{background:var(--accent-dark)}.button-secondary{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.button-secondary:hover{border-color:#9caeaa}.button-ghost{background:transparent;color:var(--ink-soft)}.button-danger{background:#a8372b;color:white}.button:disabled{cursor:not-allowed;opacity:.45;transform:none}.metric-strip{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.metric{align-items:center;border-left:1px solid var(--line);display:flex;gap:12px;padding:17px 19px}.metric:first-child{border-left:0}.metric-icon{align-items:center;background:#edf2f1;border-radius:8px;color:var(--green);display:flex;height:37px;justify-content:center;width:37px}.metric>span:last-child{display:grid;grid-gap:2px;gap:2px}.metric small{color:var(--muted);font-size:10px}.metric strong{font-size:21px;letter-spacing:-.03em}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.panel-heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;padding:20px 22px 16px}.panel-heading h2{font-size:16px;letter-spacing:-.015em;margin:0 0 5px}.update-note{color:var(--muted);font-size:10px}.data-table{overflow:hidden}.table-row{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:16px;gap:16px;min-height:70px;padding:11px 22px}.project-table .table-row{grid-template-columns:minmax(250px,2.2fr) minmax(105px,.7fr) minmax(96px,.65fr) minmax(100px,.7fr) minmax(110px,.72fr) minmax(110px,.72fr) 24px}.table-head{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.08em;min-height:34px;padding-bottom:8px;padding-top:8px;text-transform:uppercase}.project-row{transition:background .14s ease}.project-row:hover{background:#f8faf9}.project-cell{align-items:center;display:flex;gap:11px;min-width:0}.number-cell,.project-cell>span:last-child{display:grid;grid-gap:3px;gap:3px;min-width:0}.project-cell strong{font-size:13px}.activity-item small,.number-cell small,.project-cell small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-monogram{align-items:center;background:#eef2f7;border-radius:8px;color:var(--blue);display:flex;flex:0 0 auto;font-size:10px;font-weight:750;height:37px;justify-content:center;width:37px}.number-cell strong{font-size:14px}.label-number{background:var(--canvas);border:1px solid var(--line);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;justify-self:start;padding:5px 7px}.date-cell{color:var(--ink-soft);font-size:11px}.row-arrow{color:var(--muted);display:flex;justify-content:flex-end}.avatar-stack{display:flex;padding-left:7px}.avatar{align-items:center;background:#dfe9e6;border:2px solid var(--paper);border-radius:50%;color:#294d47;display:inline-flex;flex:0 0 auto;font-size:8px;font-weight:750;height:27px;justify-content:center;margin-left:-7px;width:27px}.avatar-light{background:#dce8e5;border:0;height:30px;margin:0;width:30px}.avatar-more{background:var(--sidebar-soft);color:white}.status-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:650;gap:6px;padding:5px 8px;width:max-content}.status-dot{background:currentColor;border-radius:50%;height:5px;width:5px}.status-aktiv,.status-godkendt{background:var(--green-soft);color:var(--green)}.status-kladde,.status-opstart{background:var(--blue-soft);color:var(--blue)}.status-aflevering,.status-klar-til-kontrol{background:var(--amber-soft);color:var(--amber)}.dashboard-lower{display:grid;grid-gap:20px;gap:20px;grid-template-columns:1.25fr .75fr}.activity-list{display:grid;padding-bottom:8px}.activity-item{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:11px;gap:11px;grid-template-columns:29px 1fr auto;padding:12px 22px}.activity-item>span:nth-child(2){display:grid;grid-gap:3px;gap:3px}.activity-item strong{font-size:11px}.activity-mark{align-items:center;background:var(--canvas);border-radius:7px;color:var(--green);display:flex;height:29px;justify-content:center;width:29px}.handover-callout{align-content:start;background:var(--sidebar);color:white;display:grid;grid-gap:15px;gap:15px;overflow:hidden;padding:22px;position:relative}.handover-callout:after{border:34px solid rgba(255,255,255,.035);border-radius:50%;content:"";height:120px;position:absolute;right:-45px;top:-55px;width:120px}.handover-callout .eyebrow{color:#ff8b93}.handover-callout h2{font-size:18px;margin:6px 0 8px}.handover-callout p{color:#bac5d3;font-size:11px;line-height:1.65;margin:0}.handover-callout .button{justify-self:start;margin-top:auto;position:relative;z-index:1}.callout-icon{align-items:center;background:#173b63;border-radius:9px;color:#ff8b93;display:flex;height:44px;justify-content:center;width:44px}@media (max-width:1120px){.main-content{padding:30px 26px 45px}.metric-strip{grid-template-columns:repeat(2,1fr)}.metric:nth-child(3){border-left:0}.metric:nth-child(3),.metric:nth-child(4){border-top:1px solid var(--line)}.project-table .table-row{grid-template-columns:minmax(220px,2fr) 100px 85px 95px 100px 20px}.project-table .table-row>:nth-child(6){display:none}}@media (max-width:800px){.app-frame{display:block}.sidebar{display:none}.main-content{padding:20px 16px 40px}.mobile-brand{align-items:center;display:flex;gap:8px;margin-bottom:24px}.mobile-brand .brand-symbol{height:31px;width:31px}.dashboard-lower{grid-template-columns:1fr}.project-table .table-head{display:none}.project-table .table-row{grid-template-columns:1fr auto;gap:8px;padding:14px 16px}.project-table .table-row>:not(:first-child):not(:nth-child(2)){display:none}}.catalog-notice{align-items:center;background:#eaf4f1;border:1px solid #cde1db;border-radius:10px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:35px 1fr auto;padding:12px 15px}.catalog-notice>span:first-child{align-items:center;background:var(--paper);border-radius:7px;color:var(--green);display:flex;height:35px;justify-content:center;width:35px}.catalog-notice div{display:grid;grid-gap:3px;gap:3px}.catalog-notice strong{font-size:10px}.catalog-notice p{color:var(--ink-soft);font-size:9px;margin:0}.catalog-layout{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr)}.catalog-list-panel,.product-detail-panel{overflow:hidden}.catalog-search{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr auto;padding:16px}.catalog-search>span{color:var(--muted);font-size:9px}.catalog-products{display:grid}.catalog-product{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;display:grid;grid-gap:11px;gap:11px;grid-template-columns:40px 1fr auto;padding:13px 16px;text-align:left}.catalog-product.selected,.catalog-product:hover{background:#f5f8f7}.catalog-product.selected{box-shadow:inset 3px 0 var(--accent)}.catalog-product>span:nth-child(2){display:grid;grid-gap:4px;gap:4px}.catalog-product strong{font-size:11px}.catalog-product small{color:var(--muted);font-size:8px}.catalog-product>svg{color:var(--green)}.catalog-product-icon{align-items:center;background:#e8f0ee;border-radius:8px;color:var(--green);display:flex;height:40px;justify-content:center;width:40px}.catalog-product-icon.large{height:48px;width:48px}.use-list{display:flex;flex-wrap:wrap;gap:4px}.use-list em{background:var(--canvas);border-radius:4px;color:var(--ink-soft);font-size:7px;font-style:normal;padding:3px 4px}.product-detail-panel{align-content:start;display:grid;padding:23px}.product-detail-head{align-items:center;display:flex;gap:13px}.product-detail-head>div{display:grid;grid-gap:3px;gap:3px}.product-detail-head h2{font-size:19px;margin:1px 0}.product-detail-head p{color:var(--muted);font-size:9px;margin:0}.product-data-grid{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0;padding:14px 0}.product-data-grid>div{border-left:1px solid var(--line);display:grid;grid-gap:4px;gap:4px;padding:0 13px}.product-data-grid>div:first-child{border-left:0;padding-left:0}.product-data-grid small{color:var(--muted);font-size:8px}.product-data-grid strong{font-size:9px}.detail-section{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.detail-section h3{font-size:10px;margin:0}.document-list{border:1px solid var(--line);border-radius:8px;display:grid;overflow:hidden}.document-list button{align-items:center;background:var(--paper);border:0;border-top:1px solid var(--line);color:var(--ink);cursor:pointer;display:grid;grid-gap:9px;gap:9px;grid-template-columns:20px 1fr auto;padding:9px 11px;text-align:left}.document-list button:first-child{border-top:0}.document-list button:hover{background:var(--canvas)}.document-list button>span:nth-child(2){display:grid;grid-gap:2px;gap:2px}.document-list strong{font-size:9px}.document-list button>span:last-child,.document-list small{color:var(--muted);font-size:7px}.application-list{display:flex;flex-wrap:wrap;gap:7px}.application-list span{align-items:center;background:var(--green-soft);border-radius:6px;color:var(--green);display:inline-flex;font-size:9px;gap:5px;padding:6px 8px}.product-safety-note{align-items:flex-start;background:var(--amber-soft);color:var(--amber);display:flex;gap:9px;margin:1px 0 17px;padding:11px}.product-safety-note p{color:#654818;font-size:8px;line-height:1.55;margin:0}.product-detail-panel>.button{justify-self:start}.handover-page .page-header{align-items:center}.handover-actions{flex-wrap:wrap;gap:7px}.generated-note,.handover-actions{align-items:center;display:flex;justify-content:flex-end}.generated-note{color:var(--green);flex-basis:100%;font-size:8px;gap:5px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.handover-status{display:grid;grid-gap:0;gap:0;grid-template-columns:.8fr 1.2fr;overflow:hidden}.handover-score{align-items:center;background:var(--sidebar);color:white;display:flex;gap:17px;padding:22px}.score-ring{align-items:baseline;border-left:5px solid #4c6280;border-bottom:5px solid #4c6280;border-right:5px solid #4c6280;border-right-color:var(--accent);border-top:5px solid #4c6280;border-top-color:var(--accent);border-radius:50%;display:flex;flex:0 0 auto;font-size:21px;font-weight:750;height:72px;justify-content:center;transform:rotate(-25deg);width:72px}.score-ring>*{transform:rotate(25deg)}.score-ring small{font-size:9px}.handover-score>div{display:grid;grid-gap:4px;gap:4px}.handover-score h2{font-size:15px;margin:0}.handover-score p{color:#9eb2ae;font-size:9px;line-height:1.5;margin:0}.handover-score .eyebrow{color:#ff8b93}.handover-checks{display:grid;grid-template-columns:repeat(3,1fr);padding:12px 19px}.handover-checks>div{align-items:center;display:flex;gap:8px;padding:8px}.handover-checks>div>span:last-child{display:grid;grid-gap:2px;gap:2px}.handover-checks strong{font-size:8px}.handover-checks small{color:var(--muted);font-size:7px}.check-icon{align-items:center;border-radius:50%;display:flex;height:25px;justify-content:center;width:25px}.check-icon.ok{background:var(--green-soft);color:var(--green)}.check-icon.review{background:var(--amber-soft);color:var(--amber)}.handover-workspace{align-items:start;display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(260px,.6fr) minmax(500px,1.4fr)}.report-structure{overflow:hidden}.structure-list{display:grid}.structure-list button{align-items:center;background:transparent;border:0;border-top:1px solid var(--line);color:var(--ink);cursor:pointer;display:flex;font-size:9px;justify-content:space-between;padding:11px 17px}.structure-list button.active{background:#f2f7f5;box-shadow:inset 3px 0 var(--accent);color:var(--green)}.structure-list button>span:first-child{align-items:center;display:flex;gap:8px}.structure-list button>span:last-child{color:var(--muted);font-size:7px}.report-options{border-top:1px solid var(--line);display:grid;grid-gap:9px;gap:9px;padding:14px 17px}.report-options label{align-items:center;color:var(--ink-soft);display:flex;font-size:8px;gap:7px}.report-preview-area{background:#e9eeec;border:1px solid var(--line-strong);border-radius:11px;display:grid;justify-items:center;min-width:0;padding:0 26px 32px}.preview-toolbar{align-items:center;color:var(--muted);display:flex;font-size:8px;justify-content:space-between;padding:10px 0;width:min(100%,600px)}.report-sheet{aspect-ratio:1/1.414;background:white;box-shadow:0 10px 30px rgba(24,40,37,.13);color:#182321;display:flex;flex-direction:column;max-width:600px;overflow:hidden;padding:38px 42px 27px;width:100%}.report-brand{gap:10px}.report-brand,.report-logo{align-items:center;display:flex}.report-logo{background:#142521;border-radius:4px;color:white;font-size:11px;font-weight:750;height:32px;justify-content:center;width:32px}.report-brand>span:last-child{display:grid;grid-gap:2px;gap:2px}.report-brand strong{font-size:9px}.report-brand small{color:#76817f;font-size:6px}.report-title{margin-top:60px}.report-title>span{color:var(--accent);font-size:7px;font-weight:750;letter-spacing:.16em}.report-title h2{font-size:22px;font-weight:500;letter-spacing:-.03em;margin:8px 0 12px}.report-title h1{font-size:17px;margin:14px 0 5px}.report-title p{color:#697573;font-size:8px;margin:0}.report-rule{background:var(--accent);height:2px;width:39px}.report-cover-graphic{background:#eef2f1;height:150px;margin:26px -42px 24px;overflow:hidden;position:relative}.report-cover-graphic span:not(.graphic-label){background:#8f9b98;height:2px;position:absolute}.report-cover-graphic span:first-child{left:8%;top:30%;width:78%}.report-cover-graphic span:nth-child(2){left:27%;top:63%;width:65%}.report-cover-graphic span:nth-child(3){height:70%;left:43%;top:13%;width:2px}.report-cover-graphic .graphic-label{align-items:center;background:var(--accent);border:3px solid white;border-radius:50%;color:white;display:flex;font-size:6px;height:35px;justify-content:center;left:40%;position:absolute;top:21%;width:35px}.report-meta{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr 1fr;margin:0}.report-meta div{display:grid;grid-gap:3px;gap:3px}.report-meta dt{color:#8b9593;font-size:6px;text-transform:uppercase}.report-meta dd{font-size:8px;font-weight:650;margin:0}.report-sheet footer{border-top:1px solid #dce2e0;color:#7e8987;display:flex;font-size:6px;justify-content:space-between;margin-top:auto;padding-top:10px}@media (max-width:1050px){.catalog-layout,.handover-status,.handover-workspace{grid-template-columns:1fr}}@media (max-width:650px){.catalog-notice{grid-template-columns:35px 1fr}.catalog-notice>span:last-child{grid-column:2}.handover-checks{grid-template-columns:1fr 1fr}.report-preview-area{padding-left:10px;padding-right:10px}.report-sheet{padding:25px 27px 20px}.report-cover-graphic{margin-left:-27px;margin-right:-27px}}@media print{.breadcrumb,.handover-status,.mobile-brand,.page-header,.preview-toolbar,.report-structure,.sidebar{display:none!important}.app-frame,.handover-workspace{display:block}.main-content,.report-preview-area{background:white;border:0;padding:0}.report-sheet{box-shadow:none;margin:0 auto;max-width:none;width:210mm}}.report-project-list{display:grid}.report-project-list>a{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:38px 1fr auto 20px;padding:13px 21px}.report-project-list>a:hover{background:var(--canvas)}.report-project-icon{align-items:center;background:#eaf2ef;border-radius:8px;color:var(--green);display:flex;height:38px;justify-content:center;width:38px}.report-project-list>a>span:nth-child(2){display:grid;grid-gap:3px;gap:3px}.report-project-list strong{font-size:11px}.report-project-list small{color:var(--muted);font-size:8px}.report-state{background:var(--canvas);border-radius:5px;color:var(--ink-soft);font-size:8px;padding:5px 7px}.archive-note{align-items:center;background:#eaf4f1;border:1px solid #cde1db;border-radius:10px;color:var(--green);display:flex;gap:12px;padding:15px}.archive-note>div{display:grid;grid-gap:3px;gap:3px}.archive-note strong{font-size:10px}.archive-note p{color:var(--ink-soft);font-size:9px;margin:0}.member-row,.member-table{display:grid}.member-row{align-items:center;border-top:1px solid var(--line);font-size:10px;grid-gap:16px;gap:16px;grid-template-columns:minmax(230px,1.4fr) 130px 100px 120px;padding:12px 21px}.member-head{color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.member-row .project-cell small{align-items:center;display:flex;gap:4px}.activity-status,.role-cell{align-items:center;color:var(--ink-soft);display:flex;gap:6px}.activity-status{color:var(--muted)}.empty-panel{flex-direction:column;min-height:330px;padding:30px;text-align:center}.empty-panel,.empty-panel>span{align-items:center;display:flex;justify-content:center}.empty-panel>span{background:#e9f0ee;border-radius:50%;color:var(--green);height:58px;width:58px}.empty-panel h2{font-size:16px;margin:14px 0 6px}.empty-panel p{color:var(--muted);font-size:10px;margin:0 0 16px}.settings-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(3,1fr)}.settings-section{align-content:start;display:grid;grid-gap:14px;gap:14px;padding:21px}.settings-section h2{border-bottom:1px solid var(--line);font-size:14px;margin:0;padding-bottom:12px}.settings-section label{color:var(--ink-soft);display:grid;font-size:9px;grid-gap:6px;gap:6px}.settings-section input:not([type=checkbox]),.settings-section select{background:var(--paper);border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);min-height:37px;padding:0 10px}.settings-section input[type=file]{font-size:8px;padding-top:9px}.settings-section .check-label{align-items:center;display:flex;gap:7px}.help-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(3,1fr)}.help-card{display:grid;grid-gap:9px;gap:9px;justify-items:start;padding:22px}.help-card>svg{color:var(--accent)}.help-card h2{font-size:13px;margin:0}.help-card p{color:var(--muted);font-size:9px;line-height:1.5;margin:0}@media (max-width:900px){.help-grid,.settings-grid{grid-template-columns:1fr}.member-row{grid-template-columns:1fr 100px}.member-row>:nth-child(3),.member-row>:nth-child(4){display:none}}.login-main,.login-page{min-height:100vh}.login-page{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr)}.login-story{background:var(--sidebar);color:white;display:flex;flex-direction:column;overflow:hidden;padding:45px 54px;position:relative}.login-story:after{border:70px solid rgba(255,255,255,.035);border-radius:50%;content:"";height:310px;position:absolute;right:-160px;top:-170px;width:310px}.login-brand{align-items:center;display:flex;gap:11px;position:relative;z-index:1}.login-brand img{height:auto;width:165px}.login-message{margin:auto 0;max-width:510px;position:relative;z-index:1}.login-message .eyebrow{color:#ff8b93}.login-message h1{font-size:clamp(32px,4vw,54px);letter-spacing:-.045em;line-height:1.02;margin:15px 0 18px}.login-message p{color:#b7c3d4;font-size:13px;line-height:1.65;margin:0;max-width:460px}.login-message ul{display:grid;grid-gap:11px;gap:11px;list-style:none;margin:25px 0 0;padding:0}.login-message li{align-items:center;color:#e0e6ef;display:flex;font-size:11px;gap:9px}.login-message li svg{color:#43bc6d}.login-quote{color:#91a2b8;font-size:9px;position:relative;z-index:1}.login-panel{align-items:center;background:var(--canvas);display:flex;justify-content:center;padding:48px}.login-box{max-width:390px;width:100%}.login-box h2{font-size:28px;letter-spacing:-.035em;margin:8px 0}.login-box>p{color:var(--muted);font-size:10px;line-height:1.5;margin:0 0 25px}.login-form{display:grid;grid-gap:15px;gap:15px}.login-form>label{color:var(--ink-soft);display:grid;font-size:9px;font-weight:650;grid-gap:6px;gap:6px}.login-input{align-items:center;background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;color:var(--muted);display:grid;grid-gap:8px;gap:8px;grid-template-columns:18px 1fr auto;min-height:42px;padding:0 11px}.login-input:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(38,116,94,.1)}.login-input input{background:transparent;border:0;color:var(--ink);font-size:11px;height:40px;outline:none;width:100%}.login-input button{background:none;border:0;color:var(--muted);cursor:pointer;display:flex;padding:3px}.login-form-row{justify-content:space-between}.login-form-row,.remember-me{align-items:center;display:flex}.remember-me{color:var(--ink-soft);font-size:9px;gap:6px}.forgot-password{background:none;border:0;color:var(--green);cursor:pointer;font-size:9px;font-weight:650}.login-error{background:#fff0ed;color:#a33725;font-size:9px;margin:0;padding:8px 10px}.login-submit{width:100%}.demo-divider{align-items:center;color:var(--muted);display:flex;font-size:8px;gap:9px}.demo-divider:after,.demo-divider:before{background:var(--line);content:"";flex:1 1;height:1px}.login-help{color:var(--muted);display:block;font-size:8px;line-height:1.5;margin-top:20px;text-align:center}@media (max-width:820px){.login-page{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh;padding:30px 20px}}.drawing-page{max-width:1560px}.drawing-workspace{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:285px minmax(520px,1fr)}.drawing-workspace:has(.marker-form){grid-template-columns:260px minmax(480px,1fr) 270px}.drawing-sidebar,.drawing-viewer-panel,.marker-form{overflow:hidden}.drawing-sidebar-head{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:17px}.drawing-sidebar-head>div{display:grid;grid-gap:3px;gap:3px}.drawing-sidebar-head h2,.drawing-toolbar h2,.marker-form h2{font-size:14px;margin:0}.drawing-sidebar-head p,.drawing-toolbar p{color:var(--muted);font-size:8px;margin:0}.upload-control{cursor:pointer;min-height:33px;padding:0 10px}.upload-control input{display:none}.drawing-list{border-top:1px solid var(--line);display:grid}.drawing-list-item{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;display:grid;grid-gap:9px;gap:9px;grid-template-columns:35px 1fr;padding:11px 14px;text-align:left}.drawing-list-item.active,.drawing-list-item:hover{background:#f3f6fa}.drawing-list-item.active{box-shadow:inset 3px 0 var(--accent)}.drawing-list-item>span:last-child{display:grid;grid-gap:3px;gap:3px;min-width:0}.drawing-list-item strong{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-list-item small{color:var(--muted);font-size:7px}.drawing-file-icon{background:var(--blue-soft);border-radius:7px;height:35px;justify-content:center;width:35px}.drawing-access,.drawing-file-icon{align-items:center;color:var(--blue);display:flex}.drawing-access{background:var(--canvas);gap:8px;margin-top:auto;padding:12px 15px}.drawing-access>span{display:grid;grid-gap:2px;gap:2px}.drawing-access strong{font-size:8px}.drawing-access small{color:var(--muted);font-size:7px}.drawing-toolbar{align-items:center;display:flex;gap:18px;justify-content:space-between;padding:15px 17px}.drawing-toolbar>div{display:grid;grid-gap:3px;gap:3px}.drawing-stage{background:#edf1f6;border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding:19px}.drawing-canvas{aspect-ratio:1.73/1;background-color:white;background-image:linear-gradient(#edf0f4 1px,transparent 0),linear-gradient(90deg,#edf0f4 1px,transparent 0);background-size:23px 23px;border:0;box-shadow:0 5px 20px rgba(11,37,69,.09);cursor:default;display:block;overflow:hidden;padding:0;position:relative;width:100%}.drawing-stage.is-placing .drawing-canvas{cursor:crosshair}.drawing-canvas>svg{height:100%;inset:0;position:absolute;width:100%}.drawing-canvas path{fill:none;stroke:#7c8798;stroke-linecap:square;stroke-width:5}.drawing-canvas path.drawing-detail{stroke:#b2bac6;stroke-width:2}.firestop-marker{align-items:center;background:var(--accent);border:3px solid white;border-radius:50%;box-shadow:0 2px 7px rgba(11,37,69,.2);color:white;display:flex;font-size:7px;font-weight:750;height:30px;justify-content:center;position:absolute;transform:translate(-50%,-50%);width:30px;z-index:2}.firestop-marker.draft{animation:marker-pulse 1.2s ease-in-out infinite;background:var(--blue)}@keyframes marker-pulse{50%{box-shadow:0 0 0 8px rgba(11,37,69,.14)}}.crosshair-hint{align-items:center;background:var(--sidebar);border-radius:7px;color:white;display:flex;font-size:9px;gap:7px;left:50%;padding:8px 11px;pointer-events:none;position:absolute;top:18px;transform:translateX(-50%);z-index:3}.drawing-footer{align-items:center;color:var(--muted);display:flex;font-size:8px;justify-content:space-between;padding:10px 17px}.drawing-footer span:first-child{align-items:center;color:var(--green);display:flex;gap:5px}.marker-form{align-content:start;display:grid;grid-gap:13px;gap:13px;padding:17px}.marker-form-head{align-items:center;display:flex;justify-content:space-between}.marker-form label,.marker-form-head>div{display:grid;grid-gap:5px;gap:5px}.marker-form label{color:var(--ink-soft);font-size:8px;font-weight:650}.marker-form input,.marker-form select{background:var(--paper);border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);font-size:9px;min-height:36px;padding:0 9px;width:100%}.marker-summary{align-items:center;background:var(--green-soft);color:var(--green);display:flex;gap:8px;padding:9px}.marker-summary>span{display:grid;grid-gap:2px;gap:2px}.marker-summary strong{font-size:8px}.marker-summary small{color:var(--ink-soft);font-size:7px}@media (max-width:1180px){.drawing-workspace,.drawing-workspace:has(.marker-form){grid-template-columns:250px minmax(460px,1fr)}.marker-form{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.marker-form-head,.marker-form>.button,.marker-summary{grid-column:1/-1}.marker-form>.button{justify-self:end}}@media (max-width:800px){.drawing-workspace,.drawing-workspace:has(.marker-form){grid-template-columns:1fr}.marker-form{grid-column:auto;grid-template-columns:1fr}.drawing-toolbar{align-items:flex-start;flex-direction:column}}@media (max-width:520px){.page-header{align-items:flex-start;flex-direction:column}.metric-strip{grid-template-columns:1fr}.metric{border-left:0;border-top:1px solid var(--line)}.metric:first-child{border-top:0}.panel-heading{flex-direction:column}}.breadcrumb{color:var(--muted);font-size:11px;gap:7px}.breadcrumb,.breadcrumb a{align-items:center;display:flex}.breadcrumb a{gap:6px}.breadcrumb a:hover{color:var(--ink)}.project-header{align-items:center}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.icon-button,.mini-action{align-items:center;background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink-soft);cursor:pointer;display:flex;height:38px;justify-content:center;width:38px}.mini-action{height:28px;width:28px}.project-tabs{border-bottom:1px solid var(--line-strong);display:flex;gap:29px;overflow-x:auto}.project-tabs a{border-bottom:2px solid transparent;color:var(--muted);font-size:11px;font-weight:650;padding:0 1px 12px;white-space:nowrap}.project-tabs a.active{border-color:var(--accent);color:var(--ink)}.project-tabs a span{background:#e8edec;border-radius:999px;font-size:9px;margin-left:4px;padding:2px 5px}.project-overview-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(270px,.72fr) minmax(340px,1.25fr) minmax(250px,.8fr)}.number-reservation{background:var(--sidebar);border-radius:12px;box-shadow:var(--shadow);color:white;display:grid;overflow:hidden}.number-live{align-items:center;background:#14365d;color:#b8c7d8;display:flex;font-size:9px;gap:6px;padding:9px 17px}.number-live svg{color:#43bc6d}.number-live small{color:#8298b1;margin-left:auto}.number-main{align-items:flex-start;display:flex;gap:13px;padding:19px 18px 14px}.number-main>div{display:grid;grid-gap:3px;gap:3px}.number-main strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:27px;letter-spacing:-.03em}.number-main p{color:#a8b6c8;font-size:9px;line-height:1.45;margin:2px 0 0}.number-icon{align-items:center;background:#1b416a;border-radius:8px;color:#ff7a83;display:flex;height:40px;justify-content:center;width:40px}.field-label{color:#aebed0;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.number-reservation>.button{margin:0 18px 13px}.button-wide{width:calc(100% - 36px)}.number-foot{align-items:center;border-top:1px solid #214568;color:#8298b1;display:flex;font-size:8px;gap:6px;padding:9px 18px}.reservation-confirm{align-items:center;background:#14365d;display:flex;gap:10px;justify-content:space-between;margin:0 14px 13px;padding:9px}.reservation-confirm>span{align-items:center;display:flex;gap:8px}.reservation-confirm>span>span{display:grid}.reservation-confirm small{color:#aebed0;font-size:8px}.reservation-confirm strong{font-family:ui-monospace,monospace;font-size:12px}.form-error{color:#ff9d87;font-size:9px;margin:0 18px 10px}.compact-panel{display:flex;flex-direction:column;overflow:hidden}.compact-heading{align-items:center;display:flex;font-size:11px;font-weight:700;justify-content:space-between;padding:15px 16px 11px}.compact-heading>span{align-items:center;display:flex;gap:7px}.compact-heading small{color:var(--muted);font-size:9px;font-weight:500}.drawing-mini{background:#f2f5f4;border-bottom:1px solid var(--line);border-top:1px solid var(--line);height:124px;padding:7px 11px}.drawing-mini svg{height:100%;width:100%}.drawing-mini path{fill:none;stroke:#91a09d;stroke-width:2}.drawing-mini circle{fill:var(--accent);stroke:white;stroke-width:2}.drawing-mini text{fill:white;font-size:8px;font-weight:700;text-anchor:middle}.compact-footer{align-items:center;color:var(--muted);display:flex;font-size:9px;justify-content:space-between;margin-top:auto;padding:10px 16px}.text-button{align-items:center;background:none;border:0;color:var(--green);cursor:pointer;display:inline-flex;font-size:10px;font-weight:700;gap:4px;padding:0}.team-list{display:grid;padding:0 16px}.team-list>div{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:32px 1fr auto;padding:8px 0}.team-list>div:first-child{border-top:0}.team-list>div>span:nth-child(2){display:grid;grid-gap:2px;gap:2px}.team-list strong{font-size:9px}.team-list small{color:var(--muted);font-size:8px}.avatar-large{border:0;height:29px;margin:0;width:29px}.online-dot{background:#4bbf95;border:2px solid var(--paper);border-radius:50%;height:8px;width:8px}.firestop-table .table-row{grid-template-columns:90px minmax(190px,1.5fr) minmax(160px,1.1fr) 90px 115px 45px 115px;min-height:59px}.location-cell{display:grid;grid-gap:3px;gap:3px}.location-cell strong,.person-cell,.product-cell{font-size:10px}.location-cell small{color:var(--muted);font-size:8px}.muted-value{color:var(--muted);font-size:10px;font-style:italic}.photo-count{align-items:center;background:var(--canvas);border-radius:5px;display:flex;font-size:9px;height:24px;justify-content:center;width:27px}.quick-picker{border-top:1px solid var(--line);display:grid;grid-gap:13px;gap:13px;padding:16px 22px 22px}.search-field{align-items:center;background:var(--canvas);border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;gap:8px;padding:0 11px}.search-field input{background:transparent;border:0;color:var(--ink);font-size:11px;min-height:38px;outline:none;width:100%}.quick-picker-body{display:grid;grid-gap:17px;gap:17px;grid-template-columns:minmax(240px,.85fr) minmax(330px,1.15fr)}.product-results{display:grid;grid-gap:5px;gap:5px;align-content:start}.product-result{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--ink);cursor:pointer;display:grid;grid-gap:9px;gap:9px;grid-template-columns:32px 1fr auto;padding:8px;text-align:left}.product-result.selected,.product-result:hover{background:#f4f8f7;border-color:var(--line)}.product-result.selected{color:var(--green)}.product-result>span:nth-child(2){display:grid;grid-gap:3px;gap:3px}.product-result strong{color:var(--ink);font-size:10px}.product-result small{color:var(--muted);font-size:8px}.product-result-icon{align-items:center;background:#e8f0ee;border-radius:7px;color:var(--green);display:flex;height:32px;justify-content:center;width:32px}.autofill-preview{background:#f5f8f7;border-left:3px solid var(--green);display:grid;grid-gap:10px;gap:10px;padding:14px 16px}.autofill-heading{align-items:center;display:flex;justify-content:space-between}.autofill-heading span{align-items:center;color:var(--green);display:flex;font-size:9px;font-weight:750;gap:5px;text-transform:uppercase}.autofill-heading small{color:var(--muted);font-size:8px}.autofill-preview h3{font-size:14px;margin:0}.autofill-preview dl{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(3,1fr);margin:0}.autofill-preview dl div{display:grid;grid-gap:2px;gap:2px}.autofill-preview dt{color:var(--muted);font-size:8px}.autofill-preview dd{font-size:9px;font-weight:650;margin:0}.autofill-preview p{color:var(--ink-soft);font-size:8px;line-height:1.45;margin:0}.document-chips{display:flex;flex-wrap:wrap;gap:5px}.document-chips span{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:5px;color:var(--ink-soft);display:inline-flex;font-size:8px;gap:4px;padding:4px 6px}@media (max-width:1180px){.project-overview-grid{grid-template-columns:1fr 1fr}.team-card{grid-column:1/-1}.firestop-table .table-row{grid-template-columns:90px minmax(180px,1.3fr) minmax(150px,1fr) 90px 110px 110px}.firestop-table .table-row>:nth-child(6){display:none}}@media (max-width:800px){.project-overview-grid,.quick-picker-body{grid-template-columns:1fr}.team-card{grid-column:auto}.firestop-table .table-head{display:none}.firestop-table .table-row{align-items:start;grid-template-columns:90px 1fr}.firestop-table .table-row>:not(:first-child):not(:nth-child(2)):not(:last-child){display:none}.firestop-table .table-row>:last-child{grid-column:2}}.modal-backdrop{background:rgba(8,27,49,.56);inset:0;padding:24px;position:fixed;z-index:100}.app-loading,.modal-backdrop{align-items:center;display:flex;justify-content:center}.app-loading{background:var(--canvas);color:var(--muted);flex-direction:column;font-size:10px;gap:13px;min-height:100vh}.app-loading img{height:auto;width:150px}.modal-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 24px 80px rgba(7,27,49,.3);max-width:560px;overflow:hidden;width:100%}.modal-heading{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:22px 24px 18px}.modal-heading>div{display:grid;grid-gap:5px;gap:5px}.modal-heading h2{font-size:20px;margin:0}.modal-heading p{color:var(--muted);font-size:9px;margin:0}.project-form{display:grid;grid-gap:15px;gap:15px;padding:21px 24px 24px}.project-form label{color:var(--ink-soft);display:grid;font-size:9px;font-weight:650;grid-gap:6px;gap:6px}.project-form input{background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);font-size:10px;min-height:40px;outline:none;padding:0 11px}.project-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(38,116,94,.1)}.form-columns{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr 1fr}.modal-actions{align-items:center;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;margin:4px -24px -24px;padding:15px 24px}.loading-panel{color:var(--muted);font-size:10px;padding:30px}.drawing-mini-empty{align-items:center;color:var(--muted);display:flex;font-size:9px;height:100%;justify-content:center}.inline-empty{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:11px;gap:11px;grid-template-columns:32px 1fr auto;padding:18px 21px}.inline-empty>svg{color:var(--green)}.inline-empty>span{display:grid;grid-gap:3px;gap:3px}.inline-empty strong{font-size:10px}.inline-empty small{color:var(--muted);font-size:8px}.save-banner{align-items:center;background:var(--green-soft);border:1px solid #c5dfd8;border-radius:9px;color:var(--green);display:flex;font-size:9px;font-weight:650;gap:7px;padding:9px 12px}.save-banner button{background:none;border:0;color:var(--green);cursor:pointer;display:flex;margin-left:auto;padding:2px}.drawing-list-empty,.drawing-viewer-empty{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:5px;justify-content:center;text-align:center}.drawing-list-empty{min-height:150px;padding:20px}.drawing-list-empty strong{color:var(--ink);font-size:9px}.drawing-list-empty small{font-size:8px}.drawing-viewer-empty{min-height:470px;padding:35px}.drawing-viewer-empty>span{align-items:center;background:var(--blue-soft);border-radius:50%;color:var(--blue);display:flex;height:58px;justify-content:center;width:58px}.drawing-viewer-empty h2{color:var(--ink);font-size:16px;margin:9px 0 0}.drawing-viewer-empty p{font-size:9px;line-height:1.5;margin:0 0 10px;max-width:360px}@media (max-width:650px){.form-columns{grid-template-columns:1fr}.modal-backdrop{padding:12px}.inline-empty{grid-template-columns:26px 1fr}.inline-empty .button{grid-column:1/-1;justify-self:start}}