:root { font-family: "IBM Plex Sans", "Segoe UI", sans-serif; color: #1a1a1a; background: #f3f6f8; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; } #root { min-height: 100vh; } .app-shell { display: grid; grid-template-rows: auto auto 1fr; min-height: 100vh; } .topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 1rem; color: #f4f8ff; background: linear-gradient(90deg, #0b2a42 0%, #164863 100%); } .topbar__brand { font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; } .topbar__title { font-weight: 500; } .toolbar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; padding: 0.75rem 1rem; border-bottom: 1px solid #d7dde3; background: #ffffff; } .toolbar button { padding: 0.45rem 0.7rem; border-radius: 6px; border: 1px solid #164863; background: #ffffff; color: #164863; font: inherit; cursor: pointer; } .toolbar button:hover { background: #eaf2f8; } .toolbar__meta { margin-left: auto; color: #4a5b66; font-size: 0.9rem; } .workspace-grid { display: grid; grid-template-columns: 280px 1fr 320px; gap: 0.75rem; padding: 0.75rem; min-height: 0; } .panel, .canvas { border: 1px solid #d7dde3; border-radius: 10px; background: #ffffff; min-height: 0; } .panel { padding: 0.9rem; } .panel__title { margin: 0 0 0.5rem; font-size: 1rem; } .panel__body { margin: 0; color: #52626e; } .canvas { display: grid; place-items: center; background: radial-gradient(circle at 20% 20%, #eef5fb 0%, #ffffff 70%); } .canvas__placeholder { border: 1px dashed #91a6b7; border-radius: 8px; padding: 1.2rem 1.4rem; color: #355066; } @media (max-width: 1100px) { .workspace-grid { grid-template-columns: 1fr; grid-template-rows: auto minmax(260px, 1fr) auto; } .toolbar__meta { width: 100%; margin-left: 0; } }