
:root{--ink:#17253b;--muted:#657187;--blue:#2365a8;--blue2:#164a7c;--sky:#edf6ff;--line:#dce4ee;--white:#fff;--bg:#f7f9fc;--good:#24734b;--warn:#95651c;--bad:#9f3030;--shadow:0 16px 40px rgba(23,37,59,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white);line-height:1.55}button,input,select,textarea{font:inherit}a{color:inherit}.site-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1180px)/2));border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:10}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--blue);color:white;font-size:12px;letter-spacing:.05em}.site-header nav{display:flex;align-items:center;gap:22px}.site-header nav a,.nav-link{border:0;background:none;text-decoration:none;color:var(--muted);font-weight:600;cursor:pointer}.hero{max-width:1180px;margin:auto;padding:88px 24px 72px;display:grid;grid-template-columns:1.45fr .8fr;gap:72px;align-items:center}.eyebrow{color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:12px;margin:0 0 12px}.hero h1{font-size:clamp(42px,6vw,70px);line-height:1.02;letter-spacing:-.045em;margin:0 0 22px}.hero-text{font-size:20px;color:var(--muted);max-width:720px}.hero-actions{display:flex;gap:12px;margin:28px 0 16px}.btn{border:0;border-radius:10px;padding:12px 17px;background:var(--blue);color:white;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background:var(--blue2)}.btn-small{padding:9px 13px}.btn-ghost{background:white;color:var(--ink);border:1px solid var(--line)}.btn-ghost:hover{background:var(--bg)}.btn-danger{background:var(--bad)}.microcopy{font-size:13px;color:var(--muted)}.hero-card{background:linear-gradient(145deg,#1c5f9f,#123b66);padding:26px;border-radius:22px;color:white;display:grid;grid-template-columns:1fr 1fr;gap:1px;box-shadow:var(--shadow)}.stat{padding:24px;border:1px solid rgba(255,255,255,.13);display:flex;flex-direction:column}.stat strong{font-size:20px}.stat span{font-size:13px;opacity:.8}.notice{max-width:1132px;margin:0 auto 10px;padding:16px 20px;border-radius:12px;background:#fff8e8;border:1px solid #f1dfb3;color:#6f5420}.section{max-width:1180px;margin:auto;padding:82px 24px}.section.alt{max-width:none;background:var(--bg);padding-left:max(24px,calc((100% - 1132px)/2));padding-right:max(24px,calc((100% - 1132px)/2))}.section h2{font-size:36px;letter-spacing:-.03em;margin:0 0 30px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.toolbar{display:grid;grid-template-columns:1fr 220px 200px;gap:10px;margin:26px 0}.toolbar input,.toolbar select,label input,label select,label textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;background:white;color:var(--ink)}.idea-list{display:grid;gap:14px}.idea{border:1px solid var(--line);border-radius:16px;padding:22px;background:white;display:grid;grid-template-columns:72px 1fr;gap:20px}.vote-box{display:flex;flex-direction:column;align-items:center}.vote-btn{border:1px solid var(--line);background:white;border-radius:9px;padding:7px 12px;cursor:pointer}.vote-btn.active{background:var(--sky);border-color:#9dc6ee;color:var(--blue)}.vote-count{font-size:22px;font-weight:800;margin-top:5px}.vote-box small{color:var(--muted)}.idea-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.tag,.status{display:inline-block;border-radius:999px;padding:4px 9px;background:var(--sky);color:var(--blue2);font-weight:800}.status.pending{background:#fff4d8;color:var(--warn)}.status.rejected{background:#fdeaea;color:var(--bad)}.idea h3{font-size:22px;margin:9px 0}.idea p{color:#4f5d72}.idea-actions{display:flex;gap:15px;margin-top:12px}.link-btn{border:0;background:none;color:var(--blue);font-weight:800;cursor:pointer;padding:0}.comments{margin-top:18px;border-top:1px solid var(--line);padding-top:10px}.comment{padding:12px 0;border-bottom:1px solid #eef2f6}.comment p{margin:3px 0}.comment-actions{display:flex;justify-content:space-between}.grid{display:grid;gap:16px}.cards,.resource-grid{grid-template-columns:repeat(4,1fr)}.card,.resource{padding:22px;border:1px solid var(--line);border-radius:14px;background:white}.resource span{font-weight:900;color:#9eb9d5}.empty{padding:38px;border:1px dashed var(--line);border-radius:14px;text-align:center;color:var(--muted)}footer{border-top:1px solid var(--line);max-width:1180px;margin:auto;padding:34px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted)}.footer-links{display:flex;gap:18px}[hidden]{display:none!important}.modal{position:fixed;inset:0;z-index:1000;background:rgba(16,28,44,.60);display:flex;align-items:center;justify-content:center;padding:18px}.modal>form{width:min(600px,100%);max-height:90dvh;overflow:auto;background:white;border-radius:18px;box-shadow:var(--shadow);padding:25px}.small-modal>form{width:min(500px,100%)}body.modal-lock{overflow:hidden}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.modal h2{margin:0 0 20px}.modal label{display:block;font-weight:700;margin:13px 0}.checkbox{display:flex!important;gap:10px;font-weight:500!important}.checkbox input{width:auto}.icon-btn{border:0;background:none;font-size:28px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-top:20px}.form-message{font-size:13px;color:var(--bad)}.auth-intent-hint{margin:-8px 0 12px;padding:10px 12px;border:1px solid #cfe0ee;border-radius:10px;background:#f6fbff;color:#38566f;font-size:12px;line-height:1.45}.auth-intent-hint strong{color:#173f72}.toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:none}.hidden{display:none!important}.moderation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 20px}.mod-stat{background:white;border:1px solid var(--line);border-radius:14px;padding:16px}.mod-stat strong{display:block;font-size:28px}.mod-stat span{color:#667085;font-size:14px}.moderation-group{margin:24px 0 10px}.moderation-list{display:grid;gap:14px}@media(max-width:650px){.moderation-summary{grid-template-columns:1fr}}.mod-card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px}.mod-actions{display:flex;gap:10px;margin-top:12px}.legal{max-width:820px;margin:auto;padding:70px 24px}.legal h1{font-size:46px}.legal h2{margin-top:36px}.legal p,.legal li{color:#4f5d72}@media(max-width:820px){.site-header nav a{display:none}.hero{grid-template-columns:1fr;padding-top:55px}.toolbar{grid-template-columns:1fr}.cards,.resource-grid{grid-template-columns:1fr 1fr}.idea{grid-template-columns:55px 1fr}footer{flex-direction:column;align-items:flex-start}}@media(max-width:520px){.site-header{padding:0 14px}.hero{padding-left:18px;padding-right:18px}.hero-card,.cards,.resource-grid{grid-template-columns:1fr}.section{padding:60px 18px}.section-heading{align-items:start;flex-direction:column}.idea{padding:15px}.footer-links{flex-direction:column}.site-header nav{gap:8px}}


/* v19 mobile usability */
@media(max-width:820px){
  .site-header{padding:12px 16px;gap:10px}
  .brand{min-width:0}
  .brand span:last-child{font-size:15px;white-space:nowrap}
  .site-header nav{gap:8px}
  .site-header nav .btn,.site-header nav .nav-link{min-height:44px;padding:10px 13px}
  .hero{padding-left:18px;padding-right:18px}
  .section{padding-left:18px;padding-right:18px}
  .section-heading{gap:14px;align-items:flex-start}
  .section-heading .btn{min-height:44px}
  input,select,textarea,button{font-size:16px}
  .btn,.link-btn{min-height:44px}
  .idea-actions{flex-wrap:wrap;gap:12px}
  .mod-actions{flex-wrap:wrap}
  .mod-actions .btn{flex:1 1 130px}
  .modal-card{width:min(94vw,560px);max-height:90vh;overflow:auto;padding:22px}
}
@media(max-width:520px){
  .site-header{flex-wrap:wrap}
  .site-header nav{width:100%;justify-content:flex-end}
  .brand-mark{width:38px;height:38px;flex:0 0 38px}
  .hero h1{font-size:clamp(38px,12vw,54px);line-height:1.02}
  .hero-text{font-size:17px}
  .section-heading{display:block}
  .section-heading>.btn{margin-top:12px;width:100%}
  .filters{grid-template-columns:1fr!important}
  .idea{grid-template-columns:1fr!important}
  .vote-box{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:8px}
  .vote-box button{width:44px;height:44px}
  .idea h3{font-size:20px}
  .idea-meta{gap:7px;flex-wrap:wrap}
  .idea-actions{align-items:stretch}
  .idea-actions .link-btn{padding:8px 0}
  .comments{margin-top:12px}
  .comment{padding:14px 0}
  .modal-card{width:calc(100vw - 24px);padding:18px;border-radius:16px}
  .modal-card h2{font-size:25px}
  .modal-actions{display:flex;flex-wrap:wrap;gap:10px}
  .modal-actions .btn{flex:1 1 140px}
  footer{padding-left:18px;padding-right:18px}
}

.cf-turnstile{margin:14px 0;min-height:65px}
/* v115 — accessibility & mobile admin audit */
:root{--focus-ring:#1f5f9d}
button,select,input,textarea,a{touch-action:manipulation}
button,.btn,.nav-link,.link-btn,.icon-btn,.attachment-btn{min-height:44px}
.icon-btn{min-width:44px}
input,select,textarea{font-size:16px}
[aria-disabled="true"],button:disabled{cursor:not-allowed;opacity:.62}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.site-header{height:auto;min-height:72px;align-items:flex-start;gap:12px;padding-top:12px;padding-bottom:12px}.site-header nav{width:100%;gap:8px;flex-wrap:wrap}.site-header nav>a,.site-header nav>.btn,.site-header nav>.nav-dropdown{min-height:44px}}
