/* Портал программ Главгеопроекта — оформление как у самих программ: белая верхняя панель, бумажный фон, оранжевый / жёлтый / графит. */
:root{--g:#343638;--o:#f28a00;--o-dark:#d97900;--o-soft:#fff4e3;--y:#ffca14;--paper:#f5f3ee;--line:#e2ded6;--muted:#6f7a7e;
  --ok:#2f8a4c;--ok-bg:#eaf6ee;--warn:#9a5d00;--warn-bg:#fff5e2;--bad:#b83a22;--bad-bg:#fdecea}
*{box-sizing:border-box}
html{overflow-x:clip}
body{margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--g);background:var(--paper);min-height:100vh}
button{font:inherit;cursor:pointer;border:0;color:inherit}
button:disabled{opacity:.45;cursor:not-allowed}
[hidden]{display:none!important}
h1,h2,h3{margin:0}
a{color:inherit}

.btn{padding:9px 16px;border-radius:10px;font-weight:700;background:#fff;border:1px solid #cfd4d5;color:var(--g);white-space:nowrap;text-decoration:none;display:inline-block}
.btn:hover:not(:disabled){border-color:var(--o)}
.btn.primary{background:var(--g);color:#fff;border-color:var(--g)}
.btn.primary:hover:not(:disabled){background:#1f2021}
.btn.orange{background:var(--o);color:#fff;border-color:var(--o)}
.btn.orange:hover:not(:disabled){background:var(--o-dark)}
.btn.small{padding:6px 11px;font-size:12px;border-radius:8px}
.btn.big{padding:13px 18px;font-size:15px}
.btn.active{background:var(--o-soft);border-color:var(--o)}
.chip{padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:800;white-space:nowrap;display:inline-block}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.neutral{background:#eef0f0;color:#5d686b}

label{font-size:12px;font-weight:700;color:#555b5d;display:grid;gap:5px;margin-bottom:11px}
input,select{width:100%;border:1px solid #d8ddde;border-radius:10px;padding:9px 11px;font:inherit;font-size:14px;color:#222;background:#fcfcfb;outline:none}
input:focus,select:focus{border-color:var(--o);box-shadow:0 0 0 3px rgba(242,138,0,.13)}
label.check{display:flex;align-items:center;gap:8px;font-weight:600}
label.check input{width:auto}
.err{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700;margin-bottom:12px}
.note{background:var(--ok-bg);color:#1d6b3b;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700;margin-bottom:12px}
.muted{color:var(--muted)}

/* верхняя панель */
.topbar{display:flex;align-items:center;gap:16px;padding:0 18px;height:84px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar img{height:58px;width:auto;display:block;margin-left:-6px}
.top-title{flex:1;min-width:0;border-left:1px solid var(--line);padding-left:16px}
.top-title b{display:block;font-size:14px}
.top-title span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{display:flex;gap:8px;align-items:center}
.who{font-size:13px;font-weight:700;margin-right:4px}

main{max-width:1180px;margin:0 auto;padding:26px 24px 48px}
.page-head{margin:0 0 18px}.page-head h2{font-size:22px}.page-head p{color:var(--muted);margin:4px 0 0}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.card h3{font-size:15px;margin:0 0 12px}

/* плитки программ */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.tile{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;text-decoration:none;
  transition:border-color .15s,box-shadow .15s,transform .15s}
.tile:hover{border-color:var(--o);box-shadow:0 10px 26px rgba(52,54,56,.08);transform:translateY(-1px)}
.tile:focus-visible{outline:3px solid rgba(242,138,0,.35);outline-offset:2px}
.icon{flex:none;width:96px;height:96px;border-radius:20px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.icon img{width:50px;height:auto;display:block}
.icon b{font:900 15px/1 Arial,Helvetica,sans-serif;letter-spacing:.5px;color:var(--g)}
.icon i{display:block;width:40px;height:4px;border-radius:2px;background:var(--o)}
.tile-body{min-width:0;flex:1}
.tile-body h3{font-size:15.5px;line-height:1.3;margin:0 0 4px;hyphens:auto;overflow-wrap:break-word}
.tile-body p{margin:0 0 8px;color:var(--muted);font-size:12.5px;line-height:1.4}
.tile-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tile-foot span.go{font-weight:800;color:var(--o-dark);font-size:13px;white-space:nowrap}
.empty{padding:40px;text-align:center;color:var(--muted)}

/* пользователи */
.users{width:100%;border-collapse:collapse;font-size:13px}
.users th{text-align:left;font-size:11.5px;color:var(--muted);font-weight:700;padding:8px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.users td{padding:10px 8px;border-bottom:1px solid #efece6;vertical-align:middle}
.users tr.off td{opacity:.55}
.users td.acts{white-space:nowrap;text-align:right}
.users td.acts .btn{margin-left:4px}
.users select{padding:6px 8px;font-size:12.5px;border-radius:8px;min-width:136px}
.users .name b{display:block}.users .name small{color:var(--muted)}
.table-wrap{overflow-x:auto}
.access{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 12px;margin:4px 0 12px}
.access label{margin-bottom:6px;display:flex;flex-direction:column;justify-content:space-between;gap:5px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.section-gap{margin-top:16px}
.hint{font-size:12px;line-height:1.5;color:#7a8588;margin:10px 0 0}
.copy-row{display:flex;gap:8px}
.copy-row input{font-size:12.5px}

/* окно */
dialog{border:0;border-radius:18px;padding:24px;width:min(460px,calc(100% - 32px));box-shadow:0 20px 50px rgba(0,0,0,.18);color:var(--g)}
dialog::backdrop{background:rgba(52,54,56,.35)}
dialog h3{font-size:17px;margin:0 0 12px}

/* вход */
.login-page{display:grid;place-items:center;min-height:100vh;padding:20px}
.box{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 26px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.box img{height:44px;display:block;margin:0 auto 18px}
.box h1{font-size:19px;margin:0 0 4px;text-align:center}
.box p{color:var(--muted);text-align:center;margin:0 0 18px;font-size:13px}
.box .btn.big{width:100%}

@media (max-width:720px){
  .topbar{height:64px;padding:0 12px;gap:10px}
  .topbar img{content:url(/web/mark.png);height:36px;margin-left:0}
  .top-title{display:none}
  .who{display:none}
  .top-actions{margin-left:auto;gap:6px}
  .top-actions .btn{padding:7px 9px;font-size:12.5px}
  main{padding:18px 16px 40px}
  .tiles{grid-template-columns:1fr}
  .icon{width:76px;height:76px;border-radius:16px}
  .icon img{width:40px}.icon b{font-size:13px}.icon i{width:32px}
  .row2{grid-template-columns:1fr}
}
