:root{
  --eazo-safe-area-top:max(56px,env(safe-area-inset-top,0px));
  --eazo-safe-area-bottom:max(34px,env(safe-area-inset-bottom,0px));
  --paper:#d1c5ac;
  --ink:#2b2821;
  --muted:#7c7364;
  --rule:rgba(43,40,33,.28);
  --white:#fffdf8;
  --red:#b44743;
  --green:#4a765f;
  --shadow:0 8px 18px rgba(43,40,33,.09);
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{
  margin:0;color:var(--ink);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:14px;line-height:1.45;background:var(--paper);min-width:0;
}
button{font:inherit;color:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

.app-container{
  min-height:100svh;
  padding:var(--eazo-safe-area-top) 18px var(--eazo-safe-area-bottom);
  overflow-x:hidden;
}
.page{width:min(100%,680px);margin:0 auto;min-width:0}

.topbar{
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--ink);padding:0 0 12px;min-height:44px;
}
.brand{font-size:12px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.lang{
  border:1px solid var(--ink);background:transparent;min-height:44px;
  padding:0 12px;cursor:pointer;white-space:nowrap;
}
.lang span.active{font-weight:700}
.lang span.dim{color:var(--muted)}
.slash{color:var(--muted);padding:0 5px}

.head-meta{
  display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;
  color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;
}
.eyebrow{letter-spacing:.18em}

.dial-stage{text-align:center;padding:16px 0 9px}
.dial-wrap{width:170px;height:100px;margin:0 auto;position:relative}
.dial-svg{width:170px;height:100px;overflow:visible}
.arc-bg,.arc-value{fill:none;stroke-width:2}
.arc-bg{stroke:rgba(43,40,33,.16)}
.arc-value{
  stroke:var(--ink);stroke-linecap:round;stroke-dasharray:238;stroke-dashoffset:119;
  transition:stroke-dashoffset .6s ease,stroke .3s ease;
}
.score{
  position:absolute;left:0;right:0;bottom:0;
  font-size:48px;line-height:1;font-weight:500;letter-spacing:-.08em;
  font-variant-numeric:tabular-nums;
}
.band{font-size:11px;text-transform:uppercase;letter-spacing:.17em;margin-top:3px}
.instruction{max-width:510px;margin:9px auto 0;color:var(--muted);font-size:12px;line-height:1.55}

.rule{border:0;border-top:1px solid var(--rule);margin:18px 0 0}

.round-head{display:flex;align-items:baseline;justify-content:space-between;margin:19px 0 10px}
.round-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.skip{
  color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px;
  min-height:44px;display:inline-flex;align-items:center;cursor:pointer;background:none;border:0;padding:0;
}

.cards{display:flex;flex-direction:column;gap:10px}
.opener{
  position:relative;width:100%;min-height:64px;text-align:left;padding:15px 16px 15px 42px;
  border:1px solid rgba(43,40,33,.22);background:var(--white);box-shadow:var(--shadow);
  cursor:pointer;transition:opacity .3s ease,transform .6s ease,box-shadow .3s ease;border-radius:0;
}
.opener:hover{box-shadow:0 11px 22px rgba(43,40,33,.13)}
.opener:active{transform:translateY(1px)}
.opener::before{content:attr(data-index);position:absolute;left:16px;top:17px;color:var(--muted);font-size:11px}
.opener.chosen{transform:translateY(-10px);box-shadow:0 15px 24px rgba(43,40,33,.14)}
.opener.faded{opacity:0;transform:translateY(6px);pointer-events:none}
.opener[disabled]{cursor:default}

.feedback{min-height:102px;margin-top:16px}
.note-label{font-size:10px;color:var(--muted);letter-spacing:.13em;text-transform:uppercase}
.note{margin-top:5px;font-size:14px;min-height:24px}
.reply{display:none;align-items:flex-start;gap:8px;margin-top:12px;color:var(--muted);font-size:12px}
.reply.visible{display:flex}
.reply-mark{border:1px solid var(--rule);width:18px;height:18px;display:grid;place-items:center;font-size:9px;flex:0 0 auto}
.reply-bubble{background:rgba(255,253,248,.56);border:1px solid rgba(43,40,33,.12);padding:8px 11px;max-width:calc(100% - 26px)}

.continue{
  display:none;margin:12px 0 0 auto;min-height:44px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);padding:0 15px;cursor:pointer;white-space:nowrap;
}
.continue.visible{display:block}

.report{padding-top:22px}
.report-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.report-title{
  font-family:Georgia,"Times New Roman",serif;font-size:34px;line-height:1.05;font-weight:400;
  margin:8px 0 4px;letter-spacing:-.03em;
}
.report-sub{font-size:12px;color:var(--muted);margin:0 0 18px}
.report-score{
  display:flex;align-items:end;justify-content:space-between;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:16px 0;
}
.final-number{font-size:56px;line-height:.95;letter-spacing:-.1em;font-variant-numeric:tabular-nums}
.final-band{text-align:right;font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.approval{
  padding:18px 0;border-bottom:1px solid var(--rule);
  font-family:Georgia,"Times New Roman",serif;font-size:22px;line-height:1.15;
}
.sharp{padding:16px 0 5px}
.sharp-title,.details-title{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:8px}
.sharp-item{border-top:1px solid var(--rule);padding:10px 0;display:flex;gap:12px;font-size:12px}
.sharp-index{color:var(--muted)}

.actions{display:flex;gap:10px;padding:18px 0 10px;flex-wrap:wrap}
.action{min-height:48px;padding:0 17px;border:1px solid var(--ink);background:transparent;cursor:pointer;white-space:nowrap}
.action.primary{background:var(--ink);color:var(--paper)}

.details{border-top:1px solid var(--ink);margin-top:4px}
.details summary{min-height:52px;display:flex;align-items:center;cursor:pointer;font-size:12px;list-style:none}
.details summary::-webkit-details-marker{display:none}
.details summary::after{content:'+';margin-left:auto;font-size:18px}
.details[open] summary::after{content:'\2212'}
.round-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--rule);padding:10px 0;font-size:12px}
.round-row .opener-text{flex:1;min-width:0}
.delta{font-variant-numeric:tabular-nums;white-space:nowrap}
.delta.pos{color:var(--green)}
.delta.neg{color:var(--red)}

.file-no{margin-top:20px;color:var(--muted);font-size:10px;letter-spacing:.1em}
.closed{text-align:center;padding:46px 0 8px}
.closed .report-title{max-width:450px;margin-left:auto;margin-right:auto}
.closed .actions{justify-content:center}

.error{color:var(--red);font-size:12px;margin-top:10px;display:none}
.error.visible{display:block}
.share-toast{color:var(--red);font-size:12px;margin-top:10px;display:none}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (min-width:700px){
  .app-container{padding-left:32px;padding-right:32px}
  .dial-stage{padding-top:22px}
  .cards{gap:12px}
  .opener{min-height:70px;padding-top:18px;padding-bottom:18px}
  .report{padding-top:36px}
  .report-title{font-size:42px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
