html, body { height: 100%; margin: 0; }

body { user-select: none; }

body, .mud-typography { font-family: Inter, Roboto, system-ui, sans-serif; }

.mud-typography-h5, .mud-typography-h6 { font-weight: 600; }

input, textarea, [contenteditable="true"], [role="textbox"] { user-select: text; }

.text-secondary { color: var(--mud-palette-text-secondary) !important; }

.center-screen {display: flex; min-height: 100vh; align-items: center; justify-content: center; }

.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

.row-disabled { opacity: 0.5; }

.diff { max-height: 560px; overflow: auto; font: 12.5px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
.diff-line { display: flex; padding: 0 8px; }
.diff-line.added { background: rgba(76, 175, 80, 0.14); }
.diff-line.removed { background: rgba(244, 67, 54, 0.14); }
.diff-num { width: 44px; padding-right: 8px; text-align: right; color: var(--mud-palette-text-disabled); }
.diff-mark { width: 16px; color: var(--mud-palette-text-secondary); }
.diff-text { flex-grow: 1; white-space: pre; }
.diff-gap { padding: 4px 16px; color: var(--mud-palette-text-disabled); background: var(--mud-palette-action-default-hover); }

.term-frame { display: flex; flex-direction: column; height: calc(100vh - 120px); min-height: 600px; }
.term-full { display: flex; flex-direction: column; position: fixed; inset: 0; z-index: 9999; padding: 12px; background: #0d1117; box-sizing: border-box; }
.term-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; margin-bottom: 12px; }
.term-bar.full { background: #161b22; border-color: rgba(255, 255, 255, 0.12); }
.term-chip { font-size: 12px; height: 24px; }
.term-bar.full .term-chip { background: rgba(255, 255, 255, 0.05); }
.term-exit { text-transform: none; color: #c9d1d9 !important; border-color: rgba(255, 255, 255, 0.2) !important; }
.term-exit:hover { border-color: #fff !important; }
.term-body { flex: 1; position: relative; display: flex; flex-direction: column; background: #0d1117; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; overflow: hidden; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); }
.term-body iframe { flex: 1; width: 100%; height: 100%; border: none; display: block; background: #0d1117; }
.term-loading { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #0d1117; }

.drop-zone { position: relative; min-height: 320px; border-radius: 4px; border: 1px solid var(--mud-palette-divider); background: var(--mud-palette-surface); transition: all 0.2s ease-in-out; }
.drop-zone.dragging { border: 2px dashed var(--mud-palette-primary); background: var(--mud-palette-action-default-hover); }
.drop-overlay { display: none; position: absolute; inset: 0; z-index: 10; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; background: rgba(0, 105, 92, 0.1); backdrop-filter: blur(2px); }
.mud-theme-dark .drop-overlay, .drop-zone.dark .drop-overlay { background: rgba(77, 182, 172, 0.15); }
.drop-zone.dragging .drop-overlay { display: flex; }

.ssl-drop { position: relative; text-align: center; border-style: dashed !important; border-width: 2px !important; }
.ssl-drop.dragging { border-color: var(--mud-palette-primary) !important; background: var(--mud-palette-action-default-hover); }
