:root{--th-primary:#6f42c1;--th-dark:#181525;--th-bg:#f5f6fa;--th-text:#202333}
*{box-sizing:border-box}html{overflow-x:hidden}body{color:var(--th-text);font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}
.btn-primary{--bs-btn-bg:var(--th-primary);--bs-btn-border-color:var(--th-primary);--bs-btn-hover-bg:color-mix(in srgb,var(--th-primary),#000 12%)}
.login-page{min-height:100vh;background:linear-gradient(135deg,rgba(20,13,43,.87),rgba(111,66,193,.72)),var(--login-bg),#20152f;background-size:cover;background-position:center}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:min(100%,440px);background:rgba(255,255,255,.97);padding:42px;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--th-primary);color:#fff;font-weight:800;margin-bottom:20px}
.login-card h1{font-size:1.8rem;font-weight:750;margin-bottom:4px}.form-control{border-radius:12px}
.login-logo{display:block;max-width:230px;max-height:90px;object-fit:contain;margin:0 auto 24px}
.app-page{background:var(--th-bg);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#181525;color:#fff;padding:28px 22px}
.sidebar nav{margin-top:36px}.sidebar a{display:block;color:#fff;text-decoration:none;padding:12px 14px;border-radius:10px}.sidebar a.active{background:var(--th-primary)}
.content{margin-left:240px;padding:30px}.topbar{display:flex;justify-content:space-between;align-items:center}.topbar h1{font-size:1.6rem}
.empty-state{background:#fff;max-width:720px;margin:80px auto;padding:56px;text-align:center;border-radius:22px;box-shadow:0 10px 35px rgba(25,20,45,.07)}
.empty-state>span{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e8f8ef;color:#198754;font-size:1.7rem}
/* Aplicação */
.sidebar{background:var(--th-dark);width:250px;padding:24px 18px;z-index:1040;overflow-y:auto}
.sidebar-brand{display:flex;align-items:center;justify-content:center;margin-bottom:32px;padding:4px 0}.sidebar-brand-link{width:100%;min-height:82px;display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;text-decoration:none;border-radius:12px;transition:.2s}.sidebar-brand-link:hover{background:rgba(255,255,255,.05);color:#fff}.sidebar-brand .brand-mark{margin:0;flex:none}.sidebar nav{margin:0;display:grid;gap:5px}
.system-logo{display:block;width:auto;max-width:210px;max-height:110px;object-fit:contain;object-position:center}
.sidebar nav a{display:flex;align-items:center;gap:12px;color:#cbc8d8;padding:12px 14px;font-weight:550}.sidebar nav a i{font-size:1.15rem}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:var(--th-primary)}
.content{margin-left:250px;padding:0 32px 32px;min-height:100vh}.app-topbar{height:78px;display:flex;align-items:center;justify-content:flex-end;gap:20px;border-bottom:1px solid #e8e8ee;margin-bottom:28px}.app-topbar>div{display:grid;text-align:right;margin-right:10px}.app-topbar small{color:#777;font-size:.72rem}.app-topbar strong{font-size:.9rem}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.page-head h1{font-size:1.8rem;font-weight:750;margin:0}.mobile-menu{display:none;position:fixed;top:14px;left:14px;z-index:1050}
.sidebar-backdrop{display:none;position:fixed;inset:0;padding:0;border:0;background:rgba(14,11,25,.55);z-index:1035}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat-card{background:#fff;border-radius:16px;padding:22px;display:flex;gap:15px;align-items:center;box-shadow:0 6px 25px rgba(30,25,55,.05)}.stat-card>div:last-child{display:grid}.stat-card small{color:#777}.stat-card strong{font-size:1.35rem;margin-top:4px}.stat-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;font-size:1.25rem}.stat-icon.purple{background:#efe8ff;color:#7043cf}.stat-icon.green{background:#e4f8ed;color:#198754}.stat-icon.blue{background:#e5f2ff;color:#1971c2}.stat-icon.orange{background:#fff0dd;color:#e67700}
.panel{background:#fff;padding:24px;border-radius:16px;box-shadow:0 6px 25px rgba(30,25,55,.045)}.panel h2,.panel-title h2{font-size:1.08rem;font-weight:700;margin:0 0 20px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-title h2{margin:0}.panel-title a{font-size:.85rem}.table{margin:0}.table thead th{color:#777;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;font-weight:650;border-bottom-color:#eee}.table td{border-bottom-color:#f0f0f3;padding-top:14px;padding-bottom:14px}
.status{display:inline-block;border-radius:50px;padding:5px 10px;font-size:.75rem;font-weight:650;text-transform:capitalize}.status.pago,.status.entrada{color:#167246;background:#e5f8ee}.status.pendente,.status.ajuste,.status.atrasado{color:#a65b00;background:#fff1dc}.status.cancelado,.status.saida{color:#b42318;background:#fee9e7}
.list-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #eee}.list-row>div{display:grid}.list-row small{color:#777;font-size:.78rem}.empty-copy{color:#777;text-align:center;padding:35px 0}.actions-bar{display:flex;justify-content:space-between;gap:15px;margin-bottom:18px}.search-form{display:flex;gap:8px;width:min(100%,460px)}.form-control,.form-select{border-radius:10px;border-color:#dddde5}.btn{border-radius:9px}.detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.info-list{display:grid;grid-template-columns:120px 1fr;gap:11px;margin:0}.info-list dt{color:#777;font-weight:500}.info-list dd{margin:0}.finance-status{min-height:130px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:14px;font-size:1.1rem}.finance-status.good{background:#e8f8ef;color:#167246}.finance-status.bad{background:#fff1dc;color:#a65b00}.finance-status i{font-size:1.7rem}
.sale-item{display:grid;grid-template-columns:1fr 90px 130px 42px;gap:10px;margin-bottom:12px}.sticky-summary{position:sticky;top:20px}.total-box{padding:18px;background:var(--th-bg);border-radius:12px;display:grid;margin-bottom:20px}.total-box small{color:#777}.total-box strong{font-size:1.6rem}.summary-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee}.summary-line.total{font-size:1.2rem;border:0;margin-bottom:14px}.theme-preview{height:200px;border-radius:12px;background:#f3f4f8;display:grid;grid-template-columns:32% 1fr;overflow:hidden}.preview-sidebar{background:var(--th-dark)}.theme-preview>div:last-child{padding:25px;display:grid;align-content:center;gap:12px}.theme-preview span{display:block;height:12px;background:#ddd;border-radius:8px}.theme-preview button{border:0;border-radius:8px;background:var(--th-primary);color:#fff;padding:10px}.app-footer{text-align:center;color:#999;font-size:.78rem;padding:35px 0 5px}
.sale-price-field{display:grid;gap:2px}.sale-price-field small{display:none;color:#777;font-size:.7rem}.live-payment-summary{display:grid;gap:9px;margin-top:15px;padding:14px;background:#f7f7fa;border-radius:12px}.live-payment-summary>div{display:flex;justify-content:space-between;align-items:center}.live-payment-summary span{color:#666;font-size:.85rem}.live-payment-summary strong{font-size:1rem}
.btn-whatsapp{background:#25d366;color:#fff;border-color:#25d366}.btn-whatsapp:hover,.btn-whatsapp:focus{background:#1daf55;color:#fff;border-color:#1daf55}
.receivable-stats{display:flex}.receivable-card{width:100%;background:#fff;border-radius:16px;padding:22px;display:grid;grid-template-columns:auto 1fr;gap:8px 15px;box-shadow:0 6px 25px rgba(30,25,55,.05);border-top:3px solid transparent}.receivable-card.active-contracts{border-color:var(--th-primary)}.receivable-card.overdue-contracts{border-color:#e67700}.receivable-card.paid-contracts{border-color:#198754}.receivable-card .stat-icon{grid-row:1/3}.receivable-main,.receivable-value{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.receivable-main small,.receivable-value small{color:#777}.receivable-main strong{font-size:1.65rem}.receivable-value{padding-top:8px;border-top:1px solid #eee}.receivable-value strong{font-size:1.05rem}.receivable-title{align-items:flex-start}.receivable-title p{color:#777;font-size:.85rem;margin:-12px 0 0}.filter-pills{display:flex;padding:4px;background:#f2f2f6;border-radius:10px}.filter-pills a{color:#666;text-decoration:none;padding:7px 12px;border-radius:8px;font-size:.82rem;font-weight:600}.filter-pills a.active{background:#fff;color:var(--th-primary);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.deadline{font-size:.78rem;font-weight:650;white-space:nowrap}.deadline-ok{color:#3270a8}.deadline-soon{color:#b26000}.deadline-late{color:#c02d22}.deadline-paid{color:#16814b}
.client-link{color:var(--th-text);text-decoration:none}.client-link:hover{color:var(--th-primary);text-decoration:underline}
.table-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}
.payment-success-box{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin-bottom:20px;background:#e7f8ee;border:1px solid #b8e8cb;border-radius:14px;color:#126b3d}.payment-success-box>div{display:flex;align-items:center;gap:13px}.payment-success-box>div>i{font-size:1.8rem}.payment-success-box span{display:grid}.payment-success-box small{color:#397a58}.payment-confirm-icon{width:64px;height:64px;margin:5px auto 18px;display:grid;place-items:center;border-radius:50%;background:#e7f8ee;color:#198754;font-size:1.7rem}
.client-cell{display:flex;align-items:center;gap:10px}.client-cell img,.client-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover}.client-avatar{display:grid;place-items:center;background:#eee8ff;color:var(--th-primary);font-weight:750}.photo-upload{display:flex;align-items:center;gap:16px;padding:14px;background:#f7f7fa;border-radius:12px}.photo-upload>div:last-child{flex:1}.photo-preview{width:76px;height:76px;border-radius:50%;background:#e9e9ef;display:grid;place-items:center;overflow:hidden;flex:none;color:#888;font-size:2rem}.photo-preview img{width:100%;height:100%;object-fit:cover}.client-profile{display:flex;align-items:center;gap:16px;margin-bottom:24px}.client-profile img,.client-avatar.large{width:72px;height:72px;border-radius:50%;object-fit:cover}.client-profile h2{margin:0 0 3px}.client-profile small{color:#777}
.client-name-link{color:var(--th-text);text-decoration:none}.client-name-link:hover{color:var(--th-primary);text-decoration:underline}.client-cell>a.client-avatar{text-decoration:none}.client-photo-button{position:relative;width:72px;height:72px;padding:0;border:0;border-radius:50%;background:transparent;overflow:hidden;flex:none}.client-photo-button img{width:100%;height:100%;object-fit:cover}.client-photo-button span{position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,15,35,.5);color:#fff;font-size:1.2rem;opacity:0;transition:.2s}.client-photo-button:hover span,.client-photo-button:focus span{opacity:1}.photo-modal-card{border:0;border-radius:18px;overflow:hidden}.photo-modal-card .modal-body{padding:0;background:#111;text-align:center}.photo-modal-card .modal-body img{display:block;width:100%;max-height:75vh;object-fit:contain;margin:auto}
.settings-upload-list{display:grid;gap:14px}.settings-upload{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;padding:15px;border:1px solid #e5e5eb;border-radius:14px;cursor:pointer}.settings-upload>span:last-child{display:grid;gap:5px}.settings-upload small{color:#777;font-size:.78rem}.settings-image-preview{width:92px;height:72px;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:#f1f1f5;color:#888;font-size:1.6rem}.settings-image-preview img{width:100%;height:100%;object-fit:contain}.background-preview img{object-fit:cover}
.client-new-panel{max-width:900px;margin:0 auto}.form-actions{display:flex;align-items:center;gap:10px;margin-top:24px}
.dashboard-financial-cards .dashboard-money-card{border:1px solid #ececf1;box-shadow:0 4px 18px rgba(30,25,55,.04)}.dashboard-money-card strong{font-size:1.45rem}.dashboard-charts .panel{min-height:360px}.chart-wrap{height:285px}.donut-wrap{height:285px;max-width:390px;margin:auto}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
 body.menu-open{overflow:hidden}.mobile-menu{display:grid;place-items:center;width:44px;height:44px;padding:0;box-shadow:0 5px 16px rgba(50,25,100,.25)}.mobile-menu i{font-size:1.35rem}
 .sidebar{position:fixed;width:min(84vw,300px);padding:18px 14px;transform:translateX(-105%);transition:transform .25s ease;box-shadow:18px 0 45px rgba(0,0,0,.22)}.menu-open .sidebar{transform:translateX(0)}.menu-open .sidebar-backdrop{display:block}.sidebar-brand{margin-bottom:18px}.sidebar-brand-link{min-height:70px}.system-logo{max-width:220px;max-height:92px}.sidebar nav{gap:4px}.sidebar nav a{min-height:48px;font-size:1rem}
 .content{margin:0;padding:0 14px 24px}.app-topbar{height:72px;margin-bottom:20px;padding-left:48px}.app-topbar>div{max-width:145px}.app-topbar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar .btn{min-height:40px}.page-head{margin-bottom:18px}.page-head h1{font-size:1.45rem}
 .login-shell{padding:15px}.login-card{padding:28px 20px;border-radius:18px}.login-logo{max-width:210px}.form-control,.form-select{font-size:16px;min-height:46px}.form-control-color{min-height:48px}.btn{min-height:44px}.btn-sm{min-height:38px}
 .stats-grid{grid-template-columns:1fr;gap:12px}.stat-card{padding:17px}.stat-card strong{font-size:1.25rem}.receivable-stats{gap:12px!important}.receivable-card{padding:17px}.dashboard-charts .panel{min-height:315px}.chart-wrap,.donut-wrap{height:240px}
 .actions-bar{align-items:stretch;flex-direction:column}.actions-bar>.btn,.actions-bar>a.btn{width:100%}.actions-bar>div{justify-content:stretch!important}.actions-bar>div>.btn,.actions-bar>div>a,.actions-bar>div>form{flex:1}.actions-bar>div form .btn{width:100%}.search-form{width:100%;display:grid;grid-template-columns:1fr auto}
 .detail-grid{grid-template-columns:1fr;gap:14px}.panel{padding:17px;border-radius:14px}.panel-title{gap:12px}.panel-title h2{font-size:1rem}.table-responsive{margin-left:-17px;margin-right:-17px;padding:0 17px}.table{min-width:720px}.table th,.table td{padding-left:10px;padding-right:10px}.table-actions{justify-content:flex-start}.status{white-space:nowrap}
 .sale-item{grid-template-columns:1fr 76px;gap:8px;padding:12px;background:#f7f7fa;border-radius:12px}.sale-item .product-select{grid-column:1/-1}.sale-item .sale-price-field{min-width:0}.sale-price-field small{display:block}.sticky-summary{position:static}.total-box strong{font-size:1.45rem}
 .info-list{grid-template-columns:90px 1fr;font-size:.92rem}.client-profile{align-items:center}.client-profile h2{font-size:1.2rem}.client-photo-button,.client-profile img,.client-avatar.large{width:64px;height:64px}
 .receivable-title{display:grid;gap:18px}.filter-pills{width:100%;overflow-x:auto}.filter-pills a{flex:1;text-align:center;white-space:nowrap;min-width:94px}.payment-success-box{align-items:stretch;flex-direction:column}.payment-success-box .btn{width:100%}
 .photo-upload{align-items:flex-start;flex-direction:column}.photo-preview{margin:auto}.settings-upload{grid-template-columns:1fr}.settings-image-preview{width:100%;height:120px}.theme-preview{height:170px}
 .form-actions{align-items:stretch;flex-direction:column}.form-actions .btn{width:100%}
 .modal-dialog{margin:.5rem}.modal-content{border-radius:16px}.modal-header,.modal-body,.modal-footer{padding:16px}.modal-footer{display:grid;grid-template-columns:1fr 1fr}.modal-footer>*{width:100%;margin:0!important}.photo-modal-card .modal-body{padding:0}
 .app-footer{padding-top:28px}
}
@media(max-width:420px){
 .content{padding-left:10px;padding-right:10px}.app-topbar{padding-left:50px}.app-topbar>div{display:none}.page-head h1{font-size:1.3rem}.panel{padding:14px}.table-responsive{margin-left:-14px;margin-right:-14px;padding:0 14px}.stat-card{padding:14px}.receivable-main,.receivable-value{display:grid;justify-content:start}.receivable-main strong{font-size:1.45rem}.search-form{grid-template-columns:1fr}.search-form .btn{width:100%}.info-list{grid-template-columns:1fr;gap:3px}.info-list dd{margin-bottom:10px}.modal-footer{grid-template-columns:1fr}.client-profile{align-items:flex-start}.payment-success-box{padding:15px}.dashboard-charts .panel{min-height:285px}.chart-wrap,.donut-wrap{height:215px}
}
