.Login{min-height:100%;display:grid;place-items:center;padding:var(--space-lg);background:radial-gradient(circle at 20% 10%,var(--sage-pale) 0%,transparent 40%),radial-gradient(circle at 80% 90%,var(--cream-deep) 0%,transparent 50%),var(--cream)}.Login__card{width:100%;max-width:380px;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);box-shadow:var(--shadow-md)}.Login__title{font-family:var(--font-display);font-size:40px;font-weight:500;letter-spacing:-.01em;margin:0 0 var(--space-xs);color:var(--moss-deep)}.Login__subtitle{font-family:var(--font-hand);font-size:22px;color:var(--ink-muted);margin:0 0 var(--space-lg)}.Login__form{display:flex;flex-direction:column;gap:var(--space-md)}.Login__field{display:flex;flex-direction:column;gap:var(--space-xs)}.Login__label{font-size:13px;font-weight:500;color:var(--ink-soft);letter-spacing:.02em;text-transform:uppercase}.Login__field input{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;font-size:16px;color:var(--ink);transition:border-color .12s ease,background .12s ease}.Login__field input:focus{outline:none;border-color:var(--moss-light);background:var(--paper)}.Login__field input:disabled{opacity:.6;cursor:not-allowed}.Login__submit{background:var(--moss);color:var(--paper);border:none;border-radius:var(--radius-md);padding:12px 16px;font-weight:500;font-size:15px;letter-spacing:.02em;transition:background .12s ease,transform 80ms ease}.Login__submit:hover:not(:disabled){background:var(--moss-deep)}.Login__submit:active:not(:disabled){transform:translateY(1px)}.Login__submit:disabled{opacity:.6;cursor:not-allowed}.Login__banner{border-radius:var(--radius-md);padding:12px 14px;font-size:14px;line-height:1.5}.Login__banner code{font-family:var(--font-mono);font-size:12.5px;background:#0000000d;padding:1px 5px;border-radius:var(--radius-sm)}.Login__banner--ok{background:var(--sage-pale);color:var(--moss-deep);border:1px solid var(--sage)}.Login__banner--warn{background:#d4a64a26;color:var(--bark);border:1px solid rgba(212,166,74,.4);margin-bottom:var(--space-md)}.Login__banner--err{background:#b66b481f;color:var(--terracotta);border:1px solid rgba(182,107,72,.35)}.Home{min-height:100%;display:grid;place-items:center;padding:var(--space-lg);background:var(--cream)}.Home__card{width:100%;max-width:480px;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);box-shadow:var(--shadow-md);text-align:center}.Home__title{font-family:var(--font-display);font-size:28px;font-weight:500;color:var(--moss-deep);margin-bottom:var(--space-sm);word-break:break-word}.Home__hint{font-family:var(--font-hand);font-size:20px;color:var(--ink-muted);margin:0 0 var(--space-lg)}.Home__logout{background:transparent;color:var(--moss);border:1px solid var(--moss-light);border-radius:var(--radius-md);padding:10px 18px;font-size:14px;font-weight:500;transition:background .12s ease,color .12s ease}.Home__logout:hover:not(:disabled){background:var(--moss);color:var(--paper)}.Home__logout:disabled{opacity:.6;cursor:not-allowed}:root{--cream: #f4efe6;--cream-deep: #ebe3d4;--paper: #faf6ef;--ink: #1f2a22;--ink-soft: #3a4a3f;--ink-muted: #6b7a6f;--ink-faint: #98a39b;--moss: #4a5d3f;--moss-deep: #2f3d28;--moss-light: #7a8c6e;--sage: #b5c2a3;--sage-pale: #dde3d2;--terracotta: #b66b48;--terracotta-soft: #d49377;--clay: #c89070;--soil: #5d4a3a;--bark: #3d3026;--rose-faded: #c89098;--sky-faded: #a8b8c4;--honey: #d4a64a;--line: #d4cab8;--line-soft: #e3dccb;--shadow-sm: 0 1px 2px rgba(47, 61, 40, .08);--shadow-md: 0 4px 12px rgba(47, 61, 40, .1);--shadow-lg: 0 12px 32px rgba(47, 61, 40, .14);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-hand: "Caveat", cursive}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-weight:400;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;color:var(--ink);margin:0}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}a{color:var(--moss)}
