:root{
  --accent:#a8593b;
}
html[data-theme="light"], html[data-theme="system"]{
  --accent-bg:color-mix(in srgb, var(--accent) 16%, #ffffff);
  --accent-text:color-mix(in srgb, var(--accent) 75%, #000000);
  --green:#4d7a5a;
  --amber:#93691f;
  --red:#b0483f;
  --gray-bg:#f2efe9;
  --text:#211f1c;
  --text-sec:#8a8378;
  --text-mut:#b3ac9e;
  --border:#ddd0ba;
  --bg:#faf8f4;
  --surface:#ffffff;
}
html[data-theme="dark"]{
  --accent-bg:color-mix(in srgb, var(--accent) 26%, #000000);
  --accent-text:color-mix(in srgb, var(--accent) 55%, #ffffff);
  --green:#3f8f63;
  --amber:#c98a2e;
  --red:#c0564a;
  --gray-bg:#28251f;
  --text:#efe9e1;
  --text-sec:#a79e91;
  --text-mut:#6f665a;
  --border:#38332b;
  --bg:#191714;
  --surface:#221f1b;
}
@media (prefers-color-scheme: dark){
  html[data-theme="system"]{
    --accent-bg:color-mix(in srgb, var(--accent) 26%, #000000);
    --accent-text:color-mix(in srgb, var(--accent) 55%, #ffffff);
    --green:#3f8f63;
    --amber:#c98a2e;
    --red:#c0564a;
    --gray-bg:#28251f;
    --text:#efe9e1;
    --text-sec:#a79e91;
    --text-mut:#6f665a;
    --border:#38332b;
    --bg:#191714;
    --surface:#221f1b;
  }
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
.app{display:flex;min-height:100vh;}
.icon{width:17px;height:17px;flex-shrink:0;}
.icon svg{width:100%;height:100%;display:block;}

/* Sidebar */
.sidebar{
  width:236px;flex-shrink:0;background:var(--surface);color:var(--text);
  padding:28px 18px;border-right:1px solid var(--border);display:flex;flex-direction:column;
}
.brand{padding:2px 8px 30px;display:flex;align-items:center;gap:10px;}
.brand-logo{width:32px;height:32px;border-radius:9px;flex-shrink:0;}
.brand .name{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:19px;letter-spacing:-0.01em;line-height:1.25;}
.brand .role{font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-sec);margin-top:5px;}
.nav-item{
  display:flex;align-items:center;gap:11px;
  padding:10px 12px;border-radius:10px;font-size:16px;color:var(--text-sec);
  cursor:pointer;margin-bottom:2px;font-weight:500;
}
.nav-item.active{background:var(--accent-bg);color:var(--accent-text);}
.nav-item:hover{background:var(--gray-bg);}
.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--border);}

/* Mobile top nav */
.mobile-topbar{display:none;}
.mobile-search-bar{display:none;}

/* Search */
.search-box{position:relative;margin-bottom:20px;}
.search-box .s-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-sec);width:15px;height:15px;pointer-events:none;}
.search-box input{width:100%;padding:9px 12px 9px 33px;border-radius:10px;border:1px solid var(--border);background:var(--gray-bg);font-size:16px;font-family:inherit;color:var(--text);}
.search-box input:focus{outline:none;border-color:var(--accent);background:var(--surface);}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 28px rgba(33,31,28,.14);max-height:320px;overflow-y:auto;z-index:60;display:none;}
.search-results.open{display:block;}
.search-result{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);}
.search-result:last-child{border-bottom:none;}
.search-result:hover{background:var(--gray-bg);}
.search-result .tag{font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-text);margin-bottom:2px;}
.search-result .title{font-size:16px;font-weight:600;}
.search-result .snip{font-size:16px;color:var(--text-sec);margin-top:2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.search-empty{padding:14px;font-size:16px;color:var(--text-mut);text-align:center;}

/* Generic form controls */
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=datetime-local], select, textarea{
  padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);
  font-size:16px;font-family:inherit;color:var(--text);width:100%;
}
select{cursor:pointer;}
textarea{resize:vertical;min-height:70px;}
input:focus, select:focus, textarea:focus{outline:none;border-color:var(--accent);}
.filters-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.filters-bar input[type=text]{flex:1;min-width:200px;width:auto;}

/* Main */
.main{flex:1;min-width:0;padding:32px 36px;position:relative;}
.view{display:none;}
.view.active{display:block;}

h1{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:26px;margin:0 0 4px;letter-spacing:-0.01em;}
.subtitle{font-size:16px;color:var(--text-sec);margin:0 0 22px;}

.page-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:8px;}
.btn{
  background:var(--accent);color:#fff;border:none;padding:10px 18px;
  border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;white-space:nowrap;
  font-family:inherit;
}
.btn:hover{background:var(--accent-text);}
.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);}
.btn.danger{background:var(--red);}
.btn.danger:hover{background:#8a352e;}
.btn:disabled{opacity:.55;cursor:default;}
.btn-block{width:100%;}

/* metric cards */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;}
.metric .label{font-size:16px;color:var(--text-sec);margin-bottom:6px;}
.metric .value{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:30px;font-weight:800;}

/* table -> responsive */
table{width:100%;border-collapse:collapse;font-size:16px;}
thead th{
  text-align:left;font-weight:600;color:var(--text-sec);
  font-size:16px;letter-spacing:.03em;text-transform:uppercase;padding:8px;border-bottom:1px solid var(--border);
}
tbody td{padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:middle;}
tbody tr:hover{background:var(--gray-bg);}
.muted{color:var(--text-sec);}
.strong{font-weight:600;}

.badge{
  display:inline-block;padding:4px 11px;border-radius:20px;
  font-size:16px;font-weight:600;white-space:nowrap;border:none;cursor:default;
}
.b-accent{background:var(--accent);color:#fff;}
.b-green{background:var(--green);color:#fff;}
.b-amber{background:var(--amber);color:#fff;}
.b-red{background:var(--red);color:#fff;}
.b-gray{background:var(--gray-bg);color:var(--text-sec);}

/* case tabs */
.case-header{margin-bottom:6px;}
.case-header h2{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:23px;margin:0 0 5px;letter-spacing:-0.01em;}
.case-meta{font-size:16px;color:var(--text-sec);}
.tabs{display:flex;gap:28px;border-bottom:1px solid var(--border);margin:18px 0 22px;overflow-x:auto;}
.tab{
  padding:8px 2px 12px;font-size:16px;color:var(--text-sec);cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;
}
.tab.active{color:var(--accent-text);border-bottom-color:var(--accent);}
.tabpanel{display:none;}
.tabpanel.active{display:block;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:16px;}
.card .k{font-size:16px;font-weight:600;color:var(--text-sec);letter-spacing:.05em;margin-bottom:9px;text-transform:uppercase;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.quick-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-top:18px;}
.quick-info .lab{font-size:16px;font-weight:600;color:var(--text-sec);letter-spacing:.03em;text-transform:uppercase;}
.quick-info .val{font-size:16px;font-weight:600;margin-top:3px;}

/* movimientos timeline */
.timeline{position:relative;padding-left:22px;}
.timeline::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--border);}
.tl-item{position:relative;padding-bottom:22px;}
.tl-item::before{content:"";position:absolute;left:-22px;top:2px;width:10px;height:10px;border-radius:50%;background:var(--accent);}
.tl-date{font-weight:600;font-size:16px;}
.tl-text{font-size:16px;color:var(--text-sec);margin-top:2px;}

/* tareas */
.task{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
.task input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent);}
.task .txt{flex:1;font-size:16px;}
.task.done .txt{color:var(--text-sec);text-decoration:line-through;}

/* calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.cal-day-name{background:var(--surface);padding:9px;font-size:16px;font-weight:600;color:var(--text-sec);text-align:center;text-transform:uppercase;letter-spacing:.03em;}
.cal-cell{background:var(--surface);min-height:80px;padding:7px;font-size:16px;}
.cal-cell .num{font-weight:600;margin-bottom:4px;color:var(--text-sec);}
.cal-cell .evt{font-size:16px;padding:3px 6px;border-radius:5px;margin-bottom:3px;font-weight:600;}
.cal-nav{display:flex;align-items:center;gap:10px;}
.cal-nav button{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:16px;}

/* agenda diaria */
.agenda-date{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:16px;margin:26px 0 10px;}
.agenda-date:first-child{margin-top:0;}
.agenda-empty{font-size:16px;color:var(--text-mut);padding:0 0 4px;}
.agenda-item{display:flex;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;align-items:flex-start;}
.agenda-item .num{font-size:16px;font-weight:600;color:var(--accent-text);background:var(--accent-bg);padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0;}
.agenda-item .abody{flex:1;}
.agenda-item .materia{font-size:16px;font-weight:600;color:var(--text-sec);text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;}
.agenda-item .obs{font-size:16px;line-height:1.55;}

/* modal genérico (formularios) */
.overlay{
  display:none;position:fixed;inset:0;background:rgba(33,31,28,.4);
  align-items:center;justify-content:center;z-index:100;padding:20px;overflow-y:auto;
}
.overlay.open{display:flex;}
.modal{background:var(--surface);border-radius:18px;padding:26px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;}
.modal h3{margin:0 0 16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:17px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:16px;font-weight:600;color:var(--text-sec);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px;}
.form-error{color:var(--red);font-size:16px;margin-bottom:12px;display:none;}
.form-error.show{display:block;}

/* auth pages */
.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:36px 32px;max-width:380px;width:100%;}
.auth-logo{width:52px;height:52px;border-radius:14px;margin-bottom:16px;}
.auth-card h1{font-size:21px;margin-bottom:6px;}
.auth-card .subtitle{margin-bottom:24px;}
.auth-foot{text-align:center;font-size:16px;color:var(--text-sec);margin-top:18px;}
.auth-foot a{color:var(--accent-text);font-weight:600;text-decoration:none;cursor:pointer;}

/* paywall */
.paywall{max-width:460px;margin:60px auto;text-align:center;}
.paywall .card{text-align:left;}
.plan-opt{border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;}
.plan-opt.selected{border-color:var(--accent);background:var(--accent-bg);}

/* perfil: tema y color */
.avatar-circle{width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;flex-shrink:0;}
.pill-tabs{display:inline-flex;gap:2px;background:var(--gray-bg);border-radius:10px;padding:3px;margin-bottom:22px;}
.pill-tab{padding:8px 16px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;color:var(--text-sec);}
.pill-tab.active{background:var(--surface);color:var(--text);font-weight:600;}
.swatches{display:flex;gap:12px;flex-wrap:wrap;}
.swatch{width:32px;height:32px;border-radius:50%;cursor:pointer;flex-shrink:0;}

/* toggle switch simple */
.switch{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch .slider{position:absolute;inset:0;background:var(--border);border-radius:22px;transition:.15s;cursor:pointer;}
.switch .slider::before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s;}
.switch input:checked + .slider{background:var(--green);}
.switch input:checked + .slider::before{transform:translateX(16px);}

/* ===== Responsive ===== */
@media (max-width:760px){
  .sidebar{display:none;}
  .mobile-topbar{
    display:flex;overflow-x:auto;background:var(--surface);gap:4px;padding:12px;
    position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border);
  }
  .mobile-topbar .nav-item{color:var(--text-sec);padding:8px 13px;font-size:16px;flex-shrink:0;margin-bottom:0;}
  .mobile-topbar .nav-item.active{background:var(--accent-bg);color:var(--accent-text);}
  .mobile-search-bar{display:block;padding:12px;background:var(--surface);border-bottom:1px solid var(--border);}
  .mobile-search-bar .search-box{margin-bottom:0;}
  .app{flex-direction:column;}
  .main{padding:20px 18px 90px;}

  thead{display:none;}
  table, tbody, tr, td{display:block;width:100%;}
  tbody tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:10px 12px;}
  tbody td{border-bottom:none;padding:4px 0;}
  tbody td::before{
    content:attr(data-label);display:block;font-size:16px;color:var(--text-sec);
    font-weight:600;margin-bottom:2px;
  }
  .two-col{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .cal-cell{min-height:52px;font-size:16px;}
  .cal-day-name{font-size:16px;padding:6px 2px;}
}
