.contacts-shell{
  width:100%;
  max-width:none;
  min-width:0;
  align-self:start;
  color:#17202d;
  --contacts-border:#e4e8eb;
  --contacts-border-soft:#edf0f2;
  --contacts-ink:#18212e;
  --contacts-muted:#727d89;
}
.contacts-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-bottom:20px;
}
.contacts-topbar h1{
  margin:0 0 6px;
  font-size:30px;
  line-height:1.08;
  letter-spacing:0;
}
.contacts-topbar p{
  margin:0;
  color:#6f7986;
  font-size:14.5px;
  line-height:1.5;
}
.contacts-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
  min-width:0;
}
.contacts-button{
  min-height:44px;
  border:1px solid var(--contacts-border);
  border-radius:8px;
  background:#fff;
  color:#27313f;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 16px;
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}
.contacts-button:hover{border-color:#ff9e6b;background:#fffaf7;transform:translateY(-1px)}
.contacts-button:focus-visible{outline:3px solid rgba(255,90,0,.18);outline-offset:2px}
.contacts-button.primary{border-color:#ff5a00;background:#ff5a00;color:#fff;box-shadow:0 7px 18px rgba(255,90,0,.16)}
.contacts-button.primary:hover{border-color:#e94f00;background:#e94f00}
.contacts-button.danger{border-color:#f1c3c3;color:#b62e2e;background:#fff}
.contacts-button.icon-only{width:44px;padding:0}
.contacts-button svg,
.contacts-stat-icon svg,
.contacts-row-button svg,
.contacts-birthday-cake svg{
  display:block;
  overflow:visible;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contacts-button svg{width:17px;height:17px;flex:0 0 auto}
.contacts-birthday-button{position:relative;border-color:#eadfd8;background:#fff;color:#a94414}
.contacts-birthday-count{
  min-width:21px;
  height:21px;
  border-radius:999px;
  background:#ff5a00;
  color:#fff;
  display:inline-grid;
  place-items:center;
  padding:0 6px;
  font-size:11px;
  font-weight:900;
}
.contacts-birthday-count:empty{display:none}
.contacts-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  margin-bottom:16px;
  border:1px solid var(--contacts-border);
  border-radius:10px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 6px 20px rgba(29,39,51,.035);
}
.contacts-stat{
  min-height:94px;
  border:0;
  border-radius:0;
  background:transparent;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 24px;
}
.contacts-stat + .contacts-stat{border-left:1px solid #edf0f2}
.contacts-stat-icon{
  width:42px;
  height:42px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#fff1e9;
  color:#f45508;
  flex:0 0 42px;
  overflow:visible;
}
.contacts-stat:nth-child(2) .contacts-stat-icon{background:#fff8dc;color:#9c7100}
.contacts-stat:nth-child(3) .contacts-stat-icon{background:#edf7f1;color:#278758}
.contacts-stat-icon svg{width:19px;height:19px}
.contacts-stat > div > span{display:block;color:#707a87;font-size:12px;font-weight:800;margin-bottom:8px}
.contacts-stat > div > strong{display:block;color:#17202d;font-size:25px;line-height:1;font-weight:850}
.contacts-workspace{
  display:block!important;
  width:100%;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  align-self:start!important;
  border:1px solid var(--contacts-border);
  border-radius:10px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 6px 20px rgba(29,39,51,.035);
}
.contacts-toolbar{
  padding:18px 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:end;
  margin-bottom:16px;
  border:1px solid var(--contacts-border);
  border-radius:10px;
  background:#fff;
  box-shadow:0 6px 20px rgba(29,39,51,.035);
}
.contacts-search-label,.contacts-filter-label{display:grid!important;grid-template-rows:auto 48px;gap:9px;min-width:0;margin:0!important}
.contacts-field-title{display:block;color:#3f4a58;font-size:12px;line-height:1.2;font-weight:850;letter-spacing:0}
.contacts-search-wrap{position:relative!important;display:block!important;width:100%;height:48px!important;min-width:0;line-height:0}
.contacts-search-wrap svg{position:absolute!important;z-index:2;left:16px!important;top:15px!important;width:18px!important;height:18px!important;margin:0!important;color:#89939f;transform:none!important;pointer-events:none;display:block!important;overflow:visible;stroke-linecap:round;stroke-linejoin:round}
.contacts-search-wrap input,
.contacts-filter-label select,
.contacts-modal input,
.contacts-modal select,
.contacts-modal textarea{
  width:100%;
  height:48px;
  min-height:48px;
  border:1px solid #dfe4e8;
  border-radius:9px;
  background:#fff;
  color:#18212f;
  padding:0 14px!important;
  font:inherit;
  font-size:13.5px;
  font-weight:650;
  outline:none;
}
.contacts-search-wrap input{display:block!important;height:48px!important;min-height:48px!important;margin:0!important;padding:0 16px 0 46px!important;line-height:48px!important;appearance:none;-webkit-appearance:none;box-sizing:border-box!important}
.contacts-search-wrap input::-webkit-search-decoration,.contacts-search-wrap input::-webkit-search-cancel-button{appearance:none;-webkit-appearance:none}
.contacts-modal textarea{min-height:108px;padding-top:12px;resize:vertical}
.contacts-search-wrap input:focus,
.contacts-filter-label select:focus,
.contacts-modal input:focus,
.contacts-modal select:focus,
.contacts-modal textarea:focus{border-color:#ff7f3f;box-shadow:0 0 0 3px rgba(255,90,0,.11)}
.contacts-filter-label select{height:48px!important;min-height:48px!important;margin:0!important;font-size:13.5px;color:#27313f;padding:0 38px 0 14px!important;box-sizing:border-box!important}
.contacts-toolbar-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;height:48px;min-height:48px}
.contacts-alpha{
  display:flex;
  align-items:center;
  gap:4px;
  padding:12px 18px;
  overflow-x:auto;
  border-bottom:1px solid #edf0f2;
  scrollbar-width:thin;
}
.contacts-alpha button{
  min-width:30px;
  height:30px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#6e7783;
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.contacts-alpha button:hover{background:#f4f6f7;color:#151d28}
.contacts-alpha button.active{background:#17202d;color:#fff}
.contacts-selection-bar{
  min-height:48px;
  padding:8px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:#fff9f5;
  border-bottom:1px solid #fee1d1;
}
.contacts-selection-bar[hidden]{display:none}
.contacts-selection-bar strong{font-size:13px;color:#bb4208}
#contactsSection .contacts-table-wrap{display:block!important;width:100%!important;height:auto;min-height:0!important;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;flex:0 0 auto!important;position:static!important}
#contactsSection .contacts-table{display:table!important;width:100%!important;height:auto!important;min-height:0!important;border-collapse:collapse;table-layout:fixed;margin:0!important}
.contacts-table thead{display:table-header-group!important}
.contacts-table tbody{display:table-row-group!important;height:auto!important;min-height:0!important}
.contacts-table tr{height:auto!important;min-height:0!important}
.contacts-table th{
  height:48px;
  padding:14px 16px;
  background:#f7f9fa;
  border-bottom:1px solid #e7ebee;
  color:#6e7885;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  text-align:left;
  line-height:1.25;
  white-space:nowrap;
}
.contacts-table td{
  height:58px;
  padding:11px 16px;
  border-bottom:1px solid #edf0f2;
  color:#27313e;
  font-size:12.5px;
  line-height:1.35;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.contacts-table tr:hover td{background:#fcfcfb}
.contacts-table th:nth-child(1),.contacts-table td:nth-child(1){width:3.5%;text-align:center}
.contacts-table th:nth-child(2),.contacts-table td:nth-child(2){width:19%}
.contacts-table th:nth-child(3),.contacts-table td:nth-child(3){width:18%}
.contacts-table th:nth-child(4),.contacts-table td:nth-child(4){width:13%}
.contacts-table th:nth-child(5),.contacts-table td:nth-child(5){width:19%}
.contacts-table th:nth-child(6),.contacts-table td:nth-child(6){width:12%}
.contacts-table th:nth-child(7),.contacts-table td:nth-child(7){width:8%}
.contacts-table th:nth-child(8),.contacts-table td:nth-child(8){width:7.5%}
.contacts-name{display:flex;align-items:center;gap:10px;min-width:0}
.contacts-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:#fff0e7;
  color:#e95309;
  font-size:12px;
  font-weight:900;
}
.contacts-name-copy{min-width:0}
.contacts-name-copy strong{display:block;color:#17202c;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contacts-name-copy span{display:block;color:#87909b;font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contacts-link{color:#2d5f8b;text-decoration:none}
.contacts-link:hover{text-decoration:underline}
.contacts-muted{color:#8b949f}
.contacts-birthday-pill{display:inline-flex;align-items:center;gap:6px;color:#805b00;font-weight:800;white-space:nowrap}
.contacts-birthday-pill.is-today{background:#fff4c7;border-radius:999px;padding:6px 9px;color:#775000}
.contacts-row-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.contacts-row-button{
  width:32px;
  height:32px;
  border:1px solid #dfe4e8;
  border-radius:7px;
  background:#fff;
  color:#596572;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.contacts-row-button:hover{border-color:#ff9e6b;color:#e64f00;background:#fff9f5}
.contacts-row-button.danger:hover{border-color:#edb8b8;color:#b62e2e;background:#fff7f7}
.contacts-row-button svg{width:15px;height:15px}
.contacts-empty{
  height:260px;
  display:grid;
  place-items:center;
  text-align:center;
  color:#7c8692;
  padding:32px;
}
.contacts-empty svg{width:34px;height:34px;color:#ff5a00;margin-bottom:12px}
.contacts-empty strong{display:block;color:#1d2632;font-size:17px;margin-bottom:5px}
#contactsSection .contacts-pagination{
  position:static!important;
  min-height:60px;
  height:auto!important;
  margin:0!important;
  padding:12px 16px;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-top:1px solid #edf0f2;
  color:#77818d;
  font-size:12.5px;
  flex:0 0 auto!important;
  transform:none!important;
}
.contacts-page-controls{display:flex;align-items:center;gap:8px}
.contacts-page-controls button{width:34px;height:34px;min-height:34px;padding:0}
.contacts-overlay{
  position:fixed;
  inset:0;
  z-index:20020;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(15,21,30,.44);
  backdrop-filter:blur(3px);
}
.contacts-overlay[hidden]{display:none}
.contacts-modal{
  width:min(760px,100%);
  max-height:calc(100dvh - 44px);
  overflow-y:auto;
  border:1px solid #e2e6e9;
  border-radius:10px;
  background:#fff;
  box-shadow:0 28px 80px rgba(13,20,29,.2);
}
.contacts-modal.is-small{width:min(480px,100%)}
.contacts-modal.is-wide{width:min(880px,100%)}
.contacts-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px 18px;border-bottom:1px solid #edf0f2}
.contacts-modal-head h2{margin:2px 0 5px;font-size:23px;letter-spacing:0}
.contacts-modal-head p{margin:0;color:#747e8a;font-size:13px;line-height:1.45}
.contacts-modal-close{width:38px;height:38px;border:0;border-radius:8px;background:#f2f5f6;color:#54606d;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.contacts-modal-close:hover{background:#e9edef;color:#17202d}
.contacts-modal-close svg{width:19px;height:19px}
.contacts-modal-body{padding:22px 24px}
.contacts-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contacts-form-field{display:grid;gap:7px;color:#505c69;font-size:12px;font-weight:850}
.contacts-form-field.full{grid-column:1/-1}
.contacts-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid #edf0f2}
.contacts-modal[data-mode="view"] .contacts-edit-only{display:none}
.contacts-modal[data-mode="view"] input,.contacts-modal[data-mode="view"] select,.contacts-modal[data-mode="view"] textarea{background:#f7f9fa;color:#45515f;pointer-events:none}
.contacts-birthday-list{display:grid;gap:10px}
.contacts-birthday-head{
  position:relative;
  overflow:hidden;
  align-items:center;
  padding-right:76px;
  background:#fffaf5;
}
.contacts-birthday-head::before,
.contacts-birthday-head::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.contacts-birthday-head::before{width:9px;height:9px;right:128px;top:23px;background:#ff5a00;box-shadow:22px 18px 0 #f0b90b,44px -2px 0 #7d3f84}
.contacts-birthday-head::after{width:7px;height:7px;right:154px;bottom:24px;background:#2d9b67;box-shadow:26px 4px 0 #ff8d4f}
.contacts-birthday-eyebrow{display:block;margin-bottom:3px;color:#dc4b00;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.contacts-birthday-head-cake{position:absolute;right:72px;top:50%;translate:0 -50%;font-size:32px;filter:drop-shadow(0 7px 10px rgba(91,55,18,.12))}
.contacts-birthday-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:15px;
  padding:16px 17px;
  border:1px solid #f0dfd3;
  border-radius:10px;
  background:linear-gradient(110deg,#fffaf6 0%,#fff 55%,#fff9e9 100%);
}
.contacts-birthday-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#ff5a00}
.contacts-birthday-cake{width:54px;height:54px;border-radius:10px;background:#fff0d0;color:#956800;display:grid;place-items:center;font-size:28px;box-shadow:inset 0 0 0 1px rgba(239,176,41,.12)}
.contacts-birthday-cake svg{width:22px;height:22px}
.contacts-birthday-today{display:block;margin-bottom:3px;color:#dc4b00!important;font-size:10px!important;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.contacts-birthday-card strong{display:block;color:#17202d;font-size:14px}
.contacts-birthday-card > div > span{display:block;color:#78828e;font-size:12px;margin-top:4px}
.contacts-birthday-card-actions{display:flex;gap:7px}
.contacts-birthday-spark{position:absolute;width:6px;height:6px;border-radius:50%;pointer-events:none}
.contacts-birthday-spark-one{right:20px;top:12px;background:#ff5a00;box-shadow:-18px 12px 0 #7d3f84}
.contacts-birthday-spark-two{right:82px;bottom:10px;background:#f0b90b;box-shadow:22px 1px 0 #2d9b67}
.contacts-birthday-empty{padding:48px 20px;text-align:center;color:#79838f;background:#fffaf6;border:1px dashed #efd8c9;border-radius:10px}
.contacts-birthday-empty-cake{display:block;font-size:34px;margin-bottom:10px}
.contacts-birthday-empty strong{display:block;color:#17202d;margin-bottom:5px}
body.contacts-modal-open{overflow:hidden}
@media(max-width:1100px){
  .contacts-toolbar{grid-template-columns:minmax(0,1fr) auto}.contacts-toolbar-actions{grid-column:auto;justify-content:flex-end}
  .contacts-table th:nth-child(5),.contacts-table td:nth-child(5),.contacts-table th:nth-child(6),.contacts-table td:nth-child(6){display:none}
  .contacts-table th:nth-child(2),.contacts-table td:nth-child(2){width:25%}
  .contacts-table th:nth-child(3),.contacts-table td:nth-child(3){width:24%}
  .contacts-table th:nth-child(4),.contacts-table td:nth-child(4){width:20%}
}
@media(max-width:760px){
  .contacts-topbar{align-items:flex-start;flex-direction:column}.contacts-actions{width:100%;justify-content:flex-start}.contacts-button{min-height:42px}
  .contacts-summary{grid-template-columns:1fr}.contacts-stat{min-height:68px}.contacts-stat + .contacts-stat{border-left:0;border-top:1px solid #edf0f2}
  .contacts-toolbar{grid-template-columns:1fr}.contacts-toolbar-actions{grid-column:auto;overflow-x:auto;padding-bottom:2px}.contacts-toolbar-actions .contacts-button{white-space:nowrap}
  .contacts-table-wrap{display:block!important;overflow:visible;min-height:0;padding:10px}
  .contacts-table,.contacts-table tbody{display:block!important}.contacts-table thead{display:none!important}.contacts-table tr{display:block!important;height:auto!important;border:1px solid #e4e8eb;border-radius:8px;margin-bottom:10px;padding:12px}.contacts-table td{display:flex!important;width:100%!important;height:auto!important;border:0;padding:6px 0;align-items:flex-start;gap:12px}.contacts-table td::before{content:attr(data-label);width:88px;flex:0 0 88px;color:#808a95;font-size:10px;font-weight:900;text-transform:uppercase;padding-top:2px}.contacts-table td:first-child{display:none!important}.contacts-table td:last-child{justify-content:flex-end;border-top:1px solid #edf0f2;margin-top:6px;padding-top:11px}.contacts-table td:last-child::before{display:none}.contacts-row-actions{width:100%}.contacts-name{align-items:flex-start}.contacts-name-copy strong{white-space:normal}.contacts-pagination{align-items:flex-start;flex-direction:column}.contacts-form-grid{grid-template-columns:1fr}.contacts-form-field.full{grid-column:auto}.contacts-birthday-card{grid-template-columns:42px minmax(0,1fr)}.contacts-birthday-card-actions{grid-column:1/-1}.contacts-birthday-card-actions .contacts-button{flex:1}.contacts-modal-head,.contacts-modal-body,.contacts-modal-actions{padding-left:18px;padding-right:18px}
}
