.att-services-admin{max-width:1500px;color:#172554}.att-services-admin *{box-sizing:border-box}.att-services-admin>h1{color:#1A237E;font-weight:800;margin:22px 0 4px}.att-services-subtitle{color:#64748b;margin:0 0 18px}.att-services-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:6px;background:#f3f6fb;border:1px solid #dbe3ef;border-radius:10px;margin:18px 0 20px}.att-services-tabs a{display:inline-flex;align-items:center;text-decoration:none;background:transparent;color:#1A237E;font-weight:700;padding:10px 15px;border-radius:7px}.att-services-tabs a.active{background:#1A237E;color:#fff;box-shadow:0 2px 7px #1a237e20}.att-services-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;min-height:350px}.att-service-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.att-service-toolbar h2{margin:0 0 6px;color:#1A237E}.att-service-toolbar p{margin:0;color:#64748b}.att-service-card{background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:22px;margin:12px 0 20px;box-shadow:0 2px 8px #0f172a08}.att-admin-form label,.att-form-grid label,.att-front-form-grid label,.att-ticket-submit-form label,.att-rep-submit-form label{display:flex;flex-direction:column;gap:7px;color:#1A237E;font-weight:700;font-size:13px}.att-admin-form input:not([type=checkbox]),.att-admin-form select,.att-admin-form textarea,.att-inline-filters input,.att-inline-filters select,.att-form-grid input,.att-form-grid select,.att-front-form-grid input,.att-front-form-grid select,.att-front-form-grid textarea,.att-ticket-submit-form input,.att-ticket-submit-form select,.att-ticket-submit-form textarea,.att-rep-submit-form input,.att-rep-submit-form textarea{width:100%;max-width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#1e293b;min-height:40px}.att-admin-form textarea,.att-front-form-grid textarea,.att-ticket-submit-form textarea,.att-rep-submit-form textarea{min-height:110px;resize:vertical}.att-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.att-form-grid small,.att-admin-form small,.att-front-form-grid small,.att-rep-submit-form small{font-weight:400;color:#64748b}.att-inline-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.att-inline-filters input[type=search]{min-width:210px;flex:1}.att-inline-filters select{width:auto;min-width:150px}.att-services-admin .button-primary,.att-services-admin .att-btn,.att-btn{background:#1A237E!important;border:1px solid #1A237E!important;color:#fff!important;border-radius:7px!important;min-height:38px;padding:8px 15px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer;transition:background .18s,border-color .18s}.att-services-admin .button-primary:hover,.att-btn:hover{background:#00BFA5!important;border-color:#00BFA5!important;color:#062b2a!important}.att-services-admin .button:not(.button-primary){border-radius:7px}.att-bulk-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0}.att-table-scroll{width:100%;overflow:auto;border:1px solid #e2e8f0;border-radius:8px}.att-services-table,.att-front-table{width:100%;min-width:790px;border-collapse:collapse;background:#fff}.att-services-table th,.att-front-table th{background:#1A237E;color:#fff;text-align:left;padding:12px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.att-services-table td,.att-front-table td{padding:12px;border-bottom:1px solid #e8edf4;color:#334155;vertical-align:top;font-size:12px}.att-services-table td small{color:#64748b}.att-services-table tr:hover,.att-front-table tr:hover{background:#f8fafc}.att-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:5px;background:#eef2ff;color:#1A237E;font-size:10px;font-weight:800;white-space:nowrap}.att-priority-urgent,.att-priority-high{background:#fff1f2;color:#be123c}.att-priority-normal{background:#f1f5f9;color:#475569}.att-priority-low{background:#ecfdf5;color:#047857}.att-status-resolved{background:#dcfce7;color:#166534}.att-status-in-progress{background:#e0f2fe;color:#075985}.att-status-awaiting-student{background:#fef3c7;color:#92400e}.att-ticket-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px;margin:15px 0}.att-ticket-meta-grid div{display:flex;flex-direction:column;gap:5px}.att-ticket-meta-grid small{color:#64748b}.att-ticket-description{background:#f8fafc;padding:14px;border-radius:8px;line-height:1.65}.att-directory-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:15px;margin-top:15px}.att-directory-admin-card{position:relative;border:1px solid #dbe3ef;border-radius:11px;background:#fff;padding:18px 14px;text-align:center;box-shadow:0 2px 6px #0f172a08}.att-card-select{position:absolute;top:12px;left:12px}.att-directory-avatar{width:74px;height:74px;border-radius:50%;object-fit:cover;display:block;margin:3px auto 12px;border:2px solid #1A237E}.att-avatar-fallback{display:flex;align-items:center;justify-content:center;background:#eef2ff;color:#1A237E;font-size:25px;font-weight:800}.att-directory-admin-card h3{font-size:14px;margin:0 0 5px;color:#1A237E}.att-directory-tid{color:#475569;font-size:12px;font-weight:700}.att-directory-dept{font-size:11px;color:#64748b;min-height:32px}.att-card-tags,.att-public-badges{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:10px 0}.att-card-tags span,.att-public-badges span{background:#eef2ff;color:#1A237E;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:700}.att-role-label{font-size:11px;color:#475569}.att-card-actions{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:15px}.att-card-actions .button{margin:0}.att-empty-state{padding:28px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px}.att-review-mini-form{min-width:180px;display:grid;gap:6px}.att-review-mini-form select,.att-review-mini-form textarea{width:100%;max-width:240px}.att-review-mini-form textarea{min-height:54px}.att-submission-detail{max-width:330px;white-space:pre-wrap;margin-top:8px;background:#f8fafc;padding:10px;border-radius:6px}.att-settings-checks{display:grid;gap:12px;margin:16px 0}.att-settings-checks label{display:flex;gap:8px;align-items:flex-start}.att-services-admin .notice{margin-top:12px}.attas-spinner{display:none;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:attas-spin .7s linear infinite;vertical-align:middle}.is-loading .attas-spinner{display:inline-block}.is-loading{pointer-events:none;opacity:.82}@keyframes attas-spin{to{transform:rotate(360deg)}}
/* Frontend ticket and representative hub */
.att-ticket-form-card,.att-ticket-history-section,.att-rep-hub{font-family:inherit;color:#1e293b;width:100%;margin:18px 0}.att-ticket-form-card,.att-ticket-history-section,.att-rep-hub{background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0f172a08}.att-front-section-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid #e2e8f0;padding-bottom:14px;margin-bottom:18px}.att-front-section-heading>.dashicons{font-size:28px;width:30px;height:30px;color:#1A237E}.att-front-section-heading h2{color:#1A237E;font-size:19px;margin:0 0 4px}.att-front-section-heading p{margin:0;color:#64748b;font-size:12px}.att-front-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.att-wide-field{grid-column:1/-1}.att-front-success,.att-inline-message{background:#ecfdf5;border:1px solid #a7f3d0;border-left:4px solid #00BFA5;color:#065f46;padding:12px 15px;border-radius:7px;margin:12px 0 18px}.att-inline-message.error{background:#fff1f2;border-color:#fecdd3;border-left-color:#e11d48;color:#9f1239}.att-ticket-history-card{border:1px solid #e2e8f0;border-radius:10px;margin:14px 0;padding:15px;background:#fff}.att-ticket-history-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.att-ticket-history-top small{color:#64748b;font-size:10px}.att-ticket-history-top h3{font-size:16px;color:#1A237E;margin:5px 0}.att-ticket-badges{display:flex;gap:6px;flex-wrap:wrap}.att-ticket-body{line-height:1.65;color:#475569;font-size:13px}.att-ticket-history-meta{display:flex;justify-content:space-between;gap:10px;color:#64748b;font-size:11px;border-top:1px solid #e2e8f0;padding-top:10px}.att-ticket-reply{margin-top:12px;background:#f0fdfa;border-left:4px solid #00BFA5;border-radius:6px;padding:12px;color:#134e4a}.att-ticket-reply strong{color:#1A237E}.att-ticket-reply p{white-space:pre-wrap}.att-services-notice-box{padding:18px;background:#f8fafc;border:1px solid #dbe3ef;border-radius:8px;color:#475569;text-align:center}.att-rep-identity-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:13px;margin-bottom:18px}.att-rep-identity-strip span{display:flex;flex-direction:column;gap:4px}.att-rep-identity-strip small{font-size:10px;color:#64748b}.att-rep-identity-strip strong{color:#1A237E;font-size:12px}.att-rep-submit-form{display:grid;gap:14px}.att-rep-submit-form [data-att-spinner],.att-ticket-submit-form [data-att-spinner]{margin-right:8px}.att-rep-history{margin-top:30px}.att-muted{color:#94a3b8}.att-public-directory-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center;box-shadow:0 4px 10px #0f172a08}.att-public-avatar{width:88px;height:88px;object-fit:cover;border-radius:50%;display:block;margin:0 auto 12px;border:2px solid #1A237E}.att-public-directory-card h3{font-size:16px;margin:0 0 5px;color:#1A237E}.att-public-tid{font-size:12px;color:#475569;font-weight:700}.att-public-directory-card>p{font-size:12px;color:#64748b;min-height:32px}.att-directory-hero{background:#1A237E;color:#fff;border-radius:10px;padding:20px 22px;margin-bottom:15px}.att-directory-hero span{font-size:10px;font-weight:800;letter-spacing:1px}.att-directory-hero h2{color:#fff;margin:7px 0;font-size:23px}.att-directory-hero p{color:#e0e7ff;margin:0;font-size:12px}.att-directory-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:18px}.att-directory-filters input,.att-directory-filters select{min-height:40px;border:1px solid #cbd5e1;border-radius:7px;padding:8px 10px;background:#fff;flex:1;min-width:165px;max-width:100%}.att-directory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:16px}.att-directory-grid.is-loading{opacity:.55}.att-public-badges span{font-size:10px}.att-inline-filters .button,.att-bulk-toolbar .button{display:inline-flex;align-items:center;gap:7px}.att-front-table details{max-width:360px}.att-front-table summary{cursor:pointer;color:#1A237E;font-weight:700;margin-top:5px}.att-front-table details div{white-space:pre-wrap;padding:8px;background:#f8fafc;border-radius:5px;margin-top:6px}
@media(max-width:782px){.att-services-panel{padding:12px}.att-service-toolbar{display:block}.att-form-grid,.att-front-form-grid{grid-template-columns:1fr}.att-wide-field{grid-column:auto}.att-ticket-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.att-rep-identity-strip{grid-template-columns:1fr}.att-ticket-history-top{display:block}.att-ticket-badges{margin:8px 0}.att-directory-filters input,.att-directory-filters select{min-width:100%}.att-inline-filters input,.att-inline-filters select{width:100%;min-width:100%}.att-services-tabs a{padding:9px 10px;font-size:12px}}
.att-public-badges .att-public-status-active{background:#dcfce7;color:#166534}.att-public-badges .att-public-status-other{background:#fef3c7;color:#92400e}

/* ATT Student Services v1.0.1 corrective styles */
.att-services-admin .button,.att-services-admin a.button,.att-services-admin button,
.att-services-admin input[type=submit],.att-services-admin .att-services-tabs a,
.att-btn,.att-ticket-portal button,.att-rep-hub button {border-radius:10px!important}
.att-services-table thead th,.att-front-table thead th {color:#fff!important;background:#1A237E!important}
.att-services-admin .att-service-toolbar h2 {font-weight:800}
.att-directory-admin-card,.att-public-directory-card {border-radius:12px}
.att-directory-avatar,.att-public-avatar {border-radius:50%!important;overflow:hidden;object-fit:cover}
.att-avatar-fallback {border-radius:50%!important}
.att-card-actions {justify-content:center}
.att-card-actions .button {min-height:38px;border-radius:10px!important}
.att-ticket-portal {margin:18px 0}
.att-ticket-portal-actions {display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:0 0 14px;padding:16px 18px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc}
.att-ticket-portal-actions h2 {margin:0 0 4px;color:#1A237E;font-size:20px}
.att-ticket-portal-actions p {margin:0;color:#64748b;font-size:12px}
.att-ticket-form-card[style*="display:none"] {display:none!important}
.att-rep-welcome {padding:19px 20px;margin-bottom:14px;border-radius:12px;background:#1A237E;color:#fff}
.att-rep-welcome>span {font-size:10px;letter-spacing:1.2px;font-weight:800;color:#99f6e4}
.att-rep-welcome h2 {margin:6px 0;color:#fff!important;font-size:23px;font-weight:800}
.att-rep-welcome p {margin:0;color:#e0e7ff;font-size:13px;line-height:1.6}
.att-rep-instructions {margin:0 0 18px;padding:15px 17px;border:1px solid #cbd5e1;border-left:4px solid #00BFA5;border-radius:10px;background:#f8fafc;color:#334155}
.att-rep-instructions strong {display:block;color:#1A237E;margin-bottom:6px}
.att-rep-instructions p {margin:0;line-height:1.65;white-space:pre-wrap}
.att-instructions-setting {display:flex;flex-direction:column;gap:8px;color:#1A237E;font-weight:700}
.att-instructions-setting textarea {width:100%;max-width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:10px}
.attas-spinner {flex:0 0 14px}
.att-services-admin .is-loading .attas-spinner,.att-ticket-submit-form .is-loading .attas-spinner,.att-rep-submit-form .is-loading .attas-spinner {display:inline-block!important}
.att-ticket-submit-form button,.att-rep-submit-form button,.att-inline-filters button,.att-bulk-toolbar button {border-radius:10px!important}
.att-services-popup-overlay {position:fixed;inset:0;z-index:1000000;background:rgba(15,23,42,.48);display:flex;align-items:center;justify-content:center;padding:18px}
.att-services-popup {width:min(420px,100%);background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px 22px;text-align:center;box-shadow:0 22px 70px rgba(15,23,42,.24);font-family:inherit}
.att-services-popup-logo {width:48px;height:48px;border-radius:50%!important;object-fit:cover;display:block;margin:0 auto 10px;border:2px solid #1A237E;background:#fff}
.att-services-popup-brand {font-size:13px;font-weight:800;color:#1A237E;margin:0}
.att-services-popup-tagline {font-size:11px;font-style:italic;color:#64748b;margin:3px 0 14px}
.att-services-popup h3 {font-size:18px;color:#1A237E;margin:0 0 9px}
.att-services-popup-message {font-size:13px;line-height:1.6;color:#475569;margin:0 0 18px;white-space:pre-wrap}
.att-services-popup .att-services-popup-close {background:#1A237E;color:#fff;border:1px solid #1A237E;border-radius:10px;padding:10px 22px;font-weight:800;cursor:pointer}
.att-services-popup .att-services-popup-close:hover {background:#00BFA5;border-color:#00BFA5;color:#042f2e}
.att-services-popup.is-error h3 {color:#b91c1c}
@media(max-width:782px){.att-ticket-portal-actions{align-items:stretch}.att-ticket-portal-actions .att-btn{width:100%}.att-rep-welcome h2{font-size:20px}}

/* v1.0.2: keep table header contrast strong against theme/admin overrides and unify inline spinner states. */
.att-services-admin .att-services-table thead th,
.att-services-admin .att-audit-bulk-form .widefat thead th,
.att-services-admin .att-table-scroll .widefat thead th,
.att-services-admin table.widefat thead th,
.att-services-admin .att-front-table thead th {
  color: #ffffff !important;
  background-color: #1A237E !important;
}
.att-services-admin [data-att-spinner].is-loading .attas-spinner,
.att-ticket-submit-form [data-att-spinner].is-loading .attas-spinner,
.att-rep-submit-form [data-att-spinner].is-loading .attas-spinner {
  display: inline-block !important;
}
.att-services-admin [data-att-spinner],
.att-ticket-submit-form [data-att-spinner],
.att-rep-submit-form [data-att-spinner] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.att-services-admin .button, .att-services-admin button,
.att-ticket-portal button, .att-rep-hub button,
.att-btn, .att-services-popup .att-services-popup-close {
  border-radius: 10px !important;
}

/* v1.0.3: tab navigation and frontend actions use local spinners instead of full-page tab reloads. */
.att-services-tabs a[data-att-tab-load]{display:inline-flex;align-items:center;gap:8px;}
.att-services-tabs a.is-loading .attas-spinner{display:inline-block!important;}
.att-services-panel.is-loading-content{opacity:.56;transition:opacity .15s ease;pointer-events:none;}
.att-rep-submit-form [data-rep-refresh].is-loading .attas-spinner,
.att-ticket-submit-form [data-att-spinner].is-loading .attas-spinner{display:inline-block!important;}
.att-ticket-submit-form [data-att-spinner].is-loading{cursor:wait;}

.att-header-notification-badge{position:absolute!important;top:-7px;right:-7px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin:0;border:2px solid #fff;border-radius:999px;background:#e53935;color:#fff;font:700 11px/1 Arial,sans-serif;vertical-align:middle;box-sizing:border-box;z-index:99;pointer-events:none;}.att-header-notification-badge{animation:none!important;} .att-ticket-submit-form [data-att-spinner].is-loading .attas-spinner{animation:attas-spin .7s linear infinite!important;}


.att-ticket-conversation-section{margin:16px 0}.att-ticket-conversation-section h4{margin:0 0 10px;color:#1A237E;font-size:14px}.att-ticket-conversation{display:grid;gap:10px;margin:10px 0 16px}.att-ticket-conversation-message{border:1px solid #dbe3ef;border-radius:8px;padding:12px 14px;background:#f8fafc}.att-ticket-conversation-message.is-management{background:#f0fdfa;border-left:4px solid #00BFA5}.att-ticket-conversation-message.is-student{background:#f8fafc;border-left:4px solid #1A237E}.att-ticket-conversation-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.att-ticket-conversation-head strong{color:#1A237E;font-size:12px}.att-ticket-conversation-head small{color:#64748b;font-size:10px}.att-ticket-conversation-text{font-size:13px;line-height:1.65;color:#334155;overflow-wrap:anywhere}.att-ticket-conversation-empty{padding:12px;border:1px dashed #cbd5e1;border-radius:7px;color:#64748b;font-size:12px}.att-ticket-reply-form{display:grid;gap:12px;margin-top:14px;padding:15px;border:1px solid #dbe3ef;border-radius:9px;background:#fbfdff}.att-ticket-reply-form label{display:grid;gap:6px;font-weight:600;font-size:12px;color:#334155}.att-ticket-reply-form input[type=email],.att-ticket-reply-form textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:7px;padding:10px 12px;background:#fff;color:#1e293b;font:inherit;font-weight:400}.att-ticket-reply-form small{font-size:11px;line-height:1.5;color:#64748b;font-weight:400}.att-ticket-reply-form p{margin:0}.att-ticket-followup-note{padding:10px 12px;border-radius:7px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px}


/* v1.1.1: hide frontend ticket spinners by default even if the site-wide ATT spinner stylesheet forces them visible. Show and animate only during an active AJAX request. */
.att-ticket-portal button[data-att-spinner] > .attas-spinner,
.att-ticket-portal button[data-att-spinner]:not(.is-loading) .attas-spinner {display:none !important;visibility:hidden !important;animation:none !important;opacity:0 !important;}
.att-ticket-portal button[data-att-spinner].is-loading > .attas-spinner,
.att-ticket-portal button[data-att-spinner].is-loading .attas-spinner {display:inline-block !important;visibility:visible !important;animation:attas-spin .7s linear infinite !important;opacity:1 !important;}
.att-ticket-portal button[data-att-spinner].is-loading {cursor:wait !important;}
.att-ticket-portal button[data-att-spinner]:not(.is-loading) {cursor:pointer;}
