@font-face { font-family: 'MonoCraft'; src: url('/static/fonts/Monocraft.ttf'); } :root { font-family: 'MonoCraft', 'Courier New', monospace; font-smooth: never; -webkit-font-smoothing: none; -moz-osx-font-smoothing: grayscale; text-rendering: geometricPrecision; image-rendering: pixelated; --base-font-size: 13px; --account-frame-width: 1320px; --w98-blue: #000078; --w98-blue-soft: #0f80cd; --w98-gray: #c0c0c0; --w98-gray-dark: #808080; --w98-panel: #ffffff; --ok: #008000; --info: #000078; --warn: #8a6200; --danger: #800000; --shadow-heavy: 5px 6px 0 rgba(0, 0, 0, .5); } * { box-sizing: border-box; scrollbar-width: auto; scrollbar-color: #c0c0c0 #808080; image-rendering: pixelated; } html { min-height: 100%; font-size: var(--base-font-size); color: #ffffff; background: #000000; } html, body { margin: 0; padding: 0; } body.account-body { min-height: 100vh; overflow-y: auto; overflow-x: hidden; background-color: #000000; background-image: url('/static/img/bg/stars1.gif'); background-repeat: repeat; background-size: auto; font-family: 'MonoCraft', 'Courier New', monospace; } button, input, select, textarea { font-family: inherit; } button, a, .menu-button, .taskbar-button { cursor: pointer; } a { color: inherit; } input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="search"], textarea { cursor: text; } :focus-visible { outline: 2px dotted #000078; outline-offset: 2px; } ::-webkit-scrollbar { width: 17px; height: 17px; background: #c0c0c0; } ::-webkit-scrollbar-track { background: repeating-linear-gradient(45deg, #c0c0c0 0 2px, #b5b5b5 2px 4px); border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; } ::-webkit-scrollbar-thumb, ::-webkit-scrollbar-button:single-button { background: #c0c0c0; border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf; } ::-webkit-scrollbar-corner { background: #c0c0c0; border-top: 1px solid #808080; border-left: 1px solid #808080; } .app-shell { width: 100%; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 10px; padding: 10px 16px 34px; } .app-frame { width: min(var(--account-frame-width), 100%); display: grid; grid-template-rows: auto auto; gap: 10px; align-items: start; } .top-taskbar { position: sticky; top: 0; z-index: 50; width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 3px; color: #000000; background-color: var(--w98-gray); background-image: linear-gradient(180deg, rgba(255, 255, 255, .36), rgba(0, 0, 0, .08)), repeating-linear-gradient(45deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 5px); border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, 4px 4px 0 rgba(0, 0, 0, .45); transition: box-shadow 120ms steps(2, end), filter 120ms steps(2, end); } .top-taskbar.is-scrolled { filter: brightness(1.02); box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, 0 5px 0 rgba(0, 0, 0, .55), 0 11px 0 rgba(0, 0, 0, .18); } .top-taskbar.is-scrolled::after { content: ""; position: absolute; left: 0; right: 0; bottom: -10px; height: 10px; pointer-events: none; background: linear-gradient(to bottom, rgba(0, 0, 0, .46), rgba(0, 0, 0, 0)); } .start-button { min-width: 108px; height: 24px; display: inline-grid; grid-template-columns: 18px 1fr; align-items: center; gap: 5px; padding: 0 8px; color: #000000; background: var(--w98-gray); border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf; font-weight: bold; text-decoration: none; white-space: nowrap; } .start-logo, .win98-titlebar-icon { width: 16px; height: 16px; display: grid; place-items: center; flex: 0 0 auto; color: #ffffff; background: #000078; border: 1px solid #ffffff; box-shadow: inset -5px 0 0 #0f80cd, inset 0 -5px 0 #4c1ca0; font-size: 10px; line-height: 10px; } .taskbar-nav { min-width: 0; display: flex; align-items: center; gap: 4px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 1px; } .taskbar-button { height: 24px; min-width: 76px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 8px; color: #000000; background: var(--w98-gray); border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; text-decoration: none; white-space: nowrap; } .taskbar-button.is-active, .taskbar-button:hover { color: #ffffff; background: #000078; } .taskbar-button.is-active { border-top-color: #000000; border-left-color: #000000; border-right-color: #ffffff; border-bottom-color: #ffffff; } .taskbar-session { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 5px; white-space: nowrap; } .session-chip, .alert-chip, .dirty-chip { height: 24px; display: inline-flex; align-items: center; gap: 5px; padding: 0 8px; color: #000000; background: #dfdfdf; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; text-decoration: none; white-space: nowrap; } .alert-chip.is-ok { background: #e8ffe8; border-color: #008000 #ffffff #ffffff #008000; } .alert-chip.is-info { background: #d8e5f8; } .alert-chip.is-warning { background: #ffffcc; border: 3px solid transparent; border-image: repeating-linear-gradient(45deg, #111111 0 8px, #ffcc00 8px 16px) 3; } .alert-chip.is-danger { color: #ffffff; background: #800000; border: 3px solid transparent; border-image: repeating-linear-gradient(45deg, #ffcccc 0 8px, #300000 8px 16px) 3; } .dirty-chip { display: none; background: #ffffcc; } .dirty-chip.is-dirty { display: inline-flex; } .win98-window, .account-window { display: flex; flex-direction: column; min-height: 0; color: #000000; background-color: var(--w98-gray); background-image: linear-gradient(180deg, rgba(255, 255, 255, .34), rgba(0, 0, 0, .06)), repeating-linear-gradient(45deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 5px); border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #000000; border-bottom: 1px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, var(--shadow-heavy); } .account-window { width: 100%; overflow: visible; } .win98-titlebar { min-height: 22px; display: flex; align-items: center; justify-content: space-between; margin: 2px; padding: 2px 3px 2px 6px; color: #ffffff; background: linear-gradient(90deg, #000078 0%, #000078 30%, #0f80cd 66%, #85c7ff 100%); background-size: 160% 100%; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), inset 0 -1px 0 rgba(0, 0, 0, .35); user-select: none; animation: account-titlebar-drift 32s ease-in-out infinite alternate; } @keyframes account-titlebar-drift { from { background-position: 0% 50%; } to { background-position: 100% 50%; } } .win98-titlebar-label { min-width: 0; display: flex; align-items: center; gap: 5px; } .win98-titlebar h1, .win98-titlebar h2 { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 14px; font-weight: bold; } .titlebar-actions, .win98-window-controls { display: flex; flex: 0 0 auto; align-items: center; gap: 2px; margin-left: 8px; } .win98-control { width: 16px; height: 14px; display: grid; place-items: center; padding: 0; color: #000000; background: var(--w98-gray); border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #000000; border-bottom: 1px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf; font-size: 12px; line-height: 12px; } .win98-button, .titlebar-link-button, .tiny-button { min-width: 84px; height: 26px; display: inline-grid; place-items: center; margin: 0; padding: 0 10px; color: #000000; background: var(--w98-gray); border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf; font-size: 13px; line-height: 13px; text-align: center; text-decoration: none; appearance: none; } .titlebar-link-button, .tiny-button { min-width: 56px; height: 22px; padding: 0 7px; border-width: 1px; font-size: 12px; line-height: 12px; } .win98-button:disabled, .win98-button[aria-disabled="true"], button:disabled, button[aria-disabled="true"], input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; } .win98-button:disabled, .win98-button[aria-disabled="true"] { color: #808080; text-shadow: 1px 1px 0 #ffffff; } .win98-button:active:not(:disabled):not([aria-disabled="true"]), .win98-control:active, .menu-button[aria-expanded="true"], .start-button:active, .taskbar-button:active, .tiny-button:active:not(:disabled) { border-top-color: #000000; border-left-color: #000000; border-right-color: #ffffff; border-bottom-color: #ffffff; box-shadow: inset -1px -1px 0 #dfdfdf, inset 1px 1px 0 #808080; padding-top: 1px; } .menu-bar { position: relative; z-index: 20; min-height: 24px; display: flex; align-items: center; gap: 2px; padding: 1px 6px; font-size: 13px; line-height: 13px; } .menu-item { position: relative; } .menu-popup form { margin: 0; } .menu-button { height: 20px; min-width: 54px; padding: 0 8px; color: #000000; background: transparent; border: 1px solid transparent; font-size: 13px; text-align: left; } .menu-button:hover, .menu-button:focus-visible { border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; outline: none; } .menu-popup { position: absolute; top: 22px; left: 0; z-index: 60; min-width: 220px; display: none; padding: 2px; background: var(--w98-gray); border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: 3px 3px 0 rgba(0, 0, 0, .35); } .menu-item.is-open .menu-popup { display: block; } .menu-action { width: 100%; min-height: 22px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 2px 6px; color: #000000; background: transparent; border: 0; font-size: 12px; text-align: left; text-decoration: none; } .menu-action:hover, .menu-action:focus-visible { color: #ffffff; background: #000078; outline: none; } .menu-separator { height: 1px; margin: 3px 2px; background: #808080; border-bottom: 1px solid #ffffff; } .shortcut { color: #555555; } .menu-action:hover .shortcut { color: #ffffff; } .account-body-content, .section-body { display: grid; gap: 12px; padding: 10px; } .dashboard-hero { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 10px; align-items: stretch; padding: 9px; } .hero-copy h2 { margin: 0 0 5px; font-size: 22px; line-height: 24px; } .hero-copy p { margin: 0; color: #333333; font-size: 13px; line-height: 15px; } .hero-status { display: grid; align-content: center; gap: 4px; padding: 7px; color: #000000; background: #ffffff; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; font-size: 12px; line-height: 13px; } .hero-status-row { display: flex; justify-content: space-between; gap: 8px; } .status-ok { color: #008000; } .status-warn { color: #8a6200; } .status-danger { color: #800000; } .main-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; } .span-2 { grid-column: 1 / -1; } .section-window { min-height: 0; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, 3px 4px 0 rgba(0, 0, 0, .38); } .section-window .section-body { margin: 0 6px 6px; padding: 8px; } .raised-panel, .sunken-panel, .win98-panel { color: #000000; } .raised-panel { background: #dfdfdf; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; box-shadow: inset 1px 1px 0 #f7f7f7, inset -1px -1px 0 #b0b0b0; } .sunken-panel, .win98-panel { background-color: #ffffff; background-image: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(238, 238, 238, .58)), repeating-linear-gradient(0deg, rgba(0, 0, 0, .025) 0 1px, transparent 1px 6px); border-top: 2px solid #606060; border-left: 2px solid #606060; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; } .stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } .stat-card { position: relative; min-height: 122px; padding: 10px 11px 10px 14px; overflow: hidden; } .stat-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 7px; border-left: 7px solid #000078; pointer-events: none; } .stat-card.is-ok { background: linear-gradient(180deg, #eeffee, #ffffff); } .stat-card.is-ok::before { border-left-color: #008000; } .stat-card.is-info { background: linear-gradient(180deg, #edf4ff, #ffffff); } .stat-card.is-info::before { border-left-color: #000078; } .stat-card.is-warning { background: linear-gradient(180deg, #ffffcc, #ffffff); } .stat-card.is-warning::before { border-left-color: #ffcc00; } .stat-card.is-danger { color: #000000; background: repeating-linear-gradient(45deg, #fff2f2 0 6px, #ffe1e1 6px 12px); } .stat-card.is-danger::before { border-left-color: #800000; } .stat-label { margin: 0 0 6px; color: #333333; font-size: 13px; line-height: 13px; font-weight: bold; } .stat-value { margin: 0 0 7px; font-size: 32px; line-height: 32px; font-weight: bold; } .stat-note { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; color: #222222; font-size: 12px; line-height: 14px; } .stat-note-pill, .badge, .pill, .tag { display: inline-flex; align-items: center; min-height: 18px; padding: 1px 6px; color: #000000; background: #dfdfdf; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; white-space: nowrap; } .badge.is-ok, .pill.is-ok, .tag.ok { color: #008000; background: #eeffee; } .badge.is-info, .pill.is-info, .tag.info { color: #000078; background: #edf4ff; } .badge.is-warning, .pill.is-warning, .tag.warn { color: #8a6200; background: #ffffcc; } .badge.is-danger, .pill.is-danger, .tag.danger { color: #ffffff; background: #800000; } .account-table { width: 100%; min-width: 760px; border-collapse: collapse; color: #000000; background: #ffffff; font-size: 12px; line-height: 14px; } .account-table th, .account-table td { padding: 6px 7px; border-bottom: 1px solid #dfdfdf; text-align: left; vertical-align: middle; } .account-table th { position: sticky; top: 0; z-index: 5; background: #dfdfdf; border-bottom: 1px solid #808080; } .account-table tr:nth-child(even) td { background: #f5f8ff; } .settings-layout { display: grid; grid-template-rows: auto auto minmax(0, 1fr) 42px; gap: 8px; min-height: min(900px, calc(100vh - 96px)); } .settings-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 34px; padding: 6px; } .settings-import { display: grid; gap: 8px; padding: 8px; } .settings-import[hidden] { display: none; } .settings-scroll { min-height: 0; overflow: auto; } .settings-group { display: grid; grid-template-rows: 44px minmax(0, auto); margin: 0 0 8px; } .settings-group-header { min-height: 44px; display: grid; align-content: center; gap: 2px; padding: 5px 8px; background: #dfdfdf; border-bottom: 1px solid #808080; } .settings-group-header h2 { margin: 0; font-size: 14px; line-height: 15px; } .settings-group-header p { margin: 0; color: #333333; font-size: 12px; line-height: 13px; } .settings-table { min-width: 980px; } .settings-table td:nth-child(1) { width: 210px; } .settings-table td:nth-child(2) { width: 300px; } .settings-table td:nth-child(3) { width: 230px; } .setting-key { display: block; color: #555555; font-size: 11px; line-height: 13px; overflow-wrap: anywhere; } .setting-description { margin: 0; color: #333333; font-size: 12px; line-height: 14px; } .setting-source { display: grid; gap: 3px; font-size: 12px; line-height: 13px; } .setting-env { color: #555555; overflow-wrap: anywhere; } .settings-actions { min-height: 42px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 6px; } .settings-actions form { margin: 0; } .alerts-layout { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; min-height: min(920px, calc(100vh - 96px)); } .alerts-filterbar { display: grid; grid-template-columns: minmax(180px, 1fr) repeat(4, minmax(130px, auto)) auto; align-items: end; gap: 8px; padding: 8px; } .alerts-workspace { min-height: 0; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr); gap: 10px; } .alerts-table-scroll { height: 520px; } .alerts-table { min-width: 980px; } .alerts-table tr.is-selected td { background: #ffffcc; } .alerts-detail { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; padding: 8px; } .alerts-detail h2, .alerts-detail p { margin: 0; } .metadata-pre { min-height: 260px; margin: 0; padding: 10px; overflow: auto; color: #b7ffc8; background: #030403; background-image: repeating-linear-gradient(transparent 0 4px, rgba(0, 255, 102, .018) 4px 6px); font-family: 'MonoCraft', 'Courier New', monospace; font-size: 12px; line-height: 16px; white-space: pre-wrap; } .bulk-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; padding: 8px; } .boxes-layout { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 10px; min-height: min(920px, calc(100vh - 96px)); } .boxes-filterbar { display: grid; grid-template-columns: minmax(180px, 1fr) repeat(4, minmax(120px, auto)) auto; align-items: end; gap: 8px; padding: 8px; } .boxes-table-scroll { height: 540px; overflow-x: auto; } .boxes-table { min-width: 1180px; } .pagination-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; padding: 8px; } .scroll-panel { overflow: auto; color: #000000; background: #ffffff; border-top: 2px solid #606060; border-left: 2px solid #606060; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; } .scroll-panel.is-fixed, .fixed-height-scroller { height: 352px; } .alerts-scroll, .boxes-scroll { height: 352px; } .activity-scroll { height: 326px; } .alert-list, .activity-list { display: grid; min-width: 0; } .alert-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 8px; align-items: start; min-height: 74px; padding: 7px; color: #000000; background: #ffffff; border-bottom: 1px solid #dfdfdf; } .alert-row:nth-child(even), .activity-row:nth-child(even) { background: #f5f8ff; } .alert-title, .activity-title { margin: 0 0 3px; font-size: 14px; line-height: 15px; font-weight: bold; } .alert-desc, .activity-meta { margin: 0; color: #333333; font-size: 12px; line-height: 14px; } .alert-actions, .box-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; } .activity-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 9px; align-items: center; min-height: 48px; padding: 6px 8px; color: #000000; background: #ffffff; border-bottom: 1px solid #dfdfdf; } .activity-time { color: #000078; font-weight: bold; } .account-form { display: grid; gap: 10px; } .account-form.sunken-panel, .account-form.raised-panel { padding: 10px; } .account-form-row { display: grid; gap: 4px; } .account-form-row input, .account-form-row textarea, .account-form-row select, .account-control { width: 100%; min-height: 24px; color: #000000; background: #ffffff; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; font-family: inherit; } .account-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; } .account-checks label { display: flex; align-items: center; gap: 6px; } .account-error { margin: 0; padding: 8px; color: #000000; background: #ffdede; border: 1px solid #800000; } .win98-statusbar { min-height: 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px; padding: 0 4px 4px; font-size: 12px; line-height: 12px; } .win98-statusbar span { min-width: 0; display: flex; align-items: center; overflow: hidden; padding: 0 5px; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; text-overflow: ellipsis; white-space: nowrap; } .modal-backdrop { position: fixed; inset: 0; z-index: 70; display: none; background: rgba(128, 128, 128, .42); } .modal-backdrop.is-visible { display: block; } .popup-window, .account-modal { position: fixed; left: 50%; top: 50%; z-index: 80; width: min(760px, calc(100vw - 24px)); max-height: min(760px, calc(100vh - 24px)); display: none; transform: translate(-50%, -50%); } .popup-window.is-visible, .account-modal.is-visible { display: flex; animation: popup-open 160ms steps(5, end); } @keyframes popup-open { from { transform: translate(-50%, -48%) scale(.97); opacity: .45; } to { transform: translate(-50%, -50%) scale(1); opacity: 1; } } .popup-body, .modal-body { max-height: calc(100vh - 90px); overflow: auto; margin: 0 6px 6px; padding: 10px; color: #000000; } .modal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 10px; } .toast { position: fixed; right: 12px; bottom: 24px; z-index: 90; max-width: min(400px, calc(100vw - 24px)); display: none; padding: 8px 10px; color: #000000; background: #ffffcc; border: 4px solid transparent; border-image: repeating-linear-gradient(45deg, #111111 0 8px, #ffcc00 8px 16px) 4; box-shadow: 4px 4px 0 rgba(0, 0, 0, .45), inset 1px 1px 0 #fff7a8, inset -1px -1px 0 #a08000; font-size: 12px; line-height: 14px; } .toast.is-visible { display: block; animation: toast-in 160ms steps(3, end); } .toast.toast-info { background: #d8e5f8; border-image: none; border-color: #000078; } .toast.toast-success { background: #e8ffe8; border-image: none; border-color: #008000; } .toast.toast-error { color: #ffffff; background: #800000; border-image: none; border-color: #300000; } @keyframes toast-in { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @media (max-width: 1180px) { .top-taskbar { grid-template-columns: auto minmax(0, 1fr); } .taskbar-session { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; } .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-hero, .main-grid, .alerts-workspace { grid-template-columns: 1fr; } .alerts-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .boxes-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .span-2 { grid-column: auto; } } @media (max-width: 760px) { :root { --base-font-size: 13px; } .app-shell { align-items: stretch; padding: 0 0 18px; } .app-frame { width: 100%; gap: 8px; } .top-taskbar { grid-template-columns: 1fr; border-left: 0; border-right: 0; box-shadow: none; } .top-taskbar.is-scrolled { box-shadow: 0 4px 0 rgba(0, 0, 0, .55), 0 10px 0 rgba(0, 0, 0, .18); } .start-button { width: 100%; justify-content: center; } .taskbar-nav, .taskbar-session { width: 100%; overflow-x: auto; padding-bottom: 3px; } .taskbar-button { min-width: 92px; } .session-chip, .alert-chip, .dirty-chip { flex: 0 0 auto; } .account-window { min-height: 100dvh; border-left: 0; border-right: 0; box-shadow: none; } .account-body-content, .section-body { gap: 8px; padding: 6px; } .menu-bar { overflow-x: auto; padding-bottom: 2px; } .menu-popup { position: fixed; left: 6px; right: 6px; top: 74px; min-width: 0; } .stats-grid { grid-template-columns: 1fr; } .stat-card { min-height: 112px; } .scroll-panel.is-fixed, .fixed-height-scroller { height: 320px; } .alerts-scroll, .boxes-scroll, .activity-scroll { height: 320px; } .boxes-scroll { overflow-x: auto; } .alert-row { grid-template-columns: 1fr; min-height: 0; } .alert-actions { justify-content: flex-start; } .activity-row { grid-template-columns: 58px minmax(0, 1fr); } .alerts-filterbar { grid-template-columns: 1fr; } .alerts-table-scroll { height: 420px; } .boxes-filterbar { grid-template-columns: 1fr; } .boxes-table-scroll { height: 420px; } .win98-window-controls { display: none; } .win98-titlebar h1, .win98-titlebar h2 { font-size: 13px; } .win98-statusbar { grid-template-columns: 1fr; } .popup-window, .account-modal { left: 0; top: 0; width: 100vw; height: 100dvh; max-height: none; border: 0; box-shadow: none; transform: none; } .popup-window.is-visible, .account-modal.is-visible { animation: popup-open-mobile 150ms steps(5, end); } @keyframes popup-open-mobile { from { transform: translateY(10px); opacity: .35; } to { transform: translateY(0); opacity: 1; } } .popup-body, .modal-body { max-height: calc(100dvh - 40px); } .toast { right: 8px; bottom: 12px; } }