:root{
  --navy:#082f55;--navy2:#0b3d69;--blue:#1566d4;--orange:#ff7a00;
  --ink:#10233f;--muted:#68778e;--bg:#f5f7fb;--line:#e3e9f1;--white:#fff;
  --green:#19a879;--purple:#7b4ce2;--red:#e94e3d;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink)}
button,input{font:inherit}a{color:inherit}
svg{display:block}

/* Login */
.login-body{min-height:100vh;display:grid;place-items:center;padding:30px;background:
radial-gradient(circle at 18% 20%,rgba(35,104,170,.33),transparent 30%),
linear-gradient(135deg,#061f39,#0b3b67 60%,#082b4e);overflow:hidden;position:relative}
.login-watermark{position:absolute;left:-120px;bottom:-120px;width:650px;height:650px;background:url('../img/favicon.svg') center/contain no-repeat;opacity:.075;filter:grayscale(1)}
.login-card{width:min(980px,94vw);min-height:600px;display:grid;grid-template-columns:1fr 1.06fr;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.34)}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#0b3b67,#061f39);display:flex;align-items:center;justify-content:center;padding:46px}
.login-brand:before{content:"";position:absolute;width:430px;height:430px;background:url('../img/favicon.svg') center/contain no-repeat;opacity:.08}
.login-brand img{width:112%;max-width:470px;position:relative;z-index:2}
.brand-diagonal{position:absolute;right:-72px;bottom:-130px;width:250px;height:320px;background:var(--orange);transform:rotate(39deg);border-left:13px solid #fff}
.login-form-wrap{display:grid;place-items:center;padding:50px}
.login-form{width:100%;max-width:390px}
.login-form h1{font-size:34px;margin:0 0 8px}.login-form>p{color:var(--muted);margin:0 0 32px}
.login-form>label{display:block;font-weight:750;font-size:14px;margin:18px 0 9px}
.input-wrap{height:52px;border:1px solid #ccd6e2;border-radius:8px;display:flex;align-items:center;padding:0 14px;gap:12px}
.input-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,102,212,.1)}
.input-wrap input{border:0;outline:0;width:100%;height:100%;color:var(--ink)}
.password-toggle{border:0;background:transparent;cursor:pointer;color:var(--muted)}
.login-options{display:flex;justify-content:space-between;gap:20px;margin:20px 0;font-size:13px}
.login-options a{color:var(--blue);text-decoration:none}.remember{display:flex;gap:7px}
.primary-button{width:100%;height:50px;border:0;border-radius:8px;color:#fff;font-weight:800;background:linear-gradient(90deg,#ff870d,#ff6900);box-shadow:0 10px 25px rgba(255,122,0,.25);cursor:pointer;transition:.2s}
.primary-button:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 13px 28px rgba(255,122,0,.34)}
.login-footer{display:block;text-align:center;color:#8a97aa;margin-top:38px}
.alert{background:#fff0eb;border:1px solid #ffcfbf;color:#a23c1b;padding:10px 12px;border-radius:8px;font-size:13px}

/* App */
.app-body{background:var(--bg);min-height:100vh}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:250px;position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,#062b4d,#082f55);color:#fff;padding:22px 14px 18px;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 28px rgba(5,34,62,.08)}
.brand{padding:3px 8px 21px;border-bottom:1px solid rgba(255,255,255,.1);position:relative}
.brand img{width:100%}.sidebar-close{display:none}
.nav{padding:18px 0;display:flex;flex-direction:column;gap:5px;overflow:auto}
.nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:9px;text-decoration:none;font-weight:650;font-size:14px;color:#edf5ff;transition:.18s}
.nav a:hover{background:rgba(255,255,255,.09);transform:translateX(2px)}
.nav a.active{background:linear-gradient(90deg,#0f5fc9,#1769d2);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 10px 0;display:flex;align-items:center;gap:10px}
.avatar{width:42px;height:42px;border-radius:50%;background:#0f5fc9;color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.sidebar-user div,.top-user-copy{display:flex;flex-direction:column}
.sidebar-user small,.top-user-copy small{opacity:.72;margin-top:3px}.sidebar-user>a{margin-left:auto;font-size:12px;color:#ffd2ae;text-decoration:none}
.main{margin-left:250px;min-width:0;flex:1;display:flex;flex-direction:column}
.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:18px;position:sticky;top:0;z-index:20}
.searchbox{width:min(330px,36vw);height:42px;background:#f5f7fb;border:1px solid #edf0f5;border-radius:9px;display:flex;align-items:center;padding:0 13px;gap:10px}
.searchbox svg,.action-icon svg,.menu-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.searchbox input{width:100%;border:0;outline:0;background:transparent}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.action-icon{position:relative;border:0;background:transparent;color:#344a67;padding:8px;cursor:pointer}
.notification-dot{position:absolute;top:0;right:0;background:#ff5b3c;color:#fff;border-radius:50%;font-size:10px;width:17px;height:17px;display:grid;place-items:center}
.icon-button{border:0;background:transparent}.menu-button{display:none}
.page-heading{background:#fff;padding:25px 28px 20px;border-bottom:1px solid var(--line)}
.page-heading h1{margin:0;font-size:26px}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}
.content{padding:24px;flex:1}
.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(20,52,84,.05)}
.stat-card{padding:18px;display:flex;gap:13px;align-items:center;min-height:118px}
.stat-icon{width:47px;height:47px;border-radius:12px;display:grid;place-items:center;font-size:21px;font-weight:800}
.stat-icon.blue{background:#e8f1ff;color:#1164d7}.stat-icon.orange{background:#fff0e1;color:#ff7600}.stat-icon.green{background:#e6f7f1;color:#16936d}.stat-icon.purple{background:#f0eafe;color:var(--purple)}
.stat-card div{display:flex;flex-direction:column}.stat-card small{font-weight:750}.stat-card strong{font-size:29px;margin:4px 0}.stat-card em{font-style:normal;color:var(--muted);font-size:11px}
.dashboard-main-grid{display:grid;grid-template-columns:1.65fr 1fr .82fr;gap:14px;margin-top:14px}
.dashboard-bottom-grid{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:14px;margin-top:14px}
.panel{padding:20px}.panel h2{margin:0;font-size:16px}.panel-title-row{display:flex;justify-content:space-between;align-items:center;gap:15px}.panel-title-row a{font-size:12px;color:var(--blue);text-decoration:none}
.legend{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.orange-dot,.blue-dot{width:8px;height:8px;border-radius:50%}.orange-dot{background:var(--orange)}.blue-dot{background:var(--blue)}
.chart-panel{min-height:330px}.line-chart{height:260px;margin-top:20px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:1fr 25px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:#8a97aa;padding-bottom:11px}.line-chart svg{width:100%;height:100%}.grid-lines line{stroke:#edf1f6;stroke-width:1}.line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.orange-line{stroke:var(--orange)}.blue-line{stroke:var(--blue)}.chart-x{grid-column:2;display:flex;justify-content:space-between;color:#7d8a9c;font-size:10px}
.donut-wrap{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:36px}.donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(#cfd5de 0 25%,#1769d2 25% 50%,#24ae87 50% 75%,#f15743 75% 100%);display:grid;place-items:center}.donut:before{content:"";position:absolute}.donut>div{width:86px;height:86px;border-radius:50%;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center}.donut strong{font-size:25px}.donut span{font-size:11px;color:var(--muted)}
.donut-wrap ul{list-style:none;padding:0;margin:0;display:grid;gap:14px;font-size:12px}.donut-wrap li{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px}.donut-wrap i{width:8px;height:8px;border-radius:50%}.draft{background:#cfd5de}.sent{background:#1769d2}.accepted{background:#24ae87}.rejected{background:#f15743}
.empty-mini{text-align:center;padding:58px 10px 30px}.empty-mini>span{display:grid;place-items:center;margin:0 auto 14px;width:48px;height:48px;border-radius:12px;background:#edf4ff;color:var(--blue);font-size:22px}.empty-mini strong,.empty-mini small{display:block}.empty-mini small{color:var(--muted);margin-top:7px}
.empty-list{display:flex;gap:13px;align-items:center;padding:26px 4px}.empty-list>span{width:40px;height:40px;border-radius:10px;background:#edf4ff;color:var(--blue);display:grid;place-items:center}.empty-list div{display:flex;flex-direction:column}.empty-list small{color:var(--muted);margin-top:4px}
.reminder-list{list-style:none;padding:10px 0 0;margin:0}.reminder-list li{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.reminder-list b{min-width:24px;height:24px;border-radius:12px;background:#edf4ff;color:var(--blue);display:grid;place-items:center}
.empty-state{text-align:center;padding:75px 30px}.empty-icon{width:68px;height:68px;border-radius:18px;margin:0 auto 20px;display:grid;place-items:center;background:#edf4fd;color:var(--blue);font-size:28px}.empty-state h2{font-size:28px;margin:0 0 10px}.empty-state p{color:var(--muted)}.empty-state span{font-size:13px;color:#8b97a7}
.footer{text-align:center;color:#7b899b;font-size:12px;padding:18px 30px 24px}.mobile-overlay{display:none}

@media(max-width:1250px){
  .stats-grid{grid-template-columns:repeat(3,1fr)}
  .dashboard-main-grid{grid-template-columns:1.4fr 1fr}
  .appointments-panel{grid-column:1/-1}
}
@media(max-width:980px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-main-grid,.dashboard-bottom-grid{grid-template-columns:1fr}
}
@media(max-width:780px){
  .login-body{padding:0;background:#fff}.login-card{width:100%;min-height:100vh;border-radius:0;display:block;box-shadow:none}.login-brand{min-height:220px;padding:35px}.login-brand img{max-width:340px}.brand-diagonal{display:none}.login-form-wrap{padding:36px 24px}
  .sidebar{transform:translateX(-100%);transition:transform .25s;width:285px}.sidebar.open{transform:translateX(0)}.sidebar-close{display:block;position:absolute;right:4px;top:-3px;border:0;background:rgba(255,255,255,.12);color:#fff;width:34px;height:34px;border-radius:50%;font-size:24px}
  .mobile-overlay{position:fixed;inset:0;background:rgba(2,17,31,.52);z-index:25}.mobile-overlay.show{display:block}.main{margin-left:0}.menu-button{display:block;cursor:pointer}.topbar{padding:0 15px}.searchbox{flex:1;width:auto}.top-user-copy{display:none}.page-heading{padding:20px 18px}.content{padding:16px}
}
@media(max-width:520px){
  .login-options{align-items:flex-start;flex-direction:column;gap:10px}.stats-grid{grid-template-columns:1fr}.top-actions .action-icon:nth-child(2){display:none}.chart-panel{overflow:hidden}
}


/* Clientes v0.3 */
.module-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.module-toolbar h2{margin:0;font-size:23px}.module-toolbar p{margin:5px 0 0;color:var(--muted);font-size:13px}
.button-primary,.button-secondary,.primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 17px;border-radius:8px;text-decoration:none;font-weight:750;font-size:14px;cursor:pointer}
.button-primary,.primary-link{border:0;background:linear-gradient(90deg,#ff870d,#ff6900);color:#fff;box-shadow:0 8px 20px rgba(255,122,0,.2)}
.button-primary:hover,.primary-link:hover{filter:brightness(1.05)}
.button-secondary{border:1px solid #ccd7e4;background:#fff;color:var(--ink)}
.flash{padding:13px 15px;border-radius:9px;margin-bottom:16px;font-size:14px}
.flash.success{background:#e9f8f2;border:1px solid #bdebd9;color:#117457}.flash.error{background:#fff0eb;border:1px solid #ffcfbf;color:#a23c1b}
.clients-panel{padding:0;overflow:hidden}
.clients-search{padding:17px;display:flex;gap:10px;border-bottom:1px solid var(--line)}
.clients-search input{flex:1;min-width:0;height:42px;border:1px solid #ccd7e4;border-radius:8px;padding:0 13px;outline:0}
.clients-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,102,212,.1)}
.clients-search button{height:42px;padding:0 17px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer}
.clients-search a{align-self:center;color:var(--blue);font-size:13px;text-decoration:none}
.table-wrap{overflow:auto}.clients-table{width:100%;border-collapse:collapse;min-width:850px}
.clients-table th{text-align:left;background:#f8fafc;color:#6e7c90;font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:13px 17px;border-bottom:1px solid var(--line)}
.clients-table td{padding:15px 17px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}
.clients-table tbody tr:hover{background:#fbfdff}
.client-name{display:flex;align-items:center;gap:11px}.client-name>span{width:39px;height:39px;border-radius:11px;background:#e8f1ff;color:var(--blue);display:grid;place-items:center;font-weight:800}
.client-name div,.contact-cell{display:flex;flex-direction:column;gap:4px}.client-name small,.contact-cell small{color:var(--muted)}
.clients-empty{text-align:center;padding:70px 25px}.clients-empty h3{margin:0 0 8px;font-size:22px}.clients-empty p{color:var(--muted);margin-bottom:22px}
.client-form{padding:0}.form-section{padding:22px 24px;border-bottom:1px solid var(--line)}.form-section h3{margin:0 0 17px;font-size:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.clients-grid .full,.setup-form .full{grid-column:1/-1}
.form-grid label,.textarea-label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.form-grid label span{color:var(--red)}
.form-grid input,.textarea-label textarea{width:100%;border:1px solid #ccd7e4;border-radius:8px;padding:11px 12px;outline:0;background:#fff;color:var(--ink)}
.form-grid input:focus,.textarea-label textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,102,212,.1)}
.textarea-label{display:flex}.textarea-label textarea{resize:vertical;min-height:115px}
.form-actions{padding:18px 24px;display:flex;justify-content:flex-end;gap:10px}
.database-notice{text-align:center;padding:65px 28px}.database-notice p{color:var(--muted);max-width:620px;margin:10px auto 22px;line-height:1.6}
.setup-body{min-height:100vh;display:grid;place-items:center;padding:28px;background:var(--bg)}
.setup-card{width:min(650px,95vw);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 55px rgba(20,52,84,.12);padding:35px}
.setup-card>img{display:block;width:280px;max-width:80%;margin:0 auto 28px}.setup-card h1{text-align:center;margin:0 0 8px}.setup-card>p{text-align:center;color:var(--muted)}
.setup-form{margin-top:25px}.setup-form .primary-button{margin-top:20px}.setup-success{text-align:center}.security-note{margin-top:20px;color:#a23c1b}.setup-success .primary-link{margin-top:12px}

@media(max-width:650px){
  .module-toolbar{align-items:stretch;flex-direction:column}.module-toolbar .button-primary,.module-toolbar .button-secondary{width:100%}
  .form-grid{grid-template-columns:1fr}.clients-grid .full,.setup-form .full{grid-column:auto}
  .clients-search{flex-wrap:wrap}.clients-search input{flex-basis:100%}.clients-search button{flex:1}
}
