*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Segoe UI,Arial,sans-serif;background:#f7f5f8;color:#241f28;font-size:14px}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:#221728;color:#fff;position:fixed;inset:0 auto 0 0;padding:20px 15px;display:flex;flex-direction:column;z-index:50}.sidebar-brand{display:flex;gap:11px;align-items:center;padding:5px 8px 22px}.sidebar-brand strong{display:block;font-size:15px}.sidebar-brand small{display:block;color:#b9aebd;margin-top:3px}.brand-mark{width:39px;height:39px;border-radius:13px;background:linear-gradient(135deg,var(--primary,#c026d3),#f472b6);display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;box-shadow:0 8px 25px rgba(192,38,211,.28)}.nav{display:flex;flex-direction:column;gap:4px}.nav a{color:#d8cedb;text-decoration:none;padding:11px 12px;border-radius:10px;display:flex;gap:10px;align-items:center;transition:.18s}.nav a span{width:25px;height:25px;border-radius:8px;background:#34263b;display:grid;place-items:center;font-size:10px;color:#a99caf}.nav a:hover,.nav a.active{background:#35233d;color:#fff}.nav a.active span{background:var(--primary);color:#fff}.sidebar-footer{margin-top:auto;display:flex;justify-content:space-between;padding:14px 8px 0;color:#85798a;border-top:1px solid #3a2a40}.sidebar-footer a{color:#d7cbd9;text-decoration:none}.main{margin-left:245px;min-width:0;width:calc(100% - 245px)}.topbar{height:82px;background:#fff;border-bottom:1px solid #eee8f0;display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:30}.topbar h1{font-size:21px;margin:0 0 3px}.topbar p{margin:0;color:#8b818f;font-size:12px}.top-action{margin-left:auto;text-decoration:none;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px;font-weight:700}.menu-btn{display:none;border:0;background:#f4eef5;border-radius:9px;padding:8px 10px;margin-right:10px}.content{padding:24px;max-width:1500px;margin:0 auto}.hero-card{background:linear-gradient(120deg,#28162f 0%,#5f2468 50%,var(--primary) 130%);color:#fff;border-radius:20px;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 16px 40px rgba(70,25,80,.15);margin-bottom:18px}.hero-card h2{font-size:29px;margin:4px 0 7px}.hero-card p{margin:0;color:#eadfec}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#e7cfe9;font-weight:800}.stats-grid{display:grid;gap:14px;margin-bottom:18px}.stats-grid.four{grid-template-columns:repeat(4,1fr)}.stats-grid.three{grid-template-columns:repeat(3,1fr)}.stat-card,.mini-panel,.panel,.service-card,.day-summary{background:#fff;border:1px solid #eee8f0;border-radius:15px;box-shadow:0 4px 16px rgba(59,37,65,.035)}.stat-card{padding:18px}.stat-card span,.mini-panel span{color:#817684;font-size:12px}.stat-card strong{display:block;font-size:25px;margin:8px 0 4px}.stat-card small{color:#9d93a1}.grid{display:grid;gap:16px;margin-bottom:18px}.grid.two{grid-template-columns:1.3fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.panel{padding:18px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-head h3,.panel h3{margin:0 0 4px;font-size:16px}.panel-head p,.panel p{margin:0;color:#928795;font-size:12px}.panel-head a{color:var(--primary);text-decoration:none;font-weight:700;font-size:12px}.schedule-list{display:flex;flex-direction:column}.schedule-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f3eef4}.schedule-item:first-child{border-top:0}.time-block{font-size:15px;font-weight:800;width:47px;color:#3d3340}.schedule-main{min-width:0;flex:1}.schedule-main strong,.schedule-main span{display:block}.schedule-main span{font-size:12px;color:#8b818f;margin-top:3px}.date-chip{width:42px;height:45px;border-radius:11px;background:#f7eff8;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--primary)}.date-chip b{font-size:15px}.date-chip small{font-size:8px}.badge{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;white-space:nowrap}.badge.scheduled{color:#a16207;background:#fff7d6}.badge.completed{color:#08724d;background:#dff8ee}.badge.cancelled{color:#b42318;background:#ffe9e7}.badge.no_show{color:#5a6374;background:#edf0f4}.mini-panel{padding:17px}.mini-panel strong{display:block;font-size:19px;margin-top:6px}.positive{color:#07835b!important}.negative{color:#ca3d3d!important}.empty{text-align:center;padding:26px;color:#9a909d}.empty.large{padding:55px 20px;line-height:2}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.primary{background:var(--primary);color:#fff}.btn.light{background:#fff;color:#3c2341}.btn.ghost{background:#f6f1f7;color:#4a3e4e;border:1px solid #e8dfea}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.page-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.search{display:flex;max-width:420px;flex:1}.search input{border-radius:10px 0 0 10px}.search button{border:0;background:#34263b;color:#fff;padding:0 14px;border-radius:0 10px 10px 0}.date-nav{display:flex;align-items:center;gap:7px}.date-nav a{width:36px;height:36px;display:grid;place-items:center;text-decoration:none;background:#fff;border:1px solid #e7e0e9;border-radius:9px;color:#3f3442;font-size:21px}.date-nav input{width:160px}.day-summary{display:grid;grid-template-columns:1.4fr repeat(3,1fr);margin-bottom:16px;padding:16px}.day-summary>div{padding:3px 16px;border-left:1px solid #eee7ef}.day-summary>div:first-child{border-left:0}.day-summary span,.day-summary strong,.day-summary b{display:block}.day-summary span{color:#8c818f;font-size:11px}.day-summary strong,.day-summary b{font-size:17px;margin-top:3px}.agenda-list{display:flex;flex-direction:column;gap:10px}.appointment-card{display:grid;grid-template-columns:85px 1fr auto;gap:16px;align-items:center;border:1px solid #eee7ef;border-left:4px solid #e4d5e6;border-radius:13px;padding:14px;background:#fff}.appointment-card.completed{border-left-color:#18a874}.appointment-card.cancelled{border-left-color:#e55454;opacity:.72}.appointment-card.scheduled{border-left-color:#e2b93b}.appointment-time{text-align:center}.appointment-time strong,.appointment-time small{display:block}.appointment-time strong{font-size:22px}.appointment-time small{color:#9b909e;margin-top:2px}.appointment-info h3{margin:0 0 5px}.appointment-info p{font-size:13px;color:#4e4452;margin:0}.appointment-info small{display:block;color:#928795;margin-top:5px}.appointment-info .note{color:#725c77}.appointment-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.action-row,.actions{display:flex;gap:5px;align-items:center}.action-row form,.actions form{margin:0}.icon-btn{width:31px;height:31px;border-radius:8px;border:1px solid #e9e1eb;background:#fff;cursor:pointer;color:#5d5061}.icon-btn.success{color:#0a8a5f;background:#edfbf6}.icon-btn.danger{color:#d24949;background:#fff3f2}.table-panel{padding:0;overflow:auto}.table-panel .panel-head{padding:18px 18px 0}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #f0ebf1}th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8f8492;background:#fbf9fb}td{font-size:12px;color:#514654}td strong{font-size:12px}td small{display:block;color:#9c919f;margin-top:3px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.service-card{padding:18px;display:flex;flex-direction:column;gap:15px}.service-card.inactive{opacity:.62}.service-card h3{margin:10px 0 5px}.service-card>div>strong{font-size:21px;color:#392e3d}.service-meta{display:flex;gap:6px;flex-wrap:wrap}.service-meta span{font-size:10px;background:#f7f2f8;border-radius:999px;padding:5px 7px;color:#6e6172}.modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-card{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:17px;box-shadow:0 25px 90px rgba(25,12,31,.28);position:relative;z-index:92}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #eee8ef}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;font-size:24px;cursor:pointer;color:#786b7b}.overlay{position:fixed;inset:0;background:rgba(25,12,29,.48);z-index:80;display:none}.overlay.open{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:19px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#6e626f;font-weight:700}.form-grid .span2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.check{flex-direction:row!important;align-items:center}.check input{width:auto}input,select,textarea{width:100%;border:1px solid #ddd4e0;border-radius:9px;padding:10px 11px;background:#fff;color:#342a37;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}textarea{resize:vertical}.alert{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:12px}.alert.success{background:#e5f8f0;color:#08684a}.alert.error{background:#ffe9e7;color:#a72a22}.alert.warning{background:#fff7de;color:#7d5d00}.alert a{color:inherit;font-weight:800}.muted{color:#8f8592}.month-picker input{min-width:160px}.bar-chart{height:260px;display:flex;align-items:flex-end;gap:8px;padding-top:18px}.bar-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center}.bar-value{font-size:10px;color:#766a79;height:20px}.bar-track{height:190px;width:100%;max-width:26px;background:#f5eef6;border-radius:7px 7px 3px 3px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:linear-gradient(180deg,#ee87da,var(--primary));border-radius:7px 7px 2px 2px;min-height:3px}.bar-col small{font-size:9px;color:#877b8a;margin-top:7px}.report-big{display:grid;grid-template-columns:1fr 1fr;gap:10px}.report-big div{background:#faf7fb;border-radius:11px;padding:14px}.report-big .wide{grid-column:span 2;background:#f4edf5}.report-big span,.report-big strong{display:block}.report-big span{font-size:10px;color:#8b7f8e}.report-big strong{font-size:19px;margin-top:6px}.backup-panel{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.info-panel code{background:#f4eef5;padding:2px 5px;border-radius:5px}.login-body{min-height:100vh;background:radial-gradient(circle at 10% 10%,#f6d8f2,transparent 40%),radial-gradient(circle at 90% 90%,#ead7f5,transparent 40%),#f8f5f8;display:grid;place-items:center;padding:20px}.login-shell{width:min(880px,100%);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 24px 90px rgba(59,28,66,.15)}.login-brand{background:linear-gradient(135deg,#25172b,#5f2468);color:#fff;padding:48px;display:flex;align-items:flex-start;gap:14px}.login-brand .brand-mark{flex:0 0 auto}.login-brand h1{margin:0 0 8px;font-size:26px}.login-brand p{margin:0;color:#d9cadc;line-height:1.6}.login-card{padding:42px;display:flex;flex-direction:column;gap:14px}.login-card h2{margin:0;font-size:24px}.login-card .muted{margin:-7px 0 5px}.login-card label{font-size:11px;font-weight:700;color:#675b69;display:flex;flex-direction:column;gap:6px}.login-hint{text-align:center;font-size:10px;color:#a398a6;margin-top:3px}
@media(max-width:1050px){.stats-grid.four{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s;z-index:85}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.topbar{height:70px;padding:0 14px}.menu-btn{display:block}.top-action{font-size:11px;padding:9px 10px}.content{padding:14px}.hero-card{padding:20px;align-items:flex-start;gap:15px;flex-direction:column}.hero-card h2{font-size:24px}.stats-grid.four,.stats-grid.three,.grid.three{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr}.day-summary{grid-template-columns:1fr 1fr;gap:9px}.day-summary>div{border:0;background:#faf7fb;border-radius:10px;padding:10px}.appointment-card{grid-template-columns:62px 1fr}.appointment-actions{grid-column:1/-1;flex-direction:row;justify-content:space-between}.page-tools{align-items:stretch;flex-direction:column}.search{max-width:none}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:span 1}.login-shell{grid-template-columns:1fr}.login-brand{padding:25px}.login-card{padding:27px}.backup-panel{align-items:flex-start;gap:15px;flex-direction:column}.overlay{z-index:84}}
@media(max-width:480px){.stats-grid.four,.stats-grid.three,.grid.three{grid-template-columns:1fr}.topbar h1{font-size:18px}.topbar p{display:none}.top-action{margin-left:auto}.appointment-card{padding:11px;gap:9px}.appointment-time strong{font-size:18px}.panel{padding:13px}.hero-card{border-radius:15px}}


/* Calendário mensal - v1.1.0 */
.calendar-panel{padding:0;overflow:hidden;margin-bottom:18px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid #f0eaf1}.calendar-head h3{font-size:20px;margin:3px 0 0}.calendar-nav{display:flex;align-items:center;gap:7px}.calendar-nav a{height:35px;min-width:35px;padding:0 10px;display:grid;place-items:center;border:1px solid #e7dfe9;background:#fff;border-radius:9px;color:#443649;text-decoration:none;font-size:20px;font-weight:800}.calendar-nav a:hover{border-color:var(--primary);color:var(--primary)}.calendar-nav .calendar-today{font-size:11px;min-width:auto;padding:0 12px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{border-bottom:1px solid #f0eaf1;background:#fcfafc}.calendar-weekdays span{text-align:center;padding:10px 4px;font-size:9px;font-weight:800;letter-spacing:.08em;color:#978b9a}.calendar-grid{background:#f2edf3;gap:1px}.calendar-day{position:relative;min-height:78px;padding:9px;background:#fff;text-decoration:none;color:#453849;transition:background .15s,border-color .15s,transform .15s;box-shadow:inset 0 0 0 2px transparent}.calendar-day:hover{background:#fcf7fd;z-index:2}.calendar-day.blank{background:#faf7fa;pointer-events:none}.calendar-day.today{box-shadow:inset 0 0 0 2px #d8c7dc}.calendar-day.selected{background:#fcf5fd;box-shadow:inset 0 0 0 2px var(--primary)}.calendar-day-top{display:flex;align-items:center;justify-content:space-between;gap:5px}.calendar-day-top b{font-size:13px}.calendar-day.today .calendar-day-top b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#443649;color:#fff;margin:-4px}.calendar-day.selected.today .calendar-day-top b{background:var(--primary)}.calendar-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#f4e8f6;color:var(--primary);display:grid;place-items:center;font-size:9px;font-weight:900}.calendar-event-dots{display:flex;gap:4px;align-items:center;margin-top:18px;flex-wrap:wrap}.calendar-event-dots i,.calendar-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.calendar-event-dots i.scheduled,.calendar-legend i.scheduled{background:#e2b93b}.calendar-event-dots i.completed,.calendar-legend i.completed{background:#18a874}.calendar-event-dots i.cancelled,.calendar-legend i.cancelled{background:#e55454}.calendar-event-dots i.no_show,.calendar-legend i.no_show{background:#7f8998}.calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 18px;border-top:1px solid #f0eaf1;background:#fcfafc}.calendar-legend span{font-size:9px;color:#827686;display:flex;align-items:center;gap:5px}.selected-day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 10px}.selected-day-head h3{margin:3px 0 0;font-size:18px}
@media(max-width:760px){.calendar-head{padding:15px}.calendar-day{min-height:64px;padding:7px}.calendar-day-top b{font-size:12px}.calendar-count{min-width:18px;height:18px;padding:0 5px}.calendar-event-dots{margin-top:13px}.calendar-legend{padding:10px 13px;gap:9px}.selected-day-head{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.calendar-head h3{font-size:17px}.calendar-nav a{height:32px;min-width:32px}.calendar-nav .calendar-today{padding:0 8px}.calendar-weekdays span{font-size:8px;padding:8px 1px}.calendar-day{min-height:52px;padding:5px}.calendar-day.today .calendar-day-top b{width:22px;height:22px;margin:-3px}.calendar-event-dots{margin-top:8px;gap:3px}.calendar-event-dots i{width:6px;height:6px}.calendar-count{font-size:8px}.calendar-legend{display:grid;grid-template-columns:1fr 1fr}.selected-day-head .btn{width:100%}}

/* Administração, cargos, backup e personalização - v1.2.0 */
body{background:var(--app-bg,#f7f5f8);color:var(--text-main,#241f28)}
.sidebar{background:var(--sidebar,#221728)}
.topbar,.stat-card,.mini-panel,.panel,.service-card,.day-summary,.appointment-card,.calendar-day{background:var(--card-bg,#fff)}
.stat-card,.mini-panel,.panel,.service-card,.day-summary,.appointment-card,.modal-card,.login-shell{border-radius:var(--radius,15px)}
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff;padding:4px;flex:0 0 auto}.brand-logo.large{width:58px;height:58px}.section-title{margin:4px 0 0;font-size:22px}.profile-summary{display:flex;align-items:center;gap:14px;padding:8px 0}.profile-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:800;font-size:22px}.profile-summary strong,.profile-summary span,.profile-summary small{display:block}.profile-summary span{margin-top:3px;color:#817684}.profile-summary small{margin-top:5px;color:#9d93a1}.permission-list{display:flex;flex-direction:column;gap:7px}.permission-list span{font-size:11px;color:#6e6172}.permissions-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.form-section-title{display:block;margin-bottom:6px}.admin-note{background:#faf6fb;border:1px solid #eee4f0;border-radius:10px;padding:11px 12px;font-size:11px;color:#716375;line-height:1.5;margin-top:12px}.appearance-preview{display:flex;justify-content:space-between;align-items:center;gap:20px}.appearance-preview img{max-height:72px;max-width:180px;object-fit:contain}.status-list{display:flex;flex-direction:column}.status-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #f1ebf2}.status-list>div:first-child{border-top:0}.status-list span{color:#7e7282}.status-list strong{font-size:12px}.btn.tiny{padding:6px 9px;font-size:10px}.danger-btn{background:#fff1ef;color:#b42318;border:1px solid #ffd8d3}.update-checklist{display:flex;flex-direction:column;gap:7px;background:#faf7fb;padding:13px;border-radius:10px}.update-checklist span{font-size:11px;color:#65596a}.steps-list{display:flex;flex-direction:column;gap:9px;margin:8px 0 16px}.steps-list>div{display:flex;align-items:center;gap:10px}.steps-list b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:11px}.steps-list span{font-size:12px;color:#6c6070}.eyebrow{color:var(--primary)}code{font-family:Consolas,monospace}.alert strong{font-weight:800}
@media(max-width:760px){.permissions-grid{grid-template-columns:1fr}.appearance-preview{align-items:flex-start;flex-direction:column}.brand-logo{width:38px;height:38px}}
.hero-card{background:linear-gradient(120deg,var(--sidebar,#28162f) 0%,var(--secondary,#5f2468) 55%,var(--primary,#c026d3) 130%)}
.main h1,.main h2,.main h3,.main td,.main td strong,.login-card h2{color:var(--text-main,#342a37)}

/* =========================================================
   Mobile First UX - v1.3.0
   ========================================================= */
.mobile-bottom-nav,.mobile-fab{display:none}

@media(max-width:760px){
  html{background:var(--app-bg,#f8f5f8);-webkit-text-size-adjust:100%}
  body{font-size:13px;padding-bottom:74px;overscroll-behavior-y:none}
  button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
  input,select,textarea{font-size:16px;min-height:44px;padding:10px 12px}
  textarea{min-height:88px}
  .main{min-height:100dvh}
  .content{padding:10px 10px 18px}
  .topbar{height:58px;padding:0 10px;gap:8px;box-shadow:0 1px 8px rgba(50,25,55,.05)}
  .topbar>div{min-width:0}
  .topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar p{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .menu-btn{display:none}
  .top-action{font-size:11px;padding:8px 10px;border-radius:9px;white-space:nowrap}
  .sidebar{width:min(86vw,320px);padding:16px 12px 88px;box-shadow:18px 0 45px rgba(27,15,31,.24)}
  .sidebar-brand{padding:3px 7px 14px}
  .sidebar-brand strong{font-size:14px}
  .nav{gap:2px}
  .nav a{min-height:44px;padding:9px 10px}
  .sidebar-footer{padding-bottom:8px}

  .mobile-bottom-nav{position:fixed;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));height:62px;background:rgba(255,255,255,.97);border:1px solid #eadfec;border-radius:18px;box-shadow:0 10px 35px rgba(53,31,59,.18);z-index:70;overflow:hidden;backdrop-filter:blur(12px)}
  .mobile-bottom-nav a,.mobile-bottom-nav button{position:relative;border:0;background:transparent;color:#887b8c;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;min-width:0;width:100%;height:100%;padding:5px 2px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mobile-bottom-nav a.active{color:var(--primary)}
  .mobile-bottom-nav a.active:before,.mobile-bottom-nav button.is-active:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:3px;border-radius:0 0 4px 4px;background:var(--primary)}
  .mobile-nav-icon{width:100%;height:21px;display:grid;place-items:center;font-size:19px;line-height:1;font-weight:800;text-align:center}
  .mobile-bottom-nav b{display:block;width:100%;font-size:9px;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-weight:700;text-align:center}
  .mobile-fab{display:grid;place-items:center;position:fixed;right:16px;bottom:84px;width:52px;height:52px;border:0;border-radius:17px;background:var(--primary);color:#fff;font-size:30px;font-weight:300;line-height:1;box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 35%,transparent);z-index:65;cursor:pointer}

  .hero-card{margin-bottom:10px;padding:15px 16px;border-radius:14px;gap:9px;box-shadow:none}
  .hero-card h2{font-size:21px;margin:3px 0 4px}
  .hero-card p{font-size:11px}
  .hero-card .btn{width:auto;min-height:38px;padding:8px 11px}
  .stats-grid,.grid{gap:8px;margin-bottom:10px}
  .stats-grid.four,.stats-grid.three,.grid.three{grid-template-columns:1fr 1fr}
  .stat-card{padding:12px;border-radius:12px}
  .stat-card span,.mini-panel span{font-size:10px}
  .stat-card strong{font-size:20px;margin:5px 0 2px}
  .stat-card small{font-size:9px}
  .panel,.service-card,.mini-panel{border-radius:12px}
  .panel{padding:12px}
  .panel-head{margin-bottom:9px;gap:8px}
  .panel-head h3,.panel h3{font-size:14px}
  .panel-head p,.panel p{font-size:10px}
  .mini-panel{padding:12px}
  .mini-panel strong{font-size:16px;margin-top:4px}
  .schedule-item{gap:9px;padding:10px 0}
  .time-block{width:42px;font-size:14px}
  .schedule-main strong{font-size:12px}
  .schedule-main span{font-size:10px}
  .badge{font-size:9px;padding:4px 6px}
  .date-chip{width:38px;height:40px}

  .page-tools{margin-bottom:10px;gap:8px}
  .page-tools>.btn.primary,.page-tools>button.btn.primary{display:none}
  .date-nav{width:100%;display:grid;grid-template-columns:40px 1fr 40px;gap:6px}
  .date-nav a{width:40px;height:42px}
  .date-nav input{width:100%;min-width:0}
  .search{height:44px}
  .search button{min-width:48px}
  .month-picker,.month-picker input{width:100%;min-width:0}

  .day-summary{padding:8px;gap:7px;grid-template-columns:1fr 1fr;border-radius:12px}
  .day-summary>div{padding:8px;border:0;background:#faf7fb;border-radius:9px}
  .day-summary span{font-size:9px}
  .day-summary strong,.day-summary b{font-size:14px;margin-top:2px}
  .agenda-list{gap:7px}
  .appointment-card{grid-template-columns:52px 1fr;padding:10px 9px;gap:8px;border-radius:11px}
  .appointment-time strong{font-size:17px}
  .appointment-time small{font-size:9px}
  .appointment-info h3{font-size:13px;margin-bottom:3px}
  .appointment-info p{font-size:11px}
  .appointment-info small{font-size:9px;margin-top:3px}
  .appointment-actions{grid-column:1/-1;padding-top:2px;gap:6px;align-items:center}
  .appointment-actions .badge{margin-right:auto}
  .icon-btn{width:38px;height:38px;border-radius:10px;font-size:17px}

  .service-grid{gap:8px}
  .service-card{padding:12px;gap:10px}
  .service-card h3{font-size:14px;margin:7px 0 3px}
  .service-card>div>strong{font-size:17px}
  .service-card .btn{min-height:42px}

  /* Tabelas viram cartões no celular */
  .table-panel{padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}
  .table-panel .panel-head{background:var(--card-bg,#fff);border:1px solid #eee8f0;border-radius:12px;padding:12px;margin-bottom:7px}
  .table-panel table{display:block;min-width:0;width:100%;border-collapse:separate}
  .table-panel thead{display:none}
  .table-panel tbody{display:flex;flex-direction:column;gap:7px}
  .table-panel tr{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:var(--card-bg,#fff);border:1px solid #eee8f0;border-radius:12px;padding:10px;box-shadow:0 2px 10px rgba(59,37,65,.025)}
  .table-panel td{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:0;border:0;font-size:11px;overflow-wrap:anywhere}
  .table-panel td:before{content:attr(data-label);display:block;font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#9a8e9d;margin-bottom:3px}
  .table-panel td:last-child{grid-column:1/-1;align-items:flex-end;min-height:0}
  .table-panel td:last-child:before{display:none}
  .table-panel td[colspan]{grid-column:1/-1}
  .table-panel td[colspan]:before{display:none}
  .table-panel td small{font-size:9px}
  .table-panel .empty{padding:18px 8px;width:100%}

  /* Formulários como bottom-sheet */
  .modal{align-items:flex-end;padding:0}
  .modal-card{width:100%;max-height:88dvh;border-radius:20px 20px 0 0;box-shadow:0 -16px 55px rgba(25,12,31,.24);padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .modal-head{position:sticky;top:0;background:#fff;z-index:2;padding:14px 15px;border-radius:20px 20px 0 0}
  .modal-head:before{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:38px;height:4px;border-radius:99px;background:#e4dce6}
  .modal-head h3{font-size:15px;padding-top:5px}
  .modal-head button{width:40px;height:40px}
  .form-grid{padding:12px;gap:10px}
  .form-grid label{gap:5px;font-size:10px}
  .form-actions{position:sticky;bottom:0;background:#fff;padding:8px 0 2px;display:grid;grid-template-columns:1fr 1.4fr;z-index:2}
  .form-actions .btn{min-height:44px}
  .check{min-height:40px}
  .check input{min-height:auto;width:20px;height:20px}

  /* Calendário compacto e tocável */
  .calendar-wrap{border-radius:12px;margin-bottom:10px}
  .calendar-head{padding:11px 10px;gap:7px}
  .calendar-head h3{font-size:15px}
  .calendar-head p{font-size:9px}
  .calendar-nav{gap:4px}
  .calendar-nav a{height:34px;min-width:34px;border-radius:8px}
  .calendar-nav .calendar-today{padding:0 7px;font-size:9px}
  .calendar-weekdays span{padding:7px 1px;font-size:7px}
  .calendar-day{min-height:48px;padding:4px}
  .calendar-day-top b{font-size:11px}
  .calendar-day.today .calendar-day-top b{width:21px;height:21px;margin:-2px}
  .calendar-count{min-width:16px;height:16px;padding:0 4px;font-size:7px}
  .calendar-event-dots{margin-top:7px;gap:2px}
  .calendar-event-dots i{width:5px;height:5px}
  .calendar-legend{padding:8px 10px;grid-template-columns:1fr 1fr;gap:6px}
  .calendar-legend span{font-size:8px}
  .selected-day-head{margin:3px 0 8px}
  .selected-day-head h3{font-size:15px}
  .selected-day-head .btn{display:none}

  .bar-chart{height:210px;gap:3px;overflow:hidden}
  .bar-track{height:145px;max-width:20px}
  .bar-value{font-size:8px}
  .bar-col small{font-size:8px}
  .report-big{gap:7px}
  .report-big>div{padding:10px}

  .section-title{font-size:18px}
  .appearance-preview{gap:10px}
  .permissions-grid{gap:6px}
  .admin-note{font-size:10px;padding:9px}
  .status-list>div{padding:10px 0}
  .update-checklist{padding:10px}

  .alert{position:sticky;top:64px;z-index:28;margin-bottom:8px;font-size:10px;box-shadow:0 5px 18px rgba(40,20,45,.08)}
}

@media(max-width:380px){
  .content{padding-left:7px;padding-right:7px}
  .mobile-bottom-nav{left:5px;right:5px}
  .mobile-bottom-nav b{font-size:8px}
  .mobile-nav-icon{font-size:17px}
  .stats-grid.four,.stats-grid.three,.grid.three{gap:6px}
  .stat-card{padding:10px}
  .stat-card strong{font-size:18px}
  .calendar-day{min-height:44px}
  .calendar-nav .calendar-today{display:none}
}

/* =========================================================
   Mobile Compact UX - v1.3.1
   Corrige estouros horizontais e reduz densidade visual.
   ========================================================= */
@media(max-width:760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{font-size:12px;padding-bottom:66px}
  .app-shell,.main,.content,.content>*,.panel,.table-panel,.calendar-wrap,.hero-card,.page-tools{min-width:0;max-width:100%}
  .main{overflow-x:hidden}
  .content{width:100%;padding:7px 8px 12px}
  img,svg,video,canvas{max-width:100%;height:auto}
  code{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  input,select,textarea,button{max-width:100%;min-width:0}
  input,select,textarea{min-height:42px;padding:8px 10px}
  textarea{min-height:76px}

  /* Cabeçalho menor: a ação principal continua disponível pelo FAB/Agenda. */
  .topbar{height:52px;min-height:52px;padding:0 9px;gap:6px}
  .topbar h1{font-size:15px;line-height:1.15}
  .topbar p{font-size:9px;margin-top:2px}
  .top-action{display:none}

  /* Navegação estilo aplicativo, mais estreita e sem textos escapando. */
  .mobile-bottom-nav{left:6px;right:6px;height:56px;border-radius:15px;bottom:max(6px,env(safe-area-inset-bottom))}
  .mobile-bottom-nav a,.mobile-bottom-nav button{padding:4px 1px;overflow:hidden}
  .mobile-nav-icon{height:18px;font-size:17px}
  .mobile-bottom-nav b{display:block;width:100%;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-fab{right:12px;bottom:72px;width:46px;height:46px;border-radius:14px;font-size:26px}

  /* Todo grid de conteúdo pesado passa a uma coluna no celular. */
  .grid.two,.grid.three,.service-grid{grid-template-columns:minmax(0,1fr)!important}
  .stats-grid.four,.stats-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stats-grid,.grid{gap:6px;margin-bottom:8px}

  .hero-card{padding:11px 12px;margin-bottom:8px;border-radius:11px;gap:6px}
  .hero-card h2{font-size:18px;line-height:1.15;margin:2px 0 3px;overflow-wrap:anywhere}
  .hero-card p{font-size:9px;line-height:1.35;overflow-wrap:anywhere}
  .hero-card .btn{min-height:34px;padding:7px 9px;font-size:10px;align-self:flex-start}

  .stat-card,.panel,.service-card,.mini-panel,.day-summary{border-radius:10px}
  .stat-card{padding:9px 10px;min-width:0;overflow:hidden}
  .stat-card span,.mini-panel span{font-size:9px;line-height:1.15}
  .stat-card strong{font-size:18px;line-height:1.1;margin:4px 0 2px;overflow-wrap:anywhere}
  .stat-card small{display:block;font-size:8px;line-height:1.25;overflow-wrap:anywhere}
  .panel{padding:9px;min-width:0}
  .panel-head{gap:5px;margin-bottom:7px;flex-wrap:wrap;min-width:0}
  .panel-head>div{min-width:0;max-width:100%}
  .panel-head h3,.panel h3{font-size:13px;line-height:1.2;overflow-wrap:anywhere}
  .panel-head p,.panel p{font-size:9px;line-height:1.3;overflow-wrap:anywhere}
  .panel-head a{font-size:9px;white-space:nowrap}
  .mini-panel{padding:9px}
  .mini-panel strong{font-size:15px}
  .section-title{font-size:16px;line-height:1.2;overflow-wrap:anywhere}

  .page-tools{gap:6px;margin-bottom:8px;overflow:hidden}
  .page-tools>*{min-width:0;max-width:100%}
  .search{width:100%;max-width:100%;height:42px}
  .search input{min-width:0}
  .search button{flex:0 0 44px;min-width:44px;padding:0 8px}
  .date-nav{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}
  .date-nav a{width:36px;height:38px;font-size:18px}

  /* Agenda: prioridade para horário, cliente e ações; sem linha horizontal. */
  .day-summary{padding:6px;gap:5px;margin-bottom:8px}
  .day-summary>div{padding:6px;min-width:0}
  .day-summary span{font-size:8px}
  .day-summary strong,.day-summary b{font-size:13px;line-height:1.1;overflow-wrap:anywhere}
  .agenda-list{gap:5px}
  .appointment-card{width:100%;max-width:100%;grid-template-columns:45px minmax(0,1fr);padding:8px 7px;gap:6px;border-radius:9px;overflow:hidden}
  .appointment-time{min-width:0}
  .appointment-time strong{font-size:15px}
  .appointment-time small{font-size:8px}
  .appointment-info{min-width:0;max-width:100%;overflow:hidden}
  .appointment-info h3{font-size:12px;line-height:1.15;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .appointment-info p,.appointment-info small{max-width:100%;font-size:9px;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}
  .appointment-actions{width:100%;max-width:100%;grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:5px;overflow:hidden}
  .appointment-actions .badge{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .action-row,.actions{min-width:0;max-width:100%;gap:4px;flex-wrap:wrap;justify-content:flex-end}
  .icon-btn{width:34px;height:34px;min-width:34px;border-radius:8px;font-size:15px;padding:0}
  .badge{max-width:100%;font-size:8px;padding:3px 5px;overflow:hidden;text-overflow:ellipsis}
  .schedule-item{gap:6px;padding:8px 0;min-width:0;overflow:hidden}
  .time-block{width:38px;min-width:38px;font-size:12px}
  .schedule-main{overflow:hidden}
  .schedule-main strong,.schedule-main span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .schedule-main strong{font-size:11px}
  .schedule-main span{font-size:9px}
  .schedule-item>.badge{flex:0 0 auto}

  /* Serviços em lista compacta. */
  .service-grid{gap:6px}
  .service-card{padding:9px;gap:7px;min-width:0;overflow:hidden}
  .service-card h3{font-size:12px;margin:4px 0 2px;overflow-wrap:anywhere}
  .service-card>div>strong{font-size:15px}
  .service-meta{gap:4px}
  .service-meta span{font-size:8px;padding:3px 5px;max-width:100%;overflow-wrap:anywhere}
  .service-card .btn{min-height:36px;padding:7px 9px;font-size:10px}

  /* Cards que substituem tabelas: minmax(0,1fr) elimina overflow do grid. */
  .table-panel{width:100%;max-width:100%;overflow:visible}
  .table-panel .panel-head{padding:9px;margin-bottom:5px;border-radius:10px;overflow:hidden}
  .table-panel table,.table-panel tbody{width:100%;max-width:100%;min-width:0}
  .table-panel tbody{gap:5px}
  .table-panel tr{width:100%;max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px;border-radius:10px;overflow:hidden}
  .table-panel td{width:auto;max-width:100%;min-width:0;font-size:10px;line-height:1.25;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}
  .table-panel td:before{font-size:7px;margin-bottom:2px}
  .table-panel td strong,.table-panel td small,.table-panel td span,.table-panel td a{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
  .table-panel td small{font-size:8px;line-height:1.25}
  .table-panel td:last-child{justify-self:stretch;align-items:flex-end}
  .table-panel td:last-child .actions,.table-panel td:last-child form{max-width:100%}
  .btn.tiny{padding:5px 7px;font-size:9px;min-height:30px}

  /* Formulários sempre em uma coluna e sem campos ultrapassando o sheet. */
  .modal-card{max-width:100%;max-height:90dvh;border-radius:16px 16px 0 0;overflow-x:hidden}
  .modal-head{padding:11px 12px;border-radius:16px 16px 0 0;min-width:0}
  .modal-head h3{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .modal-head button{width:36px;height:36px;min-width:36px}
  .form-grid{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr)!important;padding:9px;gap:7px;overflow:hidden}
  .form-grid>*{min-width:0;max-width:100%}
  .form-grid .span2{grid-column:1!important}
  .form-grid label{font-size:9px;gap:4px;overflow:hidden}
  .form-grid label small{overflow-wrap:anywhere}
  .form-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:6px;padding-top:6px}
  .form-actions .btn{min-width:0;min-height:40px;padding:7px 8px;font-size:10px;white-space:normal;line-height:1.15}
  .check{min-height:34px;line-height:1.3}

  /* Calendário: sete colunas reais, mesmo em telas estreitas. */
  .calendar-head{padding:8px;gap:5px;flex-wrap:wrap}
  .calendar-head>div{min-width:0}
  .calendar-head h3{font-size:13px;line-height:1.15;overflow-wrap:anywhere}
  .calendar-head p{font-size:8px}
  .calendar-nav{margin-left:auto;max-width:100%;gap:3px}
  .calendar-nav a{height:30px;min-width:30px;padding:0 5px;font-size:11px}
  .calendar-nav .calendar-today{font-size:8px;padding:0 5px}
  .calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
  .calendar-weekdays span{min-width:0;padding:5px 0;font-size:6.5px;overflow:hidden}
  .calendar-day{min-width:0;max-width:100%;min-height:42px;padding:3px;overflow:hidden}
  .calendar-day-top{min-width:0;gap:1px}
  .calendar-day-top b{font-size:10px}
  .calendar-count{min-width:14px;height:14px;padding:0 3px;font-size:6px}
  .calendar-event-dots{margin-top:5px}
  .calendar-event-dots i{width:4px;height:4px;min-width:4px}
  .calendar-legend{padding:6px 8px;gap:4px}
  .calendar-legend span{font-size:7px;min-width:0;overflow-wrap:anywhere}
  .selected-day-head{min-width:0;margin:2px 0 6px}
  .selected-day-head h3{font-size:13px;overflow-wrap:anywhere}

  /* Administração, relatórios e textos longos. */
  .appearance-preview{gap:7px}
  .appearance-preview img{max-width:100%;height:auto}
  .permissions-grid{grid-template-columns:minmax(0,1fr)!important;gap:4px}
  .admin-note,.update-checklist,.alert{max-width:100%;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}
  .admin-note{padding:7px;font-size:9px}
  .update-checklist{padding:8px;gap:5px}
  .update-checklist span{font-size:9px;overflow-wrap:anywhere}
  .status-list>div{gap:7px;padding:8px 0;align-items:flex-start;min-width:0}
  .status-list span,.status-list strong{min-width:0;max-width:60%;overflow-wrap:anywhere;text-align:right}
  .status-list span{text-align:left}
  .steps-list{gap:6px;margin:6px 0 10px}
  .steps-list>div{min-width:0;align-items:flex-start;gap:7px}
  .steps-list b{width:22px;height:22px;min-width:22px;font-size:9px}
  .steps-list span{min-width:0;font-size:9px;overflow-wrap:anywhere}
  .profile-summary{min-width:0;gap:9px}
  .profile-summary>div:last-child{min-width:0}
  .profile-summary strong,.profile-summary span,.profile-summary small{max-width:100%;overflow-wrap:anywhere}
  .profile-avatar{width:44px;height:44px;min-width:44px;font-size:18px}
  .bar-chart{height:190px;gap:2px}
  .bar-track{height:128px;max-width:18px}
  .report-big{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .report-big>div{min-width:0;padding:8px}
  .report-big strong{font-size:15px;overflow-wrap:anywhere}
  .report-big span{font-size:8px}
  .backup-panel{gap:8px}
  .backup-panel .btn{width:100%}
  .alert{top:57px;padding:8px 9px;margin-bottom:6px;font-size:9px;line-height:1.3}
}

@media(max-width:380px){
  .content{padding-left:5px;padding-right:5px}
  .stats-grid.four,.stats-grid.three{gap:4px}
  .stat-card{padding:8px}
  .stat-card strong{font-size:16px}
  .hero-card{padding:9px 10px}
  .hero-card h2{font-size:16px}
  .appointment-card{grid-template-columns:41px minmax(0,1fr);padding:7px 6px}
  .appointment-actions{flex-wrap:wrap}
  .calendar-day{min-height:38px;padding:2px}
  .calendar-day.today .calendar-day-top b{width:19px;height:19px}
  .calendar-nav .calendar-today{display:none}
  .table-panel tr{grid-template-columns:minmax(0,1fr)}
  .table-panel td:last-child{grid-column:1}
  .report-big{grid-template-columns:minmax(0,1fr)}
}

.hero-card h2:empty{margin:4px 0 7px;min-height:1.2em}


/* v1.4.0 - Novo Agendamento direto (Mãos/Pés), igual no desktop e celular */
.appointment-modal{padding:18px}
.appointment-editor{width:min(520px,100%);background:var(--app-bg,#f8f5f8);border-radius:20px;overflow:hidden}
.appointment-editor-head{background:var(--card-bg,#fff);padding:14px 16px;display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px}
.appointment-editor-head h3{font-size:20px;font-weight:600;text-align:left;margin:0}
.appointment-back{border:0!important;background:transparent!important;font-size:27px!important;color:#766a79!important;width:38px!important;height:38px!important;padding:0!important;display:grid;place-items:center}
.appointment-head-spacer{width:38px;height:38px}
.appointment-direct-form{display:flex;flex-direction:column;gap:8px;padding:9px;background:#f3eef4}
.appointment-date-time-card,.appointment-form-card{background:var(--card-bg,#fff);border:1px solid #e7dfe9;border-radius:16px;padding:17px;box-shadow:0 3px 12px rgba(63,37,68,.04)}
.appointment-date-time-card{display:grid;gap:18px}
.appointment-big-field{display:block}
.appointment-big-field>span{display:block;font-size:12px;letter-spacing:.08em;color:#847788;margin-bottom:7px;font-weight:700}
.appointment-big-input{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:7px}
.appointment-big-input i{font-style:normal;color:var(--primary);font-size:27px;text-align:center}
.appointment-big-input input{border:0!important;box-shadow:none!important;background:transparent;font-size:22px;padding:6px 4px;color:var(--text-main,#342a37);min-width:0}
.floating-field{position:relative;display:block;border:1px solid #b9aebc;border-radius:9px;padding:8px 10px 5px;margin-bottom:12px}
.floating-field>span{position:absolute;top:-9px;left:12px;background:var(--card-bg,#fff);padding:0 5px;color:#766a79;font-size:11px;z-index:2}
.floating-field select,.floating-field textarea{border:0!important;box-shadow:none!important;background:transparent;padding:5px 2px;width:100%;font-size:16px}
.floating-field textarea{min-height:95px}
.details-field{border-color:var(--primary)}
.details-field>span{color:var(--primary)}
.appointment-service-location{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(145px,.85fr);gap:16px;align-items:center}
.appointment-services-direct{display:grid;gap:12px;padding-right:14px;border-right:1px solid #d9cfdc}
.direct-service-row{display:grid;grid-template-columns:24px 58px minmax(0,1fr);align-items:center;gap:7px;min-width:0}
.direct-service-row>input[type=checkbox]{appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:4px;border:2px solid #c8bdcb;margin:0;display:grid;place-items:center;cursor:pointer}
.direct-service-row>input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}
.direct-service-row>input[type=checkbox]:checked:after{content:'✓';color:#fff;font-size:15px;font-weight:900;line-height:1}
.direct-service-row>span{font-size:12px;font-weight:800;color:#6e626f}
.money-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border-bottom:1px solid #aaa0ad;min-width:0}
.money-input b{font-weight:500;color:#6e626f;font-size:16px}
.money-input input{border:0!important;box-shadow:none!important;padding:5px 2px;background:transparent;font-size:17px;min-width:0;text-align:right}
.appointment-location-choice{display:grid;gap:17px}
.appointment-location-choice label{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:7px;cursor:pointer;color:#6e626f}
.appointment-location-choice input{position:absolute;opacity:0;pointer-events:none}
.radio-mark{width:24px;height:24px;border:2px solid #948899;border-radius:50%;display:grid;place-items:center}
.appointment-location-choice input:checked+.radio-mark{border-color:var(--primary)}
.appointment-location-choice input:checked+.radio-mark:after{content:'';width:12px;height:12px;background:var(--primary);border-radius:50%}
.appointment-location-choice b{font-size:12px;letter-spacing:.03em}
.appointment-total-line{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eee6ef;padding-top:12px;color:#756979}
.appointment-total-line strong{font-size:17px;color:var(--text-main,#342a37)}
.appointment-save{grid-column:1/-1;width:100%;min-height:48px;font-size:14px;letter-spacing:.03em;border-radius:10px}

@media(max-width:760px){
  .appointment-modal{padding:0;align-items:stretch}
  .appointment-editor{width:100%;height:100dvh;max-height:100dvh;border-radius:0}
  .appointment-editor-head{padding:11px 12px}
  .appointment-editor-head h3{font-size:18px}
  .appointment-direct-form{padding:7px;gap:7px}
  .appointment-date-time-card,.appointment-form-card{padding:13px;border-radius:13px}
  .appointment-date-time-card{gap:13px}
  .appointment-big-field>span{font-size:10px;margin-bottom:3px}
  .appointment-big-input{grid-template-columns:32px minmax(0,1fr)}
  .appointment-big-input i{font-size:23px}
  .appointment-big-input input{font-size:19px;padding:3px}
  .floating-field{margin-bottom:10px;padding:7px 8px 4px}
  .floating-field select,.floating-field textarea{font-size:15px}
  .floating-field textarea{min-height:76px}
  .appointment-service-location{grid-template-columns:minmax(0,1.15fr) minmax(120px,.85fr);gap:10px}
  .appointment-services-direct{padding-right:9px;gap:10px}
  .direct-service-row{grid-template-columns:21px 46px minmax(0,1fr);gap:5px}
  .direct-service-row>input[type=checkbox]{width:20px;height:20px}
  .direct-service-row>span,.appointment-location-choice b{font-size:10px}
  .money-input b{font-size:14px}.money-input input{font-size:15px;padding:4px 1px}
  .appointment-location-choice{gap:14px}
  .radio-mark{width:21px;height:21px}.appointment-location-choice input:checked+.radio-mark:after{width:11px;height:11px}
  .appointment-total-line{padding-top:9px;font-size:11px}.appointment-total-line strong{font-size:15px}
  .appointment-save{min-height:44px;font-size:12px}
}
@media(max-width:360px){
  .appointment-service-location{grid-template-columns:1fr}
  .appointment-services-direct{border-right:0;border-bottom:1px solid #d9cfdc;padding:0 0 10px}
  .appointment-location-choice{grid-template-columns:1fr 1fr;gap:8px}
}


/* v1.4.2 - faturamento automático e horário digitável */
.finance-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.appointment-big-input input[name="appointment_time"]{font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media(max-width:760px){
  .finance-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .appointment-big-input input[name="appointment_time"]{touch-action:manipulation}
}
@media(max-width:380px){.finance-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.4.5 - criação de usuário sem dependência de modal/JS */
.user-create-panel{margin-bottom:18px;scroll-margin-top:95px}.user-create-panel .panel-head{padding-bottom:4px}.user-create-form{max-width:760px}.user-create-form input,.user-create-form select{min-height:42px}
@media(max-width:760px){.user-create-panel{scroll-margin-top:72px}.user-create-form{max-width:100%}}


/* v1.4.8 - Rolagem confiável da Agenda no celular */
.agenda-mobile-jump{display:none}
#agenda-do-dia{scroll-margin-top:72px}
@media(max-width:760px){
  html,body{height:auto!important;min-height:100%!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y}
  body{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
  .app-shell,.main,.content{height:auto!important;min-height:0!important;max-height:none!important;overflow-y:visible!important}
  .app-shell{display:block!important}
  .main{display:block!important}
  .content{padding-bottom:112px!important}
  .calendar-panel,.agenda-day-panel,.agenda-list{height:auto!important;max-height:none!important;overflow:visible!important}
  .agenda-day-panel{padding-bottom:18px!important;margin-bottom:24px}
  .agenda-list{padding-bottom:12px;touch-action:pan-y}
  .appointment-card{touch-action:pan-y}
  #agenda-do-dia{scroll-margin-top:66px}
  .agenda-mobile-jump{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;margin:0 0 9px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--primary) 28%,#e8dfea);border-radius:10px;background:color-mix(in srgb,var(--primary) 7%,#fff);color:var(--primary);font-size:11px;font-weight:800;text-decoration:none;text-align:center}
}
