:root { color-scheme: dark; font-family: Inter, Pretendard, "Noto Sans KR", system-ui, sans-serif; line-height: 1.5; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; color: #f4f7ff; background: radial-gradient(circle at 10% 10%, #163c63 0, #091423 38%, #060b13 100%); }
.login-page { display: grid; place-items: center; padding: 1rem; }
.login-card { width: min(28rem, 100%); padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid #284158; border-radius: 1.25rem; background: rgba(9, 20, 35, .94); box-shadow: 0 2rem 6rem rgba(0, 0, 0, .45); }
.eyebrow, .brand { color: #5eead4; font-size: .78rem; font-weight: 800; letter-spacing: .16em; }
h1 { margin: .25rem 0; font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.1; }
h2 { margin: .5rem 0; font-size: 1.15rem; }
.lead, .muted, .menu-card p { color: #a8b7c9; }
form { display: grid; gap: .6rem; margin-top: 2rem; }
label { margin-top: .35rem; font-weight: 700; }
input { width: 100%; min-height: 3rem; padding: .7rem .85rem; color: #fff; background: #0c1c2e; border: 1px solid #38516a; border-radius: .55rem; font: inherit; }
button { min-height: 3rem; margin-top: .8rem; padding: .65rem 1rem; color: #03151a; background: #5eead4; border: 0; border-radius: .55rem; font: inherit; font-weight: 800; cursor: pointer; }
button:disabled { cursor: wait; opacity: .65; }
button.secondary { min-height: 2.5rem; margin: 0; color: #e5edf8; background: transparent; border: 1px solid #496179; }
button:focus-visible, input:focus-visible, a:focus-visible, [tabindex="-1"]:focus { outline: .2rem solid #fbbf24; outline-offset: .18rem; }
.message { margin-top: 1.25rem; padding: .8rem 1rem; border-radius: .55rem; }
.error { color: #fecaca; background: #4c111b; border-inline-start: .3rem solid #fb7185; }
.status { min-height: 1.5rem; color: #a8b7c9; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 4vw, 3rem); border-bottom: 1px solid #26394b; background: rgba(6, 11, 19, .8); }
.topbar .muted { margin-left: .8rem; }
.dashboard { width: min(72rem, 100%); margin: auto; padding: clamp(2rem, 7vw, 6rem) 1rem; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.empty-menu { grid-column: 1 / -1; padding: 1rem; background: #fff; border-radius: .5rem; }
.menu-card { min-height: 14rem; padding: 1.5rem; color: inherit; text-decoration: none; border: 1px solid #2b4358; border-radius: .9rem; background: linear-gradient(145deg, rgba(20, 48, 74, .75), rgba(8, 18, 30, .9)); transition: transform .15s ease, border-color .15s ease; }
.menu-card:hover { transform: translateY(-.2rem); border-color: #5eead4; }
.card-number { color: #5eead4; font: 700 .75rem ui-monospace, monospace; }
@media (max-width: 48rem) { .cards { grid-template-columns: 1fr; } .menu-card { min-height: auto; } }
@media (prefers-reduced-motion: reduce) { .menu-card { transition: none; } }