/* ===== base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --text-primary:#2f3f52;--text-muted:#7a8796;--link:#0066b3;
  --blue:#1a66c0;--blue-h:#1557a5;--blue-title:#163a72;
  --white:#fff;--font-body:'Open Sans',sans-serif;
}
html,body{background:#fafcff}
body{font-family:var(--font-body);font-size:1rem;line-height:1.45;color:var(--text-primary);overflow-x:hidden}
.screen-hidden{display:none !important}
button{font-family:inherit}
a{color:var(--link);text-decoration:none}

/* ===== 1. login ===== */
.lp--login{
  min-height:100vh;
  background:linear-gradient(180deg,#0b5cb8 0%,#094a97 100%);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.lp--login::before{
  content:"";
  position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.07)' stroke-width='1'%3E%3Crect x='14' y='14' width='34' height='34' transform='rotate(12 31 31)'/%3E%3Crect x='64' y='56' width='34' height='34' transform='rotate(12 81 73)'/%3E%3Crect x='30' y='76' width='24' height='24' transform='rotate(12 42 88)'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image:radial-gradient(75% 65% at 100% 0%,#000 0%,transparent 72%);
          mask-image:radial-gradient(75% 65% at 100% 0%,#000 0%,transparent 72%);
}
.lp-header{
  position:relative;z-index:1;
  padding:20px 28px;
}
.lp-brand{
  display:inline-flex;align-items:center;gap:11px;
}
.lp-brand__mark{width:40px;height:40px;object-fit:contain;display:block;flex-shrink:0}
.lp-brand__text{margin:0;display:flex;flex-direction:column;gap:1px}
.lp-brand__text strong{font-size:.9rem;font-weight:700;line-height:1.15;color:#fff}
.lp-brand__text span{font-size:.66rem;color:rgba(255,255,255,.78);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.lp-main{
  position:relative;z-index:1;
  flex:1;
  display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;
  padding:4.5vh 22px 44px;
  gap:13px;
}
.lp-card{
  width:min(360px,100%);
  background:#fff;border-radius:13px;
  padding:22px 20px 17px;
  box-shadow:0 16px 38px rgba(3,20,50,.26);
}
.lp-card__title{margin:0 0 16px;font-size:1.15rem;font-weight:700;line-height:1.2;color:#1a1a1a}
.lp-btn{
  display:block;width:100%;
  padding:11px 15px;
  border:none;border-radius:8px;
  background:#0d6ee0;color:#fff;
  font:inherit;font-size:.95rem;font-weight:600;
  cursor:pointer;
  transition:background .15s;
}
.lp-btn:hover{background:#0a5ec6}
.lp-foot{margin:0;font-size:.78rem;color:rgba(255,255,255,.8)}
@media (max-width:520px){
  .lp-header{padding:14px 18px}
  .lp-brand__mark{width:34px;height:34px}
  .lp-brand__text strong{font-size:.8rem}
  .lp-card{padding:18px 16px 14px}
  .lp-card__title{font-size:1.02rem;margin-bottom:13px}
  .lp-btn{padding:10px 13px;font-size:.85rem}
  .lp-main{padding-top:3.5vh}
}

/* ===== 2. loading ===== */
.loading-page{
  min-height:100vh;
  background:#fafcff;
  display:block;
  border:0;
  border-top:0;
  outline:0;
}
.loading-page .logo{
  display:flex;justify-content:center;
  margin-top:15px;
  border:0;
  line-height:0;
  font-size:0;
}
.loading-page .logo svg{display:block;border:0}
.loading-main{margin-top:54px;display:flex;justify-content:center;padding:0 12px 22px;width:100%}
.shadow-block{width:calc(100vw - 24px);max-width:448px}
.loading-main .content{padding:17px;display:flex;flex-direction:column;text-align:center;justify-content:center;background:#fff;box-shadow:0 1px 3px #e3ebfc,0 17px 34px rgba(230,235,245,.4);border-radius:9px}
.loading-main .title{margin:0;font-size:14px;line-height:20px;color:#0b1f33;font-weight:700}
.loading-main .sub-title{margin-top:11px;font-size:11px;line-height:17px;color:#66727f}
.loading-main .loader{margin-top:11px;display:flex;justify-content:center}
.dot-flashing{width:11px;height:11px;background:#c5d3f1;position:relative;border-radius:50%;animation:dotFlashing 1s infinite alternate;animation-delay:.5s}
.dot-flashing::after,.dot-flashing::before{content:'';width:11px;height:11px;position:absolute;border-radius:50%}
.dot-flashing::after{background:#c5d3f1;right:-22px;animation:dotFlashing 1s infinite alternate;animation-delay:1.2s}
.dot-flashing::before{background:#c5d3f1;left:-22px;animation:dotFlashing 1s infinite alternate;animation-delay:0s}
@keyframes dotFlashing{0%,25%,50%{background:#e0e9fc}75%{background:#c5d3f1}100%{background:#99b1e6}}
@media (min-width:768px){
  .shadow-block{width:448px}
  .loading-main .title{font-size:17px;line-height:22px}
  .loading-main .sub-title{font-size:13px;line-height:18px}
}
@media (max-width:600px){
  .loading-main{margin-top:39px;padding:0 9px max(14px,env(safe-area-inset-bottom))}
}

/* ===== 3. alert ===== */
.alert-page{min-height:100vh;background:linear-gradient(to bottom,#1d5fc9 0%,#1d5fc9 55%,#e1e5ea 55%,#e1e5ea 100%)}
.alert-main{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px}
.alert-card{width:100%;max-width:430px;background:#fff;border-radius:22px;box-shadow:0 18px 48px rgba(10,30,60,.28);padding:30px 28px 28px}
.alert-logo{text-align:center;font-weight:800;font-size:1.9rem;line-height:1.1}
.alert-logo__gos{color:#2864b8}
.alert-logo__slugi{color:#ef2854}
.alert-logo__line{height:3px;background:#ef2854;border-radius:2px;margin:14px 0 20px}
.alert-banner{display:flex;gap:16px;align-items:flex-start;background:#e8193c;border-radius:12px;padding:18px;margin-bottom:18px}
.alert-banner__icon{flex-shrink:0;margin-top:2px}
.alert-banner__title{font-size:1.35rem;font-weight:800;line-height:1.2;color:#fff;margin:0 0 6px}
.alert-banner__subtitle{font-size:1rem;font-weight:700;line-height:1.35;color:#fff;margin:0}
.alert-notice{background:#f9f6f7;border-radius:12px;padding:20px 18px 22px}
.alert-notice__head{display:flex;gap:10px;align-items:flex-start;margin-bottom:18px}
.alert-notice__icon{flex-shrink:0;margin-top:2px}
.alert-notice__text{margin:0;font-size:.95rem;font-weight:700;line-height:1.45;color:#3c4650}
.alert-notice__divider{height:1px;background:#e2e5e9;margin-bottom:18px}
.alert-meta{list-style:none;display:flex;flex-direction:column;gap:16px}
.alert-meta__row{display:flex;gap:12px;align-items:flex-start}
.alert-meta__icon{flex-shrink:0;margin-top:2px}
.alert-meta__label{display:block;font-size:.8rem;color:#6b7683;margin-bottom:2px}
.alert-meta__value{margin:0;font-size:1rem;font-weight:600;line-height:1.35;color:#222b34}
.alert-footer{text-align:center;font-size:.92rem;font-weight:700;line-height:1.45;color:#2b3540;margin:20px 4px 16px}
.alert-phones{display:flex;flex-direction:column;gap:12px}
.alert-phone{border:1.5px solid #1b5196;border-radius:12px;padding:12px 14px;text-align:center;background:#fff}
.alert-phone__label{display:block;font-size:.8rem;color:#8b95a1;margin-bottom:4px}
.alert-phone__number{display:block;font-size:1.35rem;font-weight:800;line-height:1.2;color:#1b5196}
@media (max-width:600px){
  .alert-page{background:linear-gradient(to bottom,#1d5fc9 0%,#1d5fc9 42%,#e1e5ea 42%,#e1e5ea 100%)}
  .alert-main{align-items:flex-start;padding:16px 12px max(20px,env(safe-area-inset-bottom))}
  .alert-card{padding:22px 16px 18px;border-radius:18px}
  .alert-logo{font-size:1.55rem}
  .alert-banner{gap:12px;padding:14px}
  .alert-banner__title{font-size:1.15rem}
  .alert-banner__subtitle{font-size:.92rem}
  .alert-notice{padding:16px 14px 18px}
  .alert-phone__number{font-size:clamp(1.05rem,5vw,1.35rem);white-space:nowrap}
}

/* ===== admin ===== */
.admin-page{min-height:100vh;background:#eef2f7;padding:32px 16px}
.admin-wrap{max-width:820px;margin:0 auto}
.admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.admin-head h1{font-size:1.5rem;color:#163a72}
.admin-head a{font-size:.9rem;font-weight:700;color:#1a66c0}
.admin-section{background:#fff;border:1px solid #e3eaf3;border-radius:14px;padding:20px 22px;margin-bottom:16px}
.admin-section h2{font-size:1rem;color:#1b5196;margin-bottom:14px;text-transform:uppercase;letter-spacing:.06em}
.admin-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.admin-field label{font-size:.82rem;font-weight:700;color:#2f3f52}
.admin-field input[type=text],.admin-field input[type=number],.admin-field textarea{width:100%;padding:10px 12px;border:1px solid #c5d0dc;border-radius:8px;font:inherit;font-size:.95rem;color:#1a2b3c;background:#f8fbfe;outline:none}
.admin-field input:focus,.admin-field textarea:focus{border-color:#1b5196;background:#fff;box-shadow:0 0 0 3px rgba(27,81,150,.12)}
.admin-field textarea{min-height:70px;resize:vertical;font-family:inherit}
.admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.admin-btn{padding:12px 22px;border:none;border-radius:10px;font:inherit;font-size:.95rem;font-weight:700;cursor:pointer}
.admin-btn--save{background:#1b5196;color:#fff}
.admin-btn--save:hover{background:#16457f}
.admin-btn--reset{background:#f1f4f8;color:#b42318}
.admin-btn--reset:hover{background:#e5eaf1}
.admin-status{margin-top:12px;font-size:.9rem;font-weight:600;color:#15803d}
.admin-status--err{color:#b42318}