/* Порядыч — компоненты админки (классы k-*). */
@font-face{font-family:"Inter";src:url("../fonts/InterVariable.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/InterVariable-Italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.k{margin:0;background:var(--k-bg);color:var(--k-ink);font:var(--k-fs)/1.5 var(--k-font);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}
a{color:var(--k-primary);text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:none;box-shadow:var(--k-focus)}
h1.k-h1,.k-h1{font-size:var(--k-fs-h1);font-weight:650;letter-spacing:-.01em;margin:0 0 var(--k-sp-4)}
.k-h2{font-size:var(--k-fs-h2);font-weight:650;margin:var(--k-sp-5) 0 var(--k-sp-3)}
.k-label{font-size:var(--k-fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--k-ink-3)}
.k-muted{color:var(--k-ink-3)}.k-mono{font-family:var(--k-mono);font-size:.92em}.k-num{font-variant-numeric:tabular-nums}
.k-code{font-family:var(--k-mono);font-size:.88em;background:var(--k-surface-2);padding:1px 6px;border-radius:var(--k-radius-sm)}

/* ---------- каркас ---------- */
.k-app{display:grid;grid-template-columns:var(--k-sidebar-w) 1fr;min-height:100vh}
.k-sidebar{background:var(--k-sidebar);color:var(--k-sidebar-ink);padding:var(--k-sp-4) var(--k-sp-3);display:flex;flex-direction:column;gap:var(--k-sp-1);position:sticky;top:0;height:100vh;overflow:auto}
.k-sidebar .k-brand{color:#fff;font-weight:700;font-size:15px;padding:var(--k-sp-2) var(--k-sp-3);margin-bottom:var(--k-sp-3);display:flex;align-items:center;gap:10px}
.k-sidebar .k-brand small{display:block;font-weight:500;font-size:11px;color:var(--k-sidebar-ink);opacity:.8}
.k-nav a{display:flex;align-items:center;gap:10px;padding:9px var(--k-sp-3);border-radius:var(--k-radius-sm);color:var(--k-sidebar-ink);font-weight:500}
.k-nav a:hover{background:var(--k-sidebar-active);text-decoration:none;color:#fff}
.k-nav a.is-active{background:var(--k-sidebar-active);color:#fff;box-shadow:inset 3px 0 0 var(--k-sidebar-accent)}
.k-nav .k-nav-group{font-size:var(--k-fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--k-ink-3);padding:var(--k-sp-3) var(--k-sp-3) var(--k-sp-1)}
.k-sidebar .k-spacer{flex:1}
.k-main{min-width:0;display:flex;flex-direction:column}
.k-topbar{display:flex;align-items:center;gap:var(--k-sp-3);padding:var(--k-sp-3) var(--k-sp-5);background:var(--k-surface);border-bottom:.5px solid var(--k-line);position:sticky;top:0;z-index:5}
.k-topbar .k-title{font-weight:650;font-size:var(--k-fs-lg)}
.k-topbar .k-spacer{flex:1}
.k-content{padding:var(--k-sp-5);display:flex;flex-direction:column;gap:var(--k-sp-4)}
/* вариант с табами (2–4 раздела) */
.k-tabs{display:flex;gap:2px;border-bottom:.5px solid var(--k-line);flex-wrap:wrap}
.k-tabs a,.k-tabs button{padding:10px 14px;color:var(--k-ink-2);font-weight:600;border:0;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font:inherit;font-weight:600}
.k-tabs a:hover{color:var(--k-ink);text-decoration:none}.k-tabs .is-active{color:var(--k-primary);border-bottom-color:var(--k-primary)}
@media(max-width:860px){.k-app{grid-template-columns:1fr}.k-sidebar{position:fixed;bottom:0;top:auto;height:auto;width:100%;flex-direction:row;padding:6px;gap:0;z-index:10}
 .k-sidebar .k-brand,.k-nav .k-nav-group,.k-sidebar .k-spacer{display:none}.k-nav{display:contents}.k-nav a{flex:1;flex-direction:column;gap:2px;font-size:11px;padding:6px 2px;justify-content:center;text-align:center}
 .k-nav a.is-active{box-shadow:none}.k-content{padding:var(--k-sp-4);padding-bottom:80px}.k-topbar{padding:var(--k-sp-3) var(--k-sp-4)}}

/* ---------- карточки / статы ---------- */
.k-card{background:var(--k-surface);border:.5px solid var(--k-line);border-radius:var(--k-radius);padding:var(--k-sp-4) var(--k-sp-5);box-shadow:var(--k-shadow)}
.k-card .k-card-title{font-weight:650;font-size:var(--k-fs-lg);margin:0 0 var(--k-sp-3)}
.k-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--k-sp-3)}
.k-stat{background:var(--k-surface);border:.5px solid var(--k-line);border-radius:var(--k-radius);padding:var(--k-sp-3) var(--k-sp-4)}
.k-stat .k-label{margin-bottom:4px}.k-stat .k-value{font-size:22px;font-weight:650;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.k-stat .k-sub{font-size:var(--k-fs-sm);color:var(--k-ink-3)}

/* ---------- кнопки ---------- */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--k-control-h);padding:0 14px;border-radius:var(--k-radius-sm);border:.5px solid var(--k-line-strong);background:var(--k-surface);color:var(--k-ink);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}
.k-btn:hover{background:var(--k-surface-2);text-decoration:none}
.k-btn:disabled,.k-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.k-btn-primary{background:var(--k-primary);border-color:var(--k-primary);color:var(--k-on-primary)}.k-btn-primary:hover{background:var(--k-primary-hover);border-color:var(--k-primary-hover)}
.k-btn-danger{background:var(--k-danger);border-color:var(--k-danger);color:#fff}.k-btn-danger:hover{filter:brightness(.92)}
.k-btn-ghost{border-color:transparent;background:transparent}.k-btn-ghost:hover{background:var(--k-surface-2)}
.k-btn-sm{height:28px;padding:0 10px;font-size:var(--k-fs-sm)}.k-btn-lg{height:44px;padding:0 20px;font-size:15px}
.k-btn-block{width:100%}
.k-btn .k-spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:k-spin .7s linear infinite}
@keyframes k-spin{to{transform:rotate(360deg)}}

/* ---------- формы ---------- */
.k-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.k-field>label,.k-field-label{font-size:var(--k-fs-sm);font-weight:600;color:var(--k-ink-2)}
.k-field .k-hint{font-size:var(--k-fs-xs);color:var(--k-ink-3)}.k-field .k-error{font-size:var(--k-fs-xs);color:var(--k-danger)}
.k-input,.k-select,.k-textarea{height:var(--k-control-h);width:100%;padding:0 10px;border:.5px solid var(--k-line-strong);border-radius:var(--k-radius-sm);background:var(--k-surface);color:var(--k-ink);font:inherit;transition:border-color .12s,box-shadow .12s}
.k-textarea{height:auto;min-height:88px;padding:8px 10px;resize:vertical}
.k-input:focus,.k-select:focus,.k-textarea:focus{border-color:var(--k-primary);box-shadow:var(--k-focus)}
.k-input::placeholder{color:var(--k-ink-3)}
.k-input[aria-invalid=true],.k-field.is-invalid .k-input{border-color:var(--k-danger)}
.k-select{appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.k-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.k-check input{width:16px;height:16px;accent-color:var(--k-primary);margin:0}
.k-switch{position:relative;width:38px;height:22px;display:inline-block}.k-switch input{opacity:0;width:0;height:0}
.k-switch span{position:absolute;inset:0;background:var(--k-surface-3);border-radius:22px;transition:.15s}.k-switch span::before{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.15s;box-shadow:0 1px 2px rgb(0 0 0/.2)}
.k-switch input:checked+span{background:var(--k-primary)}.k-switch input:checked+span::before{transform:translateX(16px)}
.k-form{display:grid;gap:var(--k-sp-4)}.k-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--k-sp-3)}
.k-form-actions{display:flex;gap:var(--k-sp-2);justify-content:flex-end;padding-top:var(--k-sp-2)}
.k-input-group{display:flex}.k-input-group .k-input{border-radius:var(--k-radius-sm) 0 0 var(--k-radius-sm)}.k-input-group .k-btn{border-radius:0 var(--k-radius-sm) var(--k-radius-sm) 0;margin-left:-.5px}

/* ---------- k-multi: множественный выбор — поле-кнопка + выпадающий список с чекбоксами ---------- */
.k-multi{position:relative}
.k-multi-btn{height:var(--k-control-h);width:100%;padding:0 30px 0 10px;border:.5px solid var(--k-line-strong);border-radius:var(--k-radius-sm);background:var(--k-surface);color:var(--k-ink);font:inherit;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.k-multi-btn:focus{border-color:var(--k-primary);box-shadow:var(--k-focus);outline:none}
.k-multi-btn.is-empty{color:var(--k-ink-3)}
.k-multi-panel{display:none;position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:100%;max-height:280px;overflow:auto;padding:4px;background:var(--k-surface);border:.5px solid var(--k-line);border-radius:var(--k-radius);box-shadow:var(--k-shadow-lg)}
.k-multi.is-open .k-multi-panel{display:block}
.k-multi-opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--k-radius-sm);cursor:pointer;white-space:nowrap}
.k-multi-opt:hover{background:var(--k-surface-2)}
.k-multi-opt input{width:16px;height:16px;accent-color:var(--k-primary);margin:0;flex:none}

/* ---------- фильтры: Поиск → Период → Статус → Ответственный → … → Сбросить ---------- */
.k-filters{display:flex;flex-wrap:wrap;gap:var(--k-sp-2);align-items:center}
.k-filters .k-input,.k-filters .k-select{width:auto;min-width:160px}
.k-filters .k-search{min-width:220px;flex:1 1 220px}
.k-filters .k-reset{margin-left:auto}
.k-chips{display:flex;flex-wrap:wrap;gap:6px}
.k-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:20px;background:var(--k-primary-soft);color:var(--k-primary-ink);font-size:var(--k-fs-sm);font-weight:600}
.k-chip button{border:0;background:none;color:inherit;cursor:pointer;padding:0;font-size:14px;line-height:1}
/* период: пресеты + свой диапазон */
.k-period{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.k-period .k-seg{display:inline-flex;border:.5px solid var(--k-line-strong);border-radius:var(--k-radius-sm);overflow:hidden;height:var(--k-control-h)}
.k-period .k-seg button{border:0;background:var(--k-surface);color:var(--k-ink-2);padding:0 12px;font:inherit;font-weight:600;cursor:pointer;border-right:.5px solid var(--k-line)}
.k-period .k-seg button:last-child{border-right:0}.k-period .k-seg button.is-active{background:var(--k-primary-soft);color:var(--k-primary-ink)}
.k-period .k-range{display:none;gap:6px;align-items:center}.k-period.is-custom .k-range{display:inline-flex}.k-period .k-range .k-input{width:150px}

/* ---------- таблица ---------- */
.k-table-wrap{overflow-x:auto;background:var(--k-surface);border:.5px solid var(--k-line);border-radius:var(--k-radius)}
.k-table{border-collapse:collapse;width:100%;font-size:13.5px}
.k-table th{text-align:left;font-size:var(--k-fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--k-ink-3);padding:10px 14px;background:var(--k-surface-2);border-bottom:.5px solid var(--k-line-strong);white-space:nowrap;position:sticky;top:0}
.k-table td{padding:10px 14px;border-bottom:.5px solid var(--k-line);vertical-align:middle}
.k-table tbody tr:last-child td{border-bottom:0}.k-table tbody tr:hover td{background:var(--k-surface-2)}
.k-table .k-num,.k-table td.k-right{text-align:right;font-variant-numeric:tabular-nums}
.k-table tr.is-clickable{cursor:pointer}
.k-table-foot{display:flex;align-items:center;gap:var(--k-sp-3);padding:var(--k-sp-3) var(--k-sp-4);border-top:.5px solid var(--k-line);color:var(--k-ink-3);font-size:var(--k-fs-sm)}
.k-empty{padding:var(--k-sp-6) var(--k-sp-4);text-align:center;color:var(--k-ink-3)}.k-empty b{display:block;color:var(--k-ink-2);font-size:15px;margin-bottom:4px}
.k-empty .k-btn{margin-top:var(--k-sp-3)}

/* ---------- бейджи ---------- */
.k-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:20px;font-size:var(--k-fs-xs);font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--k-surface-3);color:var(--k-ink-2);white-space:nowrap}
.k-badge-success{background:var(--k-success-soft);color:var(--k-success-ink)}.k-badge-warning{background:var(--k-warning-soft);color:var(--k-warning-ink)}
.k-badge-danger{background:var(--k-danger-soft);color:var(--k-danger-ink)}.k-badge-info{background:var(--k-info-soft);color:var(--k-info-ink)}.k-badge-primary{background:var(--k-primary-soft);color:var(--k-primary-ink)}
.k-dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}

/* ---------- алерты / колауты ---------- */
.k-alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--k-radius);border:.5px solid var(--k-line);background:var(--k-surface-2);color:var(--k-ink-2);font-size:13.5px}
.k-alert b{color:var(--k-ink)}
.k-alert-info{background:var(--k-info-soft);color:var(--k-info-ink);border-color:transparent}.k-alert-info b{color:inherit}
.k-alert-success{background:var(--k-success-soft);color:var(--k-success-ink);border-color:transparent}.k-alert-success b{color:inherit}
.k-alert-warning{background:var(--k-warning-soft);color:var(--k-warning-ink);border-color:transparent}.k-alert-warning b{color:inherit}
.k-alert-danger{background:var(--k-danger-soft);color:var(--k-danger-ink);border-color:transparent}.k-alert-danger b{color:inherit}

/* ---------- модалка ---------- */
.k-modal-backdrop{position:fixed;inset:0;background:rgb(15 23 42/.5);display:flex;align-items:center;justify-content:center;padding:var(--k-sp-4);z-index:50;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,visibility 0s .15s}
.k-modal-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .15s}
.k-modal{background:var(--k-surface);border-radius:var(--k-radius-lg);box-shadow:var(--k-shadow-lg);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;transform:translateY(8px);transition:transform .15s}
.k-modal-backdrop.is-open .k-modal{transform:none}.k-modal.k-modal-wide{max-width:860px}
.k-modal-head{display:flex;align-items:center;gap:10px;padding:var(--k-sp-4) var(--k-sp-5);border-bottom:.5px solid var(--k-line)}
.k-modal-head h3{margin:0;font-size:var(--k-fs-lg);font-weight:650;flex:1}
.k-modal-body{padding:var(--k-sp-4) var(--k-sp-5);overflow:auto}
.k-modal-foot{display:flex;gap:var(--k-sp-2);justify-content:flex-end;padding:var(--k-sp-3) var(--k-sp-5);border-top:.5px solid var(--k-line)}
.k-x{border:0;background:none;color:var(--k-ink-3);font-size:20px;line-height:1;cursor:pointer;padding:4px;border-radius:var(--k-radius-sm)}.k-x:hover{background:var(--k-surface-2);color:var(--k-ink)}

/* ---------- тосты ---------- */
.k-toasts{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:100;max-width:360px}
.k-toast{background:var(--k-ink);color:var(--k-ink-inv);padding:11px 14px;border-radius:var(--k-radius);box-shadow:var(--k-shadow-lg);font-size:13.5px;display:flex;gap:10px;align-items:flex-start;animation:k-in .18s ease-out}
.k-toast-success{background:var(--k-success)}.k-toast-error{background:var(--k-danger)}.k-toast-info{background:var(--k-primary)}
.k-toast .k-x{color:inherit;opacity:.8;margin-left:auto}
@keyframes k-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- пагинация ---------- */
.k-more{display:flex;align-items:center;justify-content:center;gap:var(--k-sp-3);padding:var(--k-sp-3)}
.k-pages{display:inline-flex;gap:4px}.k-pages a,.k-pages span{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--k-radius-sm);padding:0 8px;color:var(--k-ink-2);font-weight:600}
.k-pages a:hover{background:var(--k-surface-2);text-decoration:none}.k-pages .is-active{background:var(--k-primary);color:#fff}

/* ---------- страница входа ---------- */
.k-auth{min-height:100vh;display:grid;place-items:center;padding:var(--k-sp-5);background:linear-gradient(160deg,var(--k-bg),var(--k-surface-3))}
.k-auth-card{width:100%;max-width:400px;background:var(--k-surface);border-radius:var(--k-radius-lg);box-shadow:var(--k-shadow-lg);padding:var(--k-sp-6) var(--k-sp-6) var(--k-sp-5)}
.k-auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:var(--k-sp-5)}
.k-auth-logo{width:40px;height:40px;border-radius:10px;background:var(--k-primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;overflow:hidden}
.k-auth-logo img{width:100%;height:100%;object-fit:cover;display:block}.k-auth-logo.has-img{background:none}
.k-auth-brand b{display:block;font-size:17px}.k-auth-brand small{color:var(--k-ink-3)}
.k-auth .k-form{gap:var(--k-sp-3)}
.k-auth-sso{margin-bottom:var(--k-sp-4)}
.k-auth-or{display:flex;align-items:center;gap:10px;color:var(--k-ink-3);font-size:var(--k-fs-xs);text-transform:uppercase;letter-spacing:.06em;margin:var(--k-sp-4) 0}
.k-auth-or::before,.k-auth-or::after{content:"";flex:1;height:.5px;background:var(--k-line)}
.k-auth-foot{margin-top:var(--k-sp-5);text-align:center;font-size:var(--k-fs-xs);color:var(--k-ink-3)}
.k-auth-links{display:flex;justify-content:space-between;font-size:var(--k-fs-sm)}

/* ---------- утилиты ---------- */
.k-row{display:flex;align-items:center;gap:var(--k-sp-2);flex-wrap:wrap}.k-row .k-spacer{flex:1}
.k-stack{display:flex;flex-direction:column;gap:var(--k-sp-3)}
.k-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--k-sp-4)}
.k-hide-mobile{display:initial}@media(max-width:860px){.k-hide-mobile{display:none!important}}
.k-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- пароль с кнопкой «показать» ---------- */
.k-pass{position:relative}
.k-pass .k-input{padding-right:40px}
.k-pass-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:none;border-radius:var(--k-radius-sm);color:var(--k-ink-3);cursor:pointer;padding:0}
.k-pass-eye:hover{background:var(--k-surface-2);color:var(--k-ink)}
.k-pass-eye::before{content:"";display:block;width:18px;height:18px;margin:auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.k-pass.is-shown .k-pass-eye::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.7 10.7 0 0 1 12 5c6.5 0 10 7 10 7a17 17 0 0 1-3.2 4.1M6.6 6.6A16.8 16.8 0 0 0 2 12s3.5 7 10 7c1.6 0 3-.3 4.2-.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.7 10.7 0 0 1 12 5c6.5 0 10 7 10 7a17 17 0 0 1-3.2 4.1M6.6 6.6A16.8 16.8 0 0 0 2 12s3.5 7 10 7c1.6 0 3-.3 4.2-.9'/%3E%3C/svg%3E")}
/* ---------- календарь: единый вместо нативного <input type=date> ---------- */
.k-date{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;text-align:left;color:var(--k-ink);font:inherit}
.k-date.is-empty{color:var(--k-ink-3)}.k-date .k-i{color:var(--k-ink-3);flex:none}.k-date:disabled{opacity:.6;cursor:default}
.k-dp{position:fixed;z-index:1100;background:var(--k-surface);border:.5px solid var(--k-line-strong);border-radius:var(--k-radius-lg);box-shadow:var(--k-shadow-lg);padding:10px;width:280px;font-size:13px;color:var(--k-ink);animation:k-dp-in .12s ease}
@keyframes k-dp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.k-dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 2px}.k-dp-title{font-weight:700;text-transform:capitalize}
.k-dp-nav{width:28px;height:28px;border:0;background:none;border-radius:var(--k-radius-sm);color:var(--k-ink-2);cursor:pointer;font:inherit;font-size:16px;line-height:1}.k-dp-nav:hover{background:var(--k-surface-2);color:var(--k-ink)}
.k-dp-wd{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;color:var(--k-ink-3);text-align:center;margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.k-dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.k-dp-day{height:34px;border:0;background:none;border-radius:var(--k-radius-sm);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;color:var(--k-ink)}
.k-dp-day:hover{background:var(--k-surface-2)}.k-dp-day.is-other{color:var(--k-ink-3)}.k-dp-day.is-weekend{color:var(--k-ink-2)}.k-dp-day.is-other.is-weekend{color:var(--k-ink-3)}
.k-dp-day.is-today{font-weight:700;color:var(--k-primary-ink);box-shadow:inset 0 0 0 1px var(--k-primary)}
.k-dp-day.is-selected,.k-dp-day.is-selected:hover{background:var(--k-primary);color:var(--k-on-primary);box-shadow:none;font-weight:700}
.k-dp-day:disabled{opacity:.3;cursor:default;background:none}
.k-dp-foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:.5px solid var(--k-line)}
.k-dp-foot button{border:0;background:none;color:var(--k-primary-ink);font:inherit;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:var(--k-radius-sm)}.k-dp-foot button:hover{background:var(--k-primary-soft)}
/* выбор месяца (v1.6.0): .k-monthpicker = hidden «ГГГГ-ММ» + поле «Октябрь 2026»; окно .k-dp.k-mp-pop — «‹ год ›» и 12 месяцев 3×4 (kit.monthpicker) */
.k-monthpicker{display:inline-flex;vertical-align:middle}.k-monthpicker .k-mp-btn{min-width:150px}
.k-field .k-monthpicker{display:flex}.k-field .k-monthpicker .k-mp-btn{width:100%}
.k-range{display:inline-flex;gap:6px;align-items:center}.k-field .k-range .k-monthpicker{display:inline-flex}.k-field .k-range .k-monthpicker .k-mp-btn{width:auto}
.k-mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.k-mp-pop .k-mp-m{height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}
.k-mp-pop .k-mp-m small{font-size:10.5px;font-weight:500;color:var(--k-ink-3)}.k-mp-pop .k-mp-m.is-selected small{color:inherit}
.k-mp-pop .k-dp-nav:disabled{opacity:.3;cursor:default;background:none}
/* поле секрета (v1.6.0): маска «AbCd…89xY» поверх пустого ввода, выделить нельзя; фокус или новое значение — маска скрыта (kit.js) */
.k-secret{position:relative}.k-secret .k-input{font-family:var(--k-mono)}
.k-secret-mask{position:absolute;left:0;top:0;bottom:0;display:flex;align-items:center;padding:0 10.5px;font-family:var(--k-mono);color:var(--k-ink-2);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden}
.k-secret.is-edit .k-secret-mask{display:none}
/* числовые поля без стрелок браузера (v1.6.0) */
.k-input[type=number],.k input[type=number]{-moz-appearance:textfield;appearance:textfield}
.k-input[type=number]::-webkit-inner-spin-button,.k-input[type=number]::-webkit-outer-spin-button,.k input[type=number]::-webkit-inner-spin-button,.k input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;display:none}
