/* Главгеопроект Бурение — фирменные цвета ГлавГеоПроекта (как в КП, Смете, ИГИ): оранжевый, жёлтый, графит.
   Сначала телефон (крупные кнопки под палец), на широком экране — та же страница по центру. */
:root{--g:#343638;--g2:#4a4d52;--o:#f28a00;--o-dark:#d97900;--o-soft:#fff4e3;--y:#ffca14;--y-soft:#fff8d9;--paper:#f5f3ee;--line:#e2ded6;--muted:#6f7a7e;
  --ok:#2f8a4c;--ok-bg:#eaf6ee;--warn:#9a5d00;--warn-bg:#fff5e2;--bad:#b83a22;--bad-bg:#fdecea;--ink:#0b2e78;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--g);background:var(--paper);min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
body.noscroll{overflow:hidden}
button{font:inherit;cursor:pointer;color:inherit}
button:disabled{opacity:.45;cursor:not-allowed}
a{color:inherit}
[hidden]{display:none!important}
h1{font-size:22px;margin:4px 0 14px}
h3{font-size:16px;margin:0 0 10px}
h4{font-size:13px;margin:0 0 7px;color:#555b5d;text-transform:uppercase;letter-spacing:.3px}
.muted{color:var(--muted)}.small{font-size:13px}.good{color:var(--ok);font-weight:700}.bad-text{color:var(--bad);font-weight:700;font-size:13px}
.grow{flex:1}

/* верхняя полоса */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));background:#fff;border-bottom:3px solid var(--o);min-width:0}
.brand img{height:30px;display:block}
.top-title{flex:1;min-width:0;border-left:1px solid var(--line);padding-left:10px}
.top-title b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-title span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync{font-size:11.5px;font-weight:800;padding:5px 9px;border-radius:99px;white-space:nowrap;cursor:pointer}
.sync.ok{background:var(--ok-bg);color:var(--ok)}.sync.wait{background:var(--y-soft);color:var(--warn)}.sync.off{background:#eceeee;color:#5f696c}.sync.busy{background:var(--o-soft);color:var(--o-dark)}
.menu{position:relative}
.menu summary{list-style:none;width:40px;height:40px;border-radius:10px;display:grid;place-content:center;gap:4px;cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu summary span{display:block;width:20px;height:2.5px;background:var(--g);border-radius:2px}
.menu[open] summary{background:var(--o-soft)}
.menu-box{position:absolute;right:0;top:46px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.12);min-width:210px;padding:6px;display:flex;flex-direction:column}
.menu-box a,.menu-box button{padding:11px 12px;border-radius:9px;text-decoration:none;background:none;border:0;text-align:left;font-weight:600}
.menu-box a:hover,.menu-box button:hover{background:var(--o-soft)}
.menu-box small{color:var(--muted);padding:6px 12px 4px;font-size:11px}
.banner{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--y);color:var(--g);font-weight:700;padding:10px 14px;font-size:14px}

/* страница */
#main{max-width:860px;margin:0 auto;padding:14px 12px 90px}
.page.empty{text-align:center;padding:60px 16px;color:var(--muted)}
.empty b{display:block;font-size:18px;color:var(--g);margin-bottom:6px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.notice{background:#eef0f0;border-radius:12px;padding:10px 12px;margin-bottom:10px;font-size:14px}
.notice.bad{background:var(--bad-bg);color:var(--bad)}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.ok{background:var(--ok-bg);color:#1d6b3b}
.notice .btn{margin-top:8px}
.notice input{width:100%;margin:8px 0}

/* кнопки и чипы */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:11px;font-weight:700;background:#fff;border:1px solid #cfd4d5;color:var(--g);text-decoration:none;min-height:44px;font-size:15px;text-align:center}
.btn:hover:not(:disabled){border-color:var(--o)}
.btn.orange{background:var(--o);border-color:var(--o);color:#fff}
.btn.orange:hover:not(:disabled){background:var(--o-dark)}
.btn.dark{background:var(--g);border-color:var(--g);color:#fff}
.btn.big{min-height:52px;font-size:16px;padding:13px 20px}
.btn.small{min-height:36px;padding:7px 12px;font-size:13.5px;border-radius:9px}
.btn.wide{width:100%;margin-top:10px}
.btn.danger{color:var(--bad);border-color:#e7b9ae}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{padding:4px 10px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--y-soft);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.neutral{background:#eef0f0;color:#5d686b}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip-btn{padding:10px 13px;border-radius:99px;border:1.5px solid #d3d7d8;background:#fff;font-weight:700;font-size:14.5px;min-height:42px}
.chip-btn.small{padding:6px 10px;min-height:34px;font-size:13px}
.chip-btn.on{background:var(--o);border-color:var(--o);color:#fff}
.x{width:36px;height:36px;border-radius:50%;border:0;background:#eef0f0;font-size:20px;line-height:1;flex:none}

/* формы */
.form .field,.field{display:grid;gap:5px;margin-bottom:12px}
.field>span{font-size:13px;font-weight:700;color:#555b5d}
.field.req>span::after{content:" *";color:var(--o)}
.field small{color:var(--muted);font-size:12.5px}
input,textarea,select{width:100%;border:1px solid #d3d8d9;border-radius:11px;padding:11px 12px;font:inherit;font-size:16px;color:#222;background:#fcfcfb;outline:none;min-height:46px}
textarea{resize:vertical;min-height:70px}
input::placeholder,textarea::placeholder{color:#a9b0b3}
input:focus,textarea:focus,select:focus{border-color:var(--o);box-shadow:0 0 0 3px rgba(242,138,0,.15);background:#fff}
input:disabled,textarea:disabled,select:disabled{background:#f2f2f0;color:#555}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;align-items:center;gap:10px;font-weight:600;margin:6px 0 10px;font-size:15px}
.check input{width:24px;height:24px;min-height:0;accent-color:var(--o)}
.checks{display:flex;flex-wrap:wrap;gap:4px 18px}
.next{display:flex;justify-content:flex-end;margin-top:6px}

/* список */
.list-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.list-head h1{margin:0}
.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px;scrollbar-width:none}
.fchip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 13px;font-weight:700;font-size:14px;white-space:nowrap;display:flex;gap:6px;align-items:center}
.fchip i{font-style:normal;background:#eef0f0;border-radius:99px;padding:0 7px;font-size:12px}
.fchip.active{background:var(--g);color:#fff;border-color:var(--g)}.fchip.active i{background:var(--o);color:#fff}
.search{margin-bottom:12px}
.cards{display:grid;gap:10px}
.jcard,.ucard{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--o);border-radius:var(--r);padding:12px 14px;text-decoration:none}
.jcard:active{background:var(--o-soft)}
.ucard.off{opacity:.6;border-left-color:#bbb}
.jc-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.jc-top b{font-size:16.5px}
.jc-sub{color:var(--muted);font-size:13.5px;margin-top:2px}
.jc-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;margin-top:6px;color:#555b5d}
.dot{color:var(--warn);font-weight:700}.dot::before{content:"● ";color:var(--y)}

/* журнал */
.jhead{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.back{font-size:34px;line-height:1;text-decoration:none;padding:0 8px 4px;border-radius:10px;color:var(--o)}
.jh-title{flex:1;min-width:0}
.jh-title b{display:block;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jh-title span{display:block;font-size:13px;color:var(--muted)}
.tabs{position:sticky;top:calc(58px + env(safe-area-inset-top));z-index:40;display:flex;gap:3px;background:var(--paper);padding:6px 0 10px;overflow-x:auto;scrollbar-width:none}
.tabs a{flex:1 1 auto;min-width:0;text-align:center;text-decoration:none;font-weight:800;font-size:13px;padding:10px 6px;border-radius:11px;background:#fff;border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs a.active{background:var(--g);border-color:var(--g);color:#fff;box-shadow:inset 0 -3px 0 var(--o)}

.well-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;scrollbar-width:none}
.wtab{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:8px 14px;font-weight:800;display:flex;flex-direction:column;align-items:center;min-width:84px}
.wtab small{font-weight:600;color:var(--muted);font-size:12px}
.wtab.active{border-color:var(--o);background:var(--o-soft)}
.wtab.add{color:var(--o-dark);border-style:dashed;justify-content:center}
.gps{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.gps-text b{display:block}.gps-text span{font-size:13.5px;color:var(--muted)}
.layers{display:grid;gap:7px;margin-bottom:4px}
.layer{display:flex;gap:12px;align-items:center;text-align:left;background:#fcfcfb;border:1px solid var(--line);border-radius:12px;padding:9px 10px;width:100%}
.layer .depth{flex:none;width:56px;text-align:center;border-right:1px solid var(--line);padding-right:8px}
.layer .depth b{display:block;font-size:17px}.layer .depth small{color:var(--muted);font-size:11.5px}
.layer .ltext{flex:1;font-size:14.5px;color:var(--ink)}
.swatch{width:12px;align-self:stretch;border-radius:4px;flex:none;background:#ddd}
.s-topsoil{background:#5b4a32}.s-fill{background:repeating-linear-gradient(45deg,#999,#999 3px,#ccc 3px,#ccc 6px)}.s-clay{background:#b98a5a}.s-sand{background:var(--y)}.s-coarse{background:#a7a9ac}.s-peat{background:#3b2f25}.s-rock{background:#7d8ca3}
.samples{display:grid;gap:6px;margin-bottom:8px}
.sample{display:grid;grid-template-columns:1fr 1.4fr auto;gap:6px;align-items:center}

/* окно слоя */
.sheet{position:fixed;inset:0;z-index:100;background:rgba(30,32,34,.45);display:flex;align-items:flex-end;justify-content:center}
.sheet-box{background:var(--paper);width:100%;max-width:720px;height:100%;max-height:100dvh;display:flex;flex-direction:column;border-radius:0}
.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;padding-top:calc(12px + env(safe-area-inset-top));background:#fff;border-bottom:3px solid var(--o)}
.sheet-head b{font-size:17px}
.sheet-body{flex:1;overflow:auto;padding:12px 14px 20px;-webkit-overflow-scrolling:touch}
.group{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:10px}
.more{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin-bottom:10px}
.more summary{font-weight:700;cursor:pointer;color:var(--o-dark)}
.more[open] summary{margin-bottom:10px}
.depth-row{display:flex;align-items:center;gap:10px}
.depth-row .from{font-weight:700;color:var(--muted);white-space:nowrap}
.depth-input{font-size:26px;font-weight:800;text-align:center;max-width:140px;min-height:56px}
.inc-row{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.inc-row b{display:block;margin-bottom:6px}
.sheet-foot{background:#fff;border-top:1px solid var(--line);padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.preview{font-size:14.5px;color:var(--ink);margin-bottom:8px;max-height:72px;overflow:auto}
.preview b{color:var(--g)}
.sheet-actions{display:flex;gap:8px;align-items:center}

/* схема, фото */
.map{height:52vh;min-height:280px;border-radius:12px;border:1px solid var(--line);margin-bottom:8px;background:#e9ece9}
.map-off{padding:20px;color:var(--muted);text-align:center}
.well-pin{background:var(--o);color:#fff;border:2.5px solid #fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.35);display:grid!important;place-items:center;font-weight:800;font-size:14px}
.dist-tip{background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.25);font-weight:700;color:var(--g);padding:1px 6px}
.sketch-thumb{width:100%;max-height:300px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:8px}
.photo-btn{width:100%;margin-top:8px;cursor:pointer}
.photo-actions{display:grid;gap:0}
.grid-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.grid-photos figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.grid-photos img{width:100%;height:140px;object-fit:cover;display:block}
.grid-photos figcaption{display:flex;align-items:center;gap:4px;padding:6px 8px;font-size:12.5px}
.grid-photos figcaption i{color:var(--warn);font-style:normal}
.grid-photos figcaption .x{margin-left:auto;width:28px;height:28px;font-size:16px}

/* итог */
.issues{margin:0;padding-left:18px;display:grid;gap:5px;font-size:14.5px}
.issues .error{color:var(--bad)}.issues .warn{color:var(--warn)}
.timeline{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:7px;font-size:14px;border-top:1px solid var(--line);padding-top:10px}
.timeline b{font-weight:700;color:var(--muted);font-size:12.5px;display:block}

/* схема от руки */
.sketch{position:fixed;inset:0;z-index:120;background:#fff;display:flex;flex-direction:column}
.sketch-bar{display:flex;gap:6px;align-items:center;padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top));border-bottom:3px solid var(--o);flex-wrap:wrap}
.sketch-hint{font-size:13px;color:var(--muted);padding:6px 12px}
.sketch canvas{flex:1;width:100%;touch-action:none;display:block}

/* сообщения */
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,40px);opacity:0;pointer-events:none;background:var(--g);color:#fff;padding:12px 16px;border-radius:12px;font-weight:700;font-size:14.5px;max-width:calc(100% - 24px);width:max-content;z-index:200;transition:.25s;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:var(--ok)}.toast.bad{background:var(--bad)}.toast.warn{background:var(--warn)}

@media (min-width:720px){
  #main{padding:20px 20px 60px}
  .sheet{align-items:center;padding:20px}
  .sheet-box{height:auto;max-height:92vh;border-radius:18px;overflow:hidden}
  .top{padding:8px 20px}
  .brand img{height:36px}
}
@media (max-width:420px){ .row2{grid-template-columns:1fr;gap:0} .top-title span{display:none} }
.btn-row select{width:auto;min-height:36px;padding:6px 10px;font-size:14px}
.leaflet-attribution-flag{display:none!important}
.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 8px;font-size:14px}
.facts dt{color:var(--muted);font-weight:600}.facts dd{margin:0}
@media (max-width:420px){.facts{grid-template-columns:1fr}.facts dd{margin-bottom:6px}}
.clean-scheme{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden}.clean-scheme svg{display:block;width:100%;height:auto}
