:root {
    --tgb-bg: #0f0f0f;
    --tgb-surface: #151515;
    --tgb-surface-2: #181818;
    --tgb-surface-3: #101010;
    --tgb-border: #303030;
    --tgb-border-strong: #444;
    --tgb-text: #e0e0e0;
    --tgb-muted: #aaa;
    --tgb-accent: #36d95f;
    --tgb-accent-soft: #89f29f;
    --tgb-link: #9370DB;
    --tgb-link-hover: #00ffcc;
    --tgb-danger: #ff4444;
    --tgb-radius: 8px;
    --tgb-shadow: 0 0 24px rgba(0, 255, 120, 0.08);
    --tgb-font: 'Inter', Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html {
    min-height: 100%;
    overflow-x: hidden;
}
body {
    min-height: 100vh;
    margin: 0;
    background: var(--tgb-bg);
    color: var(--tgb-text);
    font-family: var(--tgb-font);
    overflow-x: hidden;
}

img, svg, video, canvas, iframe, embed, object { max-width: 100%; height: auto; }

h1, h2, h3 { color: #0f0; margin: 0 0 10px; line-height: 1.2; }
p { line-height: 1.45; }
a { color: var(--tgb-link); text-decoration: none; }
a:hover { color: var(--tgb-link-hover); text-decoration: underline; }
hr { border: 0; border-top: 1px solid var(--tgb-border-strong); }

.content-frame {
    position: relative;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-x: clip;
    background: var(--tgb-surface);
    border: 1px solid #333;
    border-radius: var(--tgb-radius);
    box-shadow: var(--tgb-shadow);
}
.content-frame::before {
    content: "";
    position: absolute;
    inset: 10px;
    display: block;
    border: 1px solid rgba(54, 217, 95, 0.22);
    border-radius: var(--tgb-radius);
    pointer-events: none;
}
.content-frame > * {
    position: relative;
    min-width: 0;
    max-width: 100%;
}

main,
.container,
.content-frame,
.platform-panel,
.acp-panel,
.admin-panel {
    min-width: 0;
}

button, input[type="submit"], .button {
    display: inline-block;
    width: auto;
    background: #222;
    color: #0f0;
    border: 1px solid #0f0;
    border-radius: 5px;
    padding: 8px 14px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
}
button:hover, input[type="submit"]:hover, .button:hover {
    background: #0f0;
    color: #000;
    text-decoration: none;
}
.button.secondary { border-color: var(--tgb-border-strong); color: var(--tgb-text); }

input, textarea, select {
    width: 100%;
    max-width: 100%;
    margin-bottom: 12px;
    padding: 8px;
    background: #1e1e1e;
    color: #0f0;
    border: 1px solid #333;
}
textarea { min-height: 96px; resize: vertical; }
label, fieldset, form {
    min-width: 0;
    max-width: 100%;
}

pre, code, kbd, samp {
    max-width: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.acp-form, .platform-form { display: grid; gap: 14px; }
.acp-form-grid, .settings-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px 12px;
    align-items: end;
}
.form-actions, .action-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}

.platform-grid, .settings-grid, .management-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.platform-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.platform-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.platform-panel {
    min-width: 0;
    padding: 14px;
    background: var(--tgb-surface-2);
    border: 1px solid var(--tgb-border);
}
.platform-panel > :first-child { margin-top: 0; }
.platform-panel > :last-child { margin-bottom: 0; }
.platform-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.platform-section-heading h1,
.platform-section-heading h2,
.platform-section-heading h3,
.platform-section-heading p { margin: 0; }

.acp-muted, .muted { display: block; color: var(--tgb-muted); font-size: .9rem; }
.status-badge, .acp-summary-pill {
    display: inline-block;
    border: 1px solid var(--tgb-border-strong);
    padding: 6px 9px;
    white-space: nowrap;
}
.status-badge.live, .status-badge.active, .status-badge.is-active {
    border-color: var(--tgb-accent);
    color: var(--tgb-accent-soft);
    box-shadow: 0 0 0 2px rgba(54, 217, 95, 0.28);
}
.status-badge.offline, .status-badge.inactive, .status-badge.unknown, .status-badge.is-inactive { color: var(--tgb-muted); }

.feedback, .error {
    margin: 0 0 12px;
    padding: 9px 11px;
    border: 1px solid #315d31;
    background: #132113;
    color: #8ef09f;
}
.error {
    border-color: #7b3333;
    background: #281616;
    color: #ff8f8f;
    font-weight: 700;
}

table { width: 100%; max-width: 100%; border-collapse: collapse; font-size: .92rem; table-layout: fixed; }
th, td {
    border: 1px solid var(--tgb-border-strong);
    padding: 7px 8px;
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}
th { background: #222; }
.table-frame { border: 1px solid var(--tgb-border); overflow-x: auto; }

.label-value, .platform-meta-grid > div, .label-value-grid > div {
    min-width: 0;
    border: 1px solid var(--tgb-border);
    background: var(--tgb-surface-3);
    padding: 9px;
}
.platform-meta-grid, .label-value-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}
.label-value span, .platform-meta-grid span, .label-value-grid dt {
    display: block;
    color: var(--tgb-muted);
    font-size: .78rem;
    margin-bottom: 4px;
}
.label-value strong, .platform-meta-grid strong, .label-value-grid dd {
    display: block;
    margin: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1100px) {
    .platform-grid-4, .platform-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .platform-grid, .settings-grid, .management-grid, .platform-grid-4, .platform-grid-3, .acp-form-grid {
        grid-template-columns: 1fr;
    }
    .platform-section-heading, .form-actions, .action-row {
        align-items: stretch;
        flex-direction: column;
    }
    .button, button, input[type="submit"] { width: 100%; text-align: center; }
}
