:root{ --bg: #0b1020; --fg: #e9eefb; --muted: #a7b0c3; --card: #121a2b; --accent: #6ae6c1; --accent-2: #7aa2ff; --danger: #ff6b6b; --border: #23314f; } *{ box-sizing: border-box; } body{ margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: radial-gradient(1200px 600px at 10% -10%, #15213f 0%, #0b1020 60%, #070a14 100%); color: var(--fg); } .wrap{ max-width: 1000px; margin: 0 auto; padding: 24px; } .muted{ color: var(--muted); } /* ---------- header ---------- */ .hero{ text-align: center; padding: 48px 24px 16px; background: radial-gradient(800px 260px at 50% 0%, rgba(122,162,255,0.2), transparent 60%), linear-gradient(180deg, rgba(13,20,40,0.6), transparent); border-bottom: 1px solid var(--border); } .hero h1{ margin: 0; font-size: 42px; letter-spacing: 0.5px; color: #ffffff; text-shadow: 0 6px 30px rgba(106,230,193,0.15); } /* ---------- image tiles ---------- */ .bg-gallery{ display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 10px; margin-bottom: 16px; } .bg-tile{ border-radius: 12px; min-height: 120px; background: #111 no-repeat center/cover; /* Set per-tile image in HTML with: style="--bg: url('...')" */ background-image: var(--bg); background-image: image-set(var(--bg)); box-shadow: inset 0 0 0 1px var(--border), 0 8px 24px rgba(0,0,0,0.25); position: relative; } .bg-tile::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.25)); border-radius:12px; } /* ---------- form layout ---------- */ .grid{ display: grid; grid-template-columns: repeat(2, minmax(260px, 1fr)); gap: 14px; margin-bottom: 10px; } .grid label{ display: grid; gap: 6px; font-weight: 600; color: #d9e3ff; } input, select{ padding: 10px 12px; background: #0e1627; color: #e9eefb; border: 1px solid var(--border); border-radius: 8px; outline: none; } input::placeholder{ color: #7d8bb0; } /* ---------- priorities (replaces weights) ---------- */ .prefs{ grid-column: 1 / -1; display: grid; gap: 10px; border: 1px solid var(--border); padding: 12px; border-radius: 10px; background: #0c1323; } .prefs legend{ padding: 0 8px; color: #cfd9ff; } .pref-row{ display: grid; grid-template-columns: 1fr 340px; gap: 12px; align-items: center; } /* (old .weights styles kept harmlessly; unused) */ fieldset.weights{ display:none; } /* ---------- buttons ---------- */ .btn{ display: inline-block; padding: 12px 18px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #07101f; border: 0; border-radius: 10px; font-weight: 700; cursor: pointer; box-shadow: 0 8px 24px rgba(122,162,255,0.25); } .btn:disabled{ opacity: 0.6; cursor: not-allowed; } .btn.ghost{ background: transparent; color: var(--fg); border: 1px solid var(--border); } .actions{ grid-column: 1 / -1; display: flex; gap: 10px; } /* ---------- results ---------- */ .tbl{ width: 100%; border-collapse: collapse; margin-top: 12px; } .tbl th, .tbl td{ border: 1px solid var(--border); padding: 10px; text-align: left; vertical-align: top; } .tbl th{ background: #0e182d; color: #cfe2ff; } .cards{ display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 12px 0; } .card{ border: 1px solid var(--border); border-radius: 12px; padding: 12px; background: var(--card); box-shadow: 0 8px 16px rgba(0,0,0,0.25); } .mono{ white-space: pre-wrap; word-break: break-word; background: #0b1326; border: 1px solid var(--border); padding: 10px; border-radius: 8px; color: #d7e6ff; } /* ---------- flash ---------- */ .flash p{ padding: 10px; background: #2b0f14; border: 1px solid #572131; border-radius: 8px; color: #ffd9df; }