:root{--ink:#151319;--muted:#625d68;--line:#dfdce4;--bg:#f5f5f7;--purple:#673be1;--dark:#16151a;--green:#168953;--red:#b4232f;--blue:#2b82bd;--orange:#c87318}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--dark);color:#fff;padding:22px 15px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand img{width:46px;height:46px;border-radius:12px;background:#fff;object-fit:contain}.brand b{font-size:13px;letter-spacing:.12em}.brand span,.user-card span{display:block;color:#a7a2ad;font-size:10px;margin-top:3px}.sidebar nav{display:grid;gap:5px}.nav-btn{height:45px;border:0;border-radius:11px;background:transparent;color:#aaa6b0;display:flex;align-items:center;gap:11px;padding:0 13px;cursor:pointer;text-align:left}.nav-btn.active{color:#fff;background:linear-gradient(135deg,#754cf0,#5730cf)}.nav-btn i{font-style:normal;font-size:18px;width:21px}.user-card{margin-top:auto;border-top:1px solid #302d35;padding:17px 7px 0;display:flex;align-items:center;gap:9px}.user-card>i{width:36px;height:36px;border-radius:50%;background:var(--purple);display:grid;place-items:center;font-style:normal;font-weight:800}.user-card b{font-size:12px}.user-card button{margin-left:auto;background:none;border:0;color:#aaa;cursor:pointer;font-size:18px}main{margin-left:245px}.topbar{height:92px;background:#fff;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20}.topbar>div{margin-right:auto}.topbar small{font-size:9px;letter-spacing:.12em;color:#77717e;text-transform:uppercase}.topbar h1{font-size:23px;margin:3px 0 0}.icon-btn{display:none;border:0;border-radius:10px;background:#eee9fb;width:44px;height:44px}.btn{border:0;border-radius:9px;min-height:40px;padding:0 14px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary{background:linear-gradient(135deg,#754cf0,#5730cf);color:#fff}.outline{background:#fff;color:#211d27;border:1px solid #bbb6c2}.danger{color:#9d2732;border-color:#dbb1b5}.content{padding:26px 32px 45px;max-width:1500px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.intro h2{margin:0;font-size:21px}.intro p{font-size:11px;color:var(--muted);margin:4px 0 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:16px}.metrics.three{grid-template-columns:repeat(3,1fr)}.metric,.panel,.client-card{background:#fff;border:1px solid var(--line);border-radius:14px}.metric{padding:17px;display:flex;align-items:center;gap:11px;text-align:left}.metric.clickable{width:100%;cursor:pointer;transition:.16s}.metric.clickable:hover{transform:translateY(-2px);box-shadow:0 8px 22px #24193816}.metric>i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:19px;font-style:normal}.metric .green{background:#dff7ea;color:var(--green)}.metric .blue{background:#e3f2ff;color:var(--blue)}.metric .red{background:#ffe4e5;color:var(--red)}.metric .orange{background:#fff0dc;color:var(--orange)}.metric span,.metric small,.row span{display:block;color:var(--muted);font-size:10px}.metric b{display:block;font-size:19px;margin:2px 0}.panel{padding:18px 20px;margin-bottom:15px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.panel-title small{display:block;font-size:9px;letter-spacing:.14em;font-weight:800;color:#655e6b}.panel-title h3{margin:3px 0;font-size:16px}.row{display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid #ece9ef}.row>i{width:36px;height:36px;border-radius:10px;background:#eee8ff;color:var(--purple);display:grid;place-items:center;font-style:normal;font-weight:800}.row b{display:block;font-size:12px}.row strong{font-size:12px}.positive{color:var(--green)}.negative{color:#c75443}.overdue{background:#fffafa;border-color:#eab8bc}.empty{padding:20px;text-align:center;color:var(--muted);font-size:11px}.kanban{display:grid;grid-template-columns:repeat(5,minmax(255px,1fr));gap:12px;overflow-x:auto;scrollbar-color:#8c83a2 #e8e6ec}.kanban-col{background:#e5e3e9;border:1px solid #d2ced8;border-radius:14px;padding:11px;min-height:520px}.kanban-head{display:flex;justify-content:space-between;font-size:11px;font-weight:800;padding:4px 3px 11px}.kanban-head i{font-style:normal;background:#cbc7d1;border-radius:20px;padding:1px 7px}.task-card{background:#fff;border:1px solid #c8c4cd;border-radius:12px;padding:13px;margin-bottom:10px}.task-card>div{display:flex;justify-content:space-between}.task-card h3{font-size:13px;margin:11px 0 3px}.task-card p{font-size:10px;color:var(--muted);margin:0 0 11px}.task-card footer{border-top:1px solid #eeeaf0;padding-top:9px;display:flex;gap:7px}.task-card select{height:38px;min-width:0;flex:1}.badge{display:inline-flex;border-radius:20px;padding:3px 7px;background:#eee8ff;color:#5d36ce;font-size:8px;font-weight:750}.badge.high{background:#ffe3e7;color:#ae3045}.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.client-card{padding:18px}.client-card header{display:flex;justify-content:space-between}.client-card header i{width:42px;height:42px;border-radius:12px;color:#fff;display:grid;place-items:center;font-style:normal;font-weight:800}.client-card h3{font-size:15px;margin:13px 0 3px}.client-card p{font-size:10px;color:var(--muted);margin:0}.client-stats{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #ece9ef;margin:15px 0;padding:12px 0}.client-stats span{font-size:8px;color:var(--muted);text-transform:uppercase}.client-stats b{display:block;font-size:11px;color:var(--ink);margin-top:3px}.client-card .btn{width:100%;font-size:10px}.cost-row{display:grid;grid-template-columns:1.3fr 1fr .7fr .7fr .8fr;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #e8e5eb;font-size:10px}.cost-actions{display:flex;gap:5px}.cost-actions button{font-size:9px}.agenda-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px}.login-screen,.install-body{min-height:100vh;background:radial-gradient(circle at top,#5335a8,#17131f 60%);display:grid;place-items:center;padding:16px}.login-card,.install-card{width:min(440px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 90px #0006}.login-card>img,.install-card>img{width:70px;height:70px;object-fit:contain;display:block;margin:auto}.login-card>div{text-align:center}.login-card>div b{letter-spacing:.15em}.login-card>div span{display:block;color:var(--muted);font-size:10px}.login-card h1,.install-card h1{text-align:center;font-size:21px;margin:22px 0}.login-card label,.install-form label,.form-grid label{display:grid;gap:6px;font-size:11px;font-weight:650;margin-bottom:11px}.login-card input,.login-card select,.install-form input,.form-grid input,.form-grid select,.form-grid textarea,.task-card select{width:100%;border:1px solid #bdb8c4;border-radius:9px;background:#fff;color:var(--ink);padding:0 11px;min-height:43px}.login-card .btn,.install-form .btn{width:100%;margin-top:5px}.form-error,.error-box{color:#a52632;font-size:11px}.error-box{background:#ffe9eb;border:1px solid #edbdc1;padding:10px;border-radius:8px}.success-box{background:#e8f8ef;border:1px solid #bae3ca;padding:18px;border-radius:12px}.success-box .btn{margin-top:10px;text-decoration:none}.install-form hr{border:0;border-top:1px solid var(--line);margin:8px 0 15px}.overlay{position:fixed;inset:0;background:#0f0d13bd;z-index:80;display:grid;place-items:center;padding:14px}.modal{position:relative;background:#fff;border-radius:17px;width:min(680px,100%);max-height:90vh;overflow-y:auto;padding:23px;box-shadow:0 28px 90px #0007}.modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;background:#f0edf3;border-radius:10px;font-size:22px;cursor:pointer}.modal h2{font-size:19px;margin:0 40px 17px 0}.form-grid{display:grid;gap:9px}.form-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-section{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px}.modal-section h3{font-size:14px;margin:0 0 11px}.detail-total{display:flex;justify-content:space-between;background:#f2eff7;border-radius:10px;padding:13px;margin-top:10px}.toast{position:fixed;z-index:100;right:18px;bottom:18px;background:#17141c;color:#fff;border-radius:10px;padding:12px 16px;font-size:11px;box-shadow:0 10px 35px #0004}.bottom-nav{display:none}.loading{text-align:center;padding:45px;color:var(--muted)}
@media(max-width:1050px){.metrics{grid-template-columns:1fr 1fr}.client-grid{grid-template-columns:1fr 1fr}.kanban{grid-template-columns:repeat(5,280px)}.agenda-grid{grid-template-columns:1fr}}
@media(max-width:720px){body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}.app-shell{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.sidebar{transform:translateX(-105%);transition:.2s;width:min(86vw,320px);padding-top:calc(20px + env(safe-area-inset-top))}.sidebar.open{transform:none}.sidebar.open:after{content:'';position:fixed;inset:0 0 0 100%;width:20vw;background:#0007}main{margin:0}.topbar{height:calc(72px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0}.icon-btn{display:grid;place-items:center}.topbar small{display:none}.topbar h1{font-size:19px}.compact{width:44px;padding:0;font-size:20px}.compact span{display:none}.content{padding:15px 11px 25px}.intro h2{font-size:19px}.intro p{font-size:10px}.metrics,.metrics.three{grid-template-columns:1fr 1fr}.metric{padding:13px;min-height:82px}.metric b{font-size:16px}.client-grid{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(5,calc(100vw - 36px));scroll-snap-type:x mandatory}.kanban-col{scroll-snap-align:center;min-height:430px}.task-card footer .btn{min-height:42px}.bottom-nav{display:flex;position:fixed;z-index:40;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));padding:5px 6px env(safe-area-inset-bottom);background:#17161a;overflow-x:auto;gap:3px}.bottom-nav .nav-btn{display:grid;place-items:center;align-content:center;gap:2px;min-width:64px;height:54px;padding:3px;text-align:center}.bottom-nav .nav-btn i{width:auto;font-size:17px}.bottom-nav .nav-btn span{font-size:8px;white-space:nowrap}.modal{width:calc(100vw - 14px);max-height:91dvh;padding:18px;border-radius:16px}.modal input,.modal select,.modal textarea{min-height:46px;font-size:16px}.form-cols{grid-template-columns:1fr}.modal .btn.primary{min-height:46px;width:100%}.cost-row{grid-template-columns:1fr auto}.cost-row>*:nth-child(2),.cost-row>*:nth-child(3){display:none}.cost-actions{grid-column:1/-1}.row{grid-template-columns:38px minmax(0,1fr) auto}.agenda-grid{grid-template-columns:1fr}}
@media(max-width:430px){.metrics,.metrics.three{grid-template-columns:1fr}.row{grid-template-columns:36px minmax(0,1fr)}.row strong{grid-column:2}.client-stats{gap:8px}}

/* Atualização 1 — feedback imediato, senha e Kanban arrastável */
.password-field{position:relative}.password-field input{padding-right:49px}.password-field button{position:absolute;right:4px;top:4px;width:38px;height:35px;border:0;border-radius:8px;background:#f0edf4;color:#312a39;font-size:17px;cursor:pointer}
.task-card{cursor:grab;transition:transform .16s,box-shadow .16s,opacity .16s}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.42;transform:rotate(1deg)}
.kanban-col{transition:background .16s,border-color .16s,box-shadow .16s}.kanban-col.drop-ready{background:#ddd5f1;border-color:#7652dd;box-shadow:inset 0 0 0 2px #7652dd55}
.drag-hint{font-size:9px;color:#625b69;display:flex;align-items:center;margin-right:auto}.move-mobile{display:none}
.delete-client-zone{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff3f4;border:1px solid #efc4c8;border-radius:12px;padding:14px;margin-top:13px}.delete-client-zone b,.delete-client-zone span{display:block}.delete-client-zone b{font-size:12px;color:#941f2b}.delete-client-zone span{font-size:9px;color:#6b5559;margin-top:3px}
.move-help{font-size:11px;color:var(--muted)}.status-options{display:grid;gap:8px}.status-option{width:100%;min-height:49px;border:1px solid #c9c3cf;border-radius:10px;background:#fff;color:#211d27;padding:8px 12px;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.status-option:hover{border-color:#7754da;background:#f7f3ff}.status-option.current{background:#eee8ff;border-color:#8c6ce6;color:#5831ca}.status-option small{font-size:9px}
@media(max-width:720px){.task-card{cursor:default}.drag-hint{display:none}.move-mobile{display:inline-flex;flex:1}.task-card footer .btn{min-height:42px}.delete-client-zone{align-items:flex-start;flex-direction:column}.delete-client-zone .btn{width:100%}}

/* Atualização 2 — feedback de salvamento e prevenção de clique duplicado */
.btn:disabled{opacity:.72;cursor:wait;filter:saturate(.7)}

/* Atualização 3 — recuperação visível quando o painel não carrega */
.load-error{min-height:340px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center}.load-error b{font-size:17px}.load-error span{font-size:11px;color:var(--muted);max-width:430px}
