/* Carrega o CSS base do Redmine e sobrepõe (mesmo padrão do tema classic do core). */
@import url("/assets/application-4381d286.css");
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap");

/* ==========================================================================
   Tema TBC — Fábrica de Software TBC
   Tokens de cor derivados do design system oficial da TOTVS (@po-ui/style 21.25):
     brand-01 #753399 · brand-01-dark #5b1c7d · brand-02 #b92f72
     neutros light-00..30, mid-40/60, dark-70..95 · feedback base
   ========================================================================== */

:root {
  --tbc-brand:          #753399;
  --tbc-brand-dark:     #5b1c7d;
  --tbc-brand-darker:   #400e58;
  --tbc-brand-light:    #bd94d1;
  --tbc-brand-lightest: #f2eaf6;
  --tbc-accent:         #b92f72;

  --tbc-ink:      #1d2426;
  --tbc-ink-soft: #4a5c60;
  --tbc-muted:    #6e7c7f;
  --tbc-line:     #dadedf;
  --tbc-line-soft:#eceeee;
  --tbc-surface:  #ffffff;
  --tbc-canvas:   #f7f7f9;

  --tbc-ok:    #107048;
  --tbc-warn:  #efba2a;
  --tbc-bad:   #be3e37;
  --tbc-info:  #23489f;

  --tbc-r-sm: 4px;
  --tbc-r:    6px;
  --tbc-r-lg: 10px;

  --tbc-sh-1: 0 1px 2px rgba(29,36,38,.06), 0 1px 1px rgba(29,36,38,.04);
  --tbc-sh-2: 0 2px 8px rgba(29,36,38,.08), 0 1px 2px rgba(29,36,38,.06);
  --tbc-sh-3: 0 8px 28px rgba(29,36,38,.14);

  --fonts-main: "Roboto", -apple-system, "Segoe UI", sans-serif;
}

body {
  font-family: var(--fonts-main);
  color: var(--tbc-ink);
  background: var(--tbc-canvas);
  -webkit-font-smoothing: antialiased;
  font-size: .875rem;
}

a { color: var(--tbc-brand-dark); }
a:hover { color: var(--tbc-brand); }

/* ---------- barra superior ---------- */
#top-menu {
  background: var(--tbc-brand-darker);
  color: #e9dff0;
  font-size: .75rem;
  padding: 5px 20px;
  letter-spacing: .01em;
}
#top-menu a { color: #e9dff0; font-weight: 500; opacity: .85; }
#top-menu a:hover { opacity: 1; text-decoration: none; }
#top-menu #loggedas { color: #cbb6d8; }

/* ---------- cabeçalho ---------- */
#header {
  background: linear-gradient(135deg, var(--tbc-brand-dark) 0%, var(--tbc-brand) 62%, #8d3fa6 100%);
  color: #fff;
  padding: 14px 20px 0 20px;
  min-height: 4.2em;
  position: relative;
  border-bottom: 3px solid var(--tbc-accent);
}
#header::after {   /* textura sutil, evita o "gradiente chapado de template" */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(560px 120px at 88% -10%, rgba(255,255,255,.16), transparent 70%);
}
#header a { color: #fff; }
#header h1 {
  font-size: 1.35rem; font-weight: 500; letter-spacing: -.01em;
  text-shadow: 0 1px 2px rgba(0,0,0,.18);
}
#header h1 .breadcrumbs { color: rgba(255,255,255,.75); font-size: .75rem; }

#quick-search { margin-top: 2px; }
#quick-search input[type=text] {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.28);
  color: #fff; border-radius: var(--tbc-r); padding: 5px 10px; min-width: 190px;
  transition: background .15s, border-color .15s;
}
#quick-search input[type=text]::placeholder { color: rgba(255,255,255,.65); }
#quick-search input[type=text]:focus {
  background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.55); outline: none;
}

/* ---------- menu do projeto (abas) ---------- */
#main-menu { left: 16px; }
#main-menu li a {
  color: rgba(255,255,255,.86); font-weight: 500; font-size: .8125rem;
  padding: 8px 14px; border-radius: var(--tbc-r) var(--tbc-r) 0 0;
  background: transparent; margin-right: 2px; transition: background .15s, color .15s;
}
#main-menu li a:hover { background: rgba(255,255,255,.16); color: #fff; }
#main-menu li a.selected, #main-menu li a.selected:hover {
  background: var(--tbc-surface); color: var(--tbc-brand-dark); font-weight: 700;
  box-shadow: 0 -2px 6px rgba(0,0,0,.06);
}
#main-menu li a.new-object { background: rgba(255,255,255,.2); }

/* ---------- corpo ---------- */
#main { background: var(--tbc-canvas); }
#content {
  background: var(--tbc-surface);
  border: 1px solid var(--tbc-line);
  border-radius: var(--tbc-r-lg);
  box-shadow: var(--tbc-sh-1);
  margin: 16px 16px 16px 12px;
  padding: 18px 22px 26px;
}
#content h1, h2, h3, h4 { color: var(--tbc-ink); font-weight: 500; letter-spacing: -.01em; }
#content h2 { font-size: 1.3rem; padding-bottom: 8px; border-bottom: 1px solid var(--tbc-line-soft); }

#sidebar {
  background: transparent; border-left: none;
  padding: 26px 10px 0 16px; font-size: .8125rem; color: var(--tbc-ink-soft);
}
#sidebar h3 { color: var(--tbc-muted); font-size: .6875rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 700; }
#sidebar a.selected { background: var(--tbc-brand); border-radius: var(--tbc-r-sm); }

#footer { background: transparent; border-top: none; color: var(--tbc-muted); font-size: .75rem; padding: 6px 0 18px; }

/* ---------- tabelas ---------- */
table.list, .table-list {
  border: 1px solid var(--tbc-line); border-radius: var(--tbc-r);
  border-collapse: separate; border-spacing: 0; overflow: hidden;
}
table.list th, .table-list-header {
  background: var(--tbc-canvas); color: var(--tbc-muted);
  font-size: .6875rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700;
  border-bottom: 1px solid var(--tbc-line); padding: 9px 8px;
}
table.list td { border-top: 1px solid var(--tbc-line-soft); padding: 7px 10px; }
table.list tbody tr:hover, tr.issue:hover { background: var(--tbc-brand-lightest); }
tr.issue td.subject a { color: var(--tbc-ink); font-weight: 500; }
tr.issue td.subject a:hover { color: var(--tbc-brand); }
tr.issue.closed td.subject a, .issue.closed a { text-decoration: none; color: var(--tbc-muted); }

/* status como etiquetas, não texto solto */
td.status, td.tracker, td.priority { font-size: .75rem; }
td.status span, table.list td.status {
  font-weight: 500; color: var(--tbc-ink-soft);
}

/* ---------- botões ---------- */
input[type=submit], input[type=button], button:not(.drdn-trigger), a.button {
  background: var(--tbc-brand); color: #fff; border: 1px solid var(--tbc-brand-dark);
  border-radius: var(--tbc-r); padding: 7px 15px; font-weight: 500; font-size: .8125rem;
  font-family: var(--fonts-main); cursor: pointer; box-shadow: var(--tbc-sh-1);
  transition: background .15s, transform .06s, box-shadow .15s;
}
input[type=submit]:hover, button:not(.drdn-trigger):hover, a.button:hover {
  background: var(--tbc-brand-dark); box-shadow: var(--tbc-sh-2);
}
input[type=submit]:active, button:active { transform: translateY(1px); }
input[type=submit][name=commit] { font-weight: 700; }

/* ---------- formulários ---------- */
input[type=text], input[type=password], input[type=email], input[type=number],
select, textarea, .jstBlock textarea {
  border: 1px solid var(--tbc-line); border-radius: var(--tbc-r);
  padding: 6px 9px; font-family: var(--fonts-main); font-size: .8125rem;
  background: var(--tbc-surface); color: var(--tbc-ink);
  transition: border-color .15s, box-shadow .15s;
}
input[type=text]:focus, input[type=password]:focus, select:focus, textarea:focus {
  border-color: var(--tbc-brand); box-shadow: 0 0 0 3px rgba(117,51,153,.15); outline: none;
}
fieldset { border: 1px solid var(--tbc-line); border-radius: var(--tbc-r); padding: 12px 14px; }
legend { color: var(--tbc-muted); font-weight: 700; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }

/* ---------- caixas / issue ---------- */
div.box, #issue_tree, .attributes, .splitcontent .splitcontentleft > .box {
  background: var(--tbc-surface); border: 1px solid var(--tbc-line);
  border-radius: var(--tbc-r); padding: 14px 16px; box-shadow: none;
}
div.issue {
  background: linear-gradient(180deg, var(--tbc-brand-lightest) 0%, var(--tbc-surface) 46%);
  border: 1px solid var(--tbc-line); border-radius: var(--tbc-r-lg); padding: 16px 18px;
}
div.issue h3 { color: var(--tbc-brand-dark); }
div.issue .attributes th { color: var(--tbc-muted); font-weight: 500; }
div.issue .subject h3 { font-size: 1.15rem; font-weight: 500; }

div.journal {
  border: 1px solid var(--tbc-line-soft); border-radius: var(--tbc-r);
  padding: 12px 14px; margin-bottom: 10px; background: var(--tbc-surface);
}
div.journal:hover { border-color: var(--tbc-line); }
div.journal h4 { color: var(--tbc-ink-soft); font-size: .8125rem; }
div.journal ul.details { color: var(--tbc-muted); font-size: .78rem; }

.icon-attachment, .attachments a { color: var(--tbc-brand-dark); }
.attachments_fields .filename { font-family: "Roboto Mono", monospace; font-size: .78rem; }

/* progresso */
table.progress { border-radius: 10px; overflow: hidden; height: 12px; }
table.progress td.closed { background: var(--tbc-ok); }
table.progress td.done { background: var(--tbc-brand-light); }

/* ---------- avisos ---------- */
div.flash {
  border-radius: var(--tbc-r); border: 1px solid transparent; padding: 10px 14px;
  font-weight: 500; box-shadow: var(--tbc-sh-1);
}
div.flash.notice { background: #e7f4ee; border-color: #a9d5c0; color: var(--tbc-ok); }
div.flash.error  { background: #fdecea; border-color: #f0b6b2; color: var(--tbc-bad); }
div.flash.warning{ background: #fdf6e1; border-color: #f0dda3; color: #8a6100; }

/* ---------- login ---------- */
#login-form {
  background: var(--tbc-surface); border: 1px solid var(--tbc-line);
  border-radius: var(--tbc-r-lg); box-shadow: var(--tbc-sh-3);
  width: 380px; padding: 30px 30px 26px; margin-top: 7vh;
}
#login-form h3 { color: var(--tbc-brand-dark); font-weight: 500; margin-bottom: 18px; }
#login-form input[type=submit] { margin-top: 6px; padding: 10px; font-size: .875rem; }
#login-form label { color: var(--tbc-ink-soft); font-size: .78rem; font-weight: 500; }

/* ---------- paginação, abas internas, contextual ---------- */
.pagination li a, span.pagination a { border-radius: var(--tbc-r-sm); padding: 3px 7px; }
.pagination .current, span.pagination .current { background: var(--tbc-brand); color: #fff; border-radius: var(--tbc-r-sm); padding: 3px 7px; }
.contextual a.icon { color: var(--tbc-brand-dark); }
.tabs ul li a.selected { background: var(--tbc-brand-lightest); color: var(--tbc-brand-dark); border-color: var(--tbc-line); }

/* ---------- modo escuro ---------- */
@media (prefers-color-scheme: dark) {
  :root {
    --tbc-ink: #e6e9ea; --tbc-ink-soft: #b6bdbf; --tbc-muted: #9da7a9;
    --tbc-line: #33403f; --tbc-line-soft: #2a3434;
    --tbc-surface: #1d2426; --tbc-canvas: #14191a;
    --tbc-brand-lightest: #2a1f33;
  }
  body { color: var(--tbc-ink); background: var(--tbc-canvas); }
  a { color: var(--tbc-brand-light); }
  a:hover { color: #d3b6e2; }
  #content { background: var(--tbc-surface); border-color: var(--tbc-line); }
  table.list th, .table-list-header { background: #232b2d; color: var(--tbc-muted); }
  table.list tbody tr:hover { background: #26202e; }
  input[type=text], input[type=password], select, textarea { background: #232b2d; color: var(--tbc-ink); border-color: var(--tbc-line); }
  div.issue { background: linear-gradient(180deg, #2a1f33 0%, var(--tbc-surface) 46%); }
  div.journal, div.box, .attributes { background: var(--tbc-surface); border-color: var(--tbc-line); }
  #login-form { background: var(--tbc-surface); }
  div.flash.notice { background: #12312a; color: #7fd0af; border-color: #1f5a48; }
  div.flash.error { background: #3a1d1c; color: #f0a9a4; border-color: #6b2f2c; }
}
