:root { --navy:#1F3864; --navy2:#2E5395; --orange:#ED7D31; --line:#d7dde8; --bg:#eef1f6; }
* { box-sizing: border-box; }
body { margin:0; font-family:'Segoe UI',Calibri,Arial,sans-serif; background:var(--bg); color:#1a1a1a; font-size:14px; }
.topbar { background:var(--navy); color:#fff; display:flex; justify-content:space-between; align-items:center; padding:10px 20px; }
.brand { font-size:18px; font-weight:700; }
.brand span { color:var(--orange); font-weight:600; }
.topbar nav a { color:#fff; text-decoration:none; margin-left:16px; font-size:13px; opacity:.9; }
.topbar nav a:hover { opacity:1; text-decoration:underline; }
.container { max-width:1040px; margin:18px auto; padding:0 16px; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px 18px; margin-bottom:16px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.card h3 { margin:0 0 12px; color:var(--navy); font-size:15px; border-bottom:2px solid var(--navy); padding-bottom:6px; }
.card h3 small { color:#888; font-weight:400; font-size:12px; }
label { display:block; font-size:12px; font-weight:600; color:#445; margin-bottom:4px; }
input, select, textarea { width:100%; padding:7px 9px; border:1px solid var(--line); border-radius:5px; font-size:13px; font-family:inherit; }
textarea { resize:vertical; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.rulebadge { margin-top:10px; background:#fff8e1; border-left:4px solid var(--orange); padding:8px 10px; font-size:12.5px; border-radius:4px; }
.acttable { width:100%; border-collapse:collapse; font-size:12.5px; }
.acttable th { background:var(--navy); color:#fff; padding:7px 8px; text-align:left; }
.acttable td { border:1px solid var(--line); padding:6px 8px; vertical-align:top; }
.acttable td.c { text-align:center; }
.acttable .hint { color:var(--navy2); font-size:11px; margin-top:2px; font-style:italic; }
.acttable input { padding:4px 6px; }
.actions { display:flex; align-items:center; gap:14px; margin:6px 0 16px; }
.btn { display:inline-block; background:#fff; border:1px solid var(--navy); color:var(--navy); padding:8px 14px; border-radius:6px; text-decoration:none; font-size:13px; cursor:pointer; font-weight:600; }
.btn:hover { background:#f0f3fa; }
.btn.primary { background:var(--navy); color:#fff; }
.btn.primary:hover { background:#172c4f; }
.btn.small { padding:4px 9px; font-size:12px; }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.result .ok, .ok { color:#1a7a34; font-weight:700; }
.result .warn, .warn { color:#b00; font-weight:700; }
#status { font-size:13px; color:#666; }
.hidden { display:none; }
.result a.btn { margin-right:8px; }

/* nav user chip */
.topbar nav .who { margin-left:18px; opacity:.85; font-size:12px; }
.topbar nav .who a { margin-left:4px; }

/* hero band */
.hero { background:linear-gradient(135deg, var(--navy) 0%, var(--navy2) 100%); color:#fff; padding:26px 20px; }
.hero h1 { max-width:1040px; margin:0 auto 6px; font-size:22px; }
.hero p { max-width:1040px; margin:0 auto; font-size:13.5px; opacity:.92; }
.hero small { display:block; max-width:1040px; margin:10px auto 0; font-size:12px; opacity:.8; }
.hero small b { color:var(--orange); }

/* login */
.loginbg { background:linear-gradient(135deg, var(--navy) 0%, var(--navy2) 100%); min-height:100vh; display:flex; align-items:center; justify-content:center; }
.loginbox { background:#fff; border-radius:12px; padding:30px 32px; width:360px; box-shadow:0 10px 40px rgba(0,0,0,.25); }
.brand.big { font-size:24px; margin-bottom:4px; }
.loginbox .tag { color:#667; font-size:12px; margin:0 0 18px; }
.loginbox label { margin-top:10px; }
.btn.wide { width:100%; margin-top:16px; text-align:center; }
.flash { background:#fdecea; border-left:4px solid #b00; color:#7a0000; padding:8px 10px; border-radius:4px; margin-bottom:12px; font-size:13px; }
.hint { color:#778; font-size:11.5px; }
code { background:#eef1f6; padding:1px 5px; border-radius:3px; font-size:12px; }

/* offers table page */
.container.wide { max-width:1320px; }
.endbar { background:var(--navy); text-align:center; padding:12px; margin-top:24px; }
.endbar a { color:#fff; text-decoration:none; font-weight:600; font-size:14px; }
.endbar a:hover { text-decoration:underline; }
.acttable.offers th, .acttable.offers td { font-size:11.5px; padding:5px 6px; vertical-align:top; }
.acts-cell { max-width:420px; }
.actchip { display:block; background:#f4f7fb; border:1px solid var(--line); border-radius:4px; padding:2px 6px; margin:2px 0; font-size:11px; }

/* scope points (interactive include/exclude) */
.point { display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid #eef1f6; }
.seg { display:inline-flex; flex:0 0 auto; border-radius:5px; overflow:hidden; border:1px solid var(--line); }
.seg button { border:none; background:#fff; padding:5px 10px; font-size:12px; cursor:pointer; font-weight:600; color:#667; }
.seg button + button { border-left:1px solid var(--line); }
.seg .seg-inc.on { background:#1a7a34; color:#fff; }
.seg .seg-exc.on { background:#b00020; color:#fff; }
.seg button.struck { text-decoration:line-through; text-decoration-color:#b00020; color:#b9909a; }
.point .ptext { flex:1; padding:5px 8px; font-size:12.5px; }
.point .rm { border:none; background:none; color:#b00020; font-size:16px; cursor:pointer; line-height:1; padding:0 6px; }
.point .rm:hover { color:#7a0000; }
