﻿* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Segoe UI, Arial, sans-serif;
    color: #172033;
    background: #eef2f6;
}
.topbar {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 28px;
    background: #ffffff;
    border-bottom: 1px solid #d7dee8;
}
.brand { font-size: 20px; font-weight: 700; }
.subtitle { color: #617083; font-size: 13px; margin-top: 3px; }
.page { max-width: 1180px; margin: 0 auto; padding: 28px; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tabs { display: grid; gap: 16px; }
.tab-list {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid #c8d2de;
    overflow-x: auto;
}
.tab-button {
    margin: 0;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    padding: 11px 16px;
    background: transparent;
    color: #405066;
    white-space: nowrap;
}
.tab-button.active {
    background: #ffffff;
    border-color: #c8d2de;
    color: #172033;
    box-shadow: 0 -2px 10px rgba(21, 30, 45, .04);
}
.tab-panel { display: none; }
.tab-panel.active { display: block; }
.panel, .login-panel {
    background: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 10px 24px rgba(21, 30, 45, .06);
}
h1, h2 { margin: 0 0 18px; font-size: 20px; }
label { display: block; margin: 12px 0 6px; font-weight: 600; font-size: 14px; }
input, textarea {
    width: 100%;
    border: 1px solid #b9c3cf;
    border-radius: 6px;
    padding: 10px 12px;
    font: inherit;
    background: #fff;
}
textarea { min-height: 76px; resize: vertical; }
.string-tools-grid input,
.string-tools-grid textarea {
    height: 64px;
    min-height: 64px;
}
.string-tools-grid textarea { resize: none; }
.readonly { background: #fff9d9; font-weight: 700; }
button {
    margin-top: 16px;
    border: 0;
    border-radius: 6px;
    padding: 10px 18px;
    background: #1f6feb;
    color: white;
    font-weight: 700;
    cursor: pointer;
}
button.secondary { background: #5b6675; margin: 0; }
.alert {
    margin-bottom: 16px;
    border: 1px solid #f0b3b3;
    background: #fff0f0;
    color: #8a1f1f;
    border-radius: 6px;
    padding: 10px 12px;
}
.alert.success { border-color: #b7dfc1; background: #effaf2; color: #1f6f3d; }
.qr { display: block; width: 180px; height: 180px; object-fit: contain; margin-top: 14px; border: 1px solid #d7dee8; }
.login-shell { min-height: calc(100vh - 128px); display: grid; place-items: center; }
.login-panel { width: min(420px, 100%); }
.captcha-row { display: grid; grid-template-columns: 160px 1fr; gap: 10px; align-items: center; }
.captcha-row img { width: 160px; height: 48px; border: 1px solid #b9c3cf; border-radius: 6px; }
@media (max-width: 820px) {
    .grid { grid-template-columns: 1fr; }
    .topbar { align-items: flex-start; flex-direction: column; }
}
