/* Family administration: approvals drawer, access review, and person review.
   Colours, fields, buttons, and cards come from forms.css tokens. */
.admin-access-btn{position:relative;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--btn-outline-line);border-radius:12px;background:var(--btn-outline-bg);color:var(--btn-outline-ink);font:var(--btn-font);letter-spacing:.01em;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}
.admin-access-btn:hover{background:var(--btn-outline-hover-bg);border-color:var(--form-accent-strong);transform:translateY(-1px)}
.admin-access-btn:focus-visible{outline:2px solid var(--form-accent);outline-offset:2px}
.admin-access-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.admin-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin-left:1px;border:2px solid #0d1118;border-radius:999px;background:#d69b69;color:#1b120a;font:800 10px/1 var(--form-ui-font);box-shadow:0 3px 10px rgba(214,155,105,.3)}
.profile-chip{position:relative}
.profile-chip .admin-count{position:absolute;top:-7px;right:-7px;width:auto;min-width:20px;height:20px;margin:0;padding:0 5px;border:2px solid #0d1118;border-radius:999px;background:#d69b69;color:#1b120a;font:800 10px/1 var(--form-ui-font);letter-spacing:0;box-shadow:0 3px 10px rgba(214,155,105,.3)}
.admin-scrim{position:fixed;inset:0;z-index:89;width:100%;height:100%;border:0;background:var(--form-scrim);backdrop-filter:blur(var(--form-scrim-blur));cursor:default;animation:adminFade .2s ease}
.admin-scrim[hidden],.admin-panel[hidden]{display:none}
.admin-panel{--admin-bg:var(--form-drawer-bg);--admin-card:var(--form-card-bg);--admin-line:var(--form-card-line);position:fixed;top:0;right:0;z-index:90;width:min(560px,100vw);height:100dvh;overflow:auto;overscroll-behavior:contain;background:var(--admin-bg);border-left:1px solid var(--form-drawer-line);box-shadow:var(--form-drawer-shadow);color:var(--form-ink);font-family:var(--form-ui-font);animation:adminSlide .26s cubic-bezier(.22,.8,.24,1)}
.admin-panel-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 27px 16px;background:var(--admin-bg)}
.admin-title-lockup{display:flex;align-items:center;gap:13px;min-width:0}
.admin-title-lockup>div,.admin-panel-head--review>div{min-width:0}
.admin-panel-head p,.admin-section-heading p{margin:0 0 5px;color:var(--form-kicker);font:800 9px/1.2 var(--form-ui-font);letter-spacing:.18em;text-transform:uppercase}
.admin-panel-head h2{margin:0;color:var(--form-title);font:500 clamp(22px,4vw,28px)/1.08 var(--form-display-font);white-space:nowrap}
.admin-shield{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border:1px solid var(--form-accent-line);border-radius:12px;background:var(--form-accent-soft)}
.admin-shield svg{width:22px;height:22px;fill:none;stroke:var(--form-accent-text);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.admin-close,.admin-back{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border:1px solid var(--btn-secondary-line);border-radius:12px;background:var(--btn-secondary-bg);color:var(--btn-secondary-ink);font:400 25px/1 var(--form-ui-font);cursor:pointer}
.admin-close:hover,.admin-back:hover{background:var(--btn-secondary-hover-bg);color:var(--form-title)}
.admin-close:focus-visible,.admin-back:focus-visible{outline:2px solid var(--form-accent);outline-offset:2px}
.admin-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 27px 20px}
.admin-metric{padding:15px 15px 13px;border:1px solid var(--admin-line);border-radius:var(--form-card-radius);background:var(--admin-card)}
.admin-metric strong{display:block;margin-bottom:4px;font:500 25px/1 var(--form-display-font);color:var(--form-title)}
.admin-metric span{color:var(--form-hint);font:700 9px/1.2 var(--form-ui-font);letter-spacing:.08em;text-transform:uppercase}
.admin-metric--pending{border-color:rgba(214,155,105,.3);background:rgba(214,155,105,.08)}
.admin-metric--pending strong{color:#e7b98f}
.admin-tabs{position:sticky;top:84px;z-index:2;display:flex;gap:6px;padding:0 27px 14px;background:var(--admin-bg);border-bottom:1px solid var(--admin-line)}
.admin-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid var(--btn-secondary-line);border-radius:999px;background:transparent;color:var(--form-muted);font:var(--btn-font);cursor:pointer;transition:background .18s ease,color .18s ease}
.admin-tabs button:hover{color:var(--form-title);background:var(--btn-secondary-hover-bg)}
.admin-tabs button.is-active{border-color:var(--form-accent-line);background:var(--form-accent-soft);color:var(--form-accent-text);box-shadow:inset 0 0 0 1px var(--form-accent-line)}
.admin-tabs button span{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:rgba(255,255,255,.08);font-size:9px}
.admin-tabs button.is-active span{background:rgba(var(--form-accent-rgb),.22)}
.admin-toast{margin:14px 27px 0;padding:12px 14px;border:1px solid var(--form-success-line);border-radius:var(--field-radius);background:var(--form-success-bg);color:var(--form-success);font:650 12px/1.4 var(--form-ui-font)}
.admin-panel-body{padding:24px 27px 40px}
.admin-section-heading{margin-bottom:17px}
.admin-section-heading h3{margin:0;font:500 22px/1.15 var(--form-display-font);color:var(--form-title)}
.admin-list{display:grid;gap:10px}
.access-request{display:flex;gap:13px;padding:17px;border:1px solid var(--admin-line);border-radius:var(--form-card-radius);background:var(--admin-card);box-shadow:0 10px 25px rgba(0,0,0,.12)}
.request-avatar,.member-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--form-accent-line);border-radius:50%;background:var(--form-accent-soft);color:var(--form-accent-text);font:500 17px/1 var(--form-display-font)}
.request-content{min-width:0;flex:1}
.request-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.request-heading b,.member-identity b{display:block;color:var(--form-title);font:700 14px/1.25 var(--form-ui-font)}
.request-heading small,.member-identity span{display:block;margin-top:4px;color:var(--form-help);font:500 11px/1.35 var(--form-ui-font)}
.access-request p{margin:12px 0 15px;padding-left:11px;border-left:2px solid var(--form-accent-line);color:var(--form-label);font:400 12px/1.55 var(--form-ui-font)}
.access-request p.request-note-empty{color:var(--form-hint);font-style:italic}
.status-pill{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;font:800 9px/1 var(--form-ui-font);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.status-pill--pending{background:rgba(214,155,105,.14);color:#e7b98f}
.status-pill--admin{background:var(--form-accent-soft);color:var(--form-accent-text)}
.admin-primary,.person-result button,.member-row>button,.admin-danger{border:1px solid transparent;border-radius:var(--btn-radius);font:var(--btn-font);cursor:pointer;transition:background .18s ease,border-color .18s ease}
.admin-primary{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-color:var(--btn-primary-line);background:var(--btn-primary-bg);color:var(--btn-primary-ink)}
.admin-primary:hover{background:var(--btn-primary-hover-bg)}
.admin-primary span{font-size:15px}
.member-row{display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid var(--admin-line);border-radius:var(--form-card-radius);background:var(--admin-card)}
.member-avatar{width:38px;height:38px;flex-basis:38px;font-size:15px}
.member-avatar--admin{background:rgba(var(--form-accent-rgb),.28);border-color:var(--form-accent-strong);color:var(--form-title)}
.member-identity{min-width:0;flex:1}
.member-row>button,.person-result button{min-height:38px;padding:0 12px;border-color:var(--btn-outline-line);background:var(--btn-outline-bg);color:var(--btn-outline-ink)}
.member-row>button:hover,.person-result button:hover{background:var(--btn-outline-hover-bg);border-color:var(--form-accent-strong)}
.admin-primary:focus-visible,.person-result button:focus-visible,.member-row>button:focus-visible,.admin-danger:focus-visible{outline:2px solid var(--form-accent);outline-offset:2px}
.member-row--denied{opacity:.78}
.access-empty{display:grid;justify-items:center;padding:38px 22px;border:1px dashed var(--form-accent-line);border-radius:var(--form-card-radius);background:rgba(var(--form-accent-rgb),.04);text-align:center}
.access-empty>span{display:grid;place-items:center;width:38px;height:38px;margin-bottom:11px;border-radius:50%;background:var(--form-accent-soft);color:var(--form-accent-text)}
.access-empty h3{margin:0 0 6px;font:500 19px/1.2 var(--form-display-font);color:var(--form-title)}
.access-empty p{max-width:270px;margin:0;color:var(--form-help);font:400 12px/1.5 var(--form-ui-font)}
.admin-panel-head--review{position:relative;display:grid;grid-template-columns:44px 1fr 44px;padding-bottom:22px;border-bottom:1px solid var(--admin-line);background:var(--admin-bg)}
.admin-panel-head--review>div{text-align:center}
.admin-review-body{padding-top:22px}
.admin-review-meta{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid var(--admin-line);border-radius:var(--form-card-radius);background:var(--admin-card)}
.admin-review-meta>div:last-child{min-width:0}
.admin-review-meta span,.relationship-statement>span{display:block;margin-bottom:4px;color:var(--form-kicker);font:800 9px/1.2 var(--form-ui-font);letter-spacing:.14em;text-transform:uppercase}
.admin-review-meta b{display:block;color:var(--form-title);font:650 16px/1.3 var(--form-ui-font)}
.admin-review-meta small{display:block;margin-top:4px;color:var(--form-help);font:400 11px/1.4 var(--form-ui-font)}
.relationship-statement{margin:13px 0 23px;padding:16px;border:1px solid var(--form-accent-line);border-radius:var(--form-card-radius);background:var(--form-accent-soft)}
.relationship-statement p{margin:7px 0 0;color:var(--form-label);font:italic 14px/1.5 var(--form-display-font)}
.admin-step{display:flex;gap:11px;align-items:flex-start;margin:22px 0 15px}
.admin-step>span{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border-radius:50%;background:var(--form-accent);color:var(--form-accent-ink);font:800 10px/1 var(--form-ui-font)}
.admin-step b{display:block;color:var(--form-title);font:700 13px/1.3 var(--form-ui-font)}
.admin-step p{margin:3px 0 0;color:var(--form-help);font:400 11px/1.45 var(--form-ui-font)}
.person-search-label{display:block;margin:0 0 8px;color:var(--form-label);font:750 11px/1.3 var(--form-ui-font);letter-spacing:.035em}
.person-search-label small{margin-left:5px;color:var(--form-hint);font-size:9px;font-weight:600;text-transform:uppercase}
.person-search-wrap{position:relative}
.person-search-wrap svg{position:absolute;left:13px;top:14px;width:18px;height:18px;fill:none;stroke:var(--form-muted);stroke-width:1.7;stroke-linecap:round}
.person-search-input{width:100%;min-height:var(--field-min-height);box-sizing:border-box;padding:0 13px 0 40px;border:1px solid var(--field-line);border-radius:var(--field-radius);background:var(--field-bg);color:var(--field-ink);font:var(--field-font);outline:none}
.person-search-input::placeholder{color:var(--field-placeholder)}
.person-search-input:focus{border-color:var(--field-focus-line);outline:2px solid var(--field-focus-ring);outline-offset:1px}
.person-results{margin-top:9px;border:1px solid var(--admin-line);border-radius:var(--field-radius);overflow:hidden}
.person-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-top:1px solid var(--admin-line);background:var(--admin-card)}
.person-result:first-child{border-top:0}
.person-result b{display:block;color:var(--form-title);font:650 13px/1.3 var(--form-ui-font)}
.person-result small{display:block;margin-top:3px;color:var(--form-help);font:500 10px/1.3 var(--form-ui-font);text-transform:capitalize}
.person-result button{white-space:nowrap}
.person-result em{color:var(--form-hint);font:600 10px/1.3 var(--form-ui-font)}
.search-prompt{padding:19px;text-align:center;color:var(--form-help);font:500 11px/1.4 var(--form-ui-font)}
.admin-review-footer{display:flex;justify-content:flex-end;margin-top:24px;padding-top:18px;border-top:1px solid var(--admin-line)}
.admin-danger{min-height:40px;padding:0 14px;border-color:var(--btn-danger-line);background:var(--btn-danger-bg);color:var(--btn-danger-ink)}
.admin-danger:hover{background:var(--btn-danger-hover-bg)}
.admin-status{min-height:18px;margin-top:11px;color:var(--form-success);font:600 11px/1.5 var(--form-ui-font)}
.person-proposal-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0 20px}.person-proposal-summary>div{padding:12px;border:1px solid var(--admin-line);border-radius:var(--form-card-radius);background:var(--admin-card)}.person-proposal-summary span,.duplicate-check>span{display:block;margin-bottom:5px;color:var(--form-kicker);font:800 9px/1.2 var(--form-ui-font);letter-spacing:.14em;text-transform:uppercase}.person-proposal-summary b{display:block;color:var(--form-title);font:650 12px/1.4 var(--form-ui-font);text-transform:capitalize}.duplicate-check{margin:20px 0}.duplicate-check>p{margin:0 0 10px;color:var(--form-help);font:400 11px/1.45 var(--form-ui-font)}.admin-review-note{box-sizing:border-box;width:100%;min-height:var(--field-min-height);padding:12px 13px;border:1px solid var(--field-line);border-radius:var(--field-radius);background:var(--field-bg);color:var(--field-ink);font:var(--field-font);resize:vertical}.admin-review-note::placeholder{color:var(--field-placeholder)}.admin-review-note:focus{border-color:var(--field-focus-line);outline:2px solid var(--field-focus-ring);outline-offset:1px}.person-review-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:17px;border-top:1px solid var(--admin-line)}.person-review-actions .admin-primary,.person-review-actions .admin-danger{min-height:var(--btn-min-height);padding:0 16px}.person-review-actions button:disabled{cursor:wait;opacity:.55}
.admin-loading,.admin-error{display:grid;place-items:center;min-height:70vh;padding:30px;text-align:center;color:var(--form-help)}
.admin-loading span{width:28px;height:28px;border:2px solid var(--form-card-line);border-top-color:var(--form-accent);border-radius:50%;animation:adminSpin .7s linear infinite}
.admin-loading p{font:600 12px/1.4 var(--form-ui-font)}
.admin-error h2{margin:0 0 8px;color:var(--form-title);font:500 24px/1.2 var(--form-display-font)}
.admin-error p{max-width:340px;margin:0 0 15px;font:400 12px/1.5 var(--form-ui-font)}
.admin-error button{min-height:var(--btn-min-height);padding:0 16px;border:1px solid var(--btn-primary-line);border-radius:var(--btn-radius);background:var(--btn-primary-bg);color:var(--btn-primary-ink);font:var(--btn-font);cursor:pointer}

/* The classic theme is carried by the forms.css tokens; these restate the drawer paper and pending tints. */
body.classic-tree-mode .admin-panel{background:var(--form-drawer-bg)}
body.classic-tree-mode .admin-panel-head,body.classic-tree-mode .admin-tabs,body.classic-tree-mode .admin-panel-head--review{background:#e0c998}
body.classic-tree-mode .admin-count,body.classic-tree-mode .profile-chip .admin-count{border-color:#e0c998}
body.classic-tree-mode .admin-metric--pending{border-color:rgba(120,66,48,.4);background:rgba(120,66,48,.1)}
body.classic-tree-mode .admin-metric--pending strong,body.classic-tree-mode .status-pill--pending{color:#7c4930}
body.classic-tree-mode .status-pill--pending{background:rgba(120,66,48,.12)}
body.classic-tree-mode .admin-tabs button span{background:rgba(82,51,25,.12)}

@keyframes adminSlide{from{transform:translateX(28px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes adminFade{from{opacity:0}to{opacity:1}}
@keyframes adminSpin{to{transform:rotate(360deg)}}
@media(max-width:720px){
  .admin-access-btn{width:40px;padding:0;justify-content:center}
  .admin-access-btn>span{display:none}
  .admin-count{position:absolute;top:-6px;right:-6px}
  .admin-panel-head{padding:21px 18px 17px}
  .admin-panel-head h2{font-size:21px}
  .admin-overview{padding:0 18px 16px}
  .admin-tabs{top:79px;padding:0 18px 12px}
  .admin-panel-body{padding:20px 18px 32px}
  .admin-toast{margin-left:18px;margin-right:18px}
  .admin-metric{padding:12px}
  .admin-metric strong{font-size:22px}
  .admin-overview{grid-template-columns:repeat(2,1fr)}
  .admin-tabs{overflow-x:auto}
  .person-proposal-summary{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.admin-panel,.admin-scrim,.admin-loading span{animation:none}.admin-access-btn{transition:none}}
