:root{--yale:#00356b;--yale-mid:#28649b;--yale-soft:#e8eff7;--ink:#172b40;--muted:#647181;--line:#dfe5eb;--bg:#f8f9fb;--surface:#fff;--yes:#14654e;--yes-soft:#eaf5ef;--no:#8c434b;--no-soft:#f9edef;--warn:#815c18;--radius:14px;--radius-sm:8px;--sans:Inter,"Segoe UI",Arial,sans-serif;--display:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink);background:var(--bg)}
a{color:var(--yale);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}img,svg,canvas{max-width:100%}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}
:focus-visible{outline:3px solid #6399ce;outline-offset:4px}[hidden]{display:none!important}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus{position:fixed;z-index:100;background:white;padding:12px}
.topbar{min-height:82px;padding:16px max(24px,calc((100vw - 1240px)/2));background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:10px;font-size:28px;font-weight:750;letter-spacing:-1.3px;line-height:1;color:var(--yale)}.brand:hover{text-decoration:none}.brand-mark{display:inline-grid;place-items:center;flex-shrink:0;width:34px;height:39px;background:var(--yale);color:white;font:bold 27px var(--display);border-radius:4px 4px 12px 12px}.brand-caption{max-width:75px;padding-left:10px;margin-left:2px;border-left:1px solid var(--line);font-size:8px;letter-spacing:1.5px;line-height:1.6;color:var(--muted)}
.nav{display:flex;align-items:center;gap:5px}.nav a{padding:9px 11px;color:var(--muted);font-size:12px;font-weight:600;border-radius:7px;white-space:nowrap}.nav a:hover,.nav a[aria-current]{color:var(--yale);background:var(--yale-soft);text-decoration:none}.nav a.nav-cta{background:var(--yale);color:#fff;margin-left:12px;padding-inline:20px}.nav a.balance{background:var(--yale-soft);color:var(--yale);font-variant-numeric:tabular-nums}.nav-signout{margin:0;background:transparent;color:var(--muted);padding:9px;font-size:12px}.nav-toggle{display:none;margin:0}.nav form{margin:0}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:32px 24px 64px;flex:1;min-width:0}.footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:25px max(24px,calc((100vw - 1192px)/2));color:var(--muted);font-size:11px;background:white}.footer-brand{font-size:22px;font-weight:750;letter-spacing:-1px}
.campus-hero{display:grid;grid-template-columns:1.4fr 1fr;position:relative;overflow:hidden;min-height:342px;padding:44px 48px;background:var(--yale);color:#fff;border-radius:18px}.hero-copy{z-index:1}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.9px;color:var(--yale);margin:0 0 14px}.campus-hero .eyebrow{color:#c2d5ec}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b6d9f5;margin-right:7px;vertical-align:middle}.campus-hero h1{font:400 clamp(32px,3.5vw,48px)/1.12 var(--display);letter-spacing:-1.3px;margin:0 0 19px}.campus-hero h1 em{color:#b9d1ee;font-weight:400}.hero-copy>p:not(.eyebrow){max-width:430px;font-size:13px;line-height:1.8;color:#d4e1ef}.hero-actions{display:flex;align-items:center;gap:18px;margin-top:24px}.hero-actions .btn{margin:0}.hero-note{font-size:10px;color:#d4e1ef}.btn.btn-on-dark{background:#fff;color:var(--yale)}.btn.btn-on-dark:hover{background:#e8eff7}
.hero-art{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;isolation:isolate;padding:22px 14px 0;min-width:0}.hero-art svg{width:100%;color:#789bbf;opacity:.85}.art-coordinate,.art-caption{font-size:8px;letter-spacing:1.5px;color:#bed0e5;text-align:center;z-index:1}.art-caption{margin-top:15px;font-size:9px;letter-spacing:.3px}.orbit{position:absolute;border:1px solid #ffffff12;border-radius:50%;z-index:-1;width:400px;height:400px;top:-26px;left:-12px}.orbit-two{width:300px;height:300px;top:24px;left:38px}.market-intro{display:flex;align-items:center;gap:36px;padding:23px 4px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.market-intro strong{font-size:10px;color:var(--yale);margin-right:8px}.points-note{margin-left:auto}
.feed-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:34px 0 22px}.feed-head .eyebrow{margin:0 0 6px;font-size:9px}.feed-head h1,.feed-head h2{margin:0;font-size:28px;letter-spacing:-.9px;line-height:1.25;color:var(--ink)}.feed-head p:not(.eyebrow){color:var(--muted);margin:7px 0 0;font-size:12px}.text-link{font-size:12px;font-weight:600}.feed-head .actions{display:flex;gap:8px}.feed-head .btn{margin:0}
.feed-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.filter-group{display:flex;gap:4px}.filter{background:transparent;color:var(--muted);font-size:11px;padding:8px 13px;min-height:36px;margin:0;border:1px solid transparent;border-radius:7px}.filter:hover{background:var(--yale-soft);color:var(--yale)}.filter.active{background:white;color:var(--yale);border-color:var(--line);box-shadow:0 2px 3px #00356b06}.search-field{display:flex;align-items:center;gap:8px;margin:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 12px;width:245px}.search-field>span:not(.sr-only){font-size:23px;font-weight:400}.search-field input{border:0;background:transparent;box-shadow:none;padding:8px 0;font-size:12px}.search-field:focus-within{outline:2px solid #6399ce}.search-field input:focus{outline:none;box-shadow:none}.results-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:18px 0 12px}
.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.market-card{display:flex;flex-direction:column;padding:23px;background:white;border:1px solid var(--line);border-radius:12px;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s;min-width:0}.market-card:hover{color:var(--ink);text-decoration:none;border-color:#91acc8;box-shadow:0 8px 24px #00356b0c;transform:translateY(-2px)}.card-top{display:flex;align-items:center;gap:10px;margin-bottom:19px}.market-icon{display:grid;place-items:center;width:34px;height:34px;background:#edf2f8;color:var(--yale);border-radius:9px;font:italic 17px var(--display)}.card-arrow{margin-left:auto;color:#7c8c9e}.market-card h3{font-size:17px;letter-spacing:-.35px;line-height:1.45;margin:0 0 8px;overflow-wrap:anywhere}.blurb{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 20px}.market-odds{display:flex;align-items:baseline;gap:10px;margin-top:auto}.market-odds strong{font-size:34px;letter-spacing:-1.5px;line-height:1.2;font-weight:650;color:var(--yale)}.market-odds small{font-size:19px;margin-left:2px}.market-odds>span{font-size:10px;color:var(--muted)}.probability-track{height:4px;border-radius:4px;background:#e9edf3;margin:13px 0 18px;overflow:hidden}.probability-track span{display:block;height:100%;background:var(--yale);border-radius:4px}.prices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.price{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:6px;font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}.price small{font-size:11px;font-weight:600}.price.yes{color:var(--yes);background:var(--yes-soft)}.price.no{color:var(--no);background:var(--no-soft)}.card-footer{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #edf0f4;margin-top:18px;padding-top:13px;font-size:10px;color:var(--muted)}.awaiting-label{font-size:11px;color:var(--muted);margin:10px 0}.friend-line{font-size:11px;color:var(--yale);margin-top:10px}
.badge{display:inline-block;padding:3px 7px;border-radius:5px;background:var(--yale-soft);color:var(--yale);font-size:9px;font-weight:650;text-transform:capitalize;letter-spacing:.2px}.badge.open{background:var(--yes-soft);color:var(--yes)}.badge.closed,.badge.proposed,.badge.disputed{background:#fcf3df;color:var(--warn)}.badge.pending{background:#f0f1f4;color:var(--muted)}.badge.void{background:var(--no-soft);color:var(--no)}.community-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:42px;padding:32px;background:#edf2f8;border-radius:12px}.community-strip .eyebrow{font-size:9px;margin-bottom:7px}.community-strip h2{font:400 26px var(--display);letter-spacing:-.5px;margin:0}.community-strip p:not(.eyebrow){color:var(--muted);font-size:12px;margin:9px 0 0}.community-strip .btn{margin:0;white-space:nowrap}
.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-bottom:20px;min-width:0;max-width:100%}.panel h1{font-size:29px;line-height:1.2;letter-spacing:-.7px}.panel h2,.panel h3{color:var(--yale);margin:0 0 12px;line-height:1.3;font-weight:650;letter-spacing:-.4px}.panel h2{font-size:24px}.panel h3{font-size:19px}.panel p{overflow-wrap:anywhere}.meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.row>.panel{height:fit-content}label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin:18px 0 6px}input,select,textarea{display:block;width:100%;max-width:100%;border:1px solid #ccd6e1;border-radius:7px;padding:10px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #8aaed1;outline-offset:1px}input[type=hidden]{display:none}input[type=checkbox],input[type=radio]{display:inline-block;width:auto;accent-color:var(--yale)}textarea{resize:vertical}
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--yale);color:#fff;font-size:12px;font-weight:600;padding:11px 18px;min-height:40px;border:1px solid transparent;border-radius:7px;margin-top:16px;cursor:pointer;text-decoration:none;line-height:1.4}button:hover,.btn:hover{background:var(--yale-mid);color:white;text-decoration:none}.btn.ghost,button.ghost{background:transparent;color:var(--yale);border-color:#c7d3df}.ghost:hover{background:var(--yale-soft)}.danger{background:var(--no)}.secondary{background:var(--ink)}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn-row button,.btn-row .btn{margin:0}.btn-row form{max-width:100%;flex-wrap:wrap}.full-width{width:100%}.nav-signout{margin:0;background:transparent;color:var(--muted);font-size:11px;padding:9px}
.table-scroll{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;min-width:360px}.table th,.table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);font-size:12px}.table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1px;background:#fafbfd}.table td{overflow-wrap:anywhere}.table tr:hover td{background:#f8fafc}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.stat{background:white;border:1px solid var(--line);padding:22px;border-radius:10px;min-width:0}.stat-label{font-size:10px;color:var(--muted);letter-spacing:.8px;text-transform:uppercase}.stat-value{font-size:28px;font-weight:650;letter-spacing:-.6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:6px}.pos{color:var(--yes)}.neg{color:var(--no)}.chart-wrap{padding:12px 0;max-width:100%}
.detail-hero h1{font:400 clamp(28px,4vw,42px)/1.2 var(--display);max-width:900px;margin:20px 0;overflow-wrap:anywhere}.detail-hero>p{max-width:850px;color:var(--muted)}.market-row-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.criteria-box{background:#f4f7fa;padding:20px;border-left:3px solid var(--yale);border-radius:0 8px 8px 0;margin-top:22px;overflow-wrap:anywhere}.criteria-box strong{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--yale);margin-bottom:8px}.side-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px}.side-toggle .choice{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);padding:12px;border-radius:7px;margin:0;cursor:pointer}.side-toggle .choice:has(input:checked){background:var(--yale-soft);border-color:var(--yale);color:var(--yale)}.side-toggle input{width:14px;height:14px}
.chat{max-height:400px;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.msg{background:white;border:1px solid var(--line);padding:12px;border-radius:8px;margin-bottom:10px;overflow-wrap:anywhere}.msg.mine{background:var(--yale-soft);border-color:#c3d4e6}.who{font-weight:650;font-size:12px;color:var(--yale)}.when{font-size:10px;color:var(--muted);margin-left:8px}.friend-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.friend-row form{max-width:100%;flex-wrap:wrap}
.flash{padding:13px 18px;border:1px solid var(--line);border-radius:8px;background:white;margin-bottom:12px;overflow-wrap:anywhere}.flash.success{color:var(--yes);background:var(--yes-soft)}.flash.danger{color:var(--no);background:var(--no-soft)}.flash.warning{color:var(--warn);background:#fcf3df}.flash.info{color:var(--yale);background:var(--yale-soft)}.empty-state{grid-column:1/-1;border:1px dashed #c1cfde;border-radius:12px;text-align:center;padding:42px 24px;color:var(--muted);background:white}.empty-state h3{color:var(--yale);font-size:20px;margin:0 0 8px}.login-panel{max-width:480px;margin:28px auto;padding:36px}.login-panel>.brand-mark{margin-bottom:22px}.login-panel .eyebrow{margin-bottom:12px}.login-divider{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted);margin:28px 0 10px}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--line)}.login-footnote{font-size:11px;text-align:center;color:var(--muted);margin:28px 0 0}
@media(min-width:1025px){.nav-toggle{display:none}}
@media(max-width:1100px){.brand-caption{display:none}.topbar{padding-inline:24px}.nav a{padding:8px;font-size:11px}.campus-hero{padding:36px}.hero-actions{align-items:flex-start;flex-direction:column;gap:10px}.market-card{padding:20px}}
@media(max-width:900px){.topbar{flex-wrap:wrap;min-height:72px}.nav-toggle{display:inline-flex;margin:0;background:var(--yale-soft);color:var(--yale)}.nav{display:none;flex-direction:column;align-items:stretch;width:100%;gap:4px}.nav.open{display:flex}.nav a{padding:12px;font-size:13px}.nav .nav-cta{margin:0!important}.nav form button{width:100%;justify-content:flex-start}.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.points-note{display:none}.row{grid-template-columns:1fr}.hero-note{font-size:10px}.campus-hero{grid-template-columns:1.4fr 1fr;gap:15px;padding:30px}.hero-art{padding:0}.art-coordinate{font-size:6px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{flex-wrap:wrap}.footer span:last-child{margin-left:auto}}
@media(max-width:600px){.wrap{padding:20px 16px 40px}.topbar{padding:16px 20px}.campus-hero{grid-template-columns:1fr;padding:30px 24px;min-height:auto;border-radius:12px}.campus-hero h1{font-size:37px}.hero-art{display:none}.hero-copy>p:not(.eyebrow){font-size:12px}.hero-actions{gap:13px}.market-intro{gap:12px;justify-content:space-between;font-size:9px;padding-block:19px}.market-intro strong{display:block;margin-bottom:3px}.feed-head{margin-top:28px}.feed-head h2{font-size:25px}.text-link{font-size:10px}.feed-toolbar{align-items:stretch;flex-direction:column;gap:12px}.filter-group{justify-content:space-between}.filter{padding:8px 10px;font-size:10px}.search-field{width:100%}.market-grid{grid-template-columns:1fr}.market-card{padding:22px}.market-card h3{font-size:18px}.blurb{font-size:12px}.community-strip{padding:24px;align-items:flex-start;flex-direction:column}.community-strip h2{font-size:24px}.footer{flex-direction:column;align-items:flex-start;gap:7px;padding:24px}.footer span:last-child{margin-left:0}.panel{padding:20px}.stat{padding:16px}.stat-value{font-size:24px}.login-panel{margin:8px auto;padding:26px}.feed-head .actions{flex-wrap:wrap}.friend-row .btn-row{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Keep each approval action aligned independently of generic form wrapping. */
.moderation-item {
  align-items: stretch;
  flex-direction: column;
  gap: 12px;
}
.moderation-actions {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  width: 100%;
  max-width: 640px;
}
.moderation-actions form {
  margin: 0;
  min-width: 0;
}
.rejection-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}
.moderation-actions button,
.moderation-actions input {
  margin: 0;
  min-width: 0;
  min-height: 44px;
}
@media (max-width: 600px) {
  .moderation-actions,
  .rejection-form {
    grid-template-columns: minmax(0, 1fr);
  }
  .moderation-actions button {
    width: 100%;
  }
}
