:root{
  --sf-bg:#f8f6fb;
  --sf-surface:#ffffff;
  --sf-surface-soft:#fcfaff;
  --sf-text:#21152f;
  --sf-muted:#756b80;
  --sf-border:#e9e1ef;
  --sf-border-strong:#ddd0e7;
  --sf-purple:#7c3aed;
  --sf-purple-dark:#5b21b6;
  --sf-fuchsia:#c026d3;
  --sf-plum:#21152f;
  --sf-plum-2:#301942;
  --sf-gradient:linear-gradient(135deg,#7c3aed 0%,#9b35d1 50%,#c026d3 100%);
  --sf-gradient-soft:linear-gradient(135deg,#f6f1ff 0%,#fff6ff 100%);
  --sf-shadow:0 10px 30px rgba(47,24,63,.06);
  --sf-shadow-hover:0 16px 38px rgba(67,31,92,.10);
}

html,body{background:var(--sf-bg)!important;color:var(--sf-text)!important}
body{letter-spacing:-.005em}

/* App shell */
.sf-appheader{
  background:rgba(255,255,255,.96)!important;
  color:var(--sf-text)!important;
  border-bottom:1px solid var(--sf-border)!important;
  box-shadow:0 1px 0 rgba(33,21,47,.02);
  backdrop-filter:blur(14px);
}
.sf-appheader h1{color:var(--sf-text)!important;font-weight:800!important}
.sf-topbar-mark{background:var(--sf-gradient)!important;box-shadow:0 8px 22px rgba(124,58,237,.22)!important}
.sf-appheader .sf-user,.sf-appheader .sf-link{color:var(--sf-muted)!important}
.sf-appheader .sf-link:hover{color:var(--sf-purple)!important}
.sf-hamburger span{background:var(--sf-text)!important}
.sf-lang-switch{background:#f3eef7!important;border:1px solid #ede4f3}
.sf-lang-opt{color:#8a7f94!important}
.sf-lang-opt:hover{color:var(--sf-purple)!important}
.sf-lang-opt.active{background:var(--sf-gradient)!important;color:#fff!important;box-shadow:0 4px 12px rgba(124,58,237,.18)}
.sf-notif-bell{color:#8a7f94!important}
.sf-notif-bell:hover{background:#f6f1fa!important;color:var(--sf-purple)!important}
.sf-notif-badge{background:var(--sf-fuchsia)!important}

.sf-shell-main{
  background:
    radial-gradient(circle at 100% 0,rgba(192,38,211,.045),transparent 26%),
    radial-gradient(circle at 0 100%,rgba(124,58,237,.045),transparent 28%),
    var(--sf-bg)!important;
  padding:28px 32px 44px!important;
}

/* Deep-plum navigation, based on the prototype's dark sidebar */
.sf-sidebar{
  width:228px!important;
  background:
    radial-gradient(circle at 15% 0,rgba(192,38,211,.18),transparent 30%),
    linear-gradient(180deg,var(--sf-plum),#1a1025)!important;
  border-right:0!important;
  padding:18px 13px!important;
}
.sf-sidebar-group{margin-bottom:8px!important}
.sf-sidebar-group-title{color:#9f91aa!important}
.sf-sidebar-item{
  color:#cfc4d7!important;
  border-radius:10px!important;
  padding:9px 11px!important;
  font-weight:600!important;
}
.sf-sidebar-item .sf-icon{color:#9f91aa!important}
.sf-sidebar-item:hover{background:rgba(255,255,255,.075)!important;color:#fff!important}
.sf-sidebar-item:hover .sf-icon{color:#e6d8ef!important}
.sf-sidebar-item.active{
  background:linear-gradient(135deg,rgba(124,58,237,.30),rgba(192,38,211,.22))!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.sf-sidebar-item.active .sf-icon{color:#fff!important}
.sf-sidebar > .sf-link{color:#cfc4d7!important}
.sf-sidebar-cta.sf-btn-primary{box-shadow:0 10px 24px rgba(124,58,237,.26)!important}
.sf-sidebar-cta.sf-btn-secondary{
  background:rgba(255,255,255,.08)!important;
  color:#f7f0fb!important;
  border:1px solid rgba(255,255,255,.10)!important;
}
.sf-sidebar-cta.sf-btn-secondary:hover{background:rgba(255,255,255,.13)!important}

/* Typography */
h1,h2,h3,h4,.sf-row-between h2{color:var(--sf-text)}
.sf-row-between h2{font-size:22px!important;font-weight:850!important;letter-spacing:-.025em!important}

/* Buttons */
.sf-btn{border-radius:10px!important;font-weight:750!important;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease!important}
.sf-btn-primary{
  background:var(--sf-gradient)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 7px 18px rgba(124,58,237,.18)!important;
}
.sf-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 11px 24px rgba(124,58,237,.24)!important}
.sf-btn-primary:disabled{background:#d7c8e2!important;color:#fff!important;box-shadow:none!important}
.sf-btn-secondary{
  background:#fff!important;
  color:#4d3d58!important;
  border:1px solid var(--sf-border)!important;
}
.sf-btn-secondary:hover:not(:disabled){background:#fbf8fd!important;border-color:#d8c8e5!important;transform:translateY(-1px)}
.sf-btn-danger{border-radius:10px!important}

/* Cards and content surfaces */
.sf-panel,.sf-home-panel,.sf-kpi-card,.sf-template-card,.sf-template-preview-pane,.sf-empty,.sf-plan-card,
table.sf-table,.sf-notif-panel,.sf-modal{
  background:var(--sf-surface)!important;
  border:1px solid var(--sf-border)!important;
  box-shadow:var(--sf-shadow)!important;
}
.sf-panel,.sf-home-panel,.sf-kpi-card,.sf-template-card,.sf-empty,.sf-plan-card{border-radius:16px!important}
.sf-panel{padding:20px!important}
.sf-panel h3{color:#76677f!important}
.sf-home-panel-head h3,.sf-template-card h3,.sf-doc-title-cell,.sf-admin-user-name{color:var(--sf-text)!important}
.sf-kpi-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important}
.sf-kpi-card:hover,.sf-template-card:hover{transform:translateY(-2px)!important;box-shadow:var(--sf-shadow-hover)!important;border-color:#dac8e8!important}
.sf-kpi-value{color:var(--sf-text)!important}
.sf-kpi-blue .sf-kpi-icon{background:#f1eaff!important;color:var(--sf-purple)!important}
.sf-kpi-amber .sf-kpi-icon{background:#fff3df!important}
.sf-kpi-green .sf-kpi-icon{background:#eafaf1!important}

/* Home hero */
.sf-home-hero{
  background:
    radial-gradient(circle at 90% 10%,rgba(255,255,255,.18),transparent 25%),
    var(--sf-gradient)!important;
  border-radius:20px!important;
  padding:30px 28px!important;
  box-shadow:0 20px 45px -22px rgba(91,33,182,.48)!important;
}
.sf-home-hero h2{font-size:24px!important;letter-spacing:-.03em!important}
.sf-hero-btn{border-radius:11px!important}
.sf-hero-btn:first-child{color:var(--sf-purple-dark)!important}

/* Tables */
table.sf-table{border-collapse:separate!important;border-spacing:0!important;overflow:hidden!important}
table.sf-table th{background:#fcfaff!important;color:#76677f!important;border-bottom:1px solid var(--sf-border)!important}
table.sf-table td{border-bottom:1px solid #f1ebf4!important}
table.sf-table tbody tr:hover{background:#fcf9ff!important}
.sf-doc-row:hover .sf-doc-title-cell{color:var(--sf-purple)!important;text-decoration:none!important}

/* Forms */
label{color:#55465f!important;font-weight:650!important}
input[type="text"],input[type="email"],input[type="number"],input[type="date"],input[type="password"],
textarea,select,.sf-grant-input{
  background:#fff!important;
  color:var(--sf-text)!important;
  border:1px solid var(--sf-border-strong)!important;
  border-radius:10px!important;
  outline:none!important;
}
input:focus,textarea:focus,select:focus{
  border-color:#a78bfa!important;
  box-shadow:0 0 0 3px rgba(124,58,237,.10)!important;
}

/* Modals and overlays */
.sf-modal-backdrop{background:rgba(29,16,39,.48)!important;backdrop-filter:blur(3px)}
.sf-modal{border-radius:18px!important}
.sf-notif-panel{border-radius:14px!important;overflow:hidden}
.sf-notif-panel-header{border-bottom-color:var(--sf-border)!important}
.sf-notif-item:hover{background:#fbf7fd!important}
.sf-notif-item-unread{background:#f7f1ff!important}
.sf-notif-item-unread:hover{background:#f2e8fb!important}
.sf-notif-item-unread .sf-notif-item-title::before{background:var(--sf-fuchsia)!important}

/* Status and helper UI */
.sf-bulk-bar,.sf-wizard-banner{
  background:var(--sf-gradient-soft)!important;
  border-color:#dfd0ee!important;
  color:var(--sf-purple-dark)!important;
  border-radius:11px!important;
}
.sf-plan-card{background:var(--sf-gradient-soft)!important;border-color:#e6d9ef!important}
.sf-plan-card-status{color:var(--sf-purple-dark)!important}
.sf-flat-price{color:var(--sf-purple)!important}
.sf-qty-preset{border-color:var(--sf-border-strong)!important;border-radius:9px!important}
.sf-qty-preset:hover{border-color:#b99bdd!important}
.sf-qty-preset.active{background:var(--sf-gradient)!important;border-color:transparent!important;color:#fff!important}
.sf-template-disclaimer{background:#fcfaff!important;border-color:var(--sf-border)!important;border-radius:11px!important}
.sf-mode-card{border-color:var(--sf-border)!important;border-radius:12px!important}
.sf-mode-card:hover{background:#fcf9ff!important;border-color:#ceb8df!important}
.sf-recipient-item.active{background:#f5eeff!important;border-color:#cdb7e0!important}
.sf-recipient-item .sf-order-num{background:#f2eaff!important;color:var(--sf-purple-dark)!important}

/* Contract Intelligence: match the approved prototype more closely */
#sf-contracts-page .sf-row-between{margin-bottom:12px!important}
#sf-contracts-page .sf-row-between h2{font-size:28px!important;letter-spacing:-.035em!important}
#sf-contracts-page > .sf-row-between p{font-size:13.5px!important;color:var(--sf-muted)!important;max-width:760px}
.sf-ci-badge{
  background:linear-gradient(135deg,#f0e9ff,#fff0ff)!important;
  border-color:#dfcced!important;
  color:#6f2bb8!important;
}
.sf-ci-kpis{gap:14px!important;margin:18px 0!important}
.sf-ci-kpi{
  border:1px solid var(--sf-border)!important;
  border-radius:16px!important;
  padding:17px!important;
  box-shadow:0 4px 18px rgba(53,28,70,.035)!important;
}
.sf-ci-kpi-label{color:#807287!important}
.sf-ci-kpi-value{color:var(--sf-text)!important;font-size:28px!important}
.sf-ci-alert-panel{
  background:linear-gradient(135deg,#faf7ff,#fff9ff)!important;
  border-color:#e3d4ed!important;
  border-radius:16px!important;
  padding:18px!important;
  box-shadow:0 5px 20px rgba(62,27,83,.04);
}
.sf-ci-alert{
  border-color:#eee5f3!important;
  border-radius:12px!important;
  padding:12px!important;
}
.sf-ci-dot:not(.urgent):not(.high){background:var(--sf-purple)!important}
.sf-ci-plan{
  border:1px solid var(--sf-border)!important;
  border-radius:16px!important;
  padding:17px!important;
  box-shadow:0 4px 16px rgba(56,27,76,.035);
}
.sf-ci-plan.best{
  border:2px solid transparent!important;
  background:linear-gradient(#fff,#fff) padding-box,var(--sf-gradient) border-box!important;
}
.sf-ci-best{background:linear-gradient(135deg,#f1eaff,#fff0ff)!important;color:#6927a7!important}
.sf-ci-price{color:var(--sf-text)!important;font-size:28px!important}
.sf-ci-custom-input{border-color:var(--sf-border-strong)!important;border-radius:10px!important}
.sf-ci-billing-tabs{background:#f1ebf5!important;border:1px solid #ebe1f0!important;border-radius:12px!important}
.sf-ci-billing-tab{color:#786a80!important}
.sf-ci-billing-tab.active{background:#fff!important;color:var(--sf-text)!important;box-shadow:0 3px 10px rgba(52,29,67,.07)!important}
#sf-contract-capacity-panel{overflow:hidden}

/* Authentication surfaces */
.sf-auth-card,.sf-login-card,.sf-register-card{
  border-radius:20px!important;
  border:1px solid var(--sf-border)!important;
  box-shadow:0 24px 70px rgba(51,24,69,.09)!important;
}
.sf-auth-logo,.sf-auth-mark{background:var(--sf-gradient)!important}

/* Mobile */
@media(max-width:860px){
  .sf-shell-main{padding:18px 15px 34px!important}
  .sf-sidebar{width:252px!important;box-shadow:14px 0 40px rgba(24,10,34,.22)!important}
  .sf-sidebar-backdrop{background:rgba(27,14,37,.52)!important;backdrop-filter:blur(2px)}
  #sf-contracts-page .sf-row-between h2{font-size:24px!important}
}
