:root{--primary:#5b2aa0;--blue:#1267b2;--green:#177245;--orange:#d58a00;--ink:#151326;--muted:#6b7280;--bg:#f6f3fb;--card:#fff}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}.auth-bg{background:radial-gradient(circle at top left,#efe5ff,#fff 38%,#eef7ff)}.login-card{background:#fff;border:1px solid #eadfff;border-radius:28px;box-shadow:0 20px 60px #4c1d9518;padding:34px}.login-logo,.brand-mark{background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;border-radius:18px;display:inline-grid;place-items:center;font-weight:900}.login-logo{width:78px;height:78px;font-size:28px}.demo-box{background:#f7f1ff;border:1px dashed #b897ff;border-radius:16px;padding:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:292px;background:#fff;border-right:1px solid #ece7f5;padding:18px;position:fixed;inset:0 auto 0 0;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:22px}.brand-mark{width:54px;height:54px}.brand span{display:block;color:var(--muted);font-size:12px}.nav-title{color:#8b7aa8;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin:18px 8px 8px}.nav-link{display:flex;align-items:center;gap:10px;color:#302a44;text-decoration:none;padding:10px 12px;border-radius:14px;margin-bottom:4px}.nav-link:hover{background:#f3edff;color:var(--primary)}.main{margin-left:292px;flex:1}.topbar{height:68px;background:#ffffffc9;backdrop-filter:blur(14px);border-bottom:1px solid #ece7f5;display:flex;justify-content:space-between;align-items:center;padding:0 26px;position:sticky;top:0;z-index:2}.user-pill{background:#f7f4fb;border:1px solid #ebe2fa;padding:8px 12px;border-radius:999px;display:flex;gap:8px;align-items:center}.content-wrap{padding:28px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.page-head h1{font-weight:900;letter-spacing:-.03em;margin:0}.page-head p{color:var(--muted);margin:4px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.kpi,.panel{background:var(--card);border:1px solid #ebe6f4;border-radius:24px;box-shadow:0 10px 30px #34135d0d}.kpi{padding:20px}.kpi i{font-size:26px;color:var(--primary)}.kpi span{display:block;color:var(--muted);font-size:13px;margin-top:12px}.kpi b{font-size:24px}.panel{padding:22px}.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#47207d;--bs-btn-hover-border-color:#47207d}.table th{color:#756988;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.form-control,.form-select{border-radius:14px;border-color:#ded5ec;padding:.72rem .9rem}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.sidebar{position:relative;width:100%;height:auto}.main{margin-left:0}.app-shell{display:block}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#6f2dbd;background:#f1e8ff;border:1px solid #e0ccff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.hero-modules{border-radius:34px;background:linear-gradient(135deg,#27113f,#5b2aa0 46%,#1267b2);color:#fff;padding:34px;display:flex;align-items:end;justify-content:space-between;gap:18px;box-shadow:0 24px 70px #3a17612b}.hero-modules h1{font-size:42px;line-height:1;font-weight:950;letter-spacing:-.05em;margin:10px 0}.hero-modules p{max-width:760px;color:#efe9ff;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.module-card{position:relative;overflow:hidden;background:#fff;border:1px solid #ebe6f4;border-radius:28px;padding:24px;text-decoration:none;color:#171123;min-height:255px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 45px #3213540f;transition:.2s transform,.2s box-shadow}.module-card:hover{transform:translateY(-5px);box-shadow:0 26px 65px #32135420;color:#171123}.module-card:after{content:"";position:absolute;right:-60px;top:-80px;width:190px;height:190px;border-radius:999px;opacity:.12}.module-card.education:after{background:#6d28d9}.module-card.legal:after{background:#0f766e}.module-card.adi:after{background:#ea580c}.module-card.crm:after{background:#2563eb}.module-card.finance:after{background:#16a34a}.module-card.accounting:after{background:#9333ea}.module-icon{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;background:#f3edff;color:#5b2aa0;font-size:28px;margin-bottom:18px}.module-card span{font-size:12px;font-weight:900;text-transform:uppercase;color:#82728d;letter-spacing:.06em}.module-card h3{font-size:22px;line-height:1.04;font-weight:900;margin:8px 0 10px}.module-card p{color:#6b7280;margin:0}.module-card>b{display:inline-flex;align-items:center;gap:7px;margin-top:20px;color:#5b2aa0}.education-hub{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.education-hub a{background:#fff;border:1px solid #ebe6f4;border-radius:24px;padding:18px;text-decoration:none;color:#171123;box-shadow:0 12px 35px #3213540d;min-height:135px}.education-hub a:hover{background:#fbf8ff}.education-hub i{font-size:28px;color:#5b2aa0}.education-hub b,.education-hub span{display:block}.education-hub b{font-size:16px;margin-top:12px}.education-hub span{font-size:12px;color:#6b7280}.small-hub{grid-template-columns:repeat(3,minmax(0,1fr))}.live-item{display:flex;gap:12px;align-items:center;border:1px solid #eee7f8;border-radius:18px;padding:13px;margin-bottom:10px;background:#fbfaff}.live-item i{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#f1e8ff;color:#5b2aa0}.live-item div{flex:1}.live-item b,.live-item span{display:block}.live-item span{font-size:12px;color:#6b7280}.stack-links{display:grid;gap:10px}.stack-links a{display:flex;gap:10px;align-items:center;text-decoration:none;color:#241b34;background:#fbf9ff;border:1px solid #eee7f8;border-radius:16px;padding:12px}.mini-row{border:1px solid #eee7f8;border-radius:16px;padding:12px;margin-bottom:10px;background:#fff}.mini-row b,.mini-row span{display:block}.mini-row span{color:#6b7280;font-size:13px}@media(max-width:1200px){.module-grid{grid-template-columns:repeat(2,1fr)}.education-hub{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.hero-modules{display:block}.module-grid,.education-hub,.small-hub{grid-template-columns:1fr}.hero-modules h1{font-size:32px}}

/* Portal estudiante */
.student-shell{min-height:100vh;background:linear-gradient(135deg,#f7fbff 0%,#eef4ff 45%,#fff7ef 100%)}
.student-hero{margin:0;padding:28px 38px;background:linear-gradient(135deg,#10233f,#184b7a);color:#fff;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 18px 45px rgba(15,35,63,.22)}
.student-hero h2{font-weight:900;margin:8px 0 4px}.student-hero p{margin:0;opacity:.86}.brand-mini{width:58px;height:58px;border-radius:20px;background:#fff;color:#143a63;display:grid;place-items:center;font-weight:900;box-shadow:0 14px 30px rgba(0,0,0,.18)}
.student-user{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.20);border-radius:999px;padding:10px 14px;white-space:nowrap}.student-user a{color:#fff;font-weight:800;margin-left:10px}.student-content{padding:28px 36px}.student-card b{font-size:28px}.student-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f7}.student-item:last-child{border-bottom:0}.student-item small{display:block;color:#6b7280;margin-top:2px}
@media(max-width:768px){.student-hero{padding:22px;flex-direction:column;align-items:flex-start}.student-content{padding:18px}.student-user{white-space:normal}}
.education-hero-integrated{background:linear-gradient(135deg,#0f766e,#0ea5e9)!important}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.module-card[target="_blank"]{text-decoration:none}.module-card .module-icon{flex-shrink:0}

/* Contabilidad */
.accounting-shell{display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px;align-items:start}
.accounting-aside{position:sticky;top:92px}
.accounting-nav-card{background:#fff;border:1px solid #e8ddf4;border-radius:28px;box-shadow:0 18px 44px rgba(50,19,84,.09);padding:18px}
.accounting-nav-card__head{display:flex;align-items:center;gap:12px;padding:10px 12px 18px;border-bottom:1px solid #f0e8f8}
.accounting-nav-card__head i{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#ede0ff,#f5efff);color:#6f2dbd;font-size:18px}
.accounting-nav-card__head b{display:block;font-size:18px}.accounting-nav-card__head span{display:block;color:#7d6e8f;font-size:12px}
.accounting-nav-group{padding:16px 10px 8px}.accounting-nav-group+.accounting-nav-group{border-top:1px solid #f4eff8}
.accounting-nav-group__title{margin:0 0 10px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#7d4ac7}
.accounting-nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;text-decoration:none;color:#2d2140;font-weight:600;transition:.18s ease background,.18s ease color,.18s ease transform}
.accounting-nav-link i{color:#b5a3cb;font-size:10px}
.accounting-nav-link:hover,.accounting-nav-link.is-active{background:#f4ecff;color:#5b2aa0;transform:translateX(2px)}
.accounting-main{display:grid;gap:20px}
.accounting-hero{background:linear-gradient(135deg,#203a67,#2f74ad 58%,#34b3b2);color:#fff;border-radius:24px;padding:26px 28px;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;box-shadow:0 20px 60px rgba(22,71,120,.24)}
.accounting-hero--violet{background:linear-gradient(135deg,#5b2aa0,#6951d6 55%,#2d9cdb)}
.accounting-hero--indigo{background:linear-gradient(135deg,#2b396e,#5b2aa0 52%,#1ca8b8)}
.accounting-hero--slate{background:linear-gradient(135deg,#35445c,#52657f 58%,#3f90a8)}
.accounting-hero--cyan{background:linear-gradient(135deg,#106972,#167f8d 52%,#5a5fd6)}
.accounting-hero h1{margin:6px 0 8px;font-size:32px;line-height:1;font-weight:950;letter-spacing:-.04em}
.accounting-hero p{margin:0;max-width:760px;color:rgba(255,255,255,.86)}
.accounting-hero__summary{display:grid;gap:10px;min-width:220px}
.accounting-hero__summary .btn,.accounting-hero__summary .btn-outline-light{white-space:nowrap}
.accounting-panel{background:#fff;border:1px solid #ece4f5;border-radius:24px;padding:22px;box-shadow:0 14px 40px rgba(49,20,81,.08)}
.accounting-panel h3{margin:0 0 6px;font-size:26px;font-weight:900;letter-spacing:-.03em}
.accounting-panel__head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}
.accounting-panel__head p{margin:0;color:#776a8c}
.accounting-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.accounting-stat-card{background:#fbf8ff;border:1px solid #ece2f8;border-radius:18px;padding:16px 18px;min-height:94px}
.accounting-stat-card span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#886cb8;margin-bottom:8px}
.accounting-stat-card b{display:block;font-size:30px;line-height:1;font-weight:950;letter-spacing:-.04em;color:#20162f}
.accounting-stat-card small{display:block;margin-top:8px;color:#7b6b90}
.accounting-filters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.accounting-filters>*{grid-column:span 3}
.accounting-filters .span-6{grid-column:span 6}.accounting-filters .span-4{grid-column:span 4}.accounting-filters .span-2{grid-column:span 2}.accounting-filters .span-12{grid-column:1/-1}
.accounting-filters__actions{display:flex;gap:10px;justify-content:flex-end;align-items:end}
.accounting-property-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px;padding:16px;border:1px solid #ece4f5;border-radius:18px;background:#fcfbfe}
.accounting-property-grid label{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:#4e4260}
.accounting-table{width:100%;border-collapse:separate;border-spacing:0}
.accounting-table thead th{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#837493;border-bottom:1px solid #eee7f7;padding:12px 10px;background:#fff}
.accounting-table tbody td{padding:14px 10px;border-bottom:1px solid #f1ebf8;vertical-align:top}
.accounting-table tbody tr:hover{background:#fbf9ff}
.accounting-table strong{display:block;font-size:13px;color:#271d39}
.accounting-table small{display:block;color:#857696}
.accounting-table .code{font-variant-numeric:tabular-nums;font-weight:900;color:#34214b}
.accounting-chip-row{display:flex;gap:6px;flex-wrap:wrap}
.accounting-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.03em;border:1px solid transparent}
.accounting-chip--movement{background:#e3f6ee;color:#0e6a47;border-color:#b8e6d1}
.accounting-chip--cost{background:#edf3ff;color:#2d5fb0;border-color:#cfdefe}
.accounting-chip--third{background:#f7ebff;color:#7c3aed;border-color:#e7cdfd}
.accounting-chip--receivable{background:#fff1dd;color:#b16600;border-color:#f4d39d}
.accounting-chip--payable{background:#ffe7ea;color:#b83c56;border-color:#ffc5cf}
.accounting-chip--advance{background:#eaf7ff;color:#0c7aa8;border-color:#bee5f6}
.accounting-chip--adjustment{background:#f2eefb;color:#5d3f91;border-color:#ddd2f4}
.accounting-level-help{display:flex;gap:10px;flex-wrap:wrap}
.accounting-level-help span{background:#f6f0ff;border:1px solid #eadbf9;color:#5f2e9e;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}
.accounting-entry-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap}
.accounting-state{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.accounting-state--ok{background:#e8f9ef;color:#0f7a4b;border:1px solid #b8e9cb}
.accounting-state--pending{background:#fff3e5;color:#b26906;border:1px solid #fed8aa}
.accounting-tabbar{display:flex;gap:8px;flex-wrap:wrap}
.accounting-tabbar .btn{border-radius:999px}
.accounting-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.accounting-process-card{background:linear-gradient(180deg,#fff,#fbf8ff);border:1px solid #ebe3f7;border-radius:22px;padding:20px;box-shadow:0 14px 34px rgba(51,21,83,.06)}
.accounting-process-card i{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:#efe5ff;color:#6f2dbd;font-size:22px;margin-bottom:14px}
.accounting-process-card h4{margin:0 0 8px;font-size:20px;font-weight:900}
.accounting-process-card p{margin:0;color:#74678a}
.accounting-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid #ebe3f7;border-radius:18px;background:#fbfaff}
.accounting-switch b{display:block}.accounting-switch span{display:block;color:#7b6d91;font-size:13px}
.accounting-switch .form-check-input{width:3rem;height:1.5rem}
.accounting-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.accounting-section-title h4{margin:0;font-size:18px;font-weight:900}
.accounting-section-title p{margin:0;color:#7a6e8f;font-size:13px}
.accounting-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.accounting-summary-card{background:#fff;border:1px solid #ece4f5;border-radius:18px;padding:16px}
.accounting-summary-card span{display:block;color:#7e708f;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.accounting-summary-card b{display:block;font-size:26px;font-weight:950;margin-top:8px}
@media(max-width:1280px){.accounting-shell{grid-template-columns:1fr}.accounting-aside{position:relative;top:0}.accounting-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.accounting-process-grid,.accounting-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.accounting-hero{padding:22px;display:block}.accounting-hero__summary{margin-top:16px}.accounting-filters>*{grid-column:1/-1}.accounting-property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-process-grid,.accounting-summary-grid{grid-template-columns:1fr}}
@media(max-width:640px){.accounting-panel{padding:18px}.accounting-nav-card{padding:14px}.accounting-hero h1{font-size:26px}.accounting-property-grid,.accounting-stat-grid{grid-template-columns:1fr}.accounting-table{display:block;overflow:auto}.accounting-table table{min-width:960px}}

/* Sidebar global */
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.sidebar-head .brand{margin-bottom:0}
.sidebar-toggle,.sidebar-close,.sidebar-backdrop{appearance:none;border:0;background:none}
.sidebar-toggle,.sidebar-close{width:42px;height:42px;border-radius:14px;background:#f3edff;color:#5b2aa0;display:grid;place-items:center;font-size:20px;flex:0 0 auto}
.sidebar-toggle{display:none}
.sidebar-close{display:none}
.sidebar-backdrop{display:none}
.topbar-left{display:flex;align-items:center;gap:12px}
.nav-link.active{background:#f3edff;color:var(--primary);font-weight:800}
.nav-section{display:grid;gap:8px;margin-bottom:10px}
.nav-link--parent{margin-bottom:0}
.nav-submenu{display:grid;gap:8px;margin-left:42px;padding-left:14px;border-left:2px solid #ece3f8}
.nav-subtitle{margin-top:2px;color:#8b7aa8;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.nav-sublink{display:block;color:#4a3d5f;text-decoration:none;font-size:13px;line-height:1.35;padding:3px 0}
.nav-sublink:hover,.nav-sublink.is-active{color:var(--primary);font-weight:800}

/* Contabilidad integrada al sidebar */
.accounting-shell{display:block}

@media(max-width:1100px){
  .app-shell{display:block}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);max-width:320px;height:100vh;transform:translateX(-104%);transition:transform .24s ease;z-index:1050;box-shadow:0 20px 70px rgba(21,19,38,.22)}
  .main{margin-left:0;min-height:100vh}
  .topbar{padding:0 16px}
  .content-wrap{padding:18px}
  .sidebar-toggle,.sidebar-close{display:grid}
  .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(21,19,38,.38);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1040}
  .app-shell.sidebar-open .sidebar{transform:translateX(0)}
  .app-shell.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .page-head{align-items:flex-start;flex-direction:column}
  .user-pill{padding:8px 10px}
}

@media(max-width:700px){
  .topbar{height:auto;gap:12px;align-items:flex-start;flex-direction:column;padding:14px 16px}
  .topbar-left,.user-pill{width:100%}
  .user-pill{justify-content:space-between}
  .kpi-grid{grid-template-columns:1fr}
  .nav-submenu{margin-left:16px}
}
