:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#eef2f7;font-synthesis:none;--blue:#2257a3;--blue-dark:#163e79;--line:#dfe5ee;--muted:#667085;--panel:#fff;--sidebar:#0c2347;--danger:#a22a2a;--success:#19753e;--warning:#9a6a00}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#eef2f7}button,input,select,textarea{font:inherit}.hidden{display:none!important}.message{position:fixed;top:18px;right:18px;z-index:1000;max-width:min(560px,calc(100vw - 36px));padding:13px 16px;border-radius:10px;background:#152a47;color:white;box-shadow:0 12px 30px rgba(0,0,0,.2)}.message.error{background:#922b2b}.message.success{background:#196b3b}
/* auth */.page-shell{min-height:100vh;display:grid;grid-template-columns:minmax(330px,42%) minmax(430px,58%)}.brand-panel{background:linear-gradient(150deg,#071d3e 0%,#123f83 55%,#1e57a7 100%);color:white;padding:clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:center;gap:32px}.brand-logo{width:min(430px,90%);filter:brightness(0) invert(1)}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#c9dbff}.brand-copy h1{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:10px 0 14px}.brand-copy p{max-width:530px;font-size:17px;color:#d7e5ff;line-height:1.6}.security-note{display:flex;flex-direction:column;gap:5px;border-left:3px solid #8ab4ff;padding-left:15px;color:#dae8ff}.security-note span{font-size:13px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px;overflow:auto}.card{width:min(480px,100%);background:white;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 18px 50px rgba(29,49,79,.12)}.card-heading{margin-bottom:25px}.card-heading h2{font-size:27px;margin:10px 0 7px}.card-heading p{margin:0;color:var(--muted);line-height:1.5}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e8f0ff;color:#204d94;font-size:12px;font-weight:800;text-transform:uppercase}.pill.warning{background:#fff3d6;color:#865b00}.form-stack{display:grid;gap:16px}.form-stack label,.form-grid label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#344054}.form-stack input,.form-stack select,.form-stack textarea,.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cfd7e4;border-radius:10px;padding:11px 13px;background:white;outline:none}.form-stack input,.form-stack select,.form-grid input,.form-grid select{height:47px}.form-stack input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#275cac;box-shadow:0 0 0 3px rgba(39,92,172,.12)}button{cursor:pointer;border-radius:10px;min-height:42px;padding:0 16px;font-weight:750}.primary{border:1px solid var(--blue);background:var(--blue);color:white}.primary:hover{background:var(--blue-dark)}.secondary{background:white;border:1px solid #c9d2df;color:#344054}.link-button{border:0;background:transparent;color:var(--blue);min-height:auto}.qr-wrap{display:flex;justify-content:center;border:1px solid var(--line);border-radius:14px;padding:18px}.qr-wrap img{width:230px}.secret-box{background:#f4f7fb;border-radius:10px;padding:12px;display:grid;gap:4px;margin:14px 0}.secret-box code{word-break:break-all}
/* app */.app-shell{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:var(--sidebar);color:white;padding:20px 16px;display:flex;flex-direction:column;z-index:30;box-shadow:7px 0 24px rgba(13,33,66,.12)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:5px 6px 22px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-brand img{width:78px;height:auto;filter:brightness(0) invert(1)}.sidebar-brand div{display:grid;gap:2px}.sidebar-brand strong{font-size:18px}.sidebar-brand small{color:#b9cae6}.sidebar nav{display:grid;gap:6px;margin-top:18px}.nav-btn{border:0;background:transparent;color:#dbe7f8;text-align:left;padding:0 13px;border-radius:9px}.nav-btn:hover,.nav-btn.active{background:#173c70;color:white}.nav-sub{font-size:13px;padding-left:25px}.sidebar-user{margin-top:auto;padding:16px 8px 4px;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:4px}.sidebar-user small{color:#bac9e0;margin-bottom:8px}.link-btn{border:0;background:transparent;color:#dbe7f8;text-align:left;padding:4px 0;min-height:auto}.link-btn.danger{color:#ffb5b5}.content{margin-left:250px;min-height:100vh;padding:0 28px 40px}.topbar{position:sticky;top:0;z-index:20;background:rgba(238,242,247,.94);backdrop-filter:blur(8px);display:flex;justify-content:space-between;align-items:center;padding:24px 0 17px;border-bottom:1px solid #dce3ec}.topbar h1{margin:0;font-size:26px}.topbar p{margin:4px 0 0;color:var(--muted)}.topbar-right{display:flex;gap:10px;align-items:center}.security-chip{background:#daf3e4;color:#19653a;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.small{min-height:36px}.app-view{display:none;padding-top:22px}.app-view.active{display:block}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;margin-bottom:18px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:18px}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.stat b{font-size:26px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:0 8px 24px rgba(26,46,77,.04)}.narrow-panel{max-width:920px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.panel-head h2{margin:0 0 4px;font-size:19px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.filters input,.filters select{height:40px;border:1px solid #cad3df;border-radius:9px;padding:0 11px;background:white}.filters input{min-width:250px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:11px 9px;border-bottom:1px solid #e8edf3;text-align:left;white-space:nowrap}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#6f7b8d;background:#fafbfc}.data-table tbody tr.clickable:hover{background:#f4f7fb;cursor:pointer}.status-badge{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.s-entry{background:#e8efff;color:#2b5ca9}.s-in_progress{background:#e2f1ff;color:#185b8c}.s-pending{background:#fff0cf;color:#835a00}.s-review{background:#f0e7ff;color:#6531a0}.s-completed{background:#dff4e6;color:#17663a}.s-cancelled{background:#f3e4e4;color:#8e3030}.days-box{display:inline-flex;min-width:42px;justify-content:center;padding:5px 7px;border-radius:8px;background:#eef2f7;font-weight:800}.overdue{color:#a42525;background:#fde7e7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:3px}.finance-box{border:1px solid var(--line);border-radius:12px;padding:14px}.finance-box legend{padding:0 6px;font-size:12px;font-weight:800;color:#42516a}.form-grid.inner{grid-template-columns:repeat(3,minmax(0,1fr))}.kanban{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:14px;overflow:auto;padding-bottom:4px}.kan-col{background:#f5f7fa;border:1px solid #e1e6ed;border-radius:13px;min-height:250px;padding:11px}.kan-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800;margin-bottom:9px}.kan-count{background:white;border:1px solid #dde4ec;border-radius:999px;padding:3px 7px;font-size:11px}.service-card{background:white;border:1px solid #dfe5ed;border-radius:11px;padding:12px;margin-bottom:9px;cursor:pointer;box-shadow:0 3px 9px rgba(34,52,82,.04)}.service-card:hover{border-color:#adc0dd}.service-card strong{display:block;font-size:13px;margin-bottom:5px}.service-card .client{font-size:13px;color:#26364e;margin-bottom:7px}.service-card small{display:block;color:#748095}.card-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:9px}.tabs{display:flex;gap:8px;margin-bottom:12px}.tab-btn{border:1px solid #cbd4e0;background:white;color:#43516a}.tab-btn.active{background:var(--blue);border-color:var(--blue);color:white}.pending-card{display:grid;grid-template-columns:1fr auto;gap:12px;border-bottom:1px solid #e7ecf2;padding:14px 3px}.pending-card:last-child{border-bottom:0}.pending-card h3{margin:0 0 5px;font-size:15px}.pending-card p{margin:0;color:#516075;font-size:13px}.pending-card small{display:block;color:#7a8596;margin-top:6px}.pending-actions{display:flex;align-items:center;gap:7px}.empty{padding:28px;text-align:center;color:#768295}
/* dialog */dialog.dialog{border:0;border-radius:16px;padding:0;width:min(650px,calc(100vw - 32px));max-height:88vh;box-shadow:0 24px 70px rgba(17,31,54,.28)}dialog.large{width:min(980px,calc(100vw - 32px))}dialog::backdrop{background:rgba(10,25,47,.55)}.dialog-head{position:sticky;top:0;background:white;z-index:2;padding:18px 20px;border-bottom:1px solid #e5eaf0;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-head h2{margin:2px 0;font-size:20px}.dialog-head small{color:var(--muted)}.icon-btn{border:0;background:#f1f4f8;width:36px;min-height:36px;padding:0;font-size:22px}.dialog-body{padding:20px;overflow:auto}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.detail{background:#f6f8fb;border:1px solid #e5eaf0;border-radius:10px;padding:11px}.detail span{display:block;color:#6d788a;font-size:11px;margin-bottom:4px}.detail b{font-size:13px}.service-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.service-section{margin-top:18px}.service-section h3{font-size:15px;margin:0 0 9px}.pending-mini{border:1px solid #e2e7ee;border-radius:10px;padding:11px;margin-bottom:8px;display:grid;grid-template-columns:1fr auto;gap:10px}.pending-mini p{margin:4px 0;color:#526077;font-size:12px}.history-item{padding:11px 0;border-bottom:1px solid #e6ebf1}.history-item:last-child{border-bottom:0}.history-item b{font-size:13px}.history-item small{display:block;color:#7a8596;margin-top:4px}.prose{white-space:pre-wrap;line-height:1.6}.status-actions{display:grid;gap:10px}.status-actions button{min-height:48px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:repeat(2,1fr)}.form-grid.inner{grid-template-columns:1fr}}
@media(max-width:850px){.page-shell{grid-template-columns:1fr}.brand-panel{min-height:260px}.sidebar{position:relative;width:100%;height:auto}.content{margin-left:0;padding:0 16px 30px}.app-shell{display:block}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-user{margin-top:16px}.topbar{position:static}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.kanban{grid-template-columns:repeat(5,270px)}}
@media(max-width:520px){.auth-panel{padding:24px 14px}.card{padding:24px}.stats-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.pending-card{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.sidebar nav{grid-template-columns:1fr}}

/* Fase 4 */
.panel-gap{margin-top:18px}.compact-stats{grid-template-columns:repeat(4,minmax(140px,1fr))}.finance-stats{grid-template-columns:repeat(6,minmax(130px,1fr))}.status-fin{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.fin-open_unpaid{background:#dfeaff;color:#174f9e}.fin-partial{background:#fff2bd;color:#775800}.fin-paid{background:#dff4e6;color:#17663a}.fin-completed_unpaid{background:#fde1e1;color:#982424}.docs-box{border:1px solid var(--line);border-radius:12px;padding:14px}.docs-box legend{padding:0 6px;font-size:12px;font-weight:800}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-item{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;border:1px solid #e3e8ef;border-radius:9px;padding:9px;background:#fafbfc;font-weight:600!important}.check-item input{width:17px!important;height:17px!important;flex:none}.money{font-variant-numeric:tabular-nums}.money.negative{color:#a52a2a}.registry-actions,.finance-actions,.prospect-actions{display:flex;gap:7px;flex-wrap:wrap}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.summary-box{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:11px}.summary-box span{font-size:11px;color:var(--muted);display:block}.summary-box b{font-size:16px}.receipt-note{padding:12px;border-radius:10px;background:#edf6ff;color:#244a76;margin-top:10px}.danger-button{border:1px solid #d7a6a6;background:white;color:#9a2f2f}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.inline-form label{display:grid;gap:5px;font-size:12px;font-weight:700}.inline-form input,.inline-form select{height:40px;border:1px solid #cad3df;border-radius:9px;padding:0 10px}.section-title{margin:20px 0 8px;font-size:15px}.print-only{display:none}@media(max-width:1100px){.finance-stats{grid-template-columns:repeat(3,1fr)}.compact-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.check-grid,.summary-strip{grid-template-columns:1fr}.finance-stats,.compact-stats{grid-template-columns:1fr}}


/* Fase 5: Usuários, permissões e auditoria */
.admin-notice{margin:0 0 16px;padding:12px 14px;border:1px solid #c9d7e8;background:#f4f8fc;border-radius:12px;color:#334155;font-size:13px}.status-chip{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.status-chip.ok{background:#e8f7ee;color:#15723a}.status-chip.warn{background:#fff3cc;color:#8a5b00}.status-chip.off{background:#eef1f4;color:#606b77}.permission-section{margin-top:22px;border-top:1px solid #e2e8f0;padding-top:18px}.permission-list{display:grid;gap:8px}.permission-row{display:grid;grid-template-columns:1fr minmax(180px,240px);gap:18px;align-items:center;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;background:#fff}.permission-row b{display:block}.permission-row small{display:block;margin-top:4px;color:#64748b}.check-line{display:flex!important;align-items:center;gap:9px;padding-top:26px}.check-line input{width:auto!important}.security-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.security-flags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.security-flag{padding:8px 12px;border-radius:999px;font-size:12px;border:1px solid #d7dee8}.security-flag.ok{background:#e8f7ee;color:#15723a;border-color:#b8e5c8}.security-flag.danger{background:#feecec;color:#a32121;border-color:#f2bcbc}.audit-action{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.audit-json{white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;max-height:320px;overflow:auto;font-size:12px;line-height:1.45}@media(max-width:1000px){.security-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-row{grid-template-columns:1fr}}@media(max-width:600px){.security-stats{grid-template-columns:1fr}}

/* Fase 6 - administração segura de usuários */
.panel-actions,.credential-actions{display:flex;gap:8px;flex-wrap:wrap}.security-user-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}.security-user-summary .detail{min-height:68px}.credential-admin-box{margin-top:18px;padding:14px;border:1px solid #d9e2ec;border-radius:12px;background:#f8fafc;display:flex;justify-content:space-between;gap:16px;align-items:center}.credential-admin-box h3{margin:0 0 4px;font-size:15px}.credential-admin-box p{margin:0;color:#64748b;font-size:12px}.danger-outline{border-color:#e7a7a7!important;color:#a32121!important;background:#fff!important}.danger-button{background:#b42318;color:white;border:0}.danger-button:hover{background:#912018}.temp-password-box{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;border:1px solid #dbe4ee;border-radius:12px;padding:12px;background:#f8fafc}.temp-password-box small{grid-column:1/-1;color:#64748b}.user-security-line{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}.status-chip.info{background:#e8f1ff;color:#225aa8}.status-chip.danger{background:#feecec;color:#a32121}@media(max-width:700px){.security-user-summary{grid-template-columns:1fr 1fr}.credential-admin-box{align-items:stretch;flex-direction:column}.temp-password-box{grid-template-columns:1fr}}
