:root{--black:#0b0b0c;--ink:#171719;--red:#b40f1a;--red2:#931019;--bg:#f2f1ef;--card:#fff;--line:#dedbd8;--muted:#77726d;--green:#207759;--amber:#a86c0b;--sans:Arial,Helvetica,sans-serif;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}.login-body{background:#0a0a0b}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-brand{padding:56px 7vw;background:radial-gradient(circle at 20% 15%,#28282a 0,#101012 48%,#09090a 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-brand h1{font-family:var(--serif);font-size:clamp(48px,5vw,78px);font-weight:400;line-height:1;letter-spacing:-.035em;max-width:720px;margin:18px 0 28px}.login-brand p:not(.overline){max-width:560px;color:#aaa5a1;line-height:1.8;font-size:16px}.login-brand>small{color:#716d69}.login-panel{background:#f5f3f1;display:grid;place-items:center;padding:30px}.login-box{width:min(430px,100%)}.login-box h2{font-family:var(--serif);font-weight:400;font-size:38px;margin:8px 0 28px}.bs-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.vm-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid currentColor;font-family:var(--serif);font-size:18px}.bs-brand>span:last-child{display:flex;flex-direction:column}.bs-brand strong{font-family:var(--serif);letter-spacing:.08em}.bs-brand small{font-size:9px;letter-spacing:.14em;margin-top:3px}.overline{margin:0 0 8px;text-transform:uppercase;font-size:10px;letter-spacing:.15em;color:var(--muted);font-weight:700}.overline.red{color:var(--red)}.stack-form{display:grid;gap:18px}.stack-form label,.form-grid label{display:grid;gap:7px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#5e5a56}.stack-form input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbc7c3;background:#fff;color:#222;border-radius:2px;outline:none}.stack-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--red);box-shadow:0 0 0 2px rgba(180,15,26,.08)}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 18px;border:0;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;cursor:pointer;text-decoration:none}.primary-btn{background:var(--red);color:#fff}.primary-btn:hover{background:var(--red2)}.primary-btn.small{min-height:38px}.secondary-btn{background:#fff;border:1px solid #c9c4bf;color:#333}.demo-note{margin-top:28px;padding:15px;border-left:3px solid var(--red);background:#ece9e6;color:#67625d;font-size:12px;line-height:1.6}.bs-layout{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#101012;color:#d8d4d0;padding:27px 18px;display:flex;flex-direction:column;z-index:30}.sidebar .bs-brand{padding:0 10px 28px;color:#fff;border-bottom:1px solid #2e2e30}.sidebar nav{display:grid;gap:4px;margin-top:25px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;color:#aaa7a4;text-decoration:none;font-size:12px;border-left:2px solid transparent}.sidebar nav a>span{width:20px;text-align:center;color:#6e6b69}.sidebar nav a:hover,.sidebar nav a.active{background:#1b1b1e;color:#fff;border-left-color:var(--red)}.sidebar nav a.active>span{color:#d72b35}.sidebar-bottom{margin-top:auto;border-top:1px solid #2c2c2e;padding-top:18px;display:grid;gap:6px}.sidebar-bottom a{color:#8d8986;text-decoration:none;font-size:11px;padding:8px 10px}.bs-main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.top-search{font-size:11px;letter-spacing:.08em;font-weight:700}.top-search span{font-weight:400;color:#aaa5a1}.user-menu{margin-left:auto;display:flex;align-items:center;gap:16px}.user-menu>div{display:flex;flex-direction:column;text-align:right}.user-menu strong{font-size:11px}.user-menu span{font-size:10px;color:#8a8581;margin-top:3px}.user-menu>a{border:1px solid #d2ceca;padding:8px 12px;color:#8c1119;text-decoration:none;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.mobile-nav{display:none;background:none;border:0;font-size:20px;margin-right:15px}.content{padding:32px clamp(22px,4vw,56px) 70px;max-width:1700px}.page-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-title h1{font-family:var(--serif);font-size:42px;font-weight:400;letter-spacing:-.03em;margin:0}.page-title>span{font-size:12px;color:#88827d}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);padding:22px;position:relative}.stat:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#242426}.stat.alert-stat:before{background:var(--red)}.stat span{display:block;color:#77716c;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.stat strong{font-family:var(--serif);font-size:42px;font-weight:400;display:block;margin-top:8px}.dash-grid,.system-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.backups-grid{grid-template-columns:1fr 1fr}.panel{background:#fff;border:1px solid var(--line);padding:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-head .overline{color:var(--red)}.panel-head h2{font-family:var(--serif);font-size:27px;font-weight:400;margin:0}.panel-head a{color:var(--red);font-size:10px;text-transform:uppercase;letter-spacing:.08em;text-decoration:none}.timeline{border-top:1px solid var(--line)}.time-row{display:grid;grid-template-columns:105px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid #ece9e6}.time-row time{font-size:11px;color:#8b8682}.time-row strong,.time-row span{display:block}.time-row strong{font-size:13px}.time-row span{font-size:11px;color:#8b8682;margin-top:5px}.deadline{display:grid;grid-template-columns:6px 1fr auto;gap:13px;align-items:center;padding:14px 0;border-top:1px solid #ece9e6}.priority{width:5px;height:32px;background:#aaa}.priority.high{background:#c4770c}.priority.critical{background:var(--red)}.deadline strong,.deadline small{display:block}.deadline strong{font-size:12px}.deadline small{margin-top:4px;color:#8a8581}.deadline time{font-size:11px}.alert{padding:13px 16px;margin:0 0 18px;border-left:4px solid #777;background:#fff}.alert.success{border-color:var(--green);background:#eef8f3}.alert.warning{border-color:var(--amber);background:#fff7e8}.alert.error{border-color:var(--red);background:#fff0f1}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:22px;background:#fff;border:1px solid var(--line);border-bottom:0;padding:16px}.calendar-toolbar a{color:var(--red);font-size:20px;text-decoration:none}.calendar-toolbar strong{text-transform:capitalize;font-family:var(--serif);font-size:22px;font-weight:400}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);overflow-x:auto}.dow{padding:10px;background:#1b1b1d;color:#d1cdca;text-transform:uppercase;letter-spacing:.08em;font-size:9px;border-right:1px solid #333}.day{min-height:130px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.muted-day{background:#faf9f8}.day.today{box-shadow:inset 0 0 0 2px var(--red)}.day-no{display:block;text-align:right;color:#777;font-size:11px;margin-bottom:5px}.cal-item{padding:5px 6px;margin:4px 0;background:#efedeb;border-left:2px solid #444;font-size:9px;line-height:1.2;overflow:hidden}.cal-item.deadline{display:block;background:#fff0f1;border-left-color:var(--red)}.cal-item time,.cal-item strong{display:block}.cal-item time{color:#777;margin-bottom:3px}.calendar-list{margin-top:18px}.event-row{display:grid;grid-template-columns:58px 1fr;gap:18px;padding:17px 0;border-top:1px solid var(--line)}.event-date{border-right:1px solid var(--line);display:flex;flex-direction:column}.event-date strong{font-family:var(--serif);font-size:28px;font-weight:400}.event-date span{text-transform:uppercase;font-size:9px;color:#777}.event-row h3{font-family:var(--serif);font-weight:400;font-size:21px;margin:7px 0 5px}.event-row p{font-size:11px;color:#777;margin:0}.pill,.status{display:inline-block;font-size:9px;text-transform:uppercase;letter-spacing:.07em;padding:5px 7px;background:#efedeb;color:#5d5955}.status.open{background:#e7f3ed;color:#1b6b4e}.status.suspended{background:#fff3d9;color:#8a5b0b}.status.closed{background:#eee;color:#555}.status.archived{background:#f0e8e8;color:#7b5454}.table-card{background:#fff;border:1px solid var(--line);overflow:auto}.table-card table{width:100%;border-collapse:collapse;min-width:760px}.table-card th,.table-card td{text-align:left;padding:14px 16px;border-bottom:1px solid #ece9e6;font-size:12px}.table-card th{background:#1a1a1c;color:#cac6c2;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.table-card td a{color:var(--red);text-decoration:none;font-size:10px;text-transform:uppercase}.case-grid,.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.case-card,.module-card{background:#fff;border:1px solid var(--line);padding:22px}.case-top{display:flex;justify-content:space-between;align-items:center}.case-top>strong{font-size:11px;letter-spacing:.05em}.case-card h2,.module-card h2{font-family:var(--serif);font-size:27px;font-weight:400;margin:22px 0 8px}.case-card>p{color:#777;margin:0}.case-card dl{margin:25px 0;border-top:1px solid var(--line)}.case-card dl div{display:grid;grid-template-columns:85px 1fr;padding:9px 0;border-bottom:1px solid #eee}.case-card dt{color:#888;font-size:10px}.case-card dd{margin:0;font-size:11px}.case-card>a{color:var(--red);font-size:10px;text-transform:uppercase;text-decoration:none}.module-card>span{font-family:var(--serif);font-size:45px;color:var(--red)}.module-card p{color:#777;line-height:1.6}.module-card button{border:0;background:#eee;color:#999;padding:9px 12px}.diagnostic>div,.nas-box dl div{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid #ece9e6}.diagnostic strong{font-size:11px}.diagnostic .ok{color:var(--green)}.diagnostic .no{color:var(--red)}.nas-box p{color:#666}.nas-box dl{margin:20px 0}.nas-box dt,.nas-box dd{font-size:11px}.nas-box dd{margin:0}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:100;align-items:flex-start;justify-content:center;padding:5vh 20px;overflow:auto}.modal.open{display:flex}.modal-card{width:min(800px,100%);background:#f7f5f3;border-top:4px solid var(--red);padding:28px}.modal-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:24px}.modal-head h2{font-family:var(--serif);font-size:34px;font-weight:400;margin:0}.icon-btn{border:0;background:#111;color:#fff;width:35px;height:35px;font-size:22px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span-2{grid-column:1/-1}.form-grid textarea{resize:vertical}.form-grid fieldset{border:1px solid #d3cfcb;padding:14px}.form-grid legend{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#666}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;font-weight:400!important}.check input{width:auto!important;min-height:0!important}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.empty{color:#888}.table-card code{font-size:10px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid,.system-grid{grid-template-columns:1fr}.case-grid,.module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.bs-layout{display:block}.sidebar{position:fixed;left:-260px;width:235px;transition:left .2s}.sidebar.open{left:0}.mobile-nav{display:block}.top-search span{display:none}.content{padding:25px 16px 60px}.page-title h1{font-size:35px}.stats-grid{grid-template-columns:1fr 1fr}.case-grid,.module-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.check-grid{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(7,130px)}.user-menu>div{display:none}}
/* V1.2 — navegação hierárquica e CRUD */
.bs-nav{overflow-y:auto;min-height:0;padding-right:3px}.nav-group{margin:5px 0 9px;border-left:2px solid transparent}.nav-group.active-group{border-left-color:var(--red);background:#171719}.nav-group-title{display:flex;align-items:center;gap:12px;padding:11px 13px;color:#c2bfbc;font-size:11px}.nav-group-title>span{width:20px;text-align:center;color:#6e6b69}.nav-group-title strong{font-size:11px;font-weight:600}.nav-submenu{display:grid;padding:0 0 7px 43px}.sidebar .nav-submenu a{padding:7px 8px;border-left:0;background:transparent;color:#8f8b88;font-size:10px;line-height:1.25}.sidebar .nav-submenu a:hover,.sidebar .nav-submenu a.active{background:transparent;color:#fff;border-left:0}.sidebar .nav-submenu a.active{color:#fff;position:relative}.sidebar .nav-submenu a.active:before{content:'';position:absolute;left:-12px;top:12px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:7px}.inline-form{display:inline;margin:0}.text-action,.row-actions>a{border:0;background:none;padding:0;color:var(--red);font-size:10px;text-transform:uppercase;letter-spacing:.045em;text-decoration:none;cursor:pointer}.text-action:hover,.row-actions>a:hover{text-decoration:underline}.danger-action{color:#8b2429}.modal-link-close{text-decoration:none;display:grid;place-items:center}.modal-card.wide{width:min(980px,100%)}.notice-box{margin-top:18px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--red);color:#68635f;line-height:1.6}.notice-box strong{color:#2c2927}.backup-list{border-top:1px solid var(--line)}.backup-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #ece9e6}.backup-row strong,.backup-row small{display:block}.backup-row small{color:#8b8682;margin-top:4px}.filter-form{display:flex;gap:8px;align-items:center}.filter-form input{min-height:39px;border:1px solid #cbc7c3;background:#fff;padding:8px 11px;min-width:280px}.muted-copy{color:#807b77;line-height:1.65}.table-card small{color:#8b8682}.form-grid label small{font-size:10px;text-transform:none;letter-spacing:0;font-weight:400;color:#8b8682}.cal-item{text-decoration:none;color:inherit;display:block}.sidebar nav{overflow:visible}
@media(max-width:780px){.filter-form{width:100%;flex-wrap:wrap}.filter-form input{min-width:0;flex:1}.page-title{align-items:flex-start;flex-direction:column}.backup-row{align-items:flex-start;flex-direction:column}.sidebar{overflow-y:auto}.bs-nav{overflow:visible}}


/* V1.3 — refinamento BackStage */
.bs-layout{grid-template-columns:255px 1fr}
.sidebar{padding:22px 16px}
.sidebar .bs-brand.bs-brand-logo{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:2px 8px 22px}
.sidebar .bs-brand-logo img{display:block;width:100%;max-width:205px;height:74px;object-fit:contain;object-position:left center}
.sidebar .bs-brand-logo small{font-size:9px;letter-spacing:.24em;color:#817d79;margin-left:2px}
.sidebar nav{margin-top:20px}
.sidebar nav a,.nav-group-title{min-height:43px}
.nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;color:#817d79}
.nav-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.sidebar nav a:hover .nav-icon,.sidebar nav a.active .nav-icon,.nav-group.active-group>.nav-group-title .nav-icon{color:#fff}
.sidebar .nav-group-title{gap:12px}
.sidebar-bottom{display:none}

/* Ações passam a ser botões visuais, mantendo formulários leves */
.row-actions{gap:7px;margin-top:5px}
.row-actions>a,.row-actions button.text-action,.row-actions .text-action{
    display:inline-flex;align-items:center;justify-content:center;min-height:31px;
    padding:6px 10px;border:1px solid #d2ceca;border-radius:2px;background:#fff;
    color:#3e3a37;font-size:9px;font-weight:700;text-transform:uppercase;
    letter-spacing:.055em;text-decoration:none;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease
}
.row-actions>a:hover,.row-actions button.text-action:hover,.row-actions .text-action:hover{
    background:#171719;border-color:#171719;color:#fff;text-decoration:none
}
.row-actions .danger-action{border-color:#dfc6c8;color:#9d2029;background:#fff}
.row-actions .danger-action:hover{background:#9d2029;border-color:#9d2029;color:#fff}
.backup-row .row-actions{margin-top:0}
.action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:6px 10px;border:1px solid #d2ceca;border-radius:2px;background:#fff;color:#3e3a37;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;text-decoration:none;cursor:pointer}
.action-btn:hover{background:#171719;border-color:#171719;color:#fff}
.action-btn.danger{border-color:#dfc6c8;color:#9d2029}
.action-btn.danger:hover{background:#9d2029;border-color:#9d2029;color:#fff}

/* Gestão de formulários e servidor de arquivo */
.settings-stack{display:grid;gap:22px}
.submission-message{max-width:560px;white-space:pre-wrap;line-height:1.55;color:#5f5b58}
.secret-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.system-note{font-size:12px;color:#77726d;line-height:1.6}
.code-note{display:block;margin-top:8px;padding:10px 12px;background:#f4f1ef;border:1px solid var(--line);font-family:Consolas,monospace;font-size:11px;color:#5a5551;overflow-wrap:anywhere}

@media(max-width:1080px){
  .bs-layout{grid-template-columns:235px 1fr}
}

/* V1.4 — sidebar estável e grupos recolhíveis */
.bs-layout{grid-template-columns:255px minmax(0,1fr)}
.sidebar{
    position:sticky;
    top:0;
    height:100vh;
    overflow:hidden;
    padding:22px 16px 14px;
}
.sidebar .bs-brand.bs-brand-logo{
    flex:0 0 auto;
    margin:0;
    padding:2px 8px 0;
    border-bottom:0;
}
.sidebar .bs-brand-logo img{
    max-width:205px;
    height:72px;
}
.sidebar .bs-brand-logo small{
    display:block;
    width:100%;
    margin:7px 0 0;
    padding:0 1px 12px;
    border-bottom:1px solid var(--red);
    color:var(--red);
    font-size:9px;
    font-weight:700;
    letter-spacing:.24em;
}
.sidebar nav.bs-nav{
    display:block;
    flex:1 1 auto;
    min-height:0;
    margin-top:14px;
    padding:0 4px 12px 0;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
    scrollbar-color:#454548 transparent;
}
.sidebar nav.bs-nav::-webkit-scrollbar{width:5px}
.sidebar nav.bs-nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav.bs-nav::-webkit-scrollbar-thumb{background:#454548;border-radius:10px}
.sidebar nav.bs-nav>a.nav-link{margin:4px 0}
.nav-group{
    margin:4px 0;
    border-left:2px solid transparent;
    background:transparent;
    transition:background .16s ease,border-color .16s ease;
}
.nav-group.active-group{border-left-color:var(--red);background:#171719}
.nav-group-title{
    width:100%;
    min-height:43px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 11px;
    border:0;
    background:transparent;
    color:#aaa7a4;
    font:inherit;
    text-align:left;
    cursor:pointer;
    transition:background .16s ease,color .16s ease;
}
.nav-group-title:hover{background:#1b1b1d;color:#fff}
.nav-group-title:focus-visible{outline:1px solid var(--red);outline-offset:-1px}
.nav-group-title strong{min-width:0;flex:1;font-size:11px;font-weight:600}
.nav-group-title .nav-icon{color:#6e6b69}
.nav-group-title:hover .nav-icon,.nav-group.is-open>.nav-group-title .nav-icon,.nav-group.active-group>.nav-group-title .nav-icon{color:#fff}
.nav-chevron{
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 18px;
    color:#777472;
    transition:transform .18s ease,color .18s ease;
}
.nav-chevron svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-group.is-open .nav-chevron{transform:rotate(180deg);color:#fff}
.nav-submenu{
    display:grid;
    grid-template-rows:0fr;
    padding:0 0 0 43px;
    opacity:0;
    overflow:hidden;
    transition:grid-template-rows .2s ease,opacity .16s ease,padding .2s ease;
}
.nav-submenu::before{content:'';min-height:0}
.nav-group.is-open .nav-submenu{
    grid-template-rows:1fr;
    padding-bottom:7px;
    opacity:1;
}
/* A grelha animada necessita de um invólucro implícito; links usam altura controlada. */
.nav-group:not(.is-open) .nav-submenu a{display:none}
.nav-group.is-open .nav-submenu a{display:flex}
.sidebar .nav-submenu a{
    min-height:31px;
    align-items:center;
    padding:7px 8px;
    color:#8f8b88;
    font-size:10px;
    line-height:1.25;
}
.sidebar .nav-submenu a:hover,.sidebar .nav-submenu a.active{color:#fff;background:transparent}
.sidebar .nav-submenu a.active{position:relative}
.sidebar .nav-submenu a.active:before{content:'';position:absolute;left:-12px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--red);transform:translateY(-50%)}

@media(max-width:1080px){
    .bs-layout{grid-template-columns:235px minmax(0,1fr)}
}
@media(max-width:780px){
    .bs-layout{display:block}
    .sidebar{
        position:fixed;
        top:0;
        bottom:0;
        left:-255px;
        width:235px;
        height:100vh;
        overflow:hidden;
        transition:left .2s ease;
    }
    .sidebar.open{left:0}
    .sidebar nav.bs-nav{overflow-y:auto}
}

/* V1.5 — gestão documental contextual */
.doc-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-5px 0 22px;font-size:11px;color:#8a8581}.doc-breadcrumb a{color:var(--red);text-decoration:none}.doc-breadcrumb span{color:#bbb4ae}.document-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.document-summary{background:#fff;border:1px solid var(--line);padding:18px}.document-summary span{display:block;color:#827c77;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.document-summary strong{display:block;font-family:var(--serif);font-size:25px;font-weight:400;margin-top:8px}.document-storage-state{font-family:var(--sans)!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.06em}.document-storage-state.ok{color:var(--green)}.document-storage-state.off{color:var(--red)}.process-context-card{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#171719;color:#fff;border-left:3px solid var(--red);margin:18px 0}.process-context-card>div{padding:16px 18px;border-right:1px solid #333}.process-context-card>div:last-child{border-right:0}.process-context-card span{display:block;color:#8d8884;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.process-context-card strong{font-size:11px;font-weight:500}.document-table td:first-child{min-width:280px}.document-table td:first-child small{font-family:monospace;font-size:9px;word-break:break-all}.doc-count-link{display:inline-flex;align-items:center;gap:5px!important;border:1px solid #ddd7d2;padding:6px 8px!important;color:#4f4b48!important;background:#fff;text-decoration:none!important}.doc-count-link:hover{border-color:var(--red);color:var(--red)!important}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.muted-copy a{color:var(--red);text-decoration:none}.form-grid input[readonly]{background:#eeeae7;color:#777}
@media(max-width:1000px){.document-summary-grid,.process-context-card{grid-template-columns:repeat(2,1fr)}.process-context-card>div:nth-child(2){border-right:0}}
@media(max-width:650px){.document-summary-grid,.process-context-card{grid-template-columns:1fr}.process-context-card>div{border-right:0;border-bottom:1px solid #333}.process-context-card>div:last-child{border-bottom:0}}
/* V1.7 — armazenamento documental principal + backup SFTP */
.nas-box dd{max-width:62%;text-align:right;overflow-wrap:anywhere;word-break:break-word}.diagnostic-list>div{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-top:1px solid #ece9e6}.diagnostic-list>div:first-child{border-top:0}.document-table .row-actions{min-width:220px}

/* V1.9 — agenda por cores, importação de clientes e estado de entrega SMTP */
.cal-item.event-color{border-left:4px solid var(--event-color,#8B1E2D);padding-left:8px;background:color-mix(in srgb,var(--event-color,#8B1E2D) 9%,#fff)}
.event-row{border-left:4px solid var(--event-color,#8B1E2D);padding-left:12px}
.event-color-dot{display:block;width:12px;height:12px;border-radius:50%;background:var(--event-color,#8B1E2D);margin:0 auto 6px}
.color-field{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:1px solid var(--line);background:#fff}
.color-field input[type=color]{width:46px;height:30px;padding:0;border:0;background:transparent;cursor:pointer}
.color-field span{font-size:11px;color:#6f6965;text-transform:none;letter-spacing:0;font-weight:500}
.event-delete-box{display:flex;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.danger-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border:1px solid #a21d27;border-radius:2px;background:#fff;color:#a21d27;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;cursor:pointer;transition:.16s ease}
.danger-btn:hover{background:#a21d27;color:#fff}
.email-delivery{display:grid;gap:6px;min-width:145px}
.email-delivery .status{width:max-content}
.email-delivery small{display:block;max-width:280px;color:#9d2029;line-height:1.4;overflow-wrap:anywhere}
.overview-event-dot{width:8px;height:8px;border-radius:50%;background:var(--event-color,#8B1E2D);align-self:center;flex:0 0 8px}


/* V1.10 — paleta fixa da agenda e gestão contextual de prazos */
.form-field{display:grid;gap:7px}.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#5e5a56}
.color-palette{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;min-height:44px;padding:8px 10px;border:1px solid var(--line);background:#fff}
.color-choice{display:grid!important;grid-template-columns:none!important;gap:4px!important;justify-items:center;min-width:42px;color:#6f6965!important;text-transform:none!important;letter-spacing:0!important;font-weight:500!important;font-size:9px!important;cursor:pointer}
.color-choice input{position:absolute;opacity:0;pointer-events:none}
.color-choice>span{width:28px;height:28px;border-radius:50%;background:var(--choice-color);border:3px solid #fff;box-shadow:0 0 0 1px #c9c5c1;transition:transform .15s ease,box-shadow .15s ease}
.color-choice input:checked+span{transform:scale(1.08);box-shadow:0 0 0 2px #171719}
.color-choice input:focus-visible+span{outline:2px solid var(--red);outline-offset:3px}
.color-choice small{font-size:8px;white-space:nowrap}
.deadline-link{display:block;color:inherit;text-decoration:none}
.deadline-link:hover{background:#fbe4e6}
.page-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.deadline-priority{display:inline-flex;align-items:center;gap:6px;font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.deadline-priority:before{content:'';width:5px;height:24px;background:#9a9692}
.deadline-priority.high:before{background:#c4770c}
.deadline-priority.critical:before{background:var(--red)}
@media(max-width:650px){.page-title-actions{width:100%;justify-content:flex-start}.color-palette{gap:8px}}

/* V1.11 — dossier único de processo e acesso de clientes */
.case-summary-grid .document-summary small{display:block;margin-top:6px;color:#8a8581;font-size:9px}.case-summary-status{font-family:var(--sans)!important;font-size:13px!important;font-weight:600!important}.case-detail-panel{margin-bottom:26px}.case-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.case-detail-grid>div{min-width:0;padding:15px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.case-detail-grid span{display:block;margin-bottom:6px;color:#8a8581;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.case-detail-grid strong{display:block;font-size:11px;font-weight:600;overflow-wrap:anywhere}.case-detail-grid p{margin:0;color:#57524f;font-size:11px;line-height:1.6}.case-detail-grid .span-all{grid-column:1/-1}.case-section{margin-top:34px;scroll-margin-top:20px}.case-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}.case-section-head h2{margin:4px 0 0;font-family:var(--serif);font-size:28px;font-weight:400}.case-section-head .muted-copy{margin:5px 0 0}.client-access-note{font-size:9px;color:#817b76;line-height:1.4}
@media(max-width:1050px){.case-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.case-detail-grid{grid-template-columns:1fr}.case-section-head{align-items:flex-start;flex-direction:column}}

.disabled-action{opacity:.45;cursor:not-allowed;pointer-events:none}
.calendar-overlap-note{margin:0}

/* V1.12 — perfis/permissões e ativação de acesso de cliente */
.role-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.role-tabs a{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border:1px solid var(--line);background:#fff;color:#4a4642;text-decoration:none;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.role-tabs a:hover,.role-tabs a.active{background:#171719;border-color:#171719;color:#fff}.permissions-form{margin-top:18px}.permissions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.permission-card{background:#fff;border:1px solid var(--line);min-width:0}.permission-card-head{padding:15px 17px;border-bottom:1px solid #ece9e6;background:#faf9f8}.permission-card-head h2{margin:0;font-family:var(--serif);font-size:20px;font-weight:400}.permission-options{display:grid}.permission-check{display:grid!important;grid-template-columns:auto 1fr!important;column-gap:10px!important;row-gap:3px!important;align-items:start;padding:11px 15px;border-bottom:1px solid #f0edeb;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;cursor:pointer}.permission-check:last-child{border-bottom:0}.permission-check input{grid-row:1/3;width:16px!important;height:16px!important;min-height:0!important;margin-top:1px}.permission-check span{font-size:11px;font-weight:600;color:#403c39}.permission-check code{font-size:9px;color:#9a948f;overflow-wrap:anywhere}.permission-check:has(input:checked){background:#fbf7f7}.permission-check input:disabled{cursor:not-allowed}.permission-savebar{position:sticky;bottom:0;z-index:10;display:flex;justify-content:flex-end;margin-top:18px;padding:14px 0;background:linear-gradient(to bottom,rgba(242,241,239,0),var(--bg) 35%)}

.access-activation-body{margin:0;background:#f3f1ef;color:#171719}.access-activation-shell{min-height:100vh;display:grid;grid-template-columns:minmax(380px,.95fr) minmax(460px,1.05fr)}.access-activation-brand{min-width:0;padding:48px clamp(34px,6vw,88px);background:radial-gradient(circle at 15% 12%,#2a2a2d 0,#141416 46%,#09090a 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.access-logo{display:block;width:min(390px,88%);text-decoration:none}.access-logo img{display:block;width:100%;height:auto;max-height:116px;object-fit:contain;object-position:left center}.access-brand-copy{max-width:690px;margin:70px 0}.access-brand-copy h1{font-family:var(--serif);font-size:clamp(48px,5vw,76px);font-weight:400;line-height:1.02;letter-spacing:-.035em;margin:16px 0 24px}.access-brand-copy>p:not(.overline){max-width:600px;margin:0;color:#aaa5a1;font-size:15px;line-height:1.8}.access-activation-brand>small{color:#716d69;font-size:10px}.access-activation-panel{display:grid;place-items:center;padding:44px clamp(24px,5vw,76px);background:#f3f1ef}.access-card{width:min(540px,100%);background:#fff;border-top:4px solid var(--red);padding:clamp(28px,5vw,48px);box-shadow:0 18px 45px rgba(33,29,27,.08)}.access-card h2{font-family:var(--serif);font-size:40px;line-height:1.1;font-weight:400;letter-spacing:-.025em;margin:8px 0 13px}.access-lead{margin:0 0 25px;color:#706a66;font-size:14px;line-height:1.7}.access-identity{display:grid;gap:4px;margin:0 0 23px;padding:16px 18px;background:#f7f5f3;border-left:3px solid var(--red)}.access-identity span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#8a8581}.access-identity strong{font-size:14px}.access-identity small{color:#77716d}.access-password-form{display:grid;gap:17px}.access-password-form label{display:grid;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#5e5a56}.access-password-form input{width:100%;min-height:50px;padding:12px 14px;border:1px solid #cbc7c3;background:#fff;color:#222;border-radius:2px;outline:none;font-size:16px}.access-password-form input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(180,15,26,.08)}.access-password-help{display:grid;gap:4px;padding:13px 15px;background:#f7f5f3;color:#77716d;font-size:11px;line-height:1.55}.access-password-help strong{color:#47423f}.access-primary{width:100%;margin-top:3px}.access-security-note{margin:18px 0 0;text-align:center;color:#99928d;font-size:10px;line-height:1.5}
@media(max-width:980px){.permissions-grid{grid-template-columns:1fr}.access-activation-shell{grid-template-columns:1fr}.access-activation-brand{min-height:auto;padding:30px 28px}.access-brand-copy{display:none}.access-activation-brand>small{display:none}.access-logo{width:min(310px,82%)}.access-activation-panel{padding:30px 18px 55px}.access-card{padding:28px}.access-card h2{font-size:34px}}

/* V1.13 — identidade, botões, agenda compacta e feedback flutuante */
.login-logo{display:block;width:min(420px,82%);text-decoration:none}.login-logo img{display:block;width:100%;height:auto;max-height:125px;object-fit:contain;object-position:left center}.login-brand .login-logo{margin-bottom:24px}

/* Botões uniformes: preto para ações normais; vermelho reservado a ações críticas. */
.primary-btn,.secondary-btn,.danger-btn,.action-btn,.row-actions>a,.row-actions button.text-action,.row-actions .text-action,.user-menu>a,.client-header-btn,.icon-btn{
    border-radius:2px;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease
}
.primary-btn{background:#171719;border:1px solid #171719;color:#fff}.primary-btn:hover{background:#303034;border-color:#303034;color:#fff;transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,0,0,.10)}
.secondary-btn{background:#fff;border:1px solid #c9c4bf;color:#333}.secondary-btn:hover{background:#171719;border-color:#171719;color:#fff;transform:translateY(-1px)}
.danger-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border:1px solid #a21d27;border-radius:2px;background:#fff;color:#a21d27;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;cursor:pointer;text-decoration:none}.danger-btn:hover{background:#a21d27;border-color:#a21d27;color:#fff;transform:translateY(-1px);box-shadow:0 5px 14px rgba(162,29,39,.14)}
.action-btn,.row-actions>a,.row-actions button.text-action,.row-actions .text-action{background:#fff!important;border:1px solid #d2ceca!important;color:#3e3a37!important;text-decoration:none!important}.action-btn:hover,.row-actions>a:hover,.row-actions button.text-action:hover,.row-actions .text-action:hover{background:#171719!important;border-color:#171719!important;color:#fff!important;transform:translateY(-1px)}
.action-btn.danger,.row-actions .danger-action{background:#fff!important;border-color:#dfc6c8!important;color:#9d2029!important}.action-btn.danger:hover,.row-actions .danger-action:hover{background:#9d2029!important;border-color:#9d2029!important;color:#fff!important}
.table-card td a.action-btn{color:#3e3a37}.table-card td a.action-btn:hover{color:#fff}.table-card td a.action-btn.danger{color:#9d2029}.table-card td a.action-btn.danger:hover{color:#fff}
button:disabled,.primary-btn:disabled,.secondary-btn:disabled,.danger-btn:disabled,.action-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.icon-btn:hover{background:#303034;color:#fff}.user-menu>a{color:#3e3a37;background:#fff}.user-menu>a:hover{background:#171719;border-color:#171719;color:#fff}.form-actions .primary-btn,.form-actions .secondary-btn,.form-actions .danger-btn{min-width:118px}

/* Agenda: formulário mais compacto e horizontal em desktop. */
.calendar-modal-card{width:min(980px,100%);padding:20px 22px}.calendar-modal-card .modal-head{margin-bottom:15px}.calendar-modal-card .modal-head h2{font-size:29px}.calendar-event-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.calendar-event-form .span-2{grid-column:1/-1}.calendar-event-form .stack-form label,.calendar-event-form label{gap:5px}.calendar-event-form input,.calendar-event-form select,.calendar-event-form textarea{min-height:38px;padding:8px 10px}.calendar-event-form .calendar-title-field{grid-column:1/-1}.calendar-event-form .form-field{min-width:0}.calendar-event-form .color-palette{min-height:38px;padding:5px 7px;gap:7px;align-items:center}.calendar-event-form .color-choice{min-width:34px;gap:2px!important}.calendar-event-form .color-choice>span{width:23px;height:23px}.calendar-event-form .color-choice small{font-size:7px}.calendar-event-form .calendar-overlap-note{grid-column:3;margin:0;padding:9px 11px;font-size:10px;align-self:stretch}.calendar-event-form .calendar-participants{grid-column:3;padding:10px}.calendar-event-form .calendar-participants .check-grid{grid-template-columns:1fr;gap:5px;max-height:108px;overflow:auto}.calendar-event-form .calendar-description{grid-column:1/-1}.calendar-event-form .form-actions{grid-column:1/-1;margin-top:0}.calendar-modal-card .event-delete-box{margin-top:10px;padding-top:10px}

/* Notificações como pequenas páginas flutuantes. */
.ui-toast-stack{position:fixed;top:88px;right:28px;z-index:450;display:grid;gap:10px;width:min(410px,calc(100vw - 32px));pointer-events:none}.login-body .ui-toast-stack,.access-activation-body .ui-toast-stack{top:24px}.ui-toast{pointer-events:auto;position:relative;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;background:#fff;border:1px solid #dedbd8;border-top:4px solid #777;padding:18px 18px 16px;box-shadow:0 18px 45px rgba(20,18,17,.18);animation:vmToastIn .18s ease-out}.ui-toast.success{border-top-color:var(--green)}.ui-toast.warning{border-top-color:var(--amber)}.ui-toast.error{border-top-color:var(--red)}.ui-toast strong{display:block;font-family:var(--serif);font-size:20px;font-weight:400;margin:0 0 5px}.ui-toast p{margin:0;color:#68635f;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.ui-toast button{width:30px;height:30px;border:0;background:#f0eeec;color:#504c49;font-size:19px;line-height:1;cursor:pointer}.ui-toast button:hover{background:#171719;color:#fff}.ui-toast.is-closing{opacity:0;transform:translateY(-8px);transition:.18s ease}
@keyframes vmToastIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* Confirmações próprias da aplicação; substituem confirm() do browser. */
.ui-confirm-layer{display:none;position:fixed;inset:0;z-index:500;background:rgba(10,10,11,.52);padding:20px;align-items:center;justify-content:center}.ui-confirm-layer.open{display:flex}.ui-confirm-card{width:min(430px,100%);background:#fff;border-top:4px solid var(--red);box-shadow:0 24px 60px rgba(0,0,0,.26);padding:26px}.ui-confirm-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid #dfc6c8;color:var(--red);font-family:var(--serif);font-size:24px;margin-bottom:16px}.ui-confirm-copy h2{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1;margin:4px 0 10px}.ui-confirm-copy>p:last-child{margin:0;color:#68635f;line-height:1.6;font-size:13px}.ui-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}

/* Área de Cliente */
.client-download-btn{display:inline-flex!important;margin-top:7px}.client-header-logo img{max-height:58px}

@media(max-width:900px){.calendar-event-form{grid-template-columns:1fr 1fr}.calendar-event-form .calendar-overlap-note,.calendar-event-form .calendar-participants{grid-column:auto}.calendar-event-form .calendar-title-field,.calendar-event-form .calendar-description,.calendar-event-form .form-actions{grid-column:1/-1}.ui-toast-stack{top:18px;right:16px}}
@media(max-width:650px){.calendar-event-form{grid-template-columns:1fr}.calendar-event-form .calendar-overlap-note,.calendar-event-form .calendar-participants,.calendar-event-form .calendar-title-field,.calendar-event-form .calendar-description,.calendar-event-form .form-actions{grid-column:1}.calendar-modal-card{padding:18px}.ui-toast-stack{left:16px;right:16px;width:auto}.ui-confirm-actions{flex-direction:column-reverse}.ui-confirm-actions .secondary-btn,.ui-confirm-actions .danger-btn{width:100%}.login-logo{width:min(330px,88%)}}


/* V1.13.1 — paleta de ações e refinamento dos logins */
:root{--bordeaux:#761923;--bordeaux-dark:#5f111a;--critical:#b40f1a;--critical-dark:#8f0c15}

/* Recupera o vermelho/bordeaux como linguagem principal de ação. */
.primary-btn{background:var(--red)!important;border:1px solid var(--red)!important;color:#fff!important}
.primary-btn:hover{background:var(--red2)!important;border-color:var(--red2)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 5px 14px rgba(147,16,25,.16)}
.secondary-btn{background:#fff!important;border:1px solid #b9a7a9!important;color:var(--bordeaux)!important}
.secondary-btn:hover{background:#f5e9eb!important;border-color:var(--bordeaux)!important;color:var(--bordeaux-dark)!important;transform:translateY(-1px);box-shadow:none}
.action-btn,.row-actions>a,.row-actions button.text-action,.row-actions .text-action{background:#fff!important;border:1px solid #cbb8bb!important;color:var(--bordeaux)!important}
.action-btn:hover,.row-actions>a:hover,.row-actions button.text-action:hover,.row-actions .text-action:hover{background:var(--bordeaux)!important;border-color:var(--bordeaux)!important;color:#fff!important;transform:translateY(-1px)}
.action-btn.danger,.row-actions .danger-action,.danger-btn{background:var(--critical)!important;border-color:var(--critical)!important;color:#fff!important}
.action-btn.danger:hover,.row-actions .danger-action:hover,.danger-btn:hover{background:var(--critical-dark)!important;border-color:var(--critical-dark)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 5px 14px rgba(143,12,21,.18)}
.table-card td a.action-btn{color:var(--bordeaux)!important}.table-card td a.action-btn:hover{color:#fff!important}.table-card td a.action-btn.danger{color:#fff!important}.table-card td a.action-btn.danger:hover{color:#fff!important}
.user-menu>a{color:var(--bordeaux)!important;background:#fff!important;border-color:#cbb8bb!important}.user-menu>a:hover{background:var(--bordeaux)!important;border-color:var(--bordeaux)!important;color:#fff!important}
.icon-btn{background:#292729!important;border:1px solid #292729!important;color:#fff!important}.icon-btn:hover{background:var(--bordeaux)!important;border-color:var(--bordeaux)!important;color:#fff!important}
.client-download-btn{color:var(--bordeaux)!important}.client-download-btn:hover{color:#fff!important}

/* Logótipos maiores nos ecrãs de autenticação. */
.login-logo{width:min(525px,94%)!important}.login-logo img{max-height:158px!important}.login-brand .login-logo{margin-bottom:26px}
.login-brand>.overline,.login-brand div>.overline.red{color:var(--red)}
.login-brand>small{line-height:1.5}

@media(max-width:650px){.login-logo{width:min(410px,94%)!important}.login-logo img{max-height:132px!important}}

/* V1.13.3 — autenticação unificada: BackStage, Área de Cliente e definição de password */
.login-shell.auth-shell,.login-shell{grid-template-columns:1.05fr .95fr}
.login-brand.auth-brand,.login-brand{padding:52px clamp(42px,7vw,108px)}
.login-logo{width:min(640px,100%)!important;max-width:100%;margin-bottom:28px!important}
.login-logo img{width:100%!important;max-height:190px!important;object-fit:contain!important;object-position:left center!important}
.login-brand h1{max-width:760px}
.login-panel.auth-panel,.login-panel{padding:34px clamp(30px,5vw,72px)}
.login-box.auth-box,.login-box{width:min(460px,100%)}
.auth-box .access-lead{margin:0 0 22px;color:#706a66;font-size:14px;line-height:1.65}
.auth-box .access-identity{margin-bottom:20px}
.auth-password-form{gap:16px}
.auth-password-form .access-password-help{margin-top:-2px}
.auth-full-btn{width:100%;margin-top:8px}

@media(max-width:980px){
  .login-logo{width:min(570px,100%)!important}.login-logo img{max-height:170px!important}
}
@media(max-width:780px){
  .login-shell.auth-shell,.login-shell{grid-template-columns:1fr}
  .login-brand.auth-brand,.login-brand{display:flex!important;min-height:auto;padding:28px 24px 30px;gap:24px}
  .login-logo{width:min(500px,100%)!important;margin-bottom:4px!important}.login-logo img{max-height:145px!important}
  .login-brand h1{font-size:clamp(36px,9vw,50px);margin:10px 0 16px}
  .login-brand p:not(.overline){font-size:14px;line-height:1.6;margin-bottom:0}
  .login-brand>small{display:block!important}
  .login-panel.auth-panel,.login-panel{min-height:auto;padding:38px 22px 52px}
}
@media(max-width:520px){
  .login-logo{width:100%!important}.login-logo img{max-height:124px!important}
  .login-brand h1{font-size:36px}
}

/* V1.15 — gestão visual do FrontOffice */
.media-admin-preview{min-height:150px;border:1px dashed #d6d0cb;background:#f6f3f1;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:10px}
.media-admin-preview img{width:100%;height:220px;object-fit:cover;display:block}
.media-admin-preview.portrait-preview img{height:320px;object-fit:contain;background:#ece8e4}
.media-admin-preview.publication-preview img{height:300px;object-fit:contain;background:#ece8e4}
.media-admin-preview.media-banner-preview img{height:190px;object-fit:cover}
.image-empty{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#938a84}
.table-thumb{width:92px;height:58px;border-radius:6px;overflow:hidden;background:#f0ece9;display:grid;place-items:center}
.table-thumb.portrait{width:56px;height:72px}
.table-thumb.publication-thumb{width:54px;height:76px}
.table-thumb img{width:100%;height:100%;object-fit:cover;display:block}.table-thumb.publication-thumb img{object-fit:contain}
.table-thumb .image-empty{font-size:8px;text-align:center;padding:5px}
.media-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.media-admin-grid article{border:1px solid #e1dbd6;background:#fff;border-radius:12px;overflow:hidden}
.media-admin-card-image{height:180px;background:#f3efec;display:grid;place-items:center;overflow:hidden}
.media-admin-card-image img{width:100%;height:100%;object-fit:cover}
.media-admin-grid article>div:last-child{padding:16px;display:grid;gap:10px}.media-admin-grid small{color:#817872}
@media(max-width:1050px){.media-admin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.media-admin-grid{grid-template-columns:1fr}}

/* V1.16 — gestão de sliders por página */
.website-slider-admin{margin:0 0 26px}.website-slider-admin .panel-head{align-items:flex-start}.panel-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compact-table{margin-top:18px}.compact-table table{margin:0}.compact-table .table-thumb{width:110px;height:64px}.compact-table td{vertical-align:middle}
@media(max-width:760px){.panel-head-actions{width:100%;justify-content:flex-start}.compact-table{overflow-x:auto}.compact-table table{min-width:760px}}


/* V1.17 — BackStage mais amplo e legível */
.bs-layout{grid-template-columns:285px minmax(0,1fr)}
.sidebar{padding:24px 18px 16px}
.sidebar .bs-brand.bs-brand-logo{padding-left:7px;padding-right:7px}
.sidebar .bs-brand-logo img{max-width:238px;height:86px}
.sidebar .bs-brand-logo small{font-size:10px;letter-spacing:.23em}
.nav-group-title strong,.sidebar nav>a.nav-link{font-size:12px}
.sidebar .nav-submenu a{font-size:11.5px;min-height:34px;padding:8px 9px}
.nav-submenu{padding-left:45px}
.form-section-title{margin:10px 0 0;padding:12px 0 8px;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:24px;font-weight:400;color:#2a2725}
@media(max-width:1080px){.bs-layout{grid-template-columns:255px minmax(0,1fr)}.sidebar .bs-brand-logo img{max-width:216px}}
@media(max-width:780px){.sidebar{left:-285px;width:265px}.sidebar.open{left:0}.sidebar .bs-brand-logo img{max-width:225px}}
.seo-admin-block{border-top:1px solid #ded8d5;padding-top:22px;margin-top:8px}.seo-admin-block:first-of-type{border-top:0;padding-top:0}.seo-admin-block .panel-head{margin-bottom:14px}

/* V1.20 — importação do arquivo antigo */
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.page-actions .inline-form{display:inline-flex}.page-actions .secondary-btn,.page-actions .primary-btn{white-space:nowrap}

/* V1.20.8 — associação Equipa ↔ Áreas de Prática */
.practice-area-help{margin:0 0 12px;text-transform:none;letter-spacing:0;font-weight:400}.practice-area-picker{gap:10px 18px}.practice-area-picker .check{padding:8px 10px;border:1px solid #ddd8d4;background:#fff;border-radius:2px}.practice-area-picker .check:hover{border-color:#b40f1a;background:#fbf2f3}.practice-area-picker .check input:checked+span{color:#931019;font-weight:700}

/* V1.24 — reorganização do menu lateral e identificação do BackStage */
.nav-separator{height:1px;background:#323235;margin:12px 10px 10px;opacity:.95}
.top-identity{display:flex;flex-direction:column;gap:5px;min-width:0}
.top-identity>strong{font-size:12px;letter-spacing:.045em;font-weight:600;color:#252224;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-identity>span{font-size:10px;letter-spacing:.035em;color:#8a8581;white-space:nowrap}
@media(max-width:780px){.top-identity>strong{font-size:11px}.top-identity>span{font-size:9px}}
@media(max-width:560px){.top-identity>span{display:none}}


/* V1.25 — colunas de ações uniformizadas e centradas. */
.table-card th.actions-column{text-align:center!important}
.table-card table:has(th.actions-column) tbody td:last-child{text-align:center!important;vertical-align:middle}
.table-card table:has(th.actions-column) tbody td:last-child .row-actions{display:flex;flex-direction:row!important;align-items:center;justify-content:center!important;gap:7px;flex-wrap:wrap;margin:0}
.table-card table:has(th.actions-column) tbody td:last-child .row-actions .inline-form{display:inline-flex;margin:0}
.table-card table:has(th.actions-column) tbody td:last-child .row-actions>a,
.table-card table:has(th.actions-column) tbody td:last-child .row-actions button{white-space:nowrap}

/* V1.26 — Gestão Website: conteúdo mais compacto e coerente */
.website-content-panel{margin-top:22px}
.website-content-form{display:block}
.website-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.content-edit-block{min-width:0;border:1px solid var(--line);background:#fbfaf9;padding:17px 18px 18px}
.content-edit-block h3{margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid #e4dfdc;font-family:var(--serif);font-size:22px;font-weight:400;color:#292624}
.compact-form-grid{gap:12px 14px}
.compact-form-grid label{min-width:0}
.compact-form-grid input,.compact-form-grid textarea{min-height:39px}
.compact-form-grid textarea{line-height:1.45}
.website-content-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:1050px){.website-content-grid{grid-template-columns:1fr}}
@media(max-width:780px){.compact-form-grid{grid-template-columns:1fr}.compact-form-grid .span-2{grid-column:auto}.content-edit-block{padding:15px}}

/* V1.27 — Homepage compacta: imagens integradas no conteúdo e cartões alinhados */
.homepage-content-grid{align-items:stretch}
.homepage-content-grid>.content-edit-block{height:100%}
.homepage-content-grid .span-full{grid-column:1/-1}
.homepage-texts-form{display:contents}
.homepage-media-block{height:auto!important}
.homepage-media-form{align-items:start}
.homepage-media-item{min-width:0;display:grid;gap:12px;align-content:start}
.homepage-media-item h4{margin:0;font-family:var(--serif);font-size:18px;font-weight:400;color:#292624}
.homepage-media-item .media-admin-preview{margin:0;min-height:165px}
.homepage-media-item textarea{min-height:92px}
.homepage-media-actions{margin-top:0;padding-top:4px;border-top:1px solid #e4dfdc}
.homepage-content-grid .content-edit-block:not(.homepage-media-block){display:flex;flex-direction:column}
.homepage-content-grid .content-edit-block:not(.homepage-media-block) .compact-form-grid{flex:1;align-content:start}
.three-col-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.compact-horizontal-block{height:auto!important}
@media(max-width:1050px){.homepage-content-grid .span-full{grid-column:auto}.homepage-texts-form{display:contents}.three-col-form{grid-template-columns:1fr 1fr}.compact-horizontal-block{grid-column:auto}}
@media(max-width:780px){.homepage-media-form,.three-col-form{grid-template-columns:1fr}.homepage-media-form .span-2,.three-col-form .span-2{grid-column:auto}}

/* V1.28 — Sociedade: desenho compacto em duas colunas sem espaços vazios entre cartões */
.society-content-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.society-content-column{display:flex;flex-direction:column;gap:16px;min-width:0}
.society-content-column .content-edit-block{width:100%}
.society-content-column textarea{resize:vertical}
@media(max-width:1050px){.society-content-columns{grid-template-columns:1fr}}

/* V1.29 — Publicações / Notícias: ações sempre na mesma linha */
.website-editorial-table th.actions-column,
.website-editorial-table td:last-child{min-width:300px;width:300px}
.website-editorial-table .row-actions{display:flex!important;flex-flow:row nowrap!important;justify-content:center!important;align-items:center!important;gap:7px!important;margin:0!important;white-space:nowrap}
.website-editorial-table .row-actions .inline-form{display:inline-flex!important;flex:0 0 auto;margin:0!important}
.website-editorial-table .row-actions>a,
.website-editorial-table .row-actions button{flex:0 0 auto;white-space:nowrap!important}
@media(max-width:1100px){
  .website-editorial-table{overflow-x:auto}
  .website-editorial-table table{min-width:1050px}
}


/* V1.30 — Contactos: cartões 50/50 e ações alinhadas no fundo */
.contact-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.contact-settings-panel{position:relative;padding-bottom:86px;min-width:0}
.contact-settings-panel .form-actions{position:absolute;right:24px;bottom:24px;left:24px;justify-content:flex-end;margin:0}
@media(max-width:1100px){.contact-settings-grid{grid-template-columns:1fr}.contact-settings-panel{padding-bottom:24px}.contact-settings-panel .form-actions{position:static;margin-top:6px}}

/* V1.31 — Gestão do Rodapé */
.footer-groups-admin{margin-bottom:26px}
.footer-links-admin-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 16px}
.footer-links-admin-heading h2{margin:4px 0 0}
.footer-group-cards{display:grid;grid-template-columns:1fr;gap:20px}
.footer-link-group-card{margin:0}
.footer-link-group-card .panel-head{align-items:flex-end}
.footer-link-group-card .table-card{margin-top:14px}
@media(max-width:900px){.footer-groups-admin .table-card,.footer-link-group-card .table-card{overflow-x:auto}}

/* V1.32 — SEO e Partilhas em cartões de duas colunas */
.seo-admin-form{display:block}
.seo-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.seo-admin-card{margin:0;min-width:0}
.seo-admin-card .panel-head{margin-bottom:16px}
.seo-card-fields{display:grid;gap:12px}
.seo-language-row{display:grid;grid-template-columns:38px minmax(0,.78fr) minmax(0,1.22fr);gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}
.seo-language-row:first-child{border-top:0;padding-top:0}
.seo-language-tag{display:flex;align-items:center;justify-content:center;min-height:39px;border:1px solid #d9d3cf;background:#f7f5f3;color:var(--red);font-size:10px;font-weight:700;letter-spacing:.08em}
.seo-card-fields label{display:grid;gap:7px;min-width:0;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#5e5a56}
.seo-card-fields input:not([type="checkbox"]):not([type="file"]),.seo-card-fields textarea,.seo-card-fields select{width:100%;min-width:0;box-sizing:border-box;border:1px solid #cbc7c3;background:#fff;padding:10px 12px;color:#222;outline:none}
.seo-card-fields input:not([type="checkbox"]):not([type="file"]){min-height:39px}
.seo-card-fields textarea{min-height:86px;line-height:1.45;resize:vertical}
.seo-card-fields input:focus,.seo-card-fields textarea:focus{border-color:var(--red);box-shadow:0 0 0 2px rgba(180,15,26,.06)}
.seo-card-fields small{font-size:10px;text-transform:none;letter-spacing:0;font-weight:400;color:#8b8682}
.seo-image-row{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);gap:14px;align-items:start;padding-top:14px;border-top:1px solid var(--line)}
.seo-image-row .media-admin-preview{margin:0;min-height:118px}
.seo-image-fields{display:grid;gap:12px;min-width:0}
.seo-image-fields input[type="file"]{width:100%;max-width:100%;font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}
.seo-image-fields .check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:400}
.seo-image-fields .check input{margin:0}
.seo-card-actions{margin-top:16px;padding-top:14px;border-top:1px solid #e8e2df;justify-content:flex-end}.seo-admin-actions{margin-top:20px;justify-content:flex-end}
@media (max-width:1180px){.seo-language-row{grid-template-columns:34px 1fr}.seo-language-row label:last-child{grid-column:2}.seo-image-row{grid-template-columns:1fr}}
@media (max-width:980px){.seo-admin-grid{grid-template-columns:1fr}}
@media (max-width:620px){.seo-language-row{grid-template-columns:1fr}.seo-language-tag{width:42px}.seo-language-row label:last-child{grid-column:auto}}

/* V1.32.6 — Gestão de Armazenamento */
.storage-overview-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.storage-overview-panel{height:100%}
.storage-config-panel{padding-top:22px;padding-bottom:22px}
.storage-config-panel .panel-head{margin-bottom:14px}
.storage-config-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.storage-config-grid .span-3{grid-column:1/-1}
.storage-config-grid label small{margin-top:4px}
.storage-config-panel .notice-box{margin-top:14px!important}
@media(max-width:1100px){.storage-overview-grid{grid-template-columns:1fr 1fr}.storage-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.storage-config-grid .span-3{grid-column:1/-1}}
@media(max-width:780px){.storage-overview-grid{grid-template-columns:1fr}.storage-config-grid{grid-template-columns:1fr}.storage-config-grid .span-3{grid-column:auto}}

.smtp-grid{grid-template-columns:1fr 1fr}.smtp-grid>.panel{height:100%;display:flex;flex-direction:column}.diagnostic-panel .diagnostic-form{margin-top:auto;padding-top:18px}.compact-email-template{padding:20px 24px}.compact-email-template .panel-head{margin-bottom:10px}.compact-email-template .muted-copy{margin:0 0 14px}.compact-email-template .form-grid{gap:12px 16px}.compact-email-template textarea{min-height:70px;resize:vertical}.compact-email-template .form-actions{margin-top:2px}.compact-compat{margin:12px 0 0!important;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:900px){.smtp-grid{grid-template-columns:1fr}.smtp-grid>.panel{height:auto}}

/* V1.32.8 — Gestão de SMTP e E-mails: composição 2 colunas */
.smtp-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:stretch}
.smtp-left-column{display:flex;flex-direction:column;gap:18px;min-width:0}
.smtp-left-column>.panel{width:100%}
.smtp-client-panel{height:100%;display:flex;flex-direction:column;margin-top:0!important;min-width:0}
.smtp-client-panel form{display:grid;flex:1;align-content:start}
.smtp-client-panel .form-actions{margin-top:auto;padding-top:12px}
.smtp-client-panel textarea{min-height:110px}
@media(max-width:900px){.smtp-workspace{grid-template-columns:1fr}.smtp-client-panel{height:auto}.smtp-client-panel textarea{min-height:80px}}

/* V1.32.9 — SMTP: cartão Área de Cliente a toda a largura e ação no fundo */
.smtp-client-panel .compact-compat{margin:0 0 16px!important;padding:10px 0 14px;border-top:0;border-bottom:1px solid var(--line)}
.smtp-client-panel .smtp-client-form{display:flex;flex-direction:column;gap:13px;flex:1}
.smtp-client-panel .smtp-client-form>label{width:100%;display:block}
.smtp-client-panel .smtp-client-form textarea{width:100%;min-height:118px}
.smtp-client-panel .smtp-client-form .form-actions{margin-top:auto;padding-top:16px}

/* V1.32.13 — Gestão de Arquivo Documental */
.storage-overview-grid{grid-template-columns:1fr 1fr;align-items:stretch}
.storage-overview-grid>.panel{height:100%}
.storage-config-panel{padding:20px 24px}
.storage-config-panel .panel-head{margin-bottom:12px}
.storage-config-grid{grid-template-columns:160px 120px minmax(150px,.7fr) minmax(220px,1.3fr);gap:10px 14px;align-items:start}
.storage-config-grid .storage-full{grid-column:1/-1}
.storage-config-grid .storage-protocol{grid-column:1}
.storage-config-grid .storage-port{grid-column:2}
.storage-config-grid .storage-timeout{grid-column:3}
.storage-config-grid .storage-host{grid-column:1/3}
.storage-config-grid .storage-user{grid-column:3/-1}
.storage-config-grid .storage-password{grid-column:1/3}
.storage-config-grid .storage-clear{grid-column:3/-1;align-self:end;min-height:38px}
.storage-config-grid input,.storage-config-grid select{min-height:38px;padding:8px 10px}
.storage-config-grid label{gap:5px}
.storage-config-grid label small{margin-top:1px;line-height:1.35}
.storage-config-panel .form-actions{margin-top:2px}
.storage-config-panel .notice-box{margin-top:12px!important;padding-top:12px;padding-bottom:12px}
@media(max-width:1100px){.storage-overview-grid{grid-template-columns:1fr 1fr}.storage-config-grid{grid-template-columns:1fr 1fr}.storage-config-grid .storage-protocol,.storage-config-grid .storage-port,.storage-config-grid .storage-timeout,.storage-config-grid .storage-host,.storage-config-grid .storage-user,.storage-config-grid .storage-password,.storage-config-grid .storage-clear{grid-column:auto}.storage-config-grid .storage-full{grid-column:1/-1}}
@media(max-width:780px){.storage-overview-grid{grid-template-columns:1fr}.storage-config-grid{grid-template-columns:1fr}.storage-config-grid .storage-full{grid-column:auto}}
