@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/ibm-plex-sans.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2")}:root{--bg:#f4f4f4;--layer-01:#fff;--layer-02:#f4f4f4;--layer-hover:#e8e8e8;--border-subtle:#e0e0e0;--border-strong:#c6c6c6;--text-primary:#161616;--text-secondary:#525252;--text-placeholder:#a8a8a8;--text-on-accent:#fff;--accent:#0f62fe;--accent-hover:#0353e9;--focus:#0f62fe;--success:#24a148;--success-bg:#defbe6;--error:#da1e28;--error-bg:#fff1f1;--warning:#b28600;--warning-bg:#fcf4d6;--neutral:#8d8d8d;--neutral-bg:#e8e8e8;--shadow:0 2px 6px #00000024;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#161616;--layer-01:#262626;--layer-02:#1c1c1c;--layer-hover:#333;--border-subtle:#393939;--border-strong:#525252;--text-primary:#f4f4f4;--text-secondary:#c6c6c6;--text-placeholder:#6f6f6f;--text-on-accent:#fff;--accent:#4589ff;--accent-hover:#6ea6ff;--focus:#fff;--success:#42be65;--success-bg:#0e2a14;--error:#fa4d56;--error-bg:#2d0a0c;--warning:#d2a106;--warning-bg:#2d2402;--neutral:#a8a8a8;--neutral-bg:#333;--shadow:0 2px 6px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#161616;--layer-01:#262626;--layer-02:#1c1c1c;--layer-hover:#333;--border-subtle:#393939;--border-strong:#525252;--text-primary:#f4f4f4;--text-secondary:#c6c6c6;--text-placeholder:#6f6f6f;--text-on-accent:#fff;--accent:#4589ff;--accent-hover:#6ea6ff;--focus:#fff;--success:#42be65;--success-bg:#0e2a14;--error:#fa4d56;--error-bg:#2d0a0c;--warning:#d2a106;--warning-bg:#2d2402;--neutral:#a8a8a8;--neutral-bg:#333;--shadow:0 2px 6px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f4f4;--layer-01:#fff;--layer-02:#f4f4f4;--layer-hover:#e8e8e8;--border-subtle:#e0e0e0;--border-strong:#c6c6c6;--text-primary:#161616;--text-secondary:#525252;--text-placeholder:#a8a8a8;--text-on-accent:#fff;--accent:#0f62fe;--accent-hover:#0353e9;--focus:#0f62fe;--success:#24a148;--success-bg:#defbe6;--error:#da1e28;--error-bg:#fff1f1;--warning:#b28600;--warning-bg:#fcf4d6;--neutral:#8d8d8d;--neutral-bg:#e8e8e8;--shadow:0 2px 6px #00000024;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.4;overflow-x:hidden}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}button,input,select{font-family:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}a{color:var(--accent)}.shell{grid-template:"header header"48px"nav main"1fr/256px 1fr;min-height:100vh;display:grid}header.top{background:var(--layer-01);border-bottom:1px solid var(--border-subtle);z-index:20;grid-area:header;justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.brand .mark{background:var(--accent);width:24px;height:24px;color:var(--text-on-accent);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.top-meta{align-items:center;gap:12px;display:flex}.period{color:var(--text-secondary);font-size:12px}.period .mono{color:var(--text-primary)}.role-tag{letter-spacing:.3px;border:1px solid var(--accent);color:var(--accent);padding:3px 8px;font-size:11px;font-weight:500}.avatar{background:var(--neutral-bg);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}nav.side{background:var(--layer-01);border-right:1px solid var(--border-subtle);grid-area:nav;align-self:start;height:calc(100vh - 48px);padding:8px 0;position:sticky;top:48px}.nav-item{height:48px;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:12px;width:100%;padding:0 16px;font-size:14px;display:flex}.nav-item svg{flex:none;width:18px;height:18px}.nav-item:hover{background:var(--layer-hover);color:var(--text-primary)}.nav-item[aria-current=page]{background:var(--layer-02);border-left-color:var(--accent);color:var(--text-primary);font-weight:500}main{grid-area:main;max-width:1180px;padding:24px 32px 64px}.view{display:none}.view.active{display:block}h1{text-wrap:balance;margin:0 0 4px;font-size:20px;font-weight:600}h2{margin:0;font-size:16px;font-weight:600}.subhead{color:var(--text-secondary);margin:0 0 24px;font-size:13px}.view-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.actions-row{gap:8px;display:flex}.btn{background:var(--accent);height:36px;color:var(--text-on-accent);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn svg{width:14px;height:14px}.btn.secondary{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.btn.secondary:hover{background:var(--layer-hover)}.btn.danger{background:var(--error)}.btn.danger:hover{background:#ba1521}.btn.ghost{color:var(--accent);background:0 0;border:none;height:auto;padding:0 4px}.btn:disabled{opacity:.45;cursor:not-allowed}.tabs{border-bottom:1px solid var(--border-subtle);gap:0;margin-bottom:20px;display:flex;overflow-x:auto}.tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 16px;font-size:14px}.tab:hover{color:var(--text-primary)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.group-summary{background:var(--layer-01);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:16px;display:flex}.group-card{background:var(--layer-01);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:16px;display:flex}.group-summary .stat,.group-card .stat{flex-direction:column;gap:2px;display:flex}.group-summary .stat .n,.group-card .stat .n{font-size:18px;font-weight:600}.group-summary .stat .l,.group-card .stat .l{color:var(--text-secondary);letter-spacing:.2px;text-transform:uppercase;font-size:11px}.capacity-bar{background:var(--border-subtle);width:140px;height:6px;position:relative}.capacity-bar>span{background:var(--accent);position:absolute;inset:0}.tags-row{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1px solid var(--border-strong);color:var(--text-secondary);padding:3px 8px;font-size:11px}.grid-scroll{border:1px solid var(--border-subtle);overflow-x:auto}table.alloc{border-collapse:collapse;background:var(--layer-01);width:100%;min-width:720px}table.alloc th,table.alloc td{border:1px solid var(--border-subtle);vertical-align:top}table.alloc thead th{background:var(--layer-02);text-align:left;color:var(--text-secondary);padding:10px 12px;font-size:12px;font-weight:600;position:sticky;top:0}table.alloc td.turno-label{background:var(--layer-02);width:168px;padding:12px;position:sticky;left:0}table.alloc td.turno-label .name{font-size:13px;font-weight:600}table.alloc td.turno-label .hours{color:var(--text-secondary);margin-top:2px;font-size:12px}table.alloc td.cell{min-width:150px;padding:8px}table.alloc td.cell.editable{cursor:default}.cell-head{justify-content:flex-end;margin-bottom:4px;display:flex}.chip{background:var(--layer-02);border-left:3px solid var(--neutral);align-items:center;gap:6px;margin-bottom:6px;padding:5px 6px 5px 8px;font-size:12.5px;display:flex}.chip:last-child{margin-bottom:0}.chip .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chip .dot{background:var(--neutral);border-radius:50%;flex:none;width:6px;height:6px}.chip .chip-del{width:16px;height:16px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.chip .chip-del:hover{color:var(--error)}.badge-repo{letter-spacing:.2px;color:var(--warning);background:var(--warning-bg);flex:none;margin-left:2px;padding:1px 5px;font-size:10px;font-weight:600}.add-cell-btn{border:1px dashed var(--border-strong);width:100%;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:flex}.add-cell-btn:hover{border-color:var(--accent);color:var(--accent)}.add-cell-btn svg{width:12px;height:12px}.legend{flex-wrap:wrap;gap:18px;margin:14px 2px 0;display:flex}.legend .item{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.legend .sq{background:var(--warning-bg);border:1px solid var(--warning);width:10px;height:10px}table.data{border-collapse:collapse;background:var(--layer-01);width:100%}table.data th{text-align:left;border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:12px 16px;font-size:13px;font-weight:600}table.data td{border-bottom:1px solid var(--border-subtle);padding:12px 16px;font-size:13.5px}table.data tbody tr:hover{background:var(--layer-02)}table.data td.num{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.group-tag{border:1px solid var(--border-strong);color:var(--text-secondary);white-space:nowrap;padding:2px 7px;font-size:11px}.group-tag.unassigned{color:var(--warning);border-color:var(--warning)}.row-actions{gap:4px;display:flex}.icon-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--layer-hover);border-color:var(--border-subtle);color:var(--text-primary)}.icon-btn.danger:hover{color:var(--error);border-color:var(--error);background:var(--error-bg)}.icon-btn svg{width:15px;height:15px}.overlay{opacity:0;pointer-events:none;z-index:40;background:#0006;transition:opacity .15s;position:fixed;inset:0}.overlay.open{opacity:1;pointer-events:auto}.panel{background:var(--layer-01);border-left:1px solid var(--border-subtle);width:420px;max-width:92vw;height:100vh;box-shadow:var(--shadow);z-index:41;flex-direction:column;transition:transform .18s;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.overlay.open .panel{transform:translate(0)}.panel-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.panel-body{flex-direction:column;flex:1;gap:18px;padding:20px;display:flex;overflow-y:auto}.panel-foot{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-secondary);font-size:12px;font-weight:500}.field input,.field select{background:var(--layer-02);border:1px solid var(--border-strong);height:40px;color:var(--text-primary);padding:0 12px;font-size:14px}.field input:focus,.field select:focus{border-color:var(--accent)}.field input:disabled{color:var(--text-secondary)}.field .helper{color:var(--text-secondary);font-size:11.5px}.field .helper.locked{color:var(--warning)}.field .helper.error{color:var(--error)}.field-row{gap:12px;display:flex}.field-row .field{flex:1}fieldset{border:1px solid var(--border-subtle);margin:0;padding:12px}legend{color:var(--text-secondary);padding:0 4px;font-size:12px;font-weight:500}table.matrix{border-collapse:collapse;width:100%}table.matrix th,table.matrix td{border:1px solid var(--border-subtle);text-align:center;padding:6px}table.matrix th{background:var(--layer-02);color:var(--text-secondary);font-size:11.5px;font-weight:600}table.matrix td.row-label{text-align:left;background:var(--layer-02);padding:6px 10px;font-size:12.5px;font-weight:500}table.matrix input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.modal-overlay{opacity:0;pointer-events:none;z-index:50;background:#00000073;justify-content:center;align-items:center;padding:24px;transition:opacity .15s;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{background:var(--layer-01);width:640px;max-width:100%;max-height:84vh;box-shadow:var(--shadow);flex-direction:column;display:flex}.modal.small{width:400px}.modal.large{width:920px}.modal-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-body{padding:20px;overflow:auto}.modal-foot{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}table.report{border-collapse:collapse;width:100%}table.report th{text-align:left;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);border-bottom:1px solid var(--border-strong);padding:8px 10px;font-size:11.5px}table.report td{border-bottom:1px solid var(--border-subtle);padding:8px 10px;font-size:13px}.toast{background:var(--text-primary);color:var(--bg);box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:60;padding:10px 16px;font-size:13px;transition:opacity .15s,transform .15s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(8px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.self-shell{max-width:720px;margin:0 auto;padding:32px 20px 64px}.self-header{background:var(--layer-01);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:28px;padding:14px 20px;display:flex}.self-tabs{background:var(--layer-02);gap:4px;width:fit-content;margin-bottom:24px;padding:4px;display:flex}.self-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:13.5px;font-weight:500}.self-tab[aria-selected=true]{background:var(--layer-01);color:var(--text-primary);box-shadow:var(--shadow)}.tab-panel{display:none}.tab-panel.active{display:block}.card{background:var(--layer-01);border:1px solid var(--border-subtle);padding:24px}.card+.card{margin-top:16px}.day-col{flex-direction:column;gap:8px;min-width:148px;display:flex}.day-col-head{text-align:center;border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.day-col-head .d{font-size:13px;font-weight:600}.day-col-head .h{color:var(--text-secondary);font-size:11px}.day-col-head .h.full{color:var(--warning);font-weight:600}.days-row{gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.turno-toggle{border:1px solid var(--border-strong);background:var(--layer-02);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;display:flex}.turno-toggle .t{font-size:12.5px;font-weight:600}.turno-toggle .h{color:var(--text-secondary);font-size:10.5px}.turno-toggle[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.turno-toggle[aria-pressed=true] .t,.turno-toggle[aria-pressed=true] .h{color:var(--text-on-accent)}.turno-toggle:disabled{opacity:.4;cursor:not-allowed}.turno-toggle:not([aria-pressed=true]):hover{border-color:var(--accent)}@media (width<=760px){.shell{grid-template-columns:64px 1fr}.nav-item span.label{display:none}.nav-item{justify-content:center;padding:0}main{padding:20px 16px 48px}}.login-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:360px;max-width:100%}.helper{color:var(--text-secondary);font-size:11.5px}.helper.error{color:var(--error)}.helper.locked{color:var(--warning)}[hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.import-status{border:1px solid;padding:2px 8px;font-size:12px;font-weight:500}.import-status.criado{color:var(--success);border-color:var(--success);background:var(--success-bg)}.import-status.atualizado{color:var(--text-secondary);border-color:var(--border-strong)}.import-status.erro{color:var(--error);border-color:var(--error);background:var(--error-bg)}
