* { box-sizing: border-box; } body { margin: 0; font-family: "IBM Plex Sans", "Segoe UI", sans-serif; background: linear-gradient(180deg, #eef4ff 0%, #f8fbff 100%); color: #1b2a41; } header { padding: 1.2rem 1.4rem; background: #0b3954; color: #f3f7fb; } h1 { margin: 0 0 0.4rem 0; font-size: 1.4rem; } main { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 0.8rem; padding: 0.8rem; } .panel { background: #ffffff; border: 1px solid #c6d6eb; border-radius: 10px; padding: 0.8rem; box-shadow: 0 2px 8px rgba(15, 35, 55, 0.06); } .panel-wide { grid-column: 1 / -1; } .panel-wide:nth-last-of-type(2) { order: 100; } .panel-wide:last-of-type { order: 101; } .panel h2 { margin-top: 0; font-size: 1rem; } label { display: block; margin: 0.4rem 0; font-size: 0.9rem; } input, select, button { width: 100%; margin-top: 0.25rem; border: 1px solid #9db3cf; border-radius: 6px; font-size: 0.9rem; } input, select { padding: 0.45rem; background: #fbfdff; } button { padding: 0.55rem; cursor: pointer; background: #1d6fa5; color: #ffffff; font-weight: 600; } button.warn { background: #af6d1d; } button.danger { background: #a12626; } .row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.45rem; margin-top: 0.5rem; } .hint { font-size: 0.8rem; color: #425b7a; } textarea[readonly] { width: 100%; min-height: 220px; max-height: 70vh; resize: both; overflow: auto; margin: 0; padding: 0.6rem; border: 1px solid #2f4b66; border-radius: 6px; background: #0f1720; color: #d9ecff; font-size: 0.8rem; font-family: "IBM Plex Mono", "Cascadia Code", monospace; white-space: pre; }