/* СтройШтаб — кабинет. Дизайн взят у СтройВердикта:
   IBM Plex, бумажная палитра, рамки вместо теней.
   Мобильная вёрстка обязательна — прораб работает с телефона. */
:root{
  --paper:#fbfaf7;
  --ink:#20242a;
  --muted:#5b6270;
  --line:#d9d6cd;
  --red:#b3261e;
  --red-soft:#f6e9e8;
  --steel:#eef0ec;
  --green:#1f6b3e;
  --green-soft:#e6f0e9;
  --amber:#8a5a00;
  --amber-soft:#f7efdd;
  --sans:'IBM Plex Sans',-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.55;font-size:16px;
  display:flex;flex-direction:column;min-height:100vh}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 22px;width:100%}
.mono{font-family:var(--mono)}
.page{flex:1;padding-top:32px;padding-bottom:64px}

/* шапка */
.topbar{border-bottom:1px solid var(--line);background:rgba(251,250,247,.96);position:sticky;top:0;z-index:20;backdrop-filter:blur(6px)}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 22px}
.logo{font-family:var(--mono);font-weight:700;font-size:23px;text-decoration:none}
.logo b{color:var(--red);font-weight:600}
nav.top{display:flex;gap:20px;font-size:15px}
nav.top a{text-decoration:none;color:var(--muted)}
nav.top a:hover{color:var(--ink)}
.who{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.who-name{white-space:nowrap}
.logout{font-family:var(--mono);font-size:13px;text-decoration:none;border:1px solid var(--line);padding:5px 11px}
.logout:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media(max-width:700px){
  nav.top{display:none}
  .who-name{display:none}
  .hrow{padding:11px 16px}
  .wrap{padding:0 16px}
}

/* заголовки */
h1{font-size:clamp(23px,3vw,30px);font-weight:700;letter-spacing:-.015em;margin-bottom:8px}
h2{font-size:20px;font-weight:700;margin-bottom:10px}
h3{font-size:17px;font-weight:600}
.sub{color:var(--muted);margin-bottom:26px;max-width:720px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.crumbs{font-size:14px;color:var(--muted);margin-bottom:14px}
.crumbs a{text-decoration:none;border-bottom:1px solid var(--line)}
.crumbs a:hover{color:var(--ink);border-color:var(--ink)}

/* плашки статусов */
.badge{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border:1px solid var(--line);background:var(--paper);white-space:nowrap;display:inline-block}
.badge-neutral{border-color:var(--line);color:var(--muted)}
.badge-wait{border-color:var(--muted);color:var(--muted);background:var(--steel)}
.badge-work{border-color:var(--amber);color:var(--amber);background:var(--amber-soft)}
.badge-attention{border-color:var(--red);color:var(--red);background:var(--red-soft);font-weight:600}
.badge-done{border-color:var(--green);color:var(--green);background:var(--green-soft)}
.badge-alert{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.badge-proc{border-color:var(--red);color:var(--red)}
.badge-urgent{border-color:var(--red);color:var(--red);background:var(--red-soft)}

/* карточки объектов */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(max-width:760px){.cards{grid-template-columns:1fr}}
.card{background:var(--paper);padding:24px;display:block;text-decoration:none}
.card:hover{background:var(--steel)}
.card h3{font-size:19px;margin-bottom:6px}
.card .addr{font-size:14.5px;color:var(--muted);margin-bottom:14px}
.card .roles{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-bottom:14px}
.card-stats{display:flex;gap:0;border:1px solid var(--line);margin-top:14px}
.card-stats div{flex:1;padding:10px 12px;border-right:1px solid var(--line)}
.card-stats div:last-child{border-right:none}
.card-stats .n{font-family:var(--mono);font-size:19px;font-weight:600}
.card-stats .t{font-size:12.5px;color:var(--muted);margin-top:2px}
.card-stats .hot .n{color:var(--red)}

/* таблицы */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--ink)}
table.grid{border-collapse:collapse;width:100%;min-width:620px;background:var(--paper);font-size:15px}
table.grid th{background:#3a3f47;color:#fff;font-weight:500;text-align:left;padding:12px 14px;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
table.grid td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
table.grid tr:hover td{background:var(--steel)}
table.grid a.tlink{text-decoration:none;font-weight:600;box-shadow:inset 0 -1px 0 var(--line)}
table.grid a.tlink:hover{color:var(--red);box-shadow:inset 0 -1px 0 var(--red)}
.nowrap{white-space:nowrap}
.scroll-hint{display:none;font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--muted);margin-top:8px}
@media(max-width:760px){.scroll-hint{display:block}}

/* кнопки */
.btn{font-family:var(--mono);font-size:15px;text-decoration:none;padding:12px 22px;border:1.5px solid var(--ink);
  background:var(--paper);color:var(--ink);cursor:pointer;display:inline-block;transition:.15s;text-align:center}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.primary{background:var(--ink);color:var(--paper)}
.btn.primary:hover{background:var(--red);border-color:var(--red)}
.btn.danger{border-color:var(--red);color:var(--red)}
.btn.danger:hover{background:var(--red);color:#fff}
.btn.small{font-size:13.5px;padding:8px 15px}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
@media(max-width:600px){.btn-row .btn{width:100%}}

/* блоки */
.panel{border:1px solid var(--line);background:var(--paper);padding:24px;margin-bottom:22px}
.panel.accent{border-color:var(--ink);background:var(--steel)}
.panel.attention{border-left:3px solid var(--red);background:var(--red-soft)}
.panel h2{margin-bottom:6px}
.panel .hint{font-size:14.5px;color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:820px){.two{grid-template-columns:1fr}}
.meta{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line)}
@media(max-width:600px){.meta{grid-template-columns:1fr}}
.meta div{padding:12px 15px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.meta div:nth-child(2n){border-right:none}
.meta .k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.meta .v{margin-top:4px;font-size:15px}

/* формы */
form.stack{max-width:640px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.field input[type=text],.field input[type=email],.field input[type=password],
.field input[type=url],.field input[type=date],.field input[type=number],
.field select,.field textarea{
  width:100%;font-family:var(--sans);font-size:16px;padding:12px 13px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.field textarea{min-height:110px;resize:vertical;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink)}
.field input[type=file]{width:100%;font-size:15px;padding:11px;border:1px dashed var(--line);background:var(--steel)}
.field .hint{font-size:13.5px;color:var(--muted);margin-top:6px}
.field .req{color:var(--red)}
.msg{padding:13px 16px;border:1px solid var(--line);font-size:15px;margin-bottom:20px}
.msg.err{border-color:var(--red);background:var(--red-soft);color:var(--ink)}
.msg.ok{border-color:var(--green);background:var(--green-soft)}
.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start;margin-top:14px}
.inline-form textarea{flex:1;min-width:260px;min-height:74px;font-family:var(--sans);font-size:15px;
  padding:11px 12px;border:1px solid var(--line);background:var(--paper)}

/* лента событий */
.feed{border-left:2px solid var(--line);padding-left:20px;margin-top:8px}
.ev{padding:14px 0;border-bottom:1px dashed var(--line);position:relative}
.ev:last-child{border-bottom:none}
.ev::before{content:"";position:absolute;left:-25px;top:20px;width:9px;height:9px;background:var(--line);border-radius:50%}
.ev.status::before{background:var(--red)}
.ev .head{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--muted)}
.ev .who{font-weight:600;color:var(--ink)}
.ev .text{margin-top:7px;font-size:15px;white-space:pre-wrap}
.ev .arrow{font-family:var(--mono);font-size:13px}

/* версии и результаты */
.rows{border:1px solid var(--line)}
.row{padding:15px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap;align-items:flex-start}
.row:last-child{border-bottom:none}
.row .main{flex:1;min-width:240px}
.row .vnum{font-family:var(--mono);font-size:12.5px;color:var(--red);letter-spacing:.06em}
.row .fname{font-weight:600;margin-top:3px;word-break:break-word}
.row .cm{font-size:14.5px;color:var(--muted);margin-top:6px;white-space:pre-wrap}
.row .side{font-family:var(--mono);font-size:13px;color:var(--muted);text-align:right;white-space:nowrap}
.empty{padding:26px;border:1px dashed var(--line);color:var(--muted);text-align:center;font-size:15px}

/* вход */
.login-box{max-width:420px;margin:60px auto;border:1px solid var(--ink);padding:32px;background:var(--paper)}
.login-box .logo{display:block;text-align:center;margin-bottom:6px;font-size:27px;text-decoration:none}
.login-box .tagline{text-align:center;color:var(--muted);font-size:14.5px;margin-bottom:26px}
.login-box button{width:100%}

.foot{border-top:1px solid var(--line);padding:20px 0;font-size:13.5px;color:var(--muted)}

/* выдача доступов: пароль должен читаться и копироваться без ошибок */
.copybox{width:100%;font-family:var(--mono);font-size:13.5px;line-height:1.6;
  border:1px solid var(--line);background:var(--steel);color:var(--ink);
  padding:14px;resize:vertical;margin-top:10px}
.checks{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.checks .consent{margin:0}

/* Файлы в папке объекта на Drive */
.drive-section{margin-top:18px}
.drive-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.drive-head .tlink{font-weight:600}
.drive-count{font-size:13px;color:var(--muted)}
/* Подпапок несколько, у каждой своя таблица: без fixed колонки считаются
   по содержимому и разъезжаются между блоками. */
table.grid.drive-table{table-layout:fixed}
table.grid.drive-table .col-size{width:110px}
table.grid.drive-table .col-date{width:170px}
table.grid.drive-table .col-act{width:140px}
table.grid.drive-table .ta-right{text-align:right}
/* Длинное имя файла не должно распирать таблицу. */
table.grid.drive-table .drive-name{overflow-wrap:anywhere}
