/* Оформление: цвета, шрифты, скругления, тени, переходы. */
/* Расположение и размеры — в app.css. */

:root{
  --bg:#f4f5f8; --card:#fff; --ink:#22263a; --muted:#6b7387; --line:#e2e5ee;
  --acc:#3f6ad8; --acc-soft:#eef3fd; --green:#1f9d62; --green-soft:#e8f6ee;
  --amber:#b7791f; --amber-soft:#fdf3e3; --red:#d64550; --red-soft:#fbe9eb;
  --radius:10px; --shadow:0 1px 2px rgba(20,30,60,.05),0 2px 10px rgba(20,30,60,.05);
}
body{font-family:'Segoe UI',system-ui,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
input,select,textarea{font-family:inherit;font-size:13px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc-soft)}
a{color:var(--acc);text-decoration:none}
.topbar{background:#242a3f;color:#dfe3f2}
.brand{font-weight:700;font-size:15px;cursor:pointer}
.brand .dot{border-radius:3px;background:var(--acc)}
.nav button{border-radius:7px;color:#c3c9dd;font-weight:600;font-size:13px}
.nav button:hover{background:rgba(255,255,255,.07);color:#fff}
.nav button.active{background:var(--acc);color:#fff}
.role{background:rgba(255,255,255,.08);border-radius:8px}
.role .rl{border-radius:6px;font-size:12px;font-weight:600;color:#c3c9dd}
.role .rl.active{background:#fff;color:#242a3f}
.section-title{font-size:17px;font-weight:700}
.section-sub{color:var(--muted);font-size:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:.12s}
.card:hover{border-color:var(--acc)}
.card .emo{border-radius:8px;font-size:17px;background:#eef1f8}
.card h3{font-size:13px;line-height:1.3;font-weight:600}
.card .meta{font-size:11px;color:var(--muted)}
.tag{background:#eceff7;color:#4a5271;border-radius:99px;font-size:11px;font-weight:600;border:none;cursor:pointer}
.tag.on{background:var(--acc);color:#fff}
.progress .bar{background:#eaedf5;border-radius:99px}
.progress .fill{background:var(--acc);border-radius:99px}
.progress .fill.full{background:var(--red)}
.progress .lbl{font-size:11px;color:var(--muted)}
.progress .lbl b{color:#3c4570;font-weight:600}
.row-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.row-item{border-bottom:1px solid #f0f1f7;cursor:pointer}
.row-item:last-child{border-bottom:none}
.row-item:hover{background:#f8faff}
.row-item .d{font-size:12px;font-weight:700;color:#3c4570}
.row-item .d .d-time{font-weight:600;color:var(--muted);font-size:11.5px}
.row-item .n b{font-size:13px}
.row-item .n span{font-size:11px;color:var(--muted)}
.seg{background:#eef0f7;border-radius:7px}
.seg button{border-radius:5px;font-size:12px;font-weight:600;color:var(--muted)}
.seg button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(20,30,60,.15)}
.filters{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.filters label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.btn{border-radius:7px;font-weight:600;font-size:13px;transition:.12s}
.btn-primary{background:var(--acc);color:#fff}
.btn-primary:hover{background:#3560c4}
.btn-ghost{background:var(--acc-soft);color:var(--acc)}
.btn-green{background:var(--green);color:#fff}
.btn-red{background:var(--red-soft);color:var(--red)}
.btn-light{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-light:hover{background:#f4f6fb}
.btn-sm{font-size:12px}
.btn-outline{border:1px solid var(--line);border-radius:7px;font-weight:600;font-size:13px;background:#fff}
.btn-outline:hover{background:#f4f6fb}
.event-head{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fff,#fafbff)}
.event-head h1{font-size:20px;line-height:1.25}
.event-head .sub{font-size:12px;color:var(--muted)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel h2{font-size:14px}
.program{list-style:none}
.program li{border-bottom:1px dashed #eceef6;font-size:13px}
.program li:last-child{border-bottom:none}
.program .time{font-weight:700;color:var(--acc);font-size:12px}
.program .desc b{font-size:13px}
.program .desc span{color:var(--muted);font-size:12px}
.series-box{border-left:3px solid var(--acc)}
.mocker{font-size:10.5px;color:#a5aabb}
.modal-back{background:rgba(15,19,35,.45)}
.modal{background:#fff;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.modal h2{font-size:17px}
.modal .mhh{color:var(--muted);font-size:13px}
.form-field label{font-size:11px;font-weight:700;color:var(--muted)}
.check-row{font-size:12px;color:#3f4660}
input[type="checkbox"]{appearance:none;-webkit-appearance:none;border:1.5px solid #b7bfd6;border-radius:0;padding:0;background:#fff;cursor:pointer;transition:.12s}
input[type="checkbox"]:hover{border-color:var(--acc)}
input[type="checkbox"]:checked{background:var(--acc);border-color:var(--acc)}
input[type="checkbox"]:checked::after{content:"";border:solid #fff;border-width:0 2px 2px 0;background:none}
.banner-ok{background:var(--green-soft);color:var(--green);border-radius:8px;font-weight:600;font-size:13px}
.banner-warn{background:var(--amber-soft);color:#8a5b14;border-radius:8px;font-size:12px}
.cabin-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.cabin-box h2{font-size:14px}
.reg-row{border-bottom:1px solid var(--line);font-size:13px}
.reg-row:last-child{border-bottom:none}
.reg-thumb{border-radius:7px;background:#eef1f8}
.sub-row{border-bottom:1px solid var(--line);font-size:13px}
.sub-row:last-child{border-bottom:none}
.notif-row{border-bottom:1px solid var(--line);font-size:12px}
.notif-row .n-ic{border-radius:7px;background:var(--acc-soft)}
.notif-row b{font-size:12px}
.cal-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.cal-head b{font-size:14px;text-transform:capitalize}
.cal-dow{font-size:10px;color:var(--muted);font-weight:700}
.cal-day{border:1px solid var(--line);border-radius:6px;font-size:11px;cursor:pointer}
.cal-day:hover{border-color:var(--acc)}
.cal-day.today{border-color:var(--acc);background:var(--acc-soft)}
.cal-day.dim{opacity:.45}
.cal-day.in-range{background:var(--acc-soft);border-color:var(--acc)}
.cal-day.sel-start,.cal-day.sel-end{background:var(--acc);color:#fff;border-color:var(--acc)}
.cal-day.sel-start .cnt,.cal-day.sel-end .cnt{color:#fff}
.cal-week{font-size:10px;font-weight:700;color:var(--muted);cursor:pointer;border:1px solid transparent;border-radius:6px}
.cal-week:hover{border-color:var(--acc);color:var(--acc)}
.cal-day .cnt{font-size:9px;color:var(--acc);font-weight:700}
.cal-ev{background:var(--acc-soft);color:var(--acc);border-radius:3px;font-size:9.5px;line-height:1.25}
.cal-ev.full{background:var(--red-soft);color:var(--red)}
.cal-ev.more{background:transparent;color:var(--muted);font-weight:700}
.cal-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.cal-panel h2{font-size:14px}
.cal-dates{border-top:1px solid var(--line)}
.cal-date-row span{font-size:11px;font-weight:700;color:var(--muted)}
.cal-tip{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(20,30,60,.2);font-size:11px;color:var(--ink)}
.cal-tip b{font-size:11px}
.cal-tip .ct-ev{border-radius:5px;cursor:pointer}
.cal-tip .ct-ev:hover{background:var(--acc-soft)}
.cal-tip .ct-ev.full{color:var(--red)}
.cal-tip-fixed{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(20,30,60,.2);font-size:11px;color:var(--ink)}
.cal-tip-fixed b{font-size:11px}
.cal-tip-fixed .ct-ev{border-radius:5px;cursor:pointer}
.cal-tip-fixed .ct-ev:hover{background:var(--acc-soft)}
.cal-tip-fixed .ct-ev.full{color:var(--red)}
.cal-day.sel-start .cal-ev,.cal-day.sel-end .cal-ev{background:rgba(255,255,255,.18);color:#fff}
.cal-day.sel-start .cal-ev.full,.cal-day.sel-end .cal-ev.full{background:rgba(255,255,255,.18);color:#fff}
.cal-day.sel-start .cal-ev.more,.cal-day.sel-end .cal-ev.more{background:transparent;color:#fff}
.drp-trigger{background:#fff;border:1px solid var(--line);border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:.12s}
.drp-trigger:hover{border-color:var(--acc)}
.drp-arrow{font-size:9px;color:var(--muted)}
.drp-back{background:transparent}
.drp-menu{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(20,30,60,.16);color:var(--ink)}
.drp-head b{font-size:12.5px}
.drp-dow{font-size:10px;font-weight:700;color:var(--muted)}
.drp-day{border-radius:6px;font-size:11.5px;cursor:pointer;transition:.1s}
.drp-day:hover{background:var(--acc-soft)}
.drp-day.dim{color:var(--muted);opacity:.5}
.drp-day.today{outline:1px solid var(--acc)}
.drp-day.in-range{background:var(--acc-soft);color:var(--acc)}
.drp-day.sel-start,.drp-day.sel-end{background:var(--acc);color:#fff;font-weight:700}
.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
table{font-size:12.5px}
th{font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);border-bottom:1px solid var(--line);background:#fafbff}
td{border-bottom:1px solid #f0f1f7}
tr:hover td{background:#f8faff}
tr.sel td{background:var(--acc-soft)}
.st{border-radius:99px;font-size:11px;font-weight:600}
.st.ok{background:var(--green-soft);color:var(--green)}
.st.wait{background:var(--amber-soft);color:var(--amber)}
.st.no{background:var(--red-soft);color:var(--red)}
.mini-btn{border-radius:5px;font-size:11px;font-weight:600;border:1px solid var(--line);background:#fff}
.mini-btn:hover{background:#f4f6fb}
.mini-btn.green{background:var(--green);color:#fff;border-color:transparent}
.mini-btn.red{background:var(--red-soft);color:var(--red);border-color:transparent}
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.stat-card .v{font-size:20px;font-weight:700}
.stat-card .l{font-size:11px;color:var(--muted)}
.empty-c{color:var(--muted);font-size:13px}
.ps{border-radius:99px;background:#eaedf5}
.ps.on{background:var(--acc)}
.con-preview{border-radius:10px;border:1px solid var(--line)}
.con-preview .lg{font-size:24px}
.con-preview h3{font-size:16px;line-height:1.2}
.con-preview .cp-date{font-size:12px;opacity:.9}
.con-preview .cp-btn{background:#fff;color:var(--ink);border-radius:99px;font-weight:700;font-size:12px}
.tpl{border-radius:8px;border:2px solid var(--line);font-size:18px;background:#fff;cursor:pointer}
.tpl.active{border-color:var(--acc)}
.color-dot{border-radius:50%;border:2px solid transparent;cursor:pointer}
.color-dot.active{border-color:var(--ink)}
.con-settings label{font-size:11px;font-weight:700;color:var(--muted)}
.scan-result{border:1px solid var(--green);background:var(--green-soft);border-radius:8px}
.scan-result h4{color:var(--green);font-size:13px}
.parsed-field label{font-size:10px;color:var(--muted);font-weight:700}
.pkg-file{background:#fafbff;border:1px solid var(--line);border-radius:7px;font-size:12px}
.pkg-file b{font-weight:600}
.pkg-file span{color:var(--muted);font-size:11px}
.spin{border:3px solid var(--acc-soft);border-top-color:var(--acc);border-radius:50%;animation:sp .8s linear infinite}
.spin.white{border-color:rgba(255,255,255,.3);border-top-color:#fff}
@keyframes sp{to{transform:rotate(360deg)}}
.toast{background:#242a3f;color:#fff;border-radius:9px;font-size:13px;font-weight:600;opacity:0;transition:.2s;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.toast.show{opacity:1}
.hint{color:#8991a7;font-size:11px}
.hero{background:#2c3350;color:#fff;border-radius:0 0 12px 12px}
.hero-search{background:#2c3350;color:#fff;border-radius:0 0 12px 12px}
.hero-search .searchbar{background:#fff;border-radius:8px}
.hero-search .searchbar input{border:none;box-shadow:none}
.hero-search .searchbar button{background:var(--acc);color:#fff;border-radius:0;font-weight:600;font-size:13px}
.hs-title{font-size:17px;font-weight:700;color:#fff}
.hs-sub{font-size:12px;color:#b6bdd4}
.hero h1{font-size:22px;font-weight:700}
.hero p{color:#b6bdd4;font-size:13px}
.hero .searchbar{background:#fff;border-radius:8px}
.hero .searchbar input{border:none;box-shadow:none}
.hero .searchbar button{background:var(--acc);color:#fff;border-radius:6px;font-weight:600;font-size:13px}
.chip{background:#38405f;border:1px solid #484f6d;border-radius:99px;font-size:12px;cursor:pointer}
.chip:hover{background:#454d70}
.steps div{font-size:12px;color:#aeb5cc}
.steps b{color:#fff}
.material{border-bottom:1px solid var(--line);font-size:12px}
.material:last-child{border-bottom:none}
.material b{font-weight:600}
.material span{color:var(--muted)}
.seats{font-size:13px;color:var(--muted)}
.seats .big{font-size:22px;color:var(--acc);font-weight:700}
.ev-popup{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);font-size:12px}
.admin-tabs{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.admin-tabs button{border-radius:6px;font-weight:600;font-size:12px;color:var(--muted)}
.admin-tabs button.active{background:var(--acc-soft);color:var(--acc)}
.loading-progress{background:#2c3350}
.lp-brand{color:#fff;font-weight:700;font-size:17px}
.lp-dot{border-radius:3px;background:var(--acc)}
.loader-spin{border:4px solid rgba(255,255,255,.18);border-top-color:#fff;border-right-color:#fff;border-radius:50%;animation:sp .8s linear infinite}
#app .loading-progress-text{font-size:12px;color:#b6bdd4}
#blazor-error-ui.reload{background:var(--red-soft);color:var(--red);font-size:13px;font-weight:600}
.styled-select .ss-trigger{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;line-height:1.25;cursor:pointer;transition:.12s}
.styled-select .ss-trigger:hover{border-color:var(--acc)}
.styled-select .ss-arrow{font-size:10px;color:var(--muted);transition:transform .15s}
.styled-select .ss-menu{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(20,30,60,.16)}
.styled-select .ss-opt{border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:.1s}
.styled-select .ss-opt:hover{background:var(--acc-soft);color:var(--acc)}
.styled-select .ss-opt.sel{background:var(--acc);color:#fff}
.styled-select .ss-menu-sided{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(20,30,60,.16)}
table .styled-select .ss-trigger{font-size:12px}
.hs-tools .styled-select .ss-trigger{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.hs-tools .styled-select .ss-trigger:hover{border-color:rgba(255,255,255,.55)}
.hs-tools .styled-select .ss-arrow{color:#c3c9dd}
.hs-tools .styled-select .ss-menu,.hs-tools .styled-select .ss-menu-sided{background:#fff;border-color:var(--line);color:var(--ink)}




/* header overrides (site settings) */
.topbar{background:var(--site-hdr-bg,#242a3f) !important;color:var(--site-hdr-ink,#dfe3f2) !important}
.hero,.hero-search,.loading-progress{background:var(--site-hdr-bg,#2c3350) !important}

/* align header gradient across topbar + hero (fixed to viewport) */
.topbar,.hero,.hero-search,.loading-progress{background-attachment:fixed !important}

/* accent highlight (active tab + brand dot) from settings */
.brand .dot{background:var(--site-acc,#3f6ad8) !important}
.nav button.active{background:var(--site-acc,#3f6ad8) !important}
