/* BIMUz CDE v3.0 — Field / Snags */
.f30-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:12px;align-items:start}
.f30-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.f30-toolbar select,.f30-toolbar input{max-width:100%}
.f30-toolbar #f30DrawingSelect{min-width:220px;flex:1}
.f30-toolbar #f30Search{flex:1;min-width:140px}
.f30-check{display:inline-flex;gap:4px;align-items:center;font-size:13px;white-space:nowrap}
.f30-drawing{position:relative;height:min(68vh,760px);overflow:hidden;border:1px solid rgba(127,140,160,.35);border-radius:10px;background:#eef2f6;touch-action:none;cursor:grab;user-select:none}
.f30-drawing:active{cursor:grabbing}
.f30-drawing.f30-adding{cursor:crosshair;outline:2px dashed #d64545;outline-offset:-3px}
.f30-drawing>p{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:20px;text-align:center}
.f30-stage{position:absolute;left:0;top:0;transform-origin:0 0;--z:1}
.f30-stage canvas{display:block;width:100%;height:100%;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.18)}
.f30-pins{position:absolute;inset:0}
.f30-pin,.f30-pano{position:absolute;transform:translate(-50%,calc(-100% - 8px)) scale(calc(1 / var(--z)));transform-origin:50% 100%;border:0;padding:0;background:none;cursor:pointer}
.f30-pin span{position:relative;display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:15px;background:var(--c);color:#fff;font:700 12px/1 system-ui,sans-serif;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.f30-pin span::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:var(--c)}
.f30-pin-sel span{outline:3px solid #ffd400;outline-offset:1px}
.f30-pin-old span{opacity:.75;border-style:dashed}
.f30-pano{transform:translate(-50%,-50%) scale(calc(1 / var(--z)));width:26px;height:26px;border-radius:50%;background:#0b5c9e;color:#fff;font-size:16px;line-height:26px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.f30-task-list{max-height:calc(68vh + 40px);overflow:auto}
.f30-task{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;cursor:pointer}
.f30-task small{display:block}
.f30-dot{width:12px;height:12px;border-radius:50%}
.f30-selected{outline:2px solid #ffd400;outline-offset:-2px}
.f30-overdue b::after{content:" ⏰";color:#d64545}
.f30-dialog{width:min(760px,96vw);max-height:92vh;overflow:auto;border:0;border-radius:14px;padding:18px}
.f30-dialog::backdrop{background:rgba(10,20,30,.45)}
.f30-form{display:flex;flex-direction:column;gap:8px}
.f30-form label{display:flex;flex-direction:column;gap:3px;font-size:13px}
.f30-form label.f30-check{flex-direction:row}
.f30-form textarea,.f30-form input,.f30-form select{width:100%;box-sizing:border-box}
.f30-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.f30-photos{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.f30-photos img{width:110px;height:110px;object-fit:cover;border-radius:8px;border:1px solid rgba(127,140,160,.4)}
.f30-events{display:flex;flex-direction:column;gap:6px;margin:6px 0;max-height:260px;overflow:auto}
.f30-event{border-left:3px solid #9fb3c8;padding:2px 8px}
.f30-ev-Status{border-left-color:#2f6fd6}.f30-ev-Comment{border-left-color:#2e9e5b}.f30-ev-Photo{border-left-color:#e08a00}
.f30-comment{display:flex;gap:6px}.f30-comment textarea{flex:1}
button.danger{color:#d64545;border-color:#d64545}
.pill.f30-on{border-color:#2e9e5b;color:#2e9e5b}.pill.f30-off{border-color:#d64545;color:#d64545}
.f30-run{cursor:pointer}
.f30-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:6px;background:rgba(127,140,160,.2);min-width:160px}
.f30-bar i.ok{background:#2e9e5b}.f30-bar i.fail{background:#d64545}.f30-bar i.na{background:#9fb3c8}.f30-bar i.open{background:transparent}
.f30-item{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:8px;border-bottom:1px solid rgba(127,140,160,.25);align-items:center}
.f30-item-ok{background:rgba(46,158,91,.08)}.f30-item-fail{background:rgba(214,69,69,.09)}.f30-item-na{background:rgba(159,179,200,.12)}
.f30-item-btns{display:flex;gap:4px}
.f30-item-btns button.on{background:#13202e;color:#fff}
.f30-item .f30-note{grid-column:1/-1}
.f30-req{color:#d64545}
.f30-ready{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.f30-gauge{--p:0;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;background:conic-gradient(#2e9e5b calc(var(--p)*1%),rgba(127,140,160,.25) 0);position:relative}
.f30-gauge::before{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--panel,#fff)}
.f30-gauge b,.f30-gauge span{position:relative}.f30-gauge b{font-size:30px}.f30-gauge span{font-size:12px;max-width:100px}
.f30-models{display:flex;flex-direction:column;gap:4px;margin:8px 0}
/* 3D: секция қутиси ва clash панели */
.v30-viewer-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.v30-box-sliders{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:4px 10px;font-size:12px}
.v30-box-sliders label{display:flex;gap:4px;align-items:center}
.v30-box-sliders input{flex:1}
.v30-clash{border:1px solid rgba(127,140,160,.35);border-radius:10px;padding:10px;margin-top:8px}
.v30-clash .list{max-height:300px;overflow:auto}
@media (max-width:900px){
  .f30-head .panelhead,.f30-tab .panelhead{flex-wrap:wrap;gap:8px}
  .f30-head .row-actions,.f30-tab .row-actions{flex-wrap:wrap;width:100%}
  #f30ProjectSelect,#f30TemplateSelect,#f30ChecklistTitle{width:100%;max-width:100%}
  .f30-dialog{padding:12px}
  .f30-item{grid-template-columns:1fr}
  .f30-layout{grid-template-columns:1fr}
  .f30-drawing{height:62vh}
  .f30-task-list{max-height:none}
  .v30-box-sliders{grid-template-columns:1fr}
}

/* v3.2 — жадваллар (ҳафталик ҳисобот, 5D) */
.f30-table{width:100%;border-collapse:collapse;font-size:13px}
.f30-table th,.f30-table td{padding:6px 8px;border-bottom:1px solid rgba(127,140,160,.25);text-align:left;vertical-align:top}
.f30-table th{font-weight:600;white-space:nowrap}
.f30-table td.num,.f30-table th.num{text-align:right;white-space:nowrap}
.f30-table tr.f30-bad td{background:rgba(214,69,69,.07)}
@media (max-width:900px){.f30-table{display:block;overflow-x:auto}}

/* v3.2.1 — чап меню гуруҳлари */
.navgroup{margin:2px 0}
.navgroup>summary{list-style:none;cursor:pointer;color:#a9c1d8;font-size:13.5px;font-weight:600;padding:11px 14px;border-radius:7px;display:flex;align-items:center;gap:6px;user-select:none}
.navgroup>summary::-webkit-details-marker{display:none}
.navgroup>summary::before{content:"▸";font-size:11px;transition:transform .15s}
.navgroup[open]>summary::before{transform:rotate(90deg)}
.navgroup>summary:hover{color:#fff}
.navgroup.has-active>summary{color:#fff}
.navgroup:not([open]):has(.nav-badge:not([hidden]))>summary::after{content:"";width:7px;height:7px;border-radius:50%;background:#ef4444;margin-left:auto}
.navgroup-items .nav{padding:9px 14px 9px 26px}
@media(max-width:800px){
  .navgroup{display:flex;align-items:center;margin:0}
  .navgroup>summary{white-space:nowrap;padding:10px 12px;text-transform:none;font-size:13px}
  .navgroup-items{display:flex}
  .navgroup-items .nav{padding:10px 12px}
}
