diff --git a/l4d2web/l4d2web/static/css/components.css b/l4d2web/l4d2web/static/css/components.css index 2c588ee..6b9971e 100644 --- a/l4d2web/l4d2web/static/css/components.css +++ b/l4d2web/l4d2web/static/css/components.css @@ -1014,10 +1014,11 @@ div.modal.modal-wide { .tab-bar [role="tab"] { background: transparent; border: 0; - padding: var(--space-xs) var(--space-m); + padding: var(--space-s) calc(var(--space-m) * 1.5); color: var(--color-muted); cursor: pointer; font: inherit; + font-size: 1.05em; border-bottom: 2px solid transparent; } .tab-bar [role="tab"][aria-selected="true"] { @@ -1028,7 +1029,7 @@ div.modal.modal-wide { margin-left: auto; background: transparent; border: 0; - padding: var(--space-xs) var(--space-s); + padding: var(--space-s) var(--space-m); color: var(--color-muted); cursor: pointer; } @@ -1042,6 +1043,24 @@ div.modal.modal-wide { .tab-pane[hidden] { display: none; } .tab-pane .log-stream { max-height: none; } /* let pane handle scrolling */ +/* Console tab pane — input pinned at bottom, transcript scrolls. */ +.tab-pane[data-tab="console"] { + display: flex; + flex-direction: column; + /* inherits max-height: 12rem from .tab-pane */ + overflow: hidden; /* clip here; transcript scrolls internally */ +} +.tab-pane[data-tab="console"] .console-transcript { + flex: 1 1 auto; + min-height: 0; /* allow flex item to shrink below content size */ + max-height: none; /* override the global 400px cap — parent caps the area */ + overflow: auto; + margin-bottom: var(--space-s); /* tighter gap inside fixed-height pane */ +} +.tab-pane[data-tab="console"] .console-input-form { + flex: 0 0 auto; /* never shrink the input row */ +} + /* ============================================================ RCON console panel — server detail page ============================================================ */ @@ -1140,3 +1159,19 @@ div.modal.modal-wide { .modal .console-transcript.tall { max-height: 60vh; } + +/* Console modal body — input pinned at bottom, transcript scrolls. */ +#console-modal .modal-body { + display: flex; + flex-direction: column; + max-height: 70vh; +} +#console-modal .modal-body .console-transcript { + flex: 1 1 auto; + min-height: 0; + max-height: none; /* override global 400px / .tall 60vh — modal-body caps it */ + overflow: auto; +} +#console-modal .modal-body .console-input-form { + flex: 0 0 auto; +}