:root{color-scheme:light;--bg:#f4f6f9;--ink:#1b2430;--muted:#6b7785;--line:#d9dee7;--surface:#ffffff;--accent:#1f3a5f;--accent-dark:#16294a;--accent-soft:#eaf0f8;--brand-yellow:#ffc000;--brand-yellow-dark:#e6ad00;--brand-yellow-ink:#1f3a5f;--danger:#b42335;--good:#168354;--radius-sm:8px;--radius-md:10px;font-family:SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,ui-sans-serif,system-ui,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg:#101520;--ink:#edf1f7;--muted:#a8b3c4;--line:#2b3648;--surface:#171e2b;--accent:#3f6ea8;--accent-dark:#a9c7ec;--accent-soft:#1c2a3e;--good:#4cc38a}body{background:var(--bg);font-size:15px}button{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;padding:0 14px;font-weight:800;font-size:.92rem;background:var(--surface);color:var(--accent-dark)}button.primary{background:var(--brand-yellow);color:var(--brand-yellow-ink);border-color:var(--brand-yellow)}button.primary:hover{background:var(--brand-yellow-dark)}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent}input{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:46px;padding:0 12px;font-size:1rem;background:var(--surface);color:var(--ink);width:100%}input[type=checkbox]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--accent)}.auth-screen{min-height:100vh;display:grid;place-items:center;align-content:center;grid-gap:28px;gap:28px;padding:24px;background:radial-gradient(circle at 20% 0,rgba(255,192,0,.08),transparent 26rem),radial-gradient(circle at 80% 100%,rgba(63,110,168,.22),transparent 34rem),linear-gradient(160deg,#16294a,#1f3a5f 55%,#16294a)}.auth-logo{width:min(280px,60vw);height:auto}.auth-card{width:min(440px,100%);display:grid;grid-gap:16px;gap:16px;background:#ffffff;color:#1b2430;border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 26px 60px rgba(9,17,30,.45);padding:30px}.auth-card h1{margin:0;text-align:center;color:var(--accent-dark);font-size:1.55rem}.auth-sub{margin:-10px 0 4px;text-align:center;color:var(--muted)}.auth-card label{display:grid;grid-gap:6px;gap:6px;font-size:.86rem;font-weight:800;color:#1b2430}.auth-code{text-align:center;font-size:1.35rem;font-weight:900;letter-spacing:.18em}.auth-sent,.auth-status{margin:0;color:var(--muted)}.auth-status{text-align:center;font-size:.9rem}.auth-status-error{color:var(--danger)}.shell{min-height:100vh}.shell-sidebar{display:none;position:fixed;inset:0 auto 0 0;width:232px;padding:22px 14px calc(18px + env(safe-area-inset-bottom));background:radial-gradient(circle at 20% 0,rgba(255,192,0,.08),transparent 20rem),linear-gradient(170deg,#16294a,#1f3a5f 60%,#16294a);color:#edf1f7;flex-direction:column;gap:18px;z-index:40}.shell-logo{width:168px;height:auto;align-self:center}.shell-context{display:grid;grid-gap:2px;gap:2px;text-align:left;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-sm);color:#edf1f7;min-height:0;padding:10px 12px;font-weight:400}.shell-context span{font-size:.75rem;color:rgba(237,241,247,.7)}.shell-context strong{font-size:.92rem}.shell-nav{display:grid;grid-gap:4px;gap:4px;flex:1 1;align-content:start}.shell-link{display:flex;align-items:center;gap:10px;border:none;background:transparent;color:rgba(237,241,247,.85);font-weight:700;font-size:.95rem;min-height:42px;padding:0 12px;border-radius:var(--radius-sm);text-align:left}.shell-link:hover{background:rgba(255,255,255,.08)}.shell-link.active{background:#ffffff;color:#16294a;box-shadow:inset 3px 0 0 var(--brand-yellow)}.shell-icon{width:22px;text-align:center;font-size:.95rem}.shell-user{display:grid;grid-gap:6px;gap:6px;border-top:1px solid rgba(255,255,255,.14);padding-top:12px}.shell-user>span{font-size:.78rem;color:rgba(237,241,247,.7);overflow:hidden;text-overflow:ellipsis}.shell-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;min-height:58px;padding:calc(6px + env(safe-area-inset-top)) 16px 6px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shell-topbar-logo{width:84px;height:auto}.shell-title{font-size:1.02rem;color:var(--accent-dark)}.picker-wrap{position:relative}.topbar-picker{width:100%;min-height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent-dark);font-weight:800;font-size:.9rem;padding:0 10px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;min-width:260px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 18px 44px rgba(9,17,30,.3);padding:8px;display:grid;grid-gap:6px;gap:6px}.picker-panel input{min-height:38px;font-size:.9rem}.picker-list{display:grid;grid-gap:2px;gap:2px;max-height:300px;overflow-y:auto}.picker-row{display:grid;grid-template-columns:92px 1fr;grid-gap:8px;gap:8px;align-items:center;border:none;background:transparent;min-height:40px;padding:4px 8px;border-radius:var(--radius-sm);text-align:left;font-weight:400;color:var(--ink);font-size:.88rem}.picker-row strong{color:var(--accent-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.picker-row.active,.picker-row:hover{background:var(--accent-soft)}.picker-row.active{box-shadow:inset 3px 0 0 var(--brand-yellow)}.picker-empty{color:var(--muted);font-size:.85rem;padding:6px 8px}.blast-activity{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:6px 12px}.blast-activity>summary{cursor:pointer;font-weight:700;font-size:.88rem;min-height:36px;display:flex;align-items:center}.blast-activity-list{list-style:none;margin:0;padding:4px 0 8px;display:grid;grid-gap:2px;gap:2px}.blast-activity-list li{display:grid;grid-template-columns:116px minmax(90px,auto) 1fr auto;grid-gap:10px;gap:10px;align-items:baseline;padding:5px 0;border-top:1px solid var(--line);font-size:.82rem}.blast-activity-list li>span:first-child{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.blast-activity-list li>em{font-style:normal;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blast-activity-list li>span:last-child{color:var(--muted)}@media (max-width:699px){.blast-activity-list li{grid-template-columns:1fr;gap:1px}}.doc-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px}.doc-tabs button{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.86rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.doc-tabs button:hover{background:var(--accent-soft)}.doc-tabs button.active{background:var(--accent-dark);border-color:var(--accent-dark);color:#ffffff}.doc-tabs button.active .badge{background:rgba(255,255,255,.22);color:#ffffff}.empty-line{margin:0;color:var(--muted);font-size:.9rem}.file-rows{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.file-row{display:grid;grid-template-columns:28px 1fr auto;grid-gap:10px;gap:10px;align-items:start;padding:10px 4px;border-top:1px solid var(--line)}.file-rows>.file-row:first-child{border-top:none}.file-icon{font-size:1.1rem;line-height:1.4;text-align:center}.file-main{min-width:0;display:grid;grid-gap:2px;gap:2px}.file-name,.file-name-static{justify-self:start;text-align:left;font-weight:700;font-size:.94rem;color:var(--ink);overflow-wrap:anywhere}.file-name{border:none;background:none;padding:0;min-height:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.file-name:hover{color:var(--accent-dark)}.file-meta{color:var(--muted);overflow-wrap:anywhere}.file-meta,.file-more{font-size:.8rem}.file-more>summary{cursor:pointer;color:var(--muted);padding:2px 0;width:-moz-fit-content;width:fit-content}.file-more>summary:hover{color:var(--ink)}.file-more dl{margin:4px 0 0;display:grid;grid-template-columns:minmax(90px,auto) 1fr;grid-gap:2px 10px;gap:2px 10px}.file-more dt{color:var(--muted)}.file-more dd{margin:0;overflow-wrap:anywhere}.file-actions{display:flex;gap:6px;align-items:center}.file-actions .link-button,.file-actions button{min-height:34px}.file-actions .icon-only{padding:0 10px}.version-list{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-gap:2px;gap:2px}.version-list li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;color:var(--muted)}.version-list li>:first-child{color:var(--ink);font-weight:700}@media (max-width:560px){.file-row{grid-template-columns:24px 1fr}.file-actions{grid-column:2}}.charge-results .fact-missing{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.charge-results .fact-missing span{color:var(--danger);font-weight:700}.photo-thumb.photo-thumb-camera{display:grid;place-items:center;align-content:center;grid-gap:4px;gap:4px;aspect-ratio:4/3;border:1px dashed var(--accent-dark);background:var(--accent-soft)}.photo-thumb.photo-thumb-camera .photo-thumb-camera-icon{font-size:1.5rem;line-height:1}.photo-thumb.photo-thumb-camera .photo-thumb-name{padding:0;color:var(--accent-dark)}.hole-shell-full{background:var(--paper);padding:12px}.hole-shell-full .hole-canvas{height:calc(100vh - 90px);max-height:none}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px}.crumbs,.crumbs button{font-size:.82rem;color:var(--muted)}.crumbs button{background:none;border:none;padding:0 2px;min-height:28px;font-weight:600;cursor:pointer}.crumbs button:hover{color:var(--accent-dark);text-decoration:underline}.crumbs strong{color:var(--accent-dark);font-size:.82rem}.blast-title{display:grid;grid-template-columns:auto auto;grid-gap:2px 10px;gap:2px 10px;align-items:baseline}.blast-title h2{margin:0;font-size:1.5rem}.blast-title p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.86rem}.sync-state{font-size:.78rem;font-weight:600;color:var(--good);white-space:nowrap}.sync-state:before{content:"● "}.sync-state-pending{color:var(--brand-yellow-dark)}.row-menu{position:relative}.row-menu>summary{list-style:none;cursor:pointer;min-height:40px;min-width:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:1.1rem;font-weight:700}.row-menu>summary::-webkit-details-marker{display:none}.row-menu-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;display:grid;grid-gap:8px;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(9,17,30,.18)}.disclosure>summary,.more-facts>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--navy);list-style:none}.disclosure>summary::-webkit-details-marker,.more-facts>summary::-webkit-details-marker{display:none}.disclosure>summary:before,.more-facts>summary:before{content:"▸";transition:transform .15s}.disclosure[open]>summary:before,.more-facts[open]>summary:before{transform:rotate(90deg)}.more-facts .blast-stats,.more-facts .charge-results{margin-top:10px}.blast-responsible{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:10px;background:var(--surface)}.blast-responsible-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:6px 16px;gap:6px 16px}.charge-results>div{grid-template-columns:26px 1fr;grid-template-areas:"ikon etikett" "ikon varde";align-items:center;column-gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:8px 10px}.charge-results>div>i{grid-area:ikon;font-style:normal;font-size:1.1rem;line-height:1;color:var(--accent);text-align:center}.charge-results>div>span{grid-area:etikett}.charge-results>div>strong{grid-area:varde;font-size:.98rem}.charge-results .fact-missing>i{color:var(--danger);font-weight:800}.step-rows{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.step-rows-item{width:100%;display:grid;grid-template-columns:30px 1fr auto auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;min-height:52px;text-align:left;cursor:pointer}.step-rows-item:hover{background:var(--accent-soft)}.step-rows-item.done{border-left-color:var(--good)}.step-rows-item.partial{border-left-color:var(--brand-yellow)}.step-rows-item.todo{border-left-color:var(--line)}.step-rows-icon{font-size:1.15rem;line-height:1;color:var(--accent);text-align:center}.step-rows-name{display:grid;grid-gap:1px;gap:1px;min-width:0}.step-rows-name strong{font-size:.94rem;color:var(--accent-dark)}.step-rows-name em{font-style:normal;font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-rows-chevron{color:var(--muted);font-size:1.3rem;line-height:1}@media (max-width:699px){.step-rows-item{grid-template-columns:26px 1fr auto}.step-rows-chevron{display:none}}.blast-responsible-list>div{display:flex;flex-direction:column;gap:1px}.blast-responsible-list span{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.blast-responsible-list strong{font-size:.88rem}.pat-conflict-accept{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 10px;margin-top:8px;border:1px solid var(--danger);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--danger) 8%,var(--surface));font-size:.86rem}.pat-conflict-accept.pat-conflict-done{border-color:var(--line);background:var(--surface);color:var(--muted)}.pat-accepted{color:var(--brand-yellow);font-weight:600}.picker-row-wrap{display:grid;grid-template-columns:1fr auto;align-items:center}.picker-row-wrap .picker-row{width:100%}.picker-star{border:none;background:transparent;cursor:pointer;min-height:40px;min-width:40px;padding:0 8px;font-size:1.05rem;line-height:1;color:var(--muted)}.picker-star[aria-pressed=true]{color:var(--brand-yellow)}.picker-star:hover{color:var(--accent-dark)}.shell-content{max-width:860px;margin:0 auto;padding:20px 16px calc(88px + env(safe-area-inset-bottom));display:grid;grid-gap:16px;gap:16px}.shell-page-title{display:none;margin:0;color:var(--accent-dark);font-size:1.5rem}.main:has(.blast-title)>.page-heading-default{display:none}.shell-bottomnav{position:fixed;inset:auto 0 0 0;z-index:40;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shell-bottomnav,.shell-tab{display:grid;grid-gap:2px;gap:2px}.shell-tab{justify-items:center;border:none;background:transparent;min-height:50px;padding:4px 2px;font-size:.7rem;font-weight:800;color:var(--muted);border-radius:var(--radius-sm)}.shell-tab span{font-size:1.05rem}.shell-tab.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 -3px 0 var(--brand-yellow)}.shell-more-backdrop{position:fixed;inset:0;z-index:45;background:rgba(9,17,30,.4);border:none}.shell-more{position:fixed;z-index:46;left:12px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));display:grid;grid-gap:4px;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 18px 44px rgba(9,17,30,.3);padding:10px}.shell-more-link{border:none;background:transparent;min-height:46px;text-align:left;padding:0 12px;font-weight:700;color:var(--ink);border-radius:var(--radius-sm)}.shell-more-link:hover{background:var(--accent-soft)}@media (min-width:900px){.shell-sidebar{display:flex}.shell-main{margin-left:232px}.shell-bottomnav,.shell-topbar{display:none}.shell-page-title{display:block}.shell-content{padding:28px 28px 40px}}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.quick-card{display:grid;grid-gap:4px;gap:4px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;min-height:84px;align-content:start}.quick-card:hover{border-color:var(--accent)}.quick-card strong{color:var(--accent-dark);font-size:1rem}.quick-card span{color:var(--muted);font-size:.85rem;font-weight:400}.shell-content-full{max-width:none;padding:0!important;display:block}.map-stage{position:relative;height:calc(100dvh - 62px);min-height:380px}.map-stage .map-full{position:absolute!important;inset:0;width:100%;height:100%}.map-panel{position:absolute;z-index:5;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;box-shadow:0 8px 22px rgba(9,17,30,.18);display:grid;grid-gap:6px;gap:6px;max-width:min(420px,calc(100% - 24px))}.map-panel-topleft{top:12px;left:12px}.map-panel-topright{top:12px;right:12px}.map-panel-bottomleft{bottom:12px;left:12px}.map-panel-bottomright{bottom:12px;right:12px;font-size:.82rem;color:var(--muted)}.map-panel button{min-height:36px;padding:0 12px;font-size:.85rem}.map-panel input,.map-panel select{min-height:36px;font-size:.9rem}.map-layer{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700}.map-layer-count{margin-left:auto;color:var(--muted);font-weight:600;font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.map-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.map-panel-head strong{font-size:.88rem}.map-panel .map-panel-toggle{min-height:30px;padding:0 10px;font-size:.78rem;font-weight:800;white-space:nowrap}.map-panel-collapsed{padding:6px 8px}.map-panel-topright{z-index:6}.map-hit{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);min-height:38px;padding:4px 10px;text-align:left;font-weight:400;font-size:.82rem;color:var(--ink)}.map-hit:hover{background:var(--accent-soft)}.hole-dot{width:16px;height:16px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:pointer}.hole-dot-selected{border-color:var(--brand-yellow);box-shadow:0 0 0 3px rgba(255,192,0,.55)}.hole-dot-pop{animation:hole-pop .35s cubic-bezier(.22,.9,.32,1.4)}@keyframes hole-pop{0%{transform:scale(0)}70%{transform:scale(1.35)}to{transform:scale(1)}}.hole-time{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:rgba(22,41,74,.92);color:#ffffff;font-size:10px;font-weight:800;line-height:1;padding:2px 4px;border-radius:4px;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hole-time-conflict{background:#b42335}.measure-dot{width:14px;height:14px;border-radius:50%;background:#3f6ea8;border:2px solid #ffffff}.measure-dot,.ncvib-dot{box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:pointer}.ncvib-dot{width:16px;height:16px;border-radius:3px;transform:rotate(45deg);background:#f28c28;border:2px solid #ffffff}.ncvib-dot-inactive{background:#8b95a4}.ncvib-dot-selected{box-shadow:0 0 0 3px rgba(255,192,0,.6),0 1px 4px rgba(0,0,0,.5)}.ncvib-label{position:absolute;top:18px;left:50%;transform:rotate(-45deg) translate(-2px,6px);background:rgba(242,140,40,.94);color:#1b1b1b;font-size:10px;font-weight:800;line-height:1;padding:2px 5px;border-radius:4px;white-space:nowrap;transform-origin:top left}.ncvib-dot-inactive .ncvib-label{background:rgba(139,149,164,.94);color:#ffffff}.draw-vertex{width:14px;height:14px;border-radius:50%;background:#ffffff;border:3px solid var(--brand-navy,#1f3a5f);box-shadow:0 2px 6px rgba(9,17,30,.45);cursor:pointer;animation:hole-pop .25s cubic-bezier(.22,.9,.32,1.4)}.draw-vertex-first{width:20px;height:20px;position:relative;background:var(--brand-yellow,#ffc000);border-color:#ffffff;box-shadow:0 0 0 3px rgba(31,58,95,.9),0 2px 8px rgba(9,17,30,.5)}.draw-vertex-first:before{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid rgba(255,192,0,.9);animation:draw-pulse 1.4s ease-out infinite}@keyframes draw-pulse{0%{transform:scale(.7);opacity:.9}to{transform:scale(1.5);opacity:0}}.draw-finish-tip{position:absolute;left:50%;bottom:calc(100% + 14px);transform:translateX(-50%);background:rgba(31,58,95,.96);color:#ffffff;font-size:11px;font-weight:700;letter-spacing:.01em;padding:6px 10px 6px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 6px 16px rgba(9,17,30,.35);pointer-events:none;display:flex;align-items:center;gap:6px}.draw-finish-tip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand-yellow,#ffc000)}.draw-finish-tip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(31,58,95,.96)}@media (prefers-reduced-motion:reduce){.draw-vertex,.draw-vertex-first:before{animation:none}}.measure-dot:after{content:"▾";position:absolute;top:-14px;left:50%;transform:translateX(-50%);color:#3f6ea8;font-size:10px}.map-pin{cursor:pointer;line-height:0;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}.map-pin-drop{animation:pin-drop .55s cubic-bezier(.22,.9,.32,1.3)}@keyframes pin-drop{0%{transform:translateY(-70px);opacity:0}55%{transform:translateY(0);opacity:1}72%{transform:translateY(-10px)}to{transform:translateY(0)}}.poly-input{display:grid;grid-gap:2px;gap:2px;font-size:.7rem;font-weight:800;color:var(--muted)}.poly-input input[type=color]{width:44px;height:32px;min-height:32px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.poly-input input{min-height:32px;font-size:.85rem}.hole-edit{display:grid;grid-gap:6px;gap:6px;border-top:1px solid var(--line);padding-top:6px}.hole-edit-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.hole-edit-grid label{display:grid;grid-gap:2px;gap:2px;font-size:.72rem;font-weight:800;color:var(--muted)}.hole-edit-grid input{min-height:34px;font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.charge-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px;background:var(--surface-subtle,var(--accent-soft));border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}.charge-results div{display:grid;grid-gap:2px;gap:2px}.charge-results span{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.charge-results strong{font-size:1.02rem;color:var(--accent-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:899px){.map-panel-topleft{left:8px;right:92px;top:8px;max-width:none}.map-panel-topright{top:8px;right:8px;max-width:calc(100% - 16px)}.map-panel-bottomleft{left:8px;right:8px;bottom:8px;max-width:none;max-height:42dvh;overflow-y:auto}.map-panel-bottomright{display:none}}.report-wrap{max-width:860px;margin:0 auto;padding:20px 16px 60px}.report-sheet{background:#ffffff;color:#1b2430;border:1px solid var(--line);border-radius:10px;padding:34px 38px;box-shadow:var(--shadow,0 10px 28px rgba(27,36,48,.06))}.report-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #ffc000;padding-bottom:16px;margin-bottom:18px;flex-wrap:wrap}.report-eyebrow{margin:0 0 4px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#6b7785;font-weight:800}.report-head h1{margin:0;font-size:1.5rem;color:#16294a}.report-sub{margin:4px 0 0;color:#6b7785}.report-org{display:flex;gap:12px;align-items:flex-start;text-align:right}.report-org img{max-width:150px;max-height:56px;object-fit:contain}.report-org div{display:grid;grid-gap:1px;gap:1px;font-size:.8rem;color:#6b7785}.report-org strong{color:#16294a;font-size:.9rem}.report-summary{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:16px}.report-summary div{display:grid;grid-gap:2px;gap:2px}.report-summary span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7785;font-weight:800}.report-summary strong{font-size:1.25rem;color:#16294a;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:26px}.report-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7785;padding:6px 8px;border-bottom:2px solid #d9dee7}.report-table td{padding:6px 8px;border-bottom:1px solid #e8ecf2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-footer{display:flex;gap:40px;margin:34px 0 14px;flex-wrap:wrap}.report-sign{display:grid;grid-gap:6px;gap:6px;flex:1 1 220px;font-size:.78rem;color:#6b7785}.report-line{border-bottom:1px solid #1b2430;height:26px}.report-meta{margin:0;font-size:.72rem;color:#8b95a4}@media print{.no-print{display:none!important}body{background:#ffffff}.report-wrap{max-width:none;padding:0}.report-sheet{border:none;box-shadow:none;border-radius:0;padding:0}}.page{max-width:680px;margin:0 auto;padding:32px 20px;display:grid;grid-gap:18px;gap:18px}.page-loading{display:grid;place-items:center;min-height:60vh;color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.page-head h1{margin:0;color:var(--accent-dark)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;display:grid;grid-gap:14px;gap:14px}.card h2{margin:0;font-size:1.1rem;color:var(--accent-dark)}.card p{margin:0;line-height:1.5}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:800;margin-right:6px}.badge-ok{background:#e2f4ea;color:var(--good)}.badge-pending{background:#fdf6e3;color:#8a6d1a}.notice-warn{background:#fdf6e3;border:1px solid #ecd9a0;border-left:4px solid var(--brand-yellow);border-radius:var(--radius-sm);padding:12px 14px}.enroll{display:grid;grid-gap:12px;gap:12px;justify-items:start}.enroll .qr{width:200px;height:200px;background:#ffffff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px}.enroll .secret{color:var(--muted);font-size:.85rem}.enroll label{display:grid;grid-gap:6px;gap:6px;font-size:.86rem;font-weight:800}.enroll input{max-width:200px}.page-wide{max-width:900px}.tablewrap{overflow-x:auto}.billing-table{width:100%;border-collapse:collapse;font-size:.93rem}.billing-table th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px;border-bottom:2px solid var(--line)}.billing-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}.billing-table tfoot td{border-bottom:none;border-top:2px solid var(--line)}.shell-content-wide{max-width:1180px}.audit-table{table-layout:fixed}.audit-table th:first-child{width:92px}.audit-table th:nth-child(2){width:20%}.audit-table th:nth-child(3){width:34%}.audit-table td{vertical-align:top;font-size:.86rem;overflow-wrap:anywhere}.audit-time{display:grid;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.3}.audit-time span{color:var(--muted);font-size:.8rem}.audit-who{font-weight:700;overflow-wrap:anywhere}.audit-kind{color:var(--muted);font-weight:400}.audit-label{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.audit-changes{font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:grid;grid-gap:2px;gap:2px}@media (max-width:899px){.audit-table th:first-child{width:78px}.audit-table th:nth-child(2){width:24%}.audit-table th:nth-child(3){width:auto}}.price-input{max-width:110px;min-height:40px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}select{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:40px;padding:0 10px;background:var(--surface);color:var(--ink);font-size:.95rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.form-grid label{font-size:.86rem;font-weight:800}.invite-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.invite-row label{display:grid;grid-gap:6px;gap:6px;font-size:.86rem;font-weight:800;flex:1 1 220px}.invite-row label:last-of-type{flex:0 1 160px}.org-logo-preview{max-width:200px;max-height:80px;object-fit:contain;background:#ffffff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px}.upload-button{display:inline-grid;place-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-weight:800;font-size:.92rem;cursor:pointer;background:var(--surface);color:var(--accent-dark)}.picker-new{border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:4px}.picker-new-toggle{width:100%;min-height:36px;font-size:.85rem;font-weight:800;color:var(--accent-dark);background:var(--accent-soft);border:1px dashed var(--line);border-radius:var(--radius-sm)}.picker-new-form{display:grid;grid-gap:6px;gap:6px;padding-top:6px}.picker-new-form input,.picker-new-form select{min-height:36px;font-size:.88rem}.picker-new-form .primary{font-size:.82rem;min-height:36px}.pat-page{display:grid;grid-gap:14px;gap:14px}.pat-tabs{display:flex;gap:4px;flex-wrap:wrap}.pat-tab{min-height:38px;padding:0 14px;font-size:.88rem;border-radius:999px}.pat-tab.active{background:var(--accent);color:#ffffff;border-color:var(--accent)}.pat-save{font-size:.78rem;color:var(--muted)}.pat-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.pat-controls label{display:grid;grid-gap:4px;gap:4px;font-size:.78rem;font-weight:800;color:var(--muted)}.pat-controls input,.pat-controls select{min-height:40px;font-size:.92rem}.pat-rowblocks{display:flex;flex-wrap:wrap;gap:8px}.pat-rowblocks label{display:grid;grid-gap:3px;gap:3px;font-size:.72rem;font-weight:800;color:var(--muted)}.pat-rowblocks select{min-height:36px;min-width:88px;font-size:.88rem}.pat-metrics{margin:0}.pat-formula{margin:0;color:var(--muted);font-size:.85rem}.pat-legend{display:flex;flex-wrap:wrap;gap:8px}.pat-legend span{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700}.pat-legend i{width:14px;height:14px;border-radius:50%;background:var(--block-color);border:1px solid rgba(0,0,0,.25)}.pat-board-card{padding:8px;display:grid;grid-gap:6px;gap:6px}.pat-viewport{position:relative;overflow:hidden;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;height:var(--board-h,min(58vh,560px));min-height:220px;max-height:82vh;contain:layout paint;border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(rgba(31,58,95,.06) 1px,transparent 1px) 0 0 /24px 24px,linear-gradient(90deg,rgba(31,58,95,.06) 1px,transparent 1px) 0 0 /24px 24px,var(--surface);cursor:-webkit-grab;cursor:grab}.pat-viewport:active{cursor:-webkit-grabbing;cursor:grabbing}.pat-fit{position:absolute;bottom:8px;right:8px;z-index:3;min-height:32px;padding:0 10px;font-size:.78rem;background:color-mix(in srgb,var(--surface) 92%,transparent)}.pat-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.9rem;padding:20px;text-align:center}.pat-canvas{position:absolute;left:0;top:0;transform-origin:0 0;display:grid;grid-gap:var(--pattern-gap);gap:var(--pattern-gap);align-content:start}.pat-line-no{display:grid;place-items:center;font-size:.72rem;font-weight:800;color:var(--muted)}.pat-hole{position:relative;width:var(--hole-size);height:var(--hole-height);border-radius:50%;background:var(--surface);border:2px solid var(--accent);color:var(--accent-dark);display:grid;place-items:center;text-align:center;font-size:calc(.72rem * var(--label-scale, 1));line-height:1.05;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.pat-hole span{display:block}.pat-hole strong{font-weight:800}.pat-hole.pat-colored{background:var(--block-color);border-color:rgba(0,0,0,.35);color:#111827}.pat-deck.dark-block,.pat-hole.dark-block{color:#ffffff}.pat-deck.white-block,.pat-hole.white-block{border-color:#9aa3b0}.pat-hole.opening-hole{border-color:var(--brand-yellow);box-shadow:0 0 0 3px rgba(255,192,0,.5)}.pat-deck.manual-delay,.pat-hole.manual-delay{border-style:dashed}.pat-deck.duplicate-delay,.pat-hole.duplicate-delay{box-shadow:0 0 0 3px rgba(180,35,53,.55)}.pat-deck.selected-line,.pat-hole.selected-line{outline:2px solid rgba(31,58,95,.3);outline-offset:2px}.pat-deck.selected-hole,.pat-hole.selected-hole{transform:scale(1.08);box-shadow:0 0 0 4px var(--accent);z-index:2}.pat-deck.ghost-hole,.pat-hole.ghost-hole{opacity:.35;border-style:dotted;background:var(--surface);color:var(--muted)}.pat-hole.empty-time{font-size:0}.pat-deck.simulating,.pat-hole.simulating{animation:pat-flash .28s ease-out}@keyframes pat-flash{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,192,0,.9);background:#ffe58a}60%{transform:scale(1.25);box-shadow:0 0 0 14px rgba(255,192,0,0)}to{transform:scale(1)}}.pat-code{position:absolute;bottom:-1.05em;left:50%;transform:translateX(-50%);font-style:normal;font-size:calc(.62rem * var(--label-scale, 1));color:var(--muted);white-space:nowrap}.pat-deck{width:var(--hole-size);height:var(--hole-height);border-radius:8px;background:var(--surface);border:2px solid var(--accent);color:var(--accent-dark);display:grid;align-content:start;justify-items:center;padding:3px 2px;grid-gap:1px;gap:1px;text-align:center;font-size:calc(.66rem * var(--label-scale, 1));line-height:1.1;cursor:pointer;overflow:hidden}.pat-deck strong{font-size:calc(.74rem * var(--label-scale, 1))}.pat-deck em{font-style:normal;color:var(--muted)}.pat-deck span{font-weight:800;color:var(--brand-yellow-ink);background:var(--brand-yellow);border-radius:4px;padding:0 4px}.pat-deck.pat-colored{background:var(--block-color);color:#111827}.pat-deck.pat-colored em{color:inherit;opacity:.85}.pat-deck.opening-hole{border-color:var(--brand-yellow);box-shadow:0 0 0 3px rgba(255,192,0,.5)}.pat-conflicts{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}.pat-conflicts line{stroke:#b42335;stroke-width:2;stroke-dasharray:6 4;opacity:.9}.pat-status{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.8rem;color:var(--muted);padding:0 4px}.pat-tools{display:grid;grid-gap:10px;gap:10px}.pat-tool-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:12px;gap:12px}.pat-panel{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px}.pat-panel h3{margin:0;font-size:.72rem;letter-spacing:.1em;color:var(--muted)}.pat-tool-row{gap:6px;flex-wrap:wrap;align-items:end}.pat-tool-row button{min-height:36px;padding:0 10px;font-size:.82rem}.pat-inline{display:grid;grid-gap:3px;gap:3px;font-size:.72rem;font-weight:800;color:var(--muted)}.pat-inline input,.pat-inline select{min-height:36px;font-size:.88rem;width:120px}.pat-danger{color:var(--danger)}.pat-actions{gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.pat-message{margin:0;font-size:.85rem;color:var(--accent-dark)}.pat-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:12px;gap:12px}.pat-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px}.pat-detail-grid span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.pat-detail-grid strong{font-size:1rem;color:var(--accent-dark)}.pat-report header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pat-report ul{margin:8px 0 0;padding-left:18px;font-size:.88rem}.pat-report.ok{border-left:5px solid var(--good)}.pat-report.danger{border-left:5px solid var(--danger)}.pat-pill{font-size:.74rem;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark)}.pat-report.danger .pat-pill{background:#fbe5e8;color:var(--danger)}.pat-report.ok .pat-pill{background:#e2f4ea;color:var(--good)}.pat-conflict-list{margin:6px 0 0;font-size:.82rem;color:var(--danger)}.pat-dialog{position:fixed;inset:0;z-index:80;background:rgba(9,17,30,.45);display:grid;place-items:center;padding:20px}.pat-dialog .card{max-width:480px;width:100%}.pat-disclaimer{margin:0;color:var(--muted);font-size:.76rem}@media (max-width:699px){.pat-viewport{height:var(--board-h-mobile,58vh);max-height:68vh}.pat-inline input,.pat-inline select{width:100px}.pat-tool-panels{grid-template-columns:1fr}.pat-board-card{padding:6px}.pat-fit,.pat-play{min-height:34px;font-size:.74rem;padding:0 9px}.pat-status{font-size:.78rem}.board-actions{overflow-x:auto}.board-actions button{flex:0 0 auto}}@media print{.pat-dialog,.pat-fit,.pat-save,.pat-tools,.shell-bottomnav,.shell-sidebar,.shell-topbar{display:none!important}.shell-content{max-width:none;padding:0}.card{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid;break-inside:avoid}.pat-viewport{min-height:0;overflow:visible;border:none;background:none;touch-action:auto}.pat-viewport-print .pat-canvas{position:relative;transform:none!important;margin:0 auto}.pat-deck,.pat-hole{transition:none}.pat-info{page-break-inside:avoid;break-inside:avoid}}.prod-group-head{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;padding:4px 0;min-height:36px;font-size:1rem}.prod-group-head span{color:var(--muted);font-weight:600;font-size:.85rem}.prod-table input,.prod-table select{min-height:34px;font-size:.88rem}.doc-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.doc-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;font-size:var(--fs-md,.9rem);min-width:0}.doc-list li>*{min-width:0;overflow-wrap:anywhere}.doc-list li strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.doc-list li button{min-height:30px;padding:0 10px;font-size:.78rem}textarea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;font-size:1rem;background:var(--surface);color:var(--ink);width:100%;font-family:inherit}.card h3{margin:4px 0 0;font-size:.98rem}.card h3,.link-button{color:var(--accent-dark)}.link-button{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-weight:800;font-size:.9rem;text-decoration:none}.link-button.primary{background:var(--brand-yellow);border-color:var(--brand-yellow);color:var(--brand-yellow-ink)}.doc-pre{margin:0;white-space:pre-wrap;font-family:ui-monospace,Consolas,monospace;font-size:.82rem;background:var(--accent-soft);border-radius:var(--radius-sm);padding:10px 12px;color:var(--ink)}:root[data-theme=dark] .notice-warn{background:#3a2b0f;border-color:#5a4318;color:var(--ink)}:root[data-theme=dark] .badge-ok{background:#143224}:root[data-theme=dark] .badge-pending{background:#3a2b0f;color:#f0b24a}.hole-canvas{min-height:220px;max-height:82vh;contain:layout paint;background:linear-gradient(rgba(31,58,95,.06) 1px,transparent 1px) 0 0 /24px 24px,linear-gradient(90deg,rgba(31,58,95,.06) 1px,transparent 1px) 0 0 /24px 24px,var(--surface)}.hole-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.hole-canvas .pattern{left:0;top:0}.drill-nomap{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:var(--muted)}.step-list{display:grid;grid-gap:8px;gap:8px}.step-row{display:grid;grid-template-columns:150px 1fr auto;grid-gap:10px;gap:10px;align-items:center;border-radius:var(--radius-sm);padding:10px 12px;border:1px solid var(--line);border-left-width:5px}.step-row.done{border-left-color:var(--good)}.step-row.partial{border-left-color:var(--brand-yellow)}.step-row.todo{border-left-color:var(--line)}.step-head{display:grid;grid-gap:4px;gap:4px}.step-detail{font-size:.86rem;color:var(--muted)}.step-row button{min-height:36px;padding:0 12px;font-size:.82rem;white-space:nowrap}@media (max-width:699px){.step-row{grid-template-columns:1fr}}.notice-info{background:var(--accent-soft);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:10px 14px;font-size:.88rem}.filter-tabs{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.filter-tabs button{border:0;border-radius:0;min-height:36px;padding:0 12px;font-size:.84rem;background:var(--surface)}.filter-tabs button.active{background:var(--accent);color:#ffffff}.module-tabs{display:flex;flex-wrap:wrap;gap:6px}.module-tabs button{min-height:38px;padding:0 12px;font-size:.86rem}.module-tabs button .badge{margin-left:6px}.activity-list{grid-gap:6px;gap:6px;font-size:.86rem;margin:0;padding:0}.activity-list li{list-style:none;display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.activity-list li span:last-child{color:var(--muted);white-space:nowrap;font-size:.78rem}.mini-map{width:100%;height:220px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);background:var(--accent-soft)}.link-button{cursor:pointer}.topbar-gear{min-height:40px;width:40px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:1.15rem}.admin-panel{right:0;left:auto;min-width:280px}.admin-heading{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;padding:8px 6px 2px}.shell-sidebar .admin-panel{position:absolute;left:0;right:0;bottom:calc(100% + 6px);top:auto}.pat-play{position:absolute;top:8px;right:8px;z-index:3;min-height:34px;padding:0 12px;font-size:.8rem;font-weight:800;background:var(--brand-yellow);color:var(--brand-yellow-ink);border-color:var(--brand-yellow)}.pat-play:disabled{opacity:.7}.board-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.board-actions button{min-height:38px;padding:0 12px;font-size:.84rem}@media print{.board-actions,.pat-play{display:none!important}}.product-picked{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;min-height:44px;background:var(--surface)}.product-picked strong{color:var(--accent-dark);font-size:.92rem}.product-picked span{color:var(--muted);font-size:.8rem}.product-picked button{min-height:30px;padding:0 10px;font-size:.78rem}.product-results{position:absolute;z-index:30;top:100%;left:0;right:0;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(9,17,30,.18);display:grid}.doc-alert-box{display:grid;grid-gap:6px;gap:6px;border:3px solid #b42335;background:#fdecee;color:#7d1622;border-radius:var(--radius-sm);padding:12px 14px}.doc-alert-box strong{font-size:1rem;text-transform:uppercase;letter-spacing:.04em}:root[data-theme=dark] .doc-alert-box{background:#3a1418;color:#ffb3bd}.meter-marker{position:relative;cursor:pointer;line-height:0;filter:drop-shadow(0 2px 3px rgba(9,17,30,.5))}.meter-marker-inactive{opacity:.8}.meter-label{position:absolute;top:100%;left:50%;transform:translate(-50%,3px);background:rgba(255,255,255,.94);color:#16294a;font-size:10px;font-weight:800;line-height:1;padding:2px 5px;border-radius:4px;white-space:nowrap;box-shadow:0 1px 3px rgba(9,17,30,.35)}.meter-marker-inactive .meter-label{background:rgba(233,236,241,.94);color:#5b6675}.meter-label-warn{background:rgba(230,173,0,.96);color:#16294a}.meter-label-alarm{background:rgba(180,35,53,.96);color:#ffffff}.map-panel-layers{width:min(330px,calc(100vw - 24px));max-height:min(72vh,560px);overflow-x:hidden;overflow-y:hidden;gap:8px;align-content:start}.map-panel-layers *{min-width:0}.layer-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.layer-header strong{font-size:.9rem}.layer-actions{display:flex;gap:6px;align-items:center}.layer-actions select{flex:1 1;min-height:32px;font-size:.8rem;width:100%}.layer-upload{flex:1 1;display:inline-grid;place-items:center;min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--brand-yellow);color:var(--brand-yellow-ink);font-weight:800;font-size:.82rem;cursor:pointer;white-space:nowrap}.layer-list{overflow-y:auto;overflow-x:hidden;border-top:1px solid var(--line);padding-top:6px}.layer-list,.layer-row{display:grid;grid-gap:2px;gap:2px}.layer-row{padding:5px 0;border-bottom:1px dashed var(--line)}.layer-row:last-child{border-bottom:none}.layer-head{gap:4px}.layer-head,.layer-name{display:flex;align-items:center}.layer-name{gap:6px;flex:1 1;font-size:.84rem;overflow:hidden}.layer-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-name-input{flex:1 1;min-height:28px;font-size:.82rem}.layer-foot{display:flex;align-items:center;gap:8px}.layer-foot input[type=range]{flex:1 1;min-width:0}.layer-meta{font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-mini{width:26px;font-size:.8rem;line-height:1}.layer-color,.layer-mini{min-height:26px;padding:0;flex:0 0 auto}.layer-color{width:28px;border:1px solid var(--line);border-radius:4px}@media (max-width:699px){.map-panel-layers{top:auto;bottom:8px;left:8px;right:8px;width:auto;max-width:none;max-height:56dvh}}.depth-result{display:flex;flex-wrap:wrap;gap:6px 18px;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.depth-result span{display:grid;grid-gap:1px;gap:1px;min-width:0}.depth-result em{font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.depth-result strong{font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.depth-result-main strong{font-size:1.15rem;color:var(--accent-dark)}.depth-notes{margin:0;padding-left:18px;font-size:.82rem;color:var(--muted);display:grid;grid-gap:2px;gap:2px}.mini-table{width:100%;border-collapse:collapse;font-size:.85rem}.mini-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.mini-table td,.mini-table th{padding:4px 6px;border-bottom:1px solid var(--line)}.mini-table td{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mini-table tr:last-child td{border-bottom:none}.board-with-panel{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:12px;gap:12px;align-items:start}.board-with-panel-main{min-width:0}.hole-inspector{display:grid;grid-gap:8px;gap:8px;align-content:start;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;background:var(--surface);min-width:0}.hole-inspector h3{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.hole-inspector-empty p{margin:0;font-size:.86rem;color:var(--muted)}.hole-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.hole-inspector-head div:first-child{display:grid;grid-gap:1px;gap:1px;min-width:0}.hole-inspector-head strong{font-size:1.05rem}.hole-inspector-head span{font-size:.76rem;color:var(--muted)}.hole-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.hole-field{display:grid;grid-gap:2px;gap:2px;min-width:0;font-size:.74rem;color:var(--muted)}.hole-field span{text-transform:uppercase;letter-spacing:.04em}.hole-field input,.hole-field select{min-height:32px;font-size:.88rem;width:100%}.hole-field em{font-style:normal;font-size:.84rem;color:var(--fg)}.hole-fields>.hole-field:last-child{grid-column:1/-1}.hole-deviation{margin:0;font-size:.82rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hole-deviation-warn{color:#b42335;font-weight:700}.hole-facts{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;border-top:1px solid var(--line);padding-top:8px}.hole-facts span{display:grid;grid-gap:1px;gap:1px;min-width:0}.hole-facts em{font-style:normal;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.hole-facts strong{font-size:.92rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hole-fact-conflict{color:#b42335}.hole-facts-note{margin:0;font-size:.74rem;color:var(--muted)}.hole-inspector-actions{gap:6px;flex-wrap:wrap}.hole-inspector-actions button{min-height:34px;font-size:.84rem}@media (max-width:1099px){.board-with-panel{grid-template-columns:minmax(0,1fr)}.hole-fields{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.board-with-panel-main .hole-canvas{height:min(40vh,360px)}}.shell-group{display:grid;grid-gap:2px;gap:2px}.shell-group+.shell-group{margin-top:6px}.shell-group-head{display:flex;align-items:center;justify-content:space-between;border:none;background:transparent;color:rgba(237,241,247,.62);font:inherit;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px 4px;width:100%;text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.shell-group-head:hover{color:rgba(237,241,247,.9);background:rgba(255,255,255,.05)}.shell-group-head span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-chev{transition:transform .15s ease;font-size:.7rem;flex:0 0 auto}.shell-group.closed .shell-chev{transform:rotate(-90deg)}.shell-group-body{display:grid;grid-gap:2px;gap:2px}.shell-group-body .shell-link{min-height:36px;font-size:.9rem;padding-left:14px}.shell-group-note{margin:0;padding:4px 14px 6px;font-size:.78rem;color:rgba(237,241,247,.6);line-height:1.35}.shell-step{width:20px;height:20px;border-radius:50%;border:2px solid rgba(237,241,247,.5);font-size:.66rem;font-weight:800;display:grid;place-items:center;flex:0 0 auto}.shell-step.partial{border-color:var(--brand-yellow);color:var(--brand-yellow)}.shell-step.done{background:var(--good);border-color:var(--good);color:#ffffff}.shell-link.active .shell-step{border-color:var(--accent-dark);color:var(--accent-dark)}.shell-link.active .shell-step.done{color:#ffffff}.shell-link.dim{opacity:.55}.shell-user .shell-link{min-height:38px}@media (prefers-reduced-motion:reduce){.shell-chev{transition:none}}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:8px;gap:8px}.photo-thumb{position:relative;display:grid;grid-gap:4px;gap:4px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;cursor:pointer;text-align:left;min-height:0}.photo-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--accent-soft)}.photo-thumb-empty{display:grid;place-items:center;aspect-ratio:4/3;color:var(--muted);background:var(--accent-soft)}.photo-thumb-name{font-size:.76rem;font-weight:700;padding:0 8px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-thumb-badge{position:absolute;top:6px;right:6px;min-width:20px;height:20px;border-radius:999px;background:var(--brand-yellow);color:var(--brand-yellow-ink);font-size:.7rem;font-weight:800;display:grid;place-items:center;padding:0 6px}.photo-lightbox{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}.photo-lightbox-backdrop{position:absolute;inset:0;border:none;background:rgba(9,17,30,.7)}.photo-lightbox-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:0;gap:0;width:min(1100px,100%);max-height:90vh;background:var(--surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 24px 60px rgba(9,17,30,.4)}.photo-lightbox-image{display:grid;place-items:center;background:#0f1520;min-height:320px}.photo-lightbox-image img{max-width:100%;max-height:90vh;object-fit:contain}.photo-lightbox-side{display:grid;grid-gap:8px;gap:8px;align-content:start;padding:14px;overflow-y:auto;max-height:90vh;border-left:1px solid var(--line)}@media (max-width:799px){.photo-lightbox-panel{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.photo-lightbox-image{min-height:200px;max-height:45vh}.photo-lightbox-image img{max-height:45vh}.photo-lightbox-side{border-left:none;border-top:1px solid var(--line)}}.pat-deck-tools{display:grid;grid-gap:6px;gap:6px;border-top:1px solid var(--line);padding-top:8px}.pat-deck-tools strong{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pat-hint{font-size:.78rem;color:var(--muted)}.pat-deck-count{position:absolute;top:-8px;right:-6px;font-style:normal;font-size:.6rem;font-weight:800;background:var(--brand-yellow);color:var(--brand-yellow-ink);padding:1px 6px;border-radius:999px;white-space:nowrap}.pat-deck{position:relative}.source-chip{display:inline-block;margin-top:3px;font-size:.7rem;font-weight:700;color:var(--muted);background:var(--accent-soft);padding:1px 7px;border-radius:999px}.source-chip-changed{color:#7d4a00;background:#fff3cd}.pat-hole.front-row{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.pat-hole.front-row.opening-hole{border-color:var(--brand-yellow);box-shadow:inset 0 3px 0 var(--accent),0 0 0 3px rgba(255,192,0,.5)}.pat-check{align-items:center;gap:8px;align-self:end;min-height:38px;font-weight:700}:root{--navy:#19334f;--navy-dark:#12283f;--ink:#20364b;--muted:#67788a;--line:#e0e6eb;--yellow:#ffc800;--paper:#fff;--back:#f4f6f8;--green:#147458;--green-soft:#e9f5ef;--amber:#9a6800;--amber-soft:#fff5d8;--blue-soft:#ebf1f7;--shadow:0 3px 16px #18324b05}*{box-sizing:border-box}body{margin:0;background:var(--back);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a,button,input,select,summary{touch-action:manipulation}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #347dc1;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.2;letter-spacing:-.8px;font-weight:700}h2{font-size:17px;letter-spacing:-.25px}h3{font-size:15px}small{font-size:12px}svg{display:block}.ic{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.ic-sm{width:16px;height:16px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.3px;font-weight:700;text-transform:uppercase}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;grid-gap:20px;gap:20px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.soft-link{border:0;background:none;padding:4px 0;color:var(--muted);text-decoration:none}.soft-link:hover{color:var(--navy);text-decoration:underline}.a-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:white;font-weight:600;font-size:13px;white-space:nowrap;text-decoration:none;transition:background .15s,box-shadow .15s}.a-button:hover{background:#f4f7fa;box-shadow:0 2px 5px #142c4810}.a-button.primary{background:var(--yellow);border-color:var(--yellow);color:#19334f}.a-button.primary:hover{background:#f2bd00}.a-button.navy{background:var(--navy);border-color:var(--navy);color:white}.a-button.quiet{background:transparent;border-color:transparent}.a-button.icon{width:40px;padding:9px}.a-button.small{min-height:34px;padding:6px 11px;font-size:12px}.a-button.danger{color:#b43d3d}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:30px;padding:4px 9px;line-height:1.2;font-size:11px;font-weight:600;white-space:nowrap;background:#eef1f4;color:#596b7c}.badge.green{background:var(--green-soft);color:var(--green)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.blue{background:var(--blue-soft);color:var(--navy)}.badge .dot{width:6px;height:6px;background:currentColor;border-radius:50%}.section{background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);overflow:hidden}.section-pad{padding:22px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:19px}.subtext{font-size:12px;color:var(--muted);margin-top:5px}.separator{height:1px;background:var(--line);margin:18px 0}.a-input,.a-select{background:white;min-height:40px;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px 11px;max-width:100%}.a-input{width:100%}.a-select{font-size:13px}.segmented{display:flex;gap:3px;background:#edf1f5;border-radius:8px;padding:4px;max-width:100%;flex-wrap:wrap}.segmented button{border:0;background:none;padding:7px 12px;border-radius:5px;font-size:12px;font-weight:600;white-space:nowrap}.segmented button[aria-pressed=true]{background:white;box-shadow:0 1px 5px #1b344c14;color:var(--navy)}.segmented.dark button[aria-pressed=true]{background:var(--navy);color:white;box-shadow:none}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;background:linear-gradient(165deg,var(--navy-dark),#1c3857);color:#ced7e1;display:flex;flex-direction:column;padding:29px 15px 16px;z-index:40}.brand{color:white;padding:0 13px 27px;display:block;text-decoration:none}.brand-name{font-size:22px;line-height:1.22;letter-spacing:5px;font-weight:650}.brand-first{display:flex;align-items:center;gap:6px}.sun{display:inline-block;width:23px;height:23px;border-radius:50%;background:var(--yellow);position:relative;margin-left:-1px}.sun:after{content:"";width:34px;height:1px;background:#fff8;position:absolute;left:0;top:11px}.brand-sub{font-size:9px;letter-spacing:4px;color:#b2c3d4;margin-top:8px}.nav-scroll{flex:1 1;overflow:auto;min-height:0;scrollbar-width:thin}.context{padding:12px;margin-bottom:20px;border:1px solid #ffffff22;border-radius:9px;background:#ffffff07}.context small{display:block;color:#aebfd0;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.context button{border:0;background:none;color:white;padding:4px 0 0;text-align:left;display:flex;align-items:center;gap:6px;max-width:100%;font-weight:600}.context button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-label{display:block;font-size:10px;letter-spacing:1.5px;font-weight:650;color:#92a7bc;padding:17px 13px 8px}.nav-item{width:100%;border:0;border-left:3px solid transparent;border-radius:7px;min-height:41px;padding:10px 12px;display:flex;align-items:center;gap:11px;text-align:left;background:none;color:#cdd8e2;font-size:13px;margin-bottom:3px}.nav-item:hover{background:#ffffff09;color:white}.nav-item.active{background:#fff;color:var(--navy);border-left-color:var(--yellow);font-weight:650}.nav-item .status-dot{width:7px;height:7px;margin-left:auto;border-radius:50%;background:#ffc800}.nav-item .status-dot.done{background:#55b593}.nav-bottom{padding-top:13px;margin-top:18px;border-top:1px solid #ffffff18}.user{display:flex;align-items:center;gap:10px;padding:13px 10px 0}.avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#ffffff15;color:white;font-size:11px;font-weight:650;flex-shrink:0}.user small{font-size:10px;color:#9eb2c5}.user strong{font-size:12px;font-weight:550}.workspace{margin-left:228px}.topbar{height:62px;border-bottom:1px solid var(--line);background:#ffffffd9;justify-content:space-between;padding:0 32px;gap:10px}.breadcrumbs,.topbar{display:flex;align-items:center}.breadcrumbs{gap:8px;min-width:0;font-size:12px;color:var(--muted);flex-wrap:wrap}.breadcrumbs button{background:none;border:0;padding:2px;color:inherit;font-size:12px}.breadcrumbs button:hover{color:var(--ink)}.breadcrumbs strong{color:var(--ink);font-weight:600}.demo-label{font-size:10px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;border:1px solid #dce3ea;border-radius:5px;padding:4px 8px;color:#627385}.menu-button{display:none}.main{max-width:1350px;margin:0 auto;padding:30px 32px 36px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:25px}.page-heading p{color:var(--muted);margin-top:8px;font-size:13px}.page-kicker{font-size:10px;font-weight:650;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.footer-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#6c7b8a;font-size:11px;margin:26px 0 0}.mobile-scrim{display:none}.projects-toolbar{justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px;padding:15px 18px}.projects-toolbar,.search{display:flex;align-items:center}.search{gap:10px;flex:1 1;min-width:180px;max-width:380px;color:var(--muted)}.search input{border:0;background:none;min-height:35px;padding:7px 0;min-width:0;width:100%;font-size:13px;outline-offset:3px}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:19px;gap:19px}.project-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:12px;text-align:left;background:white;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.project-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px #18324b12;border-color:#bbc9d4}.project-cover{height:126px;position:relative;background:#e9eee6;overflow:hidden}.project-cover.alt{background:#e5e9ec}.project-cover.warm{background:#efeee5}.terrain{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 72% 55%,transparent 0 17px,#81988330 18px 19px,transparent 20px 34px);transform:rotate(-9deg) scale(1.15)}.terrain:after{content:"";position:absolute;width:110%;height:20px;background:#fff9;transform:rotate(-28deg);top:51%;left:-6%;border:1px solid #d7dfd3}.cover-tags{display:flex;justify-content:space-between;position:absolute;top:13px;left:14px;right:14px;gap:8px}.cover-tag{font-size:10px;padding:3px 7px;border-radius:4px;background:#fffc;font-weight:600;color:#415568;box-shadow:0 1px 2px #00000007}.cover-pin{position:absolute;left:55%;top:43%;height:27px;width:27px;background:var(--navy);border:5px solid white;border-radius:50%;box-shadow:0 2px 5px #0002}.cover-caption{position:absolute;bottom:8px;left:13px;font-size:9px;color:#4d6054;background:#fff9;padding:1px 5px;border-radius:3px}.project-content{padding:18px}.project-title{font-size:17px;font-weight:700;letter-spacing:-.25px}.project-meta{font-size:12px;color:var(--muted);margin:4px 0 16px}.project-data{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid #edf0f3}.project-data strong{font-size:19px;font-weight:650}.project-data small{font-size:11px}.project-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.project-bottom,.project-label{color:var(--muted);font-size:10px}.project-label{margin:0 0 12px;letter-spacing:1.4px;font-weight:650}.new-project-card{border:1px dashed #cbd5df;box-shadow:none;min-height:285px;display:flex;align-items:center;justify-content:center;text-align:center;background:transparent;border-radius:12px;padding:25px}.new-project-card .plus-circle{width:42px;height:42px;border:1px solid #cbd5df;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;color:#61778b}.new-project-card p{font-size:12px;color:var(--muted);margin:6px 0 16px}.overview-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);grid-gap:22px;gap:22px;padding:22px}.map-preview{position:relative;min-height:226px;border-radius:9px;overflow:hidden;background:#e9eee6}.map-preview .terrain{background:repeating-radial-gradient(ellipse at 60% 48%,transparent 0 23px,#81988335 24px 25px,transparent 26px 41px)}.map-place{position:absolute;top:52%;left:49%;padding:4px 10px;border:1px solid #dde4da;border-radius:5px;background:#fffd;font-size:12px;font-weight:650}.map-preview .cover-pin{left:52%;top:33%}.map-action{position:absolute;right:10px;bottom:10px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.stat{padding:13px 15px;background:#f7f9fb;border:1px solid #edf0f3;border-radius:9px;min-width:0}.stat-label{font-size:10px;letter-spacing:.65px;text-transform:uppercase;color:var(--muted);font-weight:600;display:block;margin-bottom:5px}.stat-value{font-size:22px;font-weight:650;line-height:1.25;letter-spacing:-.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-value span{font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted)}.stat-note{display:block;margin-top:4px}.filter-label,.stat-note{color:var(--muted);font-size:11px}.filter-label{display:flex;align-items:center;gap:8px}.blast-table{width:100%;border-collapse:collapse;font-size:12px}.blast-table th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;text-align:left;color:var(--muted);padding:0 10px 13px;border-bottom:1px solid var(--line)}.blast-table td{padding:14px 10px;border-bottom:1px solid #edf0f3;vertical-align:middle}.blast-table tr:last-child td{border-bottom:0}.blast-table tbody tr:hover{background:#f8fafc}.blast-table td:first-child,.blast-table th:first-child{padding-left:0}.blast-table td:last-child,.blast-table th:last-child{padding-right:0;text-align:right}.blast-link{border:0;background:none;color:var(--navy);font-weight:650;text-align:left;padding:3px 0;font-size:13px}.blast-link:hover{text-decoration:underline}.blast-table .tiny{font-size:10px;color:var(--muted)}.blast-table .row-current{background:#fafbf4}.row-arrow{border:0;background:none;padding:8px;color:#6a7d8f;border-radius:6px}.progress-track{height:4px;border-radius:2px;background:#e7edf2;overflow:hidden;margin-top:6px;max-width:75px}.progress-track span{height:100%;display:block;background:#369a7c}.files-list{display:grid}.doc-row{display:flex;align-items:center;gap:12px;min-height:66px;border-bottom:1px solid #edf0f3;padding:10px 0}.doc-row:last-child{border-bottom:0}.doc-symbol{background:#edf2f7;border-radius:8px;width:36px;height:42px;display:grid;place-items:center;color:#42627e;flex-shrink:0}.doc-info{flex:1 1;min-width:0}.doc-info strong{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere}.doc-info small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.doc-row .a-button{margin-left:auto}.doc-check{width:16px;height:16px;accent-color:var(--navy);flex-shrink:0}.doc-meta{font-size:11px;color:var(--muted)}.accordion{border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden}.accordion summary{padding:16px 20px;list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}.accordion summary::-webkit-details-marker{display:none}.accordion summary .chevron{margin-left:auto;transition:transform .2s}.accordion[open] summary .chevron{transform:rotate(90deg)}.accordion[open] summary{border-bottom:1px solid var(--line)}.accordion-content{padding:20px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px}.setting-item h3{font-size:12px;margin-bottom:5px}.setting-item p{font-size:12px;color:var(--muted);margin-bottom:12px}.activity-list{display:grid;grid-gap:17px;gap:17px}.activity-line{display:flex;gap:12px;font-size:12px}.activity-line time{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.activity-line .ic{color:#7b8c9a}.empty{padding:25px 10px;text-align:center;color:var(--muted);font-size:13px}.blast-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.blast-stats .stat{background:white}.blast-summary{padding:17px;background:#eaf0f5;border:1px solid #dde5ed;border-radius:12px}.blast-stats .stat-value{font-size:20px}.blast-summary .stat-label{font-size:10px}.hole-section{padding:20px}.hole-top{gap:12px;margin-bottom:15px}.hole-toolbar,.hole-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.hole-toolbar{gap:8px;padding:11px 12px;border-bottom:1px solid var(--line);background:#fafbfd}.hole-toolbar .view-info{font-size:11px;color:var(--muted)}.hole-shell{border:1px solid #dce4eb;border-radius:9px}.hole-canvas,.hole-shell{overflow:hidden;position:relative}.hole-canvas{height:305px;background-color:#fff;background-image:linear-gradient(#eaf0f4 1px,transparent 0),linear-gradient(90deg,#eaf0f4 1px,transparent 0);background-size:24px 24px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.hole-canvas.dragging{cursor:-webkit-grabbing;cursor:grabbing}.hole-canvas .pattern{position:absolute;transform-origin:0 0;width:934px;height:224px}.hole{position:absolute;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1.4px solid #9eb0c3;background:#f5f8fb;color:#264660;font-size:10px;line-height:1.35;box-shadow:0 1px 3px #16354e0b;cursor:pointer}.hole .hole-number{font-size:11px}.hole .hole-value{font-size:10px}.hole.drilled{background:#eaf5f0;border-color:#78b59c;color:#285d4a}.hole .hole-tick{right:-2px;top:-3px;background:#388767;color:white;font-size:8px;line-height:13px;width:13px;height:13px}.hole[aria-pressed=true]{background:#fff5c4;border:2px solid #b89100;color:#17344d;box-shadow:0 0 0 4px #ffc80038}.hole.pulse{background:#ffcc17!important;border-color:#c89800!important;box-shadow:0 0 0 5px #ffd73855}.hole-legend{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}.legend-dot{display:inline-block;width:8px;height:8px;border:1px solid #78b59c;background:#eaf5f0;border-radius:50%;margin-right:5px}.legend-dot.planned{border-color:#9eb0c3;background:#f5f8fb}.hole-selection{padding:14px;border-top:1px solid var(--line);background:#f8fafc;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hole-selection .hole-ident{font-size:16px;font-weight:650;min-width:40px}.hole-selection .a-input{max-width:92px;min-height:36px;font-size:14px}.hole-selection label{display:flex;align-items:center;gap:7px;font-size:12px}.hole-selection .close-selection{margin-left:auto}.tasks{display:grid;grid-gap:0;gap:0}.task{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:white;border:0;border-bottom:1px solid #edf0f3;padding:14px 0;min-height:71px}.task:last-child{border-bottom:0}.task:hover{background:#f9fbfc}.task-symbol{width:37px;height:37px;border-radius:9px;background:#eff3f7;display:grid;place-items:center;color:#50677c;flex-shrink:0}.task-symbol.amber{background:var(--amber-soft);color:#977000}.task-symbol.green{background:var(--green-soft);color:var(--green)}.task-main{min-width:0;flex:1 1}.task-main strong{font-size:13px;display:block}.task-main small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.task .task-arrow{margin-left:5px;color:#8da0af}.task .badge{min-width:76px;justify-content:center}.tools-line{border-top:1px solid var(--line);margin-top:5px;padding-top:16px;align-items:center;gap:8px;color:var(--muted);font-size:11px}.tabs,.tools-line{display:flex;flex-wrap:wrap}.tabs{gap:19px;border-bottom:1px solid var(--line);margin-top:-3px}.tabs button{padding:9px 0 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.tabs button[aria-selected=true]{color:var(--navy);font-weight:650;border-bottom-color:var(--yellow)}.tabs .count{font-size:10px;line-height:18px;min-width:18px;border-radius:4px;background:#edf1f5;text-align:center;padding:0 4px}.document-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:17px 0 8px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;padding-top:10px}.photo-tile{padding:0;background:none;border:1px solid var(--line);border-radius:8px;overflow:hidden;text-align:left}.photo-art{height:105px;position:relative;background:linear-gradient(155deg,#e1e8e9 0 42%,#7f9192 43% 55%,#a1aaa1 56% 63%,#d9d2c2 64%);overflow:hidden}.photo-art.b{background:linear-gradient(170deg,#dce8ec 0 32%,#a4b0a1 33% 57%,#b5ad99 58% 72%,#cfc6b5 73%)}.photo-art.c{background:linear-gradient(159deg,#dce6eb 0 35%,#9aaba7 36% 52%,#c5bda9 53% 75%,#e0d6bd 76%)}.photo-art:after{content:"Illustration";position:absolute;bottom:7px;left:7px;font-size:9px;background:#fff9;padding:2px 5px;border-radius:3px;color:#3b505e}.photo-art img{width:100%;height:100%;object-fit:cover}.photo-art.real:after{display:none}.photo-label{display:block;padding:10px;font-size:11px;font-weight:600}.photo-label small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.floating-toast{position:fixed;bottom:24px;left:calc(50% + 100px);transform:translateX(-50%);padding:12px 18px;background:#19334f;color:white;border:1px solid #ffffff20;border-radius:10px;box-shadow:0 5px 25px #11243825;font-size:12px;max-width:calc(100% - 32px);z-index:100;pointer-events:none}.dialog{max-width:510px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:16px;padding:0;box-shadow:0 24px 100px #142e4b40;color:var(--ink);background:white}.dialog::-webkit-backdrop{background:#11263d6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog::backdrop{background:#11263d6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-body{padding:22px}.dialog-body p{color:var(--muted);font-size:13px;line-height:1.7}.dialog-body .notice{padding:12px 14px;background:var(--blue-soft);border-radius:8px;margin:15px 0;font-size:12px;color:#48627a}.dialog-body .form-field{display:grid;grid-gap:6px;gap:6px;margin:14px 0;font-size:12px;font-weight:600}.dialog-body .form-field input{font-weight:400}.dialog-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.dialog-body img{width:100%;border-radius:8px}.dialog-body .map-preview{height:280px}.portrait{width:36px;height:36px;border-radius:50%;background:#eaf0f5;color:var(--navy);display:grid;place-items:center;font-size:12px;font-weight:650}.person{display:flex;align-items:center;gap:10px;margin:16px 0}.person strong{font-size:13px}.person small{color:var(--muted)}@media(min-width:1500px){.main{padding-left:42px;padding-right:42px}.hole-canvas{height:330px}}@media(max-width:1200px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.main{padding:25px 24px}.topbar{padding:0 24px}.blast-table .optional{display:none}.stat-value{font-size:20px}}@media(max-width:1000px){.sidebar{width:204px;padding-left:11px;padding-right:11px}.workspace{margin-left:204px}.overview-hero{grid-template-columns:1fr}.map-preview{min-height:170px}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.blast-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:1fr}.floating-toast{left:calc(50% + 95px)}.brand-name{font-size:20px}.row .a-button{flex-shrink:0}}@media(max-width:760px){.sidebar{width:270px;transform:translateX(-101%);transition:transform .2s;padding-top:24px}.sidebar.open{transform:translateX(0)}.sidebar.open+.mobile-scrim{display:block;position:fixed;inset:0;background:#142d4c70;z-index:35;border:0}.workspace{margin-left:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:25;min-height:62px;height:auto;padding:10px 16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.menu-button{display:inline-flex}.breadcrumbs{gap:4px;max-width:calc(100% - 125px)}.breadcrumbs .desktop-crumb{display:none}.topbar .demo-label{font-size:8px;padding:4px 5px}.main{padding:22px 16px 28px}.page-heading{margin-bottom:20px}h1{font-size:25px}.page-heading .row{gap:7px}.page-heading p{font-size:12px}.hole-section,.section-pad{padding:17px}.floating-toast{left:50%;width:max-content}.a-button{min-height:44px}.segmented button{min-height:36px}.nav-item,.tabs button{min-height:44px}.a-input,.a-select,.search input{font-size:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-hero{padding:17px;gap:15px}.blast-table thead{display:none}.blast-table,.blast-table tbody{display:block;width:100%}.blast-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:12px;column-gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);position:relative}.blast-table td{border:0;padding:3px 0;min-width:0}.blast-table .optional{display:none}.blast-table td[data-label]{font-size:12px}.blast-table td[data-label]:before{content:attr(data-label) " · ";font-size:10px;color:var(--muted)}.blast-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}.blast-table .blast-name{grid-column:1;grid-row:1}.blast-table .area{grid-column:1;grid-row:2}.blast-table .holes-cell{grid-column:2;grid-row:2/4;text-align:right}.blast-table .volume-cell{grid-column:1;grid-row:3}.blast-table .end-cell{display:none}.blast-table tr:last-child{border:0;padding-bottom:0}.progress-track{margin-left:auto}.doc-meta{display:none}.hole-canvas{height:290px}.hole-toolbar .view-info{display:none}.hole-toolbar{padding:9px}.hole-legend .hint{width:100%}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{gap:16px}.footer-note{font-size:10px}.photo-art{height:110px}.doc-row .a-button span.optional-text{display:none}}@media(max-width:450px){.projects-grid{grid-template-columns:1fr}.projects-toolbar{padding:10px 14px;gap:8px}.search{max-width:none;flex-basis:100%}.projects-toolbar .segmented{width:100%;justify-content:space-between}.projects-toolbar .segmented button{padding:7px 9px}.project-cover{height:115px}.new-project-card{min-height:140px}.project-content{padding:16px}.page-heading>.row{width:100%;justify-content:space-between}.stat{padding:12px}.blast-stats .stat-value,.stat-value{font-size:20px}.stat-label{font-size:9px}.blast-summary{padding:10px}.blast-stats{gap:8px}.hole-top>.segmented{width:100%;justify-content:space-between}.hole-top .segmented button{padding:7px 10px;flex:1 1}.hole-selection{align-items:flex-start;gap:9px}.hole-selection .close-selection{margin-left:auto}.task{gap:10px;padding:12px 0}.task .badge{font-size:10px;min-width:65px}.task-symbol{width:32px;height:34px}.task .task-arrow{width:14px;margin-left:0}.task-main strong{font-size:12px}.task-main small{font-size:10px}.tabs{gap:12px}.tabs button{font-size:11px}.section-title{margin-bottom:14px}.a-select{max-width:100%}.doc-row{gap:9px}.doc-symbol{width:30px}.gallery{gap:9px}.activity-line{flex-wrap:wrap}.activity-line time{margin-left:31px}.demo-label{display:none}.breadcrumbs{max-width:calc(100% - 84px)}.hole-toolbar .a-button.small{font-size:11px;padding:6px 9px;min-height:40px}.filter-label{width:100%;justify-content:space-between}.filter-label .a-select{flex:1 1}.document-bar .a-button{font-size:12px}.tools-line .a-button{font-size:11px}.map-preview{min-height:180px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.user>div{min-width:0;flex:1 1}.user small,.user strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-detail,.user br{display:none}@media(max-width:760px){.mobile-detail{display:inline-flex}}@media print{.a-button,.floating-toast,.footer-note,.mobile-scrim,.sidebar,.topbar{display:none!important}.workspace{margin:0}.main{max-width:none;padding:0}.section{page-break-inside:avoid;break-inside:avoid;box-shadow:none}.hole-canvas{height:300px}body{background:white}}.main{display:grid;grid-gap:20px;gap:20px;align-content:start}.main-full{max-width:none;padding:0;display:block}.main-wide{max-width:1500px}.page-heading{margin-bottom:5px}.page-heading-default h1{font-size:24px}.map-preview>img,.project-cover.real>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.map-preview .mini-map{position:absolute;inset:0;height:100%;min-height:0;border:0;border-radius:0}.map-preview{cursor:pointer}.map-preview:focus-visible{outline:3px solid #347dc1}.settings-panel .stack{gap:12px}.section-pad>.form-grid,.settings-panel .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.form-grid label{display:grid;grid-gap:6px;gap:6px;font-size:12px;font-weight:600}.form-grid input:not(.a-input):not([type=checkbox]),.form-grid select:not(.a-select){min-height:40px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-weight:400}.notice{padding:12px 14px;background:var(--blue-soft);border-radius:8px;font-size:12px;color:#48627a}.projects-toolbar{margin-bottom:0}.project-label{margin-bottom:12px}.projects-grid+.project-label{margin-top:8px}.badge.badge-ok{background:var(--green-soft);color:var(--green)}.badge.badge-pending{background:var(--amber-soft);color:var(--amber)}.badge.badge-todo{background:#eef1f4;color:#596b7c}.badge.badge-done{background:var(--blue-soft);color:var(--navy)}.ctx-picker{margin-top:10px;display:grid;grid-gap:6px;gap:6px}.ctx-search{display:flex;align-items:center;gap:8px;border:1px solid #ffffff2a;border-radius:7px;padding:0 9px;background:#ffffff10;color:#cdd8e2}.ctx-search input{flex:1 1;min-width:0;border:0;background:none;color:white;min-height:34px;font-size:13px;outline:none}.ctx-search input::placeholder{color:#9eb2c5}.ctx-list{display:grid;grid-gap:2px;gap:2px;max-height:240px;overflow-y:auto;scrollbar-width:thin}.ctx-row{display:grid;grid-template-columns:auto 1fr;grid-gap:8px;gap:8px;align-items:baseline;border:0;background:none;color:#cdd8e2;text-align:left;padding:7px 8px;border-radius:6px;font-size:12px;min-height:34px}.ctx-row strong{color:white;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ctx-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-row:hover{background:#ffffff10}.ctx-row.active{background:#ffffff18;box-shadow:inset 3px 0 0 var(--yellow)}.ctx-empty{color:#9eb2c5;font-size:12px;padding:6px 8px}.context button{width:100%}.context button span{flex:1 1}.card{border-radius:13px;box-shadow:var(--shadow)}.hole{border-width:2px;border-color:var(--status-color);background:var(--paper);color:var(--ink);display:grid;place-items:center;align-content:center;grid-gap:0;gap:0;line-height:1.05}.hole .hole-number{font-size:calc(.72rem * var(--label-scale, 1));font-weight:650}.hole .hole-value{font-size:calc(.66rem * var(--label-scale, 1));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hole .hole-value .is-planned{color:var(--muted)}.hole .hole-value .is-status{font-size:calc(.58rem * var(--label-scale, 1))}.hole .hole-value small{display:block;font-size:.6em;color:var(--muted)}.hole .hole-value .is-conflict{color:var(--danger);font-weight:700}.hole .hole-tick{font-style:normal;position:absolute;top:-6px;right:-6px;width:18px;height:18px;line-height:18px;border-radius:50%;background:var(--status-color);color:#ffffff;font-size:11px;display:grid;place-items:center;font-weight:700}.hole.status-charged,.hole.status-drilled,.hole.status-fired{background:color-mix(in srgb,var(--status-color) 14%,var(--paper))}.hole.status-blocked,.hole.status-deviation{background:#fbe5e8}.hole.status-excluded{opacity:.45;text-decoration:line-through}.hole.is-pending{border-style:dashed}.hole.has-conflict{border-color:var(--danger)}.hole.is-suggested{border-style:dashed;background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 4px,var(--blue-soft) 4px,var(--blue-soft) 8px)}.hole.is-suggested:after{content:"förslag";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);font-size:9px;background:var(--yellow);color:var(--navy);border-radius:8px;padding:0 5px;font-style:normal;font-weight:700}.ux-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.ux-subnav button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.ux-context{padding:11px 16px;background:#eef3f7;border:1px solid #dce5ed;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px;font-size:12px}.ux-context small{color:var(--muted)}.ux-context .row{gap:7px}.ux-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-gap:20px;gap:20px;align-items:start}.ux-grid>.section{min-width:0}.ux-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.ux-field{display:grid;grid-gap:6px;gap:6px;align-content:start;min-width:0;font-size:12px;font-weight:600}.ux-field .a-input,.ux-field .a-select{width:100%;font-weight:400}.ux-field small{font-weight:400;font-size:10px;color:var(--muted)}.ux-field textarea{min-height:85px;resize:vertical}.ux-full{grid-column:1/-1}.ux-summary{padding:20px;background:var(--navy);color:white;border-radius:12px}.ux-summary h2{font-size:15px;color:white}.ux-summary p{font-size:12px;color:#bfd0df;margin-top:8px}.ux-summary dl{margin:20px 0 0}.ux-summary dl div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;border-bottom:1px solid #ffffff20;padding:10px 0}.ux-summary dt{color:#bcd0df;font-size:12px}.ux-summary dd{margin:0;font-weight:600;font-size:15px}.ux-summary .a-button{margin-top:20px;width:100%}.ux-aside{display:grid;grid-gap:16px;gap:16px}.ux-note{font-size:11px;color:var(--muted);line-height:1.6;padding:12px 14px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px}.ux-note.warn{color:#815500;background:#fff8e5;border-color:#f2dfaa}.ux-note.red{background:#fff0f0;border-color:#edbdbd;color:#a52a36}.ux-note strong{display:block;margin-bottom:3px}.ux-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}.ux-board{background-color:white;background-image:linear-gradient(#ecf0f4 1px,transparent 0),linear-gradient(90deg,#ecf0f4 1px,transparent 0);background-size:25px 25px;padding:30px 20px;overflow:auto;max-width:100%;min-height:320px}.ux-board-inner{display:grid;grid-template-columns:repeat(8,48px);grid-gap:16px 18px;gap:16px 18px;width:max-content;margin:15px auto}.ux-hole{width:48px;height:48px;background:#f3f7fb;border:1px solid #a4b6c8;border-radius:50%;padding:0;line-height:1.4;display:grid;align-content:center;justify-items:center}.ux-hole,.ux-hole strong{font-size:11px}.ux-hole small{font-size:10px}.ux-hole.done{background:#e7f3ee;border-color:#83baa3;color:#235e47}.ux-hole[aria-pressed=true]{background:#fff0a9;border:2px solid #ba8e00;box-shadow:0 0 0 4px #ffcb0029}.ux-board-inner.staggered .ux-hole:nth-child(n+25):nth-child(-n+32),.ux-board-inner.staggered .ux-hole:nth-child(n+9):nth-child(-n+16){transform:translateX(28px)}.ux-board-inner.staggered{padding-right:28px}.ux-inspector{border:1px solid #d7e0e9;border-radius:12px;background:white;overflow:hidden}.ux-inspector-head{background:#f0f5f9;padding:17px;display:flex;align-items:center;justify-content:space-between}.ux-inspector-body{padding:17px}.ux-big-input input{font-size:27px!important;min-height:58px;font-weight:650!important}.ux-meter{height:5px;background:#e9eef3;border-radius:5px;margin:12px 0;overflow:hidden}.ux-meter span{display:block;height:100%;background:#3a987c}.ux-mini-metrics{display:flex;gap:24px;flex-wrap:wrap;padding:16px 20px;border-top:1px solid var(--line)}.ux-mini-metrics strong{display:block;font-size:16px}.ux-mini-metrics small{color:var(--muted);font-size:10px}.ux-inspector .ux-form{gap:12px}.ux-inspector .a-button{font-size:12px}.ux-page-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}.ux-products{display:grid}.ux-product{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:15px 0}.ux-product:last-child{border:0}.ux-product-main{min-width:0;flex:1 1}.ux-product-main strong{font-size:13px}.ux-product-main small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ux-product .a-input{width:95px;min-height:36px;font-size:13px}.ux-fav{background:none;border:0;color:#8293a3;padding:8px;font-size:22px;line-height:1}.ux-fav[aria-pressed=true]{color:#a87800}.ux-table{width:100%;border-collapse:collapse;font-size:12px}.ux-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:10px;border-bottom:1px solid var(--line)}.ux-table td{padding:14px 10px;border-bottom:1px solid #eaf0f4}.ux-table td:first-child,.ux-table th:first-child{padding-left:0}.ux-table td:last-child{text-align:right}.ux-table tr:last-child td{border-bottom:0}.ux-table small{font-size:10px;color:var(--muted)}.ux-check{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid #edf1f5;padding:13px 0;font-size:13px}.ux-check input{width:18px;height:18px;accent-color:var(--green);margin:1px 0;flex-shrink:0}.ux-check:last-child{border-bottom:0}.ux-check small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.ux-check.checked>span{text-decoration:line-through;color:#6a7f72}.ux-checklist-title{display:flex;gap:10px;align-items:center;margin-bottom:6px}.ux-step{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--blue-soft);color:var(--navy);font-size:11px;font-weight:650}.ux-paper-wrap{padding:24px;background:#e9edf2;border-radius:12px;overflow:hidden}.ux-paper{max-width:700px;padding:36px;margin:auto;background:white;color:var(--ink);box-shadow:0 5px 25px #15334b10;border:1px solid #dee5ec}.ux-paper-header{padding-bottom:21px;border-bottom:3px solid var(--navy);display:flex;justify-content:space-between;gap:16px}.ux-paper-header .wordmark{font-weight:750;font-size:17px;letter-spacing:3px}.ux-paper h1{font-size:23px;margin:26px 0 8px}.ux-paper h2{font-size:14px;margin:24px 0 12px}.ux-paper p{font-size:12px;color:var(--muted)}.ux-paper-footer{font-size:10px;color:var(--muted);border-top:1px solid var(--line);margin-top:34px;padding-top:14px;display:flex;justify-content:space-between}.ux-report-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin:22px 0}.ux-report-grid span{display:block;font-size:10px;color:var(--muted)}.ux-report-grid strong{font-size:13px}.ux-map{height:480px;position:relative;overflow:hidden;background:#e9eee5;border-radius:10px}.ux-map .terrain{background:repeating-radial-gradient(ellipse at 55% 60%,transparent 0 27px,#8e9f8138 28px 29px,transparent 30px 50px)}.ux-map-zone{position:absolute;left:32%;top:29%;width:33%;height:42%;border:2px dashed #ae8700;border-radius:35% 20% 25% 40%;background:#ffdc6740}.ux-map-point{border:3px solid white;background:var(--navy);color:white;padding:5px 8px;border-radius:20px;font-weight:650;box-shadow:0 2px 6px #14334b30}.ux-map-note,.ux-map-point{position:absolute;font-size:10px}.ux-map-note{bottom:14px;left:14px;right:14px;background:#fffd;border-radius:6px;padding:8px 10px;color:#52687a}.ux-layer{display:flex;align-items:center;gap:9px;font-size:12px;padding:10px 0}.ux-layer input{accent-color:var(--navy)}.ux-count{margin-left:auto;background:#eef2f6;border-radius:5px;padding:2px 6px;font-size:10px}.ux-directory,.ux-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:15px;gap:15px}.ux-link-card{display:flex;align-items:center;gap:15px;width:100%;padding:18px;background:white;border:1px solid var(--line);border-radius:10px;text-align:left;transition:background .15s}.ux-link-card:hover{background:#f9fbfc;border-color:#b9cbd9}.ux-link-card strong{display:block;font-size:13px}.ux-link-card small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ux-link-card .ic:last-child{margin-left:auto;color:#7f94a7}.ux-link-card .task-symbol{width:38px;height:40px}.ux-section-label{font-size:10px;font-weight:650;text-transform:uppercase;color:var(--muted);letter-spacing:1px;margin:23px 0 11px}.ux-tabs-wrap{margin-bottom:20px}.ux-banner{background:#19334f;color:white;padding:27px;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:20px}.ux-banner p{color:#c6d4e1;font-size:12px;margin-top:8px}.ux-login{max-width:410px;margin:35px auto}.ux-login .section{padding:30px}.ux-login h1{font-size:25px}.ux-login .brand-name{color:var(--navy);margin-bottom:25px}.ux-progress-state{margin-top:15px;font-size:11px;color:var(--muted)}.ux-bottom-nav{display:none}.ux-page-selector{max-width:175px;font-size:11px;min-height:34px;padding:6px 8px}.ux-state-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--green)}@media(max-width:1150px){.ux-grid{grid-template-columns:minmax(0,1fr) 255px}.ux-board-inner{gap:14px}.ux-board{padding:25px 12px}.ux-table .ux-hide{display:none}}@media(max-width:1000px){.ux-grid{grid-template-columns:1fr}.ux-aside{grid-template-columns:1fr 1fr}.ux-inspector{max-width:none}.ux-board{min-height:280px}.ux-inspector-body .ux-form{grid-template-columns:repeat(3,minmax(0,1fr))}.ux-library-grid{grid-template-columns:1fr}.ux-page-selector{max-width:145px}}@media(max-width:760px){.ux-aside{grid-template-columns:1fr}.ux-inspector-body .ux-form{grid-template-columns:repeat(2,minmax(0,1fr))}.ux-grid{gap:16px}.ux-form{gap:13px}.ux-field .a-input,.ux-field .a-select{font-size:16px}.ux-board-inner{margin:10px 0;gap:17px}.ux-board{min-height:280px;max-height:370px}.ux-context{padding:12px}.ux-context>.row{width:100%;justify-content:space-between}.ux-table,.ux-table tbody{display:block}.ux-table thead{display:none}.ux-table tr{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--line);padding:12px 0;grid-gap:5px 12px;gap:5px 12px}.ux-table td{border:0;padding:3px 0;overflow-wrap:anywhere;min-width:0}.ux-table td:first-child{font-weight:600}.ux-table td:last-child{grid-column:2;grid-row:1/4;align-self:center}.ux-table td.ux-hide{display:none}.ux-paper-wrap{padding:10px}.ux-paper{padding:20px}.ux-paper h1{font-size:20px}.ux-paper-header{flex-wrap:wrap}.ux-directory{grid-template-columns:1fr}.ux-page-selector{max-width:135px}.topbar .demo-label{display:none}.ux-product{gap:7px;flex-wrap:wrap}.ux-product .a-input{font-size:16px}.ux-product-main{min-width:135px}.ux-map{height:370px}.ux-banner{align-items:flex-start;flex-direction:column}.ux-banner h1{font-size:23px}.ux-login{margin-top:10px}.ux-login .section{padding:24px}.ux-mini-metrics{gap:15px;padding:14px}.ux-page-foot{position:-webkit-sticky;position:sticky;bottom:8px;background:#fffffff2;border:1px solid var(--line);border-radius:10px;padding:9px;box-shadow:0 3px 18px #19334f10;z-index:10}.ux-page-foot .a-button{flex:1 1}}@media(max-width:420px){.ux-form{grid-template-columns:1fr}.ux-inspector-body .ux-form{grid-template-columns:1fr 1fr}.ux-page-selector{max-width:110px}.ux-tabs-wrap .tabs{gap:15px}.ux-subnav{gap:6px}.ux-subnav .a-button{font-size:12px;padding:8px 10px}.ux-report-grid{gap:9px}.ux-top-controls{width:100%}.ux-note{font-size:11px}.ux-summary{padding:18px}.ux-page-foot .a-button{font-size:11px;padding:8px}.ux-map-point{font-size:9px}}.ux-grid>.section>.hole-shell{border:0;border-radius:0}.ux-field input:not([type=checkbox]),.ux-field select,.ux-field textarea{width:100%;font-weight:400;min-height:40px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}.ux-field em{font-style:normal;font-weight:400;color:var(--muted)}.badge.red{background:#fff0f0;color:#a52a36}.section.dol-on{border:2px solid var(--danger);box-shadow:0 0 0 3px #b4233514}.ux-summary .ux-meter{background:#ffffff24;margin:18px 0 0}.pat-deck.has-decks,.pat-hole.has-decks{border-style:double;border-width:4px}.pat-deck-count{z-index:3}.hole-toolbar .hole-actions{gap:6px;flex:1 1 auto;min-width:0}.a-button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#ffffff}.a-button[aria-pressed=true]:hover{background:var(--navy-dark)}@media (max-width:760px){.ux-inspector{bottom:0;z-index:20;max-height:52vh;overflow:auto;box-shadow:0 -6px 18px #14283c1f}.ux-inspector,.ux-inspector-head{position:-webkit-sticky;position:sticky}.ux-inspector-head{top:0;z-index:1}}.brand{background:none;border:0;width:100%;text-align:left;cursor:pointer;border-radius:8px;min-height:0;font:inherit}.brand:hover{background:#ffffff09}.brand-logo{display:block;max-width:100%;max-height:52px;object-fit:contain;object-position:left center}.picker-star svg{fill:none}.picker-star[aria-pressed=true] svg{fill:var(--yellow);color:#a87800}.static-map{position:relative;overflow:hidden;background:#e9eee6}.static-map-inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.static-map-inner img{position:absolute;width:256px;height:256px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.static-map-pin{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;background:var(--navy);border:5px solid white;border-radius:50%;box-shadow:0 2px 5px #0002}.static-map-credit{position:absolute;right:6px;bottom:4px;font-size:9px;color:#3b505e;background:#fffb;padding:1px 5px;border-radius:3px}.map-preview .static-map,.project-cover .static-map{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.map-preview .map-place{top:auto;bottom:44px;left:10px}.log-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.log-filters label{display:grid;grid-gap:6px;gap:6px;font-size:12px;font-weight:600}.log-filters .a-input,.log-filters .a-select{width:100%;font-weight:400}.log-filter-text{grid-column:span 2}@media (max-width:450px){.log-filter-text{grid-column:auto}}.audit-who .soft-link{font-weight:700;color:var(--ink);text-align:left;overflow-wrap:anywhere}.doc-symbol.doc-thumb{padding:0;border:1px solid var(--line);background:#fff;width:56px;height:42px;overflow:hidden;cursor:pointer}.doc-thumb img{display:block;width:100%;height:100%;object-fit:cover}.doc-symbol.tone-pdf{background:#fbecec;color:#b43d3d}.doc-symbol.tone-xls{background:#e9f5ef;color:#1f7a4d}.doc-symbol.tone-word{background:#e8f0fb;color:#2b5fa8}.doc-symbol .ic{width:22px;height:22px}.ncvib-badge{display:inline-flex;align-items:center;gap:7px;margin-left:0;padding:3px 8px 3px 9px;border:1px solid var(--line);border-radius:30px;background:#fff;font-size:11px;font-weight:600;color:#7a8a99;vertical-align:middle;cursor:pointer}.ncvib-badge:hover{background:#f4f7fa}.meter-cell{display:inline-flex;align-items:center;gap:12px}.meter-icon{line-height:0;flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(9,17,30,.35))}.ncvib-source{height:14px;width:auto;vertical-align:middle}.ncvib-logo{display:block;height:11px;width:auto}.ncvib-check{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1.5px solid #b9c4cf;color:#b9c4cf;background:#fff}.ncvib-check .ic{width:11px;height:11px;stroke-width:2.4}.ncvib-badge.ok{border-color:#b9dccb;color:var(--green)}.ncvib-badge.ok .ncvib-check{border-color:var(--green);background:var(--green);color:#fff;animation:ncvib-pulse 2s ease-in-out infinite}.ncvib-badge.warn{border-color:#f0d48a;color:#a16207}.ncvib-badge.warn .ncvib-check{border-color:#d9a400;background:#d9a400;color:#fff}.ncvib-badge.down{border-color:#f3b4b4;color:#b42335}.ncvib-badge.down .ncvib-check{border-color:#b42335;background:#b42335;color:#fff}.ncvib-badge.mini{padding:2px 5px 2px 7px;gap:5px;cursor:default}.ncvib-badge.mini .ncvib-check{width:15px;height:15px}.ncvib-badge.mini .ncvib-check .ic{width:9px;height:9px}@keyframes ncvib-pulse{0%{box-shadow:0 0 0 0 rgba(20,116,88,.45)}70%{box-shadow:0 0 0 7px rgba(20,116,88,0)}to{box-shadow:0 0 0 0 rgba(20,116,88,0)}}@media (prefers-reduced-motion:reduce){.ncvib-badge.ok .ncvib-check{animation:none;box-shadow:0 0 0 3px rgba(20,116,88,.2)}}.map-preview .static-map-inner img,.project-cover .static-map-inner img{position:absolute;inset:auto;width:256px;height:256px;object-fit:none}.ncvib-row{margin-top:10px}.vib-chart{display:grid;grid-gap:10px;gap:10px}.vib-chart svg{width:100%;height:auto;display:block;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm)}.vib-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.vib-key{display:inline-flex;align-items:center;gap:6px}.vib-key:before{content:"";width:16px;height:3px;border-radius:2px}.vib-key-predicted:before{background:var(--green)}.vib-key-limit:before{background:repeating-linear-gradient(90deg,var(--navy) 0 5px,transparent 5px 9px)}.vib-key-now:before{background:var(--amber)}.vib-axis{margin:0;font-size:11px;color:var(--muted)}.customer-form{display:grid;grid-gap:12px;gap:12px}.customer-form .form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.field-error{color:#b43d3d;font-weight:500}.pat-hole em{display:block;font-style:normal;color:var(--muted);font-size:calc(.58rem * var(--label-scale, 1));line-height:1.15}.pat-hole.dark-block em,.pat-hole.pat-colored em{color:inherit;opacity:.8}.pat-export-choice{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;font-size:.9rem}.pat-export-choice input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.pat-export-choice small{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}.pat-grid{grid-template-columns:minmax(0,1fr) 360px}.pat-aside{position:-webkit-sticky;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}.pat-aside .pat-tool-row{gap:6px}.pat-aside .pat-inline input,.pat-aside .pat-inline select{width:100%}.pat-aside .pat-inline{flex:1 1 110px}.pat-panel-compact{border:0;padding:0;gap:6px}.pat-panel-compact .pat-tool-row button{min-height:34px;font-size:.78rem;padding:0 8px}@media (max-width:1150px){.pat-grid{grid-template-columns:minmax(0,1fr) 320px}}@media (max-width:1000px){.pat-aside,.pat-grid{grid-template-columns:1fr}.pat-aside{position:static;max-height:none;overflow:visible}}.pat-stepper{display:flex;align-items:stretch;gap:0}.pat-stepper input{border-radius:0;text-align:center;min-width:0;flex:1 1}.pat-stepper button{min-height:38px;width:34px;flex-shrink:0;padding:0;font-size:1.05rem;font-weight:700;border:1px solid var(--line);background:var(--surface);color:var(--accent);cursor:pointer}.pat-stepper button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:0}.pat-stepper button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:0}.pat-stepper button:hover:not(:disabled){background:var(--accent-soft)}.pat-stepper button:disabled{color:var(--muted);cursor:not-allowed}.pat-holebar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.pat-holebar-title{font-size:.95rem;white-space:nowrap}.pat-holebar-body{flex:1 1 320px;min-width:0}.pat-holebar .pat-detail-grid{display:flex;gap:22px;flex-wrap:wrap;margin:0}.pat-holebar .pat-detail-grid>div{display:grid;grid-gap:2px;gap:2px;min-width:0}.pat-holebar .pat-detail-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.pat-holebar .pat-detail-grid strong{font-size:13px}@media (max-width:450px){.pat-holebar{gap:10px;padding:10px 12px}.pat-holebar .pat-detail-grid{gap:14px}}.pat-panel-compact{display:grid;grid-gap:12px;gap:12px}.pat-tool-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pat-tool-block{display:grid;grid-gap:6px;gap:6px}.pat-tool-label{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.pat-stepper-sm button{width:32px;min-height:32px;font-size:.95rem}.pat-stepper-sm button:first-child{border-right:1px solid var(--line)}.pat-hole-dirs{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.pat-hole-dirs button{min-height:32px;font-size:.8rem;padding:0 6px}.pat-hole-actions{display:flex;gap:6px;flex-wrap:wrap}.pat-hole-actions button{min-height:32px;font-size:.78rem;padding:0 9px;flex:1 1 auto}.pat-check{display:flex;gap:9px;align-items:flex-start;border-top:1px solid var(--line);padding-top:11px}.pat-check input{width:16px;height:16px;margin-top:2px;flex-shrink:0;accent-color:var(--accent)}.pat-check>span{font-size:12px;font-weight:600;line-height:1.3}.pat-check small{display:block;font-weight:400;font-size:10px;color:var(--muted);margin-top:2px}.source-chip em{font-style:normal;font-weight:700;margin-left:5px;padding:0 5px;border-radius:999px;background:#fff0f0;color:#a52a36}.dol-notice{border:3px solid var(--danger);border-radius:var(--radius-sm);background:#fdecee;color:#7d1622;padding:12px 14px;display:grid;grid-gap:10px;gap:10px}.dol-notice.dol-found{border-color:var(--good);background:#eaf6f0;color:#14503a}.dol-notice.dol-not_found{border-color:#b3801a;background:#fff6e2;color:#6b4b06}.dol-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dol-head strong{display:inline-flex;align-items:center;gap:7px;font-size:1rem;text-transform:uppercase;letter-spacing:.04em}.dol-head .a-button{margin-left:auto}.dol-body{display:grid;grid-gap:9px;gap:9px}.dol-body p{margin:0;font-size:.88rem;line-height:1.5}.dol-place{font-weight:600}.dol-warn{font-weight:700;border-left:4px solid #b3801a;padding-left:10px}.dol-history{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.dol-history li{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:4px 10px;gap:4px 10px;align-items:start;background:#ffffffaa;border-radius:var(--radius-sm);padding:8px 10px}.dol-history time{grid-column:1/-1;font-size:.75rem;opacity:.75}.dol-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end;background:#ffffffaa;border-radius:var(--radius-sm);padding:10px}.dol-form label{display:grid;grid-gap:4px;gap:4px;font-size:.75rem;font-weight:700;flex:1 1 180px}.dol-form input,.dol-form select{min-height:38px}.dol-compact{margin:0;font-size:.82rem;opacity:.85}@media (max-width:450px){.dol-head .a-button{margin-left:0}.dol-history li{grid-template-columns:1fr}}.board-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:4;pointer-events:none;font-size:11px;color:var(--muted);background:#ffffffe0;border:1px solid var(--line);border-radius:999px;padding:4px 11px;white-space:nowrap}.hole-canvas.engaged,.pat-viewport.engaged{box-shadow:inset 0 0 0 2px var(--accent)}@media (hover:none){.board-hint{display:none}}@media (max-width:450px){.board-hint{font-size:10px;padding:3px 8px}}.blast-own-name{font-weight:400;color:var(--muted)}