:root { --bg: #f5f1e8; --text: #1f1b16; --accent: #c46b2d; --card: #fffaf2; --border: #e3d8c5; } html[data-theme="dark"] { --bg: #1c1a17; --text: #f2e7d5; --accent: #e29a4f; --card: #26231e; --border: #3b342c; } html[data-theme="monokai"] { --bg: #272822; --text: #f8f8f2; --accent: #a6e22e; --card: #2e2f28; --border: #3d3e36; } html[data-theme="gruvbox-dark"] { --bg: #282828; --text: #ebdbb2; --accent: #d79921; --card: #32302f; --border: #504945; } * { box-sizing: border-box; } body { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; background: linear-gradient(135deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 85%, #000 15%) 100%); color: var(--text); } a { color: var(--accent); text-decoration: none; } .container { max-width: 1100px; margin: 0 auto; padding: 24px; } .app-header { position: sticky; top: 0; z-index: 20; background: rgba(245, 241, 232, 0.9); backdrop-filter: blur(6px); border-bottom: 1px solid #e3d8c5; } .header-content { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .brand { font-weight: 700; font-size: 20px; color: #3a2a1a; } .nav-links { display: flex; gap: 12px; flex-wrap: wrap; } .nav-links a { padding: 6px 10px; border-radius: 10px; border: 1px solid transparent; } .nav-links a.router-link-active { border-color: #c46b2d; background: #fffaf2; } .hero { display: grid; gap: 12px; } .grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .card { border: 1px solid var(--border); border-radius: 16px; padding: 16px; background: var(--card); box-shadow: 0 8px 20px rgba(60, 40, 20, 0.08); } .app-footer { margin-top: 40px; border-top: 1px solid #e3d8c5; padding: 16px 0; } button.card { cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease; } button.card:disabled { opacity: 0.6; cursor: not-allowed; } button.card:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(60, 40, 20, 0.12); } input, textarea, select { padding: 10px 12px; border-radius: 10px; border: 1px solid #d9c9b2; font: inherit; background: #fffaf2; } .modal-overlay { position: fixed; inset: 0; background: rgba(20, 15, 10, 0.45); display: flex; align-items: center; justify-content: center; z-index: 50; } .modal-card { background: #fffaf2; border-radius: 16px; padding: 20px; border: 1px solid #e3d8c5; max-width: 420px; width: 90%; } .modal-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }