:root{--ink:#17252d;--muted:#6c7b83;--muted-2:#97a4aa;--line:#e3e9ec;--paper:#fff;--canvas:#f4f6f8;--nav:#182a34;--nav-soft:#213944;--accent:#257c70;--accent-dark:#1c665d;--accent-pale:#e7f4f1;--blue:#547b94;--warning:#be7d24;--warning-pale:#fff5e4;--danger:#bb5757;--shadow:0 8px 22px rgba(27,50,62,.045);--radius:12px;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{margin:0;color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.sidebar{background:var(--nav);color:#eaf0f2;min-height:100vh;padding:24px 15px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;padding:0 9px 28px}.brand-mark{width:36px;height:36px;border-radius:10px;background:#2f806f;display:grid;place-items:center;color:#f7fffc}.brand-mark svg{width:26px;height:26px}.brand strong{display:block;font-size:17px;letter-spacing:-.3px;line-height:1.1}.brand small{display:block;color:#90a7ae;font-size:8px;font-weight:800;letter-spacing:1.7px;margin-top:4px}.workspace-label,.nav-caption{color:#78909a;font-size:9px;font-weight:800;letter-spacing:1.2px;padding:0 11px;margin:0 0 9px}.project-switch{width:100%;display:flex;align-items:center;text-align:left;gap:9px;background:#20343e;border:1px solid #304750;color:#dbe5e8;border-radius:9px;padding:10px 10px;margin-bottom:26px}.project-switch b{font-size:11px;font-weight:650;display:block}.project-switch small{display:block;font-size:10px;color:#91a5ac;margin-top:3px}.project-dot{width:8px;height:8px;background:#61b59c;border-radius:50%;box-shadow:0 0 0 3px rgba(97,181,156,.12);flex:none}.chevron{margin-left:auto;color:#91a5ac;font-size:16px}.nav-caption{margin:0 0 9px}.main-nav{display:flex;flex-direction:column;gap:3px}.nav-item{width:100%;min-height:39px;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#b5c4c9;border-radius:8px;text-align:left;padding:8px 10px;font-size:12px;transition:.15s}.nav-item:hover{background:#203740;color:#fff}.nav-item.active{background:#285247;color:#fff;box-shadow:inset 2px 0 #73c5a9}.nav-icon{width:22px;height:22px;display:grid;place-items:center;border:1px solid #3b515a;border-radius:6px;color:#97abb1;font-size:9px;font-weight:800;flex:none}.nav-item.active .nav-icon{border-color:#538b7c;color:#a5d9c9;background:rgba(255,255,255,.04)}.nav-icon-small{font-size:14px;font-weight:600}.nav-check{margin-left:auto;width:16px;height:16px;border:1px solid #47606a;border-radius:50%;position:relative}.nav-check.done{border-color:#6cc2a6;background:#327b68}.nav-check.done:after{content:"✓";position:absolute;inset:0;text-align:center;line-height:14px;color:#fff;font-size:10px}.row-count{margin-left:auto;min-width:20px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:6px;background:#263d47;color:#93aab1;font-size:10px}.nav-divider{height:1px;background:#2d424b;margin:14px 7px 15px}.nav-caption-sub{margin-bottom:6px}.sidebar-bottom{margin-top:auto;padding:20px 5px 3px}.local-note{display:flex;align-items:flex-start;gap:9px;padding:11px 10px;border:1px solid #334951;background:#20343d;border-radius:9px}.local-indicator{width:7px;height:7px;background:#6bc39d;border-radius:50%;margin-top:4px;box-shadow:0 0 0 3px rgba(107,195,157,.13);flex:none}.local-note b{display:block;font-size:10px;font-weight:650;color:#d7e3e5}.local-note small{display:block;font-size:9px;color:#8fa5ab;margin-top:4px}.sidebar-foot{color:#617881;font-size:9px;font-weight:700;letter-spacing:1.1px;padding:16px 10px 0}
.main-area{min-width:0}.topbar{height:62px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.breadcrumbs{display:flex;align-items:center;gap:10px;font-size:11px;color:#78878d}.breadcrumbs strong{font-weight:650;color:#33454e}.crumb-sep{color:#bdc6ca}.top-actions{display:flex;align-items:center;gap:12px}.save-status{display:flex;align-items:center;gap:7px;color:#64757b;font-size:10px;margin-right:4px;white-space:nowrap}.save-dot{width:7px;height:7px;border-radius:50%;background:#4eaa85}.save-status.saving .save-dot{background:#d9a048;animation:pulse 1s infinite}.save-status.error .save-dot{background:#d35656}@keyframes pulse{50%{opacity:.35}}.icon-button{width:32px;height:32px;border:1px solid var(--line);background:white;border-radius:8px;color:#61727a;display:grid;place-items:center}.icon-button:hover{border-color:#a9c4ba;color:var(--accent)}.icon-button svg,.button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid transparent;border-radius:8px;font-weight:650;font-size:11px;transition:.15s}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-secondary{background:white;border-color:var(--line);color:#43555e}.button-secondary:hover{border-color:#b7ccc7;background:#fbfdfc}.button-quiet{background:transparent;color:#718087;border-color:transparent}.button-quiet:hover{background:#f2f5f6}.button-small{min-height:33px;padding:0 12px;font-size:10px}
.content-wrap{max-width:1480px;margin:0 auto;padding:27px 34px 24px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.2px;color:#6f858b;font-weight:800}.eyebrow-line{height:2px;width:16px;background:#5ba691;border-radius:2px}h1{font-size:28px;letter-spacing:-.8px;line-height:1.15;margin:8px 0 6px;font-weight:720;color:#20333c}.page-subtitle{color:#79888e;font-size:12px;margin:0}.record-tag{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;box-shadow:0 3px 10px rgba(30,55,64,.025);margin-bottom:2px}.record-tag-icon{font-size:17px;color:#559786}.record-tag small{display:block;font-size:8px;font-weight:800;letter-spacing:.8px;color:#92a0a5}.record-tag b{display:block;font-size:10px;font-weight:650;color:#566870;margin-top:2px}
.progress-strip{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px 11px;margin-bottom:17px;box-shadow:0 2px 8px rgba(30,55,64,.02)}.progress-top,.progress-foot{display:flex;align-items:center;justify-content:space-between}.progress-top{font-size:10px;font-weight:650;color:#53666e}.progress-top strong{font-size:11px;color:var(--accent)}.progress-track{height:5px;background:#edf1f2;border-radius:5px;margin:8px 0 7px;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,#438c7c,#70b8a0);border-radius:5px;transition:width .25s ease}.progress-foot{font-size:9px;color:#96a2a6}
.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:17px;align-items:start}.work-main{min-width:0}.right-rail{position:sticky;top:78px;display:flex;flex-direction:column;gap:12px}.page-card,.rail-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.page-card{overflow:hidden}.section-head{padding:18px 21px 15px;border-bottom:1px solid #edf0f1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-head h2{font-size:16px;line-height:1.25;letter-spacing:-.25px;margin:0;color:#233740}.section-head p{font-size:10px;color:#839197;margin:5px 0 0;max-width:580px}.section-content{padding:17px 21px 22px}.section-index{display:flex;align-items:center;gap:7px;color:#819095;font-size:9px;font-weight:700;letter-spacing:.3px}.section-index span{width:21px;height:21px;display:grid;place-items:center;border-radius:6px;background:#eef5f3;color:#428574;font-size:9px}.section-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.mini-badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:5px 8px;background:#f1f5f6;color:#728187;font-size:9px;font-weight:650}.mini-badge.green{background:#e9f5f1;color:#397d6d}.mini-badge.amber{background:#fff5e4;color:#aa7225}.section-intro{font-size:11px;color:#718086;margin:0 0 16px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:17px;row-gap:14px}.field-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.field.span-2{grid-column:span 2}.field.span-3{grid-column:span 3}.field.span-full{grid-column:1/-1}.field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:650;color:#40545d;margin-bottom:5px}.field-label .required{color:#c16058;font-size:10px}.field-label small{color:#a0aaae;font-size:8px;font-weight:500}.input-wrap{position:relative}.control{width:100%;height:36px;background:#fff;border:1px solid #dce4e6;border-radius:7px;padding:0 10px;color:#263a43;font-size:11px;outline:none;transition:border-color .14s,box-shadow .14s}.control::placeholder{color:#acb6ba}.control:focus{border-color:#79ac9f;box-shadow:0 0 0 3px rgba(55,139,119,.1)}.control:disabled{background:#f5f7f7;color:#97a3a7}.control.select{appearance:none;padding-right:29px}.select-wrap:after{content:"";position:absolute;right:12px;top:13px;width:6px;height:6px;border-right:1.5px solid #819198;border-bottom:1.5px solid #819198;transform:rotate(45deg);pointer-events:none}.textarea{height:74px;padding:9px 10px;resize:vertical}.field-help{font-size:9px;color:#98a4a8;margin:5px 0 0}.field-help.zh{font-size:8px;color:#a7b0b3;margin-top:2px}.subsection-title{display:flex;align-items:center;gap:8px;margin:21px 0 12px;color:#52666d;font-size:10px;font-weight:750}.subsection-title:after{content:"";height:1px;background:#edf0f1;flex:1}.subsection-title:first-child{margin-top:0}.info-banner{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #dcece7;background:#f4faf8;border-radius:8px;margin:14px 0;font-size:10px;color:#54766d}.info-banner .info-symbol{font-size:14px;color:#4d9a83}.hint-banner{border-color:#f1e4c9;background:#fffaf0;color:#8a6a37}.field-note{color:#91a0a5;font-size:9px}
.table-wrap{overflow:auto;border:1px solid #e5ebed;border-radius:8px}.data-table{width:100%;border-collapse:collapse;min-width:680px}.data-table th{background:#f7f9f9;color:#76868c;text-align:left;font-size:9px;letter-spacing:.2px;font-weight:700;padding:9px 9px;border-bottom:1px solid #e5ebed;white-space:nowrap}.data-table td{padding:6px 7px;border-bottom:1px solid #edf0f1;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.table-input{height:31px;min-width:74px;border:1px solid transparent;background:transparent;border-radius:5px;padding:0 7px;font-size:10px;color:#30434b;width:100%;outline:none}.table-input:hover{border-color:#e1e8e9}.table-input:focus{border-color:#79ac9f;background:white;box-shadow:0 0 0 2px rgba(55,139,119,.08)}.table-select{min-width:125px}.table-code{color:#8a989d;font-size:9px;white-space:nowrap}.table-actions{width:34px;text-align:center}.delete-row{width:24px;height:24px;border:0;background:transparent;color:#aeb9bc;border-radius:5px;font-size:16px;line-height:1}.delete-row:hover{background:#fff0ef;color:#bd6259}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:9px 1px 0}.table-footnote{font-size:9px;color:#98a4a8}.add-row{border:0;background:transparent;color:#338172;font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border-radius:6px}.add-row:hover{background:#edf7f4}.add-row span{font-size:16px;font-weight:400;line-height:10px}
.interval-card{border:1px solid #e2e9ea;border-radius:9px;margin:0 0 11px;background:#fff;overflow:hidden}.interval-card:last-child{margin-bottom:0}.interval-top{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#f8faf9;border-bottom:1px solid #edf0f1}.interval-number{width:21px;height:21px;border-radius:6px;background:#e6f2ef;color:#3f8977;display:grid;place-items:center;font-size:9px;font-weight:800}.interval-title{font-size:10px;font-weight:700;color:#40545b}.interval-depth{font-size:9px;color:#87959a;margin-left:auto}.interval-body{padding:13px 13px 14px}.disclosure{border:0;background:transparent;padding:0;color:#398574;font-size:9px;font-weight:650;display:inline-flex;align-items:center;gap:6px}.disclosure:hover{color:#205e52}.interval-details{display:none;border-top:1px solid #eef1f2;margin-top:13px;padding-top:13px}.interval-details.open{display:block}.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px 18px;color:#8e9ba0}.empty-icon{width:42px;height:42px;border-radius:13px;background:#f0f5f4;color:#6f9f93;display:grid;place-items:center;font-size:20px;margin-bottom:10px}.empty-state b{font-size:11px;color:#5d6e74;font-weight:650}.empty-state p{font-size:10px;max-width:260px;margin:5px 0 12px}.actions-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 20px;border-top:1px solid #edf0f1;background:#fcfdfd}.actions-bottom .left-actions,.actions-bottom .right-actions{display:flex;align-items:center;gap:7px}
.rail-card{padding:14px}.rail-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.rail-title h3{font-size:11px;margin:0;color:#344a53}.rail-title span{font-size:8px;color:#99a5a9;letter-spacing:.5px}.rail-identity{padding:11px;background:#f7faf9;border:1px solid #edf1f0;border-radius:8px}.rail-id-label{font-size:8px;color:#96a3a7;font-weight:750;letter-spacing:.8px}.rail-id{font-size:16px;letter-spacing:-.35px;font-weight:700;color:#35574f;margin-top:4px;overflow-wrap:anywhere}.rail-id.empty{color:#b1bbbe;font-weight:550}.rail-meta{display:flex;flex-direction:column;gap:8px;margin-top:12px}.rail-meta-row{display:flex;justify-content:space-between;gap:9px;font-size:9px}.rail-meta-row span:first-child{color:#8b989d}.rail-meta-row span:last-child{color:#435960;font-weight:600;text-align:right;max-width:115px;overflow-wrap:anywhere}.rail-rule{height:1px;background:#edf0f1;margin:12px 0}.depth-header{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#839096;margin-bottom:8px}.depth-header b{color:#465a62;font-size:10px}.depth-track{height:110px;border-left:2px solid #dce4e4;margin-left:6px;padding-left:11px;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:3px}.depth-track:before,.depth-track:after{position:absolute;left:-8px;color:#a1adb1;font-size:8px;background:white;padding:0 2px}.depth-track:before{content:"0 m";top:0}.depth-track:after{content:attr(data-depth);bottom:0}.depth-segment{min-height:6px;border-radius:2px;background:#9bbdb4;position:relative;transition:height .2s}.depth-segment:nth-child(4n+2){background:#d4b98b}.depth-segment:nth-child(4n+3){background:#93a8ba}.depth-segment:nth-child(4n){background:#c59885}.depth-empty{height:100%;display:grid;place-items:center;color:#b1bbbe;font-size:9px}.rail-progress{display:flex;flex-direction:column;gap:9px}.rail-check{display:flex;align-items:center;gap:8px;font-size:9px;color:#7b8b90}.check-dot{width:16px;height:16px;border-radius:50%;border:1px solid #dbe3e5;display:grid;place-items:center;color:transparent;font-size:9px;flex:none}.rail-check.done{color:#46635c}.rail-check.done .check-dot{background:#e5f3ee;border-color:#b7d8cc;color:#448675}.rail-local{display:flex;gap:8px;align-items:flex-start;background:#f3f8f7;border-radius:7px;padding:9px;color:#647c75;font-size:9px}.rail-local svg{width:13px;height:13px;stroke:#528b7c;fill:none;stroke-width:1.8;flex:none;margin-top:1px}.rail-local strong{display:block;font-size:9px;color:#4b6d63;margin-bottom:2px}
.validation-list{display:flex;flex-direction:column;gap:8px}.validation-item{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid #f0e5ce;background:#fffbf2;border-radius:7px;color:#806c47;font-size:10px}.validation-item.error{background:#fff7f6;border-color:#f0d8d5;color:#975d56}.validation-item.ok{background:#f3faf7;border-color:#d9ede5;color:#4e786a}.validation-symbol{font-weight:800}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.review-stat{border:1px solid #e6ebed;background:#fafcfc;border-radius:8px;padding:12px}.review-stat b{display:block;font-size:17px;line-height:1.2;color:#35584f}.review-stat span{font-size:9px;color:#87959a}.export-box{padding:15px;background:#f7faf9;border:1px solid #e1ece8;border-radius:9px}.export-box h3{font-size:12px;margin:0 0 5px}.export-box p{font-size:10px;color:#718187;margin:0 0 13px}.export-actions{display:flex;gap:8px;flex-wrap:wrap}.warning-copy{font-size:9px;color:#9b7a43;margin-top:10px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,12px);background:#223a42;color:#f1f6f5;border-radius:8px;padding:10px 14px;font-size:11px;box-shadow:0 8px 24px #17252d2e;opacity:0;pointer-events:none;transition:.2s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.app-footer{display:flex;justify-content:space-between;gap:10px;color:#a0aaae;font-size:9px;padding:17px 2px 0}.app-footer a{color:#6f9a8e;text-decoration:none}.app-footer a:hover{text-decoration:underline}
@media(max-width:1150px){.content-wrap{padding:24px 22px}.topbar{padding:0 22px}.work-grid{grid-template-columns:minmax(0,1fr) 220px;gap:12px}.field-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app-shell{grid-template-columns:68px minmax(0,1fr)}.sidebar{padding:17px 9px}.brand{padding:0 7px 25px}.brand>span:last-child,.workspace-label,.project-switch,.nav-caption,.nav-item>span:not(.nav-icon):not(.nav-check):not(.row-count),.sidebar-bottom .local-note,.sidebar-foot{display:none}.nav-item{justify-content:center;padding:8px 5px}.nav-icon{font-size:10px}.nav-icon-small{font-size:15px}.nav-check,.row-count{position:absolute;margin:0;transform:translate(15px,-13px);width:13px;height:13px;min-width:13px;font-size:7px}.nav-item{position:relative}.nav-divider{margin:13px 4px}.brand-mark{width:38px;height:38px}.work-grid{grid-template-columns:minmax(0,1fr)}.right-rail{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.right-rail .rail-card:first-child{grid-row:span 2}.depth-track{height:95px}}
@media(max-width:620px){.app-shell{display:block}.sidebar{position:sticky;z-index:8;top:0;height:57px;min-height:0;width:100%;padding:8px 12px;overflow:visible;display:flex;flex-direction:row;align-items:center}.brand{padding:0;margin-right:12px}.brand-mark{width:34px;height:34px}.main-nav{display:flex;flex-direction:row;align-items:center;gap:3px;overflow:auto;min-width:0;flex:1}.nav-item{min-width:36px;width:auto;height:36px}.nav-item.active{box-shadow:inset 0 -2px #73c5a9}.nav-icon{width:25px;height:25px}.nav-icon-small{font-size:13px}.nav-divider,.nav-caption,.sidebar-bottom,.project-switch,.workspace-label{display:none!important}.topbar{height:50px;padding:0 13px}.breadcrumbs span:first-child,.breadcrumbs .crumb-sep{display:none}.breadcrumbs{font-size:10px}.top-actions{gap:6px}.save-status{font-size:0;margin:0}.save-status .save-dot{width:7px;height:7px}.icon-button{width:30px;height:30px}.button-small{min-height:30px;padding:0 8px;font-size:9px}.content-wrap{padding:20px 12px}.page-heading{align-items:flex-start}.page-heading h1{font-size:23px}.page-subtitle{font-size:10px;max-width:340px}.record-tag{display:none}.work-grid{gap:12px}.field-grid,.field-grid.cols-3,.field-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.field.span-3{grid-column:span 2}.section-head{padding:14px 14px 12px}.section-content{padding:14px}.section-head h2{font-size:14px}.section-head p{font-size:9px}.section-toolbar .mini-badge{display:none}.right-rail{grid-template-columns:1fr}.right-rail .rail-card:first-child{grid-row:auto}.rail-card{padding:12px}.app-footer{flex-direction:column;gap:4px}.progress-strip{padding:11px 12px}.interval-body{padding:11px}.actions-bottom{padding:12px 14px}.actions-bottom .button{min-height:34px}.review-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.brand{margin-right:6px}.nav-item{min-width:31px}.field-grid,.field-grid.cols-3,.field-grid.cols-4{grid-template-columns:1fr}.field.span-2,.field.span-3{grid-column:span 1}.page-heading h1{font-size:21px}.button-small{font-size:0;width:32px;padding:0}.button-small svg{width:16px;height:16px}}

.lang-toggle{height:31px;min-width:48px;padding:0 9px;border:1px solid #dce6e5;background:#f6faf9;color:#397b6e;border-radius:8px;font-size:10px;font-weight:750;letter-spacing:.2px;transition:.15s}.lang-toggle:hover{background:#eaf5f1;border-color:#b7d5ca}.lang-toggle:focus-visible{outline:3px solid rgba(55,139,119,.18);outline-offset:1px}@media(max-width:620px){.lang-toggle{height:30px;min-width:42px;padding:0 6px;font-size:9px}.save-status{display:none}}

/* Saved interval records and linked observation journals */
.interval-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;color:#7c8c91;white-space:nowrap}.interval-close-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid #e7eeeb}.interval-close-row>span{font-size:10px;line-height:1.55;color:#718087}.interval-card.interval-closed{border-color:#cfdfd8;background:linear-gradient(135deg,#fff 0%,#f8fcfa 100%)}.closed-interval-body{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px}.closed-interval-rock{font-size:13px;font-weight:700;color:#263b40}.closed-interval-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:6px;font-size:10px;color:#73828a}.closed-observation-count{margin-top:9px;font-size:10px;color:#467668}.closed-interval-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.closed-interval-actions .delete-row{margin-left:2px}.log-target-box{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(180px,1fr) auto;align-items:center;gap:14px;margin:16px 0 20px;padding:14px;border:1px solid #dce8e4;border-radius:11px;background:#f7fbf9}.linked-interval-picker{min-width:0}.linked-interval-picker .field-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:10px}.linked-interval-picker .field-label small{font-weight:500;color:#89969a}.linked-interval-picker .control{width:100%;min-width:0}.linked-interval-picker .field-help{margin-top:5px;font-size:9px;line-height:1.45}.selected-interval-chip{display:flex;align-items:center;gap:10px;min-width:0}.chip-check{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#e2f1eb;color:#377b65;font-size:12px}.selected-interval-chip>span:last-child{display:flex;flex-direction:column;min-width:0;gap:3px}.selected-interval-chip b{font-size:9px;color:#47625c}.selected-interval-chip small{font-size:9px;color:#718087;line-height:1.4;overflow-wrap:anywhere}.no-interval-callout{display:flex;flex-direction:column;gap:4px;color:#8a6844;font-size:9px;line-height:1.45}.no-interval-callout b{font-size:10px}.linked-record-body{padding:0 16px 16px}.linked-interval-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;margin:0 0 13px;background:#f5faf8;border:1px solid #e1ece7;border-radius:8px}.linked-interval-summary>div{display:flex;flex-direction:column;gap:4px;min-width:0}.linked-interval-summary small{font-size:9px;color:#718087}.linked-interval-summary b{font-size:10px;color:#314a47;overflow-wrap:anywhere}.linked-interval-summary span{font-size:9px;color:#76858a}.link-legacy{display:grid;grid-template-columns:1fr minmax(220px,1fr);gap:8px 14px;align-items:center;margin-bottom:14px;padding:12px;background:#fff8ed;border:1px solid #f0dfc2;border-radius:8px}.link-legacy b{font-size:10px;color:#875e28}.link-legacy span{grid-column:1/-1;font-size:9px;color:#8b7c68}.button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
@media(max-width:760px){.log-target-box{grid-template-columns:1fr}.closed-interval-body{align-items:flex-start;flex-direction:column}.closed-interval-actions{width:100%;justify-content:flex-start}.interval-close-row{align-items:flex-start;flex-direction:column}.link-legacy{grid-template-columns:1fr}.link-legacy span{grid-column:auto}.interval-top .interval-id{display:none}}

html[lang="zh-CN"] .depth-track:before{content:"0 米"}

/* Bottom section navigation — manual, always accessible */
.sidebar-guide{margin-top:34px;padding:14px 12px;border:1px solid #304750;border-radius:10px;background:#20343e;color:#dbe5e8}.sidebar-guide-icon{display:grid;place-items:center;width:26px;height:26px;margin-bottom:10px;border-radius:7px;background:#2c514a;color:#a6dccb;font-size:17px}.sidebar-guide strong{font-size:11px;font-weight:700}.sidebar-guide p{font-size:10px;line-height:1.55;color:#98adb2;margin:6px 0 0}.bottom-nav{position:fixed;left:248px;right:0;bottom:0;z-index:10;padding:9px 24px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #dfe7e8;box-shadow:0 -7px 24px rgba(28,48,58,.08);backdrop-filter:blur(12px)}.bottom-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:9px;max-width:1450px;margin:0 auto;overflow-x:auto;scrollbar-width:none}.bottom-nav-inner::-webkit-scrollbar{display:none}.bottom-nav-group{display:flex;align-items:center;gap:4px;flex:0 0 auto}.bottom-nav-divider{width:1px;height:34px;background:#e2e8e9;flex:none}.bottom-tab{position:relative;display:flex;align-items:center;gap:8px;min-width:96px;min-height:48px;padding:7px 9px;border:1px solid transparent;border-radius:9px;background:transparent;color:#65767c;text-align:left;white-space:nowrap;transition:background .14s,border-color .14s,color .14s}.bottom-tab:hover{background:#f4f8f7;color:#314b4d}.bottom-tab.active{background:#eaf5f1;border-color:#cfe5dc;color:#286c5e}.bottom-tab .nav-icon{width:25px;height:25px;border:1px solid #dce6e5;border-radius:7px;background:#fff;color:#78918d;font-size:9px}.bottom-tab.active .nav-icon{border-color:#add3c5;background:#f8fffc;color:#32806e}.bottom-tab .nav-icon-small{font-size:14px}.bottom-tab-label{font-size:10px;font-weight:650}.bottom-tab .nav-check,.bottom-tab .row-count{margin-left:auto;flex:none}.bottom-tab .nav-check{width:14px;height:14px;border-color:#d3dddf}.bottom-tab .nav-check.done{background:#34806d;border-color:#34806d}.bottom-tab .row-count{min-width:19px;height:18px;border-radius:6px;background:#eef3f3;color:#607b7d;font-size:9px}.bottom-tab.active .row-count{background:#d8eee5;color:#2a6f60}.content-wrap{padding-bottom:112px}
@media(max-width:1150px){.bottom-nav{padding-left:14px;padding-right:14px}.bottom-tab{min-width:90px;padding:7px 7px;gap:6px}.bottom-tab-label{font-size:9px}}
@media(max-width:900px){.sidebar-guide{display:none}.bottom-nav{left:68px;padding-left:9px;padding-right:9px}.bottom-nav-inner{justify-content:flex-start}.bottom-tab{min-width:90px}}
@media(max-width:620px){.sidebar-guide{display:none}.bottom-nav{left:0;right:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.bottom-nav-inner{justify-content:flex-start;gap:5px}.bottom-nav-group{gap:2px}.bottom-nav-divider{height:28px;margin:0 2px}.bottom-tab{min-width:82px;min-height:45px;flex-direction:column;justify-content:center;gap:2px;padding:4px 7px}.bottom-tab .nav-icon{width:21px;height:21px;font-size:8px}.bottom-tab .nav-icon-small{font-size:12px}.bottom-tab-label{font-size:8px;line-height:1.1}.bottom-tab .nav-check,.bottom-tab .row-count{position:absolute;right:5px;top:4px;width:13px;min-width:13px;height:13px;font-size:7px}.bottom-tab .nav-check.done:after{line-height:11px;font-size:8px}.content-wrap{padding-bottom:100px}}

/* Searchable code/name lookup controls */
.lookup-combobox{position:relative;width:100%;min-width:0}.lookup-input-shell{position:relative;width:100%}.lookup-input{padding-right:34px!important;text-overflow:ellipsis}.lookup-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:5px;background:transparent;color:#8a999e;font-size:15px;line-height:1}.lookup-clear:hover{background:#eff5f3;color:#377c6c}.lookup-menu{position:fixed;z-index:1000;max-height:min(320px,55vh);overflow:auto;border:1px solid #d9e4e3;border-radius:9px;background:#fff;box-shadow:0 12px 32px rgba(24,47,55,.17);padding:4px;overscroll-behavior:contain}.lookup-menu[hidden]{display:none}.lookup-option{display:grid;grid-template-columns:minmax(45px,auto) minmax(0,1fr);align-items:center;gap:2px 9px;width:100%;padding:8px 9px;border:0;border-radius:6px;background:#fff;color:#374b52;text-align:left;cursor:pointer}.lookup-option:hover,.lookup-option[aria-selected="true"]{background:#eef7f3}.lookup-option-code{font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;color:#347965;white-space:nowrap}.lookup-option-name{font-size:10px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.lookup-option-alt{grid-column:2;font-size:8px;color:#89979b;line-height:1.3;overflow-wrap:anywhere}.lookup-empty{padding:10px;color:#88979b;font-size:9px;line-height:1.5}.data-table .lookup-combobox{min-width:132px}.data-table .lookup-input{height:31px;min-width:128px;padding-left:7px;font-size:10px;border-color:transparent;background:transparent}.data-table .lookup-input:hover,.data-table .lookup-input:focus{border-color:#79ac9f;background:#fff}

/* One visible journal row per original lithology interval */
.log-interval-board{display:grid;gap:12px;margin-top:18px}.log-interval-row{overflow:hidden;border:1px solid #dfe8e6;border-radius:11px;background:#fff;box-shadow:0 3px 10px rgba(28,50,58,.025)}.log-interval-row.is-open{border-color:#eadfc8}.log-interval-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:#f7faf9;border-bottom:1px solid #e9efee}.log-interval-identity{display:flex;align-items:center;gap:10px;min-width:0}.log-interval-name{display:flex;flex-direction:column;gap:3px;min-width:0}.log-interval-name strong{font-size:11px;color:#30464b}.log-interval-name small{font-size:9px;color:#829196;overflow-wrap:anywhere}.log-interval-details{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:3px;color:#687b80;font-size:9px}.log-interval-count{margin-left:auto;font-size:9px;color:#718188;white-space:nowrap}.log-interval-actions{display:flex;align-items:center;gap:8px;flex:none}.log-interval-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:20px;background:#e9f5f0;color:#367665;font-size:8px;font-weight:700;white-space:nowrap}.is-open .log-interval-status{background:#fff4e3;color:#a77531}.log-entries{padding:10px 12px 12px}.log-entry-row{padding:10px 11px;margin-top:8px;border:1px solid #e9efee;border-radius:8px;background:#fff}.log-entry-row:first-child{margin-top:0}.log-entry-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.log-entry-head strong{font-size:9px;color:#53686e}.log-entry-head .log-entry-code{font:8px ui-monospace,SFMono-Regular,Menlo,monospace;color:#99a5a8}.log-entry-head .delete-row{margin-left:auto}.log-empty{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 2px;color:#98a4a8;font-size:9px}.log-empty span{line-height:1.4}.unlinked-records{margin-top:16px;padding:13px;border:1px solid #efdfc4;border-radius:10px;background:#fffbf3}.unlinked-records>h3{margin:0 0 10px;font-size:11px;color:#87622e}.unlinked-records .log-entry-row{border-color:#f0e5d2}
@media(max-width:760px){.log-interval-header{align-items:flex-start;flex-direction:column}.log-interval-actions{width:100%;justify-content:space-between}.log-interval-count{margin-left:0}.log-entries{padding:8px}.log-entry-row{padding:9px}.log-empty{align-items:flex-start;flex-direction:column}}

.lookup-clear[hidden]{display:none}

button[hidden]{display:none!important}


/* Offline AI-log test workspace; visually separated from the working borehole draft. */
.provisional-tag{display:inline-flex;vertical-align:middle;padding:1px 4px;border-radius:4px;background:#fff2d9;color:#94651e;font-size:7px;font-style:normal;font-weight:800;letter-spacing:.35px}.ai-page .section-head{background:linear-gradient(100deg,#f7faf9,#fffaf1)}.ai-safety{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:start;padding:13px 14px;border:1px solid #ecdcb9;border-radius:9px;background:#fffaf0;color:#765b32;font-size:10px;line-height:1.55}.ai-safety b{color:#805d22;font-size:11px}.ai-safety span:nth-child(2){grid-column:2}.ai-db-count{grid-column:2;color:#997743;font-size:9px}.ai-source-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:19px 0 7px}.ai-source-head label{font-size:11px;font-weight:700;color:#40545d}.ai-source{min-height:180px;height:230px;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;tab-size:2}.ai-input-help{margin-top:5px;font-size:9px;color:#89979b}.ai-toolbar,.ai-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.ai-preview{margin-top:20px;padding-top:17px;border-top:1px solid #e9eeee}.ai-empty{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-height:100px;padding:20px;text-align:center;border:1px dashed #dce5e5;border-radius:9px;color:#87969a;font-size:10px}.ai-empty b{color:#566a70;font-size:11px}.ai-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.ai-stat{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px;border:1px solid #e6ecec;border-radius:8px;background:#fbfcfc}.ai-stat b{font-size:16px;color:#397c6c}.ai-stat span{font-size:8px;color:#7c8a8e;line-height:1.3}.ai-borehole-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 12px;border:1px solid #e6ecec;border-radius:8px;background:#f7f9f9;color:#728187;font-size:9px}.ai-borehole-summary b{color:#354b52;font-size:12px}.ai-warning-list{display:grid;gap:5px;margin:10px 0}.ai-warning{padding:8px 10px;border-left:3px solid #d7a348;border-radius:4px;background:#fff8e9;color:#80652f;font-size:9px;line-height:1.45}.ai-success{margin-top:10px;padding:9px 11px;border:1px solid #d7e9e2;border-radius:7px;background:#f2faf6;color:#467665;font-size:9px;line-height:1.45}.ai-interval-list{display:grid;gap:9px;margin-top:12px}.ai-interval-preview{padding:11px 12px;border:1px solid #e1e9e8;border-radius:9px;background:#fff}.ai-interval-preview>header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-interval-preview>header strong{font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:#344b51}.ai-interval-preview>header .mini-badge{margin-left:auto;max-width:60%;white-space:normal}.ai-interval-meta{display:flex;flex-wrap:wrap;gap:5px 13px;margin-top:8px;color:#697a7f;font-size:9px}.ai-observation{margin-top:6px;padding-left:9px;border-left:2px solid #d7e8e2;color:#536a69;font-size:9px;line-height:1.4}.ai-interval-preview details{margin-top:9px;font-size:9px;color:#718187}.ai-interval-preview summary{cursor:pointer;font-weight:650}.ai-interval-preview blockquote{margin:7px 0 1px;padding:8px 10px;border-left:2px solid #d4dfdf;background:#f8faf9;color:#596b70;white-space:pre-wrap;line-height:1.55}.ai-actions{padding-top:12px;border-top:1px solid #edf0f1}.ai-actions .button{font-size:10px}
@media(max-width:760px){.ai-safety{grid-template-columns:1fr}.ai-safety span:nth-child(2),.ai-db-count{grid-column:1}.ai-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.ai-source{height:200px}.ai-source-head{align-items:flex-start;flex-direction:column}.ai-interval-preview>header .mini-badge{margin-left:0;max-width:100%}}

/* Multi-hole local workspace and AI review additions */
.hole-manager{display:flex;align-items:center;gap:8px;min-width:0;padding:0 12px;border-left:1px solid var(--line,#e3e9ec)}
.hole-manager label{font-size:9px;font-weight:800;letter-spacing:.11em;color:#74848b;white-space:nowrap}
.hole-manager select{max-width:235px;min-width:130px;padding:9px 30px 9px 11px;border:1px solid #d9e2e5;border-radius:9px;background:#fff;color:#193038;font:600 12px/1.2 inherit}
.hole-manager button{white-space:nowrap}
.ai-review-table-wrap{overflow:auto;border:1px solid #dfe7e9;border-radius:12px;margin:14px 0}
.ai-review-table{border-collapse:separate;border-spacing:0;width:100%;min-width:900px;background:#fff}
.ai-review-table th{position:sticky;top:0;background:#f3f7f7;color:#64767c;text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:10px;border-bottom:1px solid #dfe7e9}
.ai-review-table td{vertical-align:top;padding:9px 10px;border-bottom:1px solid #edf1f2;font-size:12px}
.ai-review-table tr:last-child td{border-bottom:0}
.ai-review-table .range-cell{font-weight:750;white-space:nowrap;color:#18343b}
.ai-edit-select{width:100%;min-width:150px;padding:8px;border:1px solid #dbe4e6;border-radius:8px;background:#fff;color:#193038;font:inherit}
.ai-review-source{max-width:245px;color:#62737a;line-height:1.45;white-space:normal}
.ai-draft-bar,.ai-import-options{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding:12px;border:1px solid #dfe7e9;background:#f9fbfb;border-radius:12px;margin:12px 0}
.ai-draft-bar label,.ai-import-options label{display:grid;gap:5px;color:#68797f;font-size:11px;font-weight:700}
.ai-draft-bar select,.ai-import-options select{min-width:180px;max-width:100%;padding:9px;border:1px solid #dbe4e6;border-radius:8px;background:#fff;color:#193038}
.ai-observation-edit{display:grid;grid-template-columns:145px minmax(160px,1fr);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf1f2}
.ai-observation-edit:last-child{border-bottom:0}
.ai-observation-edit strong{font-size:12px;color:#43585f}
.ai-status-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#fff1d5;color:#8a5c00;font-size:10px;font-weight:800}
.ai-hole-list{display:grid;gap:6px;margin-top:8px}
.ai-hole-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e1e8ea;border-radius:9px;background:#fff;color:#213940;text-align:left;cursor:pointer}
.ai-hole-link:hover{border-color:#80b8ac;background:#f7fbfa}
.ai-hole-link small{color:#708087}
.ai-quality-note{padding:9px 11px;border-left:3px solid #d4a647;background:#fff9e9;color:#6b5a34;border-radius:4px 9px 9px 4px;font-size:11px;line-height:1.5}
.ai-import-options{border-color:#c8deda;background:#f3faf8}
.ai-import-options .button{align-self:end}
@media(max-width:1050px){.hole-manager{padding:0 8px}.hole-manager label,.hole-manager #backupButton{display:none}.hole-manager select{max-width:170px;min-width:100px}}
@media(max-width:760px){.hole-manager{order:3;width:100%;border:0;padding:5px 0 0}.topbar{flex-wrap:wrap;height:auto;padding-top:10px;padding-bottom:10px}.hole-manager select{flex:1;max-width:none}.ai-observation-edit{grid-template-columns:1fr}.ai-review-table{min-width:850px}}

.ai-review-table .range-cell>div{display:grid;grid-template-columns:repeat(2,minmax(56px,1fr));gap:4px;min-width:130px}
.ai-review-table .range-cell label{display:grid;gap:3px;font-size:9px;font-weight:650;color:#68797f}
.ai-review-table .range-cell .ai-edit-select{min-width:56px;width:100%;padding:6px 4px;font-size:11px}
.ai-review-table .range-cell small{grid-column:1/-1;font-size:9px;color:#75858b}
.ai-error{border-left:3px solid #bd4040!important;background:#fff3f2!important;color:#902929!important}
.ai-ack{display:flex;align-items:flex-start;gap:8px;margin:10px 0;padding:10px 12px;border:1px solid #e5c77e;border-radius:9px;background:#fffbef;color:#6c5628;font-size:12px;line-height:1.5}
.ai-ack input{margin-top:2px;accent-color:#7b6a35}
.ai-file-name{font-weight:700;color:#31515a}


/* GeoLog focused geology workflow */
.sidebar-toggle{position:absolute;top:24px;right:9px;z-index:3;width:22px;height:22px;flex:none;padding:0;border:1px solid #48616a;background:#20343e;color:#bed0d1;border-radius:6px;font-size:17px;line-height:18px;margin-right:-4px}.sidebar-toggle:hover{background:#2b4e4b;color:white}.brand{gap:8px;padding-right:28px}
.app-shell.sidebar-collapsed{grid-template-columns:62px minmax(0,1fr)}.sidebar-collapsed .sidebar{padding:22px 7px 12px;align-items:center}.sidebar-collapsed .brand{padding:0 0 24px;display:flex;flex-direction:column;gap:9px}.sidebar-collapsed .brand>span:last-child,.sidebar-collapsed .workspace-label,.sidebar-collapsed .project-switch,.sidebar-collapsed .nav-caption,.sidebar-collapsed .nav-item>span:not(.nav-icon):not(.nav-check):not(.row-count),.sidebar-collapsed .sidebar-bottom,.sidebar-collapsed .sidebar-guide,.sidebar-collapsed .nav-divider{display:none}.sidebar-collapsed .main-nav{width:100%}.sidebar-collapsed .nav-item{justify-content:center;padding:8px 5px}.sidebar-collapsed .bottom-nav{left:62px}
@media(max-width:900px){.sidebar-toggle{display:none}.app-shell.sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)}}
@media(max-width:620px){.sidebar-collapsed .sidebar{width:100%;padding:8px 12px}.sidebar-collapsed .brand{padding:0;margin-right:8px;flex-direction:row}.sidebar-collapsed .bottom-nav{left:0}}
.summary-hidden .work-grid{grid-template-columns:minmax(0,1fr)!important}.summary-hidden .right-rail{display:none!important}
#summaryToggle{font-size:14px;color:#528b7c}.page-heading,.page-heading .eyebrow,.page-subtitle,.record-tag,.progress-strip,.sidebar-guide,.section-head p,.field-help,.field-help.zh,.info-banner,.field-note,.rail-local,.app-footer{display:none!important}
.field-label{font-size:11px}.control{font-size:13px;min-height:39px;height:39px}.interval-body>.field-grid:first-child input[data-key="FROM_M"],.interval-body>.field-grid:first-child input[data-key="TO_M"]{font-size:19px;font-weight:750;color:#185f53;height:48px;background:#f7fbf9;border-color:#b5d3c7}.interval-depth{font-size:12px;font-weight:700;color:#45645f}
.modifier-picker{border:1px solid #e2e9ea;border-radius:9px;padding:9px 11px 11px;margin:12px 0 7px;min-width:0}.modifier-picker legend{padding:0 5px;color:#51696c;font-size:10px;font-weight:750}.modifier-chip-list{display:flex;flex-wrap:wrap;gap:6px}.modifier-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #e2e9ea;border-radius:18px;background:#fafcfb;color:#586c70;font-size:10px;cursor:pointer}.modifier-chip:has(input:checked){border-color:#91bdaf;background:#edf7f3;color:#246959}.modifier-chip input{accent-color:#34806d;margin:0}.interval-description{margin-top:8px;padding:8px 10px;border-left:2px solid #9bbeb2;background:#f7faf9;color:#4f6468;font-size:10px;line-height:1.5;white-space:pre-wrap}.interval-code{font-family:ui-monospace,monospace;color:#338172;font-size:9px}
.observation-range-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px;margin:10px 0}.observation-range-grid .control{font-size:14px;font-weight:650}.log-lithology-note{margin-top:7px;padding:7px 9px;border-radius:6px;background:#f2f8f5;color:#526b62;font-size:10px;line-height:1.5;white-space:pre-wrap;max-width:750px}.log-lithology-note b{color:#365e52}
.description-dock{position:fixed;z-index:30;right:28px;bottom:92px;width:min(580px,56vw);height:48vh;min-width:310px;min-height:220px;max-width:85vw;max-height:82vh;resize:both;overflow:hidden;display:flex;flex-direction:column;border:1px solid #bfd2cd;border-radius:11px;background:#fff;box-shadow:0 16px 52px rgba(19,43,51,.24)}.description-dock[hidden]{display:none}.description-dock-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:#edf6f3;color:#2e5e53;font-size:11px;cursor:move;touch-action:none}.description-dock-header>div{display:flex;gap:5px}.description-dock-header button{width:24px;height:24px;border:1px solid #c8dbd5;background:white;border-radius:5px;color:#55736d}.description-dock textarea{flex:1;width:100%;min-height:0;border:0;outline:0;resize:none;padding:12px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:#263c40;white-space:pre-wrap}.description-dock footer{padding:6px 11px;border-top:1px solid #edf0f0;color:#839297;font-size:9px}.export-actions #excelExport{display:none}
@media(max-width:620px){.description-dock{right:8px;bottom:105px;width:calc(100vw - 16px);height:54vh;min-width:0;max-width:none}.top-actions{gap:4px}.top-actions #descriptionDockToggle{font-size:0;min-width:31px}.top-actions #descriptionDockToggle:after{content:'Txt';font-size:9px}.top-actions #excelExport{font-size:9px;padding:0 7px}.observation-range-grid{grid-template-columns:1fr 1fr}}

.ai-multi-select{min-width:145px;max-width:220px;height:auto!important;min-height:72px;padding:5px;font-size:10px}.modifier-group{margin:6px 0}.modifier-group>small{display:block;color:#8a999b;font-size:9px;margin:3px 0 5px}.modifier-group .modifier-chip-list{gap:5px}

.modifier-attribute-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line,#e5e7eb)}
@media(max-width:700px){.modifier-attribute-grid{grid-template-columns:1fr}}

/* Colour swatches next to colour names in lookup dropdowns and inputs */
.colour-swatch{display:inline-block;width:13px;height:13px;min-width:13px;border-radius:3px;background:var(--swatch-bg,transparent);border:1px solid rgba(23,37,45,.22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);vertical-align:middle;flex-shrink:0}
.lookup-option-name{display:inline-flex;align-items:center;gap:7px}
.lookup-input-swatch{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:2;width:14px;height:14px;min-width:14px;border-radius:3.5px}
.lookup-combobox.has-colour-swatch .lookup-input{padding-left:31px!important}
.ai-field-label{display:inline-flex;align-items:center;gap:6px}

/* Prominent comment/description above lithology modifiers */
.interval-comment-top,.observation-comment-top{margin:13px 0 12px;padding:11px 12px;border:1px solid #d5e5df;border-radius:9px;background:#f7fbf9}
.interval-comment-top .field-label,.observation-comment-top .field-label{color:#285b4f;font-weight:750;margin-bottom:6px}
.interval-comment-top .textarea,.observation-comment-top .textarea{min-height:68px;background:#fff;border-color:#c6dcd5;font-size:13px;line-height:1.5}

/* Borehole Registry tab and grouped project tables */
.registry-upload-box{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:15px 17px;border:1px solid #cfe3dc;border-radius:11px;background:linear-gradient(135deg,#f4faf8 0%,#ffffff 100%);margin-bottom:15px}
.registry-upload-info{flex:1 1 360px;min-width:0}
.registry-upload-info strong{display:block;font-size:13px;color:#214940;margin-bottom:4px}
.registry-upload-info p{margin:0;font-size:11px;color:#5d7278;line-height:1.5}
.registry-upload-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.registry-filter-bar{display:grid;grid-template-columns:minmax(200px,280px) minmax(240px,1fr);gap:12px;margin-bottom:16px}
.registry-filter-item{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700;color:#486067}
.registry-groups-wrap{display:flex;flex-direction:column;gap:16px}
.registry-project-group{border:1px solid #dce6e8;border-radius:10px;background:#fff;overflow:hidden}
.registry-project-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:#f3f8f7;border-bottom:1px solid #e3ecea}
.registry-project-header>div{display:flex;align-items:center;gap:9px}
.registry-project-header strong{font-size:13px;color:#1f3d44}
.registry-project-badge{display:inline-flex;padding:3px 7px;border-radius:5px;background:#dceee8;color:#256a5a;font-size:9px;font-weight:800;letter-spacing:.08em}
.registry-table th,.registry-table td{padding:8px 10px;font-size:11px}
.registry-row-active{background:#f2faf6}
.registry-bhid{color:#1c4e43;font-size:12px}
.priority-pill{display:inline-flex;padding:2px 7px;border-radius:12px;background:#fff4df;color:#8c5d15;border:1px solid #eed6a7;font-size:10px;font-weight:700}
.registry-actions-cell{display:flex;align-items:center;gap:6px;white-space:nowrap}
@media(max-width:760px){.registry-filter-bar{grid-template-columns:1fr}}

/* High-visibility styling for all depth parameters everywhere in the app */
input[data-key="FROM_M"],
input[data-key="TO_M"],
input[data-key="INTERVAL_LENGTH_M"],
input[data-key="OBS_FROM_M"],
input[data-key="OBS_TO_M"],
input[data-key="PROJECT_DEPTH_M"],
input[data-key="TOTAL_DEPTH_M"],
input[data-key="AT_M"],
input[data-ai-key="FROM_M"],
input[data-ai-key="TO_M"],
input[data-ai-key="TOTAL_DEPTH_M"] {
  font-size: 17px !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
  color: #0e4f43 !important;
  background: #e9f7f3 !important;
  border: 1.5px solid #6ab49f !important;
  box-shadow: inset 0 1px 2px rgba(14, 79, 67, 0.06);
}
input[data-key="FROM_M"],
input[data-key="TO_M"],
input[data-key="OBS_FROM_M"],
input[data-key="OBS_TO_M"],
input[data-key="PROJECT_DEPTH_M"],
input[data-key="TOTAL_DEPTH_M"] {
  height: 46px !important;
}
input[data-key="INTERVAL_LENGTH_M"] {
  height: 46px !important;
  background: #f1faf7 !important;
  border-style: dashed !important;
  color: #1c6b5b !important;
}
input[data-key="FROM_M"]:focus,
input[data-key="TO_M"]:focus,
input[data-key="OBS_FROM_M"]:focus,
input[data-key="OBS_TO_M"]:focus,
input[data-key="PROJECT_DEPTH_M"]:focus,
input[data-key="TOTAL_DEPTH_M"]:focus,
input[data-key="AT_M"]:focus,
input[data-ai-key="FROM_M"]:focus,
input[data-ai-key="TO_M"]:focus,
input[data-ai-key="TOTAL_DEPTH_M"]:focus {
  background: #ffffff !important;
  border-color: #1f7a68 !important;
  box-shadow: 0 0 0 3px rgba(31, 122, 104, 0.22) !important;
}
.field:has(> input[data-key="FROM_M"]) > .field-label,
.field:has(> input[data-key="TO_M"]) > .field-label,
.field:has(> input[data-key="INTERVAL_LENGTH_M"]) > .field-label,
.field:has(> input[data-key="OBS_FROM_M"]) > .field-label,
.field:has(> input[data-key="OBS_TO_M"]) > .field-label,
.field:has(> input[data-key="PROJECT_DEPTH_M"]) > .field-label,
.field:has(> input[data-key="TOTAL_DEPTH_M"]) > .field-label {
  color: #0e5245;
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: 0.02em;
}
.interval-depth,
.depth-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 7px;
  background: #dff3ec;
  border: 1px solid #8ac7b5;
  color: #0d4d41 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.depth-badge-small {
  padding: 2px 8px;
  font-size: 11.5px !important;
  border-radius: 6px;
}
.depth-cell {
  white-space: nowrap;
}
.observation-range-grid {
  padding: 10px 12px;
  border-radius: 9px;
  background: #f3faf7;
  border: 1px solid #cbe4dc;
}
.log-interval-name strong {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 14px !important;
  color: #1c3a40;
}
.log-rock-title {
  color: #16594c;
  font-weight: 800;
}
.interval-title {
  font-size: 12.5px !important;
  font-weight: 750 !important;
  color: #1c443c !important;
}

/* Project accordion, inline creation forms, and Save Hole section */
.registry-toolbar-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid #d5e6e0;
  border-radius: 10px;
  background: #f5fbf9;
}
.registry-toolbar-left,
.registry-toolbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.registry-project-header {
  cursor: pointer;
  user-select: none;
  transition: background 0.14s;
}
.registry-project-header:hover {
  background: #eaf4f1;
}
.registry-project-title-wrap {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}
.registry-project-chevron {
  width: 18px;
  font-size: 13px;
  color: #256a5a;
  font-weight: 800;
  text-align: center;
}
.registry-project-body {
  padding: 0;
}
.registry-empty-project {
  padding: 18px 16px;
  font-size: 11.5px;
  color: #6c7f86;
  background: #fafcfd;
}
.registry-inline-form {
  margin: 0 0 14px;
  padding: 15px 16px;
  border: 1.5px solid #84bfb0;
  border-radius: 10px;
  background: #f3faf7;
  box-shadow: 0 4px 14px rgba(24, 75, 64, 0.06);
}
.registry-hole-form {
  margin: 12px;
}
.registry-inline-form-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #d4eae3;
}
.registry-inline-form-head strong {
  font-size: 13px;
  color: #164e42;
}
.save-hole-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 16px 18px;
  border: 1.5px solid #7abaa8;
  border-radius: 10px;
  background: linear-gradient(135deg, #ecf8f4 0%, #ffffff 100%);
  margin-top: 14px;
}
.save-hole-info {
  flex: 1 1 320px;
  min-width: 0;
}
.save-hole-info h3 {
  margin: 0 0 5px;
  font-size: 14px;
  color: #154d41;
}
.save-hole-info p {
  margin: 0;
  font-size: 11px;
  color: #4f666d;
  line-height: 1.5;
}
.save-hole-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Borehole Map Visualization (Kazakhstan Google Map & Local X/Y Plan) */
.gmp-quota-banner {
  background: #fffbeb;
  border-bottom: 1px solid #fde68a;
  color: #78350f;
  padding: 10px 16px;
  font-size: 12px;
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 9999;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.gmp-quota-banner a {
  text-decoration: underline;
  font-weight: 700;
  color: #451a03;
}
.project-map-card {
  border: 1.5px solid #9ecbc0;
  border-radius: 12px;
  background: #ffffff;
  margin-bottom: 18px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(22, 74, 64, 0.06);
}
.project-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 16px;
  background: linear-gradient(100deg, #ecf8f4 0%, #f7fbf9 100%);
  border-bottom: 1px solid #d5e8e2;
}
.project-map-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.project-map-title strong {
  font-size: 13.5px;
  color: #16443b;
}
.project-map-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.project-map-controls {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  padding: 11px 16px;
  background: #fafdfc;
  border-bottom: 1px solid #e4efec;
}
.project-map-control-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.project-map-control-group > label {
  font-size: 10px;
  font-weight: 750;
  color: #48646a;
}
.map-mode-tabs {
  display: inline-flex;
  border: 1px solid #cbe0da;
  border-radius: 8px;
  background: #eff7f4;
  padding: 2px;
  gap: 2px;
}
.map-mode-btn {
  border: 0;
  background: transparent;
  color: #466660;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 11px;
  border-radius: 6px;
  transition: 0.14s;
}
.map-mode-btn.active {
  background: #1f7463;
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(20, 82, 69, 0.18);
}
.google-map-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  min-height: 460px;
}
.kz-google-map-canvas {
  width: 100%;
  height: 460px;
  min-height: 460px;
  background: #e7f0ee;
}
.local-plan-canvas-wrap {
  width: 100%;
  height: 460px;
  min-height: 460px;
  background: #f4faf8;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.local-plan-svg {
  width: 100%;
  height: 100%;
  display: block;
}
.map-Overlay-sidebar {
  border-left: 1px solid #cbd5e1;
  background: #fbfdfd;
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 580px;
  min-height: 0;
  overflow: hidden;
}
.map-inspector-head {
  padding: 10px 11px;
  border-bottom: 1px solid #e6efec;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.map-visibility-toolbar {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.map-visibility-toolbar .button-small {
  min-height: 27px;
  padding: 0 8px;
  font-size: 10px;
}
.map-search-box {
  width: 100%;
}
.map-hole-list-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border: 1px solid #e1ece9;
  border-radius: 7px;
  background: #ffffff;
  transition: border-color 0.14s, background 0.14s, opacity 0.14s;
}
.map-hole-list-row:hover {
  border-color: #8bc3b4;
  background: #f4fbf8;
}
.map-hole-list-row.active {
  border-color: #207564;
  background: #e8f6f1;
}
.map-hole-list-row.is-hidden-hole {
  opacity: 0.55;
  background: #f6f8f8;
}
.map-hole-check-wrap {
  display: grid;
  place-items: center;
  padding: 4px;
  cursor: pointer;
}
.map-hole-check-wrap input {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: #1f7463;
  cursor: pointer;
}
.map-hole-list-row .map-hole-list-btn {
  flex: 1;
  min-width: 0;
  border: 0;
  padding: 3px 4px;
  background: transparent;
}
.map-hole-solo-btn {
  border: 1px solid #d5e5e0;
  background: #f5fbf9;
  color: #236859;
  border-radius: 5px;
  padding: 3px 6px;
  font-size: 9.5px;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0.75;
}
.map-hole-solo-btn:hover {
  opacity: 1;
  background: #dff3ec;
  border-color: #7abaa8;
}
.map-inspector-head strong {
  font-size: 12px;
  color: #1c443c;
}
.map-inspector-head small {
  font-size: 10px;
  color: #6b8086;
}
.map-selected-card {
  margin: 10px 11px 6px;
  padding: 11px;
  border: 1.5px solid #82bfb0;
  border-radius: 9px;
  background: #f2faf7;
}
.map-selected-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.map-selected-top h4 {
  margin: 4px 0 0;
  font-size: 14px;
  color: #10493e;
}
.map-selected-coords {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 8px;
  margin: 9px 0;
  font-size: 10.5px;
}
.map-selected-coords .span-2 {
  grid-column: span 2;
}
.map-selected-coords span {
  display: block;
  font-size: 9px;
  color: #657c82;
}
.map-selected-coords b {
  color: #1c3f39;
  font-variant-numeric: tabular-nums;
}
.map-selected-actions {
  display: flex;
  gap: 6px;
}
.map-distances-box {
  margin: 4px 11px 8px;
  padding: 8px 10px;
  border: 1px solid #dcebe6;
  border-radius: 8px;
  background: #ffffff;
}
.map-distances-box > small {
  display: block;
  font-size: 9.5px;
  color: #556f74;
  margin-bottom: 6px;
}
.map-dist-rows {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.map-dist-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border: 1px solid #edf4f2;
  background: #f8fcfb;
  border-radius: 6px;
  padding: 4px 8px;
  font-size: 10.5px;
  color: #214c43;
}
.map-dist-item:hover {
  border-color: #96cabd;
  background: #ebf7f3;
}
.map-hole-list-scroll {
  flex: 1 1 auto;
  min-height: 220px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 6px 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  scrollbar-width: thin;
  scrollbar-color: #94a3b8 #f1f5f9;
}
.map-hole-list-scroll::-webkit-scrollbar {
  width: 8px;
}
.map-hole-list-scroll::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 6px;
}
.map-hole-list-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 6px;
  border: 2px solid #f1f5f9;
}
.map-hole-list-scroll::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}
.map-selected-card.is-compact-section-card {
  margin: 6px 10px 4px;
  padding: 8px 10px;
  flex-shrink: 0;
}
.map-hole-list-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  text-align: left;
  padding: 7px 9px;
  border: 1px solid #e1ece9;
  border-radius: 7px;
  background: #ffffff;
}
.map-hole-list-btn:hover {
  border-color: #8bc3b4;
  background: #f4fbf8;
}
.map-hole-list-btn.active {
  border-color: #207564;
  background: #e8f6f1;
}
.map-hole-list-btn strong {
  display: block;
  font-size: 11.5px;
  color: #19453c;
}
.map-hole-list-btn small {
  display: block;
  font-size: 9.5px;
  color: #6a7f85;
  margin-top: 2px;
}
.map-empty-hint,
.map-no-coords-note {
  margin: 10px 11px;
  padding: 10px;
  border-radius: 8px;
  background: #fff9ec;
  border: 1px solid #f0dfba;
  color: #7c5e2b;
  font-size: 10.5px;
  line-height: 1.45;
}
.geolog-hole-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  user-select: none;
  /* Anchor the bottom dot center right onto the geographical coordinate */
  transform: translateY(calc(var(--hole-dot-size, 11px) * 0.5));
}
.geolog-hole-label {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 5px;
  background: rgba(14, 48, 41, 0.9);
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.38);
  font-size: calc(11px * var(--hole-pin-scale, 1));
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  transform: scale(var(--hole-pin-scale, 1));
  transform-origin: bottom center;
  transition: transform 0.12s ease, background 0.14s ease, border-color 0.14s ease;
}
.geolog-hole-name {
  letter-spacing: 0.01em;
}
.geolog-hole-depth {
  font-size: 0.85em;
  color: #a7f3d0;
  font-weight: 700;
}
/* Hide extra depth text when zoomed far out so labels stay compact */
.kz-google-map-canvas[data-zoom-tier="far"] .geolog-hole-depth {
  display: none;
}
.geolog-hole-stem {
  width: 1.5px;
  height: calc(4px * var(--hole-pin-scale, 1));
  background: #ffffff;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}
.geolog-hole-dot {
  width: var(--hole-dot-size, 11px);
  height: var(--hole-dot-size, 11px);
  border-radius: 50%;
  background: #14b8a6;
  border: 2px solid #ffffff;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.55);
  transition: transform 0.12s ease, background 0.14s ease;
}
.geolog-hole-marker:hover .geolog-hole-label,
.geolog-hole-marker.is-selected .geolog-hole-label {
  background: #064e3b;
  border-color: #fde047;
  color: #fef08a;
  transform: scale(calc(var(--hole-pin-scale, 1) * 1.12));
  z-index: 20;
}
.geolog-hole-marker:hover .geolog-hole-dot,
.geolog-hole-marker.is-selected .geolog-hole-dot {
  background: #f97316;
  border-color: #ffffff;
  transform: scale(1.22);
}
.geolog-infowindow {
  padding: 4px 2px;
  font-size: 11.5px;
  color: #1f3940;
  line-height: 1.45;
}
.geolog-iw-proj {
  font-size: 9.5px;
  font-weight: 800;
  color: #257c70;
  text-transform: uppercase;
}
.geolog-iw-meta {
  margin-top: 6px;
  display: grid;
  gap: 2px;
  font-size: 11px;
}
@media (max-width: 960px) {
  .google-map-shell {
    grid-template-columns: 1fr;
  }
  .map-Overlay-sidebar {
    border-left: 0;
    border-top: 1px solid #e2ece9;
    max-height: 320px;
  }
}

/* Project deletion confirmation bar & Excel column mapping wizard */
.project-delete-btn {
  color: #a64444 !important;
}
.project-delete-btn:hover {
  background: #fff0ef !important;
  color: #8f2c2c !important;
}
.project-delete-confirm-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 12px 15px;
  background: #fff6f5;
  border-bottom: 1.5px solid #efb9b4;
}
.project-delete-confirm-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.project-delete-confirm-text strong {
  font-size: 12.5px;
  color: #8c2a2a;
}
.project-delete-confirm-text span {
  font-size: 11px;
  color: #6e4444;
}
.project-delete-confirm-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.button-danger {
  background: #bf3b3b;
  color: #ffffff;
  border-color: #a83232;
}
.button-danger:hover {
  background: #9f2d2d;
}

.excel-mapper-card {
  border: 2px solid #257c70;
  border-radius: 12px;
  background: #ffffff;
  margin-bottom: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(21, 77, 65, 0.12);
}
.excel-mapper-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  background: linear-gradient(100deg, #e7f6f2 0%, #f5fbf9 100%);
  border-bottom: 1px solid #cde3dc;
}
.excel-mapper-header strong {
  display: block;
  font-size: 14px;
  color: #12463c;
  margin-top: 5px;
}
.excel-mapper-header p {
  margin: 4px 0 0;
  font-size: 11.5px;
  color: #4c666c;
}
.excel-mapper-body {
  padding: 16px 18px;
}
.excel-default-project-bar {
  display: flex;
  gap: 12px;
  padding: 11px 14px;
  background: #f5faf8;
  border: 1px solid #d7e8e2;
  border-radius: 9px;
  margin-bottom: 14px;
}
.excel-map-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.excel-map-field {
  padding: 10px 12px;
  border: 1px solid #dde7e9;
  border-radius: 9px;
  background: #fafcfc;
  transition: border-color 0.14s, background 0.14s;
}
.excel-map-field.is-mapped {
  border-color: #88c4b4;
  background: #f3faf7;
}
.excel-map-field.is-required:not(.is-mapped) {
  border-color: #e4a29b;
  background: #fff8f7;
}
.excel-map-sample {
  margin-top: 6px;
  font-size: 10px;
  color: #5e747a;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.excel-mapper-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e3ece9;
}
@media (max-width: 960px) {
  .excel-map-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  .excel-map-grid {
    grid-template-columns: 1fr;
  }
}

/* Automatic label collision de-overlapping when zoomed out */
.geolog-hole-marker.is-label-crowded .geolog-hole-label,
.geolog-hole-marker.is-label-crowded .geolog-hole-stem {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.75);
}
.geolog-hole-marker.is-label-crowded:hover .geolog-hole-label,
.geolog-hole-marker.is-label-crowded:hover .geolog-hole-stem,
.geolog-hole-marker.is-selected .geolog-hole-label,
.geolog-hole-marker.is-selected .geolog-hole-stem {
  opacity: 1;
  pointer-events: auto;
  transform: scale(calc(var(--hole-pin-scale, 1) * 1.12));
}

/* Sidebar & Topbar Desktop Install Buttons */
.sidebar-install-btn {
  width: 100%;
  margin-bottom: 10px;
  padding: 9px 12px;
  border-radius: 9px;
  border: 1.5px solid #257c70;
  background: linear-gradient(135deg, #166557 0%, #10483e 100%);
  color: #ffffff;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-shadow: 0 4px 12px rgba(16, 72, 62, 0.2);
  transition: transform 0.14s, background 0.14s;
}
.sidebar-install-btn:hover {
  background: linear-gradient(135deg, #1b7a69 0%, #13584b 100%);
  transform: translateY(-1px);
}
.install-ready-pulse {
  border-color: #167966 !important;
  color: #104c40 !important;
  background: #e6f7f3 !important;
}

/* High-Resolution Map Print / PDF & Desktop Install Modal */
.map-print-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(12, 30, 27, 0.68);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.map-print-modal-card,
.install-guide-card {
  width: min(1140px, 96vw);
  max-height: 92vh;
  background: #ffffff;
  border-radius: 14px;
  border: 1.5px solid #96c7b9;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.install-guide-card {
  width: min(780px, 95vw);
}
.map-print-modal-head {
  padding: 14px 18px;
  background: #f2faf7;
  border-bottom: 1px solid #d5e8e2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.map-print-modal-head h3 {
  margin: 4px 0 0;
  font-size: 15px;
  color: #103f36;
}
.map-print-preview-body {
  padding: 16px;
  background: #e6efec;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.map-print-sheet-img {
  max-width: 100%;
  max-height: 70vh;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.18);
  background: #ffffff;
}
.map-print-modal-foot {
  padding: 11px 18px;
  background: #f8fbfa;
  border-top: 1px solid #dcebe6;
  font-size: 11.5px;
  color: #3f5a5f;
}
.install-guide-body {
  padding: 18px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.install-guide-highlight {
  padding: 14px 16px;
  border-radius: 10px;
  background: #e9f8f3;
  border: 1.5px solid #6ec2ad;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.install-guide-highlight strong {
  display: block;
  font-size: 13.5px;
  color: #0f483d;
}
.install-guide-highlight p {
  margin: 4px 0 0;
  font-size: 11.5px;
  color: #365952;
  max-width: 460px;
}
.install-guide-steps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px) {
  .install-guide-steps {
    grid-template-columns: 1fr;
  }
}
.install-step-box {
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid #d9e8e3;
  background: #fbfdfd;
}
.install-step-num {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 99px;
  background: #dff3ec;
  color: #166052;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.install-step-box h4 {
  margin: 8px 0 8px;
  font-size: 13px;
  color: #153f37;
}
.install-step-box ol {
  margin: 0;
  padding-left: 18px;
  font-size: 11.5px;
  color: #3a5257;
  line-height: 1.55;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

@media print {
  body.printing-borehole-map .app-shell,
  body.printing-borehole-map .bottom-nav,
  body.printing-borehole-map .description-dock,
  body.printing-borehole-map .toast,
  body.printing-borehole-map .map-print-modal-head,
  body.printing-borehole-map .map-print-modal-foot {
    display: none !important;
  }
  body.printing-borehole-map .map-print-modal-backdrop {
    position: static !important;
    padding: 0 !important;
    background: #ffffff !important;
  }
  body.printing-borehole-map .map-print-modal-card {
    width: 100% !important;
    max-height: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  body.printing-borehole-map .map-print-preview-body {
    padding: 0 !important;
    background: #ffffff !important;
  }
  body.printing-borehole-map .map-print-sheet-img {
    width: 100% !important;
    max-height: 96vh !important;
    box-shadow: none !important;
  }
}

/* ==========================================================================
   GEOLOG ENTERPRISE — EXECUTIVE & GEOLOGICAL COMMAND CENTER DESIGN SYSTEM
   Tailored for Chief Geologists, Exploration Directors, and Field Engineers
   ========================================================================== */

:root {
  --ink: #0f172a;
  --muted: #475569;
  --muted-2: #64748b;
  --line: #cbd5e1;
  --paper: #ffffff;
  --canvas: #f1f5f9;
  --nav: #0b1320;
  --nav-soft: #132034;
  --accent: #0f766e;
  --accent-dark: #115e59;
  --accent-pale: #f0fdfa;
  --blue: #0369a1;
  --warning: #b45309;
  --warning-pale: #fffbeb;
  --danger: #b91c1c;
  --shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
  --radius: 8px;
  --font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

body {
  font-family: var(--font);
  color: var(--ink);
  background: var(--canvas);
  letter-spacing: -0.008em;
}

/* Native Desktop Workstation Shell (No website page scroll, full-viewport app layout) */
@media (min-width: 621px) {
  html,
  body {
    height: 100vh;
    overflow: hidden;
    background: #e2e8f0;
  }
  .app-shell {
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
    overflow: hidden;
    grid-template-columns: 260px minmax(0, 1fr);
  }
  .sidebar {
    height: 100vh;
    min-height: 100vh;
    padding: 18px 14px 14px;
    border-right: 1px solid #1e293b;
    background: #0b1320;
    box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.04);
  }
  .main-area {
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f1f5f9;
  }
  .topbar {
    height: 54px;
    min-height: 54px;
    flex-shrink: 0;
    padding: 0 22px;
    background: #ffffff;
    border-bottom: 1px solid #cbd5e1;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  }
  .content-wrap {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 18px 24px 86px;
    max-width: 100%;
    margin: 0;
  }
  .page-heading {
    display: none !important;
  }
  .bottom-nav {
    left: 260px;
    height: 56px;
    padding: 6px 20px;
    background: #0f172a;
    border-top: 1px solid #1e293b;
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.16);
  }
  .app-shell.sidebar-collapsed .bottom-nav {
    left: 62px;
  }
}

/* Executive Sidebar Styling */
.brand {
  padding: 2px 8px 22px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
  margin-bottom: 16px;
}
.brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: linear-gradient(135deg, #0d9488 0%, #0f766e 100%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 2px 8px rgba(13, 148, 136, 0.35);
}
.brand strong {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #f8fafc;
}
.brand small {
  color: #94a3b8;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-top: 3px;
}
.workspace-label,
.nav-caption {
  color: #64748b;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.1em;
  padding: 0 10px;
  margin: 0 0 8px;
}
.project-switch {
  background: #132034;
  border: 1px solid #1e293b;
  border-radius: 7px;
  padding: 10px 11px;
  margin-bottom: 20px;
  transition: border-color 0.15s, background 0.15s;
}
.project-switch:hover {
  background: #172740;
  border-color: #334155;
}
.project-switch b {
  font-size: 12px;
  font-weight: 700;
  color: #f1f5f9;
  font-family: var(--mono);
}
.project-switch small {
  font-size: 10.5px;
  color: #94a3b8;
}
.project-dot {
  background: #14b8a6;
  box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.18);
}
.nav-item {
  border-radius: 6px;
  padding: 9px 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: #cbd5e1;
  border: 1px solid transparent;
}
.nav-item:hover {
  background: #132034;
  color: #ffffff;
}
.nav-item.active {
  background: #132e35;
  color: #ffffff;
  border-color: rgba(20, 184, 166, 0.35);
  box-shadow: inset 3px 0 0 #14b8a6;
}
.nav-icon {
  border-radius: 5px;
  border-color: #334155;
  background: #0f172a;
  color: #94a3b8;
  font-family: var(--mono);
}
.nav-item.active .nav-icon {
  border-color: #14b8a6;
  color: #5eead4;
  background: rgba(20, 184, 166, 0.12);
}
.row-count {
  font-family: var(--mono);
  font-weight: 700;
  background: #1e293b;
  color: #cbd5e1;
  border-radius: 4px;
}
.sidebar-install-btn {
  border-radius: 6px;
  border: 1px solid #0d9488;
  background: #0f766e;
  color: #ffffff;
  font-size: 11.5px;
  font-weight: 700;
  padding: 9px 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.sidebar-install-btn:hover {
  background: #0d9488;
  transform: none;
}
.local-note {
  border: 1px solid #1e293b;
  background: #111c2d;
  border-radius: 6px;
}
.side-version {
  font-family: var(--mono);
  font-size: 9.5px;
  color: #64748b;
  letter-spacing: 0.08em;
  padding: 10px 6px 0;
  text-align: center;
}

/* Top Command Ribbon */
.breadcrumbs {
  font-size: 12px;
  color: #64748b;
}
.breadcrumbs strong {
  font-weight: 700;
  color: #0f172a;
}
.hole-manager {
  border-left: 1px solid #e2e8f0;
  padding: 0 14px;
}
.hole-manager label {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #475569;
}
.hole-manager select {
  height: 34px;
  padding: 0 28px 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #f8fafc;
  color: #0f172a;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
}
.hole-manager select:focus {
  border-color: #0f766e;
  background: #ffffff;
  outline: none;
}

/* Crisp Industrial Buttons */
.button {
  border-radius: 6px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: -0.005em;
  min-height: 36px;
  padding: 0 14px;
}
.button-small {
  min-height: 32px;
  padding: 0 11px;
  font-size: 11.5px;
}
.button-primary {
  background: #0f766e;
  border-color: #0d9488;
  color: #ffffff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.button-primary:hover {
  background: #115e59;
}
.button-secondary {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #1e293b;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.button-secondary:hover {
  background: #f8fafc;
  border-color: #94a3b8;
  color: #0f172a;
}
.button-quiet {
  color: #475569;
}
.button-quiet:hover {
  background: #e2e8f0;
  color: #0f172a;
}

/* Executive KPI Summary Strip (For Directors & Chief Geologists) */
.exec-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.exec-kpi-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-top: 3px solid #0f766e;
  border-radius: 7px;
  padding: 12px 15px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.exec-kpi-card:nth-child(2) {
  border-top-color: #0284c7;
}
.exec-kpi-card:nth-child(3) {
  border-top-color: #d97706;
}
.exec-kpi-card:nth-child(4) {
  border-top-color: #0f766e;
}
.exec-kpi-label {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #64748b;
  text-transform: uppercase;
}
.exec-kpi-value-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 6px 0 4px;
}
.exec-kpi-num {
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.exec-kpi-unit {
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 600;
  color: #64748b;
}
.exec-kpi-sub {
  font-size: 11px;
  color: #475569;
}
.exec-kpi-sub b {
  font-family: var(--mono);
  color: #0f172a;
}
.exec-kpi-bar {
  height: 5px;
  background: #e2e8f0;
  border-radius: 99px;
  overflow: hidden;
  margin-top: 4px;
}
.exec-kpi-bar > div {
  height: 100%;
  background: linear-gradient(90deg, #0f766e 0%, #14b8a6 100%);
  border-radius: 99px;
}
@media (max-width: 1024px) {
  .exec-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  .exec-kpi-strip {
    grid-template-columns: 1fr;
  }
}

/* Panels, Cards & Section Headers */
.page-card,
.rail-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
.section-head {
  padding: 15px 20px;
  background: #f8fafc;
  border-bottom: 1px solid #cbd5e1;
  align-items: center;
}
.section-head h2 {
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.section-content {
  padding: 18px 20px 22px;
}

/* Unboxed Metadata & Industrial Status Tags */
.mini-badge {
  border-radius: 4px;
  padding: 3px 8px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #334155;
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 600;
}
.mini-badge.green {
  background: #f0fdf4;
  border-color: #86efac;
  color: #166534;
}
.mini-badge.amber {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}
.exec-project-meta {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: #475569;
  padding-left: 8px;
  border-left: 1px solid #cbd5e1;
}

/* Registry Toolbar, Map & Project Accordions */
.registry-toolbar-bar {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 10px 14px;
}
.project-map-card {
  border: 1px solid #94a3b8;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}
.project-map-header {
  background: #0f172a;
  color: #f8fafc;
  border-bottom: 1px solid #1e293b;
  padding: 11px 16px;
}
.project-map-title strong {
  color: #f8fafc;
  font-size: 13.5px;
  font-weight: 700;
}
.project-map-header .registry-project-badge {
  background: #0f766e;
  color: #ffffff;
  border: 1px solid #14b8a6;
}
.project-map-header .mini-badge {
  background: #1e293b;
  border-color: #334155;
  color: #cbd5e1;
}
.project-map-header .button-quiet {
  color: #cbd5e1;
}
.project-map-header .button-quiet:hover {
  background: #1e293b;
  color: #ffffff;
}
.project-map-controls {
  background: #f8fafc;
  border-bottom: 1px solid #cbd5e1;
  padding: 10px 16px;
}
.map-mode-tabs {
  border: 1px solid #cbd5e1;
  background: #e2e8f0;
  border-radius: 6px;
  padding: 2px;
}
.map-mode-btn {
  border-radius: 4px;
  color: #475569;
  font-size: 11.5px;
  font-weight: 700;
  padding: 5px 12px;
}
.map-mode-btn.active {
  background: #0f172a;
  color: #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
.kz-offline-map-wrap {
  position: relative;
  width: 100%;
  min-height: 460px;
  height: 100%;
  background: #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #cbd5e1;
}
.kz-offline-map-wrap.is-ruler-cursor .kz-offline-map-canvas {
  cursor: crosshair;
}
.kz-offline-map-canvas {
  display: block;
  width: 100%;
  height: 460px;
  cursor: grab;
  touch-action: none;
}
.kz-offline-map-canvas:active {
  cursor: grabbing;
}

/* Floating In-Map HUD Controls (Distance toggle, A-B Ruler, Smooth Zoom, Fullscreen) */
.kz-map-floating-hud {
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
  flex-wrap: wrap;
}
.kz-hud-left,
.kz-hud-right {
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: auto;
  flex-wrap: wrap;
}
.kz-hud-btn,
.kz-hud-icon-btn {
  height: 30px;
  padding: 0 10px;
  border-radius: 5px;
  border: 1px solid rgba(15, 23, 42, 0.22);
  background: rgba(255, 255, 255, 0.94);
  color: #0f172a;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(6px);
  transition: all 0.14s ease;
}
.kz-hud-icon-btn {
  width: 30px;
  padding: 0;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
}
.kz-hud-btn:hover,
.kz-hud-icon-btn:hover {
  background: #ffffff;
  border-color: #0f766e;
  color: #0f766e;
}
.kz-hud-btn.is-active {
  background: #0f172a;
  border-color: #0d9488;
  color: #5eead4;
}
.kz-hud-btn.is-amber-active {
  background: #b45309;
  border-color: #f59e0b;
  color: #ffffff;
}
.kz-hud-btn.is-clear {
  background: #fef2f2;
  border-color: #fca5a5;
  color: #b91c1c;
}
.kz-map-mode-pill {
  position: absolute;
  top: 46px;
  left: 10px;
  z-index: 5;
  padding: 5px 10px;
  border-radius: 5px;
  background: rgba(15, 23, 42, 0.86);
  color: #e2e8f0;
  font-size: 11px;
  pointer-events: none;
  border: 1px solid rgba(56, 189, 248, 0.4);
}
.kz-map-mode-pill.is-amber {
  background: rgba(120, 53, 15, 0.92);
  border-color: #fbbf24;
  color: #fef3c7;
}
.map-hole-solo-btn.is-pair-active {
  background: #0284c7 !important;
  border-color: #0369a1 !important;
  color: #ffffff !important;
  font-weight: 700;
}

/* Fullscreen Map View Mode */
.project-map-card.is-fullscreen {
  position: fixed !important;
  inset: 10px !important;
  z-index: 9990 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  background: #ffffff !important;
  border: 2px solid #0f172a !important;
  border-radius: 10px !important;
  box-shadow: 0 24px 60px rgba(2, 6, 23, 0.55) !important;
}
.project-map-card.is-fullscreen .project-map-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
.project-map-card.is-fullscreen .google-map-shell {
  flex: 1 1 auto !important;
  height: 100% !important;
  min-height: 0 !important;
  grid-template-columns: minmax(0, 1fr) 330px !important;
}
.project-map-card.is-fullscreen .kz-offline-map-wrap,
.project-map-card.is-fullscreen .kz-offline-map-canvas,
.project-map-card.is-fullscreen .kz-google-map-canvas,
.project-map-card.is-fullscreen .local-plan-canvas-wrap {
  height: calc(100vh - 140px) !important;
  min-height: 460px !important;
}
.project-map-card.is-fullscreen .map-Overlay-sidebar {
  max-height: calc(100vh - 140px) !important;
}

/* Project Group Accordions & Precision Data Tables */
.registry-project-group {
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.02);
}
.registry-project-header {
  background: #f8fafc;
  border-bottom: 1px solid #cbd5e1;
  padding: 11px 16px;
}
.registry-project-header:hover {
  background: #f1f5f9;
}
.registry-project-header strong {
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
}
.registry-project-badge {
  border-radius: 4px;
  background: #e2e8f0;
  color: #1e293b;
  border: 1px solid #cbd5e1;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 800;
}
.table-wrap {
  border: 1px solid #cbd5e1;
  border-radius: 6px;
}
.data-table th {
  background: #f1f5f9;
  color: #334155;
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 9px 10px;
  border-bottom: 1px solid #cbd5e1;
}
.data-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
  font-size: 12px;
  color: #1e293b;
  font-variant-numeric: tabular-nums;
}
.registry-table td:nth-child(3),
.registry-table td:nth-child(4),
.registry-table td:nth-child(5),
.registry-table td:nth-child(8),
.registry-table td:nth-child(9) {
  font-family: var(--mono);
  font-size: 11.5px;
}
.registry-bhid {
  font-family: var(--mono);
  font-weight: 800;
  color: #0f172a;
  font-size: 12.5px;
}
.registry-row-active {
  background: #f0fdfa;
}
.data-table tbody tr:hover {
  background: #f8fafc;
}
.interval-depth,
.depth-badge {
  font-family: var(--mono);
  border-radius: 5px;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  color: #0f766e !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* Right Inspector Rail & Lithology Depth Column */
.rail-card {
  padding: 15px;
}
.rail-title h3 {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0f172a;
}
.rail-identity {
  background: #0f172a;
  border: 1px solid #1e293b;
  border-radius: 6px;
  padding: 12px;
}
.rail-id-label {
  color: #94a3b8;
  font-size: 9px;
}
.rail-id {
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 800;
  color: #ffffff;
}
.rail-meta-row {
  font-size: 11px;
}
.rail-meta-row span:first-child {
  color: #64748b;
}
.rail-meta-row span:last-child {
  color: #0f172a;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Dark Docked Bottom Navigation Bar */
.bottom-tab {
  min-height: 42px;
  padding: 6px 11px;
  border-radius: 6px;
  color: #94a3b8;
  border: 1px solid transparent;
}
.bottom-tab:hover {
  background: #1e293b;
  color: #f8fafc;
}
.bottom-tab.active {
  background: #132e35;
  border-color: #0d9488;
  color: #ffffff;
}
.bottom-tab .nav-icon {
  background: #1e293b;
  border-color: #334155;
  color: #94a3b8;
  font-family: var(--mono);
}
.bottom-tab.active .nav-icon {
  background: #0f766e;
  border-color: #14b8a6;
  color: #ffffff;
}
.bottom-tab-label {
  font-size: 11.5px;
  font-weight: 600;
}
.bottom-nav-divider {
  background: #1e293b;
}
.bottom-tab .row-count {
  background: #1e293b;
  color: #cbd5e1;
  font-family: var(--mono);
}
.bottom-tab.active .row-count {
  background: #0f766e;
  color: #ffffff;
}

.app-win-dots {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-right: 6px;
}
.app-win-dots i {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  display: inline-block;
}
.app-win-dots i:nth-child(1) {
  background: #0f766e;
}
.app-win-dots i:nth-child(2) {
  background: #0284c7;
}
.app-win-dots i:nth-child(3) {
  background: #d97706;
}

/* Registry Top Summary Bar & Single "Создать проект" Dropdown */
.registry-top-summary-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  margin-bottom: 14px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.registry-projects-kpi {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.create-project-dropdown-wrap {
  position: relative;
}
.create-project-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 120;
  width: 280px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.create-project-dropdown-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 9px 11px;
  border: none;
  border-radius: 6px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: #0f172a;
  transition: background 0.12s ease;
}
.create-project-dropdown-item:hover {
  background: #f1f5f9;
}
.create-project-dropdown-item strong {
  font-size: 12.5px;
  font-weight: 700;
  color: #0f172a;
}
.create-project-dropdown-item small {
  font-size: 11px;
  color: #64748b;
}
.create-project-dropdown-item.is-sub {
  border-top: 1px solid #e2e8f0;
  margin-top: 2px;
  padding-top: 8px;
  font-size: 11.5px;
  font-weight: 600;
  color: #0f766e;
}

/* Interactive Map Export Composer Modal */
.map-export-composer-card {
  width: min(96vw, 1480px) !important;
  max-height: 92vh !important;
  display: flex;
  flex-direction: column;
}
.map-export-composer-grid {
  display: grid;
  grid-template-columns: 330px 1fr;
  min-height: 540px;
  max-height: calc(92vh - 76px);
  overflow: hidden;
}
.map-export-composer-sidebar {
  background: #f8fafc;
  border-right: 1px solid #cbd5e1;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow-y: auto;
}
.composer-section {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 10px 12px;
}
.composer-holes-section {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 180px;
}
.composer-holes-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 290px;
  overflow-y: auto;
  padding-right: 2px;
}
.composer-hole-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 5px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  cursor: pointer;
  font-size: 12px;
}
.composer-hole-item.is-checked {
  background: #f0fdf4;
  border-color: #86efac;
}
.composer-hole-item div {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.composer-hole-item strong {
  font-family: var(--mono);
  font-size: 12px;
  color: #0f172a;
}
.composer-hole-item small {
  font-family: var(--mono);
  font-size: 10.5px;
  color: #64748b;
}
@media (max-width: 960px) {
  .map-export-composer-grid {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }
}

/* Primary Map / Cross-Section Switch & Geological Cross-Section Styles */
.map-section-primary-switch {
  display: inline-flex;
  align-items: center;
  background: #e2e8f0;
  padding: 3px;
  border-radius: 7px;
  gap: 3px;
}
.map-section-switch-btn {
  border: none;
  background: transparent;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 5px;
  cursor: pointer;
  transition: all 0.14s ease;
  white-space: nowrap;
}
.map-section-switch-btn:hover {
  color: #0f172a;
}
.map-section-switch-btn.active {
  background: #0f766e;
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
}

.geolog-section-viewport-wrap {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  min-height: 540px;
  height: 100%;
  overflow: hidden;
}
/* Persistent Cross-Section Profile & Multi-Borehole Selection Strip */
.section-persistent-picker-bar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 10px 12px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.section-picker-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-bottom: 7px;
  border-bottom: 1px dashed #e2e8f0;
}
.section-picker-holes-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.section-picker-label {
  font-size: 10.5px;
  font-weight: 800;
  color: #334155;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.section-profile-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  color: #0f172a;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.14s ease;
}
.section-profile-pill span {
  font-family: var(--mono);
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 4px;
  background: #e2e8f0;
  color: #334155;
}
.section-profile-pill:hover {
  border-color: #0f766e;
  background: #f0fdfa;
}
.section-profile-pill.is-active {
  background: #0f766e;
  border-color: #0d9488;
  color: #ffffff;
}
.section-profile-pill.is-active span {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
}
.section-picker-chips-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.section-hole-toggle-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  font-size: 11.5px;
  cursor: pointer;
  transition: all 0.12s ease;
  user-select: none;
}
.section-hole-toggle-chip:hover {
  border-color: #0f766e;
  background: #f0fdfa;
  color: #0f172a;
}
.section-hole-toggle-chip .chip-check-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border-radius: 4px;
  background: #e2e8f0;
  color: #475569;
  font-size: 10px;
  font-weight: 800;
}
.section-hole-toggle-chip strong {
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 800;
  color: #0f172a;
}
.section-hole-toggle-chip small {
  font-size: 10px;
  color: #64748b;
}
.section-hole-toggle-chip.is-checked {
  background: #ecfdf5;
  border-color: #10b981;
  color: #065f46;
  box-shadow: 0 1px 2px rgba(16, 185, 129, 0.15);
}
.section-hole-toggle-chip.is-checked .chip-check-box {
  background: #059669;
  color: #ffffff;
}
.section-hole-toggle-chip.is-checked strong {
  color: #064e3b;
}
.section-hole-toggle-chip.is-checked small {
  color: #047857;
}
.section-canvas-And-legend {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}
.section-svg-stage {
  position: relative;
  flex: 1;
  min-height: 440px;
  width: 100%;
  overflow: hidden;
  cursor: grab;
  background: #ffffff;
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.section-svg-stage:active {
  cursor: grabbing;
}
.section-floating-hud {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  z-index: 25;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  pointer-events: none;
  flex-wrap: wrap;
}
.section-jump-bar {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(15, 23, 42, 0.86);
  backdrop-filter: blur(6px);
  padding: 5px 9px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.22);
  pointer-events: auto;
  max-width: 68%;
  overflow-x: auto;
}
.section-jump-label {
  font-size: 11px;
  font-weight: 700;
  color: #cbd5e1;
  white-space: nowrap;
  margin-right: 2px;
}
.section-hole-jump-chip {
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.1);
  color: #f8fafc;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 5px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.12s ease;
}
.section-hole-jump-chip:hover {
  background: rgba(20, 184, 166, 0.35);
  border-color: #2dd4bf;
}
.section-hole-jump-chip.is-active {
  background: #ea580c;
  border-color: #fdba74;
  color: #ffffff;
}
.section-zoom-hud {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(15, 23, 42, 0.88);
  backdrop-filter: blur(6px);
  padding: 4px 7px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.22);
  pointer-events: auto;
}
.section-zoom-pct {
  min-width: 48px;
  text-align: center;
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 800;
  color: #f8fafc;
}
.geolog-cross-section-svg {
  width: 100%;
  height: 100%;
  min-height: 410px;
  display: block;
  user-select: none;
}
.section-legend-bar {
  border-top: 1px solid #cbd5e1;
  background: #f8fafc;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.section-legend-title {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #475569;
  text-transform: uppercase;
}
.section-legend-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.section-legend-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 4px 10px 4px 6px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.section-legend-swatch-svg {
  flex-shrink: 0;
  display: block;
}
.section-legend-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.section-legend-text strong {
  font-size: 11.5px;
  color: #0f172a;
  font-family: var(--mono);
}
.section-legend-text small {
  font-size: 10.5px;
  color: #64748b;
}

/* ============================================================================
 * ГЕНЕРАТОР ПРОИЗВОДСТВЕННЫХ АКТОВ СКВАЖИН (A4 PREVIEW & PRINT-TO-PDF)
 * Точное соответствие шаблонам «Акты скважин.pdf» и «Акт замера искривления скв.pdf»
 * ============================================================================ */
.acts-workspace-card {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.acts-top-command-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}
.acts-top-title h2 {
  margin: 4px 0 0;
  font-size: 19px;
  font-weight: 800;
  color: #0f172a;
}
.acts-top-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.acts-Subbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 12px;
}
.acts-hole-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.acts-hole-picker label {
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}
.acts-clear-confirm-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  padding: 2px 8px;
}
.acts-loaded-holes-strip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 7px 12px;
}
.acts-strip-label {
  font-size: 11.5px;
  font-weight: 700;
  color: #475569;
}
.acts-hole-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.acts-hole-pill {
  display: inline-flex;
  align-items: center;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  overflow: hidden;
  transition: all 0.14s ease;
}
.acts-hole-pill.is-active {
  border-color: #0f766e;
  background: #f0fdfa;
  box-shadow: 0 1px 2px rgba(15, 118, 110, 0.15);
}
.acts-hole-pill-select {
  border: none;
  background: transparent;
  padding: 4px 9px;
  font-size: 12px;
  font-family: var(--mono);
  color: #0f172a;
  cursor: pointer;
}
.acts-hole-pill.is-active .acts-hole-pill-select {
  color: #0f766e;
}
.acts-hole-pill-del {
  border: none;
  border-left: 1px solid #e2e8f0;
  background: transparent;
  color: #64748b;
  padding: 4px 7px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.acts-hole-pill-del:hover {
  background: #fee2e2;
  color: #dc2626;
}
.acts-doc-filter-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
.acts-main-split {
  display: grid;
  grid-template-columns: 350px 1fr;
  gap: 16px;
  align-items: start;
}
.acts-main-split.is-preview-only {
  grid-template-columns: 1fr;
}
.acts-editor-sidebar {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 12px;
  max-height: 82vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.acts-editor-group {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 10px 12px;
}
.acts-editor-group h4 {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #0f766e;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 6px;
}
.acts-preview-stage {
  background: #64748b;
  border: 1px solid #475569;
  border-radius: 8px;
  padding: 28px 20px;
  max-height: 82vh;
  overflow: auto;
  display: flex;
  justify-content: center;
}
.acts-preview-sheets-wrap {
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-items: center;
  width: 100%;
}

/* Лист А4 (210mm x 297mm = 794px x 1123px) в точности по загруженному PDF */
.act-a4-page {
  width: 210mm;
  min-width: 210mm;
  min-height: 297mm;
  background: #ffffff;
  color: #000000;
  padding: 18mm 20mm 16mm 25mm;
  box-sizing: border-box;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.38);
  font-family: "Times New Roman", Times, Georgia, serif;
  font-size: 12pt;
  line-height: 1.38;
  position: relative;
  text-align: left;
}

/* Заголовок по центру: АКТ и подзаголовок */
.act-center-header {
  text-align: center;
  margin-bottom: 10px;
}
.act-h1 {
  font-weight: 700;
  font-size: 13.5pt;
  letter-spacing: 0.02em;
  text-align: center;
  line-height: 1.25;
}
.act-h2 {
  font-weight: 700;
  font-size: 12.5pt;
  text-align: center;
  line-height: 1.3;
  margin-top: 2px;
}

/* Строка даты строго справа: «___» __________ 2026г. */
.act-date-right-row {
  text-align: right;
  font-size: 12pt;
  margin: 6px 0 8px;
}

/* Месторождение / участок работ строго по центру с подписью снизу */
.act-center-site {
  text-align: center;
  margin: 4px 0 14px;
}
.act-site-title {
  font-weight: 700;
  font-size: 12.5pt;
  text-align: center;
}
.act-sub-caption {
  font-size: 9pt;
  color: #000000;
  line-height: 1.15;
  margin-top: 1px;
}
.act-center-text {
  text-align: center !important;
}

/* Строки текста и отступы абзацев */
.act-line {
  font-size: 12pt;
  line-height: 1.42;
  margin: 2px 0;
  color: #000000;
}
.act-indent {
  text-indent: 12.5mm;
}

/* Подчеркнутые поля для заполнения данных */
.act-u {
  display: inline-block;
  border-bottom: 1px solid #000000;
  padding: 0 4px;
  text-align: center;
  font-weight: 700;
  line-height: 1.15;
  min-height: 16px;
  vertical-align: baseline;
}
.act-u-bhid { min-width: 110px; }
.act-u-day { min-width: 26px; }
.act-u-month { min-width: 85px; }
.act-u-w55 { min-width: 55px; }
.act-u-w70 { min-width: 70px; }
.act-u-w80 { min-width: 80px; }
.act-u-w90 { min-width: 90px; }
.act-u-w115 { min-width: 115px; }
.act-u-w160 { min-width: 160px; }
.act-u-w180 { min-width: 180px; }
.act-u-w200 { min-width: 200px; }
.act-u-w250 { min-width: 250px; }
.act-u-w260 { min-width: 260px; }
.act-u-w280 { min-width: 280px; }

/* Строка координат X: ___ Y: ___ Z: ___ */
.act-coords-row {
  display: flex;
  align-items: baseline;
  gap: 28px;
  margin: 4px 0 8px;
  font-size: 12pt;
}

/* Двухколоночная строка в Акте закрытия (Начальный/Конечный диаметр и т.д.) */
.act-two-col-line {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  font-size: 12pt;
  line-height: 1.42;
  margin: 2px 0;
}

/* Полная подчеркнутая строка на всю ширину листа */
.act-full-line {
  width: 100%;
  border-bottom: 1px solid #000000;
  min-height: 22px;
  line-height: 1.35;
  padding: 2px 4px 0;
  box-sizing: border-box;
  text-align: center;
  font-weight: 700;
}

/* Маркированный список в Акте рекультивации */
.act-bullet-list {
  margin: 6px 0 12px 10mm;
  padding: 0;
  list-style-type: disc;
  font-size: 12pt;
  line-height: 1.45;
}
.act-bullet-list li {
  margin-bottom: 2px;
}

/* Блоки подписей комиссии с подписью (фамилия, имя, отчество, подпись) строго по центру */
.act-sig-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.act-sig-item {
  display: flex;
  flex-direction: column;
}
.act-sig-top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  width: 100%;
}
.act-sig-label {
  white-space: nowrap;
  font-size: 12pt;
}
.act-sig-underline {
  flex: 1;
  border-bottom: 1px solid #000000;
  min-height: 20px;
  text-align: center;
  font-weight: 700;
  padding: 0 6px;
}

/* Центрированная линия подписи в Акте рекультивации */
.act-centered-sig-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 2px 0 6px;
}
.act-centered-sig-line {
  width: 72%;
  border-bottom: 1px solid #000000;
  min-height: 20px;
  text-align: center;
  font-weight: 700;
}

/* Таблицы в Акте закрытия и Акте замера искривления */
.act-formal-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #000000;
  font-size: 10.5pt;
  margin: 6px 0;
}
.act-formal-table th,
.act-formal-table td {
  border: 1px solid #000000;
  padding: 3px 6px;
  text-align: center;
  vertical-align: middle;
  color: #000000;
}
.act-formal-table th {
  font-weight: 400;
  background: #ffffff;
  line-height: 1.2;
}
.act-formal-table tbody td {
  height: 21px;
  font-weight: 700;
}

/* Специфика Акта замера искривления (стр. 6) */
.act-inclin-date-row {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}
.act-inclin-date-box {
  text-align: center;
  min-width: 210px;
}
.act-inclin-date-line {
  font-weight: 700;
  border-bottom: 1px solid #000000;
  padding-bottom: 1px;
}
.act-inclin-header-split {
  display: grid;
  grid-template-columns: 44% 56%;
  gap: 12px;
  align-items: start;
  margin-bottom: 8px;
  font-size: 11pt;
}
.act-inclin-right-col {
  line-height: 1.38;
}
.act-inclin-table th {
  font-size: 9.5pt;
}
.act-inclin-table tbody td {
  height: 19.5px;
  font-size: 10.5pt;
}

/* Подписи в Акте замера искривления */
.act-inclin-signatures {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.act-inclin-sig-row {
  display: grid;
  grid-template-columns: 125px 1fr 1fr 120px;
  gap: 12px;
  align-items: end;
}
.act-inclin-sig-label {
  font-size: 11pt;
}
.act-inclin-sig-col {
  display: flex;
  flex-direction: column;
}
.act-inclin-line {
  border-bottom: 1px solid #000000;
  min-height: 19px;
  text-align: center;
  font-weight: 700;
  font-size: 11pt;
}
.act-inclin-sig-col small {
  text-align: center;
  font-size: 8.5pt;
}

/* Скрытый контейнер для чистой печати / сохранения в PDF */
.geolog-acts-print-host {
  display: none;
}

@media (max-width: 1180px) {
  .acts-main-split {
    grid-template-columns: 1fr;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }
  body.printing-borehole-acts .app-shell,
  body.printing-borehole-acts .bottom-nav,
  body.printing-borehole-acts .description-dock,
  body.printing-borehole-acts .toast {
    display: none !important;
  }
  body.printing-borehole-acts .geolog-acts-print-host {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  body.printing-borehole-acts .act-a4-page {
    box-shadow: none !important;
    margin: 0 !important;
    width: 210mm !important;
    min-height: 297mm !important;
    page-break-after: always;
    break-after: page;
  }
  body.printing-borehole-acts .act-a4-page:last-child {
    page-break-after: auto;
    break-after: auto;
  }
}

/* ============================================================================
 * УСЛОВНЫЕ ОБОЗНАЧЕНИЯ ПОРОД НА КОЛОНКЕ И В СПРАВОЧНИКЕ ЛИТОЛОГИИ (ГОСТ / USGS)
 * ============================================================================ */
.rock-lookup-swatch {
  flex-shrink: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
  border-radius: 3px;
}
.lookup-input-shell .rock-lookup-swatch {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  margin-right: 0;
  pointer-events: none;
}
.interval-pattern-swatch {
  flex-shrink: 0;
  display: inline-block;
  vertical-align: middle;
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.strat-column-strip-card {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
.strat-column-strip-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.strat-column-strip-head strong {
  font-size: 13.5px;
  color: #0f172a;
  margin-left: 6px;
}
.strat-column-strip-head small {
  font-size: 11.5px;
  color: #64748b;
}
.strat-column-strip-track {
  display: flex;
  align-items: stretch;
  gap: 3px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.strat-strip-seg {
  display: flex;
  flex-direction: column;
  min-width: 78px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 5px 6px;
}
.strat-strip-depths {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  color: #475569;
  margin-bottom: 3px;
}
.strat-strip-svg {
  width: 100%;
  height: 36px;
  display: block;
  border-radius: 3px;
  overflow: hidden;
}
.strat-strip-label {
  display: flex;
  flex-direction: column;
  margin-top: 4px;
  line-height: 1.2;
}
.strat-strip-label strong {
  font-family: var(--mono);
  font-size: 11px;
  color: #0f172a;
}
.strat-strip-label small {
  font-size: 10.5px;
  color: #475569;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ============================================================================
 * ВЫГРУЗКА ДАННЫХ ПРОЕКТА ДЛЯ СТОРОННИХ ГОРНО-ГЕОЛОГИЧЕСКИХ ПО И ГИС
 * (Leapfrog Geo, Micromine, QGIS, Surpac / Datamine, AutoCAD DXF)
 * ============================================================================ */
.mining-export-hub-card {
  margin-top: 20px;
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.mining-export-hub-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.mining-export-hub-head h3 {
  margin: 5px 0 4px;
  font-size: 16.5px;
  font-weight: 800;
  color: #0f172a;
}
.mining-export-hub-head p {
  margin: 0;
  font-size: 12.5px;
  color: #475569;
  max-width: 720px;
  line-height: 1.45;
}
.mining-scope-selector {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.mining-scope-selector label {
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.mining-sw-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}
.mining-sw-card {
  text-align: left;
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 11px 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  transition: all 0.15s ease;
}
.mining-sw-card:hover {
  border-color: #0f766e;
  background: #f0fdfa;
}
.mining-sw-card.is-active {
  border-color: #0f766e;
  background: #f0fdfa;
  box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.16);
}
.mining-sw-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.mining-sw-badge {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #0f766e;
  background: #ccfbf1;
  padding: 2px 6px;
  border-radius: 4px;
}
.mining-sw-card strong {
  font-size: 13.5px;
  font-weight: 800;
  color: #0f172a;
}
.mining-sw-card small {
  font-size: 11px;
  color: #64748b;
  line-height: 1.3;
}
.mining-sw-detail-box {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 13px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
}
.mining-sw-detail-info {
  flex: 1;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mining-sw-detail-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.mining-sw-detail-title strong {
  font-size: 14px;
  color: #0f172a;
}
.mining-sw-detail-info p {
  margin: 0;
  font-size: 12.5px;
  color: #334155;
  line-height: 1.42;
}
.mining-sw-sheets-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 11.5px;
  color: #475569;
}
.mining-sw-sheets-list code {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 1px 6px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: #0f766e;
}
.mining-sw-detail-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* ============================================================================
 * ЖУРНАЛ ОПРОБОВАНИЯ ПО СКВАЖИНЕ И КОНТРОЛЬ КАЧЕСТВА QA/QC (5 ВИДОВ СТАНДАРТОВ)
 * ============================================================================ */
.sampling-kpi-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(225px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.sampling-kpi-card {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 9px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.sampling-kpi-card.is-primary-kpi {
  background: linear-gradient(180deg, #f0fdfa 0%, #ffffff 100%);
  border-color: #99f6e4;
}
.sampling-kpi-card.is-qaqc-kpi {
  background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
  border-color: #bfdbfe;
}
.sampling-kpi-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.sampling-kpi-top span {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #475569;
  text-transform: uppercase;
}
.sampling-kpi-big {
  font-family: var(--mono);
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
}
.sampling-kpi-big small {
  font-family: var(--sans);
  font-size: 11.5px;
  font-weight: 600;
  color: #64748b;
}
.sampling-kpi-big.text-emerald {
  color: #0f766e;
}
.sampling-kpi-big.text-amber {
  color: #b45309;
}
.sampling-progress-track {
  height: 7px;
  background: #e2e8f0;
  border-radius: 99px;
  overflow: hidden;
}
.sampling-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #0f766e, #14b8a6);
  border-radius: 99px;
  transition: width 0.2s ease;
}
.sampling-progress-fill.is-qaqc {
  background: linear-gradient(90deg, #2563eb, #3b82f6);
}
.sampling-kpi-sub {
  font-size: 12px;
  color: #475569;
}

.sampling-qaqc-bar {
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 13px 15px;
  margin-bottom: 16px;
}
.sampling-qaqc-bar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}
.sampling-qaqc-bar-head strong {
  display: block;
  font-size: 13.5px;
  color: #0f172a;
  margin-top: 3px;
}
.sampling-qaqc-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.sampling-qaqc-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(175px, 1fr));
  gap: 10px;
}
@media (max-width: 1280px) {
  .sampling-qaqc-grid {
    grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
  }
}
.sampling-qaqc-card {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 10px 11px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  transition: all 0.14s ease;
}
.sampling-qaqc-card.is-populated {
  border-color: #94a3b8;
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.05);
}
.sampling-qaqc-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.qaqc-type-pill {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 5px;
  background: #e2e8f0;
  color: #334155;
}
.qaqc-type-pill.qaqc-crm { background: #dbeafe; color: #1d4ed8; }
.qaqc-type-pill.qaqc-blk { background: #f1f5f9; color: #334155; border: 1px solid #cbd5e1; }
.qaqc-type-pill.qaqc-fdup { background: #fef3c7; color: #b45309; }
.qaqc-type-pill.qaqc-cdup { background: #ede9fe; color: #6d28d9; }
.qaqc-type-pill.qaqc-pdup { background: #fce7f3; color: #be185d; }

.qaqc-card-pct {
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
}
.qaqc-card-pct small {
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  color: #64748b;
}
.sampling-qaqc-card-title {
  font-size: 13px;
  font-weight: 800;
  color: #0f172a;
}
.sampling-qaqc-card-desc {
  font-size: 11px;
  color: #64748b;
  line-height: 1.32;
}
.sampling-qaqc-card-metrics {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px;
  font-size: 11px;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  padding: 4px 7px;
}
.sampling-qaqc-insert-btn {
  width: 100%;
  justify-content: center;
  margin-top: 2px;
}

/* Полноширинная компоновка: таблица проб сверху, сводка «Породы опробования» снизу */
.sampling-fullwidth-stack {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.sampling-bottom-rocks-section {
  width: 100%;
}

.sampling-rocks-bottom-card {
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 14px 16px;
}

.sampling-rocks-bottom-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.sampling-rocks-bottom-head h4 {
  margin: 4px 0 0;
  font-size: 14.5px;
  font-weight: 800;
  color: #0f172a;
}

.sampling-rocks-bottom-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
  gap: 10px;
}

.sampling-row.is-contour-row {
  background: #fffbeb;
}

/* ============================================================================
 * АВТО-ВЫДЕЛЕНИЕ И ОКОНТУРИВАНИЕ РУДНЫХ ЗОН И ЗОН ОКИСЛЕНИЯ + ALS GEOCHEMISTRY
 * ============================================================================ */
.smart-ore-contour-box {
  background: linear-gradient(180deg, #fffbeb 0%, #ffffff 100%);
  border: 1.5px solid #f59e0b;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.smart-ore-contour-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.smart-ore-actions-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.smart-ore-settings-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
  gap: 10px;
  background: #ffffff;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 10px 12px;
}

.smart-ore-param {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.smart-ore-param > label {
  font-size: 10.5px;
  font-weight: 800;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ore-zones-detected-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 10px;
}

.ore-zone-detect-card {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-left: 5px solid #0f766e;
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.ore-zone-detect-card.zone-ore-rich {
  border-left-color: #dc2626;
  background: #fffafa;
}

.ore-zone-detect-card.zone-oxidation {
  border-left-color: #d97706;
  background: #fffdf5;
}

.ore-zone-detect-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.ore-zone-detect-head strong {
  font-size: 12.5px;
  font-weight: 800;
  color: #0f172a;
}

.ore-zone-pill {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 4px;
  background: #ccfbf1;
  color: #0f766e;
}

.ore-zone-pill.zone-ore-rich {
  background: #fee2e2;
  color: #b91c1c;
}

.ore-zone-pill.zone-oxidation {
  background: #fef3c7;
  color: #b45309;
}

.ore-zone-detect-contours {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.contour-chip {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 5px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.contour-chip.is-hw,
.contour-chip.is-fw {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #92400e;
}

.contour-chip.is-core {
  background: #f0fdfa;
  border-color: #5eead4;
  color: #115e59;
}

.ore-zone-detect-criteria {
  font-size: 11px;
  color: #475569;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ore-zone-detect-criteria small {
  color: #64748b;
  font-size: 10.5px;
}

/* ============================================================================
 * МОДАЛЬНОЕ ОКНО НАРЯД-ЗАКАЗА В ЛАБОРАТОРИЮ ALS И ОБЯЗАТЕЛЬНЫХ АКТОВ ОПРОБОВАНИЯ
 * ============================================================================ */
.als-workorder-modal-card {
  width: min(1420px, 96vw);
  height: min(92vh, 960px);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.als-workorder-modal-body {
  flex: 1;
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}

@media (max-width: 1024px) {
  .als-workorder-modal-body {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }
}

.als-workorder-sidebar {
  background: #f8fafc;
  border-right: 1px solid #cbd5e1;
  padding: 14px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.als-form-group-title {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0f766e;
  margin-bottom: 4px;
}

.als-doc-tabs-vertical {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.als-doc-tab-btn {
  text-align: left;
  padding: 8px 10px;
  border-radius: 7px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-size: 12px;
  font-weight: 700;
  color: #1e293b;
  cursor: pointer;
  transition: all 0.14s ease;
}

.als-doc-tab-btn:hover {
  border-color: #0f766e;
  background: #f0fdfa;
}

.als-doc-tab-btn.is-active {
  background: #0f766e;
  border-color: #0f766e;
  color: #ffffff;
}

.als-sidebar-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.als-mini-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.als-mini-field > span {
  font-size: 11px;
  font-weight: 700;
  color: #334155;
}

.als-mini-field .control {
  font-size: 12px;
  min-height: 32px;
  padding: 4px 8px;
}

.als-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.als-workorder-preview-stage {
  background: #cbd5e1;
  padding: 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}

/* Стили листов А4 для Наряд-заказа ALS и обязательных актов */
.als-a4-page {
  width: 210mm;
  min-height: 297mm;
  background: #ffffff;
  color: #0f172a;
  padding: 13mm 15mm;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.18);
  font-family: 'Times New Roman', Times, serif;
  font-size: 11.5pt;
  line-height: 1.32;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.als-doc-header-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 2.5px solid #0f172a;
  padding-bottom: 8px;
  margin-bottom: 10px;
}

.als-logo-box {
  display: flex;
  align-items: center;
  gap: 10px;
}

.als-logo-badge {
  width: 44px;
  height: 44px;
  border-radius: 6px;
  background: #1e3a8a;
  color: #ffffff;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.04em;
}

.als-logo-box strong {
  display: block;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 900;
  color: #0f172a;
}

.als-logo-box small {
  display: block;
  font-family: var(--sans);
  font-size: 9.5px;
  font-weight: 700;
  color: #475569;
}

.als-order-meta-box {
  text-align: right;
  font-family: var(--sans);
  font-size: 10.5px;
  line-height: 1.4;
}

.als-section-caption {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: #f1f5f9;
  border: 1px solid #0f172a;
  border-bottom: none;
  padding: 4px 8px;
  margin-top: 10px;
}

.als-doc-grid-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10.5pt;
}

.als-doc-grid-table th,
.als-doc-grid-table td {
  border: 1px solid #0f172a;
  padding: 4px 6px;
  vertical-align: top;
  text-align: left;
}

.als-doc-grid-table thead th {
  background: #f8fafc;
  font-family: var(--sans);
  font-size: 9.5px;
  font-weight: 800;
  text-align: center;
  vertical-align: middle;
}

.als-manifest-table th,
.als-manifest-table td {
  padding: 2.5px 5px;
  font-size: 9.5pt;
}

.als-signatures-block {
  margin-top: auto;
  padding-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 10.5pt;
}

.als-sig-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.als-sig-line {
  font-weight: 700;
}

.sampling-table th {
  white-space: nowrap;
  font-size: 11.5px;
}
.sampling-table td {
  vertical-align: middle;
  padding: 6px 7px;
}
.sampling-num-cell {
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 700;
  color: #64748b;
  text-align: center;
}
.sampling-id-input {
  font-family: var(--mono);
  font-weight: 700;
}
.sampling-depth-input {
  font-family: var(--mono);
  text-align: right;
}
.sampling-len-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.sampling-pct-chip {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  color: #475569;
}
.sampling-select {
  height: 32px;
  font-size: 12px;
  padding: 0 8px;
}
.sampling-select.is-qaqc-select {
  font-weight: 700;
  border-color: #3b82f6;
  background-color: #eff6ff;
  color: #1e40af;
}
.sampling-ref-input {
  font-family: var(--mono);
  font-size: 11px !important;
  height: 26px !important;
  background: #ffffff !important;
}
.sampling-weight-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
}
.sampling-weight-input {
  font-family: var(--mono);
  font-weight: 700;
  text-align: right;
}
.sampling-unit {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
}
.sampling-rock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 700;
  color: #0f172a;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  padding: 3px 7px;
  max-width: 215px;
}
.sampling-rock-badge span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sampling-row.is-qaqc-row {
  background: #f8fafc;
}
.sampling-row.is-qaqc-row.qaqc-crm { background: #f0f7ff; }
.sampling-row.is-qaqc-row.qaqc-blk { background: #f8fafc; }
.sampling-row.is-qaqc-row.qaqc-fdup { background: #fffbeb; }
.sampling-row.is-qaqc-row.qaqc-cdup { background: #f5f3ff; }
.sampling-row.is-qaqc-row.qaqc-pdup { background: #fdf2f8; }

/* Небольшое боковое окно «По каким породам идет опробование» */
.sampling-rocks-side-card {
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 13px;
  position: sticky;
  top: 12px;
}
.sampling-rocks-side-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.sampling-rocks-side-head h4 {
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
}
.sampling-rocks-side-hint {
  margin: 0 0 10px;
  font-size: 11.5px;
  color: #475569;
  line-height: 1.38;
}
.sampling-rocks-side-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 68vh;
  overflow-y: auto;
  padding-right: 2px;
}
.sampling-rock-win-item {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sampling-rock-win-item.is-sampled {
  border-color: #0f766e;
  background: #f0fdfa;
}
.sampling-rock-win-item.is-unsampled {
  opacity: 0.85;
}
.sampling-rock-win-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.sampling-rock-win-id {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sampling-rock-win-id strong {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sampling-rock-win-id small {
  display: block;
  font-family: var(--mono);
  font-size: 10.5px;
  color: #475569;
}
.sampling-rock-win-bars {
  height: 5px;
  background: #ccfbf1;
  border-radius: 99px;
  overflow: hidden;
}
.sampling-rock-bar-fill {
  height: 100%;
  background: #0f766e;
  border-radius: 99px;
}
.sampling-rock-win-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 4px 8px;
  font-size: 11px;
  color: #334155;
}
.sampling-rock-win-unsampled-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 11px;
  color: #64748b;
}

/* ============================================================================
 * RBAC, PROJECT-LEVEL ACCESS CONTROL, USERS (PENDING / ACTIVE / BLOCKED) & AUDIT LOG
 * ============================================================================ */
#rbacHeaderMount {
  display: flex;
  align-items: center;
}
.rbac-topbar-widget {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 3px 6px;
}
.rbac-user-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: none;
  background: transparent;
  padding: 2px 6px;
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
  transition: background 0.14s ease;
}
.rbac-user-trigger:hover {
  background: #e2e8f0;
}
.rbac-status-dot {
  width: 9px;
  height: 9px;
  border-radius: 99px;
  flex-shrink: 0;
}
.rbac-status-dot.is-active {
  background: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}
.rbac-status-dot.is-pending {
  background: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.22);
}
.rbac-status-dot.is-blocked {
  background: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.22);
}
.rbac-trigger-info {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.rbac-trigger-info strong {
  font-size: 11.5px;
  font-weight: 800;
  color: #0f172a;
}
.rbac-trigger-info small {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 700;
  color: #0f766e;
}
.rbac-quick-user-select {
  height: 28px;
  max-width: 215px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #ffffff;
  font-size: 11.5px;
  font-weight: 700;
  color: #1e293b;
  padding: 0 6px;
  cursor: pointer;
}
.rbac-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.rbac-role-admin {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fcd34d;
}
.rbac-role-geologist {
  background: #ccfbf1;
  color: #115e59;
  border: 1px solid #5eead4;
}
.rbac-role-viewer {
  background: #e0f2fe;
  color: #075985;
  border: 1px solid #7dd3fc;
}
.rbac-status-active {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}
.rbac-status-pending {
  background: #fef9c3;
  color: #854d0e;
  border: 1px solid #fde047;
}
.rbac-status-blocked {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}
.rbac-readonly-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #eff6ff;
  border: 1.5px solid #93c5fd;
  color: #1e3a8a;
  padding: 10px 14px;
  border-radius: 10px;
  margin-bottom: 14px;
  font-size: 12.5px;
}
.rbac-session-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 14px;
}
.rbac-session-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.rbac-avatar {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #0f766e;
  color: #ffffff;
  font-size: 18px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rbac-session-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.rbac-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 12px;
  margin-bottom: 16px;
}
.rbac-subnav-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.14s ease;
}
.rbac-subnav-btn:hover {
  border-color: #0f766e;
  color: #0f172a;
}
.rbac-subnav-btn.active {
  background: #0f766e;
  border-color: #0f766e;
  color: #ffffff;
}
.rbac-count-pill {
  background: rgba(15, 23, 42, 0.12);
  padding: 2px 7px;
  border-radius: 99px;
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 800;
}
.rbac-subnav-btn.active .rbac-count-pill {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
}
.rbac-count-pill.amber {
  background: #fef08a;
  color: #854d0e;
}
.rbac-count-pill.green {
  background: #bbf7d0;
  color: #166534;
}
.rbac-overview-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  align-items: start;
}
@media (max-width: 1100px) {
  .rbac-overview-grid {
    grid-template-columns: 1fr;
  }
}
.rbac-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 16px;
}
.rbac-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}
.rbac-card-head h3 {
  margin: 4px 0 0;
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
}
.rbac-card-sub {
  margin: 0 0 12px;
  font-size: 12.5px;
  color: #475569;
}
.rbac-user-switch-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rbac-user-switch-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}
.rbac-user-switch-row.is-active-row {
  border-color: #0f766e;
  background: #f0fdfa;
}
.rbac-user-switch-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rbac-user-switch-meta strong {
  font-size: 13px;
  color: #0f172a;
}
.rbac-user-switch-meta small {
  font-size: 11.5px;
  color: #475569;
}
.rbac-user-switch-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.rbac-rules-summary-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 720px) {
  .rbac-rules-summary-list {
    grid-template-columns: 1fr;
  }
}
.rbac-rule-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px 12px;
}
.rbac-rule-box strong {
  display: block;
  font-size: 12.5px;
  color: #0f172a;
  margin-bottom: 4px;
}
.rbac-rule-box p {
  margin: 0;
  font-size: 11.5px;
  color: #475569;
  line-height: 1.4;
}
.rbac-mini-audit-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.rbac-mini-audit-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  padding: 8px 10px;
  font-size: 12px;
}
.rbac-mini-audit-top {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.rbac-audit-date {
  font-family: var(--mono);
  font-size: 11px;
  color: #64748b;
}
.rbac-audit-diff {
  margin-top: 3px;
  font-size: 11px;
  color: #334155;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  padding: 3px 7px;
}
.rbac-scenario-results {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e2e8f0;
}
.rbac-scenario-results h4 {
  margin: 0 0 10px;
  font-size: 13.5px;
  font-weight: 800;
  color: #0f766e;
}
.rbac-scenario-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media (max-width: 760px) {
  .rbac-scenario-grid {
    grid-template-columns: 1fr;
  }
}
.rbac-scenario-item {
  border-radius: 8px;
  padding: 9px 11px;
  border: 1px solid #86efac;
  background: #f0fdf4;
}
.rbac-scenario-item.is-fail {
  border-color: #fca5a5;
  background: #fef2f2;
}
.rbac-scenario-head {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 3px;
  font-size: 12px;
}
.rbac-scenario-check {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 800;
  background: #166534;
  color: #ffffff;
  padding: 2px 6px;
  border-radius: 4px;
}
.rbac-scenario-item p {
  margin: 0;
  font-size: 11.5px;
  color: #334155;
}
.rbac-reg-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 760px) {
  .rbac-reg-mode-tabs {
    grid-template-columns: 1fr;
  }
}
.rbac-mode-tab {
  text-align: left;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rbac-mode-tab.active {
  border-color: #0f766e;
  background: #f0fdfa;
}
.rbac-mode-tab strong {
  font-size: 13px;
  color: #0f172a;
}
.rbac-mode-tab small {
  font-size: 11.5px;
  color: #475569;
}
.rbac-proj-checks-wrap,
.rbac-inline-proj-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}
.rbac-proj-check,
.rbac-proj-check-mini {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  font-size: 12px;
  cursor: pointer;
}
.rbac-proj-check.is-checked,
.rbac-proj-check-mini.is-checked {
  border-color: #0f766e;
  background: #ccfbf1;
  font-weight: 700;
}
.rbac-projects-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 14px;
}
.rbac-project-access-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 14px;
  background: #ffffff;
}
.rbac-project-access-card.is-accessible {
  border-color: #5eead4;
  background: #f0fdfa;
}
.rbac-project-access-card.is-restricted {
  border-color: #fde047;
  background: #fefce8;
}
.rbac-project-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.rbac-project-card-top h4 {
  margin: 4px 0 2px;
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
}
.rbac-project-members-box {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.rbac-member-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
}
.rbac-gate-card {
  padding: 32px 24px;
  border: 2px solid #f59e0b;
  background: #fffbeb;
}
.rbac-gate-card.is-blocked-gate {
  border-color: #ef4444;
  background: #fef2f2;
}
.rbac-gate-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.rbac-gate-icon {
  font-size: 44px;
  margin-bottom: 10px;
}
.rbac-gate-badges {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 12px;
}
.rbac-gate-desc {
  font-size: 14px;
  color: #334155;
  line-height: 1.55;
  margin-bottom: 20px;
}
.rbac-gate-box {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 16px;
  text-align: left;
}
.rbac-gate-box h4 {
  margin: 0 0 12px;
  font-size: 13.5px;
  color: #0f172a;
}
.rbac-gate-user-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rbac-switch-user-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  cursor: pointer;
  text-align: left;
}
.rbac-switch-user-btn:hover {
  border-color: #0f766e;
  background: #f0fdfa;
}
.rbac-switch-user-btn.is-current {
  border-color: #f59e0b;
  background: #fef9c3;
}
.rbac-switch-user-btn strong {
  display: block;
  font-size: 13px;
  color: #0f172a;
}
.rbac-switch-user-btn small {
  font-size: 11.5px;
  color: #475569;
}

/* ============================================================================
   PROJECT FOLDERS EXPLORER & PRODUCTION UI REFINEMENTS (v2.6)
   ============================================================================ */

/* Prevent topbar text crowding and overlapping on all screen sizes */
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 12px;
  min-height: 54px;
  padding: 8px 16px;
}

.breadcrumbs {
  min-width: 0;
  flex: 0 1 auto;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hole-manager {
  flex: 0 1 auto;
  min-width: 0;
  gap: 6px;
}

.hole-manager select {
  max-width: 220px;
  text-overflow: ellipsis;
}

.rbac-topbar-widget {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  max-width: 100%;
}

.rbac-user-trigger {
  max-width: 190px;
  overflow: hidden;
}

.rbac-user-trigger.rbac-user-static {
  cursor: default;
}

.rbac-trigger-info {
  min-width: 0;
  overflow: hidden;
}

.rbac-trigger-info strong,
.rbac-trigger-info small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rbac-quick-user-select {
  max-width: 175px;
  text-overflow: ellipsis;
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* Folders Explorer Header Bar */
.folders-explorer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 16px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #f8fafc 0%, #f0fdfa 100%);
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  margin-bottom: 16px;
}

.folders-explorer-info {
  min-width: 220px;
  flex: 1 1 320px;
}

.folders-explorer-sub {
  margin: 4px 0 0;
  font-size: 12.5px;
  color: #475569;
  line-height: 1.4;
}

/* Visual Project Folders Grid (NO DROPDOWNS) */
.project-folders-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(245px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.project-folder-card {
  position: relative;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  user-select: none;
  transition: transform 0.16s ease, filter 0.16s ease;
}

.project-folder-card:hover {
  transform: translateY(-2px);
}

.project-folder-tab {
  width: 96px;
  height: 12px;
  background: #cbd5e1;
  border: 1px solid #94a3b8;
  border-bottom: none;
  border-radius: 8px 10px 0 0;
  margin-left: 12px;
  transition: background 0.16s ease, border-color 0.16s ease;
}

.project-folder-card.is-open .project-folder-tab {
  background: #0f766e;
  border-color: #0f766e;
}

.project-folder-body {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1.5px solid #cbd5e1;
  border-radius: 10px 12px 12px 12px;
  padding: 14px 16px;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.project-folder-card:hover .project-folder-body {
  border-color: #0d9488;
  box-shadow: 0 6px 16px rgba(13, 148, 136, 0.1);
}

.project-folder-card.is-open .project-folder-body {
  background: linear-gradient(180deg, #f0fdfa 0%, #ffffff 100%);
  border-color: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.14);
}

.project-folder-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.project-folder-icon {
  font-size: 26px;
  line-height: 1;
}

.project-folder-status {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
}

.project-folder-status.active {
  background: #0f766e;
  color: #ffffff;
}

.project-folder-title {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.project-folder-stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding-top: 8px;
  border-top: 1px dashed #cbd5e1;
  font-size: 11.5px;
  color: #475569;
}

.project-folder-stats b {
  color: #0f172a;
  font-family: "JetBrains Mono", monospace;
}

/* Opened Folder Workspace Container */
.project-folder-workspace {
  background: #ffffff;
  border: 2px solid #0f766e;
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.project-folder-workspace-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 16px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid #e2e8f0;
}

.project-folder-workspace-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 200px;
}

.project-folder-open-icon {
  font-size: 32px;
  line-height: 1;
}

.project-folder-crumb {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #0f766e;
  text-transform: uppercase;
}

.project-folder-workspace-title h2 {
  margin: 2px 0 0;
  font-size: 19px;
  font-weight: 800;
  color: #0f172a;
}

.project-folder-workspace-kpis {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.folder-kpi-pill {
  display: flex;
  flex-direction: column;
  padding: 5px 11px;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  min-width: 82px;
}

.folder-kpi-pill span {
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
}

.folder-kpi-pill strong {
  font-size: 13.5px;
  font-weight: 800;
  color: #0f172a;
  font-family: "JetBrains Mono", monospace;
}

.project-folder-workspace-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.project-folder-workspace-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ============================================================================
   WELCOME PORTAL & EMPLOYEE SIGN-IN GATE (ПРИВЕТСТВЕННОЕ ОКНО СОТРУДНИКА)
   ============================================================================ */
body.welcome-gate-open {
  overflow: hidden !important;
}

.welcome-portal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: radial-gradient(circle at 18% 20%, rgba(15, 118, 110, 0.22), rgba(15, 23, 42, 0.88) 72%);
  backdrop-filter: blur(8px);
  overflow-y: auto;
}

.welcome-portal-shell {
  width: 100%;
  max-width: 1120px;
  min-height: 610px;
  max-height: calc(100vh - 40px);
  display: grid;
  grid-template-columns: 430px 1fr;
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid #cbd5e1;
  box-shadow: 0 28px 68px rgba(15, 23, 42, 0.42);
  overflow: hidden;
}

.welcome-portal-aside {
  background: linear-gradient(165deg, #0b3b34 0%, #0f172a 100%);
  color: #f8fafc;
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow-y: auto;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.welcome-brand-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.welcome-brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #14b8a6;
  color: #042f2e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.welcome-brand-mark svg {
  width: 24px;
  height: 24px;
}

.welcome-brand-row strong {
  display: block;
  font-size: 16px;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.01em;
}

.welcome-brand-row small {
  display: block;
  font-size: 11.5px;
  color: #99f6e4;
}

.welcome-aside-hero {
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.welcome-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5eead4;
  margin-bottom: 6px;
}

.welcome-aside-hero h1 {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.22;
  color: #ffffff;
}

.welcome-aside-hero p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: #cbd5e1;
}

.welcome-quick-profiles {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.welcome-quick-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.welcome-quick-head strong {
  font-size: 12px;
  font-weight: 700;
  color: #f1f5f9;
}

.welcome-quick-head span {
  font-size: 11px;
  color: #94a3b8;
}

.welcome-profile-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.welcome-profile-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.welcome-profile-card:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(94, 234, 212, 0.45);
}

.welcome-profile-card.is-selected {
  background: rgba(20, 184, 166, 0.18);
  border-color: #2dd4bf;
  box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.35);
}

.welcome-profile-info {
  min-width: 0;
  flex: 1;
}

.welcome-profile-title-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.welcome-profile-title-row strong {
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
}

.welcome-profile-info small {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  color: #cbd5e1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.welcome-status-tag {
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}

.welcome-status-tag.is-active {
  background: rgba(16, 185, 129, 0.22);
  color: #6ee7b7;
}

.welcome-status-tag.is-pending {
  background: rgba(245, 158, 11, 0.25);
  color: #fcd34d;
}

.welcome-status-tag.is-blocked {
  background: rgba(239, 68, 68, 0.25);
  color: #fca5a5;
}

.welcome-quick-enter-btn {
  flex-shrink: 0;
  min-height: 32px;
  padding: 5px 11px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.welcome-portal-main {
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
  background: #ffffff;
}

.welcome-form-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.welcome-form-header h2 {
  margin: 4px 0 4px;
  font-size: 21px;
  font-weight: 800;
  color: #0f172a;
}

.welcome-form-header p {
  margin: 0;
  font-size: 13px;
  color: #475569;
}

.welcome-mode-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.welcome-mode-btn {
  text-align: left;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  cursor: pointer;
  transition: all 0.15s ease;
}

.welcome-mode-btn strong {
  display: block;
  font-size: 13px;
  font-weight: 800;
  color: #0f172a;
}

.welcome-mode-btn small {
  display: block;
  margin-top: 2px;
  font-size: 11.5px;
  color: #64748b;
}

.welcome-mode-btn.active {
  background: #f0fdfa;
  border-color: #0f766e;
  box-shadow: 0 2px 8px rgba(15, 118, 110, 0.1);
}

.welcome-mode-btn.active strong {
  color: #0f766e;
}

.welcome-alert {
  padding: 10px 14px;
  border-radius: 9px;
  font-size: 12.5px;
  line-height: 1.4;
}

.welcome-alert.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.welcome-alert.is-info {
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  color: #0f766e;
}

.welcome-form-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.welcome-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.welcome-input {
  height: 42px !important;
  font-size: 13.5px !important;
}

.welcome-projects-box {
  padding: 12px 14px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.welcome-admin-hint {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  font-size: 12.5px;
  color: #115e59;
}

.welcome-submit-row {
  margin-top: 4px;
}

.welcome-submit-btn {
  width: 100%;
  min-height: 46px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  justify-content: center;
  border-radius: 10px !important;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.24);
}

.welcome-alt-auth-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px dashed #cbd5e1;
  font-size: 12px;
  color: #64748b;
}

@media (max-width: 960px) {
  .welcome-portal-backdrop {
    padding: 10px;
    align-items: flex-start;
  }
  .welcome-portal-shell {
    grid-template-columns: 1fr;
    max-height: none;
  }
  .welcome-portal-main {
    order: -1;
    padding: 20px 18px;
  }
  .welcome-portal-aside {
    padding: 20px 18px;
  }
  .welcome-field-grid,
  .welcome-mode-switch {
    grid-template-columns: 1fr;
  }
}











/* Cloud files archive */
.cloud-files-panel{margin-top:18px;border:1px solid #d7e4df;border-radius:16px;background:linear-gradient(135deg,#f8fcfb,#fff);box-shadow:0 8px 24px rgba(20,88,76,.06);overflow:hidden}
.cloud-files-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #e1ece8}
.cloud-files-kicker{font:700 10px/1.2 'JetBrains Mono',monospace;letter-spacing:.11em;color:#16725f}
.cloud-files-head h3{margin:5px 0 2px;color:#173c35;font-size:18px}
.cloud-files-head p{margin:0;color:#69817b;font-size:12px}
.cloud-files-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.cloud-files-list{padding:4px 12px}
.cloud-file-row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid #edf3f1}
.cloud-file-row:last-child{border-bottom:0}
.cloud-file-icon{font-size:21px;width:28px;text-align:center}
.cloud-file-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.cloud-file-name{color:#155d50;font-weight:700;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cloud-file-name:hover{text-decoration:underline}
.cloud-file-meta{font-size:11px;color:#7a8f89}
.cloud-file-actions{display:flex;gap:5px;flex-wrap:wrap}
.cloud-files-empty{padding:22px 12px;color:#82938f;text-align:center;font-size:13px}
.cloud-files-foot{padding:10px 20px;background:#f2f8f6;color:#78918a;font-size:11px}
@media(max-width:700px){.cloud-files-head{flex-direction:column}.cloud-files-actions{justify-content:flex-start}.cloud-file-row{align-items:flex-start}.cloud-file-actions{margin-left:auto}.cloud-file-actions .button{font-size:11px;padding:6px 8px}}

/* ============================================================================
 * ПРОВОДНИК ФАЙЛОВ СКВАЖИН (ВКЛАДКА «ФАЙЛЫ»)
 * ============================================================================ */
.explorer-workspace-card {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.explorer-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}
.explorer-header h2 {
  margin: 4px 0 4px;
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  display: flex;
  align-items: center;
  gap: 8px;
}
.explorer-header p {
  margin: 0;
  font-size: 13px;
  color: #475569;
}
.explorer-stat-badges {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.explorer-breadcrumbs-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 12px;
}
.explorer-crumb {
  border: none;
  background: transparent;
  font-size: 12.5px;
  font-weight: 700;
  color: #0f766e;
  padding: 4px 8px;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.14s ease;
}
.explorer-crumb:hover {
  background: #e2e8f0;
}
.explorer-crumb.is-current {
  background: #0f766e;
  color: #ffffff;
  cursor: default;
}
.explorer-crumb-sep {
  color: #94a3b8;
  font-weight: 700;
  font-size: 14px;
}
.explorer-folders-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
}
.explorer-folder-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border-radius: 12px;
  border: 1.5px solid #cbd5e1;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.15s ease;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
}
.explorer-folder-card:hover {
  border-color: #0f766e;
  background: #f0fdfa;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 118, 110, 0.1);
}
.explorer-folder-icon {
  font-size: 36px;
  line-height: 1;
  flex-shrink: 0;
}
.explorer-folder-body {
  flex: 1;
  min-width: 0;
}
.explorer-folder-kicker {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #0f766e;
  text-transform: uppercase;
}
.explorer-folder-title {
  margin: 3px 0 5px;
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.explorer-folder-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: #475569;
}
.explorer-subfolders-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.explorer-subfolder-box {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px;
  border-radius: 12px;
  border: 1.5px solid #cbd5e1;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  cursor: pointer;
  transition: all 0.16s ease;
}
.explorer-subfolder-box:hover {
  border-color: #0f766e;
  background: #f0fdfa;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.12);
}
.explorer-subfolder-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.explorer-subfolder-icon {
  font-size: 34px;
  line-height: 1;
}
.explorer-subfolder-box h3 {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
}
.explorer-subfolder-box p {
  margin: 0 0 14px;
  font-size: 12.5px;
  line-height: 1.45;
  color: #475569;
  flex: 1;
}
.explorer-subfolder-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.explorer-files-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.explorer-file-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  flex-wrap: wrap;
}
.explorer-file-row.is-highlighted {
  border: 1.5px solid #0f766e;
  background: #f0fdfa;
}
.explorer-file-icon {
  font-size: 28px;
  flex-shrink: 0;
}
.explorer-file-info {
  flex: 1;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.explorer-file-info strong {
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
}
.explorer-file-info small {
  font-size: 12px;
  color: #475569;
}
.explorer-file-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* ============================================================================
 * ВКЛАДКА DRILLING PARAMETERS (РЕЙСЫ БУРЕНИЯ · TCR · SCR · RQD · ISRM · RMR89)
 * ============================================================================ */
.drilling-project-hole-bar {
  background: linear-gradient(180deg, #f0fdfa 0%, #f8fafc 100%);
  border: 1.5px solid #99f6e4;
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.drilling-picker-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.drilling-picker-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.drilling-picker-label {
  font-size: 12.5px;
  font-weight: 800;
  color: #0f766e;
  white-space: nowrap;
}
.drilling-excel-io-btns {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.drilling-hole-pills-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 8px;
  border-top: 1px dashed #cbd5e1;
}
.drilling-pills-caption {
  font-size: 11.5px;
  font-weight: 700;
  color: #475569;
}
.drilling-hole-pills-list {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.drilling-hole-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  font-size: 12px;
  color: #0f172a;
  cursor: pointer;
  transition: all 0.14s ease;
}
.drilling-hole-pill:hover {
  border-color: #0f766e;
  background: #f0fdfa;
}
.drilling-hole-pill.is-active {
  background: #0f766e;
  border-color: #0f766e;
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(15, 118, 110, 0.25);
}
.drilling-hole-pill small {
  font-size: 11px;
  opacity: 0.82;
}
.drilling-geotech-strip-card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.drilling-geotech-strip-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.drilling-geotech-strip-head strong {
  display: block;
  font-size: 14px;
  color: #0f172a;
  margin-top: 2px;
}
.drilling-strip-legend {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 11.5px;
  font-weight: 700;
  color: #475569;
}
.drilling-strip-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.drilling-strip-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
}
.drilling-geotech-strip-canvas {
  position: relative;
  height: 58px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  overflow: hidden;
}
.geotech-strip-col {
  position: absolute;
  top: 0;
  bottom: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.45);
}
.geotech-bar-tcr {
  position: absolute;
  bottom: 8px;
  left: 0;
  right: 0;
  background: rgba(14, 116, 144, 0.18);
}
.geotech-bar-rqd {
  position: absolute;
  bottom: 8px;
  left: 1px;
  right: 1px;
  border-radius: 2px 2px 0 0;
}
.geotech-bar-str {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 7px;
}
.drilling-geotech-strip-axis {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 11px;
  color: #64748b;
  margin-top: 5px;
}
.drilling-std-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.drilling-std-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
}
.drilling-std-card.is-populated {
  background: #ffffff;
  border-color: #cbd5e1;
}
.drilling-std-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.drilling-str-pill {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 6px;
  color: #ffffff;
  background: #334155;
}
.drilling-str-pill.str-r1, .drilling-str-pill.str-r2 { background: #d97706; }
.drilling-str-pill.str-r3 { background: #0284c7; }
.drilling-str-pill.str-r4 { background: #1d4ed8; }
.drilling-str-pill.str-r5 { background: #312e81; }
.drilling-str-pill.str-r6 { background: #0f172a; }
.drilling-std-title {
  font-size: 12px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 3px;
}
.drilling-std-desc {
  font-size: 11px;
  color: #64748b;
  line-height: 1.35;
}
.drilling-filter-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 0;
}
.drilling-filter-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.drilling-metric-pair {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
}
.drilling-inline-cell {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  white-space: nowrap;
}
.drilling-len-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  min-width: 54px;
  padding: 0 7px;
  border-radius: 6px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 700;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.drilling-lith-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  padding: 0 6px;
  border-radius: 6px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: #475569;
}
.drilling-pct-badge, .drilling-rqd-badge, .drilling-rmr-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  min-width: 48px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  padding: 0 7px;
  border-radius: 6px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  border: 1px solid transparent;
}
.drilling-rqd-badge {
  min-width: 68px;
}
.drilling-pct-badge.is-good, .drilling-rqd-badge.rqd-exc, .drilling-rqd-badge.rqd-good {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}
.drilling-pct-badge.is-mid, .drilling-rqd-badge.rqd-fair {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}
.drilling-pct-badge.is-low, .drilling-rqd-badge.rqd-poor, .drilling-rqd-badge.rqd-vpoor {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}
.drilling-rmr-badge {
  display: inline-flex;
  background: #f0f9ff;
  color: #075985;
}
.drilling-row-odd td {
  background: #ffffff !important;
}
.drilling-row-even td {
  background: #f8fafc !important;
}
.drilling-runs-table tbody tr:hover td {
  background: #f1f5f9 !important;
}
.drilling-table-wrap {
  overflow-x: visible !important;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
}
.drilling-runs-table {
  width: 100% !important;
  min-width: 0 !important;
  border-collapse: collapse;
}
.drilling-runs-table thead th {
  background: #f1f5f9 !important;
  color: #334155;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  padding: 8px 6px !important;
  border-bottom: 1.5px solid #cbd5e1;
  vertical-align: middle;
  white-space: normal;
}
.drilling-runs-table tbody td {
  padding: 5px 6px !important;
  font-size: 12px;
  vertical-align: middle !important;
  border-bottom: 1px solid #e2e8f0;
  height: 40px;
}
.drilling-num-cell {
  width: 38px;
  text-align: center;
}
.drilling-runno-input {
  width: 32px !important;
  height: 28px !important;
  padding: 0 2px !important;
  text-align: center !important;
  font-family: var(--mono);
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #334155 !important;
  background: #f8fafc !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 6px !important;
  font-variant-numeric: tabular-nums;
}
.drilling-num-input {
  width: 60px !important;
  height: 28px !important;
  padding: 0 6px !important;
  text-align: right !important;
  font-family: var(--mono);
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 6px !important;
  font-variant-numeric: tabular-nums;
}
.drilling-size-select {
  width: 84px !important;
}
.drilling-str-select {
  width: 100% !important;
}
.drilling-inline-selects {
  display: flex;
  align-items: center;
  gap: 5px;
  height: 30px;
}
.drilling-inline-selects .sampling-select {
  flex: 1;
  min-width: 0;
}
.drilling-runs-table .sampling-select {
  height: 28px !important;
  line-height: 26px !important;
  font-size: 11.5px !important;
  padding: 0 6px !important;
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 6px !important;
  color: #0f172a !important;
}

/* Unified restrained technical SVG icons for sidebar & bottom tabs */
.nav-icon svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}
.sidebar .nav-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid rgba(148, 163, 184, 0.25);
  background: rgba(15, 23, 42, 0.28);
  color: #94a3b8;
  display: inline-grid;
  place-items: center;
}
.sidebar .nav-item:hover .nav-icon {
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.45);
}
.sidebar .nav-item.active .nav-icon {
  color: #99f6e4;
  border-color: #2dd4bf;
  background: rgba(20, 184, 166, 0.16);
}
.bottom-tab .nav-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #475569;
  display: inline-grid;
  place-items: center;
}
.bottom-tab:hover .nav-icon {
  color: #0f172a;
  border-color: #94a3b8;
}
.bottom-tab.active .nav-icon {
  color: #0f766e;
  border-color: #5eead4;
  background: #f0fdfa;
}
.project-switch small:empty {
  display: none;
}

/* Clean, centered collapsed sidebar without overlapping numbers or shifted icons */
.app-shell.sidebar-collapsed {
  grid-template-columns: 64px minmax(0, 1fr) !important;
}
.sidebar-collapsed .sidebar {
  padding: 18px 8px 14px !important;
  align-items: center !important;
  overflow-x: hidden !important;
}
.sidebar-collapsed .brand {
  padding: 0 !important;
  margin: 0 0 18px !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.sidebar-collapsed .sidebar-toggle {
  top: 10px !important;
  right: 6px !important;
  margin-right: 0 !important;
  width: 20px !important;
  height: 20px !important;
  font-size: 14px !important;
  line-height: 16px !important;
}
.sidebar-collapsed .main-nav {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
}
.sidebar-collapsed .nav-item {
  width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 10px !important;
  position: relative !important;
}
.sidebar-collapsed .nav-item .row-count,
.sidebar-collapsed .nav-item .nav-check {
  display: none !important;
}
.sidebar-collapsed .nav-item .nav-icon {
  margin: 0 !important;
  width: 28px !important;
  height: 28px !important;
  border-color: transparent !important;
  background: transparent !important;
}
.sidebar-collapsed .nav-item.active {
  background: rgba(20, 184, 166, 0.16) !important;
  box-shadow: inset 3px 0 0 #2dd4bf !important;
}
.sidebar-collapsed .nav-item.active .nav-icon {
  border-color: transparent !important;
  background: transparent !important;
  color: #5eead4 !important;
}
.brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #181b1e;
  border: 1px solid rgba(119, 181, 179, 0.32);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.38);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  padding: 0;
  overflow: hidden;
}
.brand-mark svg {
  width: 38px;
  height: 38px;
  display: block;
}
.welcome-brand-mark {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #181b1e;
  border: 1px solid rgba(119, 181, 179, 0.4);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.45);
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
}
.welcome-brand-mark svg {
  width: 46px;
  height: 46px;
  display: block;
}
.brand strong,
.welcome-brand-row strong {
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #ffffff;
}
.brand-domain {
  color: #b4b9bc;
  font-weight: 400;
  letter-spacing: -0.01em;
}
@media (max-width: 900px) {
  .sidebar .nav-item {
    width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .sidebar .nav-item .row-count,
  .sidebar .nav-item .nav-check {
    display: none !important;
  }
  .sidebar .nav-item .nav-icon {
    margin: 0 !important;
    border-color: transparent !important;
    background: transparent !important;
  }
}

.project-map-controls.section-controls-bottom {
  border-top: 1px solid #cbd5e1;
  border-bottom: none;
  background: #f8fafc;
}



