/* portal-geral/assets/style.css — evolução de deploy-base/portal/index.html */
:root{
  --bg:#fbfbfa; --card:#fff; --fg:#1b1b19; --muted:#6b6b66; --line:#e6e4e0;
  --accent:#c15f3c; --accent-fg:#fff;
  --card-shine:linear-gradient(135deg,rgba(255,255,255,.6) 0%,rgba(240,240,238,.3) 40%,rgba(220,218,215,.15) 100%);
  --card-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.04);
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace;
  --pixel:"Pixelify Sans","IBM Plex Mono",monospace;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#191918; --card:#211f1e; --fg:#f0efec; --muted:#9c9a94; --line:#332f2d;
    --accent:#d97757; --accent-fg:#1b1b19;
    --card-shine:linear-gradient(135deg,rgba(255,255,255,.06) 0%,rgba(200,200,200,.03) 40%,rgba(120,120,120,.02) 100%);
    --card-shadow:0 1px 4px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.04);
  }
}
.wrap{max-width:960px;margin:0 auto;padding:48px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}

/* --- extraído de D:\Dev\Desenvolvimento\Projetos\deploy-base\portal\index.html <style> --- */
*{box-sizing:border-box}
/* esconde a barra de scroll mas mantém o scroll funcional */
html{scrollbar-width:none;-ms-overflow-style:none}
html::-webkit-scrollbar{display:none}
body{margin:0;background:var(--bg);color:var(--fg);
     font:16px/1.55 var(--sans)}
h1{font-size:1.6rem;margin:12px 0px 6px;letter-spacing:-.01em}
.sub{color:var(--muted);margin:0 0 32px;font-size:.95rem}
.app{background:var(--card);border:1px solid var(--line);border-radius:12px;
     padding:20px 22px;margin-bottom:16px;position:relative;overflow:hidden;
     box-shadow:var(--card-shadow);transition:box-shadow .2s ease,transform .2s ease}
.app::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;
     background:var(--card-shine);pointer-events:none;border-radius:inherit}
.app:hover{box-shadow:var(--card-shadow),0 4px 12px rgba(0,0,0,.08);transform:translateY(-1px)}
.row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.name{font-weight:600;font-size:1.08rem}
.nome-contr0l{font-family:var(--pixel);font-weight:700;font-size:1.15rem;letter-spacing:.02em;line-height:1}
.ver{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}
.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
     border:1px solid var(--line);border-radius:999px;padding:2px 8px;color:var(--muted);
     background:linear-gradient(135deg,rgba(255,255,255,.4) 0%,rgba(0,0,0,.02) 100%)}
.notes{color:var(--muted);font-size:.9rem;margin:12px 0 0;white-space:pre-wrap;
       max-height:8.5em;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}
.notes::-webkit-scrollbar{display:none}
.files{margin-top:24px;display:flex;flex-direction:column;gap:8px}
a.dl{display:flex;justify-content:space-between;align-items:center;gap:10px;
     text-decoration:none;background:var(--accent);color:var(--accent-fg);
     padding:7px 12px;border-radius:8px;font-weight:600;font-size:.88rem;
     position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
a.dl::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;
     background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 60%);
     pointer-events:none}
a.dl:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}
a.dl small{font-weight:400;opacity:.85;font-variant-numeric:tabular-nums}
.dl-icon{font-size:1.1rem;line-height:1;opacity:.9}
.hash{font:12px var(--mono);color:var(--muted);
       word-break:break-all;margin-top:6px}
.msg{color:var(--muted);padding:24px 0}
.err{color:#c0392b}

/* ============================================================
   NAV & ACESSIBILIDADE
   ============================================================ */

/* skip-to-content — visível apenas em foco por teclado */
.skip-link{position:absolute;top:-100%;left:16px;z-index:1000;
           padding:8px 16px;border-radius:0 0 8px 8px;
           background:var(--accent);color:var(--accent-fg);
           font-weight:600;font-size:.88rem;text-decoration:none;
           transition:top .15s ease}
.skip-link:focus{top:0;outline:2px solid var(--accent);outline-offset:2px}

/* barra de navegação principal */
.site-nav{position:sticky;top:0;z-index:100;
          background:var(--card);border-bottom:1px solid var(--line);
          padding:0 20px}
.site-nav .wrap-inner{max-width:960px;margin:0 auto;
                      display:flex;align-items:center;justify-content:space-between;
                      height:52px}
.site-nav__brand{font-weight:600;font-size:1.05rem;color:var(--fg);
                 text-decoration:none;letter-spacing:-.01em;
                 transition:color .15s ease}
.site-nav__brand:hover{color:var(--accent)}
.site-nav__links{display:flex;align-items:center;gap:16px}
.site-nav__links a{font-size:.88rem;color:var(--muted);text-decoration:none;
                   transition:color .15s ease}
.site-nav__links a:hover{color:var(--fg)}
.site-nav__links a[aria-current="page"]{color:var(--accent);font-weight:500}

/* breadcrumb */
.breadcrumb{margin:0 0 24px;font-size:.85rem;color:var(--muted);
            display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color .15s ease}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb__sep{opacity:.4;user-select:none}
.breadcrumb__current{color:var(--fg);font-weight:500}

/* ============================================================
   BUSCA — ícone + wrapper
   ============================================================ */
.search-wrap{position:relative;flex:1;max-width:480px;margin-top:12px}
.search-wrap::before{content:'🔍';position:absolute;left:12px;top:50%;
                     transform:translateY(-50%);font-size:.9rem;line-height:1;
                     pointer-events:none;opacity:.5}
.search-wrap input{padding-left:36px !important;width:100%;
                   background:var(--card);color:var(--fg);
                   box-shadow:inset 0 1px 2px rgba(0,0,0,.06)}
.search-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);
            font:600 .7rem var(--mono);color:var(--muted);
            border:1px solid var(--line);border-radius:4px;
            padding:1px 6px;pointer-events:none;opacity:.6;line-height:1.4}

/* ============================================================
   FOCUS GERAL — acessibilidade por teclado
   ============================================================ */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input:focus-visible{outline:none;
     box-shadow:inset 0 1px 2px rgba(0,0,0,.06),0 0 0 2px rgba(193,95,60,.25)}
@media (prefers-color-scheme:dark){
  input:focus-visible{box-shadow:inset 0 1px 2px rgba(0,0,0,.06),0 0 0 2px rgba(217,119,87,.3)}
}

/* ============================================================
   BUSCA INPUT (estilos originais preservados)
   ============================================================ */
input[type="text"],input:not([type]){background:var(--card);color:var(--fg);
     box-shadow:inset 0 1px 2px rgba(0,0,0,.06);transition:box-shadow .2s ease}
input[type="text"]:focus,input:not([type]):focus{outline:none;
     box-shadow:inset 0 1px 2px rgba(0,0,0,.06),0 0 0 2px rgba(193,95,60,.25)}

/* ============================================================
   VER MAIS — descrição truncada
   ============================================================ */
.ver-mais{background:none;border:none;padding:0;margin:6px 0 0;
          font:600 .82rem var(--sans);color:var(--accent);cursor:pointer;
          text-align:left;transition:opacity .15s}
.ver-mais:hover{opacity:.75;text-decoration:underline}

/* ============================================================
   MODAL — descrição completa
   ============================================================ */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;
       justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);
                backdrop-filter:blur(4px)}
.modal__box{position:relative;z-index:1;background:var(--card);
            border:1px solid var(--line);border-radius:14px;
            box-shadow:0 12px 40px rgba(0,0,0,.18);
            max-width:560px;width:100%;max-height:80vh;overflow:auto;
            padding:24px 26px;scrollbar-width:none;-ms-overflow-style:none}
.modal__box::-webkit-scrollbar{display:none}
.modal__head{display:flex;align-items:center;justify-content:space-between;
             gap:12px;margin-bottom:12px}
.modal__title{font-weight:600;font-size:1rem;color:var(--fg)}
.modal__close{border:1px solid var(--line);background:var(--card);
              color:var(--muted);border-radius:8px;padding:6px 10px;
              font:600 .82rem var(--sans);cursor:pointer}
.modal__close:hover{color:var(--fg)}
.modal__text{color:var(--muted);font-size:.92rem;white-space:pre-wrap;
             line-height:1.6}

/* ============================================================
   RESPONSIVE — mobile
   ============================================================ */
@media (max-width:600px){
  .site-nav .wrap-inner{height:46px}
  .site-nav__brand{font-size:.95rem}
  .search-kbd{display:none}
  .modal__box{padding:20px 18px}
}
