/* Конспект ВКС — editorial "warm paper + ink" flat system */
:root{
  --paper:#f4f1ea;        /* warm off-white */
  --paper-2:#efeae0;      /* rail / insets */
  --card:#fbfaf6;         /* raised surfaces (flat, hairline) */
  --ink:#1a1a17;          /* near-black text */
  --muted:#6f6c63;        /* secondary text */
  --faint:#9a9688;        /* tertiary */
  --line:#e2ddd1;         /* hairlines */
  --line-2:#d6d0c2;
  --accent:#0f5c54;       /* deep teal — brand */
  --accent-ink:#0a423c;
  --accent-wash:#e3efea;
  --green:#1f7a3d; --green-wash:#e6f1e8;
  --slate:#3a5a8c; --slate-wash:#e8edf5;
  --amber:#9a6312; --amber-wash:#f5ecdb;
  --red:#b23a2e; --red-wash:#f6e7e3;
  --radius:14px; --radius-sm:9px;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --sans:"Golos Text",system-ui,sans-serif;
  --display:"Unbounded",var(--sans);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  /* subtle paper grain via layered radial dots */
  background-image:radial-gradient(var(--line) 0.5px,transparent 0.5px);
  background-size:22px 22px;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* ---- shell ---- */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.rail{
  position:sticky;top:0;height:100vh;
  background:var(--paper-2);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px;
  padding:26px 20px;
}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:34px}
.brand__logo{width:100%;max-width:208px;height:auto;display:block}
.brand__word{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.01em;line-height:1}
.brand__sub{display:block;font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.32em;color:var(--accent);margin-top:3px}

.nav{display:flex;flex-direction:column;gap:2px}
.nav__item{
  display:flex;align-items:center;gap:11px;
  padding:10px 12px;border-radius:var(--radius-sm);
  color:var(--muted);font-weight:500;
  transition:background .15s,color .15s;
}
.nav__item:hover{background:var(--paper);color:var(--ink)}
.nav__item.is-active{background:var(--accent);color:#fff}
.nav__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.45}
.nav__item.is-active .nav__dot{opacity:1}

.rail__foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:11.5px;color:var(--faint)}
.health{font-family:var(--mono);font-size:11px;color:var(--muted)}
.health.ok::before{content:"● ";color:var(--green)}
.health.demo::before{content:"● ";color:var(--amber)}
.rail__note{line-height:1.4}
.rail__ver{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.04em}

/* ---- stage / view ---- */
.stage{padding:44px clamp(28px,5vw,72px)}
.view{max-width:1080px;margin:0 auto;animation:rise .4s cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.page-head{margin-bottom:28px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}
h1{font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,40px);letter-spacing:-.02em;line-height:1.05;margin:8px 0 0}
.lede{color:var(--muted);max-width:54ch;margin:10px 0 0}
h2{font-family:var(--display);font-weight:500;font-size:18px;letter-spacing:-.01em;margin:0 0 14px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;
  padding:11px 18px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;transition:filter .15s,transform .05s}
.btn:hover{filter:brightness(1.08)} .btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;cursor:not-allowed;filter:none}
.btn--ghost{background:transparent;color:var(--accent-ink);border-color:var(--line-2)}
.btn--ghost:hover{background:var(--card);filter:none}
.btn--sm{padding:7px 12px;font-size:13px}

/* ---- upload ---- */
.drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;box-sizing:border-box;min-height:180px;cursor:pointer;
  border:1.5px dashed var(--line-2);border-radius:var(--radius);
  background:var(--card);
  padding:54px 28px;text-align:center;transition:border-color .15s,background .15s;
}
.drop.is-over{border-color:var(--accent);background:var(--accent-wash)}
.drop__big{font-family:var(--display);font-size:20px;margin:14px 0 4px}
.drop__hint{color:var(--muted);font-size:13.5px}
.drop input[type=file]{display:none}
.upload-row{display:flex;gap:14px;align-items:flex-end;margin-top:22px;flex-wrap:wrap}
.setting-row{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.setting-row label{font-size:13.5px;color:var(--muted);font-weight:500;white-space:nowrap}
.setting-row select{flex:1 1 220px;min-width:0}
.ingest{display:flex;align-items:center;gap:13px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:20px}
.ingest__dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--faint);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--faint) 18%,transparent)}
.ingest__body{flex:1 1 auto;min-width:0}
.ingest__label{font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint)}
.ingest__main{font-size:13.5px;color:var(--ink);margin-top:3px;word-break:break-word}
.ingest__mail{font-family:var(--mono);font-size:12.5px;color:var(--accent-ink)}
.ingest__meta{flex:none;font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap}
.ingest--ok{border-color:#cfe6d6}
.ingest--ok .ingest__dot{background:var(--green);box-shadow:0 0 0 4px var(--green-wash)}
.ingest--warn{background:var(--amber-wash);border-color:#ecdcb6}
.ingest--warn .ingest__dot{background:var(--amber);box-shadow:0 0 0 4px #f0e0c0}
.ingest--err{background:var(--red-wash);border-color:#eccabf}
.ingest--err .ingest__dot{background:var(--red);box-shadow:0 0 0 4px #f0d2cb}
.ingest--off .ingest__main{color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;color:var(--muted);font-weight:500}
select,input[type=text]{
  font-family:var(--sans);font-size:14px;color:var(--ink);
  background:var(--card);border:1px solid var(--line-2);border-radius:var(--radius-sm);
  padding:10px 12px;min-width:240px;
}
select:focus,input:focus{outline:2px solid var(--accent-wash);border-color:var(--accent)}
.file-chip{font-family:var(--mono);font-size:12.5px;color:var(--accent-ink);background:var(--accent-wash);
  padding:6px 10px;border-radius:7px;display:inline-block;margin-top:14px}

/* ---- library table ---- */
.toolbar{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.toolbar input{flex:1;min-width:260px}
.rows{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}
.row{display:grid;grid-template-columns:1fr 120px 70px 140px 110px 92px 40px;gap:14px;align-items:center;
  padding:15px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.row:last-child{border-bottom:0}
.row:hover{background:var(--paper)}
.row__title{font-weight:600}
.row__meta{font-family:var(--mono);font-size:12px;color:var(--muted)}
.row__head{cursor:default;background:var(--paper-2);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:600}
.row__head:hover{background:var(--paper-2)}
.row__del{border:0;background:transparent;color:var(--faint);font-size:18px;line-height:1;cursor:pointer;
  padding:2px 7px;border-radius:var(--radius-sm);transition:background .12s,color .12s}
.row__del:hover{background:var(--red-wash);color:var(--red)}

/* ---- badges ---- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;
  padding:3px 9px;border-radius:999px;white-space:nowrap;font-family:var(--sans)}
.badge--mono{font-family:var(--mono);font-weight:500}
.b-internal{background:var(--green-wash);color:var(--green)}
.b-external{background:var(--slate-wash);color:var(--slate)}
.b-unknown{background:var(--amber-wash);color:var(--amber)}
.b-review{background:var(--red-wash);color:var(--red)}
.b-model{background:var(--accent-wash);color:var(--accent-ink)}
.b-status-done{background:var(--green-wash);color:var(--green)}
.b-status-queued,.b-status-processing{background:var(--amber-wash);color:var(--amber)}
.b-status-error{background:var(--red-wash);color:var(--red)}

/* ---- meeting detail ---- */
.back{font-family:var(--mono);font-size:12px;color:var(--muted);display:inline-block;margin-bottom:14px}
.back:hover{color:var(--accent)}
.m-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}
.m-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.stat{font-family:var(--mono);font-size:12px;color:var(--muted)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:22px}
.panel h2{margin-bottom:12px}
.bullets{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.bullets li{padding-left:4px}
.decisions li::marker{color:var(--accent);content:"▸  "}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 14px;
  display:flex;flex-direction:column;gap:10px;position:relative}
.pcard.is-flag{border-color:var(--red);box-shadow:inset 3px 0 0 var(--red)}
.pcard.is-ext{box-shadow:inset 3px 0 0 var(--slate)}
.pcard__top{display:flex;gap:12px;align-items:center}
.ava{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-family:var(--display);font-weight:500;font-size:15px;color:#fff;background:var(--accent)}
.ava--ext{background:var(--slate)} .ava--unk{background:var(--amber)}
.pcard__name{font-weight:600;line-height:1.2}
.pcard__role{font-size:12px;color:var(--muted)}
.pcard__mail{font-family:var(--mono);font-size:12px;color:var(--accent-ink);word-break:break-all}
.pcard__mail.none{color:var(--faint)}
.pcard__badges{display:flex;gap:6px;flex-wrap:wrap}
.assign{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.assign select,.assign-q{width:100%;min-width:0;font-size:13px;padding:7px 9px;box-sizing:border-box}
.assign-q{border:1px solid var(--line);border-radius:var(--radius-sm)}
.assign.is-hidden{display:none}
.transcript-panel{display:flex;flex-direction:column;gap:12px}
.transcript-panel .btn{align-self:flex-start}
.transcript{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:12.5px;
  line-height:1.55;color:var(--ink);background:var(--accent-wash);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:14px 16px;max-height:50vh;overflow:auto}
.transcript.is-hidden{display:none}
.pcard__actions{display:flex;gap:14px;margin-top:2px}
.lnk{border:0;background:transparent;color:var(--accent);font-size:12.5px;cursor:pointer;padding:0;text-decoration:underline}
.lnk--del{color:var(--muted);text-decoration:none}
.lnk--del:hover{color:var(--red)}

/* ---- tasks ---- */
.tgroup{margin-bottom:16px}
.tgroup__who{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.tgroup__mail{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.task{display:flex;gap:10px;padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:7px}
.task__due{font-family:var(--mono);font-size:11.5px;color:var(--accent-ink);background:var(--accent-wash);padding:2px 8px;border-radius:6px;white-space:nowrap;height:fit-content}

/* ---- employees ---- */
.emp-add{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:20px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.emp{display:grid;grid-template-columns:1fr 1.1fr 1fr 150px;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}
.emp:last-child{border-bottom:0}
.emp__mail{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.emp__off{opacity:.5}
.emp-toggle{border:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:12px;
  padding:5px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,color .12s}
.emp-toggle:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.pcard__room{font-family:var(--mono);font-size:12px;color:var(--faint)}
.b-room{background:var(--paper-2);color:var(--muted);border:1px solid var(--line)}

/* ---- misc ---- */
.empty{text-align:center;color:var(--muted);padding:60px 20px;border:1px dashed var(--line-2);border-radius:var(--radius);background:var(--card)}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--accent-wash);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(1turn)}}
.processing{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;color:var(--accent-ink);
  background:var(--accent-wash);padding:14px 18px;border-radius:var(--radius);margin-top:20px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:10px;font-size:13.5px;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50;max-width:80vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--red)}
.exports{display:flex;gap:10px;margin-top:6px}

@media(max-width:760px){
  .shell{grid-template-columns:1fr}
  .rail{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:14px}
  .nav{flex-direction:row} .rail__foot{display:none}
  .row{grid-template-columns:1fr auto auto}
  .row>div:not(:first-child):not(:nth-last-child(2)):not(:last-child){display:none}
}

/* ---- send report ---- */
.send-status{margin:10px 0 0;font-family:var(--mono);font-size:12px;color:var(--muted)}
.send-confirm{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-top:10px}
.send-list{margin:8px 0 0;padding-left:18px;font-family:var(--mono);font-size:12.5px;color:var(--accent-ink)}
.send-actions{display:flex;gap:10px;margin-top:14px}

/* ---- login ---- */
.login-body{display:grid;place-items:center;min-height:100vh}
.login{display:flex;flex-direction:column;gap:14px;width:320px;max-width:90vw;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px}
.login__logo{width:180px;height:auto;margin:0 auto 2px}
.login__title{font-family:var(--display);font-weight:700;font-size:18px;text-align:center;margin-bottom:6px}
.login__field{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.login__field input{width:100%}
.login .btn{justify-content:center;margin-top:6px}
.login__err{color:var(--red);font-size:13px;text-align:center}
.rail__logout{font-family:var(--mono);font-size:11px;color:var(--faint);text-decoration:underline;display:none}
.rail__logout:hover{color:var(--accent)}
