/* HilltopTsuki — Participant Portal styles (complements style.css) */
.portal-body{background:#F4F2EC;min-height:100vh;display:flex;flex-direction:column}
.portal-top{background:#14223F;color:#fff;padding:.7rem 0;position:sticky;top:0;z-index:40}
.portal-top-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.portal-top .brand-text strong{color:#fff}
.portal-top .brand-text small{color:#c9d4ea}
.portal-nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.portal-nav a{color:#dfe6f3;text-decoration:none;font-weight:600;font-size:.94rem}
.portal-nav a.active,.portal-nav a:hover{color:#fff}
.portal-nav .portal-logout{color:#ffd1d1}
.portal-main{flex:1;padding:1.8rem 0 3rem}
.portal-foot{background:#14223F;color:#aebbd4;padding:1rem 0;font-size:.85rem;text-align:center}
.portal-foot a{color:#fff}

/* Auth cards */
.auth-wrap{max-width:520px;margin:2rem auto}
.auth-card{background:#fff;border:1px solid #e6e2d8;border-radius:16px;padding:2rem;box-shadow:0 10px 30px rgba(20,34,63,.06)}
.auth-card h1{font-family:'Shippori Mincho',serif;color:#14223F;font-size:1.5rem;margin:0 0 .3rem}
.auth-alt{margin-top:1rem;text-align:center;color:#5b5f6a}
.btn-block{width:100%;justify-content:center;margin-top:.6rem}
.muted{color:#6b6f7a}

/* Dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}
.dash-head h1{font-family:'Shippori Mincho',serif;color:#14223F;margin:0 0 .25rem;font-size:1.7rem}
.status-chip{background:#e7eefc;color:#25406E;border:1px solid #c7d8f5;padding:.4rem .85rem;border-radius:999px;font-weight:700;font-size:.85rem;white-space:nowrap}
.status-chip.is-cancelled{background:#fde7e7;color:#9b1c1c;border-color:#f3c0c0}

.card{background:#fff;border:1px solid #e6e2d8;border-radius:16px;padding:1.5rem;margin-bottom:1.2rem}
.card h2{font-size:1.1rem;color:#14223F;margin:0 0 1rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:720px){.grid-2{grid-template-columns:1fr}}

/* Tracker */
.tracker{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem}
.tracker li{display:flex;align-items:center;gap:.8rem;padding:.55rem 0;position:relative}
.tracker .dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;flex-shrink:0;border:2px solid #d7d2c6;color:#9a9486;background:#fff}
.tracker li:not(:last-child)::after{content:"";position:absolute;left:14px;top:38px;bottom:-4px;width:2px;background:#e2ddd0}
.tracker .lbl{font-weight:600;color:#6b6f7a}
.tracker li.done .dot{background:#1f7a4d;border-color:#1f7a4d;color:#fff}
.tracker li.done:not(:last-child)::after{background:#1f7a4d}
.tracker li.done .lbl{color:#1f7a4d}
.tracker li.current .dot{background:#C8102E;border-color:#C8102E;color:#fff;box-shadow:0 0 0 4px rgba(200,16,46,.15)}
.tracker li.current .lbl{color:#14223F}

/* Next action */
.next-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-left:4px solid #C8102E;flex-wrap:wrap}
.next-kicker{display:inline-block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#C8102E;font-weight:800;margin-bottom:.2rem}
.next-card p{margin:0;font-weight:600;color:#14223F}

/* KV table */
.kv{width:100%;border-collapse:collapse}
.kv td{padding:.5rem 0;border-bottom:1px solid #f0ece2}
.kv td:last-child{text-align:right;font-weight:700;color:#14223F}
.kv .kv-total td{border-top:2px solid #e2ddd0;border-bottom:none;font-size:1.05rem}
.kv .ok,.line .ok{color:#1f7a4d}
.kv .warn,.line .warn{color:#b9881b}
.line{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f0ece2;margin:0}
.btn-row{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}
.btn-sm{padding:.45rem .9rem;font-size:.88rem}
.help-foot{text-align:center;color:#6b6f7a;font-size:.9rem;margin-top:1rem}

/* Forms inside portal */
.portal-main label{display:block;font-weight:600;color:#14223F;margin:.7rem 0 .3rem;font-size:.92rem}
.portal-main input,.portal-main select,.portal-main textarea{width:100%;padding:.6rem .7rem;border:1px solid #d4cfc2;border-radius:9px;font-size:.95rem;font-family:inherit;background:#fff}
.portal-main .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.portal-main .form-row{grid-template-columns:1fr}}
.alert{padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem}
.alert-error{background:#fdeaea;border:1px solid #f3c4c4;color:#9b1c1c}
.alert-error ul{margin:0;padding-left:1.1rem}
.alert-success{background:#e9f7ee;border:1px solid #b9e3c8;color:#1c7a43}

/* Doc checklist */
.doc-list{list-style:none;margin:0;padding:0}
.doc-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #f0ece2;flex-wrap:wrap}
.badge{font-size:.74rem;font-weight:700;padding:.25rem .6rem;border-radius:999px}
.badge.uploaded{background:#fff4e0;color:#9a6b12}
.badge.verified{background:#e3f5ea;color:#1f7a4d}
.badge.rejected{background:#fde7e7;color:#9b1c1c}
.badge.missing{background:#eee;color:#777}

/* Bank box */
.bank-box{background:#f7f5ef;border:1px dashed #cfc8b6;border-radius:12px;padding:1rem 1.2rem;font-size:.95rem}
.bank-box dt{color:#6b6f7a;font-size:.8rem}
.bank-box dd{margin:0 0 .6rem;font-weight:700;color:#14223F}
.notice{background:#eef3fb;border:1px solid #d2e0f5;color:#25406E;padding:.7rem 1rem;border-radius:10px;font-size:.9rem}
