:root{
  --desktop:#8f9397;
  --window:#d6d6d6;
  --panel:#eeeeee;
  --panel2:#c9c9c9;
  --ink:#111;
  --muted:#4c4c4c;
  --line:#6f6f6f;
  --line-dark:#323232;
  --hilite:#fff;
  --accent:#3155a4;
  --accent-text:#fff;
  --good:#1f6b2d;
  --warn:#8b5b00;
  --bad:#a40019;
  --select:#3155a4;
}
*{box-sizing:border-box}
html{background:var(--desktop)}
body{
  margin:0;
  min-height:100vh;
  color:var(--ink);
  background:
    linear-gradient(rgba(255,255,255,.08),rgba(0,0,0,.04)),
    var(--desktop);
  font-family:Charcoal,"Chicago FLF","Geneva",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  font-size:15px;
}
button,input,select,textarea{font:inherit;color:var(--ink)}
a{color:#103f9c}
.app{max-width:860px;margin:0 auto;padding:18px 14px 116px}
.mac-window,.card,.item,.banner,.progress-wrap{
  background:var(--window);
  border:1px solid var(--line-dark);
  box-shadow:inset 1px 1px 0 var(--hilite),inset -1px -1px 0 #8a8a8a,2px 2px 0 rgba(0,0,0,.28);
}
.topbar{display:block;padding:0;margin:0 0 14px}
.mac-titlebar{
  min-height:28px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:8px;
  align-items:center;
  padding:4px 8px;
  background:#ececec;
  border-bottom:1px solid var(--line-dark);
  font-size:.9rem;
}
.mac-stripes{height:12px;background:repeating-linear-gradient(to bottom,#777 0,#777 1px,transparent 1px,transparent 3px);opacity:.65}
.topbar-content{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:14px}
h1{margin:0;font-size:1.55rem;letter-spacing:-.03em}
.version{color:var(--muted);font-size:.82rem;margin-top:3px}
.tagline{color:#2f2f2f;margin:7px 0 0;line-height:1.35;max-width:560px}
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.coffee,.button,.banner button{
  appearance:none;
  border:1px solid #222;
  border-radius:4px;
  background:linear-gradient(#f8f8f8,#cfcfcf);
  color:#111;
  text-decoration:none;
  padding:8px 12px;
  font-weight:700;
  box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #777;
}
.coffee:active,.button:active,.banner button:active{background:linear-gradient(#bdbdbd,#e9e9e9);box-shadow:inset 1px 1px 0 #777}
.badge{display:inline-block;border-radius:3px;padding:4px 7px;font-size:.76rem;border:1px solid #555;background:#efefef;box-shadow:inset 1px 1px 0 #fff}
.badge-neutral{color:#333;background:#d8d8d8}
.badge-source{background:#dfe9ff;color:#17366d;border-color:#49679b}
.badge-measured{background:#dfeedd;color:#16481f;border-color:#5b845d}
.badge-missing{background:#f4d7dc;color:#7b0012;border-color:#8d3b48}
.badge-oem{background:#e8eed8;color:#314d18;border-color:#73824d}
.card{padding:14px;margin:12px 0}
.card.compact{font-size:.9rem;line-height:1.42}
.principle{border-left:5px solid var(--accent)}
.asterisk{color:var(--bad);font-weight:900;font-size:1.15em}
.hidden{display:none!important}
.banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;margin:10px 0;background:#fff2bc;color:#473100}
.progress-wrap{padding:7px 9px;margin:12px 0 8px}
.progress{height:12px;overflow:hidden;background:#fff;border:1px solid #333;box-shadow:inset 1px 1px 0 #777}
.progress-bar{height:100%;width:0;background:repeating-linear-gradient(90deg,#3358ab 0,#3358ab 7px,#5f7dc0 7px,#5f7dc0 12px);transition:width .2s ease}
.step-row{display:flex;justify-content:space-between;color:#333;font-size:.78rem;margin-top:5px}
.screen{display:none}.screen.active{display:block}
.screen h2{margin:0 0 4px;font-size:1.12rem}
.screen .intro{color:#444;margin:0 0 12px;line-height:1.35}
.item{padding:11px;margin:10px 0;background:#e5e5e5;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #8c8c8c}
.label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
label{font-weight:700;line-height:1.25}
input,select,textarea{
  width:100%;
  margin-top:8px;
  background:#fff;
  border:1px solid #222;
  border-radius:2px;
  padding:9px 10px;
  min-height:40px;
  box-shadow:inset 1px 1px 1px #8d8d8d,inset -1px -1px 0 #fff;
}
select{background-color:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #6b83bd;outline-offset:1px}
textarea{min-height:100px;resize:vertical}
.help,.reference-line,.micro{font-size:.79rem;color:#555;line-height:1.38;margin-top:7px}.reference-line strong{color:#111}
.reference-line.no-ref{color:#666}.reference-line .badge{margin-left:5px}
.unit-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.unit{color:#444;font-size:.84rem;min-width:34px;text-align:left;padding-top:8px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.button-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}
.button{cursor:pointer}.primary{background:linear-gradient(#5e79bf,#3155a4);color:#fff;text-shadow:0 1px 0 #17306d}.secondary{background:linear-gradient(#f8f8f8,#cfcfcf);color:#111}.danger{background:linear-gradient(#f0d6da,#c79099);color:#57000e}
.nav{position:fixed;z-index:10;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:9px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#bebebe;border-top:1px solid #333;box-shadow:inset 0 1px 0 #fff}.nav .button{min-width:92px}.nav .primary{min-width:116px}
.decode-box,.catalog-source{background:#ededed;border:1px dotted #555;padding:10px;margin-top:10px}.decode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.decode-cell{background:#d9d9d9;border:1px solid #8a8a8a;padding:8px;box-shadow:inset 1px 1px 0 #fff}.decode-cell small{display:block;color:#555}
.missing-list{display:grid;gap:8px}.missing-row{border:1px solid #7d3943;background:#f3dfe2;padding:10px;box-shadow:inset 1px 1px 0 #fff}.missing-row strong{display:block}.missing-row .expected{font-size:.82rem;color:#72101e;margin-top:4px}.missing-row .source{font-size:.75rem;color:#555;margin-top:3px}
.summary-table{width:100%;border-collapse:collapse;font-size:.84rem;background:#fff;border:1px solid #444}.summary-table th,.summary-table td{border:1px solid #8a8a8a;padding:8px 7px;text-align:left;vertical-align:top}.summary-table th{background:#d5d5d5;color:#222;font-size:.73rem;text-transform:uppercase;letter-spacing:.035em}.summary-table tr:nth-child(even) td{background:#f6f6f6}
.notice{border:1px solid #806516;border-left:5px solid #9b6c00;padding:10px 12px;background:#fff1c9;color:#4b3400;margin:10px 0}.good-note{border-color:#3e7547;border-left-color:var(--good);background:#e2f1e4;color:#174420}.bad-note{border-color:#8f4652;border-left-color:var(--bad);background:#f3dce0;color:#68000f}
.analysis-card{border:1px solid #60749f;border-left:5px solid var(--accent);padding:10px 12px;background:#e7ebf5;margin:8px 0}.analysis-card.med{border-left-color:#9b6c00;background:#fff1c9}.analysis-card.high{border-left-color:var(--bad);background:#f3dce0}
.footer-note{font-size:.76rem;color:#555;line-height:1.4;margin-top:10px}.mono{font-family:Monaco,"Courier New",monospace}
.report-footer{margin:14px 0 0;padding:12px;background:#d0d0d0;border:1px solid #3b3b3b;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #888}.report-brand{display:flex;gap:10px;align-items:center}.report-brand img{width:44px;height:44px;object-fit:cover;border:1px solid #222;image-rendering:auto}.report-brand strong{font-size:1rem}.report-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:.83rem}.report-links a{font-weight:700}
.catalog-controlled option[value="__modified__"]{font-style:italic}
@media(max-width:600px){
  .app{padding-left:9px;padding-right:9px;padding-top:9px}
  .topbar-content{display:block;padding:12px}
  .top-actions{justify-content:flex-start;margin-top:10px}
  .grid2,.decode-grid{grid-template-columns:1fr}
  .card{padding:11px}
  .nav .button{min-width:0;flex:1}
  .tagline{font-size:.88rem}
  .summary-table{font-size:.78rem}
  .summary-table th,.summary-table td{padding:7px 5px}
}
@media print{
  @page{margin:.4in}
  html,body{background:#fff;color:#000}
  body{font-family:Arial,sans-serif;font-size:10pt}
  .app{max-width:none;padding:0}
  .topbar,.principle,.progress-wrap,.nav,.screen:not(.results-screen),.coffee,.banner,.no-print{display:none!important}
  .screen.results-screen{display:block!important}
  .card,.item,.analysis-card,.missing-row,.report-footer{box-shadow:none;background:#fff;color:#000;border-color:#555;break-inside:avoid}
  .summary-table{font-size:8.5pt}
  .summary-table th{background:#e6e6e6!important;color:#000}
  .summary-table tr:nth-child(even) td{background:#fafafa!important}
  .reference-line,.help,.micro,.footer-note{color:#333}
  .asterisk{color:#a00016}
  .badge{border-color:#777;color:#111;background:#eee;box-shadow:none}
  .report-links a{color:#000;text-decoration:none}
}
