/* IMIN кабинет — общая тема. Один файл на все модули. */
:root{
  --bg:#13151a; --panel:#1b1e26; --panel2:#22262f; --line:#2e333d;
  --ink:#e8eaed; --muted:#9aa1ad; --accent:#e0653f; --accent2:#4a9d7f;
  --chord:#e0653f; --warn:#d9a13a; --btnline:#54607a;
  --mono:'JetBrains Mono','Courier New',monospace;
  --sans:'Inter','Segoe UI',system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5}
h1,h2{margin:0}
.module-head{padding:22px 24px 0}
.module-head h2{font-size:19px;margin-bottom:4px}
.module-head .sub{color:var(--muted);font-size:13px;margin:0 0 18px}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px 40px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:9px 11px;font-family:var(--sans);font-size:14px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{font-family:var(--mono);resize:vertical}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row>div{flex:1;min-width:130px}
button.act{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:10px 18px;font-weight:600;cursor:pointer;font-size:14px}
button.act:hover{filter:brightness(1.08)}
button.ghost{background:var(--panel2);color:var(--ink);border:1.5px solid var(--btnline);border-radius:7px;padding:10px 16px;cursor:pointer;font-size:14px}
button.ghost:hover{border-color:var(--accent)}
table{width:100%;border-collapse:collapse;margin-top:8px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}
th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
td.num,th.num{text-align:right;font-family:var(--mono)}
.result{background:var(--panel2);border-left:3px solid var(--accent2);border-radius:6px;padding:14px;margin-top:14px;font-family:var(--mono);font-size:14px;white-space:pre-wrap}
.hint{color:var(--muted);font-size:12px;margin-top:6px}
.member-row{display:flex;gap:8px;margin-bottom:8px;align-items:flex-end}
.member-row>div{flex:1}
.x{background:none;border:1.5px solid var(--btnline);color:var(--ink);border-radius:6px;width:34px;height:34px;cursor:pointer}
.x:hover{border-color:var(--accent);color:var(--accent)}
.filebar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px;align-items:center}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--accent2);color:#fff;padding:11px 20px;border-radius:8px;font-size:14px;opacity:0;transition:.3s;pointer-events:none;z-index:80}
.toast.show{opacity:1;pointer-events:auto}
/* file-кнопка: <label> с классом fakebtn выглядит и ведёт себя как button.ghost */
label.fakebtn{display:inline-flex;align-items:center;gap:8px;background:var(--panel2);color:var(--ink);border:1.5px solid var(--btnline);border-radius:7px;padding:10px 16px;cursor:pointer;font-size:14px;font-family:var(--sans);width:auto;text-transform:none;letter-spacing:0;margin:0}
label.fakebtn::before{content:"⬆";font-size:13px;opacity:.8}
label.fakebtn:hover{border-color:var(--accent);color:var(--accent)}
/* числовые поля без спиннеров — крупные цифры, стрелки не нужны */
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.backlink{display:inline-block;margin:18px 24px 0;color:var(--muted);text-decoration:none;font-size:13px}
.backlink:hover{color:var(--accent)}
