.loading-screen { display:grid; min-height:100vh; place-items:center; align-content:center; gap:18px; background:#fffaf1; }
.loading-screen span { width:52px; height:52px; border:6px solid #e8e2ff; border-top-color:#6657d9; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.notice { margin:12px 0; padding:12px 14px; border-radius:12px; color:#913d32; background:#ffebe8; font-weight:700; }
.notice.success { color:#08715b; background:#dff5ed; }
.icon-img { display:block; width:100%; height:100%; object-fit:contain; }
.plain-form { display:grid; gap:14px; }
.plain-form label { display:grid; gap:7px; font-weight:800; }
.plain-form input,.plain-form select,.plain-form textarea { min-height:50px; padding:10px 13px; border:1px solid #d8dce5; border-radius:13px; background:#fff; }
.plain-form textarea { min-height:92px; resize:vertical; }
.form-actions { display:flex; flex-wrap:wrap; gap:10px; }
.form-actions button,.secondary-button { min-height:44px; padding:0 16px; border:1px solid #d8dce5; border-radius:13px; background:#fff; font-weight:800; cursor:pointer; }
.admin-primary { color:#fff!important; border:0!important; background:#5543c4!important; }
.toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.toolbar select { min-height:44px; padding:0 42px 0 13px; border:1px solid #d8dce5; border-radius:12px; background:#fff; }
.item-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.item-actions button { min-height:38px; padding:0 12px; border:1px solid #d8dce5; border-radius:11px; background:#fff; font-weight:800; cursor:pointer; }
.item-actions .danger { color:#b44135; }
.admin-list-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; padding:18px 0; border-top:1px solid #ece9e2; }
.admin-list-card:first-child { border-top:0; }
.admin-list-card p { margin:5px 0 0; color:var(--ink-soft); }
.admin-list-card small { display:block; margin-top:5px; color:#7c8597; }
.modal-backdrop { position:fixed; z-index:100; inset:0; display:grid; padding:18px; place-items:center; background:rgba(24,36,60,.58); }
.modal-card { width:min(720px,100%); max-height:90vh; overflow:auto; padding:28px; border-radius:24px; background:#fff; box-shadow:0 30px 100px rgba(20,25,47,.3); }
.modal-card h2 { margin-top:0; }
.checkbox-list { display:grid; max-height:190px; overflow:auto; gap:8px; padding:10px; border:1px solid #dedfe5; border-radius:12px; }
.checkbox-list label { display:flex; min-height:38px; padding:5px 8px; align-items:center; gap:9px; border-radius:9px; background:#f8f7fb; }
.checkbox-list input { min-height:auto; }
.child-nav .icon-img { width:31px; height:31px; }
.child-nav button { cursor:pointer; }
.reward-art .icon-img { width:94px; height:94px; }
.chore-icon .icon-img { width:52px; height:52px; }
.stat-icon .icon-img { width:46px; height:46px; }
.ledger-icon .icon-img,.request-icon .icon-img { width:38px; height:38px; }
.badge-trail-icons span { overflow:hidden; }
.screen-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
.screen-choice-grid button { min-height:48px; border:1px solid #d8dce5; border-radius:13px; background:#fff; font-weight:800; cursor:pointer; }
.hidden { display:none!important; }
.audit-panel { overflow:visible; }
.audit-summary { border-radius:15px 15px 0 0; }
.save-pill.save-unsaved { color:#805a00; border-color:#ead487; background:#fff7d9; }
.save-pill.save-unsaved::before { background:#e5a92d; }
.family-save-action { min-width:150px; }
.family-save-action:disabled { color:#697184!important; border:1px solid #d8dce3!important; background:#fff!important; }
.passcode-setting-grid { gap:12px; margin-top:18px; }
.passcode-setting-row { display:grid; min-height:84px; padding:14px; grid-template-columns:46px minmax(130px,1fr) minmax(210px,.9fr) minmax(126px,auto); align-items:center; gap:14px; border:1px solid #e2e5eb; border-radius:14px; background:#fafbfc; }
.passcode-setting-row .admin-avatar { width:46px; height:46px; }
.pin-identity strong,.pin-identity small { display:block; }
.pin-identity strong { color:#17233d; font-size:.84rem; }
.pin-identity small { margin-top:3px; color:#7a8496; font-size:.7rem; text-transform:none; }
.pin-input { display:grid; gap:6px; color:#596477; font-size:.7rem; font-weight:760; }
.passcode-setting-row .pin-input input { width:100%; min-height:44px; margin:0; padding:0 12px; border:1px solid #d8dde5; border-radius:9px; background:#fff; color:#17233d; font-size:.84rem; font-variant-numeric:tabular-nums; letter-spacing:.16em; outline:none; }
.passcode-setting-row .pin-input input:focus { border-color:#7b6fe0; box-shadow:0 0 0 3px rgba(103,88,216,.14); }
.pin-actions { display:grid; gap:5px; }
.passcode-setting-row .pin-actions button { width:100%; min-height:44px; padding:0 14px; border:0; border-radius:9px; color:#fff; background:#5141bd; font-size:.74rem; font-weight:760; cursor:pointer; }
.passcode-setting-row .pin-actions button:disabled { color:#9299a6; background:#e7e9ed; cursor:not-allowed; }
.passcode-setting-row .pin-feedback { position:static; min-height:15px; color:#667085; font-size:.65rem; font-style:normal; text-align:center; }
.passcode-setting-row .pin-feedback.success { color:#08745d; }
.passcode-setting-row .pin-feedback.error { color:#ae3f35; }
@media(max-width:900px){
  .passcode-setting-row { grid-template-columns:46px minmax(110px,1fr) minmax(190px,1.15fr); }
  .pin-actions { grid-column:1 / -1; grid-template-columns:minmax(126px,180px) 1fr; align-items:center; }
  .passcode-setting-row .pin-feedback { text-align:left; }
}
@media(max-width:760px){
  .admin-list-card{grid-template-columns:1fr}.item-actions{justify-content:flex-start}.modal-card{padding:20px}.reward-art .icon-img{width:70px;height:70px}
  .family-save-action { width:100%; }
  .passcode-setting-row { padding:14px; grid-template-columns:46px 1fr; }
  .pin-input,.pin-actions { grid-column:1 / -1; }
  .pin-actions { display:grid; grid-template-columns:1fr; }
  .passcode-setting-row .pin-feedback { text-align:center; }
}
