:root{--dmc-gold:#be8e40;--dmc-ink:#171717}
.portal-app{max-width:1060px;margin:0 auto;padding:32px 24px 60px;color:var(--dmc-ink)}
.app-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:24px}
.app-heading h1{margin:8px 0;font-size:clamp(26px,4vw,40px)}
.app-eyebrow{font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#987031}
.app-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.app-card{background:#fff;border:1px solid #e7e0d6;border-radius:16px;padding:24px;box-shadow:0 9px 25px #00000006}
.app-card h2{font-size:21px;margin:0 0 12px}.app-card p,.app-muted{color:#666;line-height:1.6}
.app-form{display:grid;gap:13px}.app-form label{display:grid;gap:6px;font-weight:700;font-size:13px}.app-form input,.app-form select,.app-form textarea{width:100%;background:#fff;border:1px solid #cfc9bf;border-radius:8px;padding:12px;font:inherit;color:#171717;min-width:0}
.app-form input:focus,.app-form select:focus{outline:2px solid #be8e4066;border-color:var(--dmc-gold)}
.app-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid #be8e40;background:#be8e40;border-radius:9px;padding:12px 18px;font-size:13px;font-weight:800;color:#181818;cursor:pointer;text-decoration:none}
.app-btn.alt{background:white}.app-btn.dark{background:#181818;color:white;border-color:#181818}.app-btn:disabled{opacity:.45;cursor:not-allowed}
.app-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.app-feedback{padding:12px 14px;border-radius:9px;background:#faf3e5;border:1px solid #e9d7ae;color:#6e5025;font-size:13px;line-height:1.5}
.app-feedback.error{background:#fff0f0;color:#9c2525;border-color:#ecc7c7}.app-feedback.ok{background:#effaf1;color:#25613c;border-color:#bedfc8}
.app-hidden{display:none!important}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.app-stat{background:#171717;color:white;padding:22px;border-radius:12px}.app-stat strong{display:block;color:#e9c382;font-size:28px}.app-stat span{font-size:13px}
.app-table{width:100%;border-collapse:collapse;min-width:540px}.app-table th,.app-table td{text-align:left;padding:12px;border-bottom:1px solid #e8e2d8;font-size:13px}.app-table th{background:#f8f5f0;color:#70512b}.app-scroll{overflow:auto}
.app-avatar{width:96px;height:96px;border-radius:50%;background:#f5f0e5;object-fit:cover;border:3px solid #d4af6b}
.app-nav-link{color:#8a6428;font-weight:800;text-decoration:underline;text-underline-offset:3px}.app-note{font-size:12px;color:#696969}.app-full{grid-column:1/-1}
@media(max-width:740px){.app-layout,.app-grid{grid-template-columns:1fr}.portal-app{padding:25px 18px 45px}.app-card{padding:18px}}

[data-admin-shortcut][hidden],.portal-app [hidden]{display:none!important}
.app-btn{transition:filter .15s,box-shadow .15s,transform .15s}
.app-btn:not(:disabled):hover{filter:brightness(.9);box-shadow:0 3px 9px #17171726}
.app-btn:not(:disabled):active{transform:translateY(1px);box-shadow:none}
.app-btn:focus-visible,.app-nav-link:focus-visible,.app-form input[type=checkbox]:focus-visible,.app-status:focus-visible{outline:3px solid #94621c;outline-offset:3px}
.app-btn.approve{background:#17643b;border-color:#17643b;color:#fff}
.app-btn.reject{background:#a42b31;border-color:#a42b31;color:#fff}
.app-form .app-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer}
.app-form .app-check input[type=checkbox]{width:23px;height:23px;flex:0 0 23px;margin:0;accent-color:#94621c;cursor:pointer}
.app-form .app-check:hover span{text-decoration:underline;text-underline-offset:3px}
.app-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#f3f0ea;color:#5b4b36;font-size:13px;font-weight:800}
.app-status[data-status=aprovada]{background:#e1f4e8;color:#145635}
.app-status[data-status=recusada]{background:#fce6e7;color:#8b2027}
.app-status[data-status=pendente]{background:#fff1d5;color:#714d0a}
.app-registration{border:1px solid #e7e0d6;border-radius:10px;padding:13px;margin:10px 0}
.app-registration p{margin:8px 0 0}
@media(prefers-reduced-motion:reduce){.app-btn{transition:none}}

.app-stat{background:#000}
.app-table .app-athlete-name{font-weight:800}
.app-table .app-athlete-nickname{color:#555}
.app-table .app-athlete-category{min-width:10rem}
.app-registration-search{max-width:420px;margin:0 0 12px}
