/* C-GESTUS APM v2.3.2 · Radial Fine Alignment
   Mantém o motor geométrico estável do v2.2.9 e altera apenas apresentação.
   Referência: radial escuro, setor ativo azul, cartões glass e fundo desfocado. */

:root{
    --v231-cyan:#1aa8ef;
    --v231-cyan-2:#047fd0;
    --v231-cyan-soft:#7fddff;
    --v231-navy:#203541;
    --v231-navy-2:#182b36;
    --v231-text:#f5fbff;
    --v231-muted:#b7c7d0;
    --v231-line:rgba(83,197,249,.68);
    --v231-card:rgba(31,50,61,.94);
    --v231-card-border:rgba(169,218,239,.44);
}

/* O hub antigo fica apenas como fonte de links e permissões. */
body.v231-enabled [data-hub-menu]{display:none!important}

/* C central: único launcher, arrastável quando fechado, abre/fecha quando clicado. */
body.v231-enabled .v223-floating-menu{
    position:fixed!important;
    left:var(--v231-launcher-x,48px)!important;
    top:var(--v231-launcher-y,56%)!important;
    right:auto!important;bottom:auto!important;
    width:60px!important;height:60px!important;
    min-width:60px!important;min-height:60px!important;
    padding:0!important;margin:0!important;
    display:grid!important;place-items:center!important;
    border:2px solid rgba(141,203,231,.82)!important;
    border-radius:50%!important;
    background:radial-gradient(circle at 35% 28%,#fff 0,#f9fcfe 60%,#e2eef4 100%)!important;
    box-shadow:
        0 12px 34px rgba(5,31,47,.30),
        0 0 0 6px rgba(56,162,214,.14),
        inset 0 0 0 1px rgba(255,255,255,.9)!important;
    transform:translate(-50%,-50%)!important;
    z-index:289!important;
    cursor:grab!important;
    touch-action:none!important;
    user-select:none!important;-webkit-user-select:none!important;
    -webkit-tap-highlight-color:transparent!important;
    transition:left .24s cubic-bezier(.2,.78,.2,1),top .24s cubic-bezier(.2,.78,.2,1),width .18s ease,height .18s ease,box-shadow .18s ease!important;
    overflow:hidden!important;
}
body.v231-enabled .v223-floating-menu:hover,
body.v231-enabled .v223-floating-menu:focus-visible{
    outline:none!important;
    box-shadow:0 14px 40px rgba(5,31,47,.34),0 0 0 8px rgba(33,171,231,.17),inset 0 0 0 1px rgba(255,255,255,.95)!important;
}
body.v231-enabled .v223-floating-menu.is-dragging{cursor:grabbing!important;transition:none!important}
body.v231-enabled .v223-floating-menu.is-menu-open{
    width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;
    cursor:pointer!important;
    border-color:rgba(124,213,250,.94)!important;
    box-shadow:0 14px 42px rgba(4,35,53,.38),0 0 0 8px rgba(35,170,230,.18),0 0 32px rgba(38,176,234,.20)!important;
}
body.v231-enabled .v223-floating-menu .v223-floating-ring,
body.v231-enabled .v223-floating-menu small{display:none!important}
body.v231-enabled .v223-floating-menu img{
    width:43px!important;height:43px!important;display:block!important;object-fit:contain!important;
    filter:none!important;transform:none!important;opacity:1!important
}
body.v231-enabled .v223-floating-menu.is-menu-open img{width:49px!important;height:49px!important}

/* Fundo: a aplicação continua reconhecível, mas deixa de ser legível. */
.v231-backdrop{
    position:fixed;inset:0;z-index:260;
    background:rgba(225,233,237,.34);
    -webkit-backdrop-filter:blur(8px) saturate(.82) brightness(1.00);
    backdrop-filter:blur(8px) saturate(.82) brightness(1.00);
    opacity:0;pointer-events:none;
    transition:opacity .18s ease;
}
.v231-backdrop.is-open{opacity:1;pointer-events:auto}
html[data-theme="dark"] .v231-backdrop{
    background:rgba(5,18,27,.34);
    -webkit-backdrop-filter:blur(8px) saturate(.78) brightness(.94);
    backdrop-filter:blur(8px) saturate(.78) brightness(.94);
}

/* Um único root e uma única transformação para tudo. */
.v231-radial-root{
    --v231-scale:.9;
    position:fixed;
    left:var(--v231-hub-x,58px);top:var(--v231-hub-y,50%);
    width:760px;height:760px;
    transform:translate(-50%,-50%) scale(var(--v231-scale));
    transform-origin:50% 50%;
    z-index:270;pointer-events:none;
    opacity:0;visibility:hidden;
    transition:opacity .16s ease,visibility 0s linear .16s;
    contain:layout style;
}
.v231-radial-root.is-open{opacity:1;visibility:visible;transition:opacity .18s ease}
.v231-radial-svg{position:absolute;inset:0;width:760px;height:760px;overflow:visible;pointer-events:none}

/* Setores principais */
.v231-main-segment{
    fill:rgba(28,48,60,.94);
    stroke:rgba(145,196,219,.44);
    stroke-width:1.25;
    pointer-events:auto;cursor:pointer;
    filter:drop-shadow(0 10px 16px rgba(6,28,40,.16));
    transition:fill .15s ease,stroke .15s ease,filter .15s ease;
}
.v231-main-segment:hover{
    fill:rgba(34,61,76,.97);
    stroke:rgba(106,205,247,.76);
    filter:drop-shadow(0 11px 18px rgba(4,35,53,.24));
}
.v231-main-segment.is-active{
    fill:url(#v231-main-active);
    stroke:rgba(215,247,255,.98);
    stroke-width:1.7;
    filter:drop-shadow(0 10px 18px rgba(0,129,204,.35));
}
html[data-theme="dark"] .v231-main-segment{fill:rgba(24,43,54,.96)}
html[data-theme="dark"] .v231-main-segment.is-active{fill:url(#v231-main-active-dark)}

.v231-main-label{
    position:absolute;left:var(--v231-x);top:var(--v231-y);
    width:128px;min-height:50px;
    transform:translate(-50%,-50%);
    border:0;background:transparent;padding:4px 6px;
    display:grid;grid-template-columns:23px minmax(0,1fr);align-items:center;gap:6px;
    text-align:left;color:var(--v231-text);
    cursor:pointer;pointer-events:auto;border-radius:14px;
    -webkit-tap-highlight-color:transparent;
}
.v231-main-label:hover,.v231-main-label:focus-visible{
    background:rgba(255,255,255,.055);outline:1px solid rgba(112,210,250,.24)
}
.v231-main-label>.apm-icon,.v231-main-label>.v231-fallback-icon{
    width:20px;height:20px;color:var(--v231-cyan);display:grid;place-items:center;font-size:16px
}
.v231-main-label strong{
    display:block;font-size:12.5px;line-height:1.02;font-weight:850;letter-spacing:.004em;text-transform:uppercase;white-space:nowrap
}
.v231-main-label small{
    display:block;margin-top:3px;font-size:7px;line-height:1.05;color:#b5c8d2;font-weight:650;white-space:nowrap
}
.v231-main-label.is-active strong,.v231-main-label.is-active small{color:#fff}
.v231-main-label.is-active>.apm-icon{color:#e8faff;filter:drop-shadow(0 0 8px rgba(255,255,255,.28))}

/* Ligações e nós luminosos */
.v231-branch-connectors{pointer-events:none}
.v231-branch-connectors path{
    fill:none;stroke:var(--v231-line);stroke-width:1.45;stroke-linecap:round;
    filter:drop-shadow(0 0 3px rgba(36,170,229,.22));
}
.v231-branch-connectors .v231-spine{stroke:rgba(101,207,250,.48);stroke-width:1.2}
.v231-branch-connectors .v231-bridge{stroke:rgba(101,207,250,.36);stroke-width:1.1}
.v231-branch-connectors circle{
    fill:#e8fbff;stroke:#65d4ff;stroke-width:1.5;
    filter:drop-shadow(0 0 5px rgba(48,190,246,.62));
}

.v231-branch-title{
    position:absolute;left:var(--v231-title-x);top:var(--v231-title-y);
    transform:translate(-50%,-50%);
    padding:6px 11px;border-radius:999px;
    border:1px solid rgba(128,202,231,.36);
    background:rgba(26,45,56,.92);color:#edf9fe;
    font-size:8px;font-weight:850;letter-spacing:.045em;text-transform:uppercase;
    box-shadow:0 8px 20px rgba(5,28,41,.20);
    pointer-events:none;white-space:nowrap;
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}

/* Cartões de submenu */
.v231-branch-item{
    position:absolute;left:var(--v231-x);top:var(--v231-y);
    width:154px;min-height:48px;
    transform:translate(-50%,-50%);
    border:1px solid var(--v231-card-border);
    border-radius:15px;
    background:linear-gradient(145deg,rgba(37,59,71,.97),rgba(27,46,57,.96));
    color:#f3fbff;
    box-shadow:0 10px 26px rgba(4,27,40,.25),inset 0 1px 0 rgba(255,255,255,.055);
    padding:7px 9px;
    display:grid;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:8px;
    text-decoration:none;text-align:left;
    cursor:pointer;pointer-events:auto;
    -webkit-tap-highlight-color:transparent;
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    transition:transform .13s ease,border-color .13s ease,box-shadow .13s ease,background .13s ease;
}
.v231-branch-item:hover,.v231-branch-item:focus-visible{
    transform:translate(-50%,-50%) scale(1.035);
    border-color:rgba(91,207,255,.84);
    background:linear-gradient(145deg,rgba(43,69,83,.99),rgba(29,52,64,.98));
    box-shadow:0 13px 30px rgba(3,31,47,.32),0 0 0 2px rgba(25,167,228,.10);
    outline:none
}
.v231-branch-item>.apm-icon,.v231-branch-item>.v231-fallback-icon{
    width:20px;height:20px;color:#21adf0;display:grid;place-items:center;filter:drop-shadow(0 0 5px rgba(37,174,237,.20))
}
.v231-branch-copy{min-width:0;display:grid;gap:2px}
.v231-branch-copy strong{font-size:12px;line-height:1.05;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v231-branch-copy small{font-size:7px;line-height:1.05;color:#aebfc8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v231-branch-badge{
    min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;
    background:linear-gradient(145deg,#a94b49,#7d3636);border:1px solid rgba(255,188,185,.28);
    color:#fff;font-size:7.5px;font-weight:850;box-shadow:0 4px 9px rgba(64,15,15,.22)
}

/* Listas grandes: acima de 19 opções saem do radial e passam para um modal rolável. */
.v231-overflow-modal{
    position:fixed;left:50%;top:50%;z-index:305;
    width:min(760px,calc(100vw - 30px));max-height:min(76vh,720px);
    transform:translate(-50%,-48%) scale(.985);
    border:1px solid rgba(151,215,241,.46);border-radius:24px;
    background:linear-gradient(155deg,rgba(29,49,61,.98),rgba(18,34,44,.98));
    color:#f4fbff;box-shadow:0 28px 80px rgba(2,20,31,.46),inset 0 1px 0 rgba(255,255,255,.06);
    overflow:hidden;opacity:0;transition:opacity .16s ease,transform .16s ease;
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
}
.v231-overflow-modal[hidden]{display:none!important}
.v231-overflow-modal.is-open{opacity:1;transform:translate(-50%,-50%) scale(1)}
.v231-overflow-header{
    display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px 14px;
    border-bottom:1px solid rgba(145,205,230,.18);background:rgba(255,255,255,.025)
}
.v231-overflow-header>div{display:grid;gap:3px}
.v231-overflow-header span{font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#79caef}
.v231-overflow-header strong{font-size:20px;line-height:1.05}
.v231-overflow-header button{
    width:38px;height:38px;border-radius:50%;border:1px solid rgba(154,214,239,.34);
    background:rgba(255,255,255,.045);color:#eefaff;font-size:24px;line-height:1;cursor:pointer
}
.v231-overflow-header button:hover{background:rgba(39,170,226,.16);border-color:rgba(91,207,255,.72)}
.v231-overflow-list{
    max-height:calc(min(76vh,720px) - 74px);overflow:auto;padding:14px;
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overscroll-behavior:contain
}
.v231-overflow-item{
    min-width:0;min-height:56px;border:1px solid rgba(159,214,237,.30);border-radius:15px;
    background:linear-gradient(145deg,rgba(39,62,75,.97),rgba(27,47,58,.96));color:#f5fbff;
    padding:9px 11px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;
    text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)
}
.v231-overflow-item:hover,.v231-overflow-item:focus-visible{
    outline:none;border-color:rgba(83,207,255,.78);background:linear-gradient(145deg,rgba(46,73,87,.99),rgba(30,54,66,.98))
}
.v231-overflow-item>.apm-icon,.v231-overflow-item>.v231-fallback-icon{width:21px;height:21px;color:#20adef;display:grid;place-items:center}
.v231-overflow-copy{min-width:0;display:grid;gap:3px}
.v231-overflow-copy strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v231-overflow-copy small{font-size:8px;color:#aebfc8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:620px){
    .v231-overflow-modal{width:calc(100vw - 20px);max-height:78vh;border-radius:19px}
    .v231-overflow-list{grid-template-columns:1fr;max-height:calc(78vh - 70px);padding:10px}
}

@media (max-width:420px){
    body.v231-enabled .v223-floating-menu{width:55px!important;height:55px!important;min-width:55px!important;min-height:55px!important}
    body.v231-enabled .v223-floating-menu img{width:39px!important;height:39px!important}
    body.v231-enabled .v223-floating-menu.is-menu-open{width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important}
    body.v231-enabled .v223-floating-menu.is-menu-open img{width:44px!important;height:44px!important}
}

@media (prefers-reduced-motion:reduce){
    .v231-radial-root,.v231-backdrop,body.v231-enabled .v223-floating-menu,.v231-main-segment,.v231-branch-item{transition:none!important}
}

/* C-GESTUS APM v2.5.1 · Patch 11 / Passo 1
   Modais de criação e sistema devem ficar sempre acima do radial premium. */
body.v21-modal-open .v21-modal-backdrop{
    z-index:410!important;
}
body.v21-modal-open .v21-modal:not(.v223-floating-fan){
    z-index:420!important;
}
body.v21-modal-open .v231-backdrop,
body.v21-modal-open .v231-radial-root{
    pointer-events:none!important;
}
