:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Instrument Sans",system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%}
.brand-logo{width:44px;height:42px;object-fit:contain;flex:none}
summary,button,a[href],select,input[type="checkbox"],input[type="radio"],input[type="file"]::file-selector-button,[role="button"]{cursor:pointer}
label:has(input[type="checkbox"]),label:has(input[type="radio"]){cursor:pointer}
.tnum{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}
::selection{background:var(--hl);color:var(--hl-ink)}

/* sidebar */
.side{background:var(--ink);color:var(--ink-text)}
.side .navgrp{color:var(--ink-muted);font-size:12px;font-weight:600;padding:18px 14px 6px}
.side a.nav{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:var(--ink-text);text-decoration:none;font-weight:500;position:relative}
.side a.nav:hover{background:var(--ink2)}
.side a.nav[aria-current="page"]{background:var(--ink2)}
.side a.nav[aria-current="page"]::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--hl)}
:root:not([data-theme="dark"]) .side a.nav[aria-current="page"]::before{background:#FFE27A}
.side a.nav .cnt{margin-left:auto;font-size:12px;color:var(--ink-muted)}
.side svg{width:18px;height:18px;flex:none}

/* primitives */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}
.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:8px;font-weight:600;font-size:14px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--panel2)}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}
.btn-primary:hover{background:var(--primary-h);border-color:var(--primary-h)}
.btn-ghost{border-color:transparent;background:transparent}
.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:7px}
.btn-hl{background:var(--hl);border-color:var(--hl);color:var(--hl-ink)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer}
.iconbtn:hover{background:var(--panel2)}
.iconbtn svg{width:18px;height:18px}
.fld{display:block;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit}
.fld:hover{border-color:var(--faint)}
select.fld{height:36px;padding-top:0;padding-bottom:0}
input.fld{height:36px}
textarea.fld{min-height:84px;resize:vertical}
.fld.invalid{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}
.lbl{display:block;font-weight:600;font-size:13px;margin-bottom:6px}
.lbl .req{color:var(--danger)}
.hint{font-size:12.5px;color:var(--muted)}
.err{color:var(--danger);font-size:12.5px;margin-top:4px;font-weight:500}
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:12.5px;font-weight:500;color:var(--muted);white-space:nowrap}
.chip svg{width:13px;height:13px}
button.chip{cursor:pointer}
button.chip:hover{color:var(--text)}
.kbd{font-size:11px;border:1px solid var(--line);border-bottom-width:2px;padding:0 5px;border-radius:5px;color:var(--muted);background:var(--panel)}

/* status pills */
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px 0 8px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.st-tri{background:var(--tri-bg);color:var(--tri-fg)}.st-pen{background:var(--pen-bg);color:var(--pen-fg)}
.st-con{background:var(--con-bg);color:var(--con-fg)}.st-aju{background:var(--aju-bg);color:var(--aju-fg)}
.st-ajd{background:var(--ajd-bg);color:var(--ajd-fg)}.st-rev{background:var(--rev-bg);color:var(--rev-fg)}
.st-ok{background:var(--ok-bg);color:var(--ok-fg)}.st-low{background:var(--low-bg);color:var(--low-fg)}
.fg-tri{color:var(--tri-fg)}.fg-pen{color:var(--pen-fg)}.fg-con{color:var(--con-fg)}.fg-aju{color:var(--aju-fg)}.fg-ajd{color:var(--ajd-fg)}.fg-rev{color:var(--rev-fg)}.fg-ok{color:var(--ok-fg)}
.bgs-tri{background:var(--tri-fg)}.bgs-pen{background:var(--pen-fg)}.bgs-con{background:var(--con-fg)}.bgs-aju{background:var(--aju-fg)}.bgs-ajd{background:var(--ajd-fg)}.bgs-rev{background:var(--rev-fg)}.bgs-ok{background:var(--ok-fg)}
.urg{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px 0 8px;border-radius:6px;font-weight:600;font-size:12.5px;border:1px solid currentColor}
.urg svg{width:14px;height:14px}

/* segmented toggles */
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-weight:600;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.seg button:hover{border-color:var(--faint)}
.seg button[aria-pressed="true"]{background:var(--active-bg);color:var(--active-text);border-color:var(--active-border)}
.seg button svg{width:15px;height:15px}

/* status strip */
.sstrip button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);min-width:112px;cursor:pointer;text-align:left;position:relative;overflow:hidden}
.sstrip button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bar,transparent)}
.sstrip button[aria-pressed="true"]{border-color:var(--active-border);background:var(--hl-soft)}
.sstrip .n{font-size:22px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.sstrip .t{font-size:12.5px;color:var(--muted);font-weight:500}

/* table */
.tbl{width:100%;border-collapse:separate;border-spacing:0}
.config-table{min-width:680px}
.config-table td{max-width:440px;overflow-wrap:anywhere;vertical-align:top}
.tbl th{position:sticky;top:0;z-index:1;background:var(--panel2);text-align:left;font-size:12.5px;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
.tbl tbody tr[data-open]{cursor:pointer}
.tbl tbody tr:hover td{background:var(--panel2)}
.tbl tbody tr.is-sel td{background:var(--hl-soft)}
.tbl input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}

/* kanban */
.kb{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:stretch;min-height:420px;height:clamp(420px,65vh,780px);flex:none}
.kcol{flex:0 0 284px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.kcol.branch{background:repeating-linear-gradient(135deg,var(--panel2) 0 10px,transparent 10px 20px),var(--panel2);border-style:dashed}
.kcol header{padding:12px 12px 8px;border-top:4px solid var(--bar);border-radius:12px 12px 0 0;flex:none;background:var(--panel2);z-index:1}
.kcol .kbody{padding:4px 10px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:80px;flex:1}
.kcol.drop-ok{outline:2px dashed var(--focus);outline-offset:-2px;background:var(--hl-soft)}
.kcol.drop-no{opacity:.45}
.drop-hint{display:none;padding:6px 12px;font-size:12px;color:var(--primary);font-weight:600;flex:none}
.drop-ok .drop-hint{display:block}
.kbody>.kcard,.kbody>[data-more]{flex-shrink:0}
.kanban-selection{display:inline-flex;align-items:center;padding:2px}
.kanban-select{width:16px;height:16px;accent-color:var(--primary)}
.kcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;position:relative;cursor:grab;box-shadow:var(--shadow)}
.kcard:hover{border-color:var(--faint)}
.kcard.dragging{opacity:.4}
.kcard[draggable="false"]{cursor:pointer}
.kcard.is-sel{background:var(--hl-soft);border-color:var(--active-border)}
.kcard-top,.kcard-id,.kcard-signals,.kcard-relation{display:flex;align-items:center;gap:6px}
.kcard-top{justify-content:space-between;margin-bottom:8px;font-size:12px;color:var(--muted)}
.kcard-id{font-weight:500}.kcard-signals{flex-wrap:wrap;justify-content:flex-end}.kcard-relation{font-size:11px}
.kcard-book{font-size:14px;font-weight:650;line-height:1.35}
.kcard-volume,.kcard-code{font-size:11.5px;color:var(--muted);margin-top:2px}
.kcard-error{font-size:13px;font-weight:500;line-height:1.4;margin-top:9px}
.kcard-meta{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.kcard-meta>span+span::before{content:'·';margin-right:8px}
.kcard-note{margin-top:7px;font-size:12px;color:var(--muted)}
.kcard-alert{background:var(--con-bg);color:var(--con-fg);padding:5px 8px;border-radius:6px;font-weight:600}

/* drawer & modal */
.scrim{position:fixed;inset:0;background:rgba(9,14,25,.45);z-index:40}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(780px,100%);background:var(--bg);z-index:41;display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .22s ease}
.drawer.open{transform:none}
.drawer.expanded{width:100%;box-shadow:none}
.drawer-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}
@media(max-width:640px){.drawer-controls{flex-direction:column-reverse;align-items:flex-end}.drawer-controls #dExpand{display:none}}
.drawer .dhead{background:var(--panel);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.drawer .dbody{overflow-y:auto;flex:1;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.drawer-actions{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);max-height:30vh;overflow-y:auto}
.drawer-actions[hidden]{display:none}
.drawer-actions .btn{height:auto;min-height:36px;white-space:normal;text-align:left}
.seg.invalid{outline:2px solid var(--danger);outline-offset:4px;border-radius:8px}
#provaForm>div:last-child{position:sticky;bottom:0;z-index:2}
.quad{background:var(--panel);border:1px solid var(--line);border-radius:12px}
.quad > h3{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line2);font-weight:600;font-size:14px}
.quad .qb{padding:14px 16px}
.quad.act{border-color:var(--active-border);box-shadow:var(--action-shadow)}
.quad.flash{animation:flash 1.2s ease}
@keyframes flash{0%{box-shadow:0 0 0 6px var(--hl)}100%{box-shadow:var(--action-shadow)}}
.dl{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:13.5px}
.dl dt{color:var(--muted)}
.dl dd{margin:0;font-weight:500}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
.modal .mbox{background:var(--panel);border-radius:14px;width:min(620px,100%);max-height:calc(100% - 32px);overflow:auto;box-shadow:0 24px 60px rgba(0,0,0,.3);border:1px solid var(--line)}

/* flow stepper */
.flow{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.flow li{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 16px;background:var(--panel2);color:var(--faint);font-size:12.5px;font-weight:600;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%);border:0}
.flow li:first-child{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%);padding-left:12px;border-radius:6px 0 0 6px}
.flow li.done{color:var(--text);background:var(--line2)}
.flow li.done svg{width:13px;height:13px}
.flow li.cur{color:#fff}
.flow li.cur.st-tri{background:var(--tri-fg)}.flow li.cur.st-pen{background:var(--pen-fg)}.flow li.cur.st-aju{background:var(--aju-fg)}.flow li.cur.st-ajd{background:var(--ajd-fg)}.flow li.cur.st-rev{background:var(--rev-fg)}.flow li.cur.st-ok{background:var(--ok-fg)}.flow li.cur.st-con{background:var(--con-fg)}
:root[data-theme="dark"] .flow li.cur{color:#0A1020}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .flow li.cur{color:#0A1020}}

/* timeline */
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl li{position:relative;padding:0 0 16px 26px}
.tl li::before{content:"";position:absolute;left:7px;top:14px;bottom:-2px;width:2px;background:var(--line)}
.tl li:last-child::before{display:none}
.tl .nd{position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;border:3px solid var(--panel);box-shadow:0 0 0 1.5px var(--line);background:var(--faint)}

/* book covers */
.book{display:flex;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:6px 12px 12px 6px;overflow:hidden;cursor:pointer;min-height:132px;width:100%}
.book .bs{width:10px;flex:none;display:flex;flex-direction:column;align-self:stretch}
.book .bs>span{min-height:0}
.book-option{position:relative;min-width:0}
.book-option .book{height:100%}
.book-tooltip{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;padding:10px 12px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);font-size:12px;visibility:hidden;opacity:0}
.book-option:hover .book-tooltip,.book-option:focus-within .book-tooltip{visibility:visible;opacity:1}
.book[aria-pressed="true"]{border-color:var(--active-border);background:var(--active-bg);box-shadow:var(--active-shadow)}
.stack{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line2)}
.stack span{display:block;height:100%}

/* palette & toasts */
.pal{position:fixed;inset:0;z-index:60;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.pal .pbox{width:min(640px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:hidden}
.pal .pitem{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer}
.pal .pitem[aria-selected="true"]{background:var(--hl-soft)}
.pal .pitem svg{width:16px;height:16px;color:var(--muted)}
#toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100% - 32px))}
.toast{background:var(--ink);color:#fff;padding:12px 14px;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:10px;align-items:flex-start;font-weight:500}
.toast svg{width:18px;height:18px;flex:none;margin-top:1px}
.toast.warn{background:#7A2E0E}
:root[data-theme="dark"] .toast{background:#E6EBF4;color:#0A1020}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .toast{background:#E6EBF4;color:#0A1020}}

.bulk{position:sticky;bottom:12px;z-index:5}
.dz{border:2px dashed var(--line);border-radius:14px;background:var(--panel);cursor:pointer}
.dz.over,.dz:hover{border-color:var(--focus);background:var(--hl-soft)}
.bar{height:8px;border-radius:4px;background:var(--line2);overflow:hidden}
.bar > i{display:block;height:100%;background:var(--primary)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.scroll-x{overflow-x:auto}
.qb p,.qb dd,.tl li,.kcard{overflow-wrap:anywhere}
.qb dd,.tl .text-sm{white-space:pre-wrap}
.action-details:empty{display:none}
.action-details{font-size:13px;border-left:2px solid var(--line);padding-left:12px}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.5}
select:disabled,input:disabled,[role="button"][aria-disabled="true"]{cursor:not-allowed}
@media(max-width:640px){.dl{grid-template-columns:1fr}.dl dd{margin-bottom:8px}.dhead h2{font-size:21px}.bulk .btn{white-space:normal}.qb .flex{flex-wrap:wrap}}
.hide-scroll::-webkit-scrollbar{height:8px;width:8px}
.hide-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
.task-summary{padding:16px 18px;border-left:3px solid var(--primary);background:var(--panel);border-radius:0 10px 10px 0}
.task-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.task-action,.task-context{min-width:0}
.task-disclosure{border:1px solid var(--line);background:var(--panel);border-radius:12px}
.task-disclosure>summary{padding:14px 16px;font-weight:600;color:var(--muted)}
.task-disclosure[open]>summary{border-bottom:1px solid var(--line2);color:var(--text)}
.disclosure-body{padding:16px}
.disclosure-body>.quad{border:0}
.task-context .dl{grid-template-columns:120px minmax(0,1fr)}
@media(min-width:1100px){.drawer.expanded .task-workspace{grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr)}.drawer.expanded .dbody>div{max-width:1600px;margin-inline:auto;width:100%}}
.text-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.task-error-title{-webkit-line-clamp:2}
.task-table{min-width:860px;table-layout:fixed}
.task-table th:nth-child(1){width:40px}.task-table th:nth-child(2){width:64px}
.task-table th:nth-child(3){width:17%}.task-table th:nth-child(4){width:27%}
.task-table th:nth-child(5){width:9%}.task-table th:nth-child(6){width:155px}
.task-table th:nth-child(7){width:13%}.task-table th:nth-child(8){width:110px}
.task-table td{white-space:normal;overflow-wrap:anywhere;padding-block:14px}
.task-table td .pill{height:auto;min-height:24px;white-space:normal;margin-block:2px}
.active-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.active-filters:empty{display:none}
.task-filter-primary{display:flex;align-items:end;gap:12px}
.task-filter-primary>div:first-child{flex:1}
.task-filter-order{flex:0 0 280px;min-width:0}
.task-filter-secondary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;margin-top:12px}
@media(max-width:1100px){.task-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.task-filter-primary{flex-direction:column;align-items:stretch}.task-filter-order{flex:auto}.task-filter-secondary{grid-template-columns:minmax(0,1fr)}}
.filter-chip{height:auto;min-height:28px;white-space:normal;text-align:left;background:var(--active-bg);border-color:var(--active-border);color:var(--active-text);overflow-wrap:anywhere}
.sstrip button{min-width:98px;padding:8px 10px}.sstrip .n{font-size:19px}.sstrip .t{font-size:12px}
.import-steps{display:flex;flex-wrap:wrap;gap:12px 24px;margin:20px 0;padding:0;list-style:none}
.import-steps li{display:flex;align-items:center;gap:8px;color:var(--muted)}
.import-steps li>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);font-size:12px}
.import-steps .current{color:var(--primary);font-weight:600}.import-steps .current>span{background:var(--active-bg);border-color:var(--active-border)}
.import-steps .done>span{background:var(--ok-bg);color:var(--ok-fg);border-color:transparent}
.import-totals{display:flex;flex-wrap:wrap;gap:24px;margin:14px 0;color:var(--muted)}
.import-totals strong{font-size:22px;color:var(--text);margin-right:4px}
@media(max-width:640px){.task-context .dl{grid-template-columns:1fr}.disclosure-body{padding:10px}.task-summary{padding:14px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Gestão e manutenção: indicadores sempre levam ao recorte correspondente. */
.overview-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.overview-metric{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;text-align:left;color:var(--text)}
.overview-metric strong{font-size:26px;font-variant-numeric:tabular-nums;line-height:1.2}
.overview-metric span{font-size:13px;color:var(--muted)}
.overview-metric:hover,.overview-book:hover{background:var(--active-bg);border-color:var(--active-border)}
.overview-metrics.compact{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.overview-metrics.compact .overview-metric{padding:12px}.overview-metrics.compact strong{font-size:20px}
.overview-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.overview-task{display:flex;flex-direction:column;width:100%;gap:4px;text-align:left;padding:12px 0;border-bottom:1px solid var(--line2);overflow-wrap:anywhere}
.overview-task:hover{color:var(--primary)}.overview-task span{font-size:12px;color:var(--muted)}.overview-task:last-child{border-bottom:0}
.overview-book{display:flex;flex-direction:column;text-align:left;gap:10px;padding:18px;width:100%;overflow-wrap:anywhere}.overview-book .bar{width:100%}
@media(max-width:900px){.overview-columns{grid-template-columns:minmax(0,1fr)}}
