@charset "UTF-8";
.sidebar nav{flex:1;overflow-y:auto;min-height:0}.sidebar .brand,.sidebar-bottom{flex-shrink:0}
:root{--ink:#17332f;--muted:#697c76;--green:#245b48;--lime:#c6ed76;--bg:#f3f6f4;--line:#e0e7e2;--red:#b44848;--yellow:#866315;--white:#fff;--radius:16px;--shadow:0 12px 38px #143b2910;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;line-height:1.5}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:0;border-radius:9px;background:var(--green);color:#fff;padding:11px 17px;font-size:.9rem;font-weight:650;display:inline-flex;align-items:center;gap:8px;text-decoration:none;justify-content:center;transition:background .15s}button:hover,.button:hover{background:#174536}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}button.secondary:hover{background:#edf3ee}button.danger{background:var(--red)}button.small,.button.small{padding:7px 11px;font-size:.875rem}button.ghost{background:transparent;color:var(--muted);padding:8px}a{color:var(--green);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:1.9rem;line-height:1.2;letter-spacing:-.7px;margin-bottom:10px}h2{font-size:1.2rem;letter-spacing:-.3px;margin-bottom:16px}h3{font-size:1rem;margin-bottom:8px}p{margin-bottom:16px}.muted,small{color:var(--muted)}small{font-size:.81rem;line-height:1.5}.brand{display:flex;align-items:center;gap:10px;font-size:1.13rem;font-weight:750;letter-spacing:-.3px}.brand small{font-size:.65rem;letter-spacing:1.5px}.brand-symbol{height:36px;width:36px;background:var(--lime);color:var(--ink);border-radius:11px;display:inline-grid;place-items:center;font-weight:800;font-size:1.25rem;flex-shrink:0}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#17332f;color:#eff5ef;padding:27px 19px;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:240px;z-index:20}.sidebar .brand{margin:0 12px 36px}.workspace-label{font-size:.7rem;letter-spacing:1.4px;color:#9dad9f;margin:22px 13px 9px}.nav-button{display:flex;width:100%;justify-content:flex-start;align-items:center;text-align:left;gap:13px;background:transparent;color:#cad6ce;border:0;padding:11px 13px;font-weight:500;margin:3px 0;border-radius:9px}.nav-button:hover{background:#284a3f}.nav-button.active{color:#d5f498;background:#345340}.nav-button.active .icon{color:#c6ed76}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff1a;padding:18px 11px 0;font-size:.83rem;color:#aebfb4}.sidebar-bottom b{display:block;color:#e9f0e8;margin-bottom:4px}.main{grid-column:2;min-width:0}.topbar{height:83px;background:#fff;border-bottom:1px solid var(--line);padding:18px 38px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.85rem}.breadcrumb b{color:var(--ink);font-weight:500}.topbar-actions{display:flex;align-items:center;gap:14px}.user-chip{display:flex;align-items:center;gap:10px;font-size:.875rem}.avatar{background:#eaf1df;color:var(--green);height:35px;width:35px;border-radius:50%;display:grid;place-items:center;font-weight:750}.user-chip small{display:block;font-size:.73rem}.main-content{padding:30px 38px 48px;max-width:1550px;margin:0 auto}.heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:27px}.eyebrow{font-size:.7rem;letter-spacing:1.5px;font-weight:700;color:var(--green);margin-bottom:11px}.heading-row p{font-size:.9rem;color:var(--muted);margin:0}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.stat-label{color:var(--muted);font-size:.85rem;display:flex;justify-content:space-between;align-items:center}.stat-value{font-size:2rem;font-weight:700;letter-spacing:-1px;line-height:1.3;margin:13px 0 4px}.stat small{font-size:.75rem}.stat.featured{background:#e2edce;border-color:#d5e5ba}.columns{display:grid;grid-template-columns:1.4fr 1fr;gap:23px;margin-bottom:23px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 8px #17332f02}.card-pad{padding:24px}.card-header{padding:22px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.card-header h2{margin:0}.card-header small{display:block;margin-top:4px}.card-actions{display:flex;gap:8px;align-items:center}.market-list{padding:0 24px 15px}.market-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:13px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.coin-name{display:flex;align-items:center;gap:12px}.coin{width:37px;height:37px;border-radius:50%;background:#eef3e5;color:var(--green);display:grid;place-items:center;font-size:.8rem;font-weight:750}.coin-name b{font-size:.91rem;display:block}.coin-name small{font-size:.74rem}.rate-label{font-size:.68rem;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.rate-value{font-variant-numeric:tabular-nums;font-weight:650;font-size:1rem}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.73rem;font-weight:600;padding:4px 8px;border-radius:6px;background:#eef2ee;color:#61766a;white-space:nowrap}.badge.good{background:#eaf4e7;color:#366847}.badge.bad{background:#fcebea;color:#a64744}.badge.warn{background:#fcf2d8;color:#876a24}.badge.info{background:#e9f0fa;color:#42628d}.notice{font-size:.875rem;padding:14px 17px;border-radius:10px;background:#edf4e5;border:1px solid #dce9ce;margin-bottom:18px}.notice.danger{background:#fff0ec;color:#9e4540;border-color:#f1d9d3}.notice.warning{background:#fff7e7;color:#806723;border-color:#ece0bf}.empty{padding:35px 24px;text-align:center;color:var(--muted);font-size:.9rem}.empty b{color:var(--ink);display:block;margin-bottom:7px}.table-scroll{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;color:var(--muted);font-size:.73rem;font-weight:600;letter-spacing:.3px;background:#f8faf8;padding:13px 20px;white-space:nowrap}td{padding:16px 20px;border-top:1px solid #eaf0eb;white-space:nowrap}td.wrap{white-space:normal;max-width:280px}td b{font-size:.86rem}td small{display:block;font-size:.76rem}.number{font-variant-numeric:tabular-nums}.table-tools{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.search-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.search-form input{max-width:270px}.search-form select{width:auto}.pagination{padding:16px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.83rem}.pagination div{display:flex;gap:7px}.activity-chart{height:215px;padding:25px 24px 16px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:12px}.bar-col{display:flex;height:100%;flex-direction:column;justify-content:end;align-items:center;gap:7px}.bar-fill{background:#abd270;border-radius:6px 6px 0 0;width:65%;min-height:2px}.bar-col:last-child .bar-fill{background:#2d6551}.bar-col small{font-size:.7rem}.chart-count{font-size:.74rem;color:var(--green)}label{display:flex;flex-direction:column;gap:7px;font-size:.86rem;font-weight:550}input,select,textarea{background:#fff;border:1px solid #dce4dd;color:var(--ink);border-radius:8px;padding:11px 12px;font-size:.9rem;width:100%;min-width:0}textarea{resize:vertical;min-height:100px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid #a9cd87;outline-offset:2px}button:focus-visible,a:focus-visible{outline:3px solid #8daf74;outline-offset:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.form-grid h2{margin:10px 0 0}.check{display:flex;flex-direction:row;align-items:flex-start;font-weight:400;font-size:.85rem}.check input{width:18px;height:18px;flex-shrink:0;margin-top:3px;accent-color:var(--green)}.quote-card{max-width:620px;margin:auto}.quote-card .card-pad{padding:30px}.segmented{display:flex;gap:7px;background:#eef3ed;padding:5px;border-radius:10px;margin-bottom:23px}.segmented button{flex:1;background:transparent;color:var(--muted)}.segmented button.selected{background:#fff;color:var(--green);box-shadow:0 2px 6px #16392f0d}.quote-result{background:#eef5e5;border:1px solid #dce8cf;border-radius:12px;padding:22px;margin:22px 0}.quote-result .total{font-size:2rem;font-weight:700;letter-spacing:-.7px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.detail-grid small{display:block;margin-bottom:3px}.timeline{margin-top:20px}.timeline-item{border-left:2px solid #dce7d3;padding:0 0 22px 18px;position:relative}.timeline-item:before{content:"";position:absolute;left:-6px;top:4px;width:9px;height:9px;background:#7da059;border-radius:50%}.timeline-item b{display:block;font-size:.875rem}.timeline-item small{display:block}.integration-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.provider-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.provider-logo{border-radius:9px;background:#f4f6ed;padding:11px;font-weight:750;font-size:1.05rem}.provider-info{display:grid;grid-template-columns:1fr 1fr;gap:13px;font-size:.84rem;margin-bottom:20px}.provider-info small{display:block;margin-bottom:3px}.row-actions{display:flex;gap:7px}.cash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:24px}.balances{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.balance{padding:12px;background:#f5f8f1;border-radius:8px;overflow-wrap:anywhere}.balance small{display:block}.balance b{font-size:.87rem}.cash-form{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.auth-aside{background:#193b32;color:#fff;padding:55px 11%;display:flex;flex-direction:column;justify-content:space-between}.auth-aside .brand-symbol{background:var(--lime)}.auth-copy{padding:45px 0}.auth-copy h1{font-size:3.45rem;font-weight:550;letter-spacing:-2px;line-height:1.12;margin-bottom:25px}.auth-copy h1 span{color:var(--lime)}.auth-copy p{color:#c2d4c9;max-width:365px;font-size:1rem}.auth-market{background:#ffffff09;border:1px solid #ffffff19;border-radius:16px;padding:20px 22px;max-width:440px}.auth-market .market-row{border-color:#ffffff1c}.auth-market .coin-name small,.auth-market .rate-label{color:#bbcec0}.auth-market .coin{background:#ffffff15;color:#dcf2b4}.auth-market .rate-value{color:#f4f8ef}.auth-market h3{font-size:.9rem;color:#dfeadf}.auth-aside footer{font-size:.75rem;color:#b1c6b7}.auth-main{padding:44px 9%;display:flex;flex-direction:column;justify-content:center;max-width:670px;width:100%;margin:auto}.auth-main h1{font-size:1.85rem}.auth-main .form-grid{margin-top:25px}.auth-switch{text-align:center;font-size:.87rem;margin-top:22px;color:var(--muted)}.auth-nav{display:flex;gap:8px;margin-bottom:34px}.auth-nav button{flex:1}.auth-nav .secondary{border:0;background:transparent}.auth-main .requirements{margin-bottom:20px}.loading-screen{min-height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px}.skeleton{background:linear-gradient(90deg,#eaf0e8,#f8faf6,#eaf0e8);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:12px;height:120px}.loader-layout{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}#toasts{position:fixed;right:22px;bottom:22px;z-index:100;display:grid;gap:9px;max-width:min(420px,calc(100vw - 36px))}.toast{background:#193b32;color:#fff;padding:16px 20px;border-radius:12px;box-shadow:var(--shadow);font-size:.88rem}.toast.error{background:#954743}dialog{border:1px solid var(--line);border-radius:18px;padding:0;width:min(730px,calc(100% - 28px));max-height:90vh;color:var(--ink);box-shadow:0 28px 100px #14342f30}dialog::backdrop{background:#0b251e77;backdrop-filter:blur(3px)}.modal-header{padding:22px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-header h2{margin:0}.modal-body{padding:24px}.qr-display{text-align:center;padding:20px}.qr-display img{max-width:270px;width:100%;background:#fff;border:1px solid var(--line);padding:13px;border-radius:12px}.code{font-family:ui-monospace,monospace;background:#f4f7f1;padding:14px;border-radius:8px;font-size:.79rem;white-space:pre-wrap;word-break:break-word}.installer{padding:40px 18px}.install-card{max-width:750px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px;margin:auto}.install-card .brand{margin-bottom:30px}.requirements{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.help-table td{white-space:normal}.help-table code{font-size:.78rem;word-break:break-all}.reports-period{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.reports-period label{min-width:190px}.mobile-toggle{display:none}.mobile-close{display:none}.table-tools details{font-size:.8rem}.table-tools details label{font-size:.8rem;margin:7px 0}.table-tools details[open]{position:relative}.subtle{background:#f8faf5;padding:16px;border-radius:11px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.m-top{margin-top:24px}.m-bottom{margin-bottom:24px}.export-link{font-size:.85rem}.divider{height:1px;background:var(--line);margin:24px 0}.footnote{font-size:.8rem;color:var(--muted);margin-top:14px}.report-totals{display:flex;gap:16px;flex-wrap:wrap}.report-totals .stat{min-width:160px}.report-totals .stat-value{font-size:1.4rem}.auth-errors{display:none}.auth-errors.visible{display:block}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1650px){.main-content{padding-top:40px}}@media(max-width:1160px){.sidebar{width:210px;padding-inline:13px}.shell{grid-template-columns:210px 1fr}.main-content{padding:26px 24px}.topbar{padding:18px 24px}.stats{gap:12px}.stat{padding:18px 15px}.columns{grid-template-columns:1fr}.integration-grid{gap:14px}.auth-aside{padding:40px 8%}.auth-copy h1{font-size:2.7rem}.balances{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.shell{display:block}.main{width:100%}.sidebar{transform:translateX(-100%);transition:transform .2s;width:250px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #17332f55}.mobile-close{display:flex;align-self:flex-end}.mobile-toggle{display:inline-flex}.topbar{height:auto;min-height:72px;padding:15px 20px}.topbar-actions{gap:8px}.user-chip .user-text{display:none}.breadcrumb{font-size:.8rem}.main-content{padding:25px 20px}.stats{grid-template-columns:repeat(2,1fr)}.integration-grid,.cash-grid{grid-template-columns:1fr}.heading-row{flex-wrap:wrap}.auth-layout{grid-template-columns:1fr}.auth-aside{min-height:auto;padding:24px 25px}.auth-copy{padding:35px 0 8px}.auth-copy h1{font-size:2.3rem;max-width:500px}.auth-copy p,.auth-market,.auth-aside footer{display:none}.auth-main{padding:35px 25px;max-width:550px}.market-row{grid-template-columns:1.4fr 1fr 1fr}.install-card{padding:24px}}@media(max-width:480px){h1{font-size:1.65rem}.main-content{padding:24px 15px}.topbar{padding:14px 15px}.breadcrumb span{display:none}.stats{gap:10px}.stat{padding:17px 13px}.stat-value{font-size:1.7rem}.stat-label{font-size:.77rem}.stat-label .icon{display:none}.card-pad{padding:20px}.card-header{padding:19px 20px 14px}.market-list{padding:0 15px 12px}.market-row{gap:8px}.coin{width:29px;height:29px;font-size:.72rem}.coin-name{gap:8px}.coin-name b{font-size:.8rem}.coin-name small{font-size:.7rem}.rate-value{font-size:.85rem}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.detail-grid{gap:14px}.heading-actions{width:100%}.quote-card .card-pad{padding:23px}.row-actions{flex-wrap:wrap}.table-tools{padding:14px}.table-tools input{width:100%;max-width:none}.table-tools .search-form{width:100%}.pagination{font-size:.75rem}.provider-info{gap:12px}.balances{grid-template-columns:repeat(2,1fr)}.modal-body{padding:19px}.auth-copy h1{font-size:2rem}.activity-chart{gap:6px}}


/* Animación de acceso: login, registro y recuperación. */
.auth-layout .auth-aside {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(145deg, #15372e, #214c3e);
}
.auth-layout .auth-aside::before,
.auth-layout .auth-aside::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  pointer-events: none;
  animation: loginLuz 4.2s ease-out both;
}
.auth-layout .auth-aside::before {
  top: -240px;
  right: -200px;
  background: radial-gradient(circle, #c6ed762b, transparent 70%);
}
.auth-layout .auth-aside::after {
  bottom: -250px;
  left: -180px;
  background: radial-gradient(circle, #53c99a30, transparent 70%);
  animation-delay: .15s;
}
.auth-layout .auth-aside > .brand {
  animation: loginEntrada .6s ease-out both;
}
.auth-layout .auth-copy {
  animation: loginEntrada .7s ease-out .12s both;
}
.auth-layout .auth-copy .eyebrow {
  color: #b7d7c6;
}
.auth-layout .auth-main {
  animation: loginEntrada .7s ease-out .2s both;
}
.auth-layout button {
  transition: transform .18s ease, background-color .18s ease,
              box-shadow .18s ease;
}
.auth-layout button:not(:disabled):hover {
  transform: translateY(-2px);
}
.auth-layout button:not(:disabled):active {
  transform: translateY(0) scale(.99);
}
.auth-layout input {
  transition: border-color .18s ease, box-shadow .18s ease;
}
.auth-layout input:focus {
  border-color: #70a484;
  box-shadow: 0 0 0 4px #245b4812;
}
@keyframes loginEntrada {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes loginLuz {
  from { opacity: .3; transform: translate3d(0, 38px, 0) scale(.88); }
  to   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .auth-layout .auth-aside::before,
  .auth-layout .auth-aside::after,
  .auth-layout .auth-aside > .brand,
  .auth-layout .auth-copy,
  .auth-layout .auth-main {
    animation: none !important;
  }
  .auth-layout button,
  .auth-layout input {
    transition: none !important;
  }
  .auth-layout button:hover,
  .auth-layout button:active {
    transform: none !important;
  }
}

.sidebar .nav-button{justify-content:flex-start;text-align:left}.sidebar .nav-label{flex:1;min-width:0;text-align:left;white-space:normal}
