*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0d0d0d;--ink-soft: #1a1a1a;--ink-muted: #2a2a2a;--surface: #f5f2ee;--surface-alt:#ede9e3;--warm-white: #faf8f5;--accent: #c8a96e;--accent-deep:#a8893e;--accent-pale:#f0e8d6;--danger: #c0392b;--success: #27ae60;--text-primary: #1a1a1a;--text-secondary: #5a5a5a;--text-muted: #8a8a8a;--border: rgba(0,0,0,.1);--border-strong: rgba(0,0,0,.2);--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 12px 40px rgba(0,0,0,.14);--radius: 6px;--radius-lg: 12px;--transition: .22s cubic-bezier(.4,0,.2,1)}html{scroll-behavior:smooth}body{font-family:DM Sans,system-ui,sans-serif;background:var(--warm-white);color:var(--text-primary);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:"DM Serif Display",Georgia,serif;line-height:1.2;font-weight:400}a{color:inherit;text-decoration:none}button{font-family:DM Sans,sans-serif;cursor:pointer;border:none;outline:none}input,textarea,select{font-family:DM Sans,sans-serif;font-size:15px}img{max-width:100%;display:block}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-radius:var(--radius);font-size:14px;font-weight:500;letter-spacing:.02em;transition:all var(--transition);cursor:pointer}.btn-primary{background:var(--ink);color:var(--warm-white);border:1.5px solid var(--ink)}.btn-primary:hover{background:var(--ink-soft)}.btn-accent{background:var(--accent);color:var(--ink);border:1.5px solid var(--accent);font-weight:600}.btn-accent:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border-strong)}.btn-outline:hover{border-color:var(--ink);background:var(--surface)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;padding:8px 12px}.btn-ghost:hover{color:var(--text-primary);background:var(--surface)}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:20px}.form-label{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px}.form-input{width:100%;padding:11px 14px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--warm-white);color:var(--text-primary);transition:border-color var(--transition)}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c8a96e26}.form-input::placeholder{color:var(--text-muted)}.form-input.error{border-color:var(--danger)}.form-error{font-size:12px;color:var(--danger);margin-top:5px}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition),transform var(--transition)}.card:hover{box-shadow:var(--shadow-md)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.badge-gold{background:var(--accent-pale);color:var(--accent-deep)}.badge-success{background:#d4edda;color:#155724}.badge-danger{background:#f8d7da;color:#721c24}.badge-neutral{background:var(--surface);color:var(--text-secondary)}.alert{padding:12px 16px;border-radius:var(--radius);font-size:14px;margin-bottom:16px}.alert-error{background:#fdf2f2;border:1px solid #fecaca;color:var(--danger)}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:var(--success)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.divider{border:none;border-top:1px solid var(--border);margin:24px 0}.section-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{font-size:22px;margin-bottom:8px;color:var(--text-secondary)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:fadeUp .38s ease forwards}
