/* Shared CRM and professional portal theme. */
:root{
      --bg:#0e1012;
      --bg2:#131618;
      --panel:#17191c;
      --panel2:#1f2226;
      --line:#272b30;
      --line2:#31363c;
      --text:#f1f3f5;
      --muted:#8d959c;
      --muted2:#6c757d;
      --blue:#3b6df0;
      --blue2:#2f57cc;
      --blue-soft:#8fb2fb;
      --cyan:#6590f5;
      --green:#7bc86c;
      --orange:#e0913f;
      --red:#e05563;
    }
    *{box-sizing:border-box}
    html,body{margin:0;background:var(--bg);
      color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
    body{min-height:100vh}
    button,input,select,textarea{font:inherit}
    .app{display:grid;grid-template-columns:265px 1fr;min-height:100vh;transition:grid-template-columns .5s cubic-bezier(.16,1,.3,1)}
    .app.collapsed{grid-template-columns:88px 1fr}
    .sidebar{
      position:sticky;top:0;height:100vh;padding:22px 18px 24px;
      border-right:1px solid rgba(255,255,255,.06);
      background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.94) 78%);
      -webkit-backdrop-filter:blur(26px) saturate(160%);backdrop-filter:blur(26px) saturate(160%);
      box-shadow:1px 0 0 rgba(255,255,255,.18),inset -1px 0 0 rgba(255,255,255,.03);
      overflow-x:hidden;overflow-y:auto;overflow-y:overlay;
      transition:padding .5s cubic-bezier(.16,1,.3,1);
      scrollbar-width:thin;scrollbar-color:#272b30 transparent;
      isolation:isolate
    }
    .app.collapsed .sidebar{padding:22px 10px 24px}
    .logo{
      width:104px;height:104px;margin:0 auto 14px;border-radius:50%;overflow:hidden;position:relative;
      border:2px solid rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(255,255,255,.55),0 0 0 6px rgba(59,109,240,.08);
      transition:width .5s cubic-bezier(.16,1,.3,1),height .5s cubic-bezier(.16,1,.3,1),
        margin .5s cubic-bezier(.16,1,.3,1),box-shadow .4s ease
    }
    .logo img{width:100%;height:100%;display:block;object-fit:cover}
    .logo .head{font-size:38px;line-height:.8}
    .logo b{display:block;font-size:21px;line-height:.95}
    .app.collapsed .logo{width:40px;height:40px;margin:0 auto 12px;box-shadow:0 4px 14px rgba(255,255,255,.5)}

    .sidebar-toggle{
      display:flex;align-items:center;justify-content:center;gap:0;
      width:30px;height:30px;flex:none;
      position:absolute;top:32px;right:-15px;z-index:30;
      background:linear-gradient(180deg,#3b6df0,#2f57cc);
      border:2.5px solid #0e1012;color:#fff;cursor:pointer;
      border-radius:50%;
      box-shadow:0 6px 18px rgba(59,109,240,.5),0 0 0 1px rgba(255,255,255,.06);
      transition:background .2s ease,transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease
    }
    .sidebar-toggle:hover{background:linear-gradient(180deg,#5b86f3,#2f57cc);box-shadow:0 8px 22px rgba(59,109,240,.65),0 0 0 1px rgba(255,255,255,.1);transform:scale(1.08)}
    .sidebar-toggle:active{transform:scale(.86)}
    .sidebar-toggle svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
    .app.collapsed .sidebar-toggle svg{transform:rotate(180deg)}
    .toggle-label{display:none}

    .nav-section{
      margin:20px 0 7px;padding:0 16px;color:#6c757d;font-size:11px;letter-spacing:.12em;font-weight:700;
      white-space:nowrap;opacity:1;max-height:30px;transition:opacity .2s ease,max-height .3s ease,margin .3s ease
    }
    .app.collapsed .nav-section{
      opacity:0;max-height:0;margin:14px 0 0;pointer-events:none
    }
    .app.collapsed .nav-section + .nav-divider{display:block;align-self:stretch}
    .nav-divider{display:none;height:1px;margin:0 10px 10px;background:linear-gradient(90deg,transparent,#272b30 25%,#272b30 75%,transparent)}

    .nav a{
      position:relative;text-decoration:none;color:#9aa2a9;display:flex;align-items:center;gap:14px;
      padding:12px 16px;border-radius:14px;margin:3px 0;font-size:15px;
      transition:background .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1),color .2s ease;
      white-space:nowrap;overflow:hidden
    }
    .nav a:hover{background:rgba(255,255,255,.05);color:#fff}
    .nav a:active{transform:scale(.96)}
    .nav a.active{
      color:#fff;background:linear-gradient(180deg,#3b6df0,#2f57cc);
      box-shadow:0 10px 26px rgba(59,109,240,.35),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -1px 0 rgba(0,0,0,.15)
    }
    .app.collapsed #navList{display:flex;flex-direction:column;align-items:center;width:100%}
    .app.collapsed .nav a{justify-content:center;padding:0;width:52px;height:52px;margin:5px 0;border-radius:50%}
    .app.collapsed .nav a.active{box-shadow:0 0 24px rgba(59,109,240,.3)}
    .app.collapsed .nav a:hover{background:rgba(255,255,255,.06);box-shadow:0 0 0 1px rgba(255,255,255,.08)}
    .app.collapsed .nav a:hover .ico{transform:scale(1.14)}
    .app.collapsed .nav a.active .ico{transform:scale(1.08)}

    .ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:20px;flex:none;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}
    .ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

    .nav-label{overflow:hidden;text-overflow:ellipsis;opacity:1;transition:opacity .16s ease .06s}
    .toggle-label{opacity:1;transition:opacity .16s ease .06s;white-space:nowrap;overflow:hidden}
    .app.collapsed .nav-label,.app.collapsed .toggle-label,.app.collapsed .logo b,.app.collapsed .logo .head{
      opacity:0;width:0;transition:opacity .1s ease,width 0s linear .1s
    }

    .nav-tooltip{
      position:fixed;left:0;top:0;transform:translate(-9999px,-9999px);
      background:#17191c;border:1px solid #272b30;color:#f1f3f5;font-size:13px;font-weight:600;
      padding:7px 12px;border-radius:9px;white-space:nowrap;pointer-events:none;z-index:80;
      box-shadow:0 10px 24px rgba(0,0,0,.35);opacity:0;transition:opacity .12s ease
    }
    .nav-tooltip.show{opacity:1}
    .nav-tooltip:before{
      content:"";position:absolute;left:-5px;top:50%;transform:translateY(-50%);
      border:5px solid transparent;border-right-color:#272b30
    }
    .side-footer{margin-top:26px;padding:18px;border:1px solid #272b30;border-radius:20px;text-align:center;color:#b6bcc2}
    .side-footer strong{display:block;font-size:16px}.side-footer span{font-size:28px;color:#e1c988}
    .main{min-width:0}
    .topbar{
      height:76px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:22px;position:relative;
      background:rgba(14,16,18,.82);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20
    }
    .search{max-width:450px;flex:1;position:relative}
    .search input{width:100%;height:42px;border:1px solid var(--line);border-radius:21px;background:var(--panel);color:white;padding:0 16px 0 44px;outline:0;transition:border-color .15s ease,box-shadow .15s ease}
    .search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,109,240,.15)}
    .search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:#8d959c;fill:none;stroke-width:2;stroke-linecap:round;pointer-events:none;transition:stroke .15s ease}
    .search:focus-within svg{stroke:#c3c9ce}
    .top-spacer{flex:1}
    .topbar-title{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:18px;font-weight:750;letter-spacing:-.02em;color:#fff;pointer-events:none;white-space:nowrap}
    .topbar-title:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none}
    @media(max-width:900px){.topbar-title{display:none}}
    .notif{font-size:21px;position:relative}.notif:after{content:"";position:absolute;width:8px;height:8px;background:var(--blue);border-radius:50%;top:-1px;right:-2px}
    .user{display:flex;align-items:center;gap:12px}
    .avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line2);background:var(--panel2)}
    .user small{display:block;color:#8d959c;margin-top:3px}
    .content{padding:34px}
    .hero{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
    .hello{color:var(--muted2);font-size:13.5px;font-weight:600;margin-bottom:6px}
    .title{font-size:32px;font-weight:750;letter-spacing:-.028em;margin:0}
    .subtitle{margin:7px 0 0;color:var(--muted);font-size:14px}
    .clockbox{text-align:right;padding-top:2px}
    .clockbox .date{font-size:12.5px;color:var(--muted2);text-transform:capitalize}.clockbox .time{font-size:22px;font-weight:650;margin-top:3px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
    .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
    .card{
      position:relative;overflow:hidden;
      background:var(--panel);
      border:1px solid var(--line);border-radius:14px;padding:18px 20px;
      transition:border-color .2s ease,background .2s ease
    }
    .card.metric:hover{border-color:var(--line2);background:var(--panel2)}
    .metric{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:90px}
    .metric-icon{display:none}
    .metric .label{color:var(--muted2);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
    .metric .value{font-size:27px;font-weight:700;margin:2px 0;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
    .trend{color:var(--muted2);font-size:12px;display:flex;align-items:center;gap:6px}
    .trend .dot{width:5px;height:5px;border-radius:50%;background:var(--line2);flex:none}
    /* um unico card em destaque: o indicador principal do dia */
    .card.metric.hero-accent{background:var(--panel2);border-color:#2c3a5c}
    .card.metric.hero-accent:hover{border-color:#3b4e78;background:var(--panel2)}
    .card.metric.hero-accent .label{color:var(--blue-soft)}
    .card.metric.hero-accent .value{font-size:33px;font-weight:750;color:#fff}
    .card.metric.hero-accent .trend .dot{background:var(--blue)}
    .grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-bottom:18px}
    .panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}
    .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
    .panel-title{font-size:15px;font-weight:650;letter-spacing:-.005em}.filter{font-size:12px;font-weight:600;padding:6px 11px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:transparent;transition:color .2s ease,border-color .2s ease}.filter:hover{color:var(--text);border-color:var(--line2)}
    .bars{height:180px;display:flex;align-items:end;gap:24px;padding:15px 10px 0;position:relative}
    .bar-wrap{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;z-index:1}
    .bar-wrap.is-today .bar{background:var(--blue)}
    .bar-wrap.is-today small:last-child{color:var(--text);font-weight:650}
    .bar{width:32px;border-radius:4px;background:#333a41;min-height:2px;transform-origin:bottom center}
    .bar-wrap small{color:var(--muted2);font-size:12px}
    .bar-wrap small:first-child{font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}
    .servicos-row{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;min-height:190px}
    .barber-kpi{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;min-height:148px;text-align:center}
    .donut-kpi-label{font-size:11px;font-weight:600;color:var(--muted2);letter-spacing:.12em;text-transform:uppercase}
    .barber-num{
      align-self:center;font-size:104px;font-weight:750;line-height:.86;letter-spacing:-.045em;font-variant-numeric:tabular-nums;
      color:var(--text)
    }
    @media (max-width:550px){.servicos-row{gap:20px}.barber-num{font-size:clamp(80px,26vw,104px)}.bars{gap:clamp(8px,3vw,24px)}.bar{width:clamp(18px,7vw,34px)}}
    .legend{display:grid;gap:14px}
    .legend .leg-row{display:flex;flex-direction:column;gap:5px}
    .legend .leg-top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}
    .legend .leg-top b{font-variant-numeric:tabular-nums}
    .legend span:first-child{display:flex;align-items:center}
    .legend span:first-child:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--dot,#3b6df0);display:inline-block;margin-right:10px}
    .leg-bar{height:5px;border-radius:4px;background:#23272b;overflow:hidden}
    .leg-bar i{display:block;height:100%;width:0;border-radius:4px;background:var(--dot,#3b6df0)}
    /* Abas com muita informação também preenchem a altura da tela:
       a tabela rola por dentro e a paginação fica ancorada embaixo. */
    .view-atendimentos,.view-clientes,.view-profissionais,.view-produtos,.view-servicos,.view-comissoes,.view-vendas,.view-comissao-detalhe{
      display:flex;flex-direction:column;min-height:calc(100dvh - 145px)
    }
    .view-atendimentos>.attendance-page{display:flex;flex-direction:column;flex:1;min-height:0}
    .view-atendimentos .attendance-panel,
    .view-clientes>.panel,
    .view-profissionais>.panel,
    .view-produtos .product-panel,
    .view-servicos .panel.table-wrap,
    .view-comissoes>.panel.table-wrap:first-of-type{flex:1;min-height:0;display:flex;flex-direction:column}
    .view-atendimentos .table-wrap,
    .view-clientes .table-scroll,
    .view-profissionais .table-scroll,
    .view-produtos .table-scroll,
    .view-servicos .table-scroll,
    .view-comissoes .table-scroll{flex:1;min-height:0;overflow:auto}
    /* abas renderizadas pelos painéis wf (Usuários e Clientes) */
    .view-profissionais>.wf-page,.view-clientes>.wf-page{display:flex;flex-direction:column;flex:1;min-height:0}
    .view-profissionais>.wf-page>.wf-panel,.view-clientes>.wf-page>.wf-panel{flex:1;min-height:0;display:flex;flex-direction:column}
    .view-profissionais>.wf-page>.wf-panel>.table-wrap,.view-clientes>.wf-page>.wf-panel>.table-wrap{flex:1;min-height:0;overflow:auto}
    .view-profissionais .wf-panel .pager,.view-clientes .wf-panel .pager{padding:12px 20px 14px;border-top:1px solid var(--line)}
    .view-vendas>.sales-page{display:flex;flex-direction:column;flex:1;min-height:0}
    /* vitrine e carrinho com exatamente a mesma altura */
    .view-vendas .sales-layout{flex:1;min-height:0;align-items:stretch}
    .view-vendas .sales-cart{position:static;height:auto;min-height:0}
    .view-vendas .sales-catalog{display:flex;flex-direction:column;min-height:0}
    .view-vendas .sales-product-grid{flex:1;min-height:0;overflow:auto;align-content:start}
    @media(max-width:900px){
      .view-atendimentos,.view-clientes,.view-profissionais,.view-produtos,.view-servicos,.view-comissoes,.view-vendas,.view-comissao-detalhe{display:block;min-height:0}
      .view-atendimentos>.attendance-page,.view-vendas>.sales-page,.view-vendas .sales-layout,.view-vendas .sales-catalog,.view-profissionais>.wf-page,.view-clientes>.wf-page,.view-profissionais>.wf-page>.wf-panel,.view-clientes>.wf-page>.wf-panel{display:block}
      .view-profissionais>.wf-page>.wf-panel>.table-wrap,.view-clientes>.wf-page>.wf-panel>.table-wrap,.view-vendas .sales-product-grid,.view-atendimentos .table-wrap,.view-clientes .table-scroll,.view-profissionais .table-scroll,.view-produtos .table-scroll,.view-servicos .table-scroll,.view-comissoes .table-scroll{overflow:visible}
    }

    /* Paginação das listas ------------------------------------- */
    .pager{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 4px 2px;margin-top:auto}
    .pager-info{color:var(--muted2);font-size:12.5px}
    .pager-info strong{color:var(--text);font-weight:650}
    .pager-nav{display:flex;align-items:center;gap:6px;margin-left:auto}
    .pager-btn{
      min-width:38px;height:38px;padding:0 10px;border:1px solid transparent;border-radius:11px;
      background:transparent;color:var(--muted);font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;
      cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease
    }
    .pager-btn:hover:not(:disabled){color:var(--text);border-color:var(--line);background:var(--panel2)}
    .pager-btn:active:not(:disabled){transform:scale(.94)}
    .pager-btn.active{color:#fff;border-color:var(--line2);background:var(--panel2)}
    .pager-btn.pager-arrow{border-color:var(--line);color:var(--text);font-size:15px}
    .pager-btn:disabled{opacity:.35;cursor:not-allowed}
    .pager-gap{color:var(--muted2);letter-spacing:.14em;font-size:11px;padding:0 2px;user-select:none}
    @media(max-width:900px){
      .pager{justify-content:center;padding-top:12px}
      .pager-info{width:100%;text-align:center}
      /* oito alvos de 44px somam mais que a largura de um celular:
         a navegação quebra em vez de estourar a página */
      .pager-nav{margin:0;flex-wrap:wrap;justify-content:center}
      .pager-btn{min-width:44px;height:44px;padding:0 6px;font-size:13.5px}
    }

    /* Painel compacto: densidade maior para caber sem rolagem com os blocos de produtos/vendas/estoque */
    .view-painel .hero{margin-bottom:12px;padding-bottom:10px}
    .view-painel .title{font-size:24px}
    .view-painel .clockbox .time{font-size:17px;margin-top:1px}
    .view-painel .clockbox .date{font-size:11.5px}
    .view-painel .cards{gap:12px;margin-bottom:12px}
    .view-painel .card{padding:11px 14px}
    .view-painel .metric{min-height:0;gap:2px}
    .view-painel .metric .label{font-size:10.5px;letter-spacing:.05em}
    .view-painel .metric .value{font-size:20px;margin:1px 0}
    .view-painel .card.metric.hero-accent .value{font-size:23px}
    .view-painel .trend{font-size:11px;gap:5px}
    .view-painel .grid{gap:12px;margin-bottom:12px}
    .view-painel .panel{padding:14px 16px}
    .view-painel .panel-head{margin-bottom:10px}
    .view-painel .panel-title{font-size:13.5px}
    .view-painel .filter{font-size:11px;padding:4px 9px}
    /* o painel ocupa toda a altura util: os blocos crescem para preencher a tela */
    .view-painel{display:flex;flex-direction:column;min-height:calc(100dvh - 145px)}
    .view-painel .hero,.view-painel .cards{flex:none}
    .view-painel .grid,.view-painel .lists{flex:1 1 0;min-height:0}
    .view-painel .grid{flex-grow:1.15}
    .view-painel .lists{margin-bottom:0}
    .view-painel .grid>.panel,.view-painel .lists>.panel{display:flex;flex-direction:column;min-height:0}
    .view-painel .grid>.panel>:last-child,.view-painel .lists>.panel>:last-child{flex:1;min-height:0}
    .view-painel .legend,.view-painel .product-alerts{align-content:start;overflow:auto}
    .view-painel .list-rows{overflow:auto}
    .view-painel .panel>.empty,.view-painel .list-rows>.empty{display:grid;place-items:center;height:100%;padding:0}
    .view-painel .bars{height:auto;min-height:96px;padding:8px 6px 0;gap:16px}
    .view-painel .bar{width:26px}
    .view-painel .bar-wrap{gap:5px}
    .view-painel .bar-wrap small{font-size:11px}
    .view-painel .servicos-row{min-height:0;gap:22px}
    .view-painel .barber-kpi{min-height:0;gap:4px}
    .view-painel .barber-num{font-size:clamp(46px,5vw,64px)}
    .view-painel .legend{gap:9px}
    .view-painel .legend .leg-top{font-size:12px}
    .view-painel .product-alerts{gap:7px}
    .view-painel .product-alert{padding:8px 11px;font-size:12px}
    .view-painel .product-alert b{width:19px;height:19px;font-size:12px}
    .view-painel .row{padding:6px 10px}
    .view-painel .face{width:32px;height:32px;border-radius:9px;font-size:11.5px}
    .view-painel .row{grid-template-columns:38px 1fr auto auto}
    .view-painel .person b{font-size:12.5px}
    .view-painel .empty{padding:14px 0;font-size:12.5px}
    @media(max-width:900px){.view-painel{display:block;min-height:0}.view-painel .lists{margin-bottom:0}.view-painel .bars{height:140px}.view-painel .legend,.view-painel .product-alerts,.view-painel .list-rows{overflow:visible}}
    .view-painel .lists{gap:12px}
    .lists{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    .row{display:grid;grid-template-columns:44px 1fr auto auto;gap:12px;align-items:center;padding:11px 10px;margin:0 -10px;border-radius:14px;transition:background .2s ease}
    .row+.row{margin-top:2px}
    .row:hover{background:rgba(255,255,255,.035)}
    .face{
      width:38px;height:38px;border-radius:11px;
      background:var(--panel2);border:1px solid var(--line2);
      display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:12.5px;letter-spacing:.02em;
      flex-shrink:0
    }
    .person{min-width:0}
    .person b{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .person small{display:block;color:var(--muted2);margin-top:2px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .status{padding:7px 12px;border-radius:9px;font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
    .status{border:1px solid transparent}
    .green{background:#18261b;border-color:#26402a;color:#8fd47f}.blue{background:#17202f;border-color:#243350;color:#89aef5}.orange{background:#2a2013;border-color:#43331d;color:#dfa562}.status.red{background:#2b161a;border-color:#47252b;color:#e8848f}
    .time-sm{font-size:12px;color:var(--muted2);white-space:nowrap}

    /* --- functional CRM additions --- */
    .page-head{margin-bottom:22px}
    .page-head h1{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0}
    .page-head p{margin:5px 0 0;color:#9aa2a9;font-size:15px}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:16px;border:1px solid #272b30;background:#1f2226;color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s ease}
    .btn:hover{background:#1f2226;border-color:#3a4046}
    .btn:active{transform:translateY(1px)}
    .btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
    .btn-primary{background:linear-gradient(180deg,var(--blue),var(--blue2));border-color:transparent;font-weight:700;box-shadow:0 8px 20px rgba(59,109,240,.22)}
    .btn-primary:hover{filter:brightness(1.08);background:linear-gradient(180deg,var(--blue),var(--blue2))}
    .btn-sm{padding:7px 12px;font-size:12px;border-radius:8px}
    .btn-danger{border-color:#5c2a34;color:#e8848f;background:#1c0d10}
    .btn-danger:hover{background:#2a1216;border-color:#7a3a44}
    .btn[disabled],.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;filter:none}
    select{
      height:42px;border:1px solid #272b30;border-radius:14px;background:#17191c;color:var(--text);
      padding:0 14px;outline:0;cursor:pointer;font-size:13.5px;transition:.15s ease;
      -webkit-appearance:none;appearance:none;
      background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23b7bbba'/></svg>");
      background-repeat:no-repeat;background-position:right 14px center;padding-right:32px;
    }
    select:hover{border-color:#3a4046}
    select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,109,240,.15)}
    select:disabled{opacity:.45;cursor:not-allowed}
    option{background:#17191c;color:var(--text)}
    .chip:hover{border-color:#3a4046}
    .chip-more{background:#1f2226;color:#8d959c;font-weight:700}
    .tab:hover{color:#9aa2a9}

    /* --- compact professional avatar stack (scales to any headcount) --- */
    .prof-empty{color:#6c757d;font-size:12px}
    .prof-stack{display:inline-flex;cursor:pointer}
    .prof-avatar{
      width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
      background:linear-gradient(145deg,#4a5157,#1f2226);border:2px solid #131618;
      color:#e6e9eb;font-size:11px;font-weight:700;letter-spacing:.01em;
      margin-left:-10px;transition:transform .15s ease,z-index 0s;
    }
    .prof-avatar:first-child{margin-left:0}
    .prof-stack:hover .prof-avatar{transform:translateY(-3px)}
    .prof-avatar-more{background:#1f2226;color:#8d959c}

    /* --- segmented section tabs (Serviços/Regras, etc.) --- */
    .seg-tabs{position:relative;display:inline-flex;gap:2px;padding:4px;border:1px solid #272b30;border-radius:12px;background:#17191c;margin-bottom:20px}
    .seg-tab{position:relative;z-index:1;border:0;background:transparent;color:#8d959c;font-size:13.5px;font-weight:600;padding:9px 18px;border-radius:9px;cursor:pointer;transition:color .2s ease}
    .seg-tab:hover{color:#8d959c}
    .seg-tab.active{color:#fff}
    .seg-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:0;border-radius:9px;background:linear-gradient(180deg,var(--blue),var(--blue2));box-shadow:0 6px 16px rgba(59,109,240,.3);z-index:0}

    /* --- horizontally scrollable tables (ready for growth in rows/columns) --- */
    .table-scroll{overflow-x:auto;max-width:100%}
    /* min() evita barra de rolagem em telas largas: a tabela so rola quando nao cabe */
    .table-scroll .table{min-width:min(760px,100%)}
    /* painel que ja tem uma area de rolagem interna nao rola de novo */
    .table-wrap:has(>.table-scroll){overflow:visible}

    /* --- check-in queue list --- */
    .checkin-list{border:1px solid #1f2226;border-radius:20px;background:var(--bg2);overflow:hidden}
    .checkin-head{display:grid;grid-template-columns:44px 1.3fr 108px 1.2fr 1.15fr 118px auto;gap:14px;align-items:center;padding:14px 20px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #1f2226}
    .checkin-row{display:grid;grid-template-columns:44px 1.3fr 108px 1.2fr 1.15fr 118px auto;gap:14px;align-items:center;padding:16px 20px;border-bottom:1px solid #1f2226;transition:background .15s ease}
    .checkin-row:last-child{border-bottom:0}
    .checkin-row:hover{background:#1f2226}
    .checkin-col-prof{min-width:0}
    .checkin-col-prof select{width:100%;box-sizing:border-box}
    .checkin-face{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;background:linear-gradient(160deg,var(--accent,#3b6df0),var(--accent2,#2f57cc));box-shadow:0 6px 14px color-mix(in srgb, var(--accent,#3b6df0) 40%, transparent)}
    .checkin-face svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .checkin-cliente b{font-size:13.5px;display:block}
    .checkin-cliente small{display:flex;align-items:center;gap:5px;color:#6c757d;margin-top:3px;font-size:11.5px}
    .checkin-cliente small svg{width:11px;height:11px;stroke:#6c757d;fill:none;stroke-width:2;flex-shrink:0}
    .checkin-cliente{min-width:0}
    .checkin-cliente .ck-pagamento{
      display:block;width:100%;max-width:200px;height:30px;margin-top:7px;padding:0 28px 0 10px;
      border-radius:9px;font-size:12px;background-position:right 10px center;
    }
    /* o serviço repetido sob o telefone é só do layout compacto (<=900px);
       .checkin-cliente small é mais específico que .ag-servico-fone */
    @media(min-width:901px){ .checkin-cliente small.ag-servico-fone{display:none} }
    .checkin-cliente .ck-pagamento.vazio{color:var(--muted)}
    .checkin-cliente .ck-pagamento option{color:var(--text)}
    .checkin-meta{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#9aa2a9}
    .checkin-meta svg{width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
    .checkin-wait{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:9px;font-size:11px;font-weight:700;white-space:nowrap}
    .checkin-wait svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
    .checkin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
    .scissor-btn svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease}
    .scissor-btn:hover svg{transform:rotate(-18deg)}
    .empty-queue{padding:48px 20px;text-align:center;color:var(--muted)}
    .empty-queue svg{width:38px;height:38px;stroke:var(--muted);fill:none;stroke-width:1.6;margin-bottom:10px}
    @media (max-width:1100px){
      .checkin-head{display:none}
      .checkin-row{grid-template-columns:38px 1fr;grid-template-areas:"face cliente" "meta1 meta4" "meta2 meta2" "meta3 meta3" "actions actions";row-gap:10px}
      .checkin-row .checkin-face{grid-area:face}
      .checkin-row .checkin-cliente{grid-area:cliente}
      .checkin-row .checkin-col-chegada{grid-area:meta1}
      .checkin-row .checkin-col-servico{grid-area:meta2}
      .checkin-row .checkin-col-prof{grid-area:meta3}
      .checkin-row .checkin-col-espera{grid-area:meta4;justify-self:end;align-self:start}
      .checkin-row .checkin-col-prof select{width:100%}
      .checkin-row .checkin-actions{grid-area:actions;justify-content:flex-start}
    }
    .toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
    .toolbar-search{flex:1;min-width:220px;max-width:360px;position:relative}
    .toolbar-search input{width:100%;height:42px;border:1px solid #272b30;border-radius:21px;background:#17191c;color:white;padding:0 14px 0 40px;outline:0;transition:border-color .15s ease,box-shadow .15s ease}
    .toolbar-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,109,240,.15)}
    .toolbar-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:#8d959c;fill:none;stroke-width:2;stroke-linecap:round;pointer-events:none}
    .toolbar-search:focus-within svg{stroke:#c3c9ce}
    .chips{display:flex;gap:8px;flex-wrap:wrap}
    .chip{padding:8px 14px;border-radius:20px;border:1px solid #272b30;font-size:12.5px;color:#9aa2a9;cursor:pointer;background:#17191c}
    .chip.active{background:linear-gradient(180deg,var(--blue),var(--blue2));border-color:transparent;color:#fff;font-weight:700}
    .table-wrap{overflow-x:auto}
    .table{width:100%;border-collapse:collapse}
    .table th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:#6c757d;padding:10px 12px;border-bottom:1px solid #1f2226;white-space:nowrap}
    .table td{padding:13px 12px;border-bottom:1px solid #1f2226;font-size:13.5px;white-space:nowrap}
    .table tr:last-child td{border-bottom:0}
    .table tr.clickable{cursor:pointer}
    .table tr.clickable:hover{background:#17191c}
    .badge{padding:5px 10px;border-radius:8px;font-size:11px;font-weight:700;display:inline-block}
    .badge.green{background:#28301c;color:#7bc86c}.badge.blue{background:#1f2226;color:#89aef5}
    .badge.orange{background:#3a2f1c;color:#dfa562}.badge.red{background:#4a0c14;color:#e8848f}.badge.gray{background:#1f2226;color:#6c757d}
    .empty{padding:50px 20px;text-align:center;color:#6c757d;font-size:14px}
    .modal-backdrop{position:fixed;inset:0;background:rgba(8,10,9,.72);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
    .modal-backdrop.ready{backdrop-filter:blur(4px)}
    .modal-backdrop.open{display:flex}
    .modal{contain:paint;width:min(560px,100%);max-height:86vh;overflow:auto;background:linear-gradient(160deg,#17191c,#131618);border:1px solid #272b30;border-radius:24px;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
    .modal:has(.modal-head){padding:0}
    .modal-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid #272b30;background:linear-gradient(160deg,#17191c,#131618);z-index:2}
    .modal-head h2{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em}
    .modal-body{padding:22px 26px}
    .modal-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:18px 26px;border-top:1px solid #272b30;background:linear-gradient(160deg,#17191c,#131618)}
    .modal h2{margin:0 0 18px;font-size:20px}
    .modal-close{float:right;cursor:pointer;font-size:20px;color:#8d959c;line-height:1}
    .modal-head .modal-close{float:none;font-size:15px;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;border:1px solid #272b30;background:#17191c;transition:.15s ease;flex-shrink:0}
    .modal-head .modal-close:hover{color:#fff;border-color:#3a4046;background:#1f2226}
    .modal-close:hover{color:#fff}
    .form-section{margin-bottom:22px}
    .form-section:last-child{margin-bottom:0}
    .form-section-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6c757d;margin-bottom:12px;display:flex;align-items:center;gap:8px}
    .form-section-title:before{content:"";width:3px;height:12px;border-radius:2px;background:var(--blue)}
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:0}
    .form-grid.full{grid-template-columns:1fr}
    .f-field label{display:block;font-size:12px;color:#9aa2a9;margin-bottom:6px;font-weight:600}
    .f-field input:not([type=checkbox]):not([type=radio]),.f-field select,.f-field textarea{
      width:100%;height:42px;border:1px solid #272b30;border-radius:9px;background:#17191c;color:white;padding:0 12px;outline:0;
      transition:border-color .15s ease,box-shadow .15s ease;
    }
    .f-field input:not([type=checkbox]):not([type=radio]):focus,.f-field select:focus,.f-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,109,240,.15)}
    .f-field input:not([type=checkbox]):not([type=radio]):hover{border-color:#3a4046}
    .f-field textarea{height:80px;padding:10px 12px;resize:vertical}
    .input-group{position:relative}
    .input-group input{padding-left:34px !important}
    .input-group.suffix input{padding-left:12px !important;padding-right:40px !important}
    .input-group-affix{position:absolute;top:0;bottom:0;left:12px;display:flex;align-items:center;color:#6c757d;font-size:13px;font-weight:600;pointer-events:none}
    .input-group.suffix .input-group-affix{left:auto;right:12px}
    .aba-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:8px}
    .aba-item{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border:1px solid #272b30;border-radius:10px;background:#131618;color:#b6bcc2;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
    .aba-item:hover{border-color:#3a4046;background:#17191c;color:#f1f3f5}
    .aba-item input{position:absolute;opacity:0;width:0;height:0}
    .aba-box{position:relative;flex:none;width:17px;height:17px;border:1.5px solid #4a5157;border-radius:5px;background:transparent;transition:background .15s,border-color .15s}
    .aba-box:after{content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(.6);opacity:0;transition:opacity .12s,transform .12s}
    .aba-item input:checked+.aba-box{background:var(--blue);border-color:var(--blue)}
    .aba-item input:checked+.aba-box:after{opacity:1;transform:rotate(45deg) scale(1)}
    .aba-item input:focus-visible+.aba-box{outline:2px solid var(--blue);outline-offset:2px}
    .aba-item input:checked~.aba-nome{color:#f1f3f5;font-weight:600}
    .aba-nome{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .aba-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
    .aba-head button{border:0;background:transparent;color:#8fb2fb;font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:0}
    .aba-head button:hover{color:#b8ccfa}
    .check-list{display:flex;flex-wrap:wrap;gap:10px}
    .check-list label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#8d959c;background:#17191c;border:1px solid #272b30;padding:7px 11px;border-radius:8px}
    .check-list input[type=checkbox]{width:15px;height:15px;flex-shrink:0;accent-color:var(--blue);cursor:pointer}

    /* --- toggle-chip multi-select (e.g. profissionais habilitados) --- */
    .toggle-chips{display:flex;flex-wrap:wrap;gap:9px}
    .toggle-chip{position:relative}
    .toggle-chip input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
    .toggle-chip span{
      display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:22px;
      border:1px solid #272b30;background:#17191c;color:#9aa2a9;font-size:12.5px;font-weight:600;
      transition:.15s ease;user-select:none;
    }
    .toggle-chip .tc-avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:linear-gradient(145deg,#4a5157,#1f2226);color:#e6e9eb;font-size:10px;font-weight:800}
    .toggle-chip:hover span{border-color:#3a4046}
    .toggle-chip input:checked+span{background:linear-gradient(180deg,var(--blue),var(--blue2));border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(59,109,240,.28)}
    .toggle-chip input:checked+span .tc-avatar{background:rgba(255,255,255,.22);color:#fff}
    .toggle-chip input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}

    /* --- status switch --- */
    .switch-field{display:flex;align-items:center;gap:12px;height:42px}
    .switch{position:relative;width:46px;height:26px;flex-shrink:0}
    .switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
    .switch-track{position:absolute;inset:0;border-radius:20px;background:#1f2226;border:1px solid #272b30;transition:.2s ease}
    .switch-track:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#8d959c;transition:.2s cubic-bezier(.34,1.56,.64,1)}
    .switch input:checked~.switch-track{background:linear-gradient(180deg,var(--blue),var(--blue2));border-color:transparent}
    .switch input:checked~.switch-track:before{transform:translateX(20px);background:#fff}
    .switch-label{font-size:13.5px;font-weight:600;color:#8d959c}
    .tabs{display:flex;gap:6px;border-bottom:1px solid #272b30;margin-bottom:18px}
    .tab{padding:11px 16px;font-size:13.5px;color:#8d959c;cursor:pointer;border-bottom:2px solid transparent}
    .tab.active{color:#fff;border-color:var(--blue);font-weight:700}
    .kv{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #1f2226;font-size:13.5px}
    .kv:first-child{border-top:0}
    .kv b{color:#8d959c}
    .back-link{display:inline-flex;align-items:center;gap:6px;color:#8d959c;font-size:13px;cursor:pointer;margin-bottom:16px;background:none;border:0;padding:0}
    .back-link:hover{color:#fff}
    .qr-box{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
    .qr-box img{border-radius:14px;border:1px solid #272b30;background:#fff;padding:10px}
    .svc-card{padding:20px}
    .svc-card .top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
    .svc-card h3{margin:0;font-size:17px}
    .svc-card .price{font-size:22px;font-weight:800;margin:6px 0}
    .svc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:22px}
    @media(max-width:1200px){
      .cards{grid-template-columns:repeat(2,1fr)}
      .grid,.lists{grid-template-columns:1fr}
    }
    @media(max-width:900px){
      .app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.topbar{position:relative}
      .hero{grid-template-columns:1fr}.clockbox{text-align:left}.cards{grid-template-columns:1fr}
      .form-grid{grid-template-columns:1fr}
    }
    /* Service editor: scoped to preserve the other CRM dialogs. */
    .modal:has(.service-form){width:min(720px,100%);max-height:calc(100dvh - 40px);overflow:hidden;background:var(--bg2)}
    .service-form{display:flex;flex-direction:column;max-height:calc(100dvh - 42px)}
    .service-form .modal-head{position:static;padding:24px 28px;gap:16px;background:var(--panel)}
    .service-heading{flex:1;min-width:0}
    .service-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:#b6bcc2;margin-bottom:6px}
    .service-form .modal-head h2{margin:0;font-size:24px;letter-spacing:-.035em}
    .service-heading p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
    .service-form .modal-close{width:36px;height:36px;align-self:flex-start}
    .service-form .modal-body{overflow:auto;padding:24px 28px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
    .service-form .form-section{margin:0;padding:0 0 22px}
    .service-form .form-section+.form-section{border-top:1px solid var(--line);padding-top:22px}
    .service-form .form-section:last-child{padding-bottom:0}
    .service-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:15px}
    .service-section-head h3{font-size:14px;font-weight:650;margin:0;letter-spacing:-.01em}
    .service-section-head small{font-size:11px;color:var(--muted)}
    .service-form .form-grid{grid-template-columns:1.5fr 1fr;gap:16px}
    .service-form .service-numbers{grid-template-columns:repeat(3,minmax(0,1fr))}
    .service-form .f-field{min-width:0}
    .service-form .f-field label{color:#d2d6da;font-size:12px;margin-bottom:8px}
    .service-form .f-field input,.service-form .f-field select{height:46px;font-size:14px;border-color:#272b30;background:#131618}
    .service-form input::placeholder{color:#8d959c;opacity:1}
    .service-form input[aria-invalid=true],.service-form select[aria-invalid=true]{border-color:var(--red)}
    .service-form .field-error{color:#e28d96;font-size:11px;line-height:1.5;margin:6px 0 0}
    .service-form .field-error:empty{display:none}
    .service-split{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border-radius:9px;background:#17191c;color:#b6bcc2;font-size:12px;line-height:1.7}
    .service-split strong{color:#e6e9eb;font-weight:650;font-variant-numeric:tabular-nums}
    .service-note{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
    .service-status{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}
    .service-status label{font-size:13px;font-weight:600}
    .service-status p{font-size:12px;line-height:1.5;color:var(--muted);margin:4px 0 0}
    .service-form .switch input:focus-visible~.switch-track{outline:2px solid var(--cyan);outline-offset:4px}
    .service-form .switch-label{min-width:43px;font-size:12px}
    .service-form .toggle-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .service-form .toggle-chip>span{height:55px;border-radius:10px;padding:10px;gap:8px;font-size:12px;background:#131618}
    .service-form .toggle-chip .tc-avatar{width:28px;height:28px;border:0;padding:0;background:#272b30;box-shadow:none}
    .service-prof-name{flex:1;min-width:0;overflow-wrap:anywhere;font-style:normal}
    .service-check{width:16px;height:16px;border:1px solid #4a5157;border-radius:5px;display:grid;place-items:center;flex:none;color:transparent;font-size:11px;font-style:normal}
    .service-form .toggle-chip input:checked+span{background:#1f2226;border-color:#3b6df0;box-shadow:none}
    .service-form .toggle-chip input:checked+span .service-check{background:var(--blue);border-color:var(--blue);color:white}
    .service-select-all{padding:4px 0;border:0;background:none;color:#7ca1f7;font-size:12px;cursor:pointer}
    .service-form button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
    .service-form .modal-foot{position:static;flex:none;align-items:center;padding:16px 28px;background:var(--panel);gap:10px}
    .service-foot-note{flex:1;color:var(--muted);font-size:11px;line-height:1.5}
    .service-form .modal-foot .btn{min-height:44px;font-size:13px;border-radius:10px}
    .service-form .modal-foot .btn-primary{min-width:142px}
    .service-photo-picker{display:flex;align-items:center;gap:16px}
    .service-photo-preview{width:72px;height:72px;border-radius:12px;overflow:hidden;background:#131618;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .service-photo-preview img{width:100%;height:100%;object-fit:cover}
    .service-photo-preview span{font-size:10.5px;color:#8d959c;text-align:center;padding:4px}
    .service-photo-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
    .service-photo-actions input[type=file]{font-size:12.5px;color:#d2d6da;max-width:220px}
    .service-photo-actions .btn-sm{padding:7px 12px;font-size:12px;min-height:0}
    .service-photo-buttons{display:flex;gap:8px;flex-wrap:wrap}
    /* Recorte de foto: overlay proprio, separado do modal principal (que so
       suporta um conteudo por vez), para poder abrir por cima do formulario
       de servico sem perder o que ja foi preenchido nele. */
    .crop-backdrop{position:fixed;inset:0;background:rgba(8,10,9,.8);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}
    .crop-modal{width:min(360px,100%);background:linear-gradient(160deg,#17191c,#131618);border:1px solid #272b30;border-radius:20px;padding:20px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
    .crop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}
    .crop-head h3{margin:0;font-size:15px;color:var(--text)}
    .crop-head .modal-close{float:none;font-size:15px;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;border:1px solid #272b30;background:#17191c;flex-shrink:0}
    .crop-viewport{width:300px;max-width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;position:relative;background:#0c0e0f;margin:0 auto;cursor:grab;touch-action:none}
    .crop-viewport:active{cursor:grabbing}
    .crop-viewport img{position:absolute;left:0;top:0;max-width:none;user-select:none;-webkit-user-drag:none}
    .crop-hint{font-size:11.5px;color:#8d959c;text-align:center;margin:12px 0 6px}
    .crop-modal input[type=range]{width:100%;margin:4px 0 16px;accent-color:var(--blue)}
    .crop-actions{display:flex;gap:10px;justify-content:flex-end}
    .svc-card .svc-photo{width:100%;height:120px;border-radius:10px;object-fit:cover;margin-bottom:10px;display:block}
    .table .svc-thumb{width:36px;height:36px;border-radius:8px;object-fit:cover;margin-right:10px;vertical-align:middle;flex-shrink:0}
    .svc-name-cell{display:flex;align-items:center}
    .service-empty{margin:0;padding:14px;border:1px dashed #31363c;border-radius:10px;color:var(--muted);font-size:12px;line-height:1.6}
    .category-panel{padding:0;overflow:hidden}
    .category-panel-head{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
    .category-panel-head h2{margin:0;font-size:18px;letter-spacing:-.02em}
    .category-panel-head p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
    .category-panel-head .btn{display:flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap}
    .category-panel svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
    .category-toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:0 24px 20px;flex-wrap:wrap}
    .category-toolbar .toolbar-search{max-width:320px;min-width:180px}
    .category-filters{display:flex;gap:4px;padding:4px;background:#131618;border:1px solid var(--line);border-radius:10px}
    .category-filters button{border:0;border-radius:6px;padding:7px 12px;color:var(--muted);background:none;cursor:pointer;font-size:12px}
    .category-filters button[aria-pressed=true]{background:#1f2226;color:var(--text)}
    .category-panel button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
    .category-panel .category-table{min-width:0;table-layout:fixed}
    .category-table th{background:#131618;padding:12px 24px;font-size:10px;color:#8d959c;letter-spacing:.08em}
    .category-table th:first-child{width:38%}.category-table th:last-child{width:150px;text-align:right}
    .category-table td{padding:18px 24px;white-space:normal;vertical-align:middle}
    .category-table tbody tr:hover{background:rgba(255,255,255,.05)}
    .category-name{display:flex;align-items:center;gap:12px;min-width:0}
    .category-name b{font-size:14px;font-weight:600;overflow-wrap:anywhere}
    .category-symbol{display:grid;place-items:center;width:36px;height:36px;border:1px solid #272b30;border-radius:10px;color:#769cf6;background:#1f2226;flex:none}
    .category-volume{color:#d2d6da;font-size:12px}.category-volume b{font-size:14px;color:var(--text);margin-right:4px}
    .category-status{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:#7bc86c;background:#232a1a;padding:6px 10px;border-radius:7px;white-space:nowrap}
    .category-status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}
    .category-status.inactive{color:#8d959c;background:#1f2226}
    .category-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}
    .category-edit,.category-delete{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid #272b30;background:#131618;color:#d2d6da;border-radius:8px;cursor:pointer;font-size:12px;padding:0 10px}
    .category-edit:hover{border-color:#8d959c;background:#1f2226}
    .category-delete{border-color:transparent;background:none;color:#8d959c;width:36px;padding:0}
    .category-delete:not(:disabled):hover{background:#341724;color:#e28d96}
    .category-delete:disabled{opacity:.35;cursor:not-allowed}
    .category-panel-foot{padding:14px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px;line-height:1.6}
    .category-empty{text-align:center;padding:38px 20px;color:var(--muted)}
    .category-empty strong{display:block;color:var(--text);font-size:15px;margin-bottom:8px}.category-empty p{font-size:12px;margin:0 0 14px;line-height:1.6}
    /* --- commission rules --- */
    .commission-layout{display:grid;gap:18px}
    .commission-default{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:24px;border-radius:15px;background:linear-gradient(135deg,#17191c,#131618);border:1px solid #272b30}
    .commission-kicker{font-size:10px;font-weight:750;letter-spacing:.13em;color:#8fb2fb;margin-bottom:8px}
    .commission-default h2{font-size:18px;letter-spacing:-.025em;margin:0}.commission-default p{color:#b6bcc2;font-size:12px;line-height:1.65;margin:7px 0 0;max-width:560px}
    .commission-rate{display:flex;align-items:center;gap:9px;padding:6px 8px 6px 14px;border-radius:11px;background:#131618;border:1px solid #31363c}
    .commission-rate label{font-size:11px;font-weight:650;color:#8d959c}.commission-rate input{width:68px;height:42px;border:0;border-left:1px solid #272b30;background:transparent;color:#fff;text-align:center;font-weight:800;font-size:17px;outline:0;font-variant-numeric:tabular-nums}.commission-rate input:focus{box-shadow:inset 0 0 0 2px var(--blue);border-radius:6px}.commission-rate span{font-size:14px;color:#8d959c;font-weight:750}
    .commission-rule-panel{padding:0;overflow:hidden}.commission-rule-head{padding:24px 24px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.commission-rule-head h2{font-size:18px;letter-spacing:-.025em;margin:0}.commission-rule-head p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.6}
    .commission-count{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 10px;border-radius:8px;background:#1f2226;color:#b6bcc2;font-size:11px;font-weight:650}.commission-count:before{content:'';width:6px;height:6px;background:var(--blue);border-radius:50%;box-shadow:0 0 8px var(--blue)}
    .commission-table{min-width:0!important;table-layout:fixed}.commission-table th{padding:12px 24px;background:#131618;font-size:10px;color:#8d959c;letter-spacing:.08em}.commission-table th:nth-child(1){width:30%}.commission-table th:nth-child(2){width:30%}.commission-table th:nth-child(3){width:25%}.commission-table th:last-child{width:100px;text-align:right}.commission-table td{padding:17px 24px;vertical-align:middle;white-space:normal}.commission-table tbody tr:hover{background:rgba(255,255,255,.05)}
    .commission-person{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}.commission-person .tc-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#272b30;color:#9fbaf9;font-size:10px;font-weight:800;flex:none}
    .commission-service{font-size:13px;font-weight:650}.commission-service small{display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:3px}.commission-special{display:inline-flex;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums}.commission-special strong{font-size:17px;color:#7da2f7}.commission-special small{font-size:11px;color:#8d959c}.commission-remove{float:right;width:34px;height:34px;padding:0;border:0;background:none;color:#8d959c;border-radius:8px;cursor:pointer}.commission-remove:hover{background:#351725;color:#e28d96}.commission-empty{padding:40px 24px;text-align:center;color:var(--muted)}.commission-empty strong{display:block;color:var(--text);font-size:15px;margin-bottom:7px}.commission-empty p{font-size:12px;line-height:1.6;margin:0}
    .commission-add{border-top:1px solid var(--line);padding:20px 24px;background:#131618}.commission-add-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.commission-add-title h3{font-size:13px;margin:0}.commission-add-title span{font-size:11px;color:var(--muted)}.commission-add-grid{display:grid;grid-template-columns:1fr 1fr 120px auto;gap:10px;align-items:end}.commission-add .f-field label{font-size:11px;margin-bottom:6px}.commission-add .f-field input,.commission-add .f-field select{height:42px;font-size:12.5px}.commission-add .btn{height:42px;white-space:nowrap}.commission-error{grid-column:1/-1;margin:0;color:#e28d96;font-size:11px;min-height:0}.commission-error:empty{display:none}
    @media(max-width:700px){.commission-default{grid-template-columns:1fr;padding:20px;gap:16px}.commission-rate{justify-self:start}.commission-rule-head{padding:20px;flex-wrap:wrap}.commission-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.commission-table,.commission-table tbody{display:block;width:100%}.commission-table tr{display:grid;grid-template-columns:1fr auto;gap:13px;padding:18px 20px;border-top:1px solid var(--line)}.commission-table td{padding:0;border:0}.commission-table td:first-child{grid-column:1/-1}.commission-table td:last-child{grid-row:2;grid-column:2}.commission-remove{float:none}.commission-add{padding:20px}.commission-add-grid{grid-template-columns:1fr}.commission-add .btn{width:100%}}
    .modal:has(.category-form){width:min(540px,100%)}
    /* o cadastro de usuários tem seções lado a lado: precisa de mais respiro */
    .modal:has(.wf-form){width:min(1040px,100%)}
    .category-form .category-context{padding:14px 16px;margin-top:20px;border:1px solid #272b30;background:#17191c;border-radius:10px;color:#b6bcc2;font-size:12px;line-height:1.7}
    .category-form .category-context strong{color:var(--text);font-weight:600}
    .category-form .modal-foot .btn-primary{min-width:140px}
    @media(max-width:650px){
      .category-panel-head{padding:20px;align-items:flex-start;flex-wrap:wrap}.category-toolbar{padding:0 20px 18px;gap:12px}
      .category-toolbar .toolbar-search{flex-basis:100%;max-width:none}.category-filters{width:100%}.category-filters button{flex:1}
      .category-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
      .category-table,.category-table tbody{display:block;width:100%}
      .category-table tr{display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px 20px;border-top:1px solid var(--line)}
      .category-table td{padding:0;border:0}.category-table td:first-child{grid-column:1/-1}.category-table td:last-child{grid-column:1/-1}
      .category-table td[colspan]{grid-column:1/-1}.category-actions{justify-content:flex-start}.category-edit{flex:1}
      .category-panel-foot{padding:14px 20px}
    }
    @media(prefers-reduced-motion:reduce){.service-form *{transition:none!important}}
    @media(max-width:600px){
      .modal-backdrop:has(.service-form){padding:10px}
      .modal:has(.service-form),.service-form{max-height:calc(100dvh - 22px)}
      .service-form .modal-head{padding:20px}.service-form .modal-body{padding:20px}
      .service-form .form-grid{grid-template-columns:1fr}.service-form .service-numbers{grid-template-columns:1fr 1fr}
      .service-form .toggle-chips{grid-template-columns:1fr}.service-form .modal-foot{padding:14px 20px}
      .service-foot-note{display:none}.service-form .modal-foot .btn{flex:1}.service-heading p{font-size:12px}
    }
    /* --- sidebar refinement --- */
    .sidebar{display:flex;flex-direction:column;padding:20px 14px 14px;background:linear-gradient(180deg,#17191c 0%,#131618 48%,#0e1012 100%);border-right-color:#272b30;box-shadow:inset -1px 0 rgba(255,255,255,.07),18px 0 38px rgba(0,0,0,.12)}
    .sidebar:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 5%,#6590f5 45%,#2f57cc 75%,transparent);opacity:.85}
    .sidebar-brand{display:flex;align-items:center;gap:11px;padding:5px 9px 19px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.14);min-height:84px}
    .sidebar .logo{width:60px;height:60px;margin:0;flex:none;border-color:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(0,0,0,.32),0 0 0 4px rgba(59,109,240,.12)}.sidebar .logo img{object-fit:contain;padding:3px}
    .sidebar-brand-copy{min-width:0;display:flex;flex-direction:column;gap:3px;overflow:hidden}.sidebar-brand-copy strong{font-size:13px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand-copy span{color:#8d959c;font-size:10px;font-weight:650;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap}
    .sidebar-toggle{top:35px;right:10px;width:30px;height:30px;background:#1f2226;border:1px solid #8d959c;box-shadow:0 5px 15px rgba(0,0,0,.28)}.sidebar-toggle:hover{background:#272b30;box-shadow:0 7px 18px rgba(59,109,240,.35);transform:scale(1.07)}
    .nav{display:flex;flex:1;flex-direction:column;min-height:0;padding:8px 0 0}.nav-section{margin:21px 0 6px;padding:0 12px;color:#6c757d;font-size:10px;letter-spacing:.13em}.nav-section:first-of-type{margin-top:16px}.nav-section-session{margin-top:15px}.nav-spacer{flex:1;min-height:18px}
    .nav a{gap:12px;padding:10px 12px;margin:2px 0;border-radius:10px;color:#9aa2a9;font-size:14px;font-weight:560}.nav a:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:transparent;transition:background .18s ease,box-shadow .18s ease}.nav a:hover{background:rgba(255,255,255,.1);color:#f1f3f5}.nav a:hover .ico{color:#86a8f7}.nav a.active{background:linear-gradient(90deg,#3b6df0,#2f57cc);box-shadow:0 9px 22px rgba(255,255,255,.25),inset 0 1px rgba(255,255,255,.17);color:#fff}.nav a.active:before{background:#9fbaf9;box-shadow:0 0 10px rgba(255,255,255,.85)}
    .ico{width:21px;height:21px;color:#b6bcc2}.nav a.active .ico{color:#fff}.ico svg{width:18px;height:18px;stroke-width:1.9}.nav-exit{color:#b6bcc2!important;border:1px solid transparent}.nav-exit:hover{color:#e28d98!important;background:rgba(159,38,57,.13)!important;border-color:rgba(255,104,125,.2)!important}.nav-exit:hover .ico{color:#e28d9a!important}
    .app.collapsed .sidebar{padding:16px 10px 14px}.app.collapsed .sidebar-brand{justify-content:center;padding:3px 0 13px;margin-bottom:2px;min-height:62px}.app.collapsed .sidebar .logo{width:48px;height:48px;margin:0;padding:0;box-shadow:0 7px 18px rgba(0,0,0,.32),0 0 0 3px rgba(59,109,240,.12)}.app.collapsed .sidebar-brand-copy{width:0;opacity:0}.app.collapsed .sidebar-toggle{top:76px;right:9px}.app.collapsed .nav{align-items:center;padding-top:5px}.app.collapsed .nav a{width:50px;height:46px;margin:2px 0;border-radius:13px}.app.collapsed .nav a:before{left:0;top:9px;bottom:9px}.app.collapsed .nav-divider{margin:7px 12px 6px}.app.collapsed .nav-spacer{flex:none;min-height:9px;height:9px}.app.collapsed .nav-exit{margin-top:0}.app.collapsed .nav-section-session{margin-top:8px}
    /* Sidebar premium: specification-led rebuild. */
    .app{grid-template-columns:430px minmax(0,1fr);transition:grid-template-columns 260ms cubic-bezier(.4,0,.2,1)}.main{grid-column:2}
    .app.collapsed{grid-template-columns:108px minmax(0,1fr)}
    .sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:430px;height:100vh;padding:22px 22px 18px;background:linear-gradient(180deg,#17191c 0%,#0e1012 100%);border-right:1px solid rgba(255,255,255,.18);box-shadow:inset -1px 0 rgba(255,255,255,.04);overflow-x:hidden;overflow-y:auto;transition:width 260ms cubic-bezier(.4,0,.2,1),padding 260ms cubic-bezier(.4,0,.2,1)}
    .sidebar:before{height:2px;background:linear-gradient(90deg,transparent,#c9761f 14%,#3b6df0 54%,transparent);opacity:.88}
    .sidebar-brand{min-height:125px;display:flex;align-items:center;gap:18px;padding:0 0 22px;margin:0;border-bottom:1px solid rgba(255,255,255,.18)}
    .sidebar .logo{width:92px;height:92px;margin:0;flex:none;padding:0;border:2px solid rgba(255,255,255,.75);box-shadow:0 8px 28px rgba(0,0,0,.28),0 0 0 5px rgba(255,255,255,.25)}
    .sidebar .logo img{padding:0;object-fit:contain}
    .sidebar-brand-copy{display:flex;flex:1;min-width:0;gap:7px;overflow:hidden}.sidebar-brand-copy strong{font-size:22px;line-height:1.1;font-weight:700;color:#f1f3f5;white-space:nowrap}.sidebar-brand-copy span{font-size:12px;font-weight:700;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:#8d959c;white-space:nowrap}
    .sidebar-toggle{position:static;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;color:#9aa2a9;background:rgba(255,255,255,.78);border:1px solid rgba(59,109,240,.65);border-radius:999px;box-shadow:none;transition:background 180ms ease,border-color 180ms ease,transform 180ms ease}.sidebar-toggle:hover{background:#1f2226;border-color:#6590f5;box-shadow:none;transform:translateX(-2px)}.sidebar-toggle svg{width:20px;height:20px;stroke-width:2;transition:transform 260ms cubic-bezier(.4,0,.2,1)}
    .nav{display:flex;flex:1;flex-direction:column;min-height:0;padding:22px 0 0}.nav-section{margin:26px 0 8px;padding:0 10px;max-height:none;opacity:1;color:#8d959c;font-size:12px;font-weight:700;letter-spacing:.18em;line-height:1.2;white-space:nowrap;transition:opacity 140ms ease,max-height 200ms ease,margin 200ms ease,padding 200ms ease}.nav-section:first-of-type{margin-top:0}.nav-divider{display:none;height:1px;flex:none;margin:15px auto;background:linear-gradient(90deg,transparent,rgba(59,109,240,.55),transparent);width:44px}
    .nav .nav-item{position:relative;display:flex;align-items:center;width:100%;height:58px;gap:14px;padding:0 16px;margin:3px 0;overflow:hidden;border:1px solid transparent;border-radius:14px;background:transparent;color:#d2d6da;font:500 15px/1 Inter,Geist,system-ui,sans-serif;text-align:left;cursor:pointer;white-space:nowrap;transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease,color 180ms ease}.nav .nav-item:hover{background:rgba(255,255,255,.06);color:#f1f3f5}.nav .nav-item:focus-visible,.sidebar-toggle:focus-visible,.sidebar-profile:focus-visible{outline:3px solid rgba(59,109,240,.45);outline-offset:2px}.nav .nav-item:active{transform:none}.nav .nav-item:before{content:"";position:absolute;left:-1px;top:11px;width:5px;height:34px;border-radius:0 5px 5px 0;background:transparent}.nav .nav-item.active{background:linear-gradient(90deg,#3b6df0 0%,#2f57cc 100%);border-color:rgba(59,109,240,.85);box-shadow:0 10px 24px rgba(255,255,255,.22),inset 0 1px rgba(255,255,255,.17);color:#fff;font-weight:700}.nav .nav-item.active:before{background:#9fbaf9;box-shadow:0 0 10px rgba(255,255,255,.68)}
    .nav .nav-item[aria-disabled=true]{color:#6c757d;cursor:not-allowed}.nav .nav-item[aria-disabled=true]:hover{background:transparent;color:#6c757d}
    .ico{width:34px;height:23px;flex:none;color:#b6bcc2}.ico svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nav .nav-item.active .ico{color:#fff}.nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;opacity:1;transition:opacity 120ms ease}.nav-chevron{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
    .sidebar-footer{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}.sidebar-profile{display:flex;align-items:center;width:100%;min-height:64px;gap:13px;padding:0;border:0;background:transparent;color:#f1f3f5;text-align:left;cursor:pointer}.sidebar-profile-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:#272b30;color:#e6e9eb;font-size:13px;font-weight:700}.sidebar-profile-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.sidebar-profile-copy strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile-copy small{font-size:13px;color:#b6bcc2}.sidebar-profile>svg{width:18px;height:18px;flex:none;stroke:#d2d6da;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .app.collapsed .sidebar{width:108px;padding:20px 14px}.app.collapsed .sidebar-brand{min-height:106px;justify-content:center;padding:0 0 18px;gap:0}.app.collapsed .sidebar .logo{width:72px;height:72px}.app.collapsed .sidebar-brand-copy,.app.collapsed .nav-label,.app.collapsed .nav-chevron,.app.collapsed .sidebar-profile-copy,.app.collapsed .sidebar-profile>svg{width:0;opacity:0;pointer-events:none}.app.collapsed .sidebar-toggle{position:absolute;top:126px;right:14px;width:40px;height:40px}.app.collapsed .sidebar-toggle svg{transform:rotate(180deg)}.app.collapsed .nav{align-items:center;padding-top:22px}.app.collapsed .nav-section{max-height:0;margin:0;padding:0;opacity:0;pointer-events:none}.app.collapsed .nav-divider{display:block}.app.collapsed .nav .nav-item{justify-content:center;width:68px;height:60px;gap:0;padding:0;margin:5px 0;border-radius:14px}.app.collapsed .nav .nav-item:before{left:-8px;top:15px;height:30px}.app.collapsed .ico{display:grid;place-items:center;width:25px;height:25px}.app.collapsed .ico svg{width:25px;height:25px}.app.collapsed .sidebar-footer{display:flex;justify-content:center;margin-top:16px;padding-top:18px}.app.collapsed .sidebar-profile{justify-content:center;width:48px;min-height:48px}.app.collapsed .sidebar-profile-avatar{width:48px;height:48px}
    .nav-tooltip{background:#131618;border-color:rgba(255,255,255,.25);border-radius:8px;color:#fff;padding:8px 12px;transition:opacity 150ms ease}.nav-tooltip:before{border-right-color:rgba(255,255,255,.25)}
    .app.collapsed .sidebar-toggle{background:linear-gradient(160deg,#1f2226,#181c1e);border:1px solid rgba(59,109,240,.5);box-shadow:0 6px 16px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.05)}
    .app.collapsed .sidebar-toggle:hover{background:linear-gradient(160deg,#272b30,#17191c);border-color:#6590f5;box-shadow:0 8px 20px rgba(59,109,240,.35),inset 0 1px rgba(255,255,255,.08);transform:scale(1.06)}
    /* Refined sidebar pass: 21st dashboard hierarchy adapted to the supplied luxury reference. */
    .sidebar{background:#131618;border-right-color:#272b30;box-shadow:none}
    .sidebar-brand{border-bottom-color:#272b30}.sidebar .logo{border-color:#31363c;box-shadow:none}
    .sidebar-brand-copy{gap:8px}.sidebar-brand-copy strong{letter-spacing:-.025em}.sidebar-brand-copy span{font-weight:650;color:#6c757d}.sidebar-toggle{background:linear-gradient(160deg,#1f2226,#131618);border-color:rgba(59,109,240,.55);color:#b6bcc2;box-shadow:0 4px 14px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.06)}.sidebar-toggle:hover{background:linear-gradient(160deg,#272b30,#1f2226);border-color:#6590f5;color:#fff;box-shadow:0 6px 18px rgba(59,109,240,.4),inset 0 1px rgba(255,255,255,.1)}
    .nav{padding-top:18px}.nav-section{padding-left:14px;padding-right:14px;margin-top:25px;margin-bottom:7px;color:#6c757d}.nav .nav-item{margin:2px 0;color:#b6bcc2}.nav .nav-item:hover{background:rgba(255,255,255,.06);color:#f1f3f5}.nav .nav-item:before{top:12px;width:4px}.nav .nav-item.active{background:#3b6df0;border-color:transparent;box-shadow:none}.nav .nav-item.active:before{background:#fff;box-shadow:none}.nav .nav-item.active .ico{color:#fff}
    .nav .nav-item[aria-disabled=true]{color:#6c757d;cursor:default}.nav .nav-item[aria-disabled=true]:hover{background:rgba(255,255,255,.04);color:#e6e9eb}.ico{display:grid;place-items:center;color:#9aa2a9}.sidebar-footer{border-top-color:#272b30}.sidebar-profile{padding:0 6px;border-radius:12px;transition:background 180ms ease}.sidebar-profile:hover{background:rgba(255,255,255,.06)}.sidebar-profile-avatar{border-color:#31363c;background:#1f2226}.sidebar-profile-copy small{color:#6c757d}.app.collapsed .nav{padding-top:24px}.nav-tooltip{border-color:#31363c;box-shadow:0 10px 22px rgba(0,0,0,.24)}.nav-tooltip:before{border-right-color:#31363c}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.attendance-page{display:grid;gap:18px}.attendance-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.attendance-summary{display:flex;gap:8px;flex-wrap:wrap}.attendance-summary span{padding:7px 10px;border:1px solid #272b30;border-radius:9px;background:#131618;color:#8d959c;font-size:12px}.attendance-summary b{color:#f1f3f5}.attendance-panel{padding:0;overflow:hidden}.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #272b30}.attendance-toolbar .toolbar-search{max-width:360px}.attendance-table th{padding:13px 20px;background:#131618}.attendance-table td{padding:14px 20px}.attendance-table tbody tr{transition:background 160ms ease}.attendance-table tbody tr:hover{background:#17191c}.attendance-client{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;color:#f1f3f5;font-weight:700;cursor:pointer;padding:0}.attendance-client:hover{color:#89aef5}.attendance-client:disabled{cursor:default}.attendance-client:disabled:hover{color:#f1f3f5}.attendance-avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#272b30;border:1px solid #31363c;color:#d2d6da;font-size:10px;font-weight:800}.attendance-service{color:#b6bcc2}.attendance-date{color:#6c757d;font-variant-numeric:tabular-nums}.attendance-open{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #31363c;border-radius:8px;background:#17191c;color:#b6bcc2;font-size:12px;font-weight:650;cursor:pointer}.attendance-open:hover{border-color:#6c757d;background:#1f2226;color:#fff}.attendance-open svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .appointment-detail{display:grid;gap:18px}.appointment-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;border:1px solid #272b30;border-radius:16px;background:#17191c}.appointment-kicker{margin:0 0 7px;color:#8fb2fb;font-size:11px;font-weight:750;letter-spacing:.13em}.appointment-hero h1{margin:0;font-size:30px;letter-spacing:-.035em}.appointment-hero p{margin:7px 0 0;color:#8d959c}.appointment-client-link{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid #31363c;border-radius:10px;background:#1f2226;color:#e6e9eb;font-size:12px;font-weight:700;cursor:pointer}.appointment-client-link:hover{background:#272b30}.appointment-client-link svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.appointment-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.appointment-metric{padding:17px;border:1px solid #272b30;border-radius:13px;background:#17191c}.appointment-metric span{display:block;color:#6c757d;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.09em}.appointment-metric b{display:block;margin-top:7px;font-size:22px;letter-spacing:-.03em}.appointment-card{padding:0;overflow:hidden}.appointment-card-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #272b30}.appointment-card-head h2{margin:0;font-size:17px}.appointment-card .table td,.appointment-card .table th{padding-left:22px;padding-right:22px}.appointment-total{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;border-top:1px solid #272b30;background:#131618}.appointment-total span{color:#8d959c;font-size:13px}.appointment-total b{font-size:17px}.client-profile-head{display:flex;align-items:center;gap:16px}.client-profile-avatar{display:grid;place-items:center;width:58px;height:58px;border:1px solid #3a4046;border-radius:18px;background:linear-gradient(145deg,#31363c,#1f2226);color:#e6e9eb;font-size:17px;font-weight:800}.client-profile-head h1{margin:0;font-size:29px}.client-profile-head p{margin:5px 0 0;color:#8d959c}.tabs .tab{border-left:0;border-right:0;border-top:0;background:transparent}.client-profile-tabs{margin-bottom:0}.client-history-action{border:0;background:transparent;color:#8fb2fb;font-size:12px;font-weight:700;cursor:pointer;padding:0}.client-history-action:hover{color:#c3c9ce}
    @media(max-width:900px){.app,.app.collapsed{grid-template-columns:1fr}.main{grid-column:1}.sidebar,.app.collapsed .sidebar{position:relative;width:100%;height:auto;min-height:auto;padding:16px 18px}.sidebar-brand,.app.collapsed .sidebar-brand{min-height:78px;justify-content:flex-start;padding:0 0 14px;gap:14px}.sidebar .logo,.app.collapsed .sidebar .logo{width:56px;height:56px}.sidebar-brand-copy,.app.collapsed .sidebar-brand-copy{width:auto;opacity:1;pointer-events:auto}.sidebar-brand-copy strong{font-size:17px}.sidebar-toggle,.app.collapsed .sidebar-toggle{position:static;margin-left:auto;width:40px;height:40px}.app.collapsed .sidebar-toggle svg{transform:rotate(180deg)}.nav,.app.collapsed .nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:stretch;padding-top:14px;gap:5px}.nav-section,.app.collapsed .nav-section{grid-column:1/-1;max-height:none;margin:10px 0 2px;padding:0 5px;opacity:1;pointer-events:auto}.nav-divider,.app.collapsed .nav-divider{display:none}.nav .nav-item,.app.collapsed .nav .nav-item{justify-content:flex-start;width:auto;height:52px;gap:11px;padding:0 12px;margin:0;border-radius:11px}.nav-label,.app.collapsed .nav-label{width:auto;opacity:1;pointer-events:auto}.nav-chevron,.app.collapsed .nav-chevron{width:16px;opacity:.8}.ico,.app.collapsed .ico{display:inline-flex;width:26px;height:23px}.ico svg,.app.collapsed .ico svg{width:21px;height:21px}.sidebar-footer,.app.collapsed .sidebar-footer{display:none}.attendance-heading,.appointment-hero{align-items:flex-start;flex-direction:column}.attendance-toolbar{align-items:stretch;flex-direction:column}.attendance-toolbar .toolbar-search{max-width:none}.appointment-metrics{grid-template-columns:1fr}.client-profile-head{align-items:flex-start}.attendance-table th:nth-child(2),.attendance-table td:nth-child(2),.attendance-table th:nth-child(6),.attendance-table td:nth-child(6){display:none}}
    @media(max-width:550px){.content{padding:20px 14px}.nav,.app.collapsed .nav{grid-template-columns:1fr 1fr}.nav .nav-item,.app.collapsed .nav .nav-item{font-size:13px}.appointment-hero{padding:20px}.appointment-hero h1{font-size:25px}.attendance-table th,.attendance-table td{padding-left:14px;padding-right:14px}.attendance-table th:nth-child(3),.attendance-table td:nth-child(3){display:none}.attendance-open{font-size:0;padding:8px}.attendance-open svg{margin:0}.client-profile-avatar{width:50px;height:50px}}
    /* Final sidebar proportions; fixed-size items scroll instead of compressing. */
    .attendance-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
    .attendance-stat{padding:20px 22px;background:#17191c;border:1px solid #272b30;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
    .attendance-stat small{display:block;color:#b6bcc2;font-size:12px;margin-bottom:8px}.attendance-stat strong{font-size:27px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.attendance-stat svg{width:25px;height:25px;stroke:#739af6;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.attendance-stat:first-child{border-color:#272b30}.attendance-stat:first-child svg{stroke:#6a94f5}
    .attendance-page .attendance-heading .page-head{margin-bottom:0}
    .attendance-page .attendance-toolbar{padding:18px 22px;gap:18px;flex-wrap:wrap}
    .attendance-page .chips{gap:5px;flex-wrap:wrap}.attendance-page .chip{border-radius:9px;padding:10px 12px}.attendance-page .chip b{margin-left:7px;font-size:10px;opacity:.75;font-variant-numeric:tabular-nums}
    .attendance-page .attendance-table td{height:72px;vertical-align:middle}.attendance-page .attendance-table th{font-size:10px;letter-spacing:.09em}
    .attendance-page .attendance-avatar{width:36px;height:36px;font-size:11px;background:#1f2226;border-color:#272b30}
    .attendance-page .attendance-client{gap:12px;text-align:left}.attendance-page .attendance-client small{display:block;margin-top:5px;color:#6c757d;font-size:10px;font-weight:500}
    .attendance-page .attendance-open{padding:9px 12px;min-height:36px}.attendance-page .badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.attendance-page .badge:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}
    .attendance-results{padding:14px 22px;border-top:1px solid #272b30;display:flex;justify-content:space-between;gap:12px;color:#6c757d;font-size:11px}.attendance-results strong{color:#9aa2a9}
    .attendance-page button:focus-visible{outline:2px solid #7199f6;outline-offset:3px}
    @media(max-width:650px){.attendance-overview{grid-template-columns:1fr;gap:8px}.attendance-stat{padding:13px 16px}.attendance-stat small{margin-bottom:3px}.attendance-stat strong{font-size:22px}.attendance-results{flex-wrap:wrap}.attendance-page .attendance-toolbar{padding:14px}.attendance-page .attendance-table td{height:76px}.attendance-page .attendance-open{font-size:12px}.attendance-page .attendance-client small{display:none}}
    .appointment-detail{width:100%;min-width:0;max-width:none;margin:0;gap:20px}
    .appointment-detail .back-link{justify-self:start;padding:8px 0;margin:0}
    .appointment-detail .appointment-hero{padding:26px 28px;background:#131618;align-items:center}
    .appointment-identity{display:flex;align-items:center;gap:18px}
    .appointment-mark{display:grid;place-items:center;flex:none;width:60px;height:60px;border-radius:18px;background:#272b30;border:1px solid #31363c;color:#9fbaf9;font-size:20px;font-weight:700}
    .appointment-detail .appointment-hero h1{font-size:28px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
    .appointment-detail .appointment-hero .badge{font-size:11px;letter-spacing:0}
    .appointment-detail .appointment-metric{padding:20px 22px;background:#131618;border-color:#272b30}
    .appointment-detail .appointment-metric:first-child{border-color:#284588;background:#131618}
    .appointment-detail .appointment-metric b{font-size:26px;font-variant-numeric:tabular-nums}
    .appointment-detail .appointment-metric small{display:block;color:#8d959c;font-size:11px;margin-top:7px}
    .appointment-detail .appointment-card-head{padding:22px 24px}.appointment-card-head p{margin:6px 0 0;font-size:12px;color:#6c757d}.appointment-item-count{padding:6px 10px;border:1px solid #272b30;border-radius:8px;color:#b6bcc2;font-size:12px;white-space:nowrap}
    .appointment-editor{padding:22px 24px;display:grid;grid-template-columns:minmax(200px,.8fr) minmax(250px,1.2fr);gap:22px;background:#131618;border-bottom:1px solid #272b30}
    .appointment-editor .f-field{margin:0}.appointment-editor label{font-size:12px;margin-bottom:9px}.appointment-editor select{height:46px;min-width:0;border-radius:10px;background:#131618;border-color:#272b30;color:#f1f3f5}
    .appointment-add{display:flex;gap:10px}.appointment-add select{flex:1;width:0}.appointment-add .btn{min-height:46px;box-shadow:none}
    .appointment-pro-field{max-width:340px}
    .service-pick-hint{margin:0 0 12px;color:#6c757d;font-size:12px}
    .service-pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
    .service-pick{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 14px;border:1px solid #31363c;border-radius:12px;background:#17191c;color:#f1f3f5;font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .12s}
    .service-pick:hover{background:#1f2226;border-color:#3b6df0}
    .service-pick:active{transform:scale(.985)}
    .service-pick-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .service-pick-price{color:#8d959c;font-weight:650;white-space:nowrap}
    .product-pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
    .product-pick{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 14px;border:1px solid #31363c;border-radius:12px;background:#17191c;color:#f1f3f5;font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:.15s ease}
    .product-pick:hover:not(:disabled){background:#1f2226;border-color:#3b6df0}
    .product-pick:disabled{opacity:.45;cursor:not-allowed}
    .product-pick b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .product-pick-stock{display:block;margin-top:2px;color:#8d959c;font-size:11.5px}
    .product-pick-price{color:#8d959c;font-weight:650;white-space:nowrap}
    .product-pick-add{color:#6590f5;font-size:17px;line-height:1}
    .item-kind{display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:99px;background:#15352a;color:#6fd6a3;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;vertical-align:middle}
    .item-qtd{display:block;margin-top:3px;color:#8d959c;font-size:11.5px}
    .service-pick svg{flex:none;width:17px;height:17px;stroke:#8fb2fb;fill:none;stroke-width:2.2;stroke-linecap:round}
    .service-pick.is-added{border-color:#23272b;background:#131618;color:#5a6167;cursor:not-allowed}
    .service-pick.is-added:hover{background:#131618;border-color:#23272b;transform:none}
    .service-pick.is-added .service-pick-name{text-decoration:line-through;text-decoration-color:#4a5157}
    .service-pick.is-added .service-pick-price{color:#4a5157}
    .service-pick.is-added svg{stroke:#4d6f5c}
    .appointment-detail .table th{padding-top:14px;padding-bottom:14px;font-size:10px;letter-spacing:.07em;background:#131618}
    .appointment-detail .table td{height:66px;font-variant-numeric:tabular-nums}.appointment-detail .table td:first-child{font-weight:650}
    .appointment-detail .table .btn-danger{background:transparent;border-color:transparent;color:#cc8d98}.appointment-detail .table .btn-danger:hover{background:#321b26;border-color:#64313c}
    .appointment-detail .appointment-total{padding:20px 24px}.appointment-detail .appointment-total b{font-size:23px}
    .appointment-actions{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #272b30;background:#17191c}
    .appointment-actions p{font-size:12px;color:#8d959c;margin:0;max-width:380px;line-height:1.6}.appointment-action-buttons{display:flex;gap:10px;flex-wrap:wrap}.appointment-actions .btn{min-height:44px;box-shadow:none}.appointment-actions .btn-danger{background:transparent;border-color:#533340;color:#de9ca8}
    .appointment-detail button:focus-visible,.appointment-detail select:focus-visible{outline:2px solid #739af6;outline-offset:3px}
    @media(max-width:800px){.appointment-editor{grid-template-columns:1fr}.appointment-actions{align-items:stretch;flex-direction:column}.appointment-action-buttons .btn{flex:1}.appointment-detail .appointment-hero{padding:20px}.appointment-identity{align-items:flex-start;gap:12px}.appointment-mark{width:44px;height:44px;border-radius:12px;font-size:16px}.appointment-detail .appointment-hero h1{font-size:23px}.appointment-detail .appointment-hero p{font-size:12px}.appointment-detail .appointment-metrics{gap:8px}.appointment-detail .appointment-metric{padding:15px 18px}.appointment-detail .appointment-metric b{font-size:23px}.appointment-editor{padding:18px}.appointment-detail .table{min-width:580px}}
    .sidebar .nav-item[aria-disabled=true]{display:none}
    #modoSuporteBanner{grid-column:2!important;min-width:0;flex-wrap:wrap;align-self:start}
    #modoSuporteBanner[hidden]{display:none!important}
    .app{grid-template-rows:auto 1fr}
    .main{grid-row:2}
    @media(min-width:901px){
      .app{grid-template-columns:320px minmax(0,1fr)}
      .app.collapsed{grid-template-columns:88px minmax(0,1fr)}
      .sidebar{width:320px;padding:18px 16px;display:flex;flex-direction:column}
      .sidebar-brand{flex:none;min-height:94px;gap:12px;padding:0 0 18px}
      .sidebar .logo{width:64px;height:64px}
      .sidebar-brand-copy strong{font-size:17px;letter-spacing:-.025em}
      .sidebar-brand-copy span{font-size:9px;letter-spacing:.12em}
      .sidebar-toggle{width:34px;height:34px}
      .sidebar .nav{flex:1 1 auto;min-height:0;padding-top:16px}
      .sidebar .nav .nav-item{flex:none;height:50px;gap:10px;padding:0 12px}
      .sidebar .nav-section{flex:none;margin-top:20px;font-size:10px}
      .sidebar .nav-section:first-of-type{margin-top:20px}
      .sidebar .ico{width:28px}
      .sidebar-footer{flex:none;margin-top:20px}
      .app.collapsed .sidebar{width:88px;padding:18px 10px}
      .app.collapsed .sidebar-brand{min-height:auto;flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;padding-bottom:14px}
      .app.collapsed .sidebar .logo{width:56px;height:56px}
      .app.collapsed .sidebar-toggle{position:static;width:30px;height:30px;margin:0 auto}
      .app.collapsed .sidebar-brand-copy,.app.collapsed .nav-label,.app.collapsed .nav-chevron,.app.collapsed .sidebar-profile-copy,.app.collapsed .sidebar-profile>svg{position:absolute;flex:none;width:0;overflow:hidden}
      .app.collapsed .sidebar .nav{padding-top:12px}
      .app.collapsed .sidebar .nav .nav-item{width:52px;height:52px;flex:none;padding:0;gap:0;margin:5px 0;overflow:visible;border-radius:50%;justify-content:center;background:#272b30}
      .app.collapsed .sidebar .nav .nav-item:hover{background:#272b30}
      .app.collapsed .sidebar .nav .nav-item.active{box-shadow:0 0 24px rgba(59,109,240,.35)}
      .app.collapsed .sidebar .ico{width:24px;height:24px;margin:0;flex:none}
      .app.collapsed .sidebar .ico svg{width:24px;height:24px}
      .app.collapsed .sidebar .nav-section{height:0;max-height:0;margin:0;padding:0;line-height:0}
      .app.collapsed .nav .nav-item:before{left:-4px;top:11px;height:28px;width:3px;border-radius:3px}
      .app.collapsed .nav-divider{margin:11px auto;width:36px}
      .app.collapsed .sidebar-profile{padding:0;gap:0}
    }
    @media(max-width:900px){#modoSuporteBanner{grid-column:1!important;grid-row:1}.sidebar{grid-row:2}.main{grid-row:3}}
    @media(prefers-reduced-motion:reduce){.app,.sidebar,.sidebar-toggle svg{transition:none}}

    /* Produtos: catálogo, estoque e relatório. */
    .product-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:0 0 18px}.product-toolbar h1{margin:0;font-size:30px;letter-spacing:-.035em}.product-toolbar p{margin:7px 0 0;color:var(--muted);font-size:13px}.product-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.product-seg-tabs{margin-bottom:22px}.product-metrics{margin-bottom:18px}.product-alerts{display:grid;gap:9px;margin:0 0 18px}.product-alert{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #4a5157;border-radius:12px;background:#17191c;font-size:13px}.product-alert b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:14px}.product-alert span{flex:1;color:#d2d6da}.product-alert button{border:0;background:none;color:#8fb2fb;font-size:12px;font-weight:700;cursor:pointer}.product-alert.critical{border-color:#6f3540;background:#231519}.product-alert.critical b{background:#4a0c14;color:#ff9da7}.product-alert.low{border-color:#634b2b;background:#211c15}.product-alert.low b{background:#4c3418;color:#ffd287}.product-panel{padding:0;overflow:hidden}.product-table-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.product-table-head .toolbar-search{max-width:330px}.product-filters{display:flex;gap:6px;flex-wrap:wrap}.product-filters .filter{padding:7px 10px;font-size:11px}.product-cell{display:flex;align-items:center;gap:11px}.product-cell img,.product-placeholder{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;object-fit:cover;background:#272b30;border:1px solid #3a4046;color:#8fb2fb;font-size:17px}.product-cell b,.product-cell small{display:block}.product-cell small,.product-table td>small{margin-top:3px;color:var(--muted);font-size:11px}.product-discount{display:block;color:#7bc86c;font-weight:700}.stock-number{display:block;font-variant-numeric:tabular-nums;font-weight:700}.stock-number.baixo{color:#f0bd72}.stock-number.zerado{color:#f0808a}.product-actions{display:flex;gap:6px;flex-wrap:wrap}.product-actions .btn{min-height:32px;padding:0 9px;font-size:11px}.product-dashboard-metrics{margin-bottom:18px}.product-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.product-report{padding:20px}.product-report .panel-title{margin-bottom:13px}.product-report-row,.product-move{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.product-report-row:first-of-type,.product-move:first-of-type{border-top:0}.product-report-row>div,.product-move>div{flex:1;min-width:0}.product-report-row b,.product-report-row small,.product-move b,.product-move small{display:block}.product-report-row small,.product-move small,.product-move time{color:var(--muted);font-size:11px;margin-top:4px}.product-report-row strong{font-size:14px}.product-move-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid #3a4046;border-radius:9px;background:#272b30;color:#8fb2fb;font-weight:800}.product-move-icon.entrada{color:#8fd47f;background:#18261b;border-color:#26402a}.product-move time{white-space:nowrap}.product-form .modal-body,.stock-form .modal-body{overflow:auto;padding:24px 28px;min-height:0}.product-form .form-section{padding:0 0 22px}.product-form .form-section+.form-section{border-top:1px solid var(--line);padding-top:22px}.product-number-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.product-commission-grid{grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);align-items:end}.product-checkbox{display:flex;align-items:center;gap:9px;color:#d2d6da;font-size:12px;margin:0 0 15px;cursor:pointer}.product-checkbox input{accent-color:var(--blue);width:16px;height:16px}.product-photo-picker{display:flex;align-items:center;gap:15px}.product-photo-preview{display:grid;place-items:center;width:72px;height:72px;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#131618;color:var(--muted);font-size:11px}.product-photo-preview img{width:100%;height:100%;object-fit:cover}.product-photo-picker input{font-size:11px;max-width:240px}.product-link{display:block;border:0;background:none;color:#8fb2fb;font-size:11px;padding:8px 0 0;cursor:pointer}.product-form-error{margin:14px 0 0;color:#e28d96;font-size:12px}.product-form-error:empty{display:none}.stock-form{display:flex;flex-direction:column;max-height:min(520px,calc(100dvh - 40px))}.stock-form .modal-body{padding-bottom:20px}.product-form .modal-foot,.stock-form .modal-foot{position:static;display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;background:var(--panel);border-top:1px solid var(--line)}
    @media(max-width:850px){.product-dashboard-grid{grid-template-columns:1fr}.product-number-grid{grid-template-columns:1fr 1fr}.product-commission-grid{grid-template-columns:1fr}.product-toolbar{align-items:flex-start;flex-direction:column}.product-table th:nth-child(2),.product-table td:nth-child(2){display:none}}
    @media(max-width:600px){.product-toolbar-actions{width:100%}.product-toolbar-actions .btn{flex:1}.product-alert{align-items:flex-start;flex-wrap:wrap}.product-alert button{margin-left:34px}.product-table-head{padding:14px}.product-table-head .toolbar-search{max-width:none;width:100%}.product-filters{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.product-filters .filter{white-space:nowrap}.product-table th:nth-child(5),.product-table td:nth-child(5){display:none}.product-actions .btn:nth-child(4){display:none}.product-form .modal-body,.stock-form .modal-body{padding:20px}.product-number-grid{grid-template-columns:1fr}.product-photo-picker{align-items:flex-start;flex-direction:column}.product-form .modal-foot,.stock-form .modal-foot{padding:14px 20px}.product-form .modal-foot .service-foot-note{display:none}}
    @media(prefers-reduced-motion:reduce){.product-alert,.product-actions .btn{transition:none!important}}
    .product-toolbar{align-items:center;min-height:46px}.product-seg-tabs{width:auto;margin:0;flex:none}.product-seg-tabs .seg-tab{min-width:118px}.modal:has(.product-form){width:min(1120px,calc(100vw - 40px));height:min(880px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden;display:flex}.product-form{width:100%;height:100%;max-height:none;display:flex;flex-direction:column}.product-form .modal-head{flex:none;padding:26px 30px;background:linear-gradient(100deg,#1a2028,#17191c);border-bottom:1px solid var(--line)}.product-form .modal-body{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(290px,.88fr);gap:0 28px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;padding:0 30px;background:#15181b}.product-form .modal-body::-webkit-scrollbar{display:none;width:0;height:0}.product-form .form-section{padding:24px 0}.product-form .product-info-section{grid-row:span 2;border-right:1px solid var(--line);padding-right:28px}.product-form .product-stock-section{border-top:0!important}.product-form .product-commission-section{border-top:1px solid var(--line)}.product-form .product-number-grid{grid-template-columns:1fr 1fr;gap:14px}.product-form .product-commission-grid{grid-template-columns:1fr}.product-form .service-status{padding:13px 14px;border:1px solid var(--line2);border-radius:11px;background:#1a1d21}.product-form .product-photo-picker{padding:14px;border:1px dashed #4a5157;border-radius:13px;background:#17191c}.product-form .product-photo-preview{width:88px;height:88px;border-radius:14px}.product-form .modal-foot{position:static;flex:none;padding:18px 30px;background:#17191c}.product-form .service-heading h2{font-size:25px}.product-form .service-heading p{max-width:460px}.product-form .service-section-head{margin-bottom:17px}.product-form .product-checkbox{padding:11px 12px;border:1px solid #31363c;border-radius:10px;background:#17191c}.product-form input:disabled{opacity:.58;cursor:not-allowed}
    @media(max-width:850px){.product-form .modal-body{grid-template-columns:1fr;padding:0 24px}.product-form .product-info-section{grid-row:auto;border-right:0;padding-right:0}.product-form .product-stock-section{border-top:1px solid var(--line)!important}.product-form .modal-head,.product-form .modal-foot{padding-left:24px;padding-right:24px}}
    @media(max-width:600px){.product-toolbar{align-items:stretch}.product-seg-tabs{width:100%}.product-seg-tabs .seg-tab{flex:1;min-width:0}.modal:has(.product-form){width:calc(100vw - 20px)}.product-form{max-height:calc(100dvh - 20px)}.product-form .modal-head{padding:20px}.product-form .modal-body{padding:0 20px}.product-form .modal-foot{padding:14px 20px}.product-form .product-number-grid{grid-template-columns:1fr}.product-form .product-photo-picker{padding:12px}}
    .modal:has(.product-category-form){width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 40px);overflow:hidden}.product-category-form{display:flex;flex-direction:column;max-height:calc(100dvh - 42px)}.product-category-form .modal-head{padding:24px 28px}.product-category-form .modal-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;padding:22px 28px}.product-category-form .modal-body::-webkit-scrollbar{display:none;width:0;height:0}.product-category-form .modal-foot{position:static;flex:none;padding:16px 28px}.product-category-create{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:16px;border:1px solid #31363c;border-radius:13px;background:#17191c}.product-category-create .f-field{margin:0}.product-category-create .btn{min-height:44px}.product-category-list{margin-top:20px;border:1px solid #31363c;border-radius:13px;overflow:hidden;background:#17191c}.product-category-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.product-category-list-head h3{margin:0;font-size:14px}.product-category-list-head span{color:var(--muted);font-size:11px}.product-category-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-top:1px solid var(--line)}.product-category-row:first-of-type{border-top:0}.product-category-row b,.product-category-row small{display:block}.product-category-row b{font-size:13px}.product-category-row small{margin-top:4px;color:var(--muted);font-size:11px}.product-category-actions{display:flex;gap:7px;flex:none}.product-category-actions .btn{min-height:32px;padding:0 10px;font-size:11px}.product-category-empty{padding:30px 18px;text-align:center;color:var(--muted);font-size:12px}.product-category-form .product-form-error{margin:10px 0 0}
    @media(max-width:600px){.modal:has(.product-category-form){width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.product-category-form{max-height:calc(100dvh - 22px)}.product-category-form .modal-head,.product-category-form .modal-body,.product-category-form .modal-foot{padding-left:20px;padding-right:20px}.product-category-create{grid-template-columns:1fr}.product-category-create .btn{width:100%}.product-category-row{align-items:flex-start;flex-direction:column}.product-category-actions{width:100%}.product-category-actions .btn{flex:1}}
    /* keep the logout/profile button always visible; scroll only the nav list */
    .sidebar{overflow-y:hidden;display:flex;flex-direction:column}
    .sidebar .nav{overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:none;-ms-overflow-style:none}
    .sidebar .nav::-webkit-scrollbar{display:none;width:0;height:0}
    .sidebar-footer{flex:none}

/* CRM product sales showcase */
.sales-page{display:grid;gap:20px}.sales-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}.sales-catalog{padding:0;overflow:hidden}.sales-catalog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}.sales-catalog-head small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.sales-catalog-head .toolbar-search{max-width:360px}.sales-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:11px;padding:14px}.sales-product-card{position:relative;display:flex;flex-direction:column;gap:7px;min-height:248px;overflow:hidden;padding:9px;border:1px solid #263f54;border-radius:12px;background:linear-gradient(155deg,#132535 0%,#0d1823 72%,#0a131c 100%);box-shadow:0 10px 22px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.035);transition:transform .24s cubic-bezier(.23,1,.32,1),border-color .24s ease,box-shadow .24s ease,opacity .16s ease}.sales-product-card:hover{border-color:#478cdd;box-shadow:0 20px 38px rgba(0,0,0,.34),0 0 0 1px rgba(82,158,246,.12);transform:translateY(-5px)}.sales-product-card.out{opacity:.54}.sales-product-card.is-filtered-out{opacity:0;pointer-events:none;transform:scale(.94) translateY(5px)}.sales-product-card[hidden]{display:none}.sales-product-visual{position:relative;display:grid;place-items:center;height:104px;overflow:hidden;border:1px solid rgba(118,174,232,.16);border-radius:11px;background:radial-gradient(circle at 50% 15%,#2b4961 0%,#162b3b 45%,#0d1b27 100%);color:#8fc4ff;font-size:22px}.sales-product-visual:after{content:"";position:absolute;inset:auto 14% -28px;height:52px;border-radius:50%;background:rgba(0,0,0,.4);filter:blur(16px)}.sales-product-visual img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;filter:contrast(1.05) brightness(1.08);transition:transform .45s cubic-bezier(.23,1,.32,1),filter .3s ease}.sales-product-card:hover .sales-product-visual img{filter:contrast(1.08) brightness(1.14);transform:scale(1.075)}.sales-product-category{display:inline-flex;align-self:flex-start;margin-top:2px;padding:3px 7px;border:1px solid rgba(99,167,246,.2);border-radius:999px;background:rgba(37,97,160,.18);color:#93c7ff;font-size:8.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.sales-product-card h3{margin:0;font-size:13.5px;line-height:1.25;letter-spacing:-.015em}.sales-product-meta{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:8px;padding-top:3px}.sales-product-meta b{font-size:17px;letter-spacing:-.035em}.sales-product-meta small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.sales-product-meta>small{padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.045);color:#a9b9c9}.sales-product-card .btn{width:100%;min-height:36px;font-size:13px;border:1px solid rgba(176,218,255,.24);box-shadow:0 8px 16px rgba(12,77,173,.3)}.sales-product-card .btn:active{transform:scale(.97)}.sales-cart{position:sticky;top:16px;height:calc(100dvh - 150px);min-height:590px;display:flex;flex-direction:column;padding:0;overflow:hidden}.sales-cart-head{padding:18px 20px;border-bottom:1px solid var(--line)}.sales-cart-head h2{margin:0;font-size:17px}.sales-cart-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.sales-customer{padding:14px 20px;border-bottom:1px solid var(--line)}.sales-customer label{display:block;margin-bottom:7px;font-size:12px;font-weight:700}.sales-customer label span{color:var(--muted);font-weight:400}.sales-customer-input{width:100%;height:43px!important;padding:0 13px!important;border:1px solid #31475c!important;border-radius:10px!important;background:#0d1b28!important;color:#eef6ff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;caret-color:#67adff!important}.sales-customer-input::placeholder{color:#70859a!important}.sales-customer-input:focus{outline:0!important;border-color:#397fe5!important;box-shadow:0 0 0 3px rgba(48,126,238,.18),inset 0 1px 0 rgba(255,255,255,.03)!important}.sales-customer-results{position:relative;z-index:3;display:grid;gap:4px;max-height:190px;overflow:auto;padding:5px;margin-top:8px;border:1px solid #2d4660;border-radius:11px;background:#0b1722;box-shadow:0 14px 28px rgba(0,0,0,.28)}.sales-customer-results:empty{display:none}.sales-customer-result{border:1px solid var(--line);border-radius:9px;background:#17191c;color:var(--text);text-align:left;padding:9px 10px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.sales-customer-result:hover{border-color:#397fe5;background:#132b40}.sales-customer-result b,.sales-customer-result small,.sales-customer-selected small{display:block}.sales-customer-result small,.sales-customer-selected small{margin-top:2px;color:var(--muted);font-size:11px}.sales-customer-loading{padding:9px 10px;color:#84a5c7;font-size:12px}.sales-customer-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid #285080;border-radius:10px;background:#10253a}.sales-customer-selected small{color:#9cb3cb}.sales-customer-selected button{border:0;background:none;color:#9ac7ff;cursor:pointer;font-weight:700}.sales-cart-items{display:grid;gap:8px;flex:1;min-height:0;overflow:auto;padding:15px 20px}.sales-cart-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.sales-cart-line:last-child{border-bottom:0}.sales-cart-line b,.sales-cart-line small{display:block}.sales-cart-line small{margin-top:3px;color:var(--muted);font-size:11px}.sales-qty{display:flex;align-items:center;gap:5px}.sales-qty button{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line2);border-radius:7px;background:#17191c;color:var(--text);font-size:16px;cursor:pointer}.sales-qty span{min-width:18px;text-align:center;font-size:12px;font-weight:700}.sales-summary{flex:none;padding:16px 20px;border-top:1px solid var(--line);background:#14171a}.sales-total{display:flex;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid var(--line);color:var(--text);font-size:14px;font-weight:800}.sales-total b{font-size:20px}.sales-checkout{flex:none;padding:16px 20px 20px;background:#17191c;border-top:1px solid var(--line);box-shadow:0 -10px 20px rgba(0,0,0,.12)}.sales-checkout .btn{width:100%;min-height:48px}.sales-empty{padding:32px 20px;text-align:center;color:var(--muted);font-size:12px}.sales-success{margin:0;padding:12px 20px;color:#76df9f;font-size:12px}@media(max-width:1200px){.sales-product-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media(max-width:900px){.sales-layout{grid-template-columns:1fr}.sales-cart{position:static;height:auto;min-height:0}.sales-cart-items{max-height:320px;flex:none}.sales-product-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media(max-width:620px){.sales-catalog-head{align-items:flex-start;flex-direction:column}.sales-catalog-head .toolbar-search{max-width:none;width:100%}.sales-product-grid{grid-template-columns:1fr 1fr;padding:11px}.sales-product-card{min-height:225px;padding:10px}}


/* ===========================================================================
   CELULAR E TABLET
   ---------------------------------------------------------------------------
   A sidebar de 14 itens virava 1076px de menu no topo em 390px de largura.
   Aqui ela sai e entra um dock fixo no rodapé, na zona do polegar, no
   formato pill: o item ativo abre o rótulo, os demais ficam só com o ícone.
   Alvo de toque mínimo de 44px e safe area respeitada em tudo que é fixo.
   =========================================================================== */

/* o dock só existe em tela pequena */
.dock,.sheet,.sheet-backdrop{display:none}

@media(max-width:900px){

  /* --- shell ------------------------------------------------------------ */
  /* Sem a sidebar, a linha dela (1fr) continuava reservada e empurrava o
     conteúdo para baixo — no tablet isso deixava uma faixa preta no topo.
     O conteúdo volta para a segunda linha, logo abaixo do banner. */
  .app,.app.collapsed{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .sidebar,.app.collapsed .sidebar{display:none}
  .main{grid-column:1;grid-row:2}
  #modoSuporteBanner{grid-row:1}

  /* o dock cobre o rodapé: o conteúdo precisa terminar acima dele */
  .content{padding:18px 14px calc(104px + env(safe-area-inset-bottom))}

  /* --- topbar ----------------------------------------------------------- */
  .topbar{
    position:sticky;top:0;height:60px;gap:10px;
    padding:0 14px calc(0px + env(safe-area-inset-top));
  }
  .topbar-title{display:none}
  .top-spacer{display:none}
  .search{max-width:none;flex:1;min-width:0}
  .search input{height:44px;font-size:16px;padding-left:40px}   /* 16px evita o zoom do iOS no foco */
  .search svg{left:13px}
  .notif,.wf-notif-button{display:grid;place-items:center;width:44px;height:44px;flex:none}
  /* no celular o nome não cabe: fica o avatar, que já é o alvo de toque */
  .user>div:not(.avatar){display:none}
  .user{gap:0}
  .avatar{width:40px;height:40px}

  /* --- dock: tab bar flutuante com ação central ------------------------- */
  .dock{
    position:fixed;z-index:60;
    left:50%;transform:translateX(-50%);
    bottom:calc(10px + env(safe-area-inset-bottom));
    display:flex;align-items:center;justify-content:center;gap:2px;
    width:max-content;max-width:calc(100vw - 20px);
    padding:8px 10px;border-radius:26px;
    border:1px solid rgba(255,255,255,.07);background:rgba(20,23,27,.82);
    backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);
    box-shadow:0 14px 40px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05)
  }
  .dock[hidden]{display:none}

  .dock-item{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:none;
    min-width:62px;min-height:52px;padding:5px 6px 4px;
    border:0;border-radius:16px;background:transparent;color:#8d959c;
    font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;
    transition:color .2s ease,transform .14s ease
  }
  .dock-item:active{transform:scale(.93)}
  .dock-item.active{color:#7aa8fb}
  /* o realce fica atrás do ícone, como na tab bar do iOS */
  .dock-ico{
    display:grid;place-items:center;width:38px;height:28px;border-radius:11px;
    transition:background .22s cubic-bezier(.22,1,.3,1)
  }
  .dock-item.active .dock-ico{background:rgba(59,109,240,.2)}
  .dock-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round}
  .dock-label{font-size:10.5px;font-weight:600;letter-spacing:-.01em;line-height:1;
    white-space:nowrap;max-width:68px;overflow:hidden;text-overflow:ellipsis}
  .dock-item.active .dock-label{font-weight:700}

  /* botão de ação: sobe acima da barra, é o alvo mais fácil do polegar */
  .dock-acao{
    display:grid;place-items:center;flex:none;
    width:54px;height:54px;margin:-20px 8px 0;
    border:0;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent;
    background:linear-gradient(160deg,#4d7dff,#2f57cc);color:#fff;
    box-shadow:0 10px 24px rgba(47,87,204,.5),0 0 0 4px rgba(20,23,27,.85);
    transition:transform .16s ease,box-shadow .22s ease
  }
  .dock-acao:active{transform:scale(.92)}
  .dock-acao svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
  .dock-acao[aria-expanded="true"]{transform:rotate(45deg)}

  @media(max-width:379px){
    .dock{padding:7px 6px;gap:0}
    .dock-item{min-width:54px;padding:5px 3px 4px}
    .dock-label{font-size:10px;max-width:56px}
    .dock-acao{width:50px;height:50px;margin:-18px 5px 0}
  }

  /* --- folhas: menu e ações -------------------------------------------- */
  .sheet-backdrop{
    display:block;position:fixed;inset:0;z-index:70;
    background:rgba(0,0,0,.5);backdrop-filter:blur(3px);
    opacity:0;transition:opacity .24s ease
  }
  .sheet-backdrop.aberto{opacity:1}
  .sheet-backdrop[hidden]{display:none}

  .sheet{
    display:flex;flex-direction:column;
    position:fixed;z-index:71;left:0;right:0;bottom:0;
    max-height:min(84dvh,660px);
    padding-bottom:calc(12px + env(safe-area-inset-bottom));
    border-radius:26px 26px 0 0;
    border-top:1px solid rgba(255,255,255,.08);
    background:rgba(22,25,29,.96);
    backdrop-filter:blur(26px) saturate(1.3);-webkit-backdrop-filter:blur(26px) saturate(1.3);
    box-shadow:0 -20px 50px rgba(0,0,0,.55);
    transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.3,1);
    touch-action:none
  }
  .sheet.aberto{transform:translateY(0)}
  .sheet[hidden]{display:none}
  .sheet-alca{width:38px;height:4px;border-radius:2px;background:#454b52;margin:10px auto 0}
  .sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px 10px}
  .sheet-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.025em}
  .sheet-fechar{display:grid;place-items:center;width:34px;height:34px;flex:none;
    border:0;border-radius:50%;background:#262b31;color:#c2c8ce;cursor:pointer;
    position:relative}
  .sheet-fechar::after{content:'';position:absolute;inset:-6px}   /* alvo de 46px sem engordar o botão */
  .sheet-fechar svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
  .sheet-corpo{overflow:auto;padding:0 12px 6px;touch-action:pan-y;-webkit-overflow-scrolling:touch}

  /* Duas colunas: em coluna única as 14 seções exigem rolagem, e o que
     interessa num menu é ver tudo de uma vez. */
  .sheet-lista{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0;padding:0;list-style:none}
  .sheet-item{
    display:flex;align-items:center;gap:10px;width:100%;
    min-height:52px;padding:0 10px;
    border:0;border-radius:14px;background:transparent;
    color:#e7eaed;font:inherit;font-size:13.5px;font-weight:600;text-align:left;
    cursor:pointer;-webkit-tap-highlight-color:transparent;
    transition:background .16s ease
  }
  .sheet-item>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sheet-item:active{background:#272c33}
  .sheet-item[aria-current="page"],.sheet-item.active{background:rgba(59,109,240,.16);color:#a8c4fb}
  .sheet-ico{display:grid;place-items:center;width:32px;height:32px;flex:none;
    border-radius:10px;background:#20242a;color:#8fb2fb}
  .sheet-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round}
  /* a folha de ações tem poucos itens e textos longos: segue em coluna única */
  #sheetAcoes .sheet-lista{grid-template-columns:1fr}
  #sheetAcoes .sheet-item{font-size:15px;gap:14px;padding:0 12px}
  .sheet-sair{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
    min-height:50px;margin:12px 0 0;
    border:1px solid #2b3036;border-radius:14px;background:transparent;
    color:#e28d96;font:inherit;font-size:14px;font-weight:650;cursor:pointer
  }
  .sheet-sair:active{background:#231519}
  .sheet-sair svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round}

  body.sem-rolagem{overflow:hidden}

  /* --- faixas de indicadores (todas as abas) ---------------------------- */
  /* O CSS antigo empilhava os cartões abaixo de 550px. A regra agora é
     caber tudo numa linha: dois, três ou os quatro do painel. */
  .cards{grid-template-columns:1fr 1fr;gap:10px}
  .card.metric{min-height:0}
  /* exatamente três cartões: três colunas */
  .cards:has(.card:nth-child(3)):not(:has(.card:nth-child(4))){grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  /* cinco ou mais: volta a duas colunas e o último ímpar fecha a linha */
  .cards:has(.card:nth-child(5)):not(:has(.hero-accent)){grid-template-columns:1fr 1fr;gap:10px}
  .cards:has(.card:nth-child(5)):not(:has(.hero-accent)) .card.metric:last-child:nth-child(odd){grid-column:1/-1}

  /* cartão estreito (faixas de três, e os quatro do painel): rótulo menor,
     duas linhas para alinhar os números, e o complemento sai */
  :is(.cards:has(.hero-accent),
      .cards:has(.card:nth-child(3)):not(:has(.card:nth-child(4)))) .card.metric:not(.hero-accent){padding:11px 9px}
  :is(.cards:has(.hero-accent),
      .cards:has(.card:nth-child(3)):not(:has(.card:nth-child(4)))) .card.metric:not(.hero-accent) .label{
    font-size:9.5px;letter-spacing:.02em;line-height:1.2;min-height:2.4em;overflow-wrap:anywhere}
  :is(.cards:has(.hero-accent),
      .cards:has(.card:nth-child(3)):not(:has(.card:nth-child(4)))) .card.metric:not(.hero-accent) .value{
    font-size:19px;margin:2px 0 0}
  :is(.cards:has(.hero-accent),
      .cards:has(.card:nth-child(3)):not(:has(.card:nth-child(4)))) .card.metric:not(.hero-accent) .trend{display:none}

  /* --- alvos de toque que estavam abaixo do mínimo ---------------------- */
  .filter,.seg-tab,.chip,.wf-report-tabs button,.product-filters .filter{min-height:44px}
  .filter,.chip{display:inline-flex;align-items:center;padding:0 14px}
  .btn,.btn-sm{min-height:44px}
  .table td .btn-sm,.product-actions .btn{min-height:40px}
  .panel-head .filter{padding:0 12px}

  /* modais viram folhas: nascem do rodapé e respeitam a safe area */
  .modal{max-height:calc(100dvh - 24px)}
  .modal-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
}

/* ---------------------------------------------------------------------------
   TABLET — mesmo dock do celular, centrado no rodapé, só que mais folgado.
   --------------------------------------------------------------------------- */
@media(min-width:620px) and (max-width:900px){
  .dock{padding:9px 14px;gap:6px;border-radius:30px}
  .dock-item{min-width:76px;min-height:56px;gap:5px}
  .dock-label{font-size:11.5px;max-width:82px}
  .dock-ico{width:42px;height:30px}
  .dock-ico svg{width:23px;height:23px}
  .dock-acao{width:58px;height:58px;margin:-22px 10px 0}
  .dock-acao svg{width:28px;height:28px}
  .content{padding:22px 22px calc(112px + env(safe-area-inset-bottom))}

  /* a folha sobe do rodapé como no celular, mas sem esticar até as bordas */
  .sheet{
    left:50%;right:auto;transform:translateX(-50%) translateY(100%);
    width:min(600px,94vw);
    border-radius:28px 28px 0 0;border:1px solid rgba(255,255,255,.08);border-bottom:0;
    max-height:min(78dvh,640px)
  }
  .sheet.aberto{transform:translateX(-50%) translateY(0)}
  .sheet-lista{grid-template-columns:repeat(3,1fr)}
  .sheet-item{font-size:14px;min-height:56px}
}

/* Landscape de celular: a altura é o recurso escasso. */
@media(max-width:900px) and (max-height:480px){
  .topbar{height:52px}
  .dock{bottom:calc(6px + env(safe-area-inset-bottom));padding:4px}
  .dock-item{height:42px}
  .content{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
  .sheet{max-height:92dvh}
  .sheet-item{min-height:74px;padding:10px 8px}
}

@media(prefers-reduced-motion:reduce){
  .dock-item,.dock-label,.sheet,.sheet-backdrop{transition:none}
}

/* ===========================================================================
   PAINEL no celular e no tablet

   O layout de tela grande é uma faixa de 4 indicadores; no celular vira o
   cartão do dia em destaque + uma grade 2×2, que é o que se lê de relance
   com o telefone na mão. Nada aqui vale acima de 900px.
   =========================================================================== */
.so-mobile{display:none}
/* Peças de lista que só existem em tela pequena. Cada uma tem regra própria
   em vez de depender da classe genérica: `.checkin-cliente small` e
   `.ag-mais` são mais específicos que `.so-mobile` e venciam o jogo. */
.ag-hora,.ck-pos,.ag-servico-fone,.ag-mais,.ag-abas,.ag-dia{display:none}
/* .so-fone/.nao-fone separam o celular do tablet: o rótulo curto é uma
   necessidade de 390px, não de 820px. */
.so-fone{display:none}
@media(max-width:619px){ .so-fone{display:revert} .nao-fone{display:none} }
/* Peças que só existem na saudação do celular: no desktop o h1 volta a ser
   a frase inteira, sem avatar, sem emoji e sem subtítulo. */
.hero-avatar,.hero-sub,.hero-mao{display:none}

@media(max-width:900px){
  .so-mobile{display:revert}
  .nao-mobile{display:none}

  /* --- saudação --------------------------------------------------------- */
  .view-painel .hero{
    display:flex;align-items:center;gap:13px;flex-wrap:nowrap;
    margin-bottom:16px;padding-bottom:0;border-bottom:0
  }
  .view-painel .hero-avatar{
    display:grid;place-items:center;width:46px;height:46px;flex:none;
    border-radius:50%;border:1px solid #2e3439;background:#17191c;overflow:hidden
  }
  .view-painel .hero-avatar img{width:100%;height:100%;object-fit:cover}
  .view-painel .hero-copy{min-width:0;flex:1}
  .view-painel .title{font-size:19px;font-weight:700;letter-spacing:-.03em;line-height:1.2}
  .view-painel .hero-resto{display:none}       /* a frase longa fica no desktop */
  .view-painel .hero-mao{display:inline}
  .view-painel .hero-sub{display:block;margin:3px 0 0;color:var(--muted2);font-size:13px}
  /* o relógio vira uma linha só, discreta */
  .view-painel .clockbox{flex:none;text-align:right;padding:0}
  .view-painel .clockbox .date{display:none}
  .view-painel .clockbox .time{font-size:15px;margin:0}

  /* --- indicadores: destaque + os quatro números na mesma linha --------- */
  .view-painel .cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
  /* só a faixa do topo (a que traz o faturamento) vai a quatro colunas — nas
     outras os valores em reais não cabem em ~84px */
  .view-painel .cards:has(.hero-accent){grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  .view-painel .card.metric{padding:12px 13px;min-height:0;justify-content:flex-start}
  .view-painel .cards:has(.hero-accent) .card.metric{padding:11px 9px}
  .view-painel .metric .label{font-size:10.5px;letter-spacing:.04em;line-height:1.3}
  .view-painel .metric .value{font-size:21px;margin:3px 0 1px}
  .view-painel .trend{font-size:11px}
  /* nos quatro cartões estreitos o complemento não cabe; o rótulo se basta */
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .label{
    font-size:9.5px;letter-spacing:.02em;line-height:1.2;
    min-height:2.4em;overflow-wrap:anywhere          /* duas linhas alinham os números */
  }
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .value{font-size:22px;margin:2px 0 0}
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .trend{display:none}

  /* abaixo de 360px quatro colunas espremem demais: volta para 2×2 */
  @media(max-width:359px){
    .view-painel .cards:has(.hero-accent){grid-template-columns:1fr 1fr;gap:9px}
    .view-painel .cards:has(.hero-accent) .card.metric{padding:12px 13px}
    .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .label{font-size:10.5px;min-height:0}
    .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .trend{display:flex}
  }

  /* A segunda faixa tem quatro cartões no HTML, mas um deles é só de
     desktop: os três que sobram cabem na mesma linha. */
  .view-painel .cards:not(:has(.hero-accent)){grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .view-painel .cards:not(:has(.hero-accent)) .card.metric{padding:11px 9px}
  .view-painel .cards:not(:has(.hero-accent)) .label{font-size:9.5px;letter-spacing:.02em;line-height:1.2;min-height:2.4em}
  .view-painel .cards:not(:has(.hero-accent)) .value{font-size:18px;margin:2px 0 0}
  .view-painel .cards:not(:has(.hero-accent)) .trend{display:none}

  /* o faturamento do dia ocupa a faixa inteira e ganha o ícone do gráfico */
  .view-painel .card.metric.hero-accent{
    position:relative;grid-column:1/-1;padding:15px 16px;
    background:linear-gradient(135deg,#1b3468,#152a52 62%,#132445);
    border-color:#2f4d8c
  }
  .view-painel .card.metric.hero-accent .value{font-size:29px}
  .view-painel .card.metric.hero-accent::after{
    content:'';position:absolute;right:16px;top:50%;transform:translateY(-50%);
    width:46px;height:34px;opacity:.9;
    background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 34'%3E%3Crect x='2' y='19' width='8' height='13' rx='2' fill='%237ea8ff'/%3E%3Crect x='14' y='11' width='8' height='21' rx='2' fill='%23a8c6ff'/%3E%3Crect x='26' y='4' width='8' height='28' rx='2' fill='%23ffffff'/%3E%3Crect x='38' y='14' width='6' height='18' rx='2' fill='%237ea8ff'/%3E%3C/svg%3E")
  }
  /* sobrando um cartão ímpar no fim (faixas de 3), ele fecha a linha */
  @media(max-width:359px){
    .view-painel .cards .card.metric:last-child:nth-child(even){grid-column:1/-1}
  }

  /* --- gráficos e listas ------------------------------------------------ */
  .view-painel .grid,.view-painel .lists{grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .view-painel .panel{padding:14px 15px}
  .view-painel .panel-head{margin-bottom:12px}
  .view-painel .panel-title{font-size:14px}
  .view-painel .panel-head .filter{white-space:nowrap;padding:0 11px;font-size:11.5px}
  .view-painel .nao-mobile{display:none}
  .view-painel .bars{height:128px;gap:8px;padding:6px 0 0}
  .view-painel .bar{width:26px}
  .view-painel .servicos-row{grid-template-columns:auto 1fr;gap:16px}
  .view-painel .barber-num{font-size:clamp(46px,15vw,62px)}
  .view-painel .row{grid-template-columns:38px 1fr auto;padding:9px 8px}
  .view-painel .row .time-sm{display:none}     /* a data completa não cabe ao lado do status */
  .view-painel .face{width:34px;height:34px}
  .view-painel .lists{margin-bottom:0}
}

/* No tablet cabem duas colunas de painéis e quatro indicadores por faixa. */
@media(min-width:620px) and (max-width:900px){
  /* auto-fit em vez de 4 colunas fixas: cada faixa tem um número diferente
     de indicadores e as trilhas vazias colapsam em vez de virar buraco */
  .view-painel .cards,.view-painel .cards:has(.hero-accent){
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
  .view-painel .cards:has(.hero-accent) .card.metric{padding:13px 15px}
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .label{
    font-size:10.5px;letter-spacing:.04em;min-height:0}
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .value{font-size:23px;margin:3px 0 1px}
  .view-painel .cards:has(.hero-accent) .card.metric:not(.hero-accent) .trend{display:flex}
  .view-painel .card.metric.hero-accent{grid-column:1/-1}
  .view-painel .cards .card.metric:last-child:nth-child(even){grid-column:auto}
  .view-painel .grid,.view-painel .lists{grid-template-columns:1fr 1fr}
  .view-painel .title{font-size:22px}
  .view-painel .clockbox .date{display:block;font-size:11.5px}
}

/* ===========================================================================
   AGENDA no celular e no tablet

   A tabela de sete colunas vira uma lista: horário à esquerda, cliente e
   serviço no meio, situação à direita e as ações num "..." que abre a folha.
   =========================================================================== */
@media(max-width:900px){
  /* faixas de período */
  .ag-abas{display:flex;gap:6px;padding:3px;margin:0 0 14px;
    border:1px solid #272b30;border-radius:14px;background:#131618}
  .ag-aba{
    flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;
    min-height:44px;padding:0 10px;border:0;border-radius:11px;background:transparent;
    color:#9aa1a8;font:inherit;font-size:13.5px;font-weight:650;cursor:pointer;
    -webkit-tap-highlight-color:transparent;transition:background .2s ease,color .2s ease
  }
  .ag-aba.active{background:var(--blue);color:#fff}
  .ag-aba b{
    min-width:20px;padding:1px 5px;border-radius:7px;
    background:rgba(255,255,255,.1);font-size:11px;font-weight:700
  }
  .ag-aba.active b{background:rgba(255,255,255,.22)}

  /* cabeçalho de cada dia, no lugar da coluna de data */
  .ag-dia{
    display:flex;align-items:center;gap:9px;
    margin:16px 0 8px;color:var(--muted2);
    font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase
  }
  .ag-dia:first-child{margin-top:2px}
  .ag-dia span{
    padding:1px 7px;border-radius:7px;background:#20242a;
    color:#c2c8ce;font-size:11px;letter-spacing:0
  }

  /* a linha vira: hora (ou lugar na fila) | avatar | cliente+serviço | situação | ações */
  .checkin-list{background:transparent;border:0;padding:0}
  .checkin-head{display:none}
  :is(.view-agendamento,.view-checkins) .checkin-row{
    display:grid;
    grid-template-columns:auto auto minmax(0,1fr) auto auto;
    grid-template-areas:'hora face copy estado mais';
    align-items:center;gap:11px;
    padding:11px 12px;margin:0 0 8px;
    border:1px solid #23272c;border-radius:16px;background:#15181b
  }
  :is(.view-agendamento,.view-checkins) .ag-hora,
  :is(.view-agendamento,.view-checkins) .ck-pos{
    grid-area:hora;min-width:44px;
    color:#e7eaed;font-size:14px;font-weight:750;font-variant-numeric:tabular-nums;
    letter-spacing:-.02em
  }
  /* o lugar na fila é ordem, não hora: fica mais discreto que o nome */
  .view-checkins .ck-pos{
    display:grid;place-items:center;min-width:34px;height:34px;
    border-radius:11px;background:#20242a;color:#9aa1a8;font-size:13px
  }
  /* quem é o próximo da fila ganha destaque (o :first-of-type não servia:
     o cabeçalho da tabela também é uma div) */
  .view-checkins .checkin-head + .checkin-row .ck-pos{background:rgba(59,109,240,.2);color:#8fb2fb}
  :is(.view-agendamento,.view-checkins) .checkin-face{grid-area:face;width:38px;height:38px;font-size:13px}
  :is(.view-agendamento,.view-checkins) .checkin-face svg{width:19px;height:19px}
  :is(.view-agendamento,.view-checkins) .checkin-cliente{grid-area:copy;min-width:0}
  :is(.view-agendamento,.view-checkins) .checkin-cliente b{
    display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  :is(.view-agendamento,.view-checkins) .ag-servico-fone{
    display:block;margin-top:2px;color:var(--muted2);font-size:12px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* telefone, data, serviço em coluna, seletor e botões ficam na folha */
  :is(.view-agendamento,.view-checkins) .checkin-cliente small:not(.ag-servico-fone),
  :is(.view-agendamento,.view-checkins) .checkin-cliente .ck-pagamento,
  :is(.view-agendamento,.view-checkins) .checkin-col-chegada,
  :is(.view-agendamento,.view-checkins) .checkin-col-servico,
  :is(.view-agendamento,.view-checkins) .checkin-col-prof,
  :is(.view-agendamento,.view-checkins) .checkin-actions{display:none}
  :is(.view-agendamento,.view-checkins) .checkin-wait{
    grid-area:estado;display:inline-flex;align-items:center;gap:5px;
    padding:5px 9px;border-radius:8px;
    font-size:10.5px;font-weight:700;white-space:nowrap}
  .view-checkins .checkin-wait svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
  .ag-mais{
    grid-area:mais;display:grid;place-items:center;
    width:38px;height:38px;flex:none;position:relative;
    border:0;border-radius:11px;background:#20242a;color:#9aa1a8;cursor:pointer;
    -webkit-tap-highlight-color:transparent
  }
  .ag-mais::after{content:'';position:absolute;inset:-4px}   /* alvo de 46px */
  .ag-mais:active{background:#2a2f36}
  .ag-mais svg{width:18px;height:18px;fill:currentColor;stroke:none}

  /* em 360px a situação desce para a própria linha */
  @media(max-width:389px){
    :is(.view-agendamento,.view-checkins) .checkin-row{
      grid-template-columns:auto auto minmax(0,1fr) auto;
      grid-template-areas:'hora face copy mais' '. . estado estado';
      row-gap:7px
    }
    :is(.view-agendamento,.view-checkins) .checkin-wait{justify-self:start}
  }

  /* resumo e campo dentro da folha de ações */
  .sheet-resumo{margin:0 2px 14px;color:var(--muted);font-size:13px}
  .sheet-campo{display:block;margin:0 2px 14px;color:var(--muted2);font-size:12px;font-weight:600}
  .sheet-campo select{
    display:block;width:100%;margin-top:7px;min-height:46px;padding:0 12px;
    border:1px solid #31363c;border-radius:12px;background:#0f1214;color:#f1f3f5;font-size:16px}
  .sheet-item-perigo{color:#e28d96}
  .sheet-item-perigo .sheet-ico{background:#231519;color:#e28d96}
}

/* No tablet cabe o serviço e o profissional na mesma linha. */
@media(min-width:620px) and (max-width:900px){
  .ag-abas{max-width:420px}
  :is(.view-agendamento,.view-checkins) .checkin-row{
    grid-template-columns:auto auto minmax(0,1.4fr) minmax(0,1fr) auto auto;
    grid-template-areas:'hora face copy servico estado mais';
    padding:13px 15px
  }
  :is(.view-agendamento,.view-checkins) .checkin-col-servico{
    grid-area:servico;display:flex;min-width:0;color:var(--muted);font-size:12.5px}
  :is(.view-agendamento,.view-checkins) .ag-servico-fone{display:none}
  :is(.view-agendamento,.view-checkins) .ag-hora{font-size:15px;min-width:50px}
}

/* ===========================================================================
   ATENDIMENTOS no celular e no tablet

   A tabela de sete colunas vira lista: quem, quando, quanto e em que
   situação — que é o que se procura numa lista de atendimentos. Profissional
   e lista de serviços ficam no detalhe, a um toque de distância.
   =========================================================================== */
@media(max-width:900px){
  /* os três números na mesma linha, como nas outras abas */
  .attendance-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .attendance-stat{padding:11px 10px;flex-direction:column;align-items:flex-start;gap:2px}
  .attendance-stat svg{display:none}            /* o ícone rouba a largura do número */
  .attendance-stat small{font-size:9.5px;line-height:1.2;letter-spacing:.02em}
  .attendance-stat strong{font-size:19px}

  /* busca e filtros */
  .view-atendimentos .attendance-toolbar{padding:14px;gap:12px}
  .view-atendimentos .chips{
    display:flex;flex-wrap:nowrap;overflow-x:auto;gap:7px;
    margin:0 -14px;padding:2px 14px;scrollbar-width:none}
  .view-atendimentos .chips::-webkit-scrollbar{display:none}
  .view-atendimentos .chip{flex:none}

  /* a tabela vira uma lista de linhas */
  .view-atendimentos .table-wrap{overflow:visible}
  .view-atendimentos .attendance-table,
  .view-atendimentos .attendance-table tbody,
  .view-atendimentos .attendance-table tr,
  .view-atendimentos .attendance-table td{display:block;width:auto}
  .view-atendimentos .attendance-table thead{display:none}
  .view-atendimentos .attendance-table{min-width:0;border-spacing:0}

  .view-atendimentos .attendance-table tr{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto 32px;
    grid-template-areas:'cliente valor acao' 'data estado acao';
    align-items:center;gap:2px 10px;
    padding:9px 12px;margin:0 0 7px;
    border:1px solid #23272c;border-radius:16px;background:#15181b
  }
  .view-atendimentos .attendance-table td{padding:0;height:auto;border:0}
  .view-atendimentos .attendance-table td:nth-child(1){grid-area:cliente;min-width:0}
  .view-atendimentos .attendance-table td:nth-child(4){grid-area:valor;justify-self:end;
    font-size:14px;font-variant-numeric:tabular-nums}
  .view-atendimentos .attendance-table td:nth-child(5){grid-area:estado;justify-self:end}
  .view-atendimentos .attendance-table td:nth-child(6){grid-area:data;
    color:var(--muted2);font-size:12px;font-variant-numeric:tabular-nums}
  .view-atendimentos .attendance-table td:nth-child(7){grid-area:acao;justify-self:end}
  /* profissional e lista de serviços moram no detalhe */
  .view-atendimentos .attendance-table td:nth-child(2),
  .view-atendimentos .attendance-table td:nth-child(3){display:none}

  .view-atendimentos .attendance-client{width:100%;gap:10px}
  .view-atendimentos .attendance-client>span:last-child{min-width:0;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;font-size:14px}
  .view-atendimentos .attendance-avatar{width:34px;height:34px;font-size:11px;flex:none}
  .view-atendimentos .attendance-page .attendance-client small{display:none}
  .view-atendimentos .attendance-page .badge{font-size:10.5px;padding:4px 8px}

  /* o "Ver" vira seta: a linha inteira já anuncia do que se trata */
  .view-atendimentos .attendance-open{
    position:relative;display:grid;place-items:center;
    width:32px;height:32px;padding:0;font-size:0;border-radius:10px}
  .view-atendimentos .attendance-open::after{content:'';position:absolute;inset:-6px}
  .view-atendimentos .attendance-open svg{width:16px;height:16px;margin:0}
  /* o excluir do dono não cabe na linha; fica no detalhe */
  .view-atendimentos .attendance-table td:nth-child(7) .btn-danger{display:none}

  .view-atendimentos .attendance-results{display:none}   /* a paginação já traz a contagem */

  /* detalhe do atendimento: os dois números lado a lado, como nas listas */
  .appointment-metrics{grid-template-columns:1fr 1fr;gap:10px}
  .view-atendimento-detalhe .appointment-hero{padding:16px}
  .view-atendimento-detalhe .appointment-hero h1{font-size:21px}
  .view-atendimentos .attendance-panel{background:transparent;border:0;overflow:visible}
  .view-atendimentos .attendance-toolbar{border:1px solid #23272c;border-radius:16px;background:#15181b;margin-bottom:12px;overflow:hidden}
}

/* No tablet volta a caber o serviço. */
@media(min-width:620px) and (max-width:900px){
  .view-atendimentos .attendance-table tr{
    grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto auto 32px;
    grid-template-areas:'cliente servico valor estado acao' 'data servico valor estado acao';
    row-gap:2px
  }
  .view-atendimentos .attendance-table td:nth-child(3){display:block;grid-area:servico;
    color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .attendance-stat{flex-direction:row;align-items:center;padding:14px 16px}
  .attendance-stat svg{display:block}
  .attendance-stat small{font-size:11px}
  .attendance-stat strong{font-size:22px}
}
