*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ═══════════════════════════════════════════
   DARK THEME (DEFAULT)
   ═══════════════════════════════════════════ */
[data-theme="dark"]{
  --bg-deep:#060a12;--bg-base:#0a0e17;--bg-surface:#111827;
  --bg-card:#1a2332;--bg-card-hover:#1f2b3d;--bg-elevated:#243044;
  --accent:#00e5c7;--accent-glow:#00e5c740;--accent-dim:#00e5c720;--accent-bright:#00ffdd;
  --accent2:#0ea5e9;--accent3:#8b5cf6;
  --warn:#f59e0b;--warn-bg:#f59e0b15;--warn-border:#f59e0b40;
  --danger:#ef4444;--danger-bg:#ef444415;--danger-border:#ef444440;
  --info-bg:#00e5c710;--info-border:#00e5c740;
  --text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;
  --border:#1e293b;--border-light:#2d3f56;
  --glass:rgba(17,24,39,0.7);--glass-border:rgba(255,255,255,0.06);
  --inv-bg:#fafafa;--inv-text:#1a1a1a;--inv-meta:#666;--inv-border:#e5e5e5;--inv-note:#f0f0f0;--inv-footer:#888;
  --code-bg:#1a2332;
  --shadow-card:0 2px 8px rgba(0,0,0,.3);
  --shadow-card-hover:0 8px 32px rgba(0,229,199,.08);
}

/* ═══════════════════════════════════════════
   LIGHT THEME
   ═══════════════════════════════════════════ */
[data-theme="light"]{
  --bg-deep:#f0f2f5;--bg-base:#ffffff;--bg-surface:#f7f8fa;
  --bg-card:#ffffff;--bg-card-hover:#f0f4f8;--bg-elevated:#e8ecf1;
  --accent:#0d9e8a;--accent-glow:#0d9e8a25;--accent-dim:#0d9e8a15;--accent-bright:#0bb5a0;
  --accent2:#0284c7;--accent3:#7c3aed;
  --warn:#d97706;--warn-bg:#fef3c7;--warn-border:#fcd34d;
  --danger:#dc2626;--danger-bg:#fee2e2;--danger-border:#fca5a5;
  --info-bg:#ecfdf5;--info-border:#6ee7b7;
  --text:#1e293b;--text-muted:#475569;--text-dim:#94a3b8;
  --border:#e2e8f0;--border-light:#cbd5e1;
  --glass:rgba(255,255,255,0.85);--glass-border:rgba(0,0,0,0.06);
  --inv-bg:#ffffff;--inv-text:#1a1a1a;--inv-meta:#666;--inv-border:#e5e5e5;--inv-note:#f8f8f8;--inv-footer:#888;
  --code-bg:#f1f5f9;
  --shadow-card:0 1px 4px rgba(0,0,0,.08), 0 2px 12px rgba(0,0,0,.04);
  --shadow-card-hover:0 4px 20px rgba(13,158,138,.12);
}

:root{
  --radius:12px;--radius-lg:16px;--radius-sm:8px;
  --sidebar-w:280px;
  --font-display:'Outfit',sans-serif;
  --font-body:'DM Sans',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overscroll-behavior:none}
body{
  font-family:var(--font-body);background:var(--bg-deep);color:var(--text);
  line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  min-height:100vh;min-height:100dvh;transition:background .3s,color .3s;
}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.25;font-weight:700}
a{color:var(--accent);text-decoration:none;transition:color .2s}
a:hover{color:var(--accent-bright)}
button{cursor:pointer;font-family:inherit}
table{border-collapse:collapse;width:100%}
code{font-family:var(--font-mono);font-size:.82rem;background:var(--code-bg);padding:2px 6px;border-radius:4px}

/* SCROLL PROGRESS */
#scroll-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent3));z-index:10000;transition:width .1s linear;box-shadow:0 0 10px var(--accent-glow)}

/* SIDEBAR */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-base);border-right:1px solid var(--border);z-index:1000;display:flex;flex-direction:column;overflow:hidden;padding-top:var(--safe-top);transition:transform .35s cubic-bezier(.4,0,.2,1),background .3s}
.sidebar-header{padding:24px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.sidebar-brand{display:flex;flex-direction:column}
.sidebar-logo{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.sidebar-logo span{font-size:1.4rem}
.sidebar-subtitle{font-size:.75rem;color:var(--text-dim);margin-top:2px;letter-spacing:.5px}

/* THEME TOGGLE */
.theme-toggle{width:40px;height:40px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .3s;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.theme-toggle:hover{background:var(--bg-card-hover);border-color:var(--accent-dim);transform:rotate(20deg)}

.sidebar-nav{flex:1;overflow-y:auto;padding:12px 0 24px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.sidebar-nav::-webkit-scrollbar{width:4px}
.sidebar-nav::-webkit-scrollbar-track{background:transparent}
.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
.nav-group{margin-bottom:8px}
.nav-group-title{font-family:var(--font-display);font-size:.65rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;padding:16px 20px 6px;user-select:none}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px 9px 28px;font-size:.875rem;color:var(--text-muted);cursor:pointer;transition:all .2s;border-left:3px solid transparent;-webkit-tap-highlight-color:transparent;min-height:44px}
.nav-item:hover{color:var(--text);background:var(--bg-surface)}
.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim)}
.nav-item-icon{font-size:1.05rem;width:22px;text-align:center;flex-shrink:0}

/* HAMBURGER */
.hamburger{display:none;position:fixed;top:calc(12px + var(--safe-top));left:calc(12px + var(--safe-left));z-index:1100;width:44px;height:44px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;align-items:center;justify-content:center;gap:5px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .3s}
.hamburger span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;transition:all .3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* MOBILE THEME BTN */
.mobile-theme-toggle{display:none;position:fixed;top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));z-index:1100;width:44px;height:44px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;justify-content:center;font-size:1.1rem;-webkit-tap-highlight-color:transparent;transition:background .3s}

.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:999;-webkit-tap-highlight-color:transparent}

/* MAIN */
.main{margin-left:var(--sidebar-w);min-height:100vh;min-height:100dvh;background:var(--bg-deep);transition:background .3s}
.content-area{max-width:900px;margin:0 auto;padding:40px 32px 80px;padding-bottom:calc(80px + var(--safe-bottom))}

/* SECTIONS */
.section-view{display:none;animation:fadeSlideIn .4s ease}
.section-view.active{display:block}
@keyframes fadeSlideIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* BACK BUTTON */
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--text-muted);padding:8px 14px;border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border);margin-bottom:24px;transition:all .2s;-webkit-tap-highlight-color:transparent;min-height:44px}
.back-btn:hover{color:var(--accent);border-color:var(--accent-dim)}

/* SECTION HEADER */
.section-header{margin-bottom:32px}
.section-header .icon{font-size:2.5rem;margin-bottom:12px;display:block}
.section-header h2{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,var(--text),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}
.section-header .subtitle{color:var(--text-muted);font-size:1rem}

/* HERO */
.hero{text-align:center;padding:48px 0 40px;position:relative}
.hero::before{content:'';position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:600px;height:400px;background:radial-gradient(ellipse,var(--accent-glow) 0%,transparent 70%);opacity:.3;pointer-events:none}
.hero h1{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;margin-bottom:12px;position:relative}
.hero h1 .highlight{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero .tagline{font-size:clamp(.95rem,2vw,1.15rem);color:var(--text-muted);max-width:560px;margin:0 auto 20px;line-height:1.6}
.hero .motivation{font-size:.9rem;color:var(--text-dim);max-width:500px;margin:0 auto;padding:16px 20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);line-height:1.6;transition:background .3s}

/* DASHBOARD CARDS */
.card-group{margin-bottom:36px}
.card-group-title{font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:2px;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:16px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.dash-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;box-shadow:var(--shadow-card)}
.dash-card::before{content:'';position:absolute;inset:0;border-radius:var(--radius-lg);opacity:0;transition:opacity .3s;background:linear-gradient(135deg,var(--accent-dim),transparent 60%)}
.dash-card:hover{transform:translateY(-3px);border-color:var(--accent-dim);box-shadow:var(--shadow-card-hover)}
.dash-card:hover::before{opacity:1}
.dash-card:active{transform:translateY(-1px)}
.dash-card .card-icon{font-size:2rem;margin-bottom:12px;position:relative}
.dash-card .card-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin-bottom:6px;position:relative}
.dash-card .card-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:12px;position:relative}
.dash-card .card-tag{display:inline-block;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--accent-dim);color:var(--accent);font-family:var(--font-display);letter-spacing:.5px;position:relative}

/* ACCORDION */
.accordion{margin-bottom:12px}
.accordion-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s;width:100%;text-align:left;-webkit-tap-highlight-color:transparent;min-height:56px;box-shadow:var(--shadow-card)}
.accordion-header:hover{background:var(--bg-card-hover);border-color:var(--border-light)}
.accordion.open .accordion-header{border-radius:var(--radius) var(--radius) 0 0;border-bottom-color:transparent;background:var(--bg-card-hover)}
.accordion-badge{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--accent);background:var(--accent-dim);padding:3px 8px;border-radius:6px;flex-shrink:0;min-width:32px;text-align:center}
.accordion-title{flex:1;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--text)}
.accordion-sub{font-size:.8rem;color:var(--text-dim);font-weight:400;display:block;margin-top:2px;font-family:var(--font-body)}
.accordion-toggle{width:28px;height:28px;border-radius:50%;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-muted);flex-shrink:0;transition:all .3s}
.accordion.open .accordion-toggle{transform:rotate(45deg);background:var(--accent-dim);color:var(--accent)}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1);background:var(--bg-surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius)}
.accordion.open .accordion-body{max-height:8000px}
.accordion-content{padding:20px 24px 24px}
.accordion-content p{margin-bottom:12px;font-size:.9rem;line-height:1.7}
.accordion-content ul,.accordion-content ol{margin:8px 0 16px 20px;font-size:.9rem}
.accordion-content li{margin-bottom:6px;line-height:1.6}
.accordion-content h4{font-family:var(--font-display);font-size:1rem;font-weight:600;margin:20px 0 8px;color:var(--text)}
.accordion-content strong{color:var(--text);font-weight:600}

/* HIGHLIGHT BOXES */
.box{padding:16px 20px;border-radius:var(--radius-sm);margin:16px 0;font-size:.88rem;line-height:1.65;border-left:3px solid;transition:background .3s}
.box-info{background:var(--info-bg);border-color:var(--accent);color:var(--text)}
.box-warn{background:var(--warn-bg);border-color:var(--warn);color:var(--text)}
.box-danger{background:var(--danger-bg);border-color:var(--danger);color:var(--text)}
.box-title{font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.box-info .box-title{color:var(--accent)}
.box-warn .box-title{color:var(--warn)}
.box-danger .box-title{color:var(--danger)}

/* TABLES */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0;border-radius:var(--radius-sm);border:1px solid var(--border)}
.table-wrap table{min-width:500px}
.table-wrap th,.table-wrap td{padding:10px 14px;font-size:.82rem;text-align:left;border-bottom:1px solid var(--border)}
.table-wrap th{background:var(--bg-card);font-family:var(--font-display);font-weight:600;color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}
.table-wrap tr:nth-child(even) td{background:var(--bg-surface)}
.table-wrap tr:hover td{background:var(--bg-card-hover)}
.table-wrap tr:last-child td{border-bottom:none}

/* INVOICE */
.invoice{background:var(--inv-bg);color:var(--inv-text);border-radius:var(--radius);padding:32px;margin:20px 0;font-size:.85rem;box-shadow:0 4px 24px rgba(0,0,0,.15);max-width:560px}
.invoice h5{font-family:var(--font-display);font-size:1.1rem;color:var(--inv-text);margin-bottom:4px}
.invoice .inv-header{display:flex;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}
.invoice .inv-meta{text-align:right;font-size:.8rem;color:var(--inv-meta)}
.invoice .inv-line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--inv-border)}
.invoice .inv-line.total{border-top:2px solid #333;border-bottom:none;font-weight:700;margin-top:8px;padding-top:12px}
.invoice .inv-note{margin-top:16px;padding:12px;background:var(--inv-note);border-radius:6px;font-size:.8rem;color:var(--inv-meta);font-style:italic}
.invoice .inv-footer{margin-top:20px;font-size:.78rem;color:var(--inv-footer);border-top:1px solid var(--inv-border);padding-top:12px}

/* TIMELINE */
.timeline{position:relative;padding-left:36px;margin:20px 0}
.timeline::before{content:'';position:absolute;left:14px;top:0;bottom:0;width:2px;background:var(--border)}
.timeline-item{position:relative;margin-bottom:24px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:background .3s}
.timeline-item::before{content:attr(data-step);position:absolute;left:-36px;top:14px;width:28px;height:28px;background:var(--accent-dim);border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--accent)}
.timeline-item .tl-title{font-family:var(--font-display);font-weight:600;font-size:.9rem;margin-bottom:4px}
.timeline-item .tl-desc{font-size:.82rem;color:var(--text-muted);line-height:1.5}

/* CHECKLIST */
.checklist-group{margin-bottom:24px}
.checklist-group-title{font-family:var(--font-display);font-size:.9rem;font-weight:600;margin-bottom:10px;color:var(--text)}
.checklist-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);transition:background .2s;cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px}
.checklist-item:hover{background:var(--bg-surface)}
.checklist-item input[type="checkbox"]{accent-color:var(--accent);width:18px;height:18px;margin-top:2px;flex-shrink:0;cursor:pointer}
.checklist-item label{font-size:.88rem;cursor:pointer;line-height:1.5;flex:1}
.checklist-item.checked label{color:var(--text-dim);text-decoration:line-through}
.checklist-reset{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.82rem;transition:all .2s;min-height:44px;-webkit-tap-highlight-color:transparent}
.checklist-reset:hover{border-color:var(--danger);color:var(--danger)}
.checklist-progress{margin-bottom:24px;display:flex;align-items:center;gap:12px}
.checklist-bar{flex:1;height:6px;background:var(--bg-card);border-radius:3px;overflow:hidden}
.checklist-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:3px;transition:width .4s ease}
.checklist-pct{font-family:var(--font-mono);font-size:.8rem;color:var(--text-dim);min-width:36px}

/* TOOLTIP */
.tip{position:relative;border-bottom:1px dashed var(--accent);color:var(--accent);cursor:help}
.tip .tip-text{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text);font-size:.8rem;line-height:1.5;padding:10px 14px;border-radius:var(--radius-sm);width:max-content;max-width:280px;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3);font-weight:400;pointer-events:none}
.tip .tip-text::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--bg-elevated)}
.tip:hover .tip-text,.tip:focus .tip-text,.tip.active .tip-text{display:block}

/* DISCLAIMER */
.disclaimer{margin-top:40px;padding:16px 20px;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-muted);line-height:1.6;transition:background .3s}
.disclaimer strong{color:var(--warn)}

/* FOOTER */
.footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--border);text-align:center;font-size:.78rem;color:var(--text-dim)}

/* CALC BOX (for interactive calculators) */
.calc-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin:16px 0}
.calc-box label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:4px}
.calc-box input[type="number"],.calc-box select{width:100%;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.9rem;margin-bottom:12px;transition:border-color .2s}
.calc-box input[type="number"]:focus,.calc-box select:focus{outline:none;border-color:var(--accent)}
.calc-box .calc-result{background:var(--accent-dim);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:12px 16px;margin-top:8px;font-family:var(--font-mono);font-size:.9rem;color:var(--accent)}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:500px){.calc-grid{grid-template-columns:1fr}}

/* RESPONSIVE */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.5)}
  .sidebar-overlay.active{display:block}
  .hamburger,.mobile-theme-toggle{display:flex}
  .main{margin-left:0}
  .content-area{padding:72px 16px 60px;padding-top:calc(72px + var(--safe-top));padding-left:calc(16px + var(--safe-left));padding-right:calc(16px + var(--safe-right));padding-bottom:calc(60px + var(--safe-bottom))}
  .hero{padding:24px 0 28px}
  .card-grid{grid-template-columns:1fr}
  .section-header h2{font-size:1.4rem}
  .accordion-content{padding:16px}
  .invoice{padding:20px;font-size:.8rem}
}
@media(max-width:380px){
  .content-area{padding-left:12px;padding-right:12px}
  .accordion-header{padding:12px 14px;gap:8px}
  .accordion-title{font-size:.88rem}
}

/* PRINT */
@media print{
  .sidebar,.hamburger,.sidebar-overlay,.mobile-theme-toggle,#scroll-progress,.back-btn,.checklist-reset,.theme-toggle,.calc-box{display:none!important}
  .main{margin-left:0!important}
  .section-view{display:block!important;page-break-inside:avoid}
  .accordion-body{max-height:none!important;overflow:visible!important}
  body{background:#fff!important;color:#000!important}
  .content-area{padding:20px!important;max-width:100%!important}
  .hero::before{display:none}
  a{color:#000!important}
}
