@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@300;400;500&family=Inter:wght@300;400;500;600&display=swap');
:root {
  --bg:#0d0f12;--surface:#13161c;--surface2:#1a1e26;--surface3:#222733;
  --border:#2a2f3d;--border2:#353c50;
  --gold:#c9a94b;--gold-dim:#9a7d34;--gold-glow:rgba(201,169,75,0.15);
  --teal:#3ec9b0;--teal-dim:#2a8f7c;--red:#e05c5c;--green:#4ecb71;--blue:#5c9ee0;
  --text:#e8eaf0;--text-muted:#7a8199;--text-dim:#4a5168;
  --radius:8px;--radius-lg:14px;--shadow:0 4px 24px rgba(0,0,0,0.5);
  --font-serif:'DM Serif Display',Georgia,serif;
  --font-mono:'DM Mono','Courier New',monospace;
  --font-sans:'Inter',system-ui,sans-serif;
  --sidebar-w:280px;--transition:0.22s cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:15px;scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;min-height:100vh;overflow-x:hidden;}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--surface);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim);}
.app-wrapper{display:flex;min-height:100vh;flex-direction:column;}
.app-body{display:flex;flex:1;}
.sidebar{width:var(--sidebar-w);min-height:100vh;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:hidden;}
.sidebar-header{padding:28px 22px 20px;border-bottom:1px solid var(--border);}
.logo{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--gold),var(--gold-dim));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.logo-text{font-family:var(--font-serif);font-size:1.15rem;color:var(--text);letter-spacing:-0.01em;line-height:1.2;}
.logo-sub{font-size:0.72rem;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:0.06em;text-transform:uppercase;margin-top:4px;}
.category-nav{padding:12px 10px;flex:1;overflow-y:auto;}
.category-btn{width:100%;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:10px 12px;border-radius:var(--radius);display:flex;align-items:center;gap:10px;font-size:0.88rem;font-family:var(--font-sans);font-weight:500;transition:background var(--transition),color var(--transition);text-align:left;margin-bottom:2px;}
.category-btn:hover{background:var(--surface2);color:var(--text);}
.category-btn.active{background:var(--gold-glow);color:var(--gold);border:1px solid rgba(201,169,75,0.2);}
.category-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0;}
.sub-nav{padding-left:42px;margin-top:2px;overflow:hidden;max-height:0;transition:max-height 0.3s ease;}
.sub-nav.open{max-height:600px;}
.sub-btn{width:100%;background:none;border:none;color:var(--text-dim);cursor:pointer;padding:6px 12px;border-radius:6px;font-size:0.82rem;font-family:var(--font-sans);text-align:left;transition:background var(--transition),color var(--transition);margin-bottom:1px;}
.sub-btn:hover{color:var(--text-muted);background:var(--surface2);}
.sub-btn.active{color:var(--gold);font-weight:500;}
.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);font-size:0.75rem;color:var(--text-dim);font-family:var(--font-mono);}
.sidebar-footer a{color:var(--gold-dim);text-decoration:none;}
.profile-card{margin:12px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 14px;display:flex;align-items:center;gap:10px;text-decoration:none;transition:all var(--transition);cursor:pointer;}
.profile-card:hover{border-color:var(--gold-dim);background:var(--gold-glow);}
.profile-avatar{width:38px;height:38px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;color:#fff;}
.profile-info{flex:1;min-width:0;}
.profile-name{font-size:0.82rem;font-weight:600;color:var(--text);font-family:var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.profile-link{font-size:0.7rem;color:var(--gold-dim);font-family:var(--font-mono);margin-top:1px;}
.main-content{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;}
.breadcrumb{font-size:0.82rem;color:var(--text-muted);font-family:var(--font-mono);display:flex;align-items:center;gap:6px;}
.breadcrumb .sep{color:var(--text-dim);}
.breadcrumb .current{color:var(--gold);}
.topbar-actions{display:flex;gap:8px;}
.content-panel{padding:28px;flex:1;max-width:1200px;width:100%;margin:0 auto;}
.tool-header{margin-bottom:28px;}
.tool-title{font-family:var(--font-serif);font-size:1.9rem;color:var(--text);margin-bottom:6px;letter-spacing:-0.02em;}
.tool-description{font-size:0.88rem;color:var(--text-muted);max-width:680px;line-height:1.7;}
.calc-grid{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:start;}
@media(max-width:900px){.calc-grid{grid-template-columns:1fr;}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.card-title{font-size:0.8rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted);}
.card-body{padding:20px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:0.8rem;color:var(--text-muted);margin-bottom:6px;font-weight:500;letter-spacing:0.01em;}
.field input,.field select,.field textarea{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:9px 12px;font-size:0.9rem;font-family:var(--font-mono);transition:border-color var(--transition),box-shadow var(--transition);outline:none;appearance:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-dim);box-shadow:0 0 0 3px var(--gold-glow);}
.field input::placeholder{color:var(--text-dim);}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%237a8199' viewBox='0 0 20 20'%3E%3Cpath d='M5 7l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;padding-right:32px;}
.field-note{font-size:0.75rem;color:var(--text-dim);margin-top:4px;font-family:var(--font-mono);}
.btn{padding:9px 18px;border-radius:var(--radius);font-size:0.88rem;font-family:var(--font-sans);font-weight:500;cursor:pointer;border:none;transition:all var(--transition);display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:var(--gold);color:#0d0f12;font-weight:600;}
.btn-primary:hover{background:#d4b55e;transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,169,75,0.3);}
.btn-secondary{background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);}
.btn-secondary:hover{background:var(--surface3);color:var(--text);}
.btn-sm{padding:6px 12px;font-size:0.78rem;}
.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border);}
.btn-ghost:hover{background:var(--surface2);color:var(--text);}
.btn-group{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap;}
.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px;}
.result-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color var(--transition);}
.result-item:hover{border-color:var(--border2);}
.result-item.highlight{border-color:var(--gold-dim);background:var(--gold-glow);}
.result-label{font-size:0.72rem;font-family:var(--font-mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;}
.result-value{font-size:1.25rem;font-family:var(--font-mono);color:var(--text);font-weight:500;letter-spacing:-0.02em;}
.result-item.highlight .result-value{color:var(--gold);}
.interpretation{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--teal);border-radius:var(--radius);padding:14px 18px;margin-top:16px;font-size:0.85rem;color:var(--text-muted);line-height:1.7;}
.interpretation strong{color:var(--text);}
.data-table{width:100%;border-collapse:collapse;font-size:0.85rem;font-family:var(--font-mono);margin-top:16px;}
.data-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border2);color:var(--text-dim);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;font-weight:500;}
.data-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-muted);}
.data-table tr:hover td{background:var(--surface2);}
.data-table td.num{text-align:right;color:var(--text);}
.data-table td.pos{color:var(--green);}
.data-table td.neg{color:var(--red);}
.chart-wrap{position:relative;width:100%;height:300px;margin-top:16px;}
.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:40px;}
.welcome-icon{font-size:3.5rem;margin-bottom:20px;opacity:0.6;}
.welcome-title{font-family:var(--font-serif);font-size:2.2rem;color:var(--text);margin-bottom:12px;letter-spacing:-0.03em;}
.welcome-sub{color:var(--text-muted);font-size:0.95rem;max-width:500px;line-height:1.8;margin-bottom:32px;}
.category-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:600px;}
.chip{background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-size:0.8rem;color:var(--text-muted);cursor:pointer;transition:all var(--transition);font-family:var(--font-mono);}
.chip:hover{border-color:var(--gold-dim);color:var(--gold);background:var(--gold-glow);}
.alert{padding:12px 16px;border-radius:var(--radius);font-size:0.84rem;display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;}
.alert-error{background:rgba(224,92,92,0.1);border:1px solid rgba(224,92,92,0.25);color:#e08080;}
.alert-success{background:rgba(78,203,113,0.08);border:1px solid rgba(78,203,113,0.2);color:#5cd080;}
.menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:1.3rem;cursor:pointer;padding:4px 8px;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.fade-in{animation:fadeIn 0.3s ease forwards;}
.topbar-ticker{font-family:var(--font-mono);font-size:0.75rem;color:var(--text-dim);display:flex;gap:16px;}
.topbar-ticker .tick-item{display:flex;align-items:center;gap:4px;}
.tick-label{color:var(--text-dim);}
.tick-value{color:var(--teal);}
.output-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--text-dim);font-family:var(--font-mono);font-size:0.85rem;text-align:center;gap:12px;}
.output-placeholder-icon{font-size:2.5rem;opacity:0.3;}
.formula-badge{font-size:0.72rem;font-family:var(--font-mono);color:var(--teal-dim);background:rgba(62,201,176,0.07);border:1px solid rgba(62,201,176,0.15);border-radius:4px;padding:2px 7px;display:inline-block;margin-left:8px;}
.app-footer{background:var(--surface);border-top:1px solid var(--border);padding:18px 28px;text-align:center;font-size:0.78rem;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:0.02em;}
.app-footer a{color:var(--gold-dim);text-decoration:none;}
.app-footer a:hover{color:var(--gold);}
.table-scroll{max-height:340px;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:12px;border-radius:var(--radius);border:1px solid var(--border);}
.topbar-left {display: flex; align-items: center; gap: 12px;}
.topbar-right {display: flex; align-items: center; gap: 20px;}
.header-profile {margin: 0; padding: 6px 14px;}

/* ─── RESPONSIVE DESIGN (TABLETS & MOBILE) ─── */
@media(max-width:900px){
  .calc-grid{grid-template-columns:1fr;}
}

@media(max-width:768px){
  :root{--sidebar-w:260px;}
  .menu-toggle{display:block;}
  
  /* Sidebar Mobile Behavior */
  .sidebar{position:fixed;left:-100%;top:0;z-index:100;transition:left 0.3s ease;height:100vh;box-shadow: 4px 0 24px rgba(0,0,0,0.1);}
  .sidebar.open{left:0;}
  .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,0.4);z-index:99;backdrop-filter:blur(2px);}
  .sidebar-overlay.open{display:block;}
  
  /* Header Mobile Behavior */
  .topbar{padding:12px 16px;}
  .topbar-right{gap: 10px;}
  .desktop-only{display:none !important;}
  .header-profile{padding:4px; border:none; background:transparent;}
  .header-profile:hover{background:transparent; border:none; opacity: 0.8;}
  .profile-avatar{width:32px; height:32px; font-size:14px;}
  
  /* Content Mobile Behavior */
  .content-panel{padding:16px;}
  .tool-title{font-size:1.6rem;}
  .results-grid{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:480px){
  .results-grid{grid-template-columns:1fr;}
  .welcome-title{font-size:1.4rem;}
  /* Stack export buttons nicely on tiny screens */
  .card-header {flex-direction: column; align-items: flex-start; gap: 10px;}
  .topbar-actions {width: 100%; display: flex; justify-content: flex-end;}
}

/* ─── COPY PROTECTION & UI LOCK ─── */
body {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
input, textarea, select {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}
img, svg {
  pointer-events: none;
  -webkit-user-drag: none;
}

@media(max-width:768px){
  :root{--sidebar-w:260px;}
  .menu-toggle{display:block;}
  .sidebar{position:fixed;left:-100%;top:0;z-index:100;transition:left 0.3s ease;height:100vh;}
  .sidebar.open{left:0;}
  .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:99;}
  .sidebar-overlay.open{display:block;}
  .topbar{padding:12px 16px;}
  .content-panel{padding:16px;}
  .results-grid{grid-template-columns:repeat(2,1fr);}
  .calc-grid{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .results-grid{grid-template-columns:1fr;}
  .welcome-title{font-size:1.6rem;}
}

/* ─── COPY PROTECTION & UI LOCK ─── */
body {
  -webkit-user-select: none;   /* Safari */
  -moz-user-select: none;      /* Firefox */
  -ms-user-select: none;       /* IE10+/Edge */
  user-select: none;           /* Standard HTML */
  -webkit-touch-callout: none; /* Disable iOS Safari long-press menu */
}

/* We MUST allow text selection inside inputs/textareas so the calculator works! */
input, textarea, select {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

/* Prevent users from dragging or saving your logo/icons */
img, svg {
  pointer-events: none;
  -webkit-user-drag: none;
}

