/* ============================================================
   ПРОСТОР — Оперативные журналы (kit.css)
   Dark-theme interface for shift log / event journal system.
   ============================================================ */
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{background:var(--bg-1);color:var(--fg-1);font-family:var(--font-body);}

/* ---------- App shell ---------- */
.j-app{display:grid;grid-template-columns:256px 1fr;height:100vh;}

/* ---------- Sidebar ---------- */
.j-side{background:var(--n-900);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;}
.j-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 20px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.j-mark{width:32px;height:32px;border-radius:6px;}
.j-brandtext{display:flex;flex-direction:column;line-height:1;}
.j-wordmark{font-family:var(--font-display);font-weight:600;letter-spacing:.06em;font-size:16px;}
.j-sub{font-size:10.5px;color:var(--fg-3);letter-spacing:.04em;margin-top:3px;}

.j-nav{display:flex;flex-direction:column;gap:3px;margin-top:6px;}
.j-navitem{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-2);
  background:none;border:none;color:var(--fg-2);font-family:var(--font-body);font-size:13.5px;font-weight:500;
  text-align:left;cursor:pointer;transition:all .16s cubic-bezier(.2,.7,.3,1);width:100%;}
.j-navitem:hover{background:var(--n-800);color:var(--fg-1);}
.j-navitem.active{background:rgba(247,95,54,.14);color:var(--accent);font-weight:700;}
.j-navitem svg,.j-navitem i{width:18px;height:18px;flex:none;}

.j-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--border);padding-top:10px;}

/* ---------- Top bar ---------- */
.j-top{display:flex;align-items:center;gap:16px;padding:0 22px;height:60px;border-bottom:1px solid var(--border);
  background:var(--n-900);flex:none;}
.j-top-title{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:.04em;text-transform:uppercase;}
.j-top-badge{font-size:11px;padding:3px 10px;border-radius:var(--r-pill);background:var(--ok-bg);color:var(--ok);font-weight:700;margin-left:8px;}
.j-top-spacer{flex:1;}

.j-search{display:flex;align-items:center;gap:9px;background:var(--n-950);border:1px solid var(--border);
  border-radius:var(--r-2);padding:8px 13px;width:340px;}
.j-search svg,.j-search i{width:16px;height:16px;color:var(--fg-3);flex:none;}
.j-search input{background:none;border:none;outline:none;color:var(--fg-1);font-family:var(--font-body);font-size:13.5px;width:100%;}

.j-top-actions{display:flex;align-items:center;gap:10px;margin-left:12px;}
.j-icbtn{position:relative;background:none;border:1px solid var(--border);border-radius:var(--r-2);
  width:36px;height:36px;display:grid;place-items:center;color:var(--fg-2);cursor:pointer;transition:all .16s;}
.j-icbtn:hover{color:var(--fg-1);border-color:var(--border-strong);}
.j-icbtn svg,.j-icbtn i{width:17px;height:17px;}
.j-dot{position:absolute;top:7px;right:8px;width:7px;height:7px;background:var(--accent);border-radius:50%;}

.j-user{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:600;font-size:13px;}

/* ---------- Main content ---------- */
.j-main{display:flex;flex-direction:column;min-width:0;overflow:hidden;}
.j-content{padding:20px 22px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;}

/* ---------- Toolbar / filters ---------- */
.j-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.j-toolbar-left{display:flex;align-items:center;gap:10px;flex:1;}
.j-toolbar-right{display:flex;align-items:center;gap:10px;margin-left:auto;}

.j-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--border-strong);
  color:var(--fg-1);font-family:var(--font-body);font-weight:600;font-size:13px;padding:8px 14px;border-radius:var(--r-2);cursor:pointer;transition:all .16s;}
.j-btn:hover{border-color:var(--accent);color:var(--accent);}
.j-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.j-btn.primary:hover{background:var(--prostor-orange-600);border-color:var(--prostor-orange-600);}
.j-btn svg,.j-btn i{width:15px;height:15px;}

.j-filter{display:flex;align-items:center;gap:6px;background:var(--n-950);border:1px solid var(--border);
  border-radius:var(--r-2);padding:7px 12px;color:var(--fg-2);font-size:13px;cursor:pointer;transition:all .16s;}
.j-filter:hover{border-color:var(--border-strong);color:var(--fg-1);}
.j-filter svg,.j-filter i{width:14px;height:14px;}

/* ---------- KPI summary row ---------- */
.j-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.j-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:14px 16px;position:relative;overflow:hidden;}
.j-kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:0;transition:opacity .2s;}
.j-kpi:hover::before{opacity:1;}
.j-kpi-cap{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600;color:var(--fg-3);display:flex;align-items:center;gap:6px;}
.j-kpi-val{font-family:var(--font-display);font-weight:500;font-variant-numeric:tabular-nums;font-size:28px;line-height:1;margin:8px 0 5px;}
.j-kpi-val small{font-size:14px;color:var(--fg-2);}
.j-kpi-bar{height:3px;background:var(--n-700);border-radius:var(--r-pill);margin-top:8px;overflow:hidden;}
.j-kpi-bar>div{height:100%;border-radius:var(--r-pill);transition:width .6s cubic-bezier(.2,.7,.3,1);}

/* ---------- Panel / Card ---------- */
.j-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:0;overflow:hidden;}
.j-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--n-900);}
.j-panel-head h3{font-size:14px;font-weight:600;margin:0;font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;}
.j-panel-body{padding:14px 18px;}

/* ---------- Journal table ---------- */
.j-table{width:100%;border-collapse:collapse;font-size:13px;}
.j-table th{text-align:left;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.07em;font-size:10px;
  color:var(--fg-3);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;}
.j-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--fg-1);vertical-align:top;}
.j-table tr:last-child td{border-bottom:none;}
.j-table tbody tr{cursor:pointer;transition:background .12s;}
.j-table tbody tr:hover{background:rgba(247,95,54,.06);}

.j-table .col-time{width:100px;white-space:nowrap;}
.j-table .col-shift{width:70px;}
.j-table .col-type{width:110px;}
.j-table .col-station{width:140px;}
.j-table .col-author{width:110px;}
.j-table .col-status{width:90px;}
.j-table .col-actions{width:60px;text-align:right;}

.j-time{font-family:var(--font-mono);font-size:12px;color:var(--fg-2);display:flex;flex-direction:column;gap:1px;}
.j-time-d{font-size:10.5px;color:var(--fg-3);}

.j-shift{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--r-1);background:var(--n-900);color:var(--fg-2);border:1px solid var(--border);}

/* Status badge */
.j-status{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);}
.j-status::before{content:'';width:6px;height:6px;border-radius:50%;}
.j-status.new{background:var(--info-bg);color:var(--info);}
.j-status.new::before{background:var(--info);}
.j-status.inprogress{background:var(--warn-bg);color:var(--warn);}
.j-status.inprogress::before{background:var(--warn);}
.j-status.resolved{background:var(--ok-bg);color:var(--ok);}
.j-status.resolved::before{background:var(--ok);}
.j-status.critical{background:var(--danger-bg);color:var(--danger);}
.j-status.critical::before{background:var(--danger);}
.j-status.approved{background:var(--ok-bg);color:var(--ok);}
.j-status.approved::before{background:var(--ok);}

/* Type badge */
.j-type{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:var(--r-1);border:1px solid var(--border);color:var(--fg-2);}
.j-type svg,.j-type i{width:12px;height:12px;}

/* Entry preview text */
.j-preview{color:var(--fg-2);font-size:12.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:420px;}

/* Row priority indicator */
.j-pri-bar{width:3px;height:100%;position:absolute;left:0;top:0;}

/* ---------- Form ---------- */
.j-form{display:flex;flex-direction:column;gap:14px;}
.j-field{display:flex;flex-direction:column;gap:5px;}
.j-field label{font-family:var(--font-display);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600;}
.j-field input,.j-field select,.j-field textarea{background:var(--n-950);border:1px solid var(--border);border-radius:var(--r-2);
  padding:9px 12px;color:var(--fg-1);font-family:var(--font-body);font-size:13.5px;outline:none;transition:border-color .16s,box-shadow .16s;}
.j-field input:focus,.j-field select:focus,.j-field textarea:focus{border-color:var(--accent);box-shadow:var(--focus);}
.j-field textarea{resize:vertical;min-height:80px;}
.j-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

/* ---------- Modal / Drawer ---------- */
.j-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:grid;place-items:center;backdrop-filter:blur(2px);}
.j-modal{background:var(--n-800);border:1px solid var(--border);border-radius:var(--r-3);width:640px;max-width:92vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sh-3);}
.j-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);}
.j-modal-head h2{font-family:var(--font-display);font-size:18px;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:.02em;}
.j-modal-body{padding:18px 20px;overflow-y:auto;flex:1;}
.j-modal-foot{display:flex;justify-content:center;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:var(--n-900);}
.j-modal-foot .j-btn{min-width:120px;justify-content:center;}
.j-close{background:none;border:none;color:var(--fg-3);cursor:pointer;padding:4px;display:grid;place-items:center;border-radius:var(--r-1);}
.j-close:hover{color:var(--fg-1);background:var(--n-700);}
.j-close svg,.j-close i{width:18px;height:18px;}

/* ---------- Pagination ---------- */
.j-page{display:flex;align-items:center;gap:6px;}
.j-pagebtn{background:none;border:1px solid var(--border);border-radius:var(--r-2);width:32px;height:32px;display:grid;place-items:center;
  color:var(--fg-2);cursor:pointer;font-family:var(--font-mono);font-size:12px;font-weight:600;transition:all .16s;}
.j-pagebtn:hover{border-color:var(--border-strong);color:var(--fg-1);}
.j-pagebtn.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.j-pagebtn:disabled{opacity:.35;cursor:not-allowed;}

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--n-600);border-radius:var(--r-pill);}
::-webkit-scrollbar-thumb:hover{background:var(--n-500);}

/* ---------- Priority badges ---------- */
.j-priority{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;}
.j-priority.urgent{background:var(--danger-bg);color:var(--danger);}
.j-priority.planned{background:var(--warn-bg);color:var(--warn);}
.j-priority.info{background:var(--info-bg);color:var(--info);}

/* ---------- Small action button ---------- */
.j-btn-sm{background:none;border:1px solid var(--border);border-radius:var(--r-2);width:28px;height:28px;display:inline-grid;place-items:center;color:var(--fg-3);cursor:pointer;transition:all .16s;padding:0;}
.j-btn-sm:hover{border-color:var(--ok);color:var(--ok);}
.j-btn-sm svg{width:14px;height:14px;}

/* ---------- Role selector enhancements ---------- */
.j-role-card{position:relative;}
.j-role-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);opacity:0;transition:opacity .2s;border-radius:var(--r-3) var(--r-3) 0 0;}
.j-role-card:hover::before{opacity:1;}

/* ---------- Dashboard enhancements ---------- */
.j-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.j-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:16px;text-align:center;}
.j-stat-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600;color:var(--fg-3);margin-bottom:10px;}
.j-stat-value{font-family:var(--font-display);font-weight:500;font-size:32px;line-height:1;}

/* ---------- AI Components ---------- */
.j-ai-panel{border-color:rgba(247,95,54,.25) !important;background:rgba(247,95,54,.03) !important;}
.j-ai-head{color:var(--accent) !important;}
.j-ai-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:3px 10px;border-radius:var(--r-pill);background:rgba(247,95,54,.12);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;}
.j-ai-bar-bg{height:5px;background:var(--n-700);border-radius:var(--r-pill);overflow:hidden;}
.j-ai-bar-fill{height:100%;border-radius:var(--r-pill);transition:width .6s cubic-bezier(.2,.7,.3,1);}
.j-anomaly-panel{border-color:rgba(229,72,77,.3) !important;background:rgba(229,72,77,.03) !important;}
.j-anomaly-head{border-bottom-color:rgba(229,72,77,.2) !important;}

/* lucide icon sizing */
.j-navitem svg{width:18px;height:18px;flex:none;}
.j-icbtn svg{width:17px;height:17px;}
.j-btn svg{width:15px;height:15px;}
.j-btn-sm svg{width:14px;height:14px;}
.j-filter svg{width:14px;height:14px;}
.j-search svg{width:16px;height:16px;flex:none;}
.j-close svg{width:18px;height:18px;}
.j-type svg{width:12px;height:12px;}
