*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #312e2b;--bg-dark: #262522;--surface: #262522;--surface-raised: #3c3a37;--surface-hover: #454341;--border: #43413e;--text: #ffffff;--text-muted: #c3c2c1;--text-faint: #989795;--accent: #81b64c;--accent-hover: #a0cc65;--accent-dark: #45753c;--accent-shadow: #45753c;--danger: #fa412d;--board-light: #ebecd0;--board-dark: #739552;--radius: 10px;--nav-height: 56px}html{height:100%}body{min-height:100%;background-color:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit}.page-background{background-color:var(--bg);min-height:calc(100dvh - var(--nav-height));display:flex;justify-content:center;align-items:center}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#fff;font-size:1rem;font-weight:700;border:none;border-radius:var(--radius);padding:14px 28px;cursor:pointer;box-shadow:0 4px 0 var(--accent-shadow);transition:background .15s ease,transform .1s ease,box-shadow .1s ease}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-shadow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--surface-raised);color:var(--text);font-size:1rem;font-weight:700;border:none;border-radius:var(--radius);padding:14px 28px;cursor:pointer;box-shadow:0 4px #0000004d;transition:background .15s ease,transform .1s ease,box-shadow .1s ease}.btn-secondary:hover{background:var(--surface-hover)}.btn-secondary:active{transform:translateY(3px);box-shadow:0 1px #0000004d}.text-input{width:100%;padding:12px 16px;border-radius:8px;font-size:1rem;background:var(--bg-dark);border:1px solid var(--border);color:var(--text);transition:border-color .15s ease}.text-input::placeholder{color:var(--text-faint)}.text-input:focus{outline:none;border-color:var(--accent)}
