:root{--military:#344636;--military-dark:#233127;--accent:#536c42;--canvas:#f4f6f2;--surface:#fff;--ink:#223128;--muted:#6a756d;--line:#dfe5dc;--soft:#eef2e9}
[data-bs-theme=dark]{--canvas:#141b17;--surface:#1d2721;--ink:#e4ece5;--muted:#a5b3a7;--line:#36463a;--soft:#26352b;--accent:#98b882}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}
.app-header{height:86px;background:var(--military);color:#fff;display:flex;align-items:center;padding:0 3.5%;gap:28px;position:sticky;top:0;z-index:1000;box-shadow:0 2px 12px #0001}
.brand{display:flex;gap:12px;align-items:center;color:#fff;flex-shrink:0;line-height:1.2;font-size:21px;letter-spacing:1px}.brand:hover{text-decoration:none;color:white}
.brand img{width:52px;height:52px;object-fit:contain;background:white;border-radius:10px}.brand b{font-size:13px;letter-spacing:1.5px}.brand small{display:block;font-size:8px;margin-top:5px;letter-spacing:1.1px;color:#d4dfd0}
.desktop-nav{display:flex;gap:6px;align-items:center;margin-left:auto;height:100%}.desktop-nav>a,.nav-dropdown{padding:12px;color:#e2e9df;background:none;border:0;border-radius:7px;font-weight:500;white-space:nowrap}
.desktop-nav>a.active,.desktop-nav>a:hover,.nav-dropdown:hover{background:#ffffff15;color:#fff;text-decoration:none}
.header-tools{display:flex;align-items:center;gap:14px}.theme-toggle{background:var(--surface);border:1px solid var(--line);color:var(--ink);width:37px;height:37px;border-radius:50%;font-size:23px;display:inline-flex;align-items:center;justify-content:center}
.account-link{color:#eee;font-size:12px;max-width:120px}.logout{color:#e5eadd;background:none;border:1px solid #ffffff45;border-radius:6px;padding:6px 10px}.header-tools form{margin:0}
.mobile-menu{display:none;background:none;border:0;color:#fff;font-size:26px}.workspace{max-width:1600px;margin:auto;padding:36px 3.5% 48px}
h1{font-size:30px;letter-spacing:-.8px;font-weight:700;margin:0 0 8px}h2{font-size:19px;font-weight:650;margin:0 0 6px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);margin:0 0 9px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p:last-child{margin-bottom:0}
.btn-primary,.btn-outline{border:1px solid var(--accent);padding:10px 17px;border-radius:7px;font-weight:600;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;gap:18px;white-space:nowrap}
.btn-primary{background:var(--military);color:#fff;border-color:var(--military)}.btn-primary:hover{background:var(--military-dark);color:#fff}.btn-outline{background:transparent;color:var(--accent)}.btn-outline:hover{background:var(--soft);color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stat{background:var(--surface);border:1px solid var(--line);padding:22px;border-radius:10px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.stat:before{content:"";height:3px;background:#789259;position:absolute;top:0;left:22px;width:32px}.stat span{font-weight:500;color:var(--muted)}.stat strong{font-size:33px;font-weight:650;line-height:1.2}.stat small{font-size:11px;color:var(--muted)}.stat.warning:before{background:#bf7850}
.global-search{margin-bottom:28px;max-width:640px}.global-search label{font-weight:600;font-size:12px;margin-bottom:8px}.global-search small{display:block;margin-top:7px}
.input{display:block;width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:10px 12px;min-height:42px}.input:focus{border-color:var(--accent);outline:2px solid #7d985633;outline-offset:1px}.input:disabled{background:var(--soft);opacity:.8}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:24px;box-shadow:0 2px 4px #00000002}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.panel-heading p{font-size:12px;margin:0}
.table-scroll{overflow:auto;width:100%}table.dataTable{width:100%!important;font-size:12px;white-space:nowrap}table.dataTable thead th{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);background:var(--soft);border-bottom:1px solid var(--line)!important;padding:14px 24px 14px 12px!important}
table.dataTable tbody td{padding:14px 12px!important;border-color:var(--line)!important;max-width:350px;overflow:hidden;text-overflow:ellipsis}
table.dataTable>tbody>tr:nth-child(odd)>*{box-shadow:none!important}table.dataTable tbody tr:hover{background:var(--soft)}.dt-container{color:var(--ink)!important}.dt-info,.dt-length,.dt-search,.dt-paging{font-size:11px!important;color:var(--muted)}
div.dt-container .dt-input{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:7px}
.row-actions{display:flex;gap:12px;align-items:center}.row-link{font-weight:600;font-size:11px}.row-delete{background:none;border:0;color:#b35d53;font-size:11px;padding:0}.client-link{font-weight:600;color:var(--ink)}
.status-badge{display:inline-block;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:600}.status-badge.green{background:#e8f0e2;color:#385629}.status-badge.yellow{background:#fff1cd;color:#855d08}.status-badge.red{background:#fbe5e0;color:#a13227}
.date-filters{display:flex;gap:15px;margin-bottom:15px}.date-filters label{font-size:11px;color:var(--muted);width:180px}.date-filters .input{margin-top:5px;min-height:35px;padding:6px 10px}.app-footer{max-width:1600px;margin:auto;padding:0 3.5% 25px;color:var(--muted);font-size:11px}.app-footer span{float:right}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.field label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.field small{display:block;font-size:11px;margin-top:6px}.required{color:#ac5947}.field-error{color:#c54333;font-size:12px;display:block;margin-top:6px}.checkbox{width:20px;height:20px}
.form-actions{display:flex;gap:12px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.notice{background:var(--soft);border-left:3px solid #889b64;padding:15px 18px;border-radius:5px;margin-bottom:24px;font-size:13px;line-height:1.7}.back-link{display:inline-block;margin-bottom:22px;font-size:12px}
.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}.details-grid dt{color:var(--muted);font-weight:400;font-size:11px;margin-bottom:5px}.details-grid dd{font-size:14px;margin:0;overflow-wrap:anywhere}
.timeline article{border-left:2px solid var(--line);padding:10px 20px;margin:12px 0}.timeline p{margin:5px 0}.timeline small{color:var(--muted)}.reveal-row{display:flex;gap:12px;max-width:600px;margin:10px 0}#revealedPassword{overflow-wrap:anywhere;user-select:all}.compact{max-width:650px;margin:40px auto}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:35px 20px;background:radial-gradient(ellipse at top left,var(--soft),var(--canvas) 65%)}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:430px;padding:38px 42px;box-shadow:0 16px 60px #172b1710;text-align:center}.login-logo{width:125px;height:155px;object-fit:contain;background:#fff;border-radius:12px;margin-bottom:22px}.login-card h1{font-size:26px}.login-card form{text-align:left;margin-top:27px}.login-card label{font-size:12px;font-weight:600;margin-bottom:8px}.login-card input{margin-bottom:20px}
.full{width:100%;margin-top:4px}.login-footnote{font-size:9px;letter-spacing:2px;color:var(--muted);margin:27px 0 0}.login-theme{position:absolute;right:25px;top:25px}
.dropdown-menu{background:var(--surface);border-color:var(--line);padding:8px;min-width:240px;box-shadow:0 10px 30px #0002}.dropdown-item{color:var(--ink);font-size:13px;border-radius:5px;padding:9px 12px}.dropdown-item:hover{background:var(--soft);color:var(--ink)}
.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav>a,.side-nav .nav-dropdown{display:block;padding:12px;color:var(--ink);width:100%;text-align:left}.side-nav>a:hover{background:var(--soft);border-radius:5px}.side-nav .dropdown-menu{position:static!important;transform:none!important;box-shadow:none}
.table-error{color:#b14d42;padding-top:14px}.offcanvas{background:var(--surface);color:var(--ink);max-width:85vw}
@media(max-width:1200px){.brand small{display:none}.app-header{gap:14px}.desktop-nav{gap:0}.desktop-nav>a,.nav-dropdown{padding:10px}.account-link{display:none}.brand b{display:none}}
@media(max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block;margin-left:auto}.app-header{height:72px;padding:0 20px;gap:18px}.brand img{width:43px;height:43px}.brand b{display:inline;font-size:11px}.header-tools{gap:9px}.stats{grid-template-columns:repeat(2,1fr)}.workspace{padding:25px 20px}.details-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.workspace{padding:22px 14px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:22px}h1{font-size:25px}.stats{gap:10px}.stat{padding:17px}.stat span{font-size:11px}.stat strong{font-size:28px}.panel{padding:17px 14px}.panel-heading{align-items:flex-start}.panel-heading p{display:none}.panel-heading .btn-outline{padding:7px 10px;font-size:11px}.form-grid,.details-grid{grid-template-columns:1fr}.brand b{display:none}.app-header{padding:0 14px;gap:10px}.login-card{padding:30px 25px}.app-footer span{display:none}.reveal-row{flex-direction:column}.date-filters label{width:50%}.form-actions{flex-wrap:wrap}.dt-layout-row{gap:10px}.header-tools .logout{font-size:11px}.global-search{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

[data-bs-theme="dark"] div.dt-container .dt-paging .dt-paging-button.disabled {color:#9ca99e !important;opacity:.7}

/* Login adaptado à altura disponível */
.login-shell {
    min-height: 100vh;
    min-height: 100dvh;
    padding: 16px;
}

.login-card {
    width: 100%;
    max-width: 430px;
    padding: clamp(16px, 3vh, 30px) 28px;
}

.login-logo {
    width: auto;
    height: clamp(64px, 16vh, 120px);
    max-width: 100%;
    margin-bottom: clamp(8px, 2vh, 16px);
}

.login-card h1 {
    font-size: clamp(21px, 4vh, 26px);
}

.login-card > .muted {
    margin-bottom: 0;
}

.login-card form {
    margin-top: clamp(12px, 2.5vh, 22px);
}

.login-card label {
    margin-bottom: 5px;
}

.login-card input {
    margin-bottom: clamp(10px, 2vh, 16px);
}

.login-footnote {
    margin-top: clamp(12px, 2vh, 20px);
}

.login-theme {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 10;
}

/* Ajuste adicional para telas mais baixas */
@media (max-height: 600px) {
    .login-card {
        padding: 14px 24px;
    }

    .login-logo {
        height: 64px;
        margin-bottom: 8px;
    }

    .login-card form {
        margin-top: 12px;
    }

    .login-footnote {
        margin-top: 10px;
    }
}

/* Atalhos dos indicadores da página inicial. */
.stat-link{color:var(--ink);text-decoration:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.stat-link:hover{color:var(--ink);border-color:var(--accent,#789259);box-shadow:0 4px 16px #0002}
.stat-link:focus-visible{outline:3px solid #789259;outline-offset:4px}
.table-panel{scroll-margin-top:105px}
.table-panel:focus-visible{outline:2px solid #789259;outline-offset:4px}
@media(max-width:900px){.table-panel{scroll-margin-top:88px}}
@media(prefers-reduced-motion:reduce){.stat-link{transition:none}}
