:root{
  --ink:#14171A; --ink2:#3B4249; --muted:#828C95; --faint:#AAB2B9;
  --line:#E4E0D9; --line2:#F0EDE7;
  --bg:#F3F1ED; --card:#FFFFFF; --sand:#FAF8F5;
  --accent:#8A6534; --accent2:#B98A4B; --accentSoft:#F5EDE1;
  --ok:#25795A; --okSoft:#E7F3EE;
  --warn:#A96C10; --warnSoft:#FBF0DC;
  --dang:#A82B22; --dangSoft:#FBE9E7;
  --r:14px; --r2:10px;
  --sh:0 1px 2px rgba(20,23,26,.04), 0 8px 24px -12px rgba(20,23,26,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Manrope',system-ui,sans-serif;background:var(--bg);color:var(--ink);
     font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
.mono{font-family:'JetBrains Mono',monospace}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
a{color:var(--accent)}

/* ---------- шапка ---------- */
.topbar{position:sticky;top:0;z-index:40;background:rgba(243,241,237,.93);
        backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-in{max-width:1520px;margin:0 auto;padding:11px 22px;display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;
            display:grid;place-items:center;font-weight:800;font-size:11px;letter-spacing:.06em}
.brand-txt b{display:block;font-size:13px;font-weight:800;letter-spacing:.16em}
.brand-txt span{display:block;font-size:10px;color:var(--muted);letter-spacing:.05em}
.topbar-sep{width:1px;height:24px;background:var(--line);margin:0 4px}
.tbtn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--line);
      background:var(--card);border-radius:9px;font-size:12px;font-weight:600;cursor:pointer;
      text-decoration:none;color:var(--ink);transition:.15s}
.tbtn:hover{border-color:var(--accent2);color:var(--accent)}
.tbtn.prim{background:var(--ink);color:#fff;border-color:var(--ink)}
.tbtn.prim:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.who{margin-left:auto;font-size:11.5px;color:var(--muted);letter-spacing:.04em}

/* ---------- каркас ---------- */
.wrap{max-width:1520px;margin:0 auto;padding:24px 22px 60px}
h1.pt{font-size:20px;font-weight:800;letter-spacing:-.01em;margin-bottom:3px}
.psub{font-size:12px;color:var(--muted);margin-bottom:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.card+.card{margin-top:18px}
.card h5{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
         font-weight:700;padding:14px 18px 0}
.toolrow{display:flex;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.toolrow input,.toolrow select{padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--sand)}
.toolrow input{min-width:260px}

/* ---------- таблица ---------- */
table.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
table.tbl th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.06em;
             color:var(--muted);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--line);
             background:var(--sand);white-space:nowrap}
table.tbl td{padding:11px 14px;border-bottom:1px solid var(--line2);vertical-align:middle}
table.tbl tr:hover td{background:#FCFBF9}
table.tbl td.n{text-align:right;font-family:'JetBrains Mono',monospace;white-space:nowrap}
table.tbl a.num{font-family:'JetBrains Mono',monospace;font-weight:700;text-decoration:none}
.empty{padding:40px 18px;text-align:center;color:var(--muted);font-size:12.5px}

.st{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10.5px;font-weight:700;
    letter-spacing:.03em;white-space:nowrap}
.st.draft{background:var(--line2);color:var(--ink2)}
.st.sent{background:var(--accentSoft);color:var(--accent)}
.st.approved{background:var(--okSoft);color:var(--ok)}
.st.rejected{background:var(--dangSoft);color:var(--dang)}
.st.b2c{background:#EDF1F5;color:#41576B}
.st.b2b{background:#F1EEF7;color:#5B4B7E}

/* ---------- формы ---------- */
.grid{display:grid;gap:12px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.f{display:flex;flex-direction:column;gap:5px}
.f label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.f input,.f select,.f textarea{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--sand)}
.f input:focus,.f select:focus{outline:none;border-color:var(--accent2);background:#fff}
.pad{padding:18px}
.note{font-size:11.5px;line-height:1.65;color:var(--ink2);background:var(--sand);
      border:1px solid var(--line);border-left:3px solid var(--accent2);border-radius:8px;padding:11px 13px}

/* ---------- логин ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:100%;max-width:360px;background:var(--card);border:1px solid var(--line);
            border-radius:var(--r);box-shadow:var(--sh);padding:30px 28px}
.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}
.login h1{font-size:16px;font-weight:800;letter-spacing:-.01em}
.login .sub{font-size:11.5px;color:var(--muted);margin-bottom:20px}
.btn-full{width:100%;padding:11px;border:none;border-radius:9px;background:var(--ink);color:#fff;
          font-weight:700;font-size:13px;cursor:pointer;margin-top:6px;transition:.15s}
.btn-full:hover{background:var(--accent)}
.err{background:var(--dangSoft);color:var(--dang);border-radius:8px;padding:9px 12px;
     font-size:12px;margin-top:12px;display:none}
.err.on{display:block}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);opacity:0;
       background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;font-size:12.5px;
       pointer-events:none;transition:.25s;z-index:90}
.toast.on{opacity:1;transform:translateX(-50%)}
