@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@700&display=swap');

:root{--ink:#071c47;--navy:#030d27;--blue:#1764ff;--blue2:#0f48d0;--sky:#eaf2ff;--bg:#f5f7fc;--card:#fff;--line:#e7ebf4;--muted:#71809a;--green:#149969;--red:#d9445e;--shadow:0 18px 45px rgba(13,29,67,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Manrope,Arial,sans-serif}a{text-decoration:none;color:inherit}button,input{font:inherit}.app{min-height:100vh;display:flex}.sidebar{width:264px;background:var(--navy);padding:26px 16px 22px;color:#b9c7e9;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 29px;color:white}.brand img{width:45px;height:45px}.brand b,.brand small{display:block}.brand b{font-size:16px;letter-spacing:-.4px}.brand small{font-size:11px;color:#899ac2;margin-top:1px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:13px;border-radius:12px;padding:12px 13px;font-weight:700;transition:.2s}.nav-item i{font-size:20px;font-style:normal;width:22px;text-align:center;color:#91a6d9}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:linear-gradient(120deg,#1558f4,#0d3bb4);color:#fff;box-shadow:0 8px 20px rgba(16,76,225,.25)}.nav-item.active i{color:#fff}.sidebar-bottom{margin-top:auto;padding:18px 10px 0;border-top:1px solid rgba(255,255,255,.09);font-size:11px;color:#8496c1}.sidebar-bottom b{display:block;color:#e8eeff;font-size:12px;margin:3px 0 9px}.logout{padding:0;border:0;background:none;color:#aab8d9;cursor:pointer;font-weight:700}.logout:hover{color:white}.content{width:calc(100% - 264px);margin-left:264px;padding:34px 42px 55px;max-width:1640px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{text-transform:uppercase;letter-spacing:1.3px;font-size:10px;font-weight:800;color:var(--blue);margin:0 0 4px}.topbar h1{font-size:28px;margin:0;letter-spacing:-1px}.admin-chip{border:1px solid var(--line);padding:7px 11px 7px 7px;border-radius:30px;background:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;gap:8px}.admin-chip span{background:var(--sky);color:var(--blue);font-size:11px;padding:6px;border-radius:50%}.alert{border-radius:12px;padding:12px 15px;font-weight:600;margin:0 0 20px}.alert.success{color:#08714c;background:#e6f8f1;border:1px solid #b8ebd8}.alert.error{color:#a52943;background:#fff0f3;border:1px solid #ffd0d9}.hero{min-height:225px;padding:38px 42px;background:radial-gradient(circle at 85% 15%,#276eff 0,#0c3cc0 32%,#071c47 76%);color:white;border-radius:22px;position:relative;overflow:hidden;display:flex;align-items:center;box-shadow:0 18px 38px rgba(12,59,184,.22)}.hero:after{content:"";position:absolute;width:350px;height:350px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-95px;bottom:-190px}.hero h2{margin:0;font-size:31px;letter-spacing:-1.3px}.hero p:not(.eyebrow){max-width:470px;margin:9px 0 0;color:#ccdcff}.hero .eyebrow{color:#91b3ff}.hero img{width:165px;height:165px;position:absolute;right:65px;top:30px;filter:drop-shadow(0 18px 18px rgba(0,0,0,.18));z-index:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:23px 0}.stat,.card,.guide{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:0 4px 15px rgba(15,34,80,.025)}.stat{padding:20px;transition:.18s}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat b{display:block;font-size:31px;line-height:1.2;margin:8px 0 4px;letter-spacing:-1.5px}.guide{padding:25px 28px}.guide h2,.section-head h2{font-size:18px;margin:0 0 4px;letter-spacing:-.5px}.guide ol{margin:15px 0 0;padding-left:21px;color:#52617c}.guide li{padding:3px}.guide code{background:#eff3fa;border-radius:5px;padding:2px 5px;color:#244fba}.section-head{margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.section-head p{margin:4px 0 0;color:var(--muted)}.card{margin-bottom:18px}.form-card{padding:20px}.inline-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:15px;align-items:end}.inline-form.blacklist-form{grid-template-columns:minmax(180px,.65fr) minmax(240px,1fr) auto}.notification-form{display:grid;gap:16px}.notification-form>.button{justify-self:start}.checks{display:flex;gap:10px;flex-wrap:wrap}.checks label{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:#41506d;font-size:12px;font-weight:700;cursor:pointer}.checks input{accent-color:var(--blue)}label{display:grid;gap:6px;color:#43516e;font-size:12px;font-weight:800}input{height:43px;border:1px solid #dce3ef;border-radius:10px;padding:0 12px;background:#fcfdff;color:var(--ink);outline:none;transition:.15s;width:100%}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,100,255,.1)}.button{border:0;border-radius:10px;padding:11px 15px;cursor:pointer;font-weight:800;font-size:12px;text-align:center;display:inline-flex;align-items:center;justify-content:center;min-height:41px;transition:.15s}.button:hover{transform:translateY(-1px)}.button-primary{background:linear-gradient(120deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 9px 17px rgba(23,100,255,.19)}.button-secondary{background:#edf2fb;color:#224374}.danger{color:#bd2844;background:#fff0f3}.table-card{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:660px}th{text-align:left;padding:14px 18px;background:#fafbfe;color:#7886a0;text-transform:uppercase;font-size:10px;letter-spacing:.8px}td{padding:15px 18px;border-top:1px solid var(--line);vertical-align:middle;color:#4e5e79}td b{color:var(--ink)}td small{display:block;color:#8b98ae;font-size:11px}.actions{display:flex;justify-content:flex-end;gap:7px;white-space:nowrap}.actions form{margin:0}.tag{display:inline-block;border-radius:20px;padding:3px 7px;background:#eef3fc;color:#60708e;font-size:10px;font-weight:700;margin:2px}.status{display:inline-block;border-radius:20px;padding:4px 8px;font-weight:800;font-size:10px}.status.on{color:#08734c;background:#e5f8f0}.status.off{color:#a5384e;background:#ffedf1}.event-tags{min-width:220px}.tariff-form{padding:23px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-switch{align-self:end}.switch{display:flex;align-items:center;gap:8px;cursor:pointer;width:max-content;font-size:12px;color:#40506e}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch span{width:38px;height:22px;border-radius:15px;background:#d9e0ec;position:relative;transition:.18s}.switch span:after{content:"";width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.18s}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:after{left:19px}.form-actions{display:flex;gap:9px;margin-top:22px}.login-body{min-height:100vh;background:#061a43 radial-gradient(circle at 25% 15%,#175ff1 0,transparent 29%),radial-gradient(circle at 85% 80%,#0a3bae 0,transparent 31%);display:flex;flex-direction:column;justify-content:center;color:white;padding:28px}.login-shell{width:min(900px,100%);margin:auto;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;border-radius:25px;overflow:hidden;background:rgba(2,12,39,.43);box-shadow:0 40px 80px rgba(0,0,0,.27);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(12px)}.login-brand{padding:57px 48px;min-height:470px;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:102px;height:102px;margin-bottom:27px;filter:drop-shadow(0 15px 18px rgba(0,0,0,.25))}.login-brand span{font-size:13px;color:#8eb2ff;font-weight:800;text-transform:uppercase;letter-spacing:1.3px}.login-brand h1{font-family:"Playfair Display",Georgia,serif;font-size:39px;line-height:1.1;letter-spacing:-1px;margin:9px 0 12px}.login-brand p{margin:0;color:#b6c9ef;max-width:280px}.login-card{margin:20px;background:#fff;border-radius:18px;padding:39px;color:var(--ink);box-shadow:0 12px 28px rgba(0,0,0,.16)}.login-card h2{font-size:26px;letter-spacing:-1px;margin:0 0 7px}.login-card .eyebrow{margin-top:0}.muted{color:#71809a;margin:0 0 25px;font-size:13px}.login-form{display:grid;gap:18px}.login-form .button{width:100%;font-size:13px}.code-input{text-align:center;font-size:28px;font-weight:800;letter-spacing:10px;height:59px}.text-link{text-align:center;color:var(--blue);font-weight:800;font-size:12px}.login-footer{text-align:center;color:#9bb1dc;font-size:11px;padding-top:20px}.login-card .alert{font-size:12px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.content{padding:30px}.hero img{right:30px}}
@media(max-width:760px){.sidebar{width:100%;height:auto;position:sticky;top:0;z-index:5;padding:10px 14px;flex-direction:row;align-items:center}.brand{padding:0;margin-right:auto}.brand img{width:36px;height:36px}.sidebar nav{display:flex;gap:4px}.nav-item{padding:8px;font-size:0}.nav-item i{font-size:18px}.sidebar-bottom{display:none}.content{margin:0;width:100%;padding:24px 16px}.topbar{margin-bottom:21px}.topbar h1{font-size:24px}.admin-chip{display:none}.hero{min-height:185px;padding:27px}.hero h2{font-size:27px}.hero img{opacity:.36;right:-25px;top:25px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat b{font-size:25px}.inline-form,.inline-form.blacklist-form{grid-template-columns:1fr}.inline-form .button{width:100%}.form-grid{grid-template-columns:1fr}.section-head{align-items:flex-start}.section-head .button{white-space:nowrap}.login-body{padding:15px}.login-shell{grid-template-columns:1fr}.login-brand{min-height:0;padding:28px 30px 23px;display:block}.login-brand img{width:62px;height:62px;float:right;margin:0}.login-brand h1{font-size:29px;margin:6px 0}.login-brand p{font-size:12px}.login-card{margin:0 12px 15px;padding:29px 24px}.login-footer{font-size:9px}.checks{display:grid;grid-template-columns:1fr}.notification-form>.button{width:100%}}
@media(max-width:400px){.brand span{display:none}.stats{grid-template-columns:1fr}.topbar{display:block}.section-head{display:block}.section-head .button{margin-top:13px}}

/* Android browsers may render a page using a wide desktop viewport. This rule
   forces the compact layout for touch devices as well as narrow windows. */
@media (max-width:900px), (hover:none) and (pointer:coarse){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .app{display:block;min-height:100vh;overflow-x:hidden}
  .sidebar{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:64px;padding:10px 14px;display:flex;flex-direction:row;align-items:center}
  .brand{padding:0;margin-right:auto;flex-shrink:0}.brand img{width:36px;height:36px}
  .sidebar nav{display:flex;flex:0 1 auto;gap:3px;align-items:center}.nav-item{padding:8px;min-width:35px;font-size:0}.nav-item i{font-size:18px}
  .sidebar-bottom{display:none}.content{width:100%!important;max-width:none;margin-left:0!important;padding:22px 16px 40px}
  .topbar{margin-bottom:20px}.admin-chip{display:none}.hero{min-height:185px;padding:27px}.hero h2{font-size:27px}.hero img{right:-25px;top:25px;opacity:.36}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:15px}.stat b{font-size:25px}
  .inline-form,.inline-form.blacklist-form,.form-grid{grid-template-columns:1fr}.inline-form .button,.notification-form>.button{width:100%}
  .checks{display:grid;grid-template-columns:1fr}.login-body{padding:15px}.login-shell{grid-template-columns:1fr}.login-brand{min-height:0;padding:28px 30px 23px;display:block}.login-brand img{width:62px;height:62px;float:right;margin:0}.login-brand h1{font-size:29px;margin:6px 0}.login-brand p{font-size:12px}.login-card{margin:0 12px 15px;padding:29px 24px}
}
@media (max-width:430px){.brand span{display:none}.stats{grid-template-columns:1fr}.topbar{display:block}.section-head{display:block}.section-head .button{margin-top:13px}.sidebar nav{gap:0}.nav-item{padding:7px;min-width:32px}}

/* Phone directories share the tariff cards' spacing and responsive rhythm. */
.directory-heading p { font-size: 14px; }
.directory-editor { padding: 24px; }
.directory-editor h3, .directory-empty h3 { margin: 0 0 18px; font-size: 18px; line-height: 1.4; }
.directory-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: end; }
.directory-form label { min-width: 0; font-size: 14px; }
.directory-form input { min-width: 0; height: 48px; font-size: 16px; }
.directory-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.directory-editor .button, .directory-item .button { min-height: 46px; font-size: 14px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.directory-block-form { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; }
.directory-block-form .directory-form-actions { grid-column: 1 / -1; }
.directory-form textarea {
    display: block; width: 100%; min-width: 0; min-height: 108px; resize: vertical;
    padding: 12px; border: 1px solid #dce3ef; border-radius: 10px; background: #fcfdff;
    color: var(--ink); font: inherit; font-size: 16px; line-height: 1.5;
}
.directory-form textarea:focus { border-color: var(--blue); outline: 2px solid var(--blue); outline-offset: 2px; }
.directory-form small { font-size: 12px; font-weight: 500; color: #5e6e89; }
.directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; min-width: 0; }
.directory-item { margin: 0; padding: 24px; min-width: 0; display: flex; flex-direction: column; }
.directory-item-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; min-width: 0; }
.directory-kind { font-size: 13px; font-weight: 700; color: #5e6e89; }
.directory-self { border-radius: 20px; background: var(--sky); color: var(--blue2); padding: 5px 10px; font-size: 12px; font-weight: 800; }
.directory-phone { font-size: 22px; line-height: 1.4; margin: 12px 0; letter-spacing: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.directory-status { align-self: flex-start; font-size: 12px; padding: 5px 10px; }
.directory-meta { margin: 18px 0 0; padding: 16px 0; border-top: 1px solid var(--line); }
.directory-meta > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
.directory-meta dt { font-size: 14px; color: #5e6e89; }
.directory-meta dd { font-size: 14px; font-weight: 600; margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.directory-item-actions { margin-top: auto; padding-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-items: center; }
.directory-item-actions form { margin: 0; min-width: 0; }
.directory-item-actions .button { width: 100%; }
.directory-own-note { color: #5e6e89; font-size: 12px; line-height: 1.5; }
.directory-reason { min-width: 0; padding: 16px; margin-top: 4px; background: #f5f7fc; border-radius: 12px; }
.directory-reason h4 { margin: 0 0 6px; font-size: 14px; color: #5e6e89; font-weight: 600; }
.directory-reason p { margin: 0; font-size: 16px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.directory-empty { grid-column: 1 / -1; padding: 24px; }
.directory-empty h3 { margin-bottom: 8px; }
.directory-empty p { font-size: 14px; color: #5e6e89; margin: 0; }
@media (max-width:1250px) { .directory-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-width:760px) {
    .directory-form, .directory-block-form { grid-template-columns: minmax(0,1fr); }
    .directory-form-actions { display: grid; grid-template-columns: minmax(0,1fr); }
    .directory-form-actions .button { width: 100%; }
}
@media (max-width:600px) {
    .directory-item, .directory-editor { padding: 18px; }
    .directory-phone { font-size: 20px; }
    .directory-item-actions .button { padding: 11px 8px; }
}
@media (max-width:360px) {
    .directory-item-actions { grid-template-columns: minmax(0,1fr); }
}

/* Tariffs: a compact price catalog with an independent, responsive editor. */
.tariff-heading { align-items: center; flex-wrap: wrap; }
.tariff-heading > div { min-width: 0; flex: 1 1 240px; }
.tariff-heading p { font-size: 14px; }
.tariff-heading .button, .tariff-editor .button, .tariff-item .button {
    min-height: 46px; font-size: 14px; white-space: normal; line-height: 1.4;
}
.tariff-catalog { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; min-width: 0; }
.tariff-item { margin: 0; padding: 24px; min-width: 0; display: flex; flex-direction: column; }
.tariff-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tariff-item-head > div { flex: 1 1 150px; min-width: 0; }
.tariff-code { margin: 0 0 5px; font-size: 12px; color: #5e6e89; overflow-wrap: anywhere; }
.tariff-item h3 { margin: 0; font-size: 22px; line-height: 1.3; letter-spacing: 0; overflow-wrap: anywhere; }
.tariff-item .status { font-size: 12px; padding: 5px 10px; }
.tariff-minimum { padding: 18px 20px; margin: 20px 0 18px; border-radius: 12px; background: var(--sky); }
.tariff-minimum > span { display: block; color: #425777; font-size: 14px; }
.tariff-minimum strong { display: block; margin-top: 4px; font-size: 30px; line-height: 1.3; color: var(--blue2); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.tariff-minimum small { font-size: 20px; font-weight: 600; }
.tariff-rates { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0 0 18px; }
.tariff-rates > div, .tariff-details > div { min-width: 0; }
.tariff-item dt { font-size: 14px; color: #5e6e89; }
.tariff-item dd { margin: 5px 0 0; color: var(--ink); font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }
.tariff-details { margin: 0; padding-top: 16px; border-top: 1px solid var(--line); }
.tariff-details > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; margin-bottom: 12px; }
.tariff-details dd { margin: 0; font-size: 14px; }
.tariff-details .tariff-file { color: #5e6e89; font-size: 12px; font-weight: 500; }
.tariff-item-actions { margin-top: auto; padding-top: 14px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.tariff-item-actions form { margin: 0; min-width: 0; }
.tariff-item-actions .button { width: 100%; }
.tariff-editor { padding: 28px; }
.tariff-fieldset { min-width: 0; border: 0; padding: 0; margin: 0 0 26px; }
.tariff-fieldset + .tariff-fieldset { border-top: 1px solid var(--line); padding-top: 20px; }
.tariff-fieldset legend { font-size: 18px; font-weight: 800; padding: 0 0 12px; color: var(--ink); }
.tariff-help { margin: 0 0 16px; font-size: 14px; color: #5e6e89; overflow-wrap: anywhere; }
.tariff-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.tariff-fields label { min-width: 0; font-size: 14px; }
.tariff-fields input { min-width: 0; width: 100%; height: 48px; font-size: 16px; }
.tariff-active { margin-top: 20px; max-width: 100%; width: auto; font-size: 14px; }
.tariff-active > span { flex: 0 0 38px; }
.tariff-editor-actions { border-top: 1px solid var(--line); padding-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; }
.tariff-empty { grid-column: 1 / -1; padding: 24px; }
.tariff-empty h3 { margin: 0 0 8px; font-size: 18px; }
.tariff-empty p { margin: 0; font-size: 14px; color: #5e6e89; }
@media (max-width:1250px) { .tariff-catalog { grid-template-columns: minmax(0,1fr); } }
@media (max-width:600px) {
    .tariff-heading .button { width: 100%; margin-top: 0; }
    .tariff-item, .tariff-editor { padding: 18px; }
    .tariff-fields { grid-template-columns: minmax(0,1fr); gap: 16px; }
    .tariff-minimum { padding: 16px; }
    .tariff-item h3 { font-size: 20px; }
    .tariff-editor-actions { display: grid; grid-template-columns: minmax(0,1fr); }
    .tariff-editor-actions .button { width: 100%; }
}
@media (max-width:380px) {
    .tariff-rates { grid-template-columns: minmax(0,1fr); gap: 10px; }
    .tariff-rates > div { display: flex; flex-wrap: wrap; gap: 4px 12px; justify-content: space-between; align-items: baseline; }
    .tariff-rates dd { margin: 0; }
}

/* Notification controls have their own dimensions, independent of text inputs. */
.checks label { min-width: 0; min-height: 48px; justify-content: flex-start; text-align: left; }
.checks input[type="checkbox"] {
    width: 20px; height: 20px; min-width: 20px; flex: 0 0 20px;
    margin: 0; padding: 0; accent-color: var(--blue);
}
.checks label > span { min-width: 0; overflow-wrap: anywhere; }
.checks input:focus-visible, .switch input:focus-visible + span {
    outline: 2px solid var(--blue); outline-offset: 3px;
}
.notification-form { min-width: 0; }
.notification-form .switch { max-width: 100%; width: auto; }
.notification-form .switch > span { flex: 0 0 38px; }
.notification-list { min-width: 0; }
.notification-list-head, .notification-recipient {
    display: grid; grid-template-columns: minmax(130px,1fr) minmax(0,2fr) 85px minmax(175px,auto);
    gap: 16px; align-items: center; padding: 16px;
}
.notification-list-head { color: var(--muted); font-size: 11px; font-weight: 800; }
.notification-recipient { margin-bottom: 12px; }
.notification-recipient > div { min-width: 0; }
.recipient-label { display: none; }
.recipient-phone b { overflow-wrap: anywhere; }
.recipient-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.recipient-tags .tag { margin: 0; white-space: normal; overflow-wrap: anywhere; }
.recipient-tags .muted { margin: 0; }
.recipient-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.recipient-actions form { margin: 0; }
.notification-empty { padding: 20px; color: var(--muted); }
@media (max-width:1100px), (hover:none) and (pointer:coarse) {
    .notification-list-head { display: none; }
    .notification-recipient { grid-template-columns: minmax(0,1fr) auto; gap: 16px; padding: 18px; }
    .recipient-phone { grid-column: 1; grid-row: 1; }
    .recipient-status { grid-column: 2; grid-row: 1; }
    .recipient-events { grid-column: 1 / -1; grid-row: 2; }
    .recipient-actions { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .recipient-actions .button { width: 100%; min-height: 44px; white-space: normal; padding: 10px 8px; }
    .recipient-label { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }
}
@media (max-width:900px), (hover:none) and (pointer:coarse) {
    .notification-form .checks { grid-template-columns: minmax(0,1fr); }
    .notification-form .checks label { gap: 12px; padding: 12px; font-size: 13px; line-height: 1.5; }
    .notification-form input[name="phone"] { font-size: 16px; }
}
