/* ── VARIABLES ── */
:root{
  --shen-ivory:#fbf7ef;--shen-parchment:#f3eadc;--shen-card:#fffdf8;--shen-ink:#24312c;--shen-muted:#6d746d;--shen-muted-text:#5f665f;
  --shen-green:#245a3b;--shen-green-deep:#18452f;--shen-border:#ded4c5;
  --shen-jade:#2f6f5e;--shen-jade-soft:#e7f2ec;
  --shen-sage:#6f8f7a;--shen-sage-soft:#edf4ed;
  --shen-bronze:#a8652d;--shen-bronze-soft:#f6eadc;
  --shen-gold:#c29a4a;--shen-gold-soft:#f8f0d9;
  --shen-red:#a94438;--shen-red-soft:#f7e4df;
  --shen-bluegreen:#3d7580;--shen-bluegreen-soft:#e8f2f2;
  --bg:var(--shen-ivory);--surface:var(--shen-card);--surface2:var(--shen-parchment);
  --border:var(--shen-border);--border2:#d3c7b8;
  --text:var(--shen-ink);--text2:var(--shen-muted);--text3:#8a8f86;
  --accent:var(--shen-green);--accent-l:var(--shen-jade-soft);
  --danger:var(--shen-red);--danger-l:var(--shen-red-soft);
  --warn:var(--shen-bronze);--warn-l:var(--shen-bronze-soft);
  --info:var(--shen-bluegreen);--info-l:var(--shen-bluegreen-soft);
  --gold:var(--shen-gold);--gold-l:var(--shen-gold-soft);
  --mob-header-offset:56px;
  --r:8px;--rl:12px;
  --shadow-sm:0 2px 7px rgba(36,49,44,.06);
  --shadow-md:0 8px 22px rgba(36,49,44,.08),0 1px 3px rgba(36,49,44,.05);
  --shadow-lg:0 16px 42px rgba(36,49,44,.10),0 2px 7px rgba(36,49,44,.06);
  /* Western Clinical Lens palette */
  --western-ink:#24313a;--western-slate:#315760;--western-teal:#2f6f68;
  --western-teal-soft:#e5f1ef;--western-blue-soft:#e8f0f5;
  --western-border:#d7e0df;--western-red:#a94438;--western-red-soft:#f7e4df;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:radial-gradient(circle at 16% 0%,rgba(47,111,94,.08),transparent 28%),linear-gradient(180deg,var(--shen-ivory),#f7f0e5 100%);color:var(--text);min-height:100vh;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.ui-icon{width:16px;height:16px;display:inline-block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.ui-icon-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* ── DESKTOP LAYOUT ── */
.shell{display:block;min-height:100vh}
.main{margin-left:260px;min-height:100vh;box-sizing:border-box;position:relative}

/* ── SCREENS ── */
.screen{display:none;position:absolute;top:0;left:0;width:100%;min-height:100vh;padding:2rem 2.5rem;box-sizing:border-box;overflow-x:hidden}
.screen.active{display:block;animation:fi .22s ease}
@keyframes fi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ── TABS ── */
.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.75rem;gap:2px;flex-wrap:nowrap}.tabs::-webkit-scrollbar{display:none}
.tab{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:9px 16px;border:none;background:transparent;color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;font-family:'Inter',sans-serif;white-space:nowrap;letter-spacing:-.01em;flex-shrink:0}
.tab .ui-icon{width:15px;height:15px}
.tab:hover{color:var(--text2);background:var(--surface2);border-radius:6px 6px 0 0}
.tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}

/* ── HOME ── */
.hero{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}
.hero h1{font-family:'DM Serif Display',serif;font-size:30px;color:var(--text);line-height:1.15;margin-bottom:6px;letter-spacing:-.02em}
.hero p{color:var(--text2);font-size:13px;max-width:500px;line-height:1.6}
.slbl{font-size:11px;font-family:'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:10px}

/* ── CARDS ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:1.25rem 1.4rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}
.cl{font-size:9.5px;font-family:'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;font-weight:500}

/* ── CASE ── */
.btn-sm{font-size:12.5px;padding:6px 14px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text2);cursor:pointer;font-family:'Inter',sans-serif;transition:all .12s;font-weight:500;box-shadow:var(--shadow-sm)}
.btn-sm:hover{background:var(--surface2)}
.btn-icon{font-size:16px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r);background:transparent;cursor:pointer;transition:all .12s;line-height:1}
.btn-icon:hover{background:var(--surface2)}
.btn-icon.active{background:var(--gold-l);border-color:var(--gold);color:var(--gold)}

/* ── INPUTS ── */
.ig{margin-bottom:.9rem}
.il{font-size:12px;font-weight:600;color:var(--text2);margin-bottom:4px;display:block;letter-spacing:-.01em}
.ih{font-size:11px;color:var(--text3);margin-bottom:6px;line-height:1.5}
textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);font-family:'Inter',sans-serif;font-size:13.5px;color:var(--text);background:var(--bg);resize:vertical;min-height:76px;transition:border-color .15s,box-shadow .15s;line-height:1.65}
textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(45,90,61,.1)}

/* ── LOADING ── */
.load-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;text-align:center}
.pulse{width:48px;height:48px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite;margin-bottom:1.25rem}
@keyframes spin{to{transform:rotate(360deg)}}
.lt{font-family:'DM Serif Display',serif;font-size:19px;color:var(--text);margin-bottom:6px;letter-spacing:-.01em}
.ls{font-size:12px;color:var(--text3);letter-spacing:.01em}

/* ── OVERLAY ── */
.ov{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(26,24,22,.48);display:flex;align-items:center;justify-content:center;z-index:200;padding:1.5rem}
.ov-box{background:var(--surface);border-radius:16px;max-width:740px;width:100%;max-height:88vh;overflow-y:auto;padding:1.75rem;animation:fi .2s ease;box-shadow:var(--shadow-lg)}
.ov-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.ov-close{font-size:18px;cursor:pointer;color:var(--text3);background:none;border:none;padding:4px 8px;line-height:1;border-radius:var(--r)}
.ov-close:hover{background:var(--surface2);color:var(--text)}
.ov-sec{margin-bottom:1.1rem}
.ov-sec-t{font-size:10px;font-family:'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:7px}
.ov-text{font-size:14px;color:var(--text);line-height:1.75;white-space:pre-wrap}
.ov-score{font-family:'DM Serif Display',serif;font-size:38px;color:var(--accent)}
