.address-book { max-width: 1400px; margin: 0 auto; color: #19364d; }
.address-book .ab-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.address-book h1 { font-size: 1.8rem; font-weight: 750; margin: .4rem 0; }
.address-book h2 { font-size: 1.15rem; font-weight: 700; margin: 0 0 1rem; }
.address-book p { color: #577084; }
.address-book a { color: #0969aa; }
.address-book .ab-panel { background: #fff; border: 1px solid #d8e3eb; border-radius: 12px; padding: 1.25rem; margin-bottom: 1.25rem; min-width: 0; }
.address-book legend { float: none; width: auto; font-size: 1.1rem; font-weight: 700; padding: 0 .4rem; }
.address-book .ab-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.address-book label:not(.ab-check) { display: flex; flex-direction: column; gap: .4rem; font-size: .9rem; font-weight: 600; }
.address-book input:not([type=checkbox]), .address-book select { width: 100%; min-width: 0; border: 1px solid #bbccd9; background: #fff; color: #19364d; border-radius: 7px; padding: .65rem .75rem; min-height: 43px; }
.address-book input:focus-visible, .address-book select:focus-visible, .address-book button:focus-visible, .address-book a:focus-visible { outline: 3px solid #85c6f2; outline-offset: 2px; }
.address-book .ab-check { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1rem; }
.address-book .ab-departments { display: flex; flex-wrap: wrap; gap: 0 2rem; }
.address-book button, .address-book .ab-primary { display: inline-flex; justify-content: center; align-items: center; border: 1px solid #b8cddd; border-radius: 7px; padding: .65rem 1rem; background: #fff; color: #17547d; text-decoration: none; min-height: 43px; font-weight: 600; }
.address-book .ab-primary { background: #096eb4; color: white; border-color: #096eb4; }
.address-book button:disabled { opacity: .55; cursor: wait; }
.address-book .ab-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem; margin: 1rem 0; }
.address-book .ab-toolbar { display: grid; grid-template-columns: minmax(200px, 2fr) 1fr 1fr auto; align-items: end; gap: 1rem; }
.address-book .ab-error, .address-book .validation-errors { background: #fff1ee; color: #923529; border: 1px solid #ebc6bf; border-radius: 8px; padding: 1rem; }
.address-book .ab-table { overflow-x: auto; }
.address-book table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.address-book th, .address-book td { text-align: left; padding: .85rem .65rem; border-bottom: 1px solid #e2eaf0; }
.address-book thead th { color: #577084; background: #f5f9fc; font-size: .8rem; }
.address-book tbody th small { display: block; color: #6a7e8d; font-weight: 400; }
.address-book .ab-badge { font-size: .8rem; background: #edf4f9; border-radius: 20px; padding: .25rem .6rem; white-space: nowrap; }
.address-book h2 small { color: #647d8f; margin-left: .5rem; font-size: .85rem; }
.address-book .ab-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 900px) { .address-book .ab-fields, .address-book .ab-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .address-book .ab-fields, .address-book .ab-toolbar { grid-template-columns: minmax(0, 1fr); } .address-book .ab-heading { align-items: flex-start; flex-direction: column; } .address-book .ab-panel { padding: 1rem; } }
