/* ── PANELS (right slide) ────────────────────────── */
.panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:var(--z-panel);display:flex;justify-content:flex-end;animation:fadein .18s}
.panel{background:var(--sf);width:520px;max-width:100vw;height:100%;display:flex;flex-direction:column;box-shadow:var(--sh-xl);animation:slidein-r .22s cubic-bezier(.22,.68,0,1.2)}
.panel-head{padding:18px 20px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:12px;flex:none}
.panel-body{flex:1;overflow-y:auto;padding:20px}
.panel-foot{padding:14px 20px;border-top:1px solid var(--bd);display:flex;align-items:center;gap:10px;flex:none;background:var(--sf2)}
.panel-section{margin-bottom:22px}
.panel-section h3{font-weight:800;font-size:13px;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}

/* ── MODALS ──────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadein .15s}
.modal{background:var(--sf);border-radius:var(--r5);box-shadow:var(--sh-xl);width:100%;animation:popin .2s;max-height:calc(100% - 120px);display:flex;flex-direction:column;overflow:hidden}
.modal-sm{max-width:420px}
.modal-md{max-width:580px}
.modal-lg{max-width:820px}
.modal-head{padding:18px 20px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:12px;flex:none}
.modal-body{padding:20px;overflow-y:auto;flex:1;min-height:0}
.modal-foot{padding:14px 20px;border-top:1px solid var(--bd);display:flex;justify-content:flex-end;gap:10px;background:var(--sf2);border-radius:0 0 var(--r5) var(--r5);flex:none}

/* ── FORMS ───────────────────────────────────────── */
.form-grid{display:grid;gap:14px}
.form-grid-2{grid-template-columns:1fr 1fr}
.form-grid-3{grid-template-columns:1fr 1fr 1fr}
.form-row{display:flex;flex-direction:column;gap:5px}
.form-row label{font-size:12px;font-weight:700;color:var(--tx2)}
.form-row label .req{color:var(--danger);margin-left:2px}
.inp{width:100%;height:38px;border:1px solid var(--bd);background:var(--sf2);border-radius:var(--r3);padding:0 11px;font-size:13px;color:var(--tx);outline:none;transition:border-color var(--tr),box-shadow var(--tr)}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,122,77,.12);background:var(--sf)}
.inp.error{border-color:var(--danger)}
textarea.inp{height:auto;padding:9px 11px;resize:vertical;min-height:70px}
select.inp{appearance:none;cursor:pointer}
.inp-hint{font-size:11.5px;color:var(--tx3);margin-top:3px}
.inp-error{font-size:11.5px;color:var(--danger);margin-top:3px}
.form-divider{border:none;border-top:1px solid var(--bd2);margin:4px 0}
.form-section-title{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;padding:4px 0 6px}
.checkbox-row{display:flex;align-items:center;gap:9px;cursor:pointer}
.checkbox-row input[type=checkbox]{width:17px;height:17px;border-radius:5px;accent-color:var(--brand);cursor:pointer}

/* Form extras (labels/hints usados pelos forms de obra/usuário/empresa) */
.form-label{font-size:12px;font-weight:700;color:var(--tx2)}
.form-label .req{color:var(--danger);margin-left:2px}
.form-hint{font-size:11.5px;color:var(--tx3);margin-top:3px}
