.woocommerce-MyAccount-content{background:#f3f4f5;padding:24px}.abs-parent header{display:flex;justify-content:space-between}.eyebrow{font-size:11px;text-transform:uppercase;color:#646970}.parent-tabs{display:flex;gap:24px;border-bottom:1px solid #ddd;margin-bottom:20px}.parent-tabs button{border:0;background:none;padding:13px}.parent-tabs .active{border-bottom:3px solid #3858e9;font-weight:600}.parent-pane{display:none}.parent-pane.active{display:block}.student-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.student-grid article,.parent-card{background:#fff;border:1px solid #ddd;border-radius:9px;padding:20px}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e9ecff;color:#3858e9}.parent-card{padding:0;overflow:hidden}.parent-card table{width:100%;border-collapse:collapse}.parent-card th,.parent-card td{padding:13px;border-bottom:1px solid #eee;text-align:left}.parent-card th{background:#f8f9fa}.parent-list{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid #eee}.badge{border-radius:99px;padding:3px 9px;background:#eee}.badge.published{background:#d7f0df}.empty{text-align:center;padding:30px}#student-modal{position:fixed;inset:0;background:#0008;z-index:99999;padding:5vh}.dialog{position:relative;background:#fff;max-width:650px;margin:auto;padding:24px;border-radius:9px}.dialog label{display:block;margin:12px}.dialog input,.dialog select{width:100%}.close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:28px}@media(max-width:700px){.student-grid{grid-template-columns:1fr}.abs-parent header{flex-direction:column}}
/* v0.7.1 parent UI refinements */
.abs-parent .button,.abs-checkout-student .button{font-size:13px!important;line-height:1.4!important;min-height:0!important;padding:7px 12px!important;border-radius:4px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;max-width:max-content!important;}
.parent-tabs button{color:#2271b1!important;font-size:14px!important;font-weight:600!important;background:transparent!important;width:auto!important;min-height:0!important;line-height:1.4!important;}
.parent-tabs .active{color:#2271b1!important;border-bottom-color:#2271b1!important;}
.badge{display:inline-flex!important;align-items:center!important;width:auto!important;max-width:max-content!important;font-size:12px!important;line-height:1.3!important;padding:3px 8px!important;font-weight:600!important;}
.parent-list{gap:16px;align-items:flex-start;}
.parent-list-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.parent-list small{display:block;color:#646970;margin-top:4px;}
.abs-small-button{font-size:12px!important;padding:5px 10px!important;}
.abs-checkout-student{background:#fff;border:1px solid #dcdcde;border-radius:8px;padding:18px;margin:20px 0;}
.abs-checkout-student h3{margin-top:0;}

/* v0.7.2 WooCommerce parity refinements */
.woocommerce-account .woocommerce-MyAccount-content{width:100%!important;max-width:none!important;box-sizing:border-box;}
.abs-parent{max-width:none;width:100%;}
.abs-parent header{align-items:flex-start;gap:16px;margin-bottom:24px;}
.abs-parent header .button,#add-student{width:auto!important;max-width:max-content!important;min-width:0!important;height:auto!important;min-height:32px!important;padding:7px 14px!important;font-size:13px!important;line-height:1.4!important;border-radius:4px!important;white-space:nowrap;}
.parent-tabs{background:#fff;border:1px solid #dcdcde;border-radius:8px 8px 0 0;padding:0 18px;margin-bottom:0;}
.parent-tabs button{color:#2271b1!important;background:transparent!important;border:0!important;border-bottom:3px solid transparent!important;width:auto!important;min-width:0!important;padding:14px 4px!important;margin-right:22px!important;font-size:14px!important;font-weight:600!important;line-height:1.3!important;}
.parent-tabs button.active{color:#2271b1!important;border-bottom-color:#2271b1!important;border-radius:0px!important;}
.parent-pane{background:#fff;border:1px solid #dcdcde;border-top:0;border-radius:0 0 8px 8px;padding:22px;box-sizing:border-box;}
.student-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:1rem;}
.student-grid article,.parent-card{box-shadow:0 1px 1px rgba(0,0,0,.04);}
.parent-card table{width:100%!important;min-width:100%;}
.parent-card th,.parent-card td{font-size:14px;}
.parent-list{align-items:center;gap:18px;}
.parent-list-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.badge,.badge.published{display:inline-flex!important;width:auto!important;max-width:max-content!important;min-width:0!important;font-size:12px!important;line-height:1.3!important;padding:3px 8px!important;border-radius:999px!important;}
.abs-small-button,.parent-list .button{width:auto!important;max-width:max-content!important;min-width:0!important;min-height:30px!important;padding:6px 10px!important;font-size:12px!important;line-height:1.35!important;border-radius:4px!important;}
#student-modal{display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;background:rgba(0,0,0,.55);}
#student-modal[hidden]{display:none!important;}
#student-modal .dialog{width:min(760px,calc(100vw - 32px));background:#fff;border:1px solid #dcdcde;border-radius:12px;box-shadow:0 16px 50px rgba(0,0,0,.25);padding:28px;box-sizing:border-box;}
#student-modal .dialog h3{font-size:20px;margin:0 52px 18px 0;}
#student-modal .close{display:flex!important;align-items:center;justify-content:center;position:absolute;right:18px;top:18px;width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border:1px solid #c3c4c7!important;border-radius:4px;background:#fff!important;color:#1d2327!important;font-size:22px!important;line-height:1!important;opacity:1!important;visibility:visible!important;cursor:pointer;}
#student-modal .close:hover{background:#f6f7f7!important;color:#2271b1!important;border-color:#2271b1!important;}
#student-modal label{display:block;margin:0 0 16px;font-weight:600;color:#1d2327;}
#student-modal input,#student-modal select{box-sizing:border-box;width:100%!important;max-width:none!important;min-height:38px;border:1px solid #8c8f94;border-radius:4px;padding:6px 10px;background:#fff;}
#student-modal form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;}
#student-modal form input[type=hidden],#student-modal form .button{grid-column:auto;}
#student-modal form button.button-primary{width:auto!important;max-width:max-content!important;padding:8px 16px!important;margin-top:4px;}
.abs-checkout-student{background:#fff;border:1px solid #dcdcde;border-radius:8px;padding:18px 20px;margin:18px 0;}
.abs-checkout-student h3{font-size:18px;margin:0 0 8px;}
#order_abs_checkout_student_field select,#abs_checkout_student{width:100%!important;max-width:none!important;min-height:38px;}
@media(max-width:720px){#student-modal form{grid-template-columns:1fr}.abs-parent header{flex-direction:column}.parent-list{flex-direction:column;align-items:flex-start}.parent-list-actions{justify-content:flex-start}}

/* v0.7.3 parent layout and theme hover repair */
.woocommerce-account .woocommerce-MyAccount-content{width:calc(100% - 280px)!important;max-width:100%!important;overflow-x:hidden!important;padding:20px!important;}
.woocommerce-account .woocommerce-MyAccount-navigation{box-sizing:border-box;}
.abs-parent{width:100%!important;max-width:100%!important;overflow:hidden;box-sizing:border-box;}
.parent-tabs{overflow-x:auto;}
.parent-tabs button:hover,.parent-tabs button:focus{color:#135e96!important;background:#f6f7f7!important;outline:1px solid transparent!important;box-shadow:none!important;}
.parent-tabs button.active:hover{background:#fff!important;}
.parent-pane,.parent-card{max-width:100%;box-sizing:border-box;}
.parent-card{overflow-x:auto;}
.abs-parent header .button,#add-student,.edit-student{width:auto!important;max-width:max-content!important;min-width:0!important;}
@media(max-width:960px){.woocommerce-account .woocommerce-MyAccount-content{width:100%!important;padding:16px!important;}.woocommerce-account .woocommerce-MyAccount-navigation{width:100%!important;float:none!important}.woocommerce-account .woocommerce-MyAccount-content{float:none!important}}

/* v0.7.6 parent dashboard cards and theme hover */
.parent-tabs button:hover,.parent-tabs button:focus{background:var(--global-palette2)!important;color:#fff!important;border-radius:4px 4px 0 0;}
.parent-tabs button.active:hover{background:var(--global-palette2)!important;color:#fff!important;}
.abs-dashboard-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 28px;}
.abs-dash-action{display:block;text-decoration:none;background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:18px 20px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease;}
.abs-dash-action:hover,.abs-dash-action:focus{border-color:var(--global-palette2,#2271b1);box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-1px);}
.abs-dash-action span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#646970;font-weight:700;margin-bottom:8px;}
.abs-dash-action strong{display:block;color:#1d2327;font-size:22px;line-height:1.1;margin-bottom:7px;}
.abs-dash-action small{display:block;color:#646970;line-height:1.45;}
.abs-dash-action.required{border-left:4px solid #d63638;}
.abs-dash-action.ok{border-left:4px solid #00a32a;}
.abs-parent-banner{border:1px solid #dcdcde;border-radius:8px;padding:14px 16px;margin:0 0 18px;background:#fff;}
.abs-parent-banner strong{display:block;margin-bottom:4px;}.abs-parent-banner p{margin:0;color:#646970;}
.abs-parent-banner.warning{border-left:4px solid #d63638;background:#fff8f8;}.abs-parent-banner.ok{border-left:4px solid #00a32a;background:#f7fcf8;}
@media(max-width:840px){.abs-dashboard-cards{grid-template-columns:1fr}}

/* v0.7.7 clear academic period label */
.abs-dash-action strong{font-size:18px!important;line-height:1.25!important;}

/* ============================================================
   v0.7.8 — Parent portal loading and motion
   ============================================================ */

:root {
    --abs-motion-fast: 140ms;
    --abs-motion-normal: 220ms;
    --abs-ease: cubic-bezier(.2,.8,.2,1);
}

/* --- Skeletons --- */
.abs-skeleton-card,
.abs-skeleton-line {
    display: block;
    position: relative;
    overflow: hidden;
    background: #eef0f2;
    border-radius: 8px;
}

.abs-skeleton-card { height: 150px; }
.abs-skeleton-line { height: 18px; margin: 0 0 10px; }
.abs-skeleton-line.short { width: 48%; }

.abs-skeleton-card::after,
.abs-skeleton-line::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);
    animation: abs-shimmer 1.15s infinite;
}

@keyframes abs-shimmer { 100% { transform: translateX(100%); } }

.abs-skeleton-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
    gap: 16px;
    padding: 4px 0;
}

/* --- Button + link loading --- */
.abs-parent .button.is-loading,
.abs-dash-action.is-loading {
    pointer-events: none;
    opacity: .72;
}

.abs-parent .button.is-loading::after {
    content: "";
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-left: 8px;
    vertical-align: -2px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: abs-spin .7s linear infinite;
}

@keyframes abs-spin { to { transform: rotate(360deg); } }

/* --- Pane + card transitions --- */
.parent-pane.active {
    animation: abs-pane-in var(--abs-motion-normal) var(--abs-ease);
}

@keyframes abs-pane-in {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.abs-dash-action,
.student-grid article,
.parent-list,
.parent-tabs button {
    transition: background-color var(--abs-motion-fast) var(--abs-ease),
                border-color var(--abs-motion-fast) var(--abs-ease),
                box-shadow var(--abs-motion-fast) var(--abs-ease),
                transform var(--abs-motion-fast) var(--abs-ease),
                color var(--abs-motion-fast) var(--abs-ease);
}

.student-grid article:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0,0,0,.07);
}

.parent-list:hover { background: #fafbfc; }

/* --- Modal transition + field polish --- */
#student-modal .dialog {
    animation: abs-dialog-in 180ms var(--abs-ease);
}

@keyframes abs-dialog-in {
    from { opacity: 0; transform: translateY(8px) scale(.985); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

#student-modal input:not([type="checkbox"]):not([type="radio"]),
#student-modal select {
    border: 1px solid #8c8f94 !important;
    border-top: 1px solid #8c8f94 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    transition: border-color var(--abs-motion-fast) var(--abs-ease),
                box-shadow var(--abs-motion-fast) var(--abs-ease);
}

#student-modal input:focus,
#student-modal select:focus {
    border-color: var(--global-palette2, #2271b1) !important;
    box-shadow: 0 0 0 1px var(--global-palette2, #2271b1) !important;
    outline: 2px solid transparent;
}

/* --- Reduced motion --- */
@media (prefers-reduced-motion: reduce) {
    .parent-pane.active,
    #student-modal .dialog,
    .abs-skeleton-card::after,
    .abs-skeleton-line::after,
    .abs-parent .button.is-loading::after {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* v0.9.3 — school logo on My BookStore BookList cards */
.parent-list.has-logo {
    align-items: center;
}

.parent-list .abs-list-logo {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-right: 14px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.parent-list .abs-list-logo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    padding: 4px;
    box-sizing: border-box;
    margin: 0;
}

.parent-list.has-logo > div:first-of-type {
    flex: 1 1 auto;
    min-width: 0;
}