.action-card{margin-top:22px;padding:16px;background:#f6f8f5;border:1px solid var(--line);border-radius:12px}
.action-card h3{margin:0 0 12px}
.inline-form,.form-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.inline-form input:not([type=checkbox]){flex:1;min-width:130px}
.stack-form{display:grid;gap:10px}
.stack-form textarea{min-height:90px;resize:vertical}
.stack-form input:not([type=checkbox]),.stack-form textarea,.stack-form select,.inline-form input:not([type=checkbox]),.phone-row select{border:1px solid #d6dcd7;border-radius:8px;padding:9px;background:#fff}
.stack-form button,.inline-form button,.phone-row button{border:0;border-radius:8px;background:var(--green);color:#fff;padding:9px 13px;font-weight:700;cursor:pointer}
.stack-form button{justify-self:end}
.add-contact{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.phone-list{display:grid;gap:7px}
.phone-row{display:grid;grid-template-columns:minmax(180px,1fr) 140px auto auto auto 30px;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px}
.phone-row small{display:block;color:var(--muted)}
#toast{position:fixed;right:24px;bottom:24px;background:#173e31;color:#fff;padding:12px 17px;border-radius:9px;box-shadow:0 12px 40px #0003;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:20}
#toast.visible{opacity:1;transform:none}
@media(max-width:760px){.phone-row{grid-template-columns:1fr 1fr}.phone-row>div{grid-column:1/-1}}
.email-list{display:grid;gap:7px}
.email-row{display:grid;grid-template-columns:minmax(240px,1fr) 150px auto auto 30px;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px}
.email-row small{display:block;color:var(--muted)}
.email-row select,.email-row button,.admin-form input,.admin-form select,.row-actions button,#user-list input,#user-list select{border:1px solid #d6dcd7;border-radius:8px;padding:8px;background:#fff}
.email-row button,.primary-button,.admin-form button,.row-actions button{border:0;background:var(--green);color:#fff;font-weight:700;cursor:pointer}
.primary-button{padding:10px 14px;border-radius:8px}
.admin-form{display:grid;grid-template-columns:1fr 1fr 1fr 180px auto;gap:9px;padding:16px 24px;background:#f6f8f5;border-top:1px solid var(--line)}
.row-actions{white-space:nowrap}.row-actions button{margin-right:5px}.row-actions button+button{background:#637269}
#user-list input[name=name]{width:100%;font-weight:700}
@media(max-width:900px){.admin-form{grid-template-columns:1fr 1fr}.email-row{grid-template-columns:1fr 1fr}.email-row>div{grid-column:1/-1}}
.roles-panel{margin-top:18px}.role-form{padding:18px 24px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr auto;gap:10px}.role-form>input,.role-card input{border:1px solid #d6dcd7;border-radius:8px;padding:9px}.role-form .permission-grid{grid-column:1/-1}.role-form>button,.role-card>button{border:0;border-radius:8px;background:var(--green);color:#fff;padding:9px 14px;font-weight:700;cursor:pointer}.role-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 24px 24px}.role-card{border:1px solid var(--line);border-radius:12px;padding:15px}.role-card-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.role-card-head>div{display:grid;gap:7px;flex:1}.role-card-head input[name=name]{font-weight:800;font-size:16px}.role-card-head span{color:var(--muted);font-size:12px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:12px}.permission-grid label{display:flex;align-items:center;gap:7px;background:#f6f8f5;border-radius:7px;padding:7px;font-size:12px}.admin-form select[multiple],#user-list select[multiple]{min-height:72px}.admin-form{grid-template-columns:1fr 1fr 220px auto}@media(max-width:900px){.role-list{grid-template-columns:1fr}.role-form{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.admin-form{grid-template-columns:1fr 1fr}}
.bulk-form { display: grid; gap: 18px; }
.bulk-results-table { min-width: 1480px; }
.bulk-results-table th:first-child,
.bulk-results-table td:first-child { width: 48px; text-align: center; }
.bulk-results-table th,
.bulk-results-table td { white-space: nowrap; }
.bulk-results-table td:nth-child(6) { min-width: 260px; white-space: normal; }
.bulk-form fieldset { border: 1px solid var(--border); border-radius: 12px; padding: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bulk-form legend { padding: 0 8px; color: var(--text); font-weight: 700; }
.bulk-form textarea { grid-column: 1 / -1; min-height: 96px; resize: vertical; }
.bulk-confirm, .bulk-confirm > div { display: flex; align-items: center; gap: 18px; }
.bulk-confirm strong { color: var(--accent); font-size: 1.5rem; }
@media (max-width: 760px) {
  .bulk-form fieldset { grid-template-columns: 1fr; }
  .bulk-confirm, .bulk-confirm > div { align-items: stretch; flex-direction: column; }
}
.campaign-name-link { background: none; border: 0; color: var(--accent); padding: 0; text-align: left; cursor: pointer; }
#contacts-context { margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; display: flex; align-items: center; justify-content: space-between; }
#contacts-context.hidden { display: none; }
#app-view th:not(:has(input)) { cursor: pointer; user-select: none; }
#app-view th.sort-asc::after { content: " ▲"; color: var(--accent); }
#app-view th.sort-desc::after { content: " ▼"; color: var(--accent); }
.password-form {
  max-width: 520px;
}
