/* Стилі сторінки адмінки. Витягнуто з <style> в Admin.html без змін. */
:root{
      --bg:#1b1e21;
      --panel:#24282c;
      --panel-2:#2c3135;
      --line:#383e43;
      --text:#eef1f3;
      --muted:#9aa3ab;
      --amber:#f2a900;
      --amber-dim:#7a5a10;
      --red:#d64545;
      --green:#4caf6d;
      --radius:10px;

      /* ── Єдина шкала адмінки (керує масштабом усіх вкладок з одного місця).
         Зменшено ~18% проти попередніх розмірів — адмінка була завелика. ── */
      --fs-base:13.5px;    /* базовий текст, лейбли */
      --fs-title:13px;     /* заголовок панелі */
      --fs-sub:12.5px;     /* підзаголовок панелі */
      --fs-input:14.5px;   /* поля вводу/селекти */
      --pad-input:9px 12px;
      --fs-btn:14px;       /* кнопки */
      --pad-btn:10px 20px;
      --fs-tab:12.5px;     /* вкладки-меню */
      --pad-tab:9px 16px;
      --fs-msg:14px;       /* повідомлення */
      --gap:12px;          /* відступ у грідах/полях */
      --panel-pad:18px;    /* внутрішній відступ панелі */
      --rm-size:34px;      /* кнопки-видалення (квадратні) */
      --rm-fs:15px;
    }
    *{box-sizing:border-box;}
    body{
      margin:0;
      background:var(--bg);
      color:var(--text);
      font-family:'Inter',sans-serif;
      -webkit-font-smoothing:antialiased;
      min-height:100vh;
    }
    .wrap{max-width:1220px;margin:0 auto;padding:28px 23px 64px;}

    header{display:flex;align-items:center;gap:22px;margin-bottom:22px;flex-wrap:wrap;}
    .text-logo{flex-shrink:0;}
    .text-logo img{height:26px;width:auto;display:block;}
    .header-text{flex:1;min-width:220px;}
    .eyebrow{
      font-family:'IBM Plex Mono',monospace;
      font-size:13px;letter-spacing:.18em;color:var(--amber);
      text-transform:uppercase;margin:0 0 5px;
    }
    h1{
      font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
      letter-spacing:.02em;font-size:clamp(19px,4vw,25px);margin:0 0 8px;
      border-bottom:3px solid var(--amber);padding-bottom:10px;
    }
    a.back-link{color:var(--muted);font-size:var(--fs-base);text-decoration:none;font-family:'IBM Plex Mono',monospace;}
    a.back-link:hover{color:var(--amber);}

    .panel{
      background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
      padding:var(--panel-pad);margin-bottom:16px;
    }
    .panel-title{
      font-family:'IBM Plex Mono',monospace;font-size:var(--fs-title);letter-spacing:.12em;
      text-transform:uppercase;color:var(--muted);margin:0 0 14px;
    }
    .panel-subtitle{
      font-family:'IBM Plex Mono',monospace;font-size:var(--fs-sub);letter-spacing:.1em;
      text-transform:uppercase;color:var(--amber);margin:18px 0 10px;
      border-top:1px dashed var(--line);padding-top:13px;
    }
    .panel-subtitle:first-of-type{border-top:none;padding-top:0;margin-top:0;}

    /* Стан замка технічних робіт: тут його лише видно, керує ним «Розділи». */
    .maint-state{
      margin:0 0 6px;padding:9px 12px;border-radius:8px;
      border:1px solid var(--line);background:rgba(255,255,255,.03);
      font-size:var(--fs-base);color:var(--muted);
    }
    .maint-state.on{
      border-color:var(--amber);color:var(--amber);
      background:rgba(240,180,60,.10);
    }

    label{
      display:block;font-size:var(--fs-base);color:var(--muted);text-transform:uppercase;
      letter-spacing:.06em;margin-bottom:5px;
    }
    input, select{
      width:100%;min-width:0;background:var(--bg);border:1px solid var(--line);
      border-radius:6px;padding:var(--pad-input);color:var(--text);
      font-family:'IBM Plex Mono',monospace;font-size:var(--fs-input);
      transition:border-color .15s, box-shadow .15s;
    }
    input::placeholder{color:#5a6167;}
    input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(242,169,0,.18);}

    .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--gap);margin-bottom:var(--gap);}
    .field{margin-bottom:var(--gap);}

    button{
      font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;
      letter-spacing:.05em;font-size:var(--fs-btn);background:var(--amber);color:#1b1e21;
      border:none;border-radius:6px;padding:var(--pad-btn);cursor:pointer;
      transition:transform .1s, background .15s;
    }
    button:hover{background:#ffbb1a;}
    button:active{transform:scale(.98);}
    button:disabled{background:var(--amber-dim);color:#c9c1ad;cursor:wait;}
    button.secondary{background:transparent;border:1px solid var(--line);color:var(--text);}
    button.secondary:hover{border-color:var(--amber);color:var(--amber);background:transparent;}
    button.danger-outline{background:transparent;border:1px solid var(--red);color:var(--red);}
    button.danger-outline:hover{background:rgba(214,69,69,.12);}

    .msg{font-size:var(--fs-msg);font-family:'IBM Plex Mono',monospace;margin-top:12px;display:none;}
    .msg.show{display:block;}
    .msg.ok{color:var(--green);}
    .msg.err{color:var(--red);}

    /* ---------- Логін ---------- */
    #loginView .panel{max-width:420px;margin:60px auto 0;}
    #loginView .actions{display:flex;align-items:center;gap:16px;margin-top:16px;}

    /* ---------- Таби ---------- */
    .tabs{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
    .tab-btn{
      background:transparent;border:1px solid var(--line);color:var(--muted);
      font-family:'IBM Plex Mono',monospace;font-weight:400;text-transform:uppercase;
      font-size:var(--fs-tab);letter-spacing:.08em;padding:var(--pad-tab);border-radius:6px;cursor:pointer;
    }
    .tab-btn.active{border-color:var(--amber);color:var(--amber);background:rgba(242,169,0,.08);}
    .tab-panel{display:none;}
    .tab-panel.active{display:block;}

    /* ---------- Історія ---------- */
    .table-wrap{
      background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
      overflow:hidden;
    }
    .table-scroll{overflow:auto;max-height:70vh;}
    table{width:100%;border-collapse:collapse;min-width:900px;}
    thead th{
      font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;
      letter-spacing:.04em;color:var(--muted);text-align:left;padding:8px 11px;
      border-bottom:1px solid var(--line);background:var(--panel-2);
      white-space:nowrap;position:sticky;top:0;
    }
    tbody td{
      font-family:'IBM Plex Mono',monospace;font-size:13px;padding:6px 11px;
      border-bottom:1px solid var(--line);white-space:nowrap;
    }
    tbody tr:last-child td{border-bottom:none;}
    tbody tr:hover td{background:rgba(255,255,255,.03);}
    .empty-state{padding:26px;text-align:center;color:var(--muted);font-size:var(--fs-base);}
    .history-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:12px;}

    /* ---------- Номенклатура Panda ---------- */
    .nomen-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;}
    .nomen-filters select, .nomen-filters input{padding:7px 10px;}
    .nomen-filters input{flex:1;min-width:200px;}
    .nomen-expandable{cursor:pointer;}
    .nomen-toggle{color:var(--muted);text-align:center;user-select:none;}
    .nomen-detail>td{background:rgba(255,255,255,.02);padding:14px 18px;}
    .nomen-detail-box{display:flex;flex-direction:column;gap:6px;}
    .nomen-detail-title{font-weight:600;margin-top:6px;}
    .nomen-chips{display:flex;flex-wrap:wrap;gap:6px;}
    .nomen-chip{background:rgba(255,255,255,.06);border-radius:6px;padding:3px 9px;font-size:12.5px;}
    .nomen-price-table{width:auto;min-width:340px;margin-top:4px;}
    .nomen-price-table th, .nomen-price-table td{padding:5px 12px;font-size:12.5px;}
    .nomen-price-table td:last-child, .nomen-price-table td:nth-child(3){white-space:nowrap;}
    .link-btn{background:none;border:none;color:var(--accent,#e0a800);cursor:pointer;padding:0;font-size:12.5px;text-decoration:underline;}
    .minutes-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;max-width:860px;}
    .minutes-form .mn-min{width:80px;}
    .minutes-form .mn-comment{flex:1 1 180px;max-width:320px;}
    .minutes-form select, .minutes-form input{padding:6px 9px;}
    .minutes-form .mn-msg{font-size:12.5px;}

    /* Каталог: вміщати в екран + дрібніший шрифт (не форсувати базовий min-width:900) */
    #nomenTable{min-width:0;}
    #nomenTable > thead th{font-size:11.5px;padding:7px 9px;white-space:normal;}
    .nomen-row td{font-size:12.5px;padding:6px 9px;white-space:normal;word-break:break-word;}
    .nomen-toggle{width:20px;padding-left:8px;padding-right:0;}
    /* Деталі (ціни/варіанти/хвилини) не розтягуються на ширину широкої таблиці */
    .nomen-detail-box{max-width:860px;}
    .minutes-history-box{padding:6px 4px;display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--muted);}

    /* ---------- Плани запуску ---------- */
    .plans-header-row, .plan-row{
      display:grid;
      grid-template-columns:150px repeat(10,minmax(44px,1fr)) 40px;
      gap:7px;
      align-items:center;
      margin-bottom:8px;
    }
    .plans-header-row{
      font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);
      text-transform:uppercase;text-align:center;
    }
    .plans-header-row span:first-child{text-align:left;}
    .plan-row input[type=text]{font-size:var(--fs-input);}
    .plan-row input[type=number]{text-align:center;padding:8px 4px;font-size:13.5px;}
    .plan-row .remove-row{
      background:transparent;border:1px solid var(--line);color:var(--muted);
      border-radius:6px;width:32px;height:32px;padding:0;font-family:inherit;font-size:14px;
    }
    .plan-row .remove-row:hover{border-color:var(--red);color:var(--red);background:transparent;}
    .plans-scroll{overflow-x:auto;padding-bottom:6px;}
    .plans-inner{min-width:760px;}
    .add-day-link{
      display:inline-flex;align-items:center;gap:7px;
      background:transparent;border:1px dashed var(--line);color:var(--text);
      border-radius:6px;padding:8px 15px;font-family:'IBM Plex Mono',monospace;
      font-size:var(--fs-base);cursor:pointer;
    }
    .add-day-link:hover{border-color:var(--amber);color:var(--amber);background:transparent;}
    .plans-hint{font-size:var(--fs-base);color:var(--muted);margin:0 0 16px;line-height:1.6;max-width:700px;}

    .toggle-row{
      display:flex;align-items:center;gap:9px;
      font-size:var(--fs-base);color:var(--text);text-transform:none;letter-spacing:0;
      margin-bottom:14px;cursor:pointer;
    }
    .toggle-row input[type=checkbox]{
      width:16px;height:16px;accent-color:var(--amber);cursor:pointer;
    }

    /* ---------- Команди ---------- */
    .team-row{
      background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
      padding:12px;margin-bottom:10px;
    }
    .team-row-main{
      display:grid;grid-template-columns:1fr 160px 40px;
      gap:12px;align-items:center;margin-bottom:10px;
    }
    .team-row .remove-row{
      background:transparent;border:1px solid var(--line);color:var(--muted);
      border-radius:6px;width:var(--rm-size);height:var(--rm-size);padding:0;font-family:inherit;font-size:var(--rm-fs);
    }
    .team-row .remove-row:hover{border-color:var(--red);color:var(--red);background:transparent;}
    .team-color-picker{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
    .team-color-label{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-right:4px;}
    .color-swatch{
      width:20px;height:20px;border-radius:50%;cursor:pointer;
      border:2px solid transparent;flex-shrink:0;transition:transform .1s;
    }
    .color-swatch:hover{transform:scale(1.15);}
    .color-swatch.selected{border-color:#fff;box-shadow:0 0 0 2px var(--amber);}

    /* Тип підрозділу: Виробництво / Офіс. Не косметика — від нього залежить
       видимість людей: «Офіс» не покривається галочкою «Глобально» в правах. */
    .center-kind-picker{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;}
    .center-kind{
      background:var(--panel-2, #22262b);color:var(--text);border:1px solid var(--line);
      border-radius:8px;padding:6px 10px;font:inherit;font-size:13.5px;cursor:pointer;
      width:auto;min-width:150px;flex:0 0 auto;
    }
    .center-kind:focus{outline:0;border-color:var(--amber);}
    .center-kind-hint{font-size:12px;color:var(--muted);opacity:.75;}

    .bonus-scheme-block{
      background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
      padding:14px;margin-bottom:14px;
    }
    .bonus-scheme-top{display:flex;gap:12px;align-items:center;margin-bottom:14px;}
    .bonus-scheme-top input.scheme-name{flex:1;}
    .bonus-scheme-top .remove-row{
      background:transparent;border:1px solid var(--line);color:var(--muted);
      border-radius:6px;width:var(--rm-size);height:var(--rm-size);padding:0;font-family:inherit;font-size:var(--rm-fs);flex-shrink:0;
    }
    .bonus-scheme-top .remove-row:hover{border-color:var(--red);color:var(--red);background:transparent;}
    .bonus-tier-row{display:grid;grid-template-columns:1fr 90px 1fr 90px 40px;gap:9px;align-items:center;margin-bottom:8px;}
    .bonus-tier-row .tier-label{font-size:var(--fs-base);color:var(--muted);white-space:nowrap;}
    .bonus-tier-row .remove-row{
      background:transparent;border:1px solid var(--line);color:var(--muted);
      border-radius:6px;width:30px;height:30px;padding:0;font-family:inherit;font-size:13px;
    }
    .bonus-tier-row .remove-row:hover{border-color:var(--red);color:var(--red);background:transparent;}
    .bonus-coef-row{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
    .bonus-coef-row label{margin:0;flex-shrink:0;}
    .bonus-coef-row input{max-width:120px;}

/* Ознака команди менеджерів. Раніше її не існувало: команду впізнавали за
   назвою "Адміністратори", і перейменування мовчки забирало права. */
.team-manager-row{display:flex;align-items:center;gap:12px;margin-top:8px;padding-left:2px;flex-wrap:wrap;}
.team-manager-hint{flex:0 0 100%;font-size:12px;color:var(--muted);opacity:.75;padding-left:24px;}
.team-manager-label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);cursor:pointer;}
.team-manager-label input{width:auto;margin:0;}
.team-order-count{font-size:12px;color:var(--muted);opacity:.7;}
.team-center-row{display:flex;align-items:center;gap:10px;margin-top:8px;padding-left:2px;flex-wrap:wrap;}
.team-center-label{font-size:12.5px;color:var(--muted);white-space:nowrap;}
.team-center{width:auto;min-width:220px;flex:0 0 auto;}
.center-row{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px;}
.center-row .remove-row{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;width:var(--rm-size);height:var(--rm-size);padding:0;font-family:inherit;font-size:var(--rm-fs);}
.center-row .remove-row:hover{border-color:var(--red);color:var(--red);background:transparent;}

/* Доступи PLAN — рідні компоненти адмінки (.team-row/button/select/input),
   тут лише розкладка рядка, без власних розмірів шрифтів. */
.pm-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.pm-name{font-weight:700;}
.pm-muted{color:var(--muted);}
.pm-id{color:var(--muted);}
.pm-id code{user-select:all;color:var(--text);}
.pm-assigned{color:var(--amber);}
.pm-when{color:var(--muted);}
.pm-head .remove-row{margin-left:auto;}
.pm-note{margin-top:12px;}
.pm-ctrl{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;}
.pm-ctrl select{width:auto;min-width:180px;flex:0 0 auto;}
