/* Навигация по будущим городским системам в управляющем модуле. */
.control-hub-layout { width:min(980px,100%); display:grid; grid-template-columns:minmax(0,1fr) 320px; align-items:center; gap:22px; }.control-hub-layout .control-hub-card { width:100%; }.city-systems { display:grid; gap:11px; padding:21px; border:1px solid #ffffff48; border-radius:24px; color:#edf5ff; background:#ffffff17; box-shadow:0 20px 55px #020b2544; backdrop-filter:blur(18px); }.city-systems-head { display:flex; align-items:center; justify-content:space-between; font-size:16px; font-weight:850; }.city-systems-head i { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#ffffff21; color:#cce2ff; font-size:12px; font-style:normal; }.city-system { display:grid; gap:3px; padding:14px; border:1px solid #ffffff30; border-radius:15px; color:#f4f8ff; text-decoration:none; transition:transform .18s ease,background .18s ease,border-color .18s ease; }.city-system:hover { transform:translateY(-2px); border-color:#ffffff88; background:#ffffff18; }.city-system b { font-size:11px; letter-spacing:.8px; text-transform:uppercase; }.city-system strong { font-size:14px; }.city-system small,.city-systems>p { color:#ccdbf5; font-size:11px; line-height:1.45; }.city-systems>p { margin:3px 0 0; }.east-system { background:linear-gradient(135deg,#0a807c80,#24ac9280); }.central-system { background:linear-gradient(135deg,#6244bc85,#8264dc85); }
@media (max-width:800px) { .control-hub-layout { grid-template-columns:1fr; max-width:580px; }.city-systems { width:100%; }.control-hub { align-items:start; padding:24px; } }

/* Центральная консоль управления. */
.control-console { min-height:100vh; padding:42px 28px; overflow:hidden; color:#eff6ff; background:radial-gradient(circle at 12% 20%,#4f71df70,transparent 25rem),radial-gradient(circle at 82% 80%,#2ec5b66a,transparent 29rem),linear-gradient(135deg,#071230,#17285e 56%,#0a2135); }.control-console::before { content:"";position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(135deg,#000,transparent); }.control-console-shell { position:relative;display:grid;grid-template-columns:minmax(0,1fr) 270px;grid-template-areas:"header city" "tabs city" "work city";gap:15px;width:min(1180px,100%);margin:auto;padding:26px;border:1px solid #ffffff36;border-radius:30px;background:#081a3c9e;box-shadow:0 34px 100px #02091d70;backdrop-filter:blur(22px); }.control-console-header { grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:16px; }.control-console-header>div { display:grid;grid-template-columns:52px 1fr;column-gap:13px;align-items:center; }.control-console-header .control-mark { grid-row:span 2;margin:0; }.control-console-header h1 { margin:0;font-size:28px;color:#fff; }.control-console-header .control-eyebrow { margin:0;font-size:10px; }.control-tabs { grid-area:tabs;display:flex;gap:7px;padding:5px;border:1px solid #ffffff22;border-radius:15px;background:#03142f5e;overflow:auto; }.control-tabs button { flex:1;border:0;border-radius:10px;padding:10px 12px;background:transparent;color:#baccf0;font-weight:750;white-space:nowrap;cursor:pointer; }.control-tabs button.active,.control-tabs button:hover { color:#fff;background:linear-gradient(120deg,#4d69ff,#566ce3);box-shadow:0 8px 19px #1b36a267; }.control-workspace { grid-area:work;min-height:370px;padding:25px;border:1px solid #ffffff25;border-radius:21px;background:linear-gradient(135deg,#ffffff17,#78b4d011); }.control-workspace-head { display:flex;justify-content:space-between;gap:18px;align-items:start; }.control-workspace h2 { margin:4px 0 5px;color:#fff;font-size:24px; }.control-workspace-head span,.control-note { color:#b9cae5;font-size:13px;line-height:1.55; }.control-live { padding:8px 11px;border:1px solid #6de5a66b;border-radius:999px;color:#9bf0bd;background:#167c492b;font-size:12px;white-space:nowrap; }.control-live i,.emergency-dot { display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#62e8a4;box-shadow:0 0 0 4px #62e8a421;animation:control-pulse 1.8s infinite; }.control-metrics { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0; }.control-metrics article { display:grid;gap:5px;padding:15px;border:1px solid #ffffff1c;border-radius:14px;background:#071b3a7d; }.control-metrics b { color:#6de3df;font-size:13px; }.control-metrics span { color:#aac0df;font-size:12px; }.control-metrics strong { color:#fff;font-size:15px; }.emergency-panel { display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px;border:1px solid #ffcf6c57;border-radius:15px;background:linear-gradient(90deg,#74470e52,#ffbd3c15); }.emergency-panel b { color:#fff4d8; }.emergency-panel p { max-width:570px;margin:6px 0 0;color:#f4dcae;font-size:12px;line-height:1.45; }.emergency-dot { background:#ffd15c;box-shadow:0 0 0 4px #ffd15c24; }.emergency-switch input { position:absolute;opacity:0; }.emergency-switch i { display:block;width:54px;height:30px;border:1px solid #ffffff3b;border-radius:999px;background:#182e55;cursor:pointer; }.emergency-switch i::after { content:"";display:block;width:22px;height:22px;margin:3px;border-radius:50%;background:#d2def2;transition:.18s; }.emergency-switch input:checked+i { background:#df7b2d; }.emergency-switch input:checked+i::after { transform:translateX(24px);background:#fff; }.control-city-systems { grid-area:city;align-self:stretch; }.control-filters { display:flex;gap:10px;align-items:end;margin:22px 0 15px; }.control-filters label { display:grid;gap:5px;color:#bfd0e9;font-size:12px;font-weight:700; }.control-filters input,.control-filters select,.control-filters textarea { min-width:160px;border:1px solid #ffffff34;border-radius:10px;padding:10px;background:#0618309c;color:#f4f8ff; }.control-list { display:grid;border-top:1px solid #ffffff22; }.control-event { display:grid;grid-template-columns:130px 1fr 1.4fr 1fr;gap:10px;text-align:left;padding:13px 4px;border:0;border-bottom:1px solid #ffffff18;background:transparent;color:#dbe8f8;cursor:default; }.control-event time,.control-event small { color:#9eb4d4;font-size:12px; }.control-event span { color:#71e4c8;font-size:13px; }.control-settings-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:20px; }.control-settings-grid label { display:grid;gap:6px;color:#bfd0e9;font-size:12px;font-weight:750; }.control-settings-grid input,.control-settings-grid textarea { width:100%;box-sizing:border-box;border:1px solid #ffffff34;border-radius:10px;padding:10px;background:#0618309c;color:#f4f8ff; }.control-settings-grid textarea { min-height:74px;resize:vertical; }.control-settings-grid .switch-field { display:flex;align-items:center;gap:8px; }.control-settings-grid .switch-field input { width:auto; }.report-request { flex-wrap:wrap; }.development { display:grid;place-content:center;text-align:center;min-height:370px;overflow:hidden;position:relative; }.development>* { position:relative;z-index:1; }.development>span { display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#6d78ff;color:#fff;font-size:32px;box-shadow:0 0 0 14px #8291ff18; }.development p:last-child { max-width:450px;color:#bfd0e9;line-height:1.55; }.development-orbit { position:absolute;inset:20%;border:1px solid #7e9eff4d;border-radius:50%;animation:control-orbit 10s linear infinite; }.maintenance-screen { min-height:100vh;display:grid;place-items:center;padding:24px;box-sizing:border-box;background:radial-gradient(circle at 48% 13%,#415df97d,transparent 26rem),#07122b; }.maintenance-island { position:fixed;top:20px;display:flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid #ffffff35;border-radius:999px;background:#111c32e8;box-shadow:0 12px 32px #0005;color:#f5f7ff;font-size:13px;backdrop-filter:blur(16px); }.maintenance-island i { width:9px;height:9px;border-radius:50%;background:#ff9b4a;box-shadow:0 0 0 4px #ff9b4a27; }.maintenance-island b { margin-left:6px;font-variant-numeric:tabular-nums;color:#ffcf85; }.maintenance-card { width:min(600px,100%);padding:46px 30px;border:1px solid #ffffff37;border-radius:30px;text-align:center;color:#dce7f7;background:#ffffff12;box-shadow:0 30px 80px #0007;backdrop-filter:blur(20px); }.maintenance-icon { display:grid;place-items:center;width:68px;height:68px;margin:auto;border-radius:23px;background:linear-gradient(135deg,#ff8b42,#ffca64);color:#28150b;font-size:40px;box-shadow:0 0 0 11px #ffaf5e1c; }.maintenance-card p { margin:23px 0 8px;color:#ffca85;font-size:11px;font-weight:800;letter-spacing:1.6px; }.maintenance-card h1 { margin:0 0 12px;color:#fff;font-size:32px; }.maintenance-card>span { color:#bdcde4;line-height:1.55; }.control-console .city-systems { background:#ffffff10; }.control-console .city-systems>p { display:none; } @keyframes control-pulse { 50% { transform:scale(1.18);opacity:.66; } } @keyframes control-orbit { to { transform:rotate(360deg); } } @media (max-width:860px){.control-console-shell{grid-template-columns:1fr;grid-template-areas:"header" "tabs" "work" "city";}.control-city-systems{grid-template-columns:1fr 1fr;}.control-city-systems .city-systems-head{grid-column:1/-1}.control-console{padding:18px}.control-event{grid-template-columns:1fr 1fr;}.control-metrics{grid-template-columns:1fr;}} @media (max-width:560px){.control-console-header h1{font-size:21px}.control-tabs{justify-content:start}.control-tabs button{flex:0 0 auto}.control-workspace{padding:18px}.control-workspace-head,.emergency-panel{align-items:start;flex-direction:column}.control-filters,.control-settings-grid,.control-city-systems{grid-template-columns:1fr;display:grid}.control-filters input,.control-filters select{min-width:0}.control-event{grid-template-columns:1fr;gap:4px}.maintenance-card{padding:36px 22px}.maintenance-card h1{font-size:27px}}
.global-notice-backdrop { position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:18px;background:#04122eaa;backdrop-filter:blur(9px);animation:notice-in .2s ease-out; }.global-notice-card { position:relative;width:min(450px,100%);padding:28px;border:1px solid #c9e3ff76;border-radius:24px;background:linear-gradient(145deg,#102b53,#0a1832);box-shadow:0 26px 80px #0008;color:#eaf5ff;text-align:center; }.global-notice-card>span { color:#75e6d3;font-size:10px;font-weight:850;letter-spacing:1.3px; }.global-notice-card h2 { margin:9px 25px;color:#fff;font-size:24px; }.global-notice-card p { color:#c2d3ea;white-space:pre-wrap;line-height:1.55; }.global-notice-card img { display:block;width:100%;max-height:220px;margin:17px 0 12px;object-fit:cover;border-radius:14px;border:1px solid #ffffff30; }.global-notice-close { position:absolute;top:12px;right:13px;width:30px;height:30px;border:0;border-radius:50%;background:#ffffff16;color:#e9f4ff;font-size:23px;cursor:pointer; }.global-notice-card .action { margin-top:8px;min-width:170px; } @keyframes notice-in { from { opacity:0;transform:translateY(8px) scale(.98); } to { opacity:1;transform:none; } }

/* Manual Telegram sender in the control-module settings. */
.telegram-message-panel { display:grid;gap:12px;margin-top:22px;padding:18px;border:1px solid #70d7ca4d;border-radius:16px;background:linear-gradient(135deg,#0b31514d,#1027538c); }.telegram-message-panel h3 { margin:3px 0 5px;color:#fff;font-size:18px; }.telegram-message-panel p { margin:0;color:#bad0e8;font-size:13px;line-height:1.5; }.telegram-message-panel label { display:grid;gap:6px;color:#bfd0e9;font-size:12px;font-weight:750; }.telegram-message-panel textarea { min-height:106px;box-sizing:border-box;width:100%;border:1px solid #ffffff34;border-radius:10px;padding:11px;background:#0618309c;color:#f4f8ff;resize:vertical; }.telegram-message-actions { display:flex;align-items:center;justify-content:space-between;gap:12px; }.telegram-message-actions span { color:#8de5d1;font-size:12px; }.telegram-message-actions .action:disabled { cursor:not-allowed;opacity:.5; } @media(max-width:560px){.telegram-message-actions{align-items:stretch;flex-direction:column}.telegram-message-actions .action{width:100%;}}

/* Финальная доводка пропорций управляющей панели. */
.control-console-shell { grid-template-columns:minmax(0,1fr) 248px; gap:14px; padding:26px; }
.control-console-header>div { grid-template-columns:54px minmax(0,1fr); grid-template-rows:auto auto; column-gap:14px; }
.control-console-header .control-mark { width:54px;height:54px;grid-row:1 / 3; }
.control-console-header .control-eyebrow { align-self:end;line-height:1;letter-spacing:1.15px; }
.control-console-header h1 { align-self:start;margin-top:4px;line-height:1.12; }
.control-city-systems { align-content:start; gap:10px; padding:18px; }
.control-city-systems .city-system { min-height:116px;align-content:start;padding:14px; }
.control-city-systems .city-system strong { margin-top:14px;line-height:1.25; }
.control-city-systems .city-system small { margin-top:auto; }
.emergency-panel { min-height:62px; }
.emergency-switch { flex:0 0 auto;align-self:center; }
.control-metrics article { min-height:68px; }
.control-metrics .site-health { position:relative;gap:4px; }.control-metrics .site-health b { color:#8aa1c7;font-size:12px; }.control-metrics .site-health.online b { color:#67e9ae; }.control-metrics .site-health strong { font-size:13px; }.control-metrics .site-health small { color:#9eb4d4;font-size:11px; }.control-metrics .site-health em { color:#73dfe0;font-size:11px;font-style:normal;font-weight:750; }.api-error-journal { display:grid;gap:11px;margin:0 0 16px;padding:15px;border:1px solid #ffffff1f;border-radius:14px;background:#071b3a5c; }.api-error-journal>div { display:flex;justify-content:space-between;gap:12px;align-items:baseline; }.api-error-journal>div>b { color:#fff;font-size:14px; }.api-error-journal>div>span,.api-error-journal>p { margin:0;color:#aebfda;font-size:11px; }.api-error-journal ul { display:grid;gap:5px;margin:0;padding:0;list-style:none; }.api-error-journal li { display:grid;grid-template-columns:120px 60px 45px 1fr;gap:9px;align-items:center;padding-top:7px;border-top:1px solid #ffffff17;color:#c6d6eb;font-size:12px; }.api-error-journal time { color:#91a7c9; }.api-error-journal code { padding:3px 6px;border-radius:6px;background:#ff886326;color:#ffc2ae;font-family:inherit;text-align:center; }.api-error-journal li>span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
@media (max-width:860px){.control-console-shell{grid-template-columns:1fr}.control-city-systems .city-system{min-height:108px}} 
@media (max-width:560px){.api-error-journal li{grid-template-columns:1fr 50px 42px;}.api-error-journal li>span{grid-column:1/-1}.api-error-journal>div{display:grid;}}

/* Protected issue-photo journal. */
.issue-photo-filters{flex-wrap:wrap}.issue-photo-filters .action{margin-bottom:1px}.control-photo-issue{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:16px;align-items:center;padding:15px 4px;border-bottom:1px solid #ffffff1c}.control-photo-issue time{color:#9eb4d4;font-size:12px}.control-photo-issue>div{display:grid;gap:4px;min-width:0}.control-photo-issue b{color:#fff;font-size:15px}.control-photo-issue span{overflow:hidden;color:#b9cae5;font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.control-photo-issue strong{color:#75e4d0;font-size:13px}.control-photo-issue small{color:#9eb4d4;font-size:11px}.control-photo-issue .action{white-space:nowrap}.control-photo-modal{position:fixed;z-index:500;inset:0;display:grid;place-items:center;padding:24px;background:#020a1db8;backdrop-filter:blur(8px)}.control-photo-modal section{position:relative;display:grid;gap:12px;width:min(760px,100%);max-height:calc(100vh - 48px);padding:20px;border:1px solid #ffffff38;border-radius:20px;background:#0b1c3ee8;box-shadow:0 28px 90px #0009}.control-photo-modal p{margin:0;color:#fff;font-size:18px;font-weight:800}.control-photo-modal img{display:block;max-width:100%;max-height:calc(100vh - 180px);margin:auto;border-radius:12px;object-fit:contain}.control-photo-modal small{color:#b9cae5;text-align:center}.control-photo-close{position:absolute;top:10px;right:12px;width:32px;height:32px;border:0;border-radius:50%;background:#ffffff1e;color:#fff;font-size:25px;line-height:1;cursor:pointer}@media(max-width:650px){.control-photo-issue{grid-template-columns:1fr;gap:7px}.control-photo-issue .action{justify-self:start}.control-photo-issue span{white-space:normal}.issue-photo-filters{display:grid!important;grid-template-columns:1fr}.issue-photo-filters .action{width:100%}}

/* Daily reports are nested within the reports workspace, rather than sharing its grid area. */
.daily-operational-section{margin:20px 0;padding:18px;border:1px solid #ffffff22;border-radius:16px;background:#061a3c72}.daily-operational-section .control-workspace-head{margin-bottom:0}.daily-operational-section .control-workspace-head h2{font-size:20px}.daily-operational-section .control-filters{flex-wrap:wrap;margin:16px 0 12px}.daily-operational-section .control-list{margin-top:10px}.daily-operational-section .control-event{grid-template-columns:110px minmax(0,1fr) minmax(145px,.9fr) auto;align-items:center}.daily-operational-section .control-event button{white-space:nowrap}@media(max-width:700px){.daily-operational-section .control-event{grid-template-columns:1fr 1fr}.daily-operational-section .control-event button{justify-self:start}}@media(max-width:560px){.daily-operational-section{padding:14px}.daily-operational-section .control-workspace-head{display:flex}.daily-operational-section .control-filters{display:flex}.daily-operational-section .control-event{grid-template-columns:1fr}}
