/* ═══════════════════════════════════════════════════
   Duella — Premium Minimal Design System
   Clean, trustworthy, calm. Legal/financial grade.
   ═══════════════════════════════════════════════════ */
:root {
  --ink: #0d0d12;
  --ink-secondary: #52525b;
  --ink-tertiary: #a1a1aa;
  --ink-disabled: #d4d4d8;
  --surface: #ffffff;
  --bg: #fafafa;
  --bg-secondary: #f4f4f5;
  --border: #e4e4e7;
  --border-light: #f0f0f0;
  --accent: #5b5fc7;
  --accent-hover: #4b4fb5;
  --accent-subtle: #f5f4ff;
  --success: #059669;
  --success-subtle: #ecfdf5;
  --warning: #d97706;
  --warning-subtle: #fffbeb;
  --danger: #dc2626;
  --danger-subtle: #fef2f2;
  --info: #2563eb;
  --info-subtle: #eff6ff;

  --r: 6px; --r-md: 8px; --r-lg: 12px;
  --max-width: 1200px;
  --nav-height: 56px;
  --mobile-nav-height: 64px;
  --sa-top: env(safe-area-inset-top,0px);
  --sa-bottom: env(safe-area-inset-bottom,0px);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.55;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}

/* ═══════ TYPOGRAPHY ═══════ */
h1{font-size:2rem;font-weight:700;letter-spacing:-0.03em;line-height:1.1}
h2{font-size:1.5rem;font-weight:650;letter-spacing:-0.02em;line-height:1.2}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-0.01em;line-height:1.3}
.h1-xl{font-size:2.5rem}
.text-body{font-size:1rem;line-height:1.6;color:var(--ink-secondary)}
.text-sm{font-size:0.875rem}.text-xs{font-size:0.75rem}
.text-muted{color:var(--ink-secondary)}.text-subtle{color:var(--ink-tertiary)}
.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}
.text-center{text-align:center}.text-right{text-align:right}

/* ═══════ PUBLIC NAVIGATION ═══════ */
.nav-public{
  position:sticky;top:0;z-index:100;
  background:var(--surface);border-bottom:1px solid var(--border);
  height:var(--nav-height);display:flex;align-items:center;padding:0 24px;gap:32px;
}
.nav-public .logo{font-size:1.2rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-0.02em;margin-right:auto}
.nav-public .logo span{color:var(--accent)}
.nav-public a{font-size:0.875rem;color:var(--ink-secondary);text-decoration:none;font-weight:500;transition:color .15s}
.nav-public a:hover{color:var(--ink)}
.nav-links{display:none;gap:24px;align-items:center}
@media(min-width:900px){.nav-links{display:flex}}
.btn-nav{font-size:0.875rem;font-weight:600}
.btn-nav-primary{background:var(--accent);color:#fff!important;padding:8px 18px;border-radius:var(--r);text-decoration:none;font-weight:600;font-size:0.875rem}

/* ═══════ APP NAVIGATION ═══════ */
.app-layout{display:flex;min-height:100vh}
.app-sidebar{
  display:none;width:240px;flex-shrink:0;
  background:var(--surface);border-right:1px solid var(--border);
  padding:20px 16px;position:sticky;top:0;height:100vh;
}
.app-sidebar .sidebar-logo{font-size:1.1rem;font-weight:700;letter-spacing:-0.02em;margin-bottom:28px;padding:0 8px}
.app-sidebar .sidebar-logo span{color:var(--accent)}
.app-sidebar nav{display:flex;flex-direction:column;gap:2px}
.app-sidebar nav a{
  display:flex;align-items:center;gap:10px;padding:8px 10px;
  border-radius:var(--r);font-size:0.875rem;font-weight:500;
  color:var(--ink-secondary);text-decoration:none;transition:all .12s;
}
.app-sidebar nav a:hover{background:var(--bg-secondary);color:var(--ink)}
.app-sidebar nav a.active{background:var(--accent-subtle);color:var(--accent);font-weight:600}
.app-sidebar .sidebar-section{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-tertiary);font-weight:600;padding:16px 10px 6px}
.app-main{flex:1;min-width:0}

/* ═══════ MOBILE BOTTOM NAV ═══════ */
.mobile-nav{
  display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:var(--surface);border-top:1px solid var(--border);
  height:var(--mobile-nav-height);padding-bottom:var(--sa-bottom);
}
.mobile-nav a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--ink-tertiary);text-decoration:none;font-size:0.65rem;font-weight:500;gap:3px;
}
.mobile-nav a.active{color:var(--accent)}
.mobile-nav .nav-icon{font-size:1.3rem;line-height:1}

/* ═══════ DEAL CREATION NAV ═══════ */
.nav-deal{
  background:var(--surface);border-bottom:1px solid var(--border);
  padding:0 24px;height:var(--nav-height);
  display:flex;align-items:center;gap:16px;
}
.nav-deal .deal-logo{font-size:1rem;font-weight:700;white-space:nowrap}
.nav-deal .deal-ref{font-size:0.8rem;color:var(--ink-secondary)}
.nav-deal .progress-steps{display:flex;align-items:center;gap:4px;flex:1;justify-content:center;overflow-x:auto}
.progress-step{display:flex;align-items:center;gap:4px;font-size:0.75rem;color:var(--ink-tertiary);white-space:nowrap}
.progress-step.active{color:var(--accent);font-weight:600}
.progress-step.done{color:var(--success)}
.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-disabled);flex-shrink:0}
.progress-step.active .progress-dot{background:var(--accent)}
.progress-step.done .progress-dot{background:var(--success)}
.progress-line{width:16px;height:1px;background:var(--border);flex-shrink:0}

/* ═══════ LAYOUT ═══════ */
.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}
.page-section{padding:64px 0}
.content-area{max-width:720px;margin:0 auto;padding:32px 24px 80px}
.content-wide{max-width:960px;margin:0 auto;padding:32px 24px 80px}

/* ═══════ CARDS (clean, not neumorphic) ═══════ */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;margin-bottom:16px}
.card-header{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:20px}
.card-title{font-size:1.1rem;font-weight:600;margin-bottom:4px}
.card-subtitle{font-size:0.875rem;color:var(--ink-secondary)}

/* ═══════ BUTTONS ═══════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 20px;border-radius:var(--r);border:1px solid transparent;
  font-size:0.9rem;font-weight:600;font-family:inherit;cursor:pointer;
  text-decoration:none;transition:all .15s;white-space:nowrap;
}
.btn:disabled{opacity:0.5;cursor:not-allowed}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-secondary)}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}
.btn-ghost{background:transparent;color:var(--ink-secondary)}.btn-ghost:hover{background:var(--bg-secondary)}
.btn-lg{padding:12px 28px;font-size:1rem}.btn-xl{padding:16px 32px;font-size:1.1rem}
.btn-block{width:100%}

/* ═══════ FORMS ═══════ */
.form-group{margin-bottom:20px}
.form-label{display:block;margin-bottom:6px;font-size:0.875rem;font-weight:500;color:var(--ink)}
.form-hint{font-size:0.8rem;color:var(--ink-secondary);margin-top:4px}
.form-input{
  width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--r);
  font-size:0.95rem;font-family:inherit;background:var(--surface);color:var(--ink);
  transition:border-color .15s,box-shadow .15s;
}
.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.form-input:disabled{background:var(--bg-secondary);color:var(--ink-tertiary)}
.form-input.error{border-color:var(--danger)}
.form-error{font-size:0.8rem;color:var(--danger);margin-top:4px}
textarea.form-input{min-height:100px;resize:vertical}
select.form-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2352525b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}

/* ═══════ BADGES ═══════ */
.badge{
  display:inline-flex;align-items:center;padding:2px 10px;border-radius:100px;
  font-size:0.75rem;font-weight:600;letter-spacing:0.01em;
}
.badge-draft{background:var(--bg-secondary);color:var(--ink-secondary)}
.badge-active{background:var(--info-subtle);color:var(--info)}
.badge-complete{background:var(--success-subtle);color:var(--success)}
.badge-pending{background:var(--warning-subtle);color:var(--warning)}
.badge-error{background:var(--danger-subtle);color:var(--danger)}

/* ═══════ STATUS STRIP ═══════ */
.status-strip{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-lg);margin-bottom:20px;font-size:0.875rem}
.status-strip.info{background:var(--info-subtle);color:var(--info);border:1px solid #bfdbfe}
.status-strip.success{background:var(--success-subtle);color:var(--success);border:1px solid #a7f3d0}
.status-strip.warning{background:var(--warning-subtle);color:var(--warning);border:1px solid #fde68a}

/* ═══════ ACTIVITY TIMELINE ═══════ */
.timeline{position:relative;padding-left:28px}
.timeline::before{content:'';position:absolute;left:7px;top:4px;bottom:4px;width:1px;background:var(--border)}
.timeline-item{position:relative;padding-bottom:20px;font-size:0.875rem}
.timeline-item:last-child{padding-bottom:0}
.timeline-item::before{content:'';position:absolute;left:-22px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--ink-tertiary);border:2px solid var(--surface)}
.timeline-item.major::before{background:var(--accent);width:11px;height:11px;left:-23px}
.timeline-time{font-size:0.75rem;color:var(--ink-tertiary)}
.timeline-actor{font-weight:600}

/* ═══════ DEAL CARD ═══════ */
.deal-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:20px;transition:border-color .15s;text-decoration:none;color:inherit;display:block;
}
.deal-card:hover{border-color:var(--accent)}
.deal-card .deal-ref{font-size:0.8rem;color:var(--ink-tertiary);font-weight:500}
.deal-card .deal-title{font-size:1rem;font-weight:600;margin:4px 0}
.deal-card .deal-meta{font-size:0.8rem;color:var(--ink-secondary);display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}

/* ═══════ STATES ═══════ */
.empty-state{text-align:center;padding:64px 24px}
.empty-state .empty-icon{font-size:2.5rem;margin-bottom:16px;opacity:0.4}
.empty-state h3{font-size:1.1rem;margin-bottom:8px}
.empty-state p{color:var(--ink-secondary);font-size:0.9rem;max-width:380px;margin:0 auto 20px}
.loading-state{text-align:center;padding:48px 24px}
.error-state{text-align:center;padding:48px 24px;color:var(--danger)}

/* ═══════ TOAST ═══════ */
.toast{padding:12px 16px;border-radius:var(--r);font-size:0.875rem;margin-bottom:16px;font-weight:500}
.toast-success{background:var(--success-subtle);color:var(--success);border:1px solid #a7f3d0}
.toast-error{background:var(--danger-subtle);color:var(--danger);border:1px solid #fecaca}
.toast-info{background:var(--info-subtle);color:var(--info);border:1px solid #bfdbfe}

/* ═══════ SPINNER ═══════ */
.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══════ GRID ═══════ */
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
.grid-4{grid-template-columns:1fr}

/* ═══════ FLEX ═══════ */
.flex{display:flex;align-items:center;gap:12px}
.flex-col{flex-direction:column}.flex-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}

/* ═══════ SPACING ═══════ */
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mt-5{margin-top:48px}
.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}
.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}

/* ═══════ RESPONSIVE ═══════ */
@media(min-width:640px){
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:900px){
  .app-sidebar{display:flex;flex-direction:column}
  .mobile-nav{display:none}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-4{grid-template-columns:repeat(4,1fr)}
  .content-area{padding:40px 32px 32px}
  h1{font-size:2.25rem}
}
@media(min-width:1200px){
  .content-wide{max-width:1100px}
}

/* ═══════ HERO ═══════ */
.hero{padding:80px 24px 64px}
.hero h1{font-size:2.25rem;max-width:640px;margin:0 auto 16px;text-align:center}
.hero p{font-size:1.1rem;color:var(--ink-secondary);max-width:500px;margin:0 auto 32px;text-align:center;line-height:1.6}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(min-width:900px){.hero h1{font-size:2.75rem}.hero{padding:100px 24px 80px}}

/* ═══════ FOOTER ═══════ */
.footer{background:var(--surface);border-top:1px solid var(--border);padding:48px 24px 32px}
.footer-grid{display:grid;gap:32px;max-width:var(--max-width);margin:0 auto;grid-template-columns:repeat(2,1fr)}
.footer-col h4{font-size:0.85rem;font-weight:600;margin-bottom:12px}.footer-col a{display:block;font-size:0.85rem;color:var(--ink-secondary);text-decoration:none;padding:4px 0}.footer-col a:hover{color:var(--ink)}
.footer-bottom{max-width:var(--max-width);margin:32px auto 0;padding-top:16px;border-top:1px solid var(--border);font-size:0.8rem;color:var(--ink-tertiary)}
@media(min-width:900px){.footer-grid{grid-template-columns:repeat(4,1fr)}}
