/* JianFa Soft UI design system — visual-only theme layer. */
:root{
  --neo-bg:#e9eef5;
  --neo-surface:#e9eef5;
  --neo-surface-soft:#f0f3f8;
  --neo-ink:#26344a;
  --neo-muted:#748198;
  --neo-blue:#1769ff;
  --neo-purple:#8b2cff;
  --neo-cyan:#38d6ff;
  --neo-accent:linear-gradient(135deg,#0061ff 0%,#38d6ff 48%,#9600ff 100%);
  --neo-shadow-dark:rgba(163,177,198,.58);
  --neo-shadow-light:rgba(255,255,255,.92);
  --neo-raised:8px 8px 18px var(--neo-shadow-dark),-8px -8px 18px var(--neo-shadow-light);
  --neo-raised-sm:5px 5px 12px rgba(163,177,198,.55),-5px -5px 12px rgba(255,255,255,.9);
  --neo-inset:inset 4px 4px 9px rgba(163,177,198,.58),inset -4px -4px 9px rgba(255,255,255,.9);
  --neo-focus:0 0 0 3px rgba(23,105,255,.13),inset 4px 4px 9px rgba(163,177,198,.55),inset -4px -4px 9px rgba(255,255,255,.92);
  --neo-radius:22px;
  --neo-radius-sm:16px;
  --ink:var(--neo-ink);
  --slate:#33445c;
  --canvas:var(--neo-bg);
  --paper:var(--neo-surface);
  --line:rgba(151,166,188,.22);
  --muted:var(--neo-muted);
  --blue:var(--neo-blue);
  --shadow:var(--neo-raised);
  --radius:var(--neo-radius);
}

html,body{background:var(--neo-bg);color:var(--neo-ink)}
body{background-image:radial-gradient(circle at 8% 0,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle at 94% 8%,rgba(174,190,219,.22),transparent 28%)}
::selection{background:rgba(69,117,255,.2);color:#172238}

/* Global navigation */
body>nav{background:rgba(233,238,245,.9);border:0;box-shadow:0 8px 24px rgba(163,177,198,.34),0 -6px 18px rgba(255,255,255,.86);color:var(--neo-ink)}
.logo{color:var(--neo-ink)}
.pills{background:var(--neo-surface);border-radius:999px;box-shadow:var(--neo-inset);padding:6px}
.pills a{border:0;border-radius:999px;color:#68768d;min-height:44px}
.pills a:hover{background:rgba(255,255,255,.25);color:var(--neo-blue)}
.pills .on{background:var(--neo-surface);box-shadow:var(--neo-raised-sm);color:var(--neo-blue)}
.account-profile,.account-action,.logout{border:0;border-radius:999px}
.account-profile:hover,.account-profile.on,.account-action:hover,.account-action.on,.logout:hover{background:var(--neo-surface);box-shadow:var(--neo-raised-sm);color:var(--neo-blue)}
.account-avatar,.account-profile img{border:0;box-shadow:var(--neo-raised-sm)}
.nav-badge{background:var(--neo-accent);border-color:var(--neo-surface);box-shadow:0 4px 10px rgba(65,94,230,.3)}

/* Buttons and action pills */
button,.button,.back-link,.account-action,.logout{
  background:var(--neo-surface);border:0;border-radius:999px;box-shadow:var(--neo-raised-sm);color:var(--neo-blue);transition:transform .18s ease,box-shadow .18s ease,color .18s ease;
}
button:hover,.button:hover,.back-link:hover,.account-action:hover,.logout:hover{background:var(--neo-surface);box-shadow:7px 7px 15px rgba(163,177,198,.62),-7px -7px 15px rgba(255,255,255,.96);color:var(--neo-purple);transform:translateY(-2px) scale(1.01)}
button:active,.button:active,.back-link:active,.account-action:active,.logout:active{background:var(--neo-surface);box-shadow:var(--neo-inset);transform:translateY(0) scale(.99)}
button:focus-visible,.button:focus-visible,a:focus-visible{outline:3px solid rgba(23,105,255,.28);outline-offset:3px}
button.danger,.danger{background:var(--neo-surface)!important;box-shadow:var(--neo-raised-sm);color:#d94b69!important}
.secondary,.plain{background:var(--neo-surface);box-shadow:var(--neo-raised-sm);color:#56657a}
.audio-play,.doc-primary-action,.login .auth button:not(.register-back){background:var(--neo-accent);box-shadow:7px 7px 16px rgba(130,143,171,.55),-7px -7px 16px rgba(255,255,255,.9);color:#fff}

/* Recessed form controls */
input,select,textarea{
  background:var(--neo-surface);border:0;border-radius:16px;box-shadow:var(--neo-inset);color:var(--neo-ink);padding:12px 15px;
}
input:focus,select:focus,textarea:focus{border:0;box-shadow:var(--neo-focus);outline:0}
input::placeholder,textarea::placeholder{color:#929db0}
.neumorph-input,input:not([type]),input[type="text"],input[type="search"],input[type="password"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="time"],textarea{
  background:linear-gradient(145deg,#f8fafc,#edf2f7)!important;
  border:1.5px solid rgba(78,96,122,.58)!important;
  box-shadow:inset 2px 2px 5px rgba(126,142,166,.28),inset -2px -2px 5px rgba(255,255,255,.92),0 1px 2px rgba(38,52,74,.08)!important;
  color:#26344a;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.neumorph-input:hover,input:not([type]):hover,input[type="text"]:hover,input[type="search"]:hover,input[type="password"]:hover,input[type="email"]:hover,input[type="tel"]:hover,input[type="url"]:hover,input[type="number"]:hover,input[type="date"]:hover,input[type="datetime-local"]:hover,input[type="month"]:hover,input[type="week"]:hover,input[type="time"]:hover,textarea:hover{
  border-color:rgba(65,84,112,.78)!important;
}
.neumorph-input::placeholder,input:not([type])::placeholder,input[type="text"]::placeholder,input[type="search"]::placeholder,input[type="password"]::placeholder,input[type="email"]::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="number"]::placeholder,textarea::placeholder{
  color:#647184;opacity:1;font-style:normal;
}
.neumorph-input:focus,input:not([type]):focus,input[type="text"]:focus,input[type="search"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="number"]:focus,input[type="date"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="time"]:focus,textarea:focus{
  background:#fff!important;
  border-color:#2878d0!important;
  box-shadow:inset 2px 2px 4px rgba(126,142,166,.18),0 0 0 3px rgba(40,120,208,.2),0 0 14px rgba(40,120,208,.2)!important;
  outline:none;
}
input[type=range]{appearance:none;background:var(--neo-surface);border-radius:999px;box-shadow:var(--neo-inset);height:12px;padding:0}
input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--neo-accent);border:4px solid var(--neo-surface);border-radius:50%;box-shadow:var(--neo-raised-sm);height:26px;width:26px}
input[type=checkbox]:not([hidden]){appearance:none;border-radius:999px;cursor:pointer;height:28px;padding:3px;position:relative;width:50px}
input[type=checkbox]:not([hidden]):before{background:var(--neo-surface);border-radius:50%;box-shadow:var(--neo-raised-sm);content:"";display:block;height:22px;transition:.2s;width:22px}
input[type=checkbox]:not([hidden]):checked{background:var(--neo-accent);box-shadow:var(--neo-inset)}
input[type=checkbox]:not([hidden]):checked:before{transform:translateX(22px)}

/* Shared raised surfaces */
.glass,.reports article,.paper,.case,.stats article,.dashboard-panel,.dashboard-card,.subscription-panel,.profile-card,.profile-overview,.overview-card,.case-toolbar,.workflow,.account-directory,.member-approval-table,.onboarding-card,.onboarding-reward,.table,.admin-create,.upload-panel,.risk-panel{
  background:var(--neo-surface);border:0;box-shadow:var(--neo-raised);border-radius:var(--neo-radius);
}
.glass:hover,.overview-card:hover,.case:hover,.stats article:hover{border:0;box-shadow:11px 11px 24px rgba(163,177,198,.62),-11px -11px 24px rgba(255,255,255,.95)}
.paper:before,.grid h3:after,.reports h3:after,.case-analysis-row h3:after{background:var(--neo-accent);border-radius:999px;height:3px}
.case:hover,.overview-card:hover,.plan-card:hover{transform:translateY(-3px)}
.case.high{background:var(--neo-surface);border:0;box-shadow:var(--neo-raised),inset 4px 0 0 #df5471}
.case em,.case-ai-status,.metric-label,.case-meta span,.risk-review-state,.member-status-badge{border:0;border-radius:999px;box-shadow:var(--neo-inset)}
.case-meta span{background:var(--neo-surface);padding:7px 12px}

/* Cards within cards use recessed hierarchy. */
.accordion-list details,.archive-item,.step,.record-heading,.analytics-card,.bar-row i,.status-chart div,.plan-card,.level-row,.simple-account-list>span,.tree-branch,.tree-person,.category-create,.member-card,.member-fields label,.doc-review-note{
  background:var(--neo-surface);border:0;border-radius:var(--neo-radius-sm);box-shadow:var(--neo-inset);
}
.accordion-list details[open]{background:var(--neo-surface-soft);border:0;box-shadow:var(--neo-inset),0 0 0 2px rgba(23,105,255,.08)}
.accordion-list summary{color:#34445c}
.audio-deck{background:var(--neo-surface);border:0;border-radius:20px;box-shadow:var(--neo-inset);color:var(--neo-ink)}
.audio-deck small{color:var(--neo-muted)}
.safe,.notice-success{background:var(--neo-surface);border:0;border-radius:16px;box-shadow:var(--neo-inset);color:#138369}
.flag,.notice-error,.risk-review-notice,.risk-line{background:var(--neo-surface);border:0;border-radius:16px;box-shadow:var(--neo-inset);color:#bd3c5e}
.dialogue-turn,.risk-raw-evidence p{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset)}
.dialogue-turn span{background:var(--neo-accent);border-radius:999px}
.workflow-grid .step.on{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset);color:var(--neo-blue)}

/* Dialogs */
dialog{background:var(--neo-surface);border:0;border-radius:28px;box-shadow:18px 18px 40px rgba(118,132,157,.58),-12px -12px 30px rgba(255,255,255,.92)}
dialog::backdrop{backdrop-filter:blur(10px);background:rgba(91,105,128,.3)}
.danger-dialog-icon,.regenerate-dialog-icon{background:var(--neo-surface);border:0;box-shadow:var(--neo-raised-sm)}
.ui-dialog{max-width:560px;padding:0;width:min(560px,calc(100vw - 32px))}.ui-dialog-shell{display:grid;gap:18px;grid-template-columns:58px 1fr;padding:28px}.ui-dialog-icon{align-items:center;background:var(--neo-surface);border-radius:50%;box-shadow:var(--neo-raised-sm);color:var(--neo-blue);display:flex;font-size:24px;font-weight:900;height:52px;justify-content:center;width:52px}.ui-dialog.is-danger .ui-dialog-icon{color:#d94b69}.ui-dialog-copy{min-width:0}.ui-dialog-copy h2{font-size:23px;margin:3px 0 9px}.ui-dialog-message{color:#64748b;font-size:14px;line-height:1.8;margin:0;white-space:pre-wrap}.ui-dialog-actions{display:flex;gap:12px;grid-column:1/-1;justify-content:flex-end}.ui-dialog-actions button{min-width:104px}.ui-dialog [hidden]{display:none!important}@media(max-width:560px){.ui-dialog-shell{grid-template-columns:1fr;padding:24px}.ui-dialog-icon{height:46px;width:46px}.ui-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.ui-dialog-actions button{width:100%}}

/* Admin and organization */
.account-category,.firm-tree{background:var(--neo-surface);border:0;border-radius:18px;box-shadow:var(--neo-inset)}
.account-category>summary,.firm-tree summary{background:transparent;border-radius:18px}
.account-category>summary i,.firm-tree summary i,.task-number,.member-avatar{background:var(--neo-accent);border:0;border-radius:12px;box-shadow:var(--neo-raised-sm);color:#fff}
.member-card{box-shadow:var(--neo-raised-sm)}
.member-search-form{background:var(--neo-surface);border-radius:999px;box-shadow:var(--neo-inset);padding:5px}
.member-search-form input{box-shadow:none}
table th{background:transparent}.table th,.table td{border-color:rgba(151,166,188,.18)}

/* Profile, onboarding and upload */
.plan-card.current,.register-type-option>input:checked+span{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset),0 0 0 2px rgba(23,105,255,.12)}
.token-card,.profile-token-card{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset);color:var(--neo-ink)}
.token-card small,.token-card span{color:var(--neo-muted)}
.token-card em,.profile-token em,.bar-row em,.product-footer div i,.doc-progress span:after{background:var(--neo-accent)}
.onboarding-progress{background:var(--neo-surface);border-radius:999px;box-shadow:var(--neo-inset);padding:6px}
.onboarding-progress span.done{background:var(--neo-accent);border-radius:999px;box-shadow:var(--neo-raised-sm);color:#fff}

/* Login */
body.login{background:var(--neo-bg);color:var(--neo-ink)}
.login-stage{background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.78),transparent 34%),var(--neo-bg)}
.login-stage:before{background:none}
.login-intro{color:var(--neo-ink)}
.login .login-intro h2{color:#b8893f;text-shadow:0 2px 12px rgba(184,137,63,.14)}
.login .login-intro>p,.login .login-intro-mark span{color:var(--neo-muted)}
.login-capabilities span{background:var(--neo-surface);border:0;border-radius:999px;box-shadow:var(--neo-raised-sm);color:#53647d}
.login .auth>div{background:var(--neo-surface);border:0;border-radius:28px;box-shadow:14px 14px 32px rgba(163,177,198,.62),-14px -14px 32px rgba(255,255,255,.96)}
.login .auth input{border:0;box-shadow:var(--neo-inset)}
.login details{border-color:rgba(151,166,188,.18)}
.register-type-option>span,.register-firm-fields{background:var(--neo-surface);border:0;border-radius:18px;box-shadow:var(--neo-raised-sm)}

/* Document studio */
.doc-studio{--doc-navy:var(--neo-ink);--doc-blue:var(--neo-blue)}
.doc-studio-hero,.doc-control-panel,.doc-reader-panel,.doc-issues-panel,.doc-compare-upload,.doc-compare-report,.doc-side-by-side>article,.doc-side-by-side>aside,.doc-compare-summary{
  background:var(--neo-surface);border:0;border-radius:var(--neo-radius);box-shadow:var(--neo-raised);color:var(--neo-ink);
}
.doc-studio-hero h1,.doc-studio-hero p{color:var(--neo-ink)}
.doc-mode-switch{background:var(--neo-surface);border:0;border-radius:999px;box-shadow:var(--neo-inset)}
.doc-mode-switch button{box-shadow:none}.doc-mode-switch button.is-active{background:var(--neo-surface);box-shadow:var(--neo-raised-sm);color:var(--neo-blue)}
.doc-drop-zone,.doc-empty-state,.doc-source-content,.doc-issue-card{background:var(--neo-surface);border:0;border-radius:18px;box-shadow:var(--neo-inset)}
.doc-upload-icon{background:var(--neo-accent);border:0;box-shadow:var(--neo-raised-sm);color:#fff}

/* Knowledge base */
.kb-admin{--navy:var(--neo-ink);--blue:var(--neo-blue);--line:rgba(151,166,188,.18);--muted:var(--neo-muted)}
.kb-hero,.kb-card,.kb-table-shell,.kb-migration-panel{background:var(--neo-surface);border:0;border-radius:var(--neo-radius);box-shadow:var(--neo-raised)}
.kb-hero{align-items:center}
.kb-hero:after{background:radial-gradient(circle,rgba(103,83,255,.13),transparent 68%)}
.kb-card>header{border-color:rgba(151,166,188,.16)}
.kb-card>header>span{background:var(--neo-accent);box-shadow:var(--neo-raised-sm)}
.kb-field input,.kb-field select,.kb-field textarea,.kb-search input{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset)}
.kb-dropzone,.kb-source-row,.kb-result-card{background:var(--neo-surface);border:0;border-radius:18px;box-shadow:var(--neo-inset)}

/* Public landing page */
.landing-body{--lf-navy:var(--neo-ink);--lf-soft:var(--neo-bg);--lf-line:rgba(151,166,188,.18);--lf-shadow:var(--neo-raised);background:var(--neo-bg);color:var(--neo-ink)}
.landing-nav,.landing-nav.scrolled{background:rgba(233,238,245,.92);border:0;box-shadow:0 8px 24px rgba(163,177,198,.38);color:var(--neo-ink)}
.landing-brand-mark{border-color:rgba(151,166,188,.3);color:var(--neo-blue)}
.landing-brand-copy small,.landing-links a{color:#68768d}.landing-links a:hover{color:var(--neo-blue)}
.landing-menu-toggle span{background:var(--neo-ink)}
.landing-button{background:#ebf0f7;border:0;border-radius:9999px;box-shadow:6px 6px 16px rgba(163,177,198,.6),-6px -6px 16px rgba(255,255,255,.8);color:#2c3e50}
.landing-button:hover{background:#f0f3f8;box-shadow:7px 7px 17px rgba(163,177,198,.62),-7px -7px 17px rgba(255,255,255,.9);color:#2c3e50}
.landing-button:active{box-shadow:var(--neo-inset);transform:none}
.landing-body .landing-button-primary,.landing-body .landing-button-light{background:#ebf0f7;color:#2c3e50}.landing-body .landing-button-primary strong,.landing-body .landing-button-primary span,.landing-body .landing-button-light strong,.landing-body .landing-button-light span{background:transparent;color:#2c3e50}.landing-button-link,.landing-button-ghost{color:#2c3e50}
.landing-hero,.landing-scenes,.landing-features,.landing-cases,.landing-pricing{background:var(--neo-bg);color:var(--neo-ink)}
.landing-hero:after,.landing-scenes:after{opacity:.18}.landing-orb{border-color:rgba(88,106,139,.12)}
.landing-hero h1,.scene-copy h2{color:var(--neo-ink)}
.landing-hero h1 span{background:var(--neo-accent);background-clip:text;color:transparent}
.landing-lead,.scene-copy>p:not(.landing-kicker),.scene-copy li span{color:var(--neo-muted)}
.product-window,.feature-card,.scene-flow>div,.case-panel,.pricing-card,.landing-final-cta{
  background:var(--neo-surface);border:0;border-radius:var(--neo-radius);box-shadow:var(--neo-raised);color:var(--neo-ink);
}
.product-window{transform:rotateY(-2deg) rotateX(1deg)}
.product-case,.product-insight,.product-progress>div,.case-compare>div:not(.case-arrow){background:var(--neo-surface);border:0;box-shadow:var(--neo-inset)}
.product-logo,.feature-icon,.product-progress .active i{background:var(--neo-accent);border:0;color:#fff}
.product-float{background:var(--neo-surface);border:0;box-shadow:var(--neo-raised-sm);color:var(--neo-ink)}.product-float small{color:var(--neo-muted)}.product-float b{color:var(--neo-ink)}
.feature-card:hover,.pricing-card:hover{border:0;box-shadow:12px 12px 26px rgba(163,177,198,.62),-12px -12px 26px #fff}
.scene-copy li{border-color:rgba(151,166,188,.2)}.scene-copy li b{color:var(--neo-ink)}
.case-tabs{background:var(--neo-surface);border-radius:999px;box-shadow:var(--neo-inset)}
.case-tab{border-radius:999px;box-shadow:none}.case-tab.active{background:var(--neo-surface);box-shadow:var(--neo-raised-sm);color:var(--neo-blue)}
.pricing-card.featured{border:0;box-shadow:var(--neo-raised),0 0 0 2px rgba(83,74,255,.12)}
.pricing-badge,.pricing-level{background:var(--neo-accent);color:#fff}
.landing-final-cta h2,.landing-final-cta p,.landing-final-cta>div>span{color:var(--neo-ink)}
.landing-footer{background:#dfe5ee;color:#68768d}.footer-brand,.footer-grid h3{color:var(--neo-ink)}

/* Standalone mobile recording room */
body:has(>.app){background:var(--neo-bg);color:var(--neo-ink)}
body:has(>.app) .app{background:var(--neo-bg)}
body:has(>.app) .secure,body:has(>.app) .field,body:has(>.app) .recovery,body:has(>.app) .notice{background:var(--neo-surface);border:0;box-shadow:var(--neo-inset);color:var(--neo-ink)}
body:has(>.app) .lead,body:has(>.app) .status,body:has(>.app) .field label,body:has(>.app) .recovery p,body:has(>.app) .notice p{color:var(--neo-muted)}
body:has(>.app) .field input{background:transparent;box-shadow:none;color:var(--neo-ink)}
body:has(>.app) .halo{border:0;box-shadow:var(--neo-raised),var(--neo-inset)}
body:has(>.app) .record{background:var(--neo-accent);box-shadow:12px 12px 28px rgba(137,151,179,.6),-12px -12px 28px #fff}
body:has(>.app) .record:active{box-shadow:var(--neo-inset)}
body:has(>.app) .finish,body:has(>.app) .small{background:var(--neo-surface);border:0;box-shadow:var(--neo-raised-sm);color:var(--neo-blue)}
body:has(>.app) .small.primary{background:var(--neo-accent);color:#fff}
body:has(>.app) .ring{background:conic-gradient(#665cff calc(var(--progress)*1%),rgba(163,177,198,.2) 0);box-shadow:var(--neo-raised-sm)}
body:has(>.app) .ring:before{background:var(--neo-bg)}

@media(max-width:820px){.landing-menu{background:var(--neo-bg);border:0;box-shadow:var(--neo-raised)}.landing-links a{border-color:rgba(151,166,188,.16)}.pills{box-shadow:none;padding:0}}
@media(prefers-reduced-motion:reduce){button,.button,.case,.overview-card,.feature-card,.pricing-card{transition:none}}
