:root{--page:#f3f2ee;--surface:#f9f8f5;--text:#2b2e2c;--muted:#595e57;--faint:#6a6f67;--line:#e2e0d9;--line-strong:#a09f97;--accent:#3f6b49;--accent-hover:#345a3d;--on-accent:#fbfaf7;--accent-soft:#e2ebdf;--accent-ink:#27492f;--tile:#eae9e3;--hover:#eae9e3;--danger:#a8382b;--danger-soft:#f6e9e6;--danger-line:#e3b9b2;--warn-soft:#f3ecd9;--warn-ink:#6b5416;--field:#fcfbf9;--shadow:0 4px 14px rgba(40,44,38,.10);--scrim:rgba(40,44,38,.32);--ease:140ms ease;color-scheme:light;font-family:system-ui,'Segoe UI',Roboto,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--page);color:var(--text);line-height:1.4;font-size:14px;overflow-x:hidden}
h1,h2,h3,p{margin:0}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* barra superior */
.top{min-height:52px;display:flex;align-items:center;gap:12px;padding:0 max(16px,calc((100% - 1200px)/2));border-bottom:1px solid var(--line)}
.top h1{font-size:15px;font-weight:600;white-space:nowrap}
.top h1 span{color:var(--muted);font-weight:400}
.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}
.who{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:34px}

/* botões e campos */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--ease),color var(--ease)}
.btn.ghost{color:var(--muted)}
.btn.ghost:hover{background:var(--tile);color:var(--text)}
.btn.line{border-color:var(--line-strong);color:var(--text)}
.btn.line:hover{background:var(--tile)}
.btn.primary{background:var(--accent);color:var(--on-accent);font-weight:600}
.btn.primary:hover{background:var(--accent-hover)}
.btn.danger{color:var(--danger);border-color:var(--danger-line)}
.btn.danger:hover{background:var(--danger-soft)}
.btn.danger-solid{background:var(--danger);color:#fff;font-weight:600}
.btn:disabled,.icon-btn:disabled{opacity:.45;cursor:default}
.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:background var(--ease),color var(--ease)}
.icon-btn::after{content:"";position:absolute;inset:-4px}
.icon-btn:hover:not(:disabled),.icon-btn[aria-expanded="true"]{background:var(--tile);color:var(--text)}
.icon-btn svg{width:18px;height:18px}
.field{display:grid;gap:4px;margin-bottom:14px}
.field label,.field .lbl{font-size:13px;font-weight:600}
.field .hint{font-size:12px;color:var(--muted)}
.field .hint code{font-family:ui-monospace,Consolas,monospace;color:var(--text);word-break:break-all}
input[type=text],input[type=password],input[type=search],select,textarea{width:100%;height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--field);color:var(--text);font:inherit;font-size:14px}
textarea{height:auto;padding:8px 10px;resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:13px}
input[readonly]{background:var(--tile)}
input[aria-invalid=true]{border-color:var(--danger)}
.err{font-size:13px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:8px;padding:8px 10px;margin-bottom:12px}
.fielderr{font-size:12px;color:var(--danger)}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}
.login{width:100%;max-width:340px}
.login h1{font-size:18px;margin-bottom:2px}
.login .sub{color:var(--muted);margin-bottom:20px;font-size:13px}
.login .btn{width:100%;height:40px;margin-top:4px}

/* conteúdo */
.wrap{max-width:1200px;margin:0 auto;padding:20px 16px 48px}
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:8px 0 22px;border-bottom:1px solid var(--line);margin-bottom:18px}
.sum-item .v{font-size:30px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.15}
.sum-item .l{font-size:12px;color:var(--muted);margin-top:2px}
.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.tools .search{flex:1 1 220px;min-width:0;max-width:340px}
.tools select{width:auto;min-width:0;max-width:100%}
.tools .grow{flex:1}
.count{font-size:12px;color:var(--muted)}

/* lista */
.list{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.row{display:grid;grid-template-columns:minmax(200px,2.2fr) 92px 70px 118px 70px 110px 100px 36px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row.head{padding-top:8px;padding-bottom:8px;font-size:12px;color:var(--muted);background:transparent;border-radius:10px 10px 0 0}
.row:not(.head):hover{background:var(--hover)}
.row .r{text-align:right}
.name{min-width:0}
.name b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name .sub{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);min-width:0}
.name .sub a{color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name .sub a:hover{color:var(--accent);text-decoration:underline}
.pill{display:inline-block;justify-self:start;padding:1px 9px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}
.pill.ativo{background:var(--accent-soft);color:var(--accent-ink)}
.pill.suspenso{background:var(--warn-soft);color:var(--warn-ink)}
.cell-l{display:none}
.state{padding:36px 16px;text-align:center;color:var(--muted)}
.state .btn{margin-top:10px}
.skeleton{height:18px;border-radius:6px;background:linear-gradient(90deg,var(--tile),var(--line),var(--tile));background-size:200% 100%;animation:sk 1.2s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}

/* menu */
.menu{position:fixed;z-index:30;min-width:210px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}
.menu button,.menu a{display:flex;align-items:center;width:100%;height:36px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer}
.menu button:hover,.menu a:hover,.menu [role=menuitem]:focus{background:var(--tile);outline:0}
.menu .sep{height:1px;margin:4px 6px;background:var(--line)}
.menu .warn{color:var(--danger)}

/* dialogs */
dialog{width:min(480px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);overflow:auto}
dialog::backdrop{background:var(--scrim)}
.dlg-head{padding:16px 18px 4px}
.dlg-head h2{font-size:16px}
.dlg-head p{margin-top:4px;color:var(--muted);font-size:13px}
.dlg-body{padding:12px 18px 4px}
.dlg-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;flex-wrap:wrap}
.slugrow{display:flex;align-items:center;gap:0}
.warnbox{font-size:13px;background:var(--warn-soft);color:var(--warn-ink);border-radius:8px;padding:8px 10px;margin-bottom:14px}
.cred-note{font-weight:600;color:var(--danger);font-size:13px;margin-bottom:12px}
.cred-grid{display:grid;grid-template-columns:1fr;gap:0}

.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:60;max-width:calc(100vw - 32px);padding:9px 14px;border-radius:8px;background:var(--text);color:var(--on-accent);font-size:13px;box-shadow:var(--shadow)}
.toast.error{background:var(--danger)}

@media(max-width:1000px){
  .row{grid-template-columns:minmax(0,1fr) auto 36px;gap:4px 12px;padding:12px 14px}
  .row.head{display:none}
  .row .name{grid-column:1}
  .row .pill{grid-column:2;grid-row:1}
  .row .kebab{grid-column:3;grid-row:1}
  .row .m b{font-weight:400;color:var(--text)}
  .cell-l{display:inline}
  .row .r{text-align:left}
  .row .metrics{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:2px 14px;font-size:12px;color:var(--muted)}
}
@media(min-width:1001px){.row .metrics{display:contents}.cell-l{display:none}}
@media(max-width:700px){
  .summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
  .sum-item .v{font-size:26px}
  .top{padding:0 16px}
  .who{max-width:42vw}
  .tools .search{max-width:none;flex-basis:100%}
  .tools select{flex:1 1 0}
  .tools .btn.primary{flex:1 1 100%}
  .tools .grow{display:none}
  dialog{margin:auto}
}

.kebab svg{stroke-width:3.2}
.row .m{white-space:nowrap}
.row .m b{font-weight:400}
.row .m.num b{font-weight:500}

/* abas */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}
.tab{height:38px;padding:0 14px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}
.tab:hover{color:var(--text)}
.tab[aria-selected=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}
.row.arow{grid-template-columns:minmax(160px,2fr) minmax(120px,1.5fr) 110px 36px}
.auser{font-family:ui-monospace,Consolas,monospace;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill.voce{margin-left:8px;vertical-align:1px;background:var(--accent-soft);color:var(--accent-ink)}
@media(max-width:1000px){
  .row.arow{grid-template-columns:minmax(0,1fr) 36px;gap:2px 12px}
  .row.arow .name{grid-column:1;grid-row:1}
  .row.arow .kebab{grid-column:2;grid-row:1 / span 3}
  .row.arow .auser,.row.arow .muted{grid-column:1;font-size:12px}
}
