/* Стили кабинета — вытащены из docs/owner-cabinet-mockup.html (палитра, типографика, карточки).
   Отличие от мокапа: шрифты локальные (system-ui вместо Google Fonts — внешних CDN нет). */
:root{
  --bg:#ECEBE2; --card:#FDFDFB; --ink:#1B1B18; --muted:#71716A;
  --green-deep:#22392F; --green:#2E7D5B; --green-soft:#DCE7DF;
  --wave:#6E8B7C; --wave-dark:#54705F;
  --terra:#B44B33; --terra-bg:#F8E9E2; --terra-line:#E0A38C;
  --amber:#B07A1E; --amber-bg:#F6EBD6;
  --line:#E2E1D8; --r:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
     background:#D8D7CE;color:var(--ink);
     display:flex;justify-content:center;min-height:100vh}
.phone{width:100%;max-width:430px;background:var(--bg);min-height:100vh;
       display:flex;flex-direction:column;position:relative}
.screen{flex:1;overflow-y:auto;padding:20px 16px 96px}
.num{font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
     font-weight:600;font-variant-numeric:tabular-nums}

/* header */
.hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:10px}
.hdr h1{font-size:26px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}
.live{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);
      padding-top:6px;white-space:nowrap}
.dot{width:11px;height:11px;border-radius:50%;background:var(--green);
     box-shadow:0 0 0 3px var(--green-soft);flex:0 0 auto}
.dot.off{background:var(--terra);box-shadow:0 0 0 3px var(--terra-bg)}
.dot.paused{background:#9A9A92;box-shadow:0 0 0 3px #E4E3DA}

/* hero */
.hero{background:var(--green-deep);color:#EDEFE9;border-radius:var(--r);
      padding:20px 20px 16px;margin-bottom:14px}
.hero .eyebrow{font-size:13px;opacity:.75;margin-bottom:10px}
.hero .big{font-size:52px;line-height:1}
.hero .big small{font-family:'Inter',system-ui,sans-serif;font-size:16px;font-weight:400;opacity:.85;margin-left:8px}
.hero .foot{display:flex;justify-content:space-between;font-size:13px;opacity:.8;margin-top:10px}
.hero .foot b{opacity:1}

/* waveform */
.wave{display:flex;align-items:center;gap:2.5px;height:36px;margin:14px 0 2px;overflow:hidden}
.wave i{width:3px;border-radius:2px;background:var(--wave);flex:0 0 auto}
.hero .wave i{background:rgba(255,255,255,.42)}
.wave.live i{animation:pulse 1.6s ease-in-out infinite alternate}
.wave.flat i{height:3px!important;background:#C9C8BE}
@keyframes pulse{to{transform:scaleY(.45)}}
@media (prefers-reduced-motion:reduce){.wave.live i{animation:none}}

/* cards */
.card{background:var(--card);border-radius:var(--r);padding:18px;margin-bottom:14px}
.lbl{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
     font-weight:600;margin-bottom:6px}
.grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px 10px}
.m .num{font-size:27px}
.m .num sub{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:400;color:var(--muted);vertical-align:baseline}
.m .sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.m .num.warn{color:var(--terra)}
.note{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;
      font-size:13.5px;color:var(--muted);line-height:1.45}

/* M7 */
.m7 .chip{display:inline-flex;align-items:baseline;gap:6px;background:var(--amber-bg);
          color:var(--amber);border-radius:12px;padding:6px 11px;font-size:14px;
          font-weight:600;margin:4px 6px 2px 0}
.m7 .chip .num{font-size:14px}
.m7 p{font-size:13px;color:var(--muted);margin-top:8px}

/* incident banner + предупреждения */
.banner{border:1.5px solid var(--terra-line);background:var(--terra-bg);border-radius:var(--r);
        padding:16px 18px;margin-bottom:14px;display:flex;justify-content:space-between;
        align-items:center;cursor:pointer;gap:10px}
.banner b{color:var(--terra);font-size:17px;display:block;margin-bottom:3px}
.banner span{font-size:13.5px;color:#8A5B4C}
.banner .arr{color:var(--terra);font-size:22px}
.banner.amber{border-color:#E0C48C;background:var(--amber-bg)}
.banner.amber b{color:var(--amber)}
.banner.amber span{color:#8A6E3B}
.banner.amber .arr{color:var(--amber)}

/* cassa card */
.ch{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ch h3{font-size:19px;font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.ch .sub{font-size:13.5px;color:var(--muted);margin-top:2px}
.status{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap;padding-top:3px}
.status.ok{color:var(--green)} .status.bad{color:var(--terra)} .status.pause{color:#7A7A72}
.kv{margin-top:8px}
.btnrow{display:flex;gap:10px;margin-top:14px}
.btn{flex:1;border:1.5px solid var(--line);background:var(--card);border-radius:14px;
     padding:12px 8px;font-size:15px;font-weight:600;font-family:inherit;color:var(--ink);
     cursor:pointer;text-align:center}
.btn:active{background:#F1F0E8}
.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn.danger{border-color:var(--terra-line);color:var(--terra)}
.btn.wide{flex:none;width:100%}
.askno{font-size:13.5px;color:var(--muted);margin-top:10px;line-height:1.45}
.askno b{color:var(--ink)}
.askno.alert{color:var(--terra)}

/* bind card */
.code{font-size:34px;letter-spacing:.18em;text-align:center;margin:10px 0 4px}
.code-note{font-size:13px;color:var(--muted);text-align:center;line-height:1.5}

/* settings */
.back{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;
      color:var(--muted);background:none;border:none;font-family:inherit;cursor:pointer;
      margin-bottom:10px;padding:4px 0}
.seg{display:flex;background:#E2E1D6;border-radius:14px;padding:4px;margin:4px 0 16px}
.seg button{flex:1;border:none;background:none;border-radius:11px;padding:9px 4px;
            font-size:13.5px;font-weight:600;font-family:inherit;color:var(--muted);cursor:pointer}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;
     border-bottom:1px solid var(--line);font-size:15px;gap:10px}
.row:last-child{border-bottom:none}
.row .r{color:var(--muted);font-size:14px;text-align:right}
.shift{display:flex;justify-content:space-between;align-items:center;padding:11px 0;
       border-bottom:1px solid var(--line);font-size:15px;gap:10px}
.shift .t{font-weight:600}
.link{color:var(--green);font-weight:600;font-size:14px;background:none;border:none;
      font-family:inherit;cursor:pointer;padding:0}
.link.red{color:var(--terra)}
.hint{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:10px}

/* incidents */
.inc{border-left:4px solid var(--terra)}
.inc.done{border-left-color:#B9C6BC;opacity:.72}
.inc .type{color:var(--terra);font-weight:700;font-size:13px;letter-spacing:.06em;
           text-transform:uppercase}
.inc.done .type{color:#6E8272}
.inc .q{font-size:15px;line-height:1.45;margin:8px 0 6px;font-style:italic}
.inc .meta{font-size:13px;color:var(--muted)}

/* nav */
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;
     background:rgba(253,253,251,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line);
     display:flex;padding:10px 8px calc(10px + env(safe-area-inset-bottom))}
.nav[hidden]{display:none}
.nav button{flex:1;background:none;border:none;font-family:inherit;font-size:12.5px;
            color:var(--muted);cursor:pointer;display:flex;flex-direction:column;
            align-items:center;gap:4px;font-weight:500}
.nav button.on{color:var(--ink);font-weight:700}
.nav .ico{font-size:20px;line-height:1}

/* --- дополнения к мокапу: формы, списки, транскрипт, плеер, логин --- */
.field{margin:10px 0}
.field label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:5px}
.input,select.input{width:100%;border:1.5px solid var(--line);border-radius:12px;background:var(--card);
       padding:11px 12px;font-size:15px;font-family:inherit;color:var(--ink)}
.input:focus{outline:none;border-color:var(--green)}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.inline-form .input{width:auto;flex:1;min-width:90px}
.form-error{color:var(--terra);font-size:13.5px;margin-top:8px;line-height:1.4}
.ok-msg{color:var(--green);font-size:13.5px;margin-top:8px;line-height:1.4}

.filters{display:flex;gap:8px;margin-bottom:14px}
.filters select{flex:1}

/* список диалогов */
.sess{display:flex;justify-content:space-between;align-items:center;gap:10px;
      padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:14.5px}
.sess:last-child{border-bottom:none}
.sess .when{font-weight:600;white-space:nowrap}
.sess .tags{color:var(--muted);font-size:13px;text-align:right;line-height:1.5}
.sess .tags .bad{color:var(--terra);font-weight:600}
.sess .tags .pend{color:var(--amber);font-weight:600}
.empty{text-align:center;color:var(--muted);font-size:14px;padding:26px 18px;line-height:1.5}

/* транскрипт */
.utt{padding:10px 0;border-bottom:1px solid var(--line)}
.utt:last-child{border-bottom:none}
.utt .who{display:flex;align-items:baseline;gap:8px;font-size:12.5px;margin-bottom:3px}
.utt .role{font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.utt.employee .role{color:var(--green)}
.utt.client .role{color:var(--amber)}
.utt .tme{color:var(--muted);background:none;border:none;font-family:inherit;cursor:pointer;
          font-size:12.5px;padding:0;text-decoration:underline;text-decoration-color:var(--line)}
.utt .txt{font-size:15px;line-height:1.45}

/* плеер */
audio.player{width:100%;margin-top:10px;display:block}

/* логин */
.login{display:flex;flex-direction:column;justify-content:center;min-height:70vh;text-align:center}
.login h1{font-size:28px;margin-bottom:8px}
.login p{color:var(--muted);font-size:14.5px;line-height:1.5;margin-bottom:22px}
.login .tg{display:flex;justify-content:center;min-height:48px}
.login .card{text-align:left}

.loading{text-align:center;color:var(--muted);padding:40px 0;font-size:14.5px}
.spacer{height:8px}
