/* Дополнения к прототипу: вход, пользователь, панель «Управление данными». Цвета — переменные прототипа. */
.user-chip { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.user-chip #user-name { font-size:11px; color:var(--sub); margin-right:4px; }
body:not([data-real-role="oze"]) .role-switcher,
body:not([data-real-role="oze"]) #admin-btn { display:none !important; }
.role-prefix { color:var(--sub); font-weight:400; }
.st-chip { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:4px; background:var(--amber2); color:var(--amber); font-size:9px; font-weight:700; vertical-align:middle; }
.upload-target { display:flex; gap:6px; margin-bottom:10px; }
.upload-target select { flex:1; min-width:0; }
.upload-target input { width:84px; }
.rep-list { display:flex; flex-direction:column; gap:4px; }
.rep-list a { font-size:10px; color:var(--blue); text-decoration:none; overflow-wrap:anywhere; }
.rep-list a:hover { text-decoration:underline; }

/* Экран входа */
.gw-overlay { position:fixed; inset:0; z-index:1000; background:var(--bg); display:flex; align-items:center; justify-content:center; padding:16px; }
.gw-login { width:100%; max-width:360px; background:var(--s1); border:1px solid var(--b1); border-radius:16px; padding:26px 24px; box-shadow:0 16px 40px rgba(0,0,0,.08); }
.gw-login h1 { font-size:18px; margin:12px 0 4px; }
.gw-login p { font-size:11px; color:var(--sub); margin:0 0 16px; line-height:1.5; }
.gw-field { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; font-size:11px; color:var(--sub); }
.gw-field input, .gw-field select, .gw-field textarea { font:13px 'Geologica',sans-serif; padding:8px 10px; border:1px solid var(--b1); border-radius:8px; background:var(--s1); color:var(--text); }
.gw-field textarea { min-height:70px; resize:vertical; }
.gw-btn { font:600 12px 'Geologica',sans-serif; padding:8px 14px; border-radius:8px; border:1px solid var(--b1); background:var(--s1); color:var(--text); cursor:pointer; }
.gw-btn:hover { border-color:var(--green); }
.gw-btn.primary { background:var(--green); border-color:var(--green); color:#fff; }
.gw-btn.danger { color:var(--red); border-color:var(--red2); }
.gw-btn:disabled { opacity:.5; cursor:default; }
.gw-err { color:var(--red); font-size:11px; min-height:16px; margin:6px 0; white-space:pre-line; }
.gw-ok { color:var(--green); font-size:11px; margin:6px 0; }

/* Панель «Управление данными» */
.gw-modal { position:fixed; inset:0; z-index:900; background:rgba(0,0,0,.35); display:flex; justify-content:center; align-items:flex-start; padding:24px 16px; overflow-y:auto; }
.gw-panel { width:100%; max-width:1100px; background:var(--bg); border:1px solid var(--b1); border-radius:16px; overflow:hidden; }
.gw-panel-hd { display:flex; align-items:center; gap:10px; padding:14px 18px; background:var(--s1); border-bottom:1px solid var(--b1); flex-wrap:wrap; }
.gw-panel-hd h2 { font-size:14px; margin:0; margin-right:auto; }
.gw-tabs { display:flex; gap:4px; flex-wrap:wrap; }
.gw-tab { font:600 11px 'Geologica',sans-serif; padding:6px 11px; border-radius:16px; border:1px solid var(--b1); background:var(--s1); color:var(--sub); cursor:pointer; }
.gw-tab.active { background:var(--green); color:#fff; border-color:var(--green); }
.gw-body { padding:16px 18px; }
.gw-table { width:100%; border-collapse:collapse; font-size:11px; }
.gw-table th { text-align:left; color:var(--sub); font-weight:600; padding:6px 8px; border-bottom:1px solid var(--b1); }
.gw-table td { padding:7px 8px; border-bottom:1px solid var(--b1); vertical-align:top; }
.gw-table-wrap { overflow-x:auto; }
.gw-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px 14px; }
.gw-section { background:var(--s1); border:1px solid var(--b1); border-radius:12px; padding:14px; margin-bottom:12px; }
.gw-section h3 { font-size:12px; margin:0 0 10px; text-transform:uppercase; letter-spacing:.04em; }
.gw-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.gw-checks { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:11px; }
.gw-checks label { display:flex; align-items:center; gap:5px; }
.gw-badge { display:inline-block; padding:2px 7px; border-radius:5px; font-size:10px; font-weight:700; }
.gw-badge.draft { background:var(--amber2); color:var(--amber); }
.gw-badge.review { background:var(--s2); color:var(--blue); }
.gw-badge.published { background:var(--green2); color:var(--green); }
.gw-badge.demo { background:var(--red2); color:var(--red); }
.gw-finding { border:1px solid var(--b1); border-radius:10px; padding:10px; margin-bottom:8px; font-size:11px; line-height:1.5; }
.gw-finding .q { color:var(--sub); font-style:italic; }
.gw-finding a { color:var(--blue); overflow-wrap:anywhere; }
.gw-muted { color:var(--sub); font-size:11px; }
.gw-pass { font-family:'JetBrains Mono',monospace; background:var(--green2); color:var(--green); padding:2px 6px; border-radius:4px; }
@media (max-width:760px) { .gw-modal { padding:0; } .gw-panel { border-radius:0; } }

/* Локальный режим: входа нет, поэтому пароль и выход не нужны */
body[data-local="1"] .user-chip button[onclick="openPassword()"],
body[data-local="1"] .user-chip button[onclick="logout()"] { display:none; }
