
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

/*
  Общая фирменная тема Rackfork для интерфейсов Rackfork Tracker.
  Цель: приблизить визуальный стиль приложения к rackfork.ru и prostore.rackfork.ru,
  не меняя бизнес-логику, права доступа и структуру API.
*/
body.rf-theme{
  --rf-bg:#f3f4f6;
  --rf-bg-alt:#e7eaee;
  --rf-surface:#ffffff;
  --rf-surface-soft:#f5f6f8;
  --rf-border:#d4d7dc;
  --rf-border-strong:#b9bec6;
  --rf-text:#2b2f33;
  --rf-muted:#68707a;
  --rf-dark:#2d2f33;
  --rf-dark-soft:#3a3d42;
  --rf-accent:#b40022;
  --rf-accent-strong:#97001d;
  --rf-info:#5d6f84;
  --rf-success:#397b5a;
  --rf-warning:#a14c00;
  --rf-danger:#b40022;
  background:linear-gradient(180deg,#f7f8fa 0,#f3f4f6 280px,#eef1f4 100%);
  color:var(--rf-text);
  font-family:'Inter',system-ui,sans-serif;
}
body.rf-theme::before{
  content:"";
  position:fixed;
  left:0;right:0;top:0;
  height:6px;
  background:linear-gradient(90deg,var(--rf-accent) 0 14%,#d9dde3 14% 18%,var(--rf-dark) 18% 100%);
  z-index:1000;
  pointer-events:none;
}
body.rf-theme a{color:var(--rf-info)}
body.rf-theme .mono{font-family:'IBM Plex Mono',monospace;}
body.rf-theme h1,
body.rf-theme h2,
body.rf-theme h3,
body.rf-theme .brand,
body.rf-theme .drawer-code{
  font-family:'Oswald',sans-serif;
  letter-spacing:.01em;
  color:var(--rf-dark);
}
body.rf-theme .muted,
body.rf-theme .subtitle,
body.rf-theme .meta,
body.rf-theme .small,
body.rf-theme .drawer-area,
body.rf-theme .log-area,
body.rf-theme .log-eng,
body.rf-theme .case-subject,
body.rf-theme .case-date,
body.rf-theme .registry-grid .k,
body.rf-theme .notification-body,
body.rf-theme .notification-date,
body.rf-theme .account-who,
body.rf-theme .ai-model,
body.rf-theme .ai-note,
body.rf-theme .drawer-close,
body.rf-theme .tag,
body.rf-theme .site-chip,
body.rf-theme .executor-chip{
  color:var(--rf-muted) !important;
}

/* Базовые контролы */
body.rf-theme .btn,
body.rf-theme a.btn,
body.rf-theme button,
body.rf-theme select,
body.rf-theme input,
body.rf-theme textarea,
body.rf-theme label.account-action,
body.rf-theme .workflow-btn,
body.rf-theme .log-more-btn,
body.rf-theme .history-registry-item,
body.rf-theme .case-link-btn,
body.rf-theme .link-result,
body.rf-theme .icon-btn,
body.rf-theme #refreshBtn,
body.rf-theme .chip,
body.rf-theme .board-toggle,
body.rf-theme #areaFilter,
body.rf-theme #search,
body.rf-theme .input{
  border-radius:6px !important;
}
body.rf-theme input,
body.rf-theme textarea,
body.rf-theme select,
body.rf-theme .input,
body.rf-theme #search,
body.rf-theme #areaFilter,
body.rf-theme .link-search{
  background:var(--rf-surface) !important;
  color:var(--rf-text) !important;
  border:1px solid var(--rf-border-strong) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
body.rf-theme input::placeholder,
body.rf-theme textarea::placeholder,
body.rf-theme #search::placeholder,
body.rf-theme .link-search::placeholder{color:#8a9098 !important;}
body.rf-theme input:focus,
body.rf-theme textarea:focus,
body.rf-theme select:focus,
body.rf-theme .input:focus,
body.rf-theme #search:focus,
body.rf-theme #areaFilter:focus,
body.rf-theme .link-search:focus{
  outline:2px solid rgba(180,0,34,.25) !important;
  outline-offset:1px;
  border-color:var(--rf-accent) !important;
}
body.rf-theme .btn,
body.rf-theme a.btn,
body.rf-theme button,
body.rf-theme label.account-action,
body.rf-theme .workflow-btn,
body.rf-theme .log-more-btn,
body.rf-theme .history-registry-item,
body.rf-theme .case-link-btn,
body.rf-theme .link-search-btn,
body.rf-theme .link-result,
body.rf-theme .icon-btn,
body.rf-theme #refreshBtn{
  background:linear-gradient(180deg,#ffffff 0,#f1f3f6 100%);
  color:var(--rf-dark) !important;
  border:1px solid var(--rf-border-strong) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.92),0 4px 10px rgba(33,39,48,.06);
  transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;
}
body.rf-theme .btn:hover,
body.rf-theme a.btn:hover,
body.rf-theme button:hover,
body.rf-theme label.account-action:hover,
body.rf-theme .workflow-btn:hover,
body.rf-theme .log-more-btn:hover,
body.rf-theme .history-registry-item:hover,
body.rf-theme .case-link-btn:hover,
body.rf-theme .link-search-btn:hover,
body.rf-theme .link-result:hover,
body.rf-theme .icon-btn:hover,
body.rf-theme #refreshBtn:hover{
  border-color:var(--rf-accent) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.92),0 8px 18px rgba(33,39,48,.12);
  transform:translateY(-1px);
}
body.rf-theme .btn.primary,
body.rf-theme .btn.danger-fill,
body.rf-theme .workflow-btn.primary,
body.rf-theme #loginBtn,
body.rf-theme #forgotBtn,
body.rf-theme #completeBtn,
body.rf-theme #createTicketBtn,
body.rf-theme #mailTest,
body.rf-theme #appDialogOk,
body.rf-theme .ai-send,
body.rf-theme .tabs button.active,
body.rf-theme .chip.active,
body.rf-theme .drawer-status,
body.rf-theme .notification-count,
body.rf-theme .status-badge,
body.rf-theme .status-badge.pending,
body.rf-theme .tag-status,
body.rf-theme .case-tag-primary{
  background:linear-gradient(180deg,#c51a37 0,var(--rf-accent) 100%) !important;
  color:#ffffff !important;
  border-color:var(--rf-accent-strong) !important;
  font-weight:700 !important;
  box-shadow:0 1px 0 rgba(255,255,255,.15),0 10px 20px rgba(180,0,34,.18);
}
body.rf-theme .btn.danger-fill,
body.rf-theme .workflow-btn.danger-solid{
  background:linear-gradient(180deg,#c51a37 0,var(--rf-danger) 100%) !important;
  border-color:#97001d !important;
  color:#fff !important;
}
body.rf-theme .btn.danger,
body.rf-theme .workflow-btn.danger,
body.rf-theme .danger-text{color:var(--rf-danger) !important; border-color:#d9aab3 !important;}
body.rf-theme .btn:disabled,
body.rf-theme button:disabled,
body.rf-theme .workflow-btn:disabled{opacity:.55;box-shadow:none;transform:none;cursor:not-allowed !important;}

/* Панели/карточки/оболочки */
body.rf-theme .wrap,
body.rf-theme main{position:relative;z-index:1;}
body.rf-theme .hazard{
  background:linear-gradient(90deg,var(--rf-accent) 0 10%,#d8dde5 10% 12%,var(--rf-dark) 12% 100%) !important;
  height:5px !important;
}
body.rf-theme header,
body.rf-theme .drawer-head,
body.rf-theme .top{
  background:linear-gradient(180deg,#ffffff 0,#f5f6f8 100%) !important;
  border-bottom:1px solid var(--rf-border) !important;
}
body.rf-theme .top{padding:0 0 20px !important;margin-bottom:6px;}
body.rf-theme .header-inner{padding-top:10px;}
body.rf-theme .account-bar,
body.rf-theme .links,
body.rf-theme .top-actions{
  gap:10px !important;
}
body.rf-theme .account-bar a,
body.rf-theme .account-bar button,
body.rf-theme .account-bar select{
  background:linear-gradient(180deg,#fffefb 0,#f4efdf 100%) !important;
  border:1px solid var(--rf-border-strong) !important;
  color:var(--rf-dark) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.92),0 4px 10px rgba(33,39,48,.06);
}
body.rf-theme .account-action{border-color:#c98995 !important;}
body.rf-theme .stats{border-top:1px solid var(--rf-border) !important;}
body.rf-theme .stat{border-right:1px solid var(--rf-border) !important; padding-right:18px !important;}
body.rf-theme .stat .lbl{color:var(--rf-muted) !important;}
body.rf-theme .stat.pending .num, body.rf-theme .log-status.pending, body.rf-theme .status.pending{color:var(--rf-warning) !important;}
body.rf-theme .stat.accepted .num, body.rf-theme .log-status.accepted, body.rf-theme .status.accepted{color:var(--rf-info) !important;}
body.rf-theme .stat.done .num, body.rf-theme .log-status.completed, body.rf-theme .status.completed{color:var(--rf-success) !important;}
body.rf-theme .status.waiting_parts, body.rf-theme .log-status.waiting_parts{color:#9a5b00 !important;}
body.rf-theme .status.paused, body.rf-theme .log-status.paused{color:#715d9f !important;}
body.rf-theme .panel,
body.rf-theme .box,
body.rf-theme .list,
body.rf-theme .dialog,
body.rf-theme .modal,
body.rf-theme .archive-box,
body.rf-theme .client,
body.rf-theme .registry-block,
body.rf-theme .history-search-panel,
body.rf-theme .notifications-panel,
body.rf-theme .ai-status,
body.rf-theme .ai-messages,
body.rf-theme .link-panel,
body.rf-theme .event-list,
body.rf-theme .mail-config,
body.rf-theme .mail-item,
body.rf-theme .user,
body.rf-theme .archive-box,
body.rf-theme .list,
body.rf-theme .message,
body.rf-theme .msg{
  background:var(--rf-surface) !important;
  color:var(--rf-text) !important;
  border:1px solid var(--rf-border) !important;
  box-shadow:0 12px 28px rgba(33,39,48,.08);
}
body.rf-theme .panel,
body.rf-theme .box,
body.rf-theme .dialog,
body.rf-theme .modal,
body.rf-theme .client,
body.rf-theme .archive-box,
body.rf-theme .notifications-panel,
body.rf-theme .ai-messages,
body.rf-theme .list,
body.rf-theme .message,
body.rf-theme .msg{
  border-radius:12px !important;
}
body.rf-theme .panel h2,
body.rf-theme .archive-box h3,
body.rf-theme .dialog h3,
body.rf-theme .modal h2{
  color:var(--rf-dark) !important;
}
body.rf-theme .msg,
body.rf-theme .message{border-left:4px solid var(--rf-accent) !important;display:block;}
body.rf-theme .msg.error,
body.rf-theme .message.error{border-left-color:var(--rf-danger) !important;}
body.rf-theme .msg.ok,
body.rf-theme .message.ok{border-left-color:var(--rf-success) !important;}
body.rf-theme .dialog-backdrop,
body.rf-theme .modal-backdrop,
body.rf-theme .backdrop,
body.rf-theme .overlay{background:rgba(34,35,38,.55) !important;}

/* Дашборд */
body.rf-page-dashboard{--bg:#f7f8fa;--bg-mid:#ffffff;--bg-panel:#ffffff;--ink:#2b2f33;--muted:#68707a;--hair:#d4d7dc;--hair-strong:#b9bec6;--yellow:#b40022;--orange:#b40022;--blue:#5d6f84;--green:#397b5a;--tag:#f5f6f8;--tag-text:#2b2f33;--tag-muted:#6f7781;}
body.rf-page-dashboard .subtitle{max-width:620px;color:var(--rf-muted) !important;}
body.rf-page-dashboard .meta strong{color:var(--rf-dark) !important;}
body.rf-page-dashboard .live-dot{box-shadow:0 0 0 4px rgba(57,123,90,.12)}
body.rf-page-dashboard .board-grid{gap:16px !important;}
body.rf-page-dashboard .card{
  background:linear-gradient(180deg,#ffffff 0,#f6f7f9 100%) !important;
  border:1px solid var(--rf-border) !important;
  border-left:5px solid var(--rf-accent) !important;
  border-radius:12px !important;
  box-shadow:0 14px 26px rgba(33,39,48,.08) !important;
  color:var(--rf-text) !important;
}
body.rf-page-dashboard .card[data-status="accepted"]{border-left-color:var(--rf-info) !important;}
body.rf-page-dashboard .card[data-status="completed"]{border-left-color:var(--rf-success) !important;}
body.rf-page-dashboard .card[data-status="waiting_parts"]{border-left-color:#b37c1e !important;}
body.rf-page-dashboard .card[data-status="paused"]{border-left-color:#7b68aa !important;}
body.rf-page-dashboard .card[data-status="cancelled"]{border-left-color:#8d897f !important;}
body.rf-page-dashboard .card-hole{background:#6a655d !important;box-shadow:0 0 0 3px rgba(255,255,255,.85) !important;}
body.rf-page-dashboard .card-status.pending{color:var(--rf-warning) !important;}
body.rf-page-dashboard .card-status.accepted{color:var(--rf-info) !important;}
body.rf-page-dashboard .card-status.completed{color:var(--rf-success) !important;}
body.rf-page-dashboard .card-badge,
body.rf-page-dashboard .master-badge,
body.rf-page-dashboard .source-tag.email,
body.rf-page-dashboard .source-tag.attachment,
body.rf-page-dashboard .executor-chip,
body.rf-page-dashboard .site-chip,
body.rf-page-dashboard .tag{
  background:var(--rf-surface-soft) !important;
  border:1px solid var(--rf-border) !important;
  border-radius:999px !important;
  padding:4px 9px !important;
}
body.rf-page-dashboard .drawer{
  background:linear-gradient(180deg,#ffffff 0,#f7f2e6 100%) !important;
  border-left:1px solid var(--rf-border) !important;
  box-shadow:-20px 0 50px rgba(33,39,48,.18);
}
body.rf-page-dashboard .drawer-head{position:sticky;top:0;z-index:2;}
body.rf-page-dashboard .drawer-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px !important;padding:7px 12px !important;}
body.rf-page-dashboard .case{border-left:2px solid var(--rf-border-strong) !important;}
body.rf-page-dashboard .case.pending::before{background:var(--rf-accent) !important;}
body.rf-page-dashboard .case.accepted::before{background:var(--rf-info) !important;}
body.rf-page-dashboard .case.completed::before{background:var(--rf-success) !important;}
body.rf-page-dashboard .case-issue,
body.rf-page-dashboard .history-ticket{
  background:#f7f8fa !important;
  border-left:4px solid var(--rf-accent) !important;
  color:var(--rf-text) !important;
  border-radius:6px;
}
body.rf-page-dashboard .log-row,
body.rf-page-dashboard .event-row,
body.rf-page-dashboard .notification-item{
  border-color:#e8e0d1 !important;
}
body.rf-page-dashboard .log-row:hover{background:#f5f7fa !important;}
body.rf-page-dashboard .notification-item.unread{border-left:4px solid var(--rf-accent) !important;}
body.rf-page-dashboard .ai-badge{border:1px solid #caa73d !important;color:#8d2740 !important;background:#f8e9ec;}
body.rf-page-dashboard .ai-status.ok{border-color:#b8d0c3 !important;color:#476f5b !important;background:#f5fbf7 !important;}
body.rf-page-dashboard .ai-status.warn{border-color:#ead58c !important;color:#7d6023 !important;background:#f9eef0 !important;}
body.rf-page-dashboard .ai-messages{background:#f7f8fa !important;}
body.rf-page-dashboard .ai-message.user{background:#f8e6ea !important;border:1px solid #dfb6bf !important;}
body.rf-page-dashboard .ai-message.assistant{background:#ffffff !important;border:1px solid var(--rf-border) !important;}
body.rf-page-dashboard .history-search-panel,
body.rf-page-dashboard .registry-block,
body.rf-page-dashboard .link-panel,
body.rf-page-dashboard .event-list{background:#f7f8fa !important;}
body.rf-page-dashboard .onec-documents a,
body.rf-page-dashboard .history-ticket a{color:#946700 !important;}

/* Login */
body.rf-page-login{display:grid;place-items:center;min-height:100vh;}
body.rf-page-login .box{width:min(480px,92vw);padding:32px 30px !important;position:relative;overflow:hidden;}
body.rf-page-login .box::before{content:"RackFork";position:absolute;top:16px;right:18px;font:700 15px 'Oswald',sans-serif;letter-spacing:.08em;color:#d5c9b2;}
body.rf-page-login .brand{font-size:34px !important;line-height:1 !important;}
body.rf-page-login .muted{line-height:1.6;}
body.rf-page-login .tabs{gap:10px !important;}
body.rf-page-login .tabs button{flex:1;}

/* Листинговые страницы */
body.rf-page-equipment,
body.rf-page-account,
body.rf-page-employee,
body.rf-page-admin{--bg:#faf7f0;--panel:#ffffff;--ink:#2f2f31;--muted:#6f6a61;--hair:#d8d0c0;--yellow:#f2b705;--green:#397b5a;--red:#b6554e;--blue:#406b93;}
body.rf-page-equipment .wrap,
body.rf-page-account .wrap,
body.rf-page-employee .wrap,
body.rf-page-admin .wrap{padding-top:38px !important;}
body.rf-page-equipment .toolbar,
body.rf-page-admin .row,
body.rf-page-account .row{gap:10px !important;}
body.rf-page-equipment .summary,
body.rf-page-admin .summary{color:var(--rf-muted) !important;}
body.rf-page-equipment .list-head,
body.rf-page-equipment .equipment-row,
body.rf-page-admin .ticket-admin-row,
body.rf-page-admin .archive-row,
body.rf-page-employee .client-row,
body.rf-page-employee .ticket,
body.rf-page-employee .notice,
body.rf-page-employee .status-request,
body.rf-page-account .user,
body.rf-page-account .mail-config,
body.rf-page-account .mail-item{
  border-color:#e9e0cf !important;
}
body.rf-page-equipment .list-head{
  background:#f1f3f6 !important;
  color:var(--rf-muted) !important;
  font-weight:600;
}
body.rf-page-equipment .equipment-row:hover,
body.rf-page-admin .ticket-admin-row:hover,
body.rf-page-admin .archive-row:hover,
body.rf-page-employee .ticket:hover,
body.rf-page-employee .status-request:hover{background:#fbf6ea !important;}
body.rf-page-equipment .tag,
body.rf-page-equipment .doc-chip,
body.rf-page-equipment .status-chip,
body.rf-page-account .tag,
body.rf-page-account .site-chip,
body.rf-page-employee .executor-chip,
body.rf-page-employee .client-tag,
body.rf-page-admin .notify-user,
body.rf-page-admin .mail-status{
  background:var(--rf-surface-soft) !important;
  border:1px solid var(--rf-border) !important;
  border-radius:999px !important;
  padding:4px 9px !important;
  display:inline-flex;align-items:center;
}
body.rf-page-admin .grid,
body.rf-page-account .manage-grid{
  gap:16px !important;
}
body.rf-page-admin .panel,
body.rf-page-account .client,
body.rf-page-account .panel,
body.rf-page-employee .panel,
body.rf-page-equipment .list,
body.rf-page-equipment .dialog{
  background:#ffffff !important;
}
body.rf-page-admin .dialog,
body.rf-page-equipment .dialog,
body.rf-page-employee .modal,
body.rf-page-dashboard .modal,
body.rf-page-dashboard .drawer,
body.rf-page-account .backdrop .dialog{border-radius:16px !important;}
body.rf-page-employee .status.pending{color:var(--rf-warning) !important;}
body.rf-page-employee .status.accepted{color:var(--rf-info) !important;}
body.rf-page-employee .status.completed{color:var(--rf-success) !important;}
body.rf-page-employee .notice.unread{border-left:4px solid var(--rf-accent) !important;padding-left:12px !important;}
body.rf-page-admin .btn.danger-fill{color:#fff !important;}
body.rf-page-admin .notify-config,
body.rf-page-admin .archive-box,
body.rf-page-account .invite,
body.rf-page-account .sites{border-color:#eadfcb !important;}

/* Адаптив */
@media (max-width: 860px){
  body.rf-theme .account-bar{justify-content:flex-start !important;}
  body.rf-theme .account-bar .account-who{width:100%;margin-right:0 !important;}
  body.rf-page-dashboard .stats{grid-template-columns:repeat(2,1fr) !important;}
  body.rf-page-dashboard .stat{border-right:none !important;border-bottom:1px solid var(--rf-border) !important;}
}
@media (max-width: 640px){
  body.rf-page-login .box{padding:26px 20px !important;}
  body.rf-theme .panel,
  body.rf-theme .box,
  body.rf-theme .dialog,
  body.rf-theme .modal{border-radius:10px !important;}
}


/* V2 brand correction: белый + красный + серый */
body.rf-theme .brand, body.rf-theme .top h1, body.rf-theme .header-title{color:var(--rf-dark) !important;}
body.rf-theme .btn.primary:hover, body.rf-theme #loginBtn:hover, body.rf-theme #createTicketBtn:hover, body.rf-theme #appDialogOk:hover{background:linear-gradient(180deg,#cf2945 0,#a3001f 100%) !important;}
body.rf-page-dashboard .card-badge, body.rf-page-dashboard .master-badge, body.rf-page-dashboard .source-tag.email, body.rf-page-dashboard .source-tag.attachment, body.rf-page-dashboard .executor-chip, body.rf-page-dashboard .site-chip, body.rf-page-dashboard .tag{color:var(--rf-dark) !important;background:#f3f5f7 !important;}
body.rf-page-dashboard .drawer-status, body.rf-theme .notification-count{color:#fff !important;}
body.rf-page-login .box::before{color:#b40022;}
body.rf-page-equipment .tag, body.rf-page-equipment .doc-chip, body.rf-page-equipment .status-chip, body.rf-page-account .tag, body.rf-page-account .site-chip, body.rf-page-employee .executor-chip, body.rf-page-employee .client-tag, body.rf-page-admin .notify-user, body.rf-page-admin .mail-status{color:var(--rf-dark) !important;background:#f3f5f7 !important;}
body.rf-theme .panel h2, body.rf-theme .archive-box h3, body.rf-theme .dialog h3, body.rf-theme .modal h2{border-left:4px solid var(--rf-accent);padding-left:10px;}
body.rf-theme .msg, body.rf-theme .message{background:#fff !important;}
