/* TNYP portal & admin additions (on top of site.css) */
.portal{padding:34px 22px 60px;min-height:60vh}
.panel-c{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin:0 0 20px;border-top:4px solid var(--gold)}
.panel-c h1{margin-top:.1em}.panel-c.center,.center{text-align:center}.btns.center{justify-content:center}.narrow-c{max-width:460px;margin:0 auto}
.lead{font-size:1.08rem;color:#3b4252}
.form fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:0 0 18px}.form legend{font-weight:900;color:var(--navy);padding:0 6px}
.f{display:block;margin:0 0 14px}.f>span{display:block;font-weight:700;color:var(--navy);margin-bottom:5px;font-size:.95rem}.f small{display:block;color:var(--grey);margin-top:4px;font-size:.84rem}
.f input,.f select,.f textarea,.filters input,.filters select,.bulkbar select,.act input,.act select{width:100%;padding:11px 12px;border:1px solid #cfd3dc;border-radius:10px;font:inherit;background:#fff}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.g2f{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.g3f{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}
.check{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:.95rem}.check input{margin-top:4px;width:auto}.check.inline{display:inline-flex}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.btn.big{font-size:1.05rem;padding:14px 28px}.btn.sm{padding:6px 12px;font-size:.85rem}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 18px;background:#e7f6ec;border:1px solid #9fd6b0}.flash.err{background:#fdecec;border-color:#f0a9a9}.flash ul{margin:6px 0 0 18px;padding:0}
.tnypid{font-size:2.4rem;font-weight:900;color:var(--navy);letter-spacing:.06em;background:var(--pale);border:2px dashed var(--gold);display:inline-block;padding:10px 24px;border-radius:12px;margin:6px 0 14px}
.tnypid.sm{font-size:1.4rem;padding:6px 14px}.next{text-align:left;max-width:640px;margin:20px auto 0}
.status-card{background:var(--pale);border-radius:12px;padding:20px;margin:0 0 20px;text-align:center}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:900;background:#eef0f5;color:var(--navy);white-space:nowrap}.badge.big{font-size:1.05rem;padding:8px 18px}
.s-registered{background:#eef0f5}.s-r1_submitted{background:#e3ecfb;color:#1d4fa0}.s-r1_shortlisted,.s-r2_scheduled{background:#fff3cf;color:#7a5a00}
.s-selected{background:#fde9b8;color:#6b4d00}.s-confirmed,.s-attended{background:#dff3e6;color:#196c3a}.s-waitlisted{background:#efe6fb;color:#5a2ea0}
.s-r1_not_shortlisted,.s-not_selected,.s-declined,.s-withdrawn,.s-disqualified{background:#f6e1e1;color:#9c2222}
.q-sent{background:#dff3e6;color:#196c3a}.q-queued,.q-retry{background:#fff3cf;color:#7a5a00}.q-failed{background:#f6e1e1;color:#9c2222}
.muted{color:var(--grey)}.warn{color:#c00;font-weight:900}
.portal-foot{background:#141c2e;color:#c9cedb;padding:16px 0;font-size:.85rem;text-align:center}
/* admin */
body.admin .portal{max-width:1400px}body.admin h1 small{color:var(--grey);font-weight:400;font-size:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0 22px}
.kpi{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:12px;padding:14px}.kpi b{display:block;font-size:1.7rem;color:var(--navy)}.kpi span{color:var(--grey);font-size:.88rem}.kpi.bad{border-top-color:#c00}
.g2a{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}
table.compact td,table.compact th{padding:7px 10px;font-size:.88rem}table{min-width:0}
.filters,.bulkbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}.filters input{flex:2 1 260px;width:auto}.filters select,.bulkbar select{flex:1 1 160px;width:auto}
.bulkbar{background:var(--pale);padding:10px;border-radius:10px}
.pager{margin:14px 0;display:flex;gap:16px;align-items:center}
dl.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 14px;margin:0 0 18px}dl.kv dt{font-weight:700;color:var(--navy)}dl.kv dd{margin:0}
.note-box{background:var(--pale);border-radius:10px;padding:14px;white-space:normal;max-height:420px;overflow:auto}
.acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:14px 0}.act h3{margin-top:0}.act input.sm{width:70px;display:inline-block}.act input{margin:4px 0}
details{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:8px 0;background:#fff}summary{cursor:pointer}
.inline{display:inline}.linkbtn{background:none;border:0;color:var(--navy);font-weight:700;cursor:pointer;font:inherit;padding:8px 7px}
iframe.preview{width:100%;height:640px;border:1px solid var(--line);border-radius:10px;background:#fff}
.total{font-size:1.2rem}.score-in{max-width:120px}
@media (max-width:900px){.g2f,.g2a,.g3f{grid-template-columns:1fr}dl.kv{grid-template-columns:1fr}}
.table-wrap td:first-child a{white-space:nowrap}
