:root{
  --font-ko:"Pretendard Variable","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-en:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-ja:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --canvas:#f6f6f3;
  --surface:#fff;
  --surface-subtle:#f1f2f3;
  --surface-strong:#e9ebee;
  --ink:#17191c;
  --ink-2:#3f444b;
  --muted:#6f757e;
  --border:#dcdfe3;
  --border-strong:#b9bec5;
  --blue:#155dcc;
  --blue-hover:#0e4da9;
  --blue-soft:#edf4ff;
  --green:#147c4a;
  --yellow:#a96700;
  --red:#c7353d;
  --focus:0 0 0 3px rgba(21,93,204,.17);
  --shadow-float:0 18px 48px rgba(21,25,31,.14),0 2px 8px rgba(21,25,31,.06);
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --radius-xl:18px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--canvas)}
html[lang="ko"] body{font-family:var(--font-ko)}
html[lang="en"] body{font-family:var(--font-en)}
html[lang="ja"] body{font-family:var(--font-ja)}
body{margin:0;background:var(--canvas);color:var(--ink);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img,canvas{display:block;max-width:100%}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.noscript{padding:16px;background:#fff1f2;color:var(--red);text-align:center;font-weight:650}

/* Typography */
h1,h2,h3,p{margin:0}
h1{font-size:34px;line-height:42px;letter-spacing:-.034em;font-weight:700}
h2{font-size:27px;line-height:35px;letter-spacing:-.025em;font-weight:700}
h3{font-size:17px;line-height:24px;letter-spacing:-.012em;font-weight:650}
.overline{font-family:var(--font-mono);font-size:10px;line-height:16px;letter-spacing:.09em;font-weight:700;color:var(--muted);text-transform:uppercase}
.tool-description,.section-heading>p:not(.overline){font-size:15px;line-height:24px;color:var(--ink-2)}

/* Header */
.site-header{position:sticky;top:0;z-index:40;height:62px;border-bottom:1px solid var(--border);background:rgba(246,246,243,.94);backdrop-filter:blur(14px)}
.header-inner{height:100%;max-width:1240px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:26px}
.brand{display:inline-flex;align-items:center;gap:9px;min-width:max-content;font-family:var(--font-en);font-weight:700;letter-spacing:-.035em}
.brand-symbol{width:27px;height:27px;color:var(--blue)}
.brand-word{font-size:14px;line-height:20px}
.brand-word strong{color:var(--blue);font-weight:700}
.top-nav{display:flex;align-items:center;gap:2px;margin-right:auto}
.top-nav a,.top-nav button,.header-link{border:0;background:transparent;padding:8px 10px;border-radius:var(--radius-sm);font-size:12px;line-height:18px;font-weight:600;color:var(--ink-2)}
.top-nav a:hover,.top-nav button:hover,.header-link:hover{background:var(--surface-strong);color:var(--ink)}
.header-actions{display:flex;align-items:center;gap:7px}
.language-control select{height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:0 28px 0 9px;font-size:12px;font-weight:600}
.quota-chip{height:34px;border:1px solid var(--border);border-radius:999px;background:var(--surface);padding:0 11px;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--ink-2)}

/* Buttons */
.button{min-height:42px;border:1px solid transparent;border-radius:7px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;line-height:20px;font-weight:680;transition:background .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease}
.button:hover{transform:translateY(-1px)}
.button:active{transform:translateY(0)}
.button:disabled{opacity:.48;cursor:not-allowed;transform:none}
.button-small{min-height:34px;padding:6px 11px;font-size:12px}
.button-primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.button-primary:hover{background:var(--blue-hover);border-color:var(--blue-hover)}
.button-ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.button-outline{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}
.button-outline:hover{background:var(--surface-subtle)}
.button-ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.button-ghost:hover{background:var(--surface-subtle)}
.button-pro{background:#22262d;color:#fff;border-color:#22262d}
.button-business{background:#313743;color:#fff;border-color:#313743}
.full-width{width:100%}
.inline-link{border:0;background:transparent;padding:0;color:var(--blue);font-size:12px;line-height:19px;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.danger-link{color:var(--red)}

/* Analyzer */
.tool-section{padding:34px 24px 56px}
.tool-shell{max-width:1120px;margin:0 auto}
.tool-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:18px}
.tool-heading>div:first-child{max-width:700px}
.tool-heading h1{margin-top:3px}
.tool-heading .tool-description{margin-top:5px}
.input-progress{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);white-space:nowrap}
.input-progress span{font-size:11px;line-height:16px;color:var(--muted);font-weight:600}
.input-progress strong{font-family:var(--font-mono);font-size:13px;line-height:18px;font-variant-numeric:tabular-nums;color:var(--blue)}
.analysis-workbench{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px rgba(18,22,28,.03)}
.workbench-block{padding:0}
.block-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:17px 20px;border-bottom:1px solid var(--border)}
.block-heading>div{display:flex;align-items:baseline;gap:10px}
.block-heading h2{font-size:16px;line-height:23px;letter-spacing:-.015em}
.block-heading>p{max-width:520px;font-size:12px;line-height:19px;color:var(--muted);text-align:right}
.step-number{font-family:var(--font-mono);font-size:10px;line-height:16px;color:var(--blue);font-weight:700}
.package-block{background:var(--surface)}
.asset-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)}
.asset-panel{padding:20px;min-width:0}
.asset-panel+ .asset-panel{border-left:1px solid var(--border)}
.asset-heading{min-height:48px;margin-bottom:12px}
.asset-heading h3{font-size:15px;line-height:22px}
.asset-heading p{margin-top:2px;font-size:12px;line-height:18px;color:var(--muted)}
.split-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.format-badge{font-family:var(--font-mono);font-size:10px;line-height:16px;padding:2px 7px;border:1px solid var(--border);border-radius:5px;color:var(--muted)}
.upload-zone{position:relative;display:block;aspect-ratio:16/9;border:1px dashed #aeb4bd;border-radius:10px;background:#f2f3f5;overflow:hidden;cursor:pointer;transition:border-color .14s ease,background .14s ease}
.upload-zone:hover,.upload-zone.is-dragging{border-color:var(--blue);background:var(--blue-soft)}
.upload-zone:focus-within{box-shadow:var(--focus);border-color:var(--blue)}
.upload-zone input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;z-index:3}
.upload-zone canvas{width:100%;height:100%;object-fit:cover;opacity:0}
.upload-zone.has-image canvas{opacity:1}
.upload-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;pointer-events:none}
.upload-icon{width:40px;height:40px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);display:grid;place-items:center;margin-bottom:11px;color:var(--blue)}
.upload-icon svg{width:21px;height:21px}
.upload-placeholder strong{font-size:14px;line-height:21px;font-weight:700}
.upload-placeholder span:not(.upload-icon){font-size:12px;line-height:19px;color:var(--ink-2);margin-top:2px}
.upload-placeholder small{font-size:10px;line-height:17px;color:var(--muted);margin-top:7px}
.upload-zone.has-image .upload-placeholder{display:none}
.image-toolbar{position:absolute;left:9px;right:9px;bottom:9px;z-index:4;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:7px;background:rgba(18,21,26,.9);color:#fff;backdrop-filter:blur(6px)}
.image-toolbar span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;line-height:17px}
.image-toolbar button{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:5px;padding:4px 7px;font-size:10px;line-height:16px;position:relative;z-index:5}
.title-input-wrap{display:block;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);overflow:hidden}
.title-input-wrap:focus-within{border-color:var(--blue);box-shadow:var(--focus)}
.title-input-wrap textarea{display:block;width:100%;height:150px;resize:none;border:0;outline:0;padding:15px 14px 9px;background:transparent;font-size:18px;line-height:28px;letter-spacing:-.018em;font-weight:550}
.title-meta{height:34px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:10px;line-height:16px;color:var(--muted)}
.title-meta strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}
.feed-preview{display:grid;grid-template-columns:152px minmax(0,1fr);gap:12px;align-items:center;margin-top:12px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle)}
.feed-thumb{position:relative;aspect-ratio:16/9;border-radius:5px;background:#dfe2e6;display:grid;place-items:center;overflow:hidden}
.feed-thumb canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0}
.feed-thumb.has-image canvas{opacity:1}
.feed-thumb span{position:relative;z-index:1;font-family:var(--font-mono);font-size:9px;color:#777d85}
.feed-thumb.has-image span{display:none}
.feed-copy{min-width:0}
.feed-copy b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:18px;font-weight:650}
.feed-copy small{display:block;margin-top:3px;font-size:9px;line-height:14px;color:var(--muted)}
.conditions-block{border-top:1px solid var(--border);background:#fbfbfa}
.conditions-block .block-heading{padding-bottom:12px;border-bottom:0}
.condition-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 20px 18px}
.field{display:flex;flex-direction:column;gap:6px}
.field>span{font-size:11px;line-height:17px;font-weight:650;color:var(--ink-2)}
.field select,.field input{width:100%;height:43px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);padding:0 11px;font-size:14px;line-height:20px}
.field select:focus,.field input:focus,.title-input-wrap textarea:focus,.language-control select:focus{outline:0;border-color:var(--blue);box-shadow:var(--focus)}
.workbench-footer{border-top:1px solid var(--border);padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px;background:#f6f7f8}
.privacy-copy{display:flex;gap:7px;align-items:flex-start;max-width:540px;font-size:11px;line-height:18px;color:var(--muted)}
.submit-group{display:flex;align-items:center;gap:11px}
.analyze-button{min-width:210px;min-height:46px;font-size:14px}
.submit-group p{max-width:180px;font-size:10px;line-height:16px;color:var(--muted)}

/* Results */
.results-section{padding:0 24px 68px}
.decision-memo{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);overflow:hidden}
.memo-header{padding:25px 27px 21px;display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border)}
.verdict-line{display:flex;align-items:center;gap:18px;margin-top:7px}
.verdict-line:empty{display:none}
.result-score{font-family:var(--font-en);font-size:22px;line-height:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.result-score small{font-size:12px;line-height:18px;color:var(--muted);letter-spacing:0;margin-left:2px}
.verdict-block{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid currentColor;border-radius:8px;color:var(--blue)}
.verdict-block>span{font-size:14px}
.verdict-block div{display:flex;flex-direction:column}
.verdict-block strong{font-size:12px;line-height:18px}
.verdict-block small{font-size:10px;line-height:15px}
.memo-meta{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.memo-meta span{font-family:var(--font-mono);font-size:9px;line-height:15px;padding:3px 6px;border:1px solid var(--border);border-radius:5px;color:var(--muted)}
.memo-grid{display:grid;grid-template-columns:1fr 1fr}
.memo-item{padding:21px 27px;min-height:124px;border-bottom:1px solid var(--border)}
.memo-item:nth-child(odd){border-right:1px solid var(--border)}
.memo-item>span{display:block;font-size:10px;line-height:16px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.045em;margin-bottom:7px}
.memo-item p{font-size:15px;line-height:25px;font-weight:560;letter-spacing:-.012em}
.priority-item{background:#f2f6fd}
/* 「해결 + 더 권할 것 없음」의 마지막 한 줄은 행동 카드가 아니다.
   할 일이 없는데 카드 모양만 남으면 빈 과제처럼 읽힌다. */
.priority-item[data-settled]{background:transparent;min-height:auto}
.component-row{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border)}
.component-row>div{padding:15px 27px;display:grid;grid-template-columns:1fr auto;gap:7px 12px;align-items:center;border-right:1px solid var(--border)}
.component-row>div:last-child{border-right:0}
.component-row span{font-size:11px;line-height:17px;color:var(--ink-2);font-weight:600}
.component-row strong{font-family:var(--font-en);font-size:17px;line-height:21px;font-variant-numeric:tabular-nums}
.component-row i{grid-column:1/-1;height:4px;border-radius:999px;background:#e4e7eb;overflow:hidden}
.component-row i b{display:block;height:100%;background:var(--blue);width:0;transition:width .3s ease}
.review-control{padding:15px 27px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:22px;background:#fbfbfa}
.review-control p{font-size:11px;line-height:18px;color:var(--muted)}
.review-control>div{display:flex;gap:6px;flex-wrap:wrap}
.review-control button{height:31px;border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:0 8px;font-size:10px;font-weight:600;color:var(--ink-2)}
.review-control button.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.result-actions{padding:15px 27px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.notify-optin{padding:4px 32px 18px;display:grid;gap:8px;max-width:640px}.notify-optin strong{font-size:14px}.notify-row{display:flex;gap:8px}.notify-row input{flex:1;min-width:0;height:40px;padding:0 12px;border:1px solid var(--border);border-radius:8px;font:inherit}.notify-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--muted)}.notify-consent input{margin-top:3px;flex:none}.notify-status{font-size:12px;color:var(--muted);min-height:0;margin:0}.notify-status:empty{display:none}.loop-share{margin:0 16px 14px}
.signup-nudge,.pro-nudge{margin:19px 27px 0;padding:17px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.signup-nudge{border:1px solid #b7cef2;background:#f2f7ff}
.pro-nudge{border:1px solid #444b56;background:#20242b;color:#fff}
.nudge-copy{display:flex;align-items:center;gap:13px}
.nudge-index{font-family:var(--font-mono);font-size:11px;font-weight:700;min-width:42px;height:33px;border:1px solid currentColor;border-radius:6px;display:grid;place-items:center}
.nudge-copy strong{font-size:13px;line-height:19px}
.nudge-copy p{margin-top:2px;font-size:11px;line-height:18px;color:inherit;opacity:.78}
.signup-nudge>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.signup-nudge small{font-size:9px;color:var(--muted)}
.professional-panel{margin:19px 27px;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.panel-head{padding:17px 19px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:#fbfbfa}
.panel-head h2{font-size:18px;line-height:25px;margin-top:2px}
.audit-grid{display:grid;grid-template-columns:1fr 1fr}
.audit-table,.metric-grid{padding:17px 19px}
.audit-table{border-right:1px solid var(--border)}
.audit-line{display:grid;grid-template-columns:1fr auto;gap:9px;margin-bottom:11px}
.audit-line:last-child{margin-bottom:0}
.audit-line span{font-size:11px;color:var(--ink-2)}
.audit-line strong{font-family:var(--font-mono);font-size:11px}
.audit-line i{grid-column:1/-1;height:3px;background:#e6e8eb;border-radius:99px;overflow:hidden}
.audit-line i b{display:block;height:100%;background:var(--blue)}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.metric-grid article{padding:9px;border:1px solid var(--border);border-radius:7px}
.metric-grid span{display:block;font-size:9px;color:var(--muted)}
.metric-grid strong{font-family:var(--font-mono);font-size:13px}
.deduction-list{border-top:1px solid var(--border)}
.deduction-item{display:grid;grid-template-columns:38px 88px 1fr;gap:11px;padding:11px 19px;border-bottom:1px solid var(--border);align-items:start}
.deduction-item:last-child{border-bottom:0}
.deduction-item b{font-family:var(--font-mono);font-size:10px;color:var(--red)}
.deduction-item span{font-size:10px;color:var(--muted)}
.deduction-item p{font-size:11px;line-height:18px}
.professional-panel>.inline-link{margin:13px 19px 17px}
.memo-footer{margin:19px 27px 27px;padding:15px 17px;border-left:3px solid var(--blue);background:var(--surface-subtle);display:flex;flex-direction:column;gap:2px}
.memo-footer strong{font-size:12px;line-height:19px}
.memo-footer span,.memo-footer small{font-size:11px;line-height:18px;color:var(--muted)}

/* Evidence and support sections */
.content-shell{max-width:1160px;margin:0 auto;padding:0 24px}
.evidence-band{border-top:1px solid #2d3239;border-bottom:1px solid #2d3239;background:#1b1f25;color:#fff}
.evidence-band-inner{min-height:174px;display:grid;grid-template-columns:1.45fr .55fr;gap:52px;align-items:center;padding-top:30px;padding-bottom:30px}
.evidence-band .overline{color:#8fb8ff}
.evidence-band h2{max-width:780px;font-size:25px;line-height:34px;letter-spacing:-.026em}
.evidence-band-copy p{font-size:13px;line-height:21px;color:#c4c9d0}
.evidence-band .inline-link{margin-top:11px;color:#9fc2ff}
.method-section,.plans-section,.business-workflow,.faq-section{padding:76px 0;border-top:1px solid var(--border)}
.section-heading{max-width:640px}
.section-heading h2{margin-top:5px}
.section-heading>p:not(.overline){margin-top:7px}
.method-grid{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.method-grid article{padding:23px;border-right:1px solid var(--border)}
.method-grid article:last-child{border-right:0}
.method-grid article>span{font-family:var(--font-mono);font-size:10px;color:var(--blue)}
.method-grid h3{margin-top:16px}
.method-grid p{margin-top:5px;font-size:12px;line-height:20px;color:var(--muted)}

/* Pricing */
.plans-section{background:#eef0f2}
.plans-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.billing-toggle{display:flex;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);padding:3px;gap:3px}
.billing-toggle button{border:0;background:transparent;border-radius:5px;min-width:86px;height:36px;padding:0 10px;font-size:11px;font-weight:650;color:var(--ink-2)}
.billing-toggle button.active{background:var(--ink);color:#fff}
.billing-toggle small{display:block;font-size:8px;line-height:9px}
.plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:30px}
.plan-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:21px;display:flex;flex-direction:column;min-height:430px}
.featured-plan{border-color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}
.business-card{border-color:#aeb4bc}
.recommended-badge{position:absolute;left:16px;top:-12px;display:inline-flex;align-items:center;height:23px;padding:0 9px;border-radius:999px;background:var(--blue);color:#fff;font-size:9px;line-height:14px;font-weight:700;box-shadow:0 3px 10px rgba(21,93,204,.2)}
.plan-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.plan-card header>div:first-child{display:flex;flex-direction:column}
.plan-card header span{font-family:var(--font-en);font-size:12px;font-weight:700}
.plan-card header small{font-size:9px;line-height:15px;color:var(--muted)}
.dual-price{display:flex!important;flex-direction:column!important;align-items:flex-end;min-width:96px;text-align:right}
.dual-price>strong{font-family:var(--font-en);font-size:20px;line-height:23px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.dual-price>strong b{font-weight:700}
.dual-price>strong small{font-size:9px;line-height:13px;margin-left:2px}
.dual-price>small{margin-top:3px;font-family:var(--font-en);font-size:8px!important;line-height:13px!important;color:var(--muted)}
.plan-card h3{margin-top:23px;font-size:16px;line-height:23px}
.plan-card ul{list-style:none;padding:0;margin:17px 0 23px;display:flex;flex-direction:column;gap:8px;flex:1}
.plan-card li{font-size:12px;line-height:19px;color:var(--ink-2);padding-left:17px;position:relative}
.plan-card li::before{content:"✓";position:absolute;left:0;color:var(--blue);font-weight:700}
.trial-line{margin-top:13px;padding:8px 9px;border-radius:6px;background:var(--surface-subtle);display:flex;justify-content:space-between;gap:8px;font-size:9px;line-height:15px}
.trial-line b{color:var(--blue)}
.trial-line span{color:var(--muted);text-align:right}
.credit-market{margin-top:22px;padding:21px;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.credit-market-copy h3{margin-top:4px;font-size:17px}
.credit-market-copy>p:not(.overline){margin-top:5px;max-width:610px;font-size:12px;line-height:20px;color:var(--muted)}
.credit-packs{display:flex;gap:8px}
.credit-packs button{min-width:116px;border:1px solid var(--border);border-radius:8px;background:#fbfbfa;padding:11px 10px;text-align:left;transition:border-color .14s ease,background .14s ease}
.credit-packs button:hover{border-color:var(--blue);background:var(--blue-soft)}
.credit-packs strong{font-family:var(--font-en);font-size:19px;line-height:22px}
.credit-packs span{margin-left:2px;font-size:9px;color:var(--muted)}
.credit-packs small{display:block;margin-top:4px;font-size:8px;line-height:13px;color:var(--muted)}
.pricing-note{text-align:center;margin-top:14px;font-size:10px;line-height:16px;color:var(--muted)}

/* Business, FAQ, footer */
.two-column-section{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:start}
.workflow-board{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.workflow-board>div{display:grid;grid-template-columns:40px 150px 1fr;align-items:center;gap:12px;padding:17px 19px;border-bottom:1px solid var(--border)}
.workflow-board>div:last-child{border-bottom:0}
.workflow-board span{font-family:var(--font-mono);font-size:10px;color:var(--blue)}
.workflow-board strong{font-size:12px}
.workflow-board p{font-size:11px;line-height:18px;color:var(--muted)}
.faq-list{margin-top:27px;max-width:820px;border-top:1px solid var(--border)}
.faq-list details{border-bottom:1px solid var(--border);padding:0}
.faq-list summary{list-style:none;padding:17px 0;font-size:13px;line-height:21px;font-weight:650;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";float:right;color:var(--muted)}
.faq-list details[open] summary::after{content:"−"}
.faq-list p{padding:0 0 19px;max-width:700px;font-size:12px;line-height:21px;color:var(--muted)}
.site-footer{border-top:1px solid var(--border);padding:23px 0;background:var(--surface)}
.footer-inner{display:flex;align-items:center;gap:22px}
.footer-brand{margin-right:auto}
.footer-inner nav{display:flex;gap:14px}
.footer-inner nav button{border:0;background:transparent;padding:0;font-size:10px;color:var(--muted)}
.footer-inner>small{font-family:var(--font-mono);font-size:9px;color:var(--muted)}

/* Modals */
.modal-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,17,20,.58);backdrop-filter:blur(2px)}
/* `overflow:auto` 인 모달 안에서 끝까지 스크롤하면 뒤 페이지가 따라 움직인다.
   `overscroll-behavior:contain` 이 그 연쇄를 끊는다.
   **`outline:0` 은 뺐다** — 모달을 열 때 포커스가 실제로 옮겨 가므로(app.js
   `openModal`) 그 자리에 포커스 링이 보여야 한다. */
.modal{position:relative;z-index:1;width:min(460px,100%);max-height:min(88vh,900px);overflow:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid rgba(255,255,255,.4);border-radius:12px;box-shadow:var(--shadow-float);padding:27px}
.wide-modal{width:min(760px,100%)}
.xl-modal{width:min(980px,100%)}
.modal-close{position:absolute;right:13px;top:13px;width:44px;height:44px;border:0;border-radius:6px;background:var(--surface-subtle);font-size:20px;line-height:1;color:var(--ink-2)}
.modal h2{margin-top:5px}
.modal>p:not(.overline),.plan-modal-copy>p:not(.overline){margin-top:7px;font-size:13px;line-height:21px;color:var(--muted)}
.auth-tabs,.plan-switch,.billing-switch,.currency-switch{display:flex;gap:4px;margin:19px 0 15px;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--surface-subtle)}
.auth-tabs button,.plan-switch button,.billing-switch button,.currency-switch button{flex:1;min-height:38px;border:0;border-radius:5px;background:transparent;font-size:11px;font-weight:650;color:var(--ink-2)}
.auth-tabs button.active,.plan-switch button.active,.billing-switch button.active,.currency-switch button.active{background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.08);color:var(--ink)}
.auth-form,.modal form{display:flex;flex-direction:column;gap:13px}
.modal-note{font-size:10px!important;text-align:center}
.plan-modal-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:30px}
.plan-switch button{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 9px;gap:7px}
.plan-switch button strong{font-family:var(--font-en);font-size:11px}
.plan-switch button em{position:absolute;right:5px;top:-10px;border-radius:999px;padding:1px 5px;background:var(--blue);color:#fff;font-size:7px;line-height:12px;font-style:normal}
.billing-switch button small{font-size:8px;color:var(--blue);margin-left:4px}
.currency-switch{margin-top:-7px}
.selected-plan-features{margin-top:17px;border-top:1px solid var(--border)}
.selected-plan-features p{display:flex;justify-content:space-between;gap:16px;margin:0;padding:10px 0;border-bottom:1px solid var(--border);font-size:11px}
.selected-plan-features span{color:var(--muted)}
.checkout-card{border:1px solid var(--border-strong);border-radius:10px;padding:19px;background:#fbfbfa}
.checkout-head{display:flex;justify-content:space-between;align-items:center}
.checkout-head span{font-family:var(--font-en);font-size:13px;font-weight:700}
.checkout-head b{font-size:10px;color:var(--blue)}
.checkout-price{margin-top:22px}
.checkout-price small{display:block;font-size:10px;color:var(--muted)}
.checkout-price strong{font-family:var(--font-en);font-size:40px;line-height:46px;letter-spacing:-.04em}
.checkout-next,.checkout-provider{display:flex;justify-content:space-between;gap:15px;margin:15px 0;padding:11px 0;border-top:1px solid var(--border);font-size:11px}
.checkout-provider{margin-top:-15px;border-top:0;border-bottom:1px solid var(--border)}
.checkout-provider span{color:var(--muted)}
.business-setup{display:flex;flex-direction:column;gap:11px;margin-bottom:13px}
.business-setup .field input+input{margin-top:7px}
.checkout-card>small,.credit-modal>small{display:block;margin-top:8px;font-size:9px;line-height:15px;color:var(--muted)}
.checkout-legal{font-size:9px!important;line-height:15px!important}
.credit-modal{width:min(600px,100%)}
.credit-modal-packs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:19px 0 15px}
.credit-modal-packs button{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:13px;text-align:left}
.credit-modal-packs button.active{border-color:var(--blue);background:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--blue)}
.credit-modal-packs strong{font-family:var(--font-en);font-size:23px;line-height:26px}
.credit-modal-packs span{font-size:10px;color:var(--muted);margin-left:3px}
.credit-modal-packs small{display:block;margin-top:6px;font-size:10px;color:var(--ink-2)}
.credit-modal .currency-switch{margin:0 0 14px}
.compare-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:21px 0}
.compare-titles,.compare-thumbs{display:flex;flex-direction:column;gap:8px}
.compare-titles h3,.compare-thumbs h3{margin-bottom:4px}
.compare-titles input{height:43px;border:1px solid var(--border);border-radius:7px;padding:0 11px}
.compare-thumbs label{position:relative;height:53px;border:1px dashed var(--border-strong);border-radius:7px;display:grid;place-items:center;color:var(--muted)}
.compare-thumbs input{position:absolute;inset:0;opacity:0;cursor:pointer}
#compareResults{margin-top:19px}
.matrix-table{width:100%;border-collapse:collapse;font-size:11px}
.matrix-table th,.matrix-table td{padding:9px;border:1px solid var(--border);text-align:center}
.matrix-table td.best{background:#eaf7ef;color:var(--green);font-weight:700}
.comparison-recommendation{margin-top:13px;padding:13px;border-left:3px solid var(--blue);background:var(--surface-subtle);font-size:11px;line-height:19px}
.history-list{margin:19px 0}
.history-item{display:grid;grid-template-columns:50px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}
.history-item>strong{font-family:var(--font-en);font-size:19px}
.history-item div{min-width:0}
.history-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.history-item small{font-size:9px;color:var(--muted)}
.team-summary{margin:17px 0;padding:13px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle);font-size:11px;line-height:19px}
.account-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:13px}
.account-action{padding:13px;border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;gap:15px;align-items:center}
.account-action p{font-size:10px;line-height:16px;color:var(--muted)}
.team-head{display:flex;justify-content:space-between;align-items:flex-start}
.team-head>span{font-family:var(--font-mono);font-size:10px;padding:4px 7px;border:1px solid var(--border);border-radius:5px}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.member-list{margin-top:9px;border-top:1px solid var(--border)}
.member-item{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--border);font-size:11px}
.invite-result{margin-top:11px;padding:9px;background:var(--surface-subtle);border-radius:6px;font-family:var(--font-mono);font-size:9px;word-break:break-all}
#contentModalBody h2{margin-bottom:11px}
#contentModalBody h3{margin:21px 0 5px}
#contentModalBody p,#contentModalBody li{font-size:12px;line-height:21px;color:var(--ink-2)}
#contentModalBody ul{padding-left:19px}
.toast{position:fixed;left:50%;bottom:calc(23px + env(safe-area-inset-bottom,0px));z-index:200;transform:translateX(-50%);max-width:min(92vw,540px);padding:10px 13px;border-radius:7px;background:#1e2228;color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.24);font-size:11px;line-height:17px;text-align:center}
.loading-dot::after{content:"";display:inline-block;width:12px;text-align:left;animation:dots 1.2s steps(4,end) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Responsive */
@media(max-width:1120px){
  .plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plan-card{min-height:390px}
  .credit-market{grid-template-columns:1fr}
  .credit-packs{justify-content:flex-start}
}
@media(max-width:900px){
  .top-nav{display:none}
  .header-inner{gap:12px}
  .header-actions{margin-left:auto}
  .quota-chip{display:none}
  .header-link{min-height:44px;padding:8px 6px}
  .asset-grid{grid-template-columns:1fr}
  .asset-panel+ .asset-panel{border-left:0;border-top:1px solid var(--border)}
  .tool-heading{align-items:flex-start}
  .memo-grid{grid-template-columns:1fr}
  .memo-item:nth-child(odd){border-right:0}
  .component-row{grid-template-columns:1fr}
  .component-row>div{border-right:0;border-bottom:1px solid var(--border)}
  .component-row>div:last-child{border-bottom:0}
  .review-control{align-items:flex-start;flex-direction:column}
  .evidence-band-inner{grid-template-columns:1fr;gap:16px}
  .method-grid{grid-template-columns:1fr}
  .method-grid article{border-right:0;border-bottom:1px solid var(--border)}
  .method-grid article:last-child{border-bottom:0}
  .plans-head{align-items:flex-start;flex-direction:column}
  .two-column-section{grid-template-columns:1fr;gap:31px}
  .plan-modal-layout,.team-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  body{font-size:14px;line-height:1.58}
  h1{font-size:27px;line-height:35px}
  h2{font-size:22px;line-height:30px}
  .site-header{height:auto;min-height:56px}
  .header-inner{flex-wrap:wrap;gap:4px 10px;padding-top:6px;padding-bottom:6px}
  .header-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px}
  .header-inner{padding:0 13px}
  .brand-symbol{width:24px;height:24px}
  .brand-word{font-size:12px}
  .language-control select{height:32px;font-size:10px;padding-left:7px}
  .button-small{min-height:32px;padding:5px 8px}
  .tool-section{padding:22px 11px 38px}
  .tool-heading{display:block;margin-bottom:13px}
  .tool-heading .tool-description{margin-top:4px;font-size:13px;line-height:20px}
  .input-progress{display:inline-flex;margin-top:10px;padding:6px 8px}
  .analysis-workbench{border-radius:10px}
  .block-heading{display:block;padding:14px 14px 11px}
  .block-heading>div{gap:8px}
  .block-heading>p{margin-top:3px;text-align:left;font-size:11px;line-height:17px}
  .asset-panel{padding:14px}
  .asset-heading{min-height:auto;margin-bottom:9px}
  .asset-heading h3{font-size:14px}
  .upload-placeholder{padding:13px}
  .upload-icon{width:36px;height:36px;margin-bottom:8px}
  .upload-placeholder strong{font-size:13px}
  .upload-placeholder span:not(.upload-icon){font-size:10px;line-height:16px}
  .upload-placeholder small{margin-top:4px;font-size:9px}
  .title-input-wrap textarea{height:112px;font-size:16px;line-height:25px;padding:12px}
  .feed-preview{grid-template-columns:124px 1fr;margin-top:10px;padding:8px;gap:10px}
  .feed-copy b{font-size:11px;line-height:17px}
  .conditions-block .block-heading{padding-bottom:8px}
  .condition-grid{grid-template-columns:1fr;gap:10px;padding:0 14px 14px}
  .field select,.field input{height:44px;font-size:16px;padding:0 10px}
  .workbench-footer{padding:13px 14px;display:block}
  .privacy-copy{font-size:9px;line-height:15px;margin-bottom:9px}
  .submit-group{display:block}
  .analyze-button{width:100%;min-width:0;min-height:46px;font-size:14px}
  .submit-group p{text-align:center;max-width:none;margin-top:6px;font-size:9px}
  .results-section{padding:0 11px 45px}
  .memo-header{padding:19px 17px;display:block}
  .verdict-line{gap:11px}
  .memo-meta{margin-top:11px;justify-content:flex-start}
  .memo-item{padding:17px;min-height:auto}
  .memo-item p{font-size:14px;line-height:23px}
  .component-row>div{padding:13px 17px}
  .review-control,.result-actions{padding:13px 17px}
  .result-actions .button{width:100%}
  .signup-nudge,.pro-nudge{margin:13px 17px 0;padding:13px;display:block}
  .signup-nudge>div:last-child{align-items:stretch;margin-top:11px}
  .pro-nudge>.button{width:100%;margin-top:11px}
  .professional-panel{margin:13px 17px}
  .audit-grid{grid-template-columns:1fr}
  .audit-table{border-right:0;border-bottom:1px solid var(--border)}
  .deduction-item{grid-template-columns:32px 1fr;gap:7px}
  .deduction-item p{grid-column:1/-1}
  .memo-footer{margin:13px 17px 19px}
  .content-shell{padding:0 15px}
  .evidence-band-inner{min-height:0;padding-top:34px;padding-bottom:34px}
  .evidence-band h2{font-size:21px;line-height:29px}
  .method-section,.plans-section,.business-workflow,.faq-section{padding:52px 0}
  .billing-toggle{width:100%}
  .billing-toggle button{flex:1}
  .plan-grid{grid-template-columns:1fr}
  .plan-card{min-height:auto}
  .credit-market{padding:17px}
  .credit-packs{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;gap:6px}
  .credit-packs button{min-width:0;padding:9px 7px}
  .credit-packs strong{font-size:17px}
  .credit-packs small{font-size:7px;line-height:11px}
  .workflow-board>div{grid-template-columns:30px 1fr;gap:8px}
  .workflow-board p{grid-column:2}
  .footer-inner{flex-wrap:wrap}
  .footer-inner nav{order:3;width:100%;justify-content:space-between}
  .modal-layer{padding:9px;align-items:end}
  .modal{width:100%;max-height:92vh;border-radius:12px 12px 0 0;padding:21px 17px}
  .plan-modal-layout{gap:19px}
  .plan-switch{overflow-x:auto}
  .plan-switch button{min-width:112px}
  .credit-modal-packs{grid-template-columns:1fr}
  .compare-input-grid{grid-template-columns:1fr}
}


/* v6: clearer task hierarchy, evidence hook, and support */
.tool-heading{align-items:center;margin-bottom:16px}
.tool-heading>div:first-child{max-width:none}
.block-heading{align-items:center}
.block-heading>p,.asset-heading p,.tool-description{display:none}
.asset-heading{min-height:auto;margin-bottom:10px}
.conditions-block .block-heading{padding-bottom:9px}
.evidence-band-inner{grid-template-columns:1.05fr .95fr;gap:64px;min-height:190px}
.evidence-statline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(255,255,255,.16);border-radius:10px;overflow:hidden}
.evidence-statline>div{padding:22px 18px;border-right:1px solid rgba(255,255,255,.16)}
.evidence-statline>div:last-child{border-right:0}
.evidence-statline strong{display:block;font-family:var(--font-en);font-size:31px;line-height:36px;letter-spacing:-.045em;color:#fff;font-variant-numeric:tabular-nums}
.evidence-statline span{display:block;margin-top:4px;font-size:11px;line-height:17px;color:#bfc6cf}
.evidence-band-copy h2{font-size:23px;line-height:32px}
.trial-line.no-trial b{color:var(--ink-2)}
.support-panel{display:grid;gap:18px}
.support-address{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle)}
.support-address a{font-family:var(--font-en);font-size:15px;font-weight:700;color:var(--blue);word-break:break-all}
.support-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.support-links a{padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:12px;font-weight:650;color:var(--ink-2)}
.support-links a:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.support-response{font-size:11px!important;color:var(--muted)!important}
@media(max-width:900px){.evidence-band-inner{grid-template-columns:1fr;gap:22px}}
@media(max-width:640px){
  .tool-heading{margin-bottom:11px}
  .evidence-statline{grid-template-columns:1fr}
  .evidence-statline>div{padding:15px 16px;border-right:0;border-bottom:1px solid rgba(255,255,255,.16);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .evidence-statline>div:last-child{border-bottom:0}
  .evidence-statline strong{font-size:25px;line-height:30px}
  .evidence-statline span{margin-top:0;text-align:right}
  .support-address{display:block}
  .support-address a{display:block;margin-top:7px}
  .support-links{grid-template-columns:1fr}
}


/* v0.10.0: substantive scoring criteria */
.criteria-heading{max-width:920px}
.criteria-grid article>span{font-size:11px;font-weight:700;letter-spacing:.02em}
.criteria-grid h3{font-size:18px;line-height:25px}
.criteria-grid p{font-size:13px;line-height:22px;color:var(--ink-2)}
.criteria-note{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 15px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}
.criteria-note p{font-size:11px;line-height:18px;color:var(--muted)}
.method-lede{font-size:14px!important;line-height:23px!important;color:var(--ink)!important}
.method-scope{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 23px;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.method-scope>div{padding:13px 12px;border-right:1px solid var(--border);background:var(--surface-subtle)}
.method-scope>div:last-child{border-right:0}
.method-scope strong{display:block;font-family:var(--font-en);font-size:19px;line-height:24px;font-variant-numeric:tabular-nums}
.method-scope span{display:block;margin-top:3px;font-size:9px;line-height:14px;color:var(--muted)}
.criteria-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px}
.criteria-table{width:100%;min-width:650px;border-collapse:collapse}
.criteria-table th,.criteria-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}
.criteria-table tr:last-child td{border-bottom:0}
.criteria-table th{font-size:10px;line-height:15px;color:var(--muted);background:var(--surface-subtle);font-weight:700}
.criteria-table td{font-size:11px;line-height:18px;color:var(--ink-2)}
.criteria-table td:first-child{font-weight:750;color:var(--ink);white-space:nowrap}
.criteria-table td:nth-child(2){font-family:var(--font-en);font-weight:750;color:var(--blue);white-space:nowrap}
.criteria-table thead th{white-space:nowrap}
.method-steps{padding-left:19px;margin:7px 0 0}
.method-steps li{margin:5px 0}
.method-source-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.method-source-links a{padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:10px;font-weight:650;color:var(--blue);background:var(--surface)}
.method-status{margin-top:12px;padding:11px 12px;border-left:3px solid var(--blue);background:var(--surface-subtle);font-size:11px!important;line-height:19px!important}
@media(max-width:640px){
  .method-scope{grid-template-columns:1fr 1fr}
  .method-scope>div:nth-child(2){border-right:0}
  .method-scope>div:nth-child(-n+2){border-bottom:1px solid var(--border)}
}


/* v0.10 — social sign-in and benchmark disclosure */
.social-auth{display:grid;gap:8px;margin-top:20px}
.social-button{width:100%;min-height:46px;border-radius:7px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:650;letter-spacing:-.012em;cursor:pointer;transition:border-color .15s ease,transform .15s ease,filter .15s ease}
.social-button:hover{transform:translateY(-1px);filter:brightness(.985)}
.social-button:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 24%,transparent);outline-offset:2px}
.google-button{background:#fff;color:#202124;border-color:#dadce0}
.kakao-button{background:#fee500;color:#191919;border-color:#f0d800}
.naver-button{background:#03c75a;color:#fff;border-color:#03b952}
.social-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}
.social-icon svg{width:20px;height:20px;display:block}
.naver-icon{font-family:Arial,sans-serif;font-weight:900;font-size:15px;line-height:1}
.auth-divider{display:flex;align-items:center;gap:12px;margin:17px 0 0;color:var(--muted);font-size:11px}
.auth-divider::before,.auth-divider::after{content:"";height:1px;background:var(--border);flex:1}
.auth-tabs{margin-top:12px}
.pricing-note button{margin-left:6px}
.benchmark-average{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:14px 0;padding:14px;border:1px solid var(--blue);border-radius:8px;background:#eef5ff}
.benchmark-average span{font-size:11px;line-height:18px;color:var(--ink-2)}
.benchmark-average strong{font-family:var(--font-en);font-size:22px;line-height:1;font-variant-numeric:tabular-nums;color:var(--blue)}
.benchmark-source-list{display:grid;gap:8px;margin:16px 0}
.benchmark-source-list article{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}
.benchmark-source-list article strong{font-size:13px}
.benchmark-source-list article b{font-family:var(--font-en);font-size:15px;font-variant-numeric:tabular-nums}
.benchmark-source-list article small{grid-column:1/-1;color:var(--muted);font-size:10px;line-height:16px}
.benchmark-disclosure{padding:12px;border-left:3px solid var(--blue);background:#eef5ff;font-size:12px;line-height:20px}
.oauth-provider-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:var(--surface-subtle);font-size:9px;color:var(--muted);margin-left:6px}
.benchmark-source-list article>a{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none}
.benchmark-source-list article>a:hover strong{text-decoration:underline;text-underline-offset:3px}
.benchmark-source-list article>a span{font-size:10px;color:var(--blue)}

/* v0.11.0: concise pricing cards, shared trial, and contextual market reference */
.tool-heading{align-items:center}
.plan-card{min-height:395px}
.plan-card ul{gap:9px}
.plan-card li{font-size:12px;line-height:19px}
.featured-plan .recommended-badge{top:-11px}
.market-nudge{margin-top:16px;padding:14px 16px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle);display:flex;justify-content:space-between;align-items:center;gap:24px}
.market-nudge-values{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.market-nudge-values>div{display:flex;flex-direction:column;gap:2px}
.market-nudge-values span{font-size:9px;line-height:14px;color:var(--muted);font-weight:650}
.market-nudge-values strong{font-family:var(--font-en);font-size:18px;line-height:22px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.market-nudge-values i{font-style:normal;color:var(--muted)}
.market-nudge-copy{text-align:right}
.market-nudge-copy p{font-size:10px;line-height:16px;color:var(--muted)}
.market-nudge-copy .inline-link{margin-top:2px}
.trial-renew-consent{display:flex;align-items:flex-start;gap:9px;margin:0 0 12px;padding:10px 11px;border:1px solid var(--border);border-radius:7px;background:var(--surface-subtle);font-size:11px;line-height:17px;color:var(--ink-2);cursor:pointer}
.trial-renew-consent[hidden]{display:none}
.trial-renew-consent input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--blue);flex:0 0 auto}
@media(max-width:760px){
  .market-nudge{align-items:flex-start;flex-direction:column}
  .market-nudge-copy{text-align:left}
}
@media(max-width:640px){.plan-card{min-height:auto}}

/* v0.11.0 benchmark-average disclosure */
.benchmark-average{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
.benchmark-average>div{padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle);display:flex;flex-direction:column;gap:4px}
.benchmark-average span{font-size:11px;line-height:16px;color:var(--muted);font-weight:650}
.benchmark-average strong{font-family:var(--font-en);font-size:24px;line-height:28px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
@media(max-width:640px){.benchmark-average{grid-template-columns:1fr}}

/* v0.12.0 / v9 — OUTLIER 100 public identity, deterministic scan feedback, revision loop, localized pricing. */
.outlier100-brand{gap:10px}
.brand-lockup{display:flex;flex-direction:column;min-width:0;line-height:1}
.outlier100-brand .brand-word{font-size:15px;line-height:17px;letter-spacing:-.045em}
.outlier100-brand .brand-lockup>small{margin-top:2px;font-family:var(--font-mono);font-size:7px;line-height:9px;letter-spacing:.08em;color:var(--muted)}
.footer-brand .brand-lockup>small{font-size:6px}

.intent-chip{display:inline-flex;align-items:center;gap:7px;margin:-5px 0 12px;padding:5px 9px;border:1px solid #b9cff1;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:10px;line-height:15px;font-weight:700}
.revision-target{margin:0 0 12px;padding:10px 12px;border:1px solid #b9cff1;border-left:3px solid var(--blue);border-radius:8px;background:#f4f8ff;display:flex;align-items:center;gap:9px;color:var(--ink-2)}
.revision-target>span{font-family:var(--font-mono);font-size:14px;color:var(--blue)}
.revision-target strong{flex:1;font-size:11px;line-height:18px}
.revision-target button{width:26px;height:26px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:17px;line-height:1}
.revision-target button:hover{background:#e7eefb;color:var(--ink)}

.workbench-footer{display:grid;grid-template-columns:minmax(220px,1fr) minmax(250px,.9fr) auto;align-items:center}
.scan-status{min-width:260px;padding:8px 10px;border:1px solid #b9cff1;border-radius:8px;background:#f4f8ff}
.scan-status-head{display:flex;align-items:center;gap:8px}
.scan-status-head>span{font-family:var(--font-mono);font-size:9px;line-height:15px;color:var(--blue);font-weight:750}
.scan-status-head strong{font-size:10px;line-height:16px;color:var(--ink-2)}
.scan-track{height:4px;margin-top:6px;border-radius:99px;background:#dfe8f6;overflow:hidden}
.scan-track i{display:block;width:28%;height:100%;border-radius:inherit;background:var(--blue)}
.scan-status small{display:block;margin-top:5px;font-size:8px;line-height:13px;color:var(--muted)}
.analyze-button{position:relative;overflow:hidden;isolation:isolate;box-shadow:0 3px 0 #0b459c,0 8px 20px rgba(21,93,204,.18)}
.analyze-button::after{content:"";position:absolute;inset:-60%;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-60%);opacity:0}
.analyze-button.is-scanning::after{opacity:1;animation:outlier100ScanSheen 1.05s linear infinite}
.analyze-button:active{box-shadow:0 1px 0 #0b459c,0 4px 12px rgba(21,93,204,.14);transform:translateY(2px)}
@keyframes outlier100ScanSheen{to{transform:translateX(60%)}}

.revision-loop{padding:14px 27px;border-bottom:1px solid var(--border);background:#fbfbfa}
.revision-loop-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:10px}
.revision-loop-heading>div{display:flex;align-items:baseline;gap:10px}
.revision-loop-heading strong,.revision-loop-heading>b{font-size:10px;line-height:16px;color:var(--ink-2)}
.revision-loop-heading>b{font-family:var(--font-mono);color:var(--blue)}
.revision-loop ol{display:grid;grid-template-columns:repeat(3,1fr);padding:0;margin:0;list-style:none;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}
.revision-loop li{position:relative;display:flex;align-items:center;gap:8px;padding:9px 11px;border-right:1px solid var(--border);color:var(--muted)}
.revision-loop li:last-child{border-right:0}
.revision-loop li span{font-family:var(--font-mono);font-size:9px;color:inherit}
.revision-loop li strong{font-size:10px;line-height:16px}
.revision-loop li.active{background:var(--blue-soft);color:var(--blue)}
.revision-loop li.done{background:#eef8f2;color:var(--green)}

.locale-price,.trial-price-stack,.team-price-stack{display:flex;flex-direction:column;align-items:flex-end;min-width:128px;text-align:right}
.locale-price strong{font-family:var(--font-en);font-size:22px;line-height:25px}
.trial-price-stack>em,.team-price-stack>em{font-style:normal;font-family:var(--font-mono);font-size:7px;line-height:12px;letter-spacing:.05em;color:var(--muted)}
.trial-price-row{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;margin-top:3px;white-space:nowrap}
.trial-price-row s{font-family:var(--font-en);font-size:12px;line-height:18px;font-weight:650;color:var(--red);text-decoration-thickness:1.5px;text-decoration-color:var(--red)}
.trial-price-row strong{font-family:var(--font-en);font-size:25px;line-height:28px;letter-spacing:-.04em;color:var(--green)}
.direct-price-row strong,.team-price-stack>strong{display:block;margin-top:3px;font-family:var(--font-en);font-size:21px;line-height:25px;letter-spacing:-.035em}
.trial-price-stack>small,.team-price-stack>small{margin-top:3px;max-width:155px;font-size:8px!important;line-height:13px!important;color:var(--muted)}
.plan-card header>div:first-child{padding-top:2px}
.plan-card h3{margin-top:26px}
.business-card .team-price-stack>strong{font-size:18px}
.market-zero{color:var(--green)!important}
.currency-policy{margin-top:2px!important;font-size:9px!important}
.localized-currency-note{margin:-7px 0 15px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface-subtle);font-size:10px;line-height:16px;color:var(--muted)}
.checkout-benchmark{margin:12px 0;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}
.checkout-benchmark>span{display:block;font-size:9px;color:var(--muted)}
.checkout-benchmark>div{display:flex;align-items:center;gap:8px;margin-top:4px}
.checkout-benchmark b,.checkout-benchmark strong{font-family:var(--font-en);font-size:12px}
.checkout-benchmark strong{color:var(--blue)}
.checkout-benchmark button{margin-top:5px;border:0;background:transparent;padding:0;color:var(--blue);font-size:9px;text-decoration:underline;text-underline-offset:2px}

.patch-list{display:grid;gap:11px;margin-top:18px}
.patch-entry{padding:14px 15px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}
.patch-entry header{display:flex;justify-content:space-between;gap:16px}
.patch-entry header strong{font-size:12px}
.patch-entry header span{font-family:var(--font-mono);font-size:9px;color:var(--blue)}
.patch-entry ul{margin:8px 0 0;padding-left:18px}
.patch-entry li{margin:3px 0;font-size:11px;line-height:18px}
.patch-model-note{margin-top:15px;padding:11px 12px;border-left:3px solid var(--green);background:#eef8f2;font-size:11px;line-height:19px;color:var(--ink-2)}

@media(max-width:1000px){
  .workbench-footer{grid-template-columns:1fr auto}
  .privacy-copy{grid-column:1/-1;max-width:none}
  .scan-status{min-width:0}
  .trial-price-stack,.team-price-stack{min-width:115px}
}
@media(max-width:640px){
  .outlier100-brand .brand-lockup>small{display:none}
  .intent-chip{margin-top:-1px}
  .revision-target{margin-bottom:9px}
  .workbench-footer{display:block}
  .scan-status{margin:0 0 10px}
  .revision-loop{padding:12px 17px}
  .revision-loop-heading{display:block}
  .revision-loop-heading>b{display:block;margin-top:3px}
  .revision-loop ol{grid-template-columns:1fr}
  .revision-loop li{border-right:0;border-bottom:1px solid var(--border)}
  .revision-loop li:last-child{border-bottom:0}
  .plan-card header{gap:8px}
  .trial-price-stack,.team-price-stack{min-width:112px}
  .trial-price-row{gap:6px}
  .trial-price-row s{font-size:10px}
  .trial-price-row strong{font-size:22px}
  .changelog-card header{align-items:flex-start;flex-direction:column;gap:3px}
}
@media(prefers-reduced-motion:reduce){.analyze-button.is-scanning::after{animation:none;opacity:0}.scan-track i{transition:none}}


/* v0.12.1 / v9.1 — OUTLIER 100 identity, split team tiers, compact changelog access. */
.outlier100-brand{gap:9px}
.outlier100-brand .brand-word{font-size:15px;line-height:18px;letter-spacing:-.04em}
.consumer-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
.team-plan-section{margin-top:18px;padding:18px;border:1px solid var(--border-strong);border-radius:11px;background:rgba(255,255,255,.58)}
.team-plan-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:14px}
.team-plan-heading h3{margin-top:2px;font-size:18px;line-height:25px}
.team-plan-heading p:not(.overline){margin-top:3px;font-size:11px;line-height:18px;color:var(--muted)}
.team-plan-heading>span{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-family:var(--font-mono);font-size:8px;line-height:14px;color:var(--muted);white-space:nowrap}
.team-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.team-plan-grid .plan-card{min-height:336px}
.team-premium-card{border-color:#59616d;box-shadow:inset 0 3px 0 #313743}
.team-premium-badge{position:absolute;left:16px;top:-11px;display:inline-flex;align-items:center;height:23px;padding:0 9px;border-radius:999px;background:#313743;color:#fff;font-size:9px;line-height:14px;font-weight:700;box-shadow:0 3px 10px rgba(30,34,41,.18)}
.business-card .team-price-stack>strong{font-size:21px;white-space:nowrap}
.plan-switch.four-plans button{min-width:0}
.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.footer-changelog-link{border:0;background:transparent;padding:0;font-size:8px;line-height:13px;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.footer-changelog-link:hover{color:var(--blue)}
.footer-meta small{font-family:var(--font-mono);font-size:9px;color:var(--muted)}
@media(max-width:900px){
  .consumer-plan-grid{grid-template-columns:1fr 1fr;max-width:none}
  .consumer-plan-grid .featured-plan{grid-column:1/-1}
  .team-plan-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .consumer-plan-grid{grid-template-columns:1fr}
  .consumer-plan-grid .featured-plan{grid-column:auto}
  .team-plan-section{padding:14px}
  .team-plan-heading{display:block}
  .team-plan-heading>span{display:inline-flex;margin-top:8px}
  .plan-switch.four-plans button{min-width:116px}
  .footer-meta{order:4;width:100%;align-items:flex-start;flex-direction:row;justify-content:space-between}
}

/* v0.12.2 / v9.2 — wide-layout stability, cleaner checkout, compact benchmark disclosure. */
h1,h2,h3,.plan-card h3,.section-heading>p,.plan-modal-copy>p,.checkout-legal,.benchmark-disclosure{ text-wrap:balance; }
html[lang="ko"] h1,html[lang="ko"] h2,html[lang="ko"] h3,
html[lang="ja"] h1,html[lang="ja"] h2,html[lang="ja"] h3{word-break:keep-all;overflow-wrap:anywhere}
.plans-section .content-shell,.business-workflow .content-shell{max-width:1240px}
.plan-card header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px}
.plan-card header>div:first-child{min-width:0}
.plan-card h3{min-height:48px;word-break:keep-all;overflow-wrap:anywhere}
.plan-card li{word-break:keep-all;overflow-wrap:anywhere}
.trial-price-stack,.team-price-stack{min-width:154px}
.trial-price-stack>small,.team-price-stack>small{max-width:190px;text-wrap:pretty}
.market-nudge{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}
.market-nudge-values{display:grid;grid-template-columns:minmax(210px,1.3fr) auto minmax(160px,1fr) auto minmax(96px,.55fr);align-items:center;gap:14px}
.market-nudge-values>div{min-width:0}
.market-nudge-values span{word-break:keep-all;overflow-wrap:anywhere}
.market-nudge-copy{min-width:210px}
.market-nudge-copy p{max-width:260px;margin-left:auto;text-wrap:pretty}
#planModal{width:min(1080px,100%)}
.plan-modal-layout{grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);gap:34px;align-items:stretch}
.plan-modal-copy{min-width:0}
.plan-modal-copy>p:not(.overline){max-width:650px;text-wrap:pretty}
.plan-switch.four-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.plan-switch.four-plans button{min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:6px 10px;text-align:left}
.plan-switch.four-plans button span,.plan-switch.four-plans button strong{display:block;max-width:100%;white-space:nowrap;line-height:16px}
.plan-switch.four-plans button strong{margin-top:1px;font-size:10px}
.plan-switch.four-plans button em{right:6px;top:-9px}
.selected-plan-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.selected-plan-features p{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:12px;border-bottom:0;border-right:1px solid var(--border)}
.selected-plan-features p:last-child{border-right:0}
.selected-plan-features span,.selected-plan-features strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.checkout-card{min-width:0;height:100%;display:flex;flex-direction:column;padding:21px}
.checkout-head{gap:16px}
.checkout-head span,.checkout-head b{white-space:nowrap}
.checkout-next,.checkout-provider{display:grid;grid-template-columns:minmax(118px,.8fr) minmax(0,1.2fr);align-items:start;gap:18px}
.checkout-next strong,.checkout-provider strong{text-align:right;word-break:keep-all;overflow-wrap:anywhere}
.checkout-benchmark>span{line-height:15px;text-wrap:pretty}
.checkout-benchmark>div{justify-content:flex-start;flex-wrap:wrap}
.trial-renew-consent span{word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}
.checkout-legal{text-align:left;word-break:keep-all;overflow-wrap:anywhere}
.benchmark-average{display:none}
.benchmark-summary{margin:18px 0;padding:16px 18px;border:1px solid var(--blue);border-radius:9px;background:#eef5ff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px 18px}
.benchmark-summary span{font-size:11px;line-height:17px;color:var(--ink-2);font-weight:650;word-break:keep-all}
.benchmark-summary strong{font-family:var(--font-en);font-size:27px;line-height:31px;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}
.benchmark-summary small{grid-column:1/-1;font-size:9px;line-height:15px;color:var(--muted)}
.benchmark-source-list article{grid-template-columns:minmax(0,1fr) auto;align-items:start}
.benchmark-source-list article>a{min-width:0}
.benchmark-source-list article b{white-space:nowrap}
.support-panel{gap:14px}
.support-address{margin-top:2px}

@media(max-width:1180px){
  .plans-section .content-shell,.business-workflow .content-shell{max-width:1160px}
  .market-nudge{grid-template-columns:1fr}
  .market-nudge-copy{min-width:0;text-align:left}
  .market-nudge-copy p{max-width:none;margin-left:0}
  .plan-modal-layout{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:26px}
}
@media(max-width:900px){
  #planModal{width:min(760px,100%)}
  .plan-modal-layout{grid-template-columns:1fr;gap:22px}
  .checkout-card{height:auto}
  .market-nudge-values{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(86px,.6fr);width:100%}
}
@media(max-width:700px){
  .plan-card h3{min-height:0}
  .market-nudge-values{grid-template-columns:1fr;gap:8px}
  .market-nudge-values i{display:none}
  .market-nudge-values>div{padding-bottom:8px;border-bottom:1px solid var(--border)}
  .market-nudge-values>div:last-of-type{padding-bottom:0;border-bottom:0}
  .selected-plan-features{grid-template-columns:1fr}
  .selected-plan-features p{border-right:0;border-bottom:1px solid var(--border)}
  .selected-plan-features p:last-child{border-bottom:0}
  .checkout-next,.checkout-provider{grid-template-columns:1fr;gap:4px}
  .checkout-next strong,.checkout-provider strong{text-align:left}
}
@media(max-width:640px){
  .plan-switch.four-plans{display:flex;overflow-x:auto}
  .plan-switch.four-plans button{min-width:126px}
  .benchmark-summary{grid-template-columns:1fr;align-items:start}
  .benchmark-summary strong{font-size:24px}
}



/* v0.12.3 / v9.3 — confidence-free public result layout. */
.metric-grid article:last-child:nth-child(odd){grid-column:1/-1}

/* v0.13.0 / v9.4 — defect-first evidence hierarchy. */
.deduction-item{grid-template-columns:44px 78px 1fr;align-items:start}
.deduction-item>b{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 6px;border-radius:999px;background:#fff0f1;color:var(--red);font-variant-numeric:tabular-nums}
.deduction-item>span{display:flex;flex-direction:column;gap:3px}
.deduction-item>span::after{content:attr(data-severity);font-family:var(--font-mono);font-size:8px;line-height:12px;letter-spacing:.035em;text-transform:uppercase;color:var(--muted)}
.deduction-item[data-severity="critical"]{background:#fff7f7}
.deduction-item[data-severity="critical"]>b{background:#ffe6e8;color:#ad2029}
.deduction-item[data-severity="major"]{background:#fffdf7}
.deduction-item[data-severity="major"]>b{background:#fff2d6;color:#8a5600}
.deduction-item[data-severity="moderate"]>b{background:#eef4ff;color:var(--blue)}
@media(max-width:640px){.deduction-item{grid-template-columns:42px 1fr}.deduction-item>p{grid-column:1/-1}}

/* v9.6 transparent score reasons */
.deduction-item[data-severity="strength"] b{color:var(--green)}
.deduction-item[data-severity="strength"] span{color:var(--green)}

/* v0.13.4 / v9.8 — final copy cleanup: result footer is delta-only. */
.memo-footer.memo-delta{padding:11px 15px;border-left-width:2px}
.memo-footer.memo-delta small{color:var(--ink-2)}

/* v0.13.5 (BLOCKER-3) — Problems / Improvements / Checks-passed grouping.
   A clean candidate must still render a completed checklist, never an empty panel. */
.reason-group{border-bottom:1px solid var(--border)}
.reason-group:last-of-type{border-bottom:0}
.reason-group>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:15px 19px 0}
.reason-group>header h4{font-size:12px;line-height:19px;letter-spacing:-.01em}
.reason-group>header span{font-family:var(--font-mono);font-size:10px;color:var(--muted)}
.reason-hint{padding:2px 19px 9px;font-size:11px;line-height:18px;color:var(--muted)}
.reason-group[data-group="problems"]>header h4{color:var(--red)}
.deduction-item[data-severity="passed"]>b{background:var(--surface-subtle);color:var(--muted)}
.deduction-item[data-severity="passed"] p{color:var(--muted)}
.deduction-item[data-severity="passed"] span{color:var(--muted)}
.reason-runtime-note{padding:11px 19px 15px;font-size:11px;line-height:18px;color:var(--muted);border-top:1px solid var(--border)}

/* v0.13.6 — evidence chips and the revision loop.
   A finding shows its numbers so the reader can verify it; a rerun shows which
   named check moved so the fix is visible, not just the score. */
.finding-evidence{grid-column:3/-1;display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:7px;align-items:baseline}
.finding-evidence span{white-space:nowrap;font-family:var(--font-mono);font-size:10px;line-height:16px;padding:2px 7px;border:1px solid var(--border);border-radius:3px;color:var(--muted);background:var(--surface-subtle)}
.finding-evidence span b{font-family:inherit;font-weight:600;color:var(--ink);margin-right:4px}
.finding-evidence small{flex:1 1 100%;font-size:10px;line-height:16px;color:var(--muted)}
.finding-evidence i{flex:1 1 100%;font-style:normal;font-size:10px;color:var(--amber,#8a5600)}
.reason-corpus-note,.reason-repro-note{padding:9px 19px;font-size:11px;line-height:18px;color:var(--muted);border-top:1px solid var(--border)}
.reason-corpus-note code,.reason-repro-note code{font-family:var(--font-mono);font-size:10px;background:var(--surface-subtle);padding:1px 5px;border-radius:3px}
.revision-diff{margin:0 19px 15px;border:1px solid var(--border);border-radius:4px;background:var(--surface-subtle)}
.revision-diff>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 15px 8px}
.revision-diff>header h4{font-size:12px;line-height:19px}
.revision-diff>header span{font-family:var(--font-mono);font-size:10px;color:var(--muted)}
.loop-group{padding:0 15px 10px}
.loop-group h5{font-size:11px;line-height:18px;margin-bottom:3px}
.loop-group[data-kind="fixed"] h5{color:var(--green)}
.loop-group[data-kind="broke"] h5{color:var(--red)}
.loop-group ul{list-style:none;display:flex;flex-wrap:wrap;gap:5px}
.loop-group li{font-size:10px;line-height:16px;padding:2px 8px;border-radius:3px;border:1px solid var(--border);background:var(--surface)}
.loop-group[data-kind="fixed"] li::before{content:"✓ ";color:var(--green)}
.loop-group[data-kind="broke"] li::before{content:"! ";color:var(--red)}
.loop-empty{padding:0 15px 10px;font-size:11px;color:var(--muted)}
.revision-diff>footer{padding:8px 15px 11px;font-size:10px;font-family:var(--font-mono);color:var(--muted);border-top:1px solid var(--border)}

@media(max-width:640px){.finding-evidence{grid-column:1/-1}}

/* v0.13.7 — the technical line sits under the plain one, visually subordinate,
   so the verdict reads first and the terminology is available but not in the way. */
.finding-detail{grid-column:3/-1;margin-top:5px;font-size:11px;line-height:18px;color:var(--muted)}
.reason-locked-note{padding:11px 19px 14px;font-size:11px;line-height:18px;color:var(--muted);border-top:1px solid var(--border);background:var(--surface-subtle)}
.reason-locked-note b{display:block;color:var(--ink);margin-bottom:2px}
@media(max-width:640px){.finding-detail{grid-column:1/-1}}


/* v9.18 — 빠진 입력을 짚어줄 때의 강조. 토스트만으로는 어느 칸인지 알 수 없다. */
.needs-input{animation:needsInput 1.4s ease-out}
@keyframes needsInput{
  0%,100%{box-shadow:0 0 0 0 rgba(28,90,214,0)}
  15%,55%{box-shadow:0 0 0 3px rgba(28,90,214,.28)}
}
#analyzeButton[data-incomplete="true"]{opacity:.72}

/* v9.20 — 결과 계층화.
   첫 층은 「점수 · 판정 · 먼저 고칠 한 가지 · 고쳐야 할 항목」만 싣는다.
   나머지는 「세부 근거 보기」 아래로 내렸다. */
.memo-grid-primary{grid-template-columns:1fr}
.memo-grid-secondary{margin-bottom:18px}
.audit-passed{margin-bottom:18px}
.audit-passed:empty{display:none}

/* v9.21 — 상한 안내. 점수 바로 아래에서 「왜 이 숫자인가」를 답한다. */
.score-cap-note{margin:0 0 14px;padding:9px 14px;font-size:12px;line-height:19px;
  color:var(--ink);background:#fff6ed;border:1px solid #f0c9a3;border-radius:9px}
.score-cap-note[hidden]{display:none}
.audit-repro:empty{display:none}


/* ── 결과 화면 v1 — 총점 → 45/30/25 → 먼저 고칠 하나 → [자세히] ───────────── */
.component-row .of { font-size: .78em; opacity: .55; font-style: normal; margin-left: .15em; }
.criteria-detail { margin-top: 14px; }
.criteria-toggle {
  background: none; border: 1px solid currentColor; border-radius: 8px;
  padding: 7px 14px; font: inherit; font-size: .88em; cursor: pointer;
  opacity: .7;
}
.criteria-toggle:hover { opacity: 1; }
.criteria-body { margin-top: 14px; display: grid; gap: 16px; }
.criteria-axis > h4 { margin: 0 0 6px; font-size: .95em; display: flex;
  justify-content: space-between; align-items: baseline; }
.criteria-axis > h4 b { font-variant-numeric: tabular-nums; }
.criteria-axis ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.criteria-axis li { display: grid; grid-template-columns: 1fr auto;
  gap: 4px 12px; font-size: .88em; padding: 6px 0;
  border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
.criteria-axis li b { font-variant-numeric: tabular-nums; opacity: .85; }
.criteria-axis li .reason { grid-column: 1 / -1; opacity: .55; font-size: .92em;
  line-height: 1.5; }
.criteria-axis li[data-status="UNMEASURED"] b { opacity: .4; }
.criteria-axis li[data-first="true"] { font-weight: 600; }
.result-unmeasured { opacity: .75; font-size: .9em; margin-top: 10px; }

/* 판정 색 — view가 tone만 말하고, 색은 여기서 정한다. */
.verdict-block[data-tone="ok"] { color: #1a7f4b; border-color: rgba(26,127,75,.35); }
.verdict-block[data-tone="warn"] { color: #a86400; border-color: rgba(168,100,0,.35); }
.verdict-block[data-tone="bad"] { color: #b3261e; border-color: rgba(179,38,30,.35); }
.verdict-block[data-tone="unknown"] { color: #5b6270; border-color: rgba(91,98,112,.35); }

/* 손가락으로 누르는 것들은 최소 44px를 준다. 실측에서 「자세히 보기」가 95×35였다. */
.criteria-toggle { min-height: 44px; padding: 10px 18px; }
@media (max-width: 480px) {
  .criteria-detail { padding-inline: 0; }
  .criteria-toggle { width: 100%; }
  /* 조합축이 0점이면 막대가 사라져 「측정 안 됨」으로 읽힌다. 빈 칸을 보이게 둔다. */
  .component-row > div > i { background: rgba(15, 23, 42, .08); }
}

/* 2회차 — 총점 이동과 축 이동을 같이 보여준다. 「검사 받았다」가 아니라
   「내가 개선했다」로 읽히게 하는 것이 목적이다. */
.revision-diff .loop-score { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.revision-diff .loop-score + em { font-style: normal; opacity: .7; margin-left: .35rem; }
.revision-diff .loop-axis { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; gap: .3rem; }
.revision-diff .loop-axis li { display: flex; justify-content: space-between; align-items: baseline;
  padding: .4rem .6rem; border-radius: 8px; background: rgba(15, 23, 42, .04); }
.revision-diff .loop-axis li b { font-variant-numeric: tabular-nums; }
.revision-diff .loop-axis li[data-kind="fixed"] b { color: #1a7f4b; }
.revision-diff .loop-axis li[data-kind="broke"] b { color: #b3261e; }

/* 기록 — 과거 목록이 아니라 성장 기록으로 읽히게. */
.work-item { background: #fff; border: 1px solid rgba(15,23,42,.10); border-radius: 12px;
  padding: 16px; margin-bottom: 12px; }
.work-item header b { font-size: 1rem; }
.work-steps { list-style: none; margin: .7rem 0 0; padding: 0; display: grid; gap: .3rem; }
.work-steps li { display: flex; align-items: baseline; gap: .6rem;
  font-variant-numeric: tabular-nums; }
.work-steps li span { min-width: 3.2rem; color: #64748b; font-size: .85rem; }
.work-steps li b { font-size: 1.05rem; }
.work-steps li em { font-style: normal; font-size: .85rem; }
.work-steps li em[data-dir="up"] { color: #1a7f4b; }
.work-steps li em[data-dir="down"] { color: #b3261e; }
.work-steps li em[data-dir="flat"] { color: #94a3b8; }
.work-gain { display: inline-block; margin-top: .7rem; font-size: 1rem; }
.work-gain[data-dir="up"] { color: #1a7f4b; }
.work-gain[data-dir="down"] { color: #b3261e; }
.work-gain[data-dir="flat"] { color: #64748b; }
.work-resolved { list-style: none; margin: .6rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .35rem; }
.work-resolved li { font-size: .82rem; color: #1a7f4b; background: rgba(26,127,75,.08);
  border-radius: 999px; padding: .2rem .6rem; }
.work-resolved li::before { content: "✓ "; }
/* 점수가 오른 것은 해결이 아니다 — 초록 체크를 빌려 쓰지 않는다(↑ 중립색). */
.work-resolved[data-kind="raised"] li { color: var(--ink-2); background: var(--surface-subtle); }
.work-resolved[data-kind="raised"] li::before { content: "\2191 "; }
.work-list-head { margin: .7rem 0 0; font-size: .75rem; font-weight: 650;
  color: var(--muted); letter-spacing: .01em; }
.work-item footer { display: flex; gap: .5rem; margin-top: .9rem; flex-wrap: wrap; }
.work-item footer .button { min-height: 40px; }


/* 서버에 못 붙었을 때 — 조용히 다른 엔진으로 바꾸지 않고 **멈춘다.**
   예전에는 /api/session이 실패하면 브라우저 시뮬레이터로 자동 전환됐다.
   사용자는 다른 한도·구형 엔진·데모 결제를 진짜 서비스로 착각하게 된다. */
.server-down { max-width: 980px; margin: 0 auto 18px; padding: 16px 18px;
  border: 1px solid #7a3b3b; border-left-width: 4px; border-radius: 10px;
  background: #2a1a1a; color: #f0dede; }
.server-down[hidden] { display: none; }
.server-down strong { display: block; font-size: 16px; margin-bottom: 6px; }
.server-down p { margin: 0 0 10px; font-size: 14px; line-height: 1.6; color: #dcc4c4; }
.server-down button { font-size: 14px; padding: 8px 16px; border-radius: 8px; cursor: pointer;
  border: 1px solid #a05454; background: #3d2424; color: #f6e8e8; }

/* ═══════════════════════════════════════════════════════════════════════
   VIEW 6 보정 (2026-09-03 세현 확정) — docs/DESIGN.md §4·§9·§10·§13 참조

   세 가지를 고친다.
     ① 사용자가 **읽고 행동해야 하는** 정보에 12px 미만을 두지 않는다.
        판정 문장·행동 문장·재검사 결과 문장·버튼은 14px 이상.
        오버라인·순번·버전 같은 장식 라벨만 10~11px 로 남긴다.
     ② tone 색은 **테두리와 표식**에만 쓴다. 판정 라벨·문장은 기본 글자색이다.
        「지금 꼭 고칠 곳은 없습니다」를 오류 문구처럼 빨갛게 칠하지 않는다.
     ③ 손가락으로 누르는 것은 실제 클릭 영역 44px 이상.
   ═══════════════════════════════════════════════════════════════════════ */

/* ① 읽어야 하는 문장 ---------------------------------------------------- */
.verdict-block strong{font-size:14px;line-height:20px}
.verdict-block small{font-size:14px;line-height:1.45}
/* 축 이름과 분모는 점수를 읽는 데 필요한 정보다. */
.component-row>div>span{font-size:12px;line-height:18px}
.component-row .of{font-size:12px}
/* 「먼저 고칠 한 가지」·「더 다듬고 싶다면」은 행동의 확정성을 말한다. */
.priority-item>span{font-size:12px;line-height:18px}
/* 수정 루프의 회차·최고점·단계 이름 */
.revision-loop-heading strong,.revision-loop-heading b{font-size:12px;line-height:18px}
.revision-loop ol strong{font-size:12px;line-height:18px}
/* 재검사 결과 — 총점 변화 문장과 항목은 이 화면의 주인공이다. */
.revision-diff header em{font-size:14px;line-height:20px;font-style:normal}
.revision-diff footer{font-size:12px;line-height:18px}
.revision-diff .loop-empty{font-size:12px;line-height:18px}
.loop-group h5{font-size:12px;line-height:18px}
.loop-group li{font-size:12px;line-height:18px}
/* 항목 근거는 기술 진술이지만 읽으라고 두는 문장이다 — 12px 아래로 내리지 않는다. */
.criteria-axis li .reason{font-size:1em}

/* ② tone 색의 범위 ------------------------------------------------------ */
.verdict-block{border-color:var(--border-strong);color:var(--ink)}
.verdict-block strong{color:var(--ink)}
.verdict-block small{color:var(--ink-2)}
/* 표식(●/○)만 tone 색을 입는다. */
.verdict-block>span{color:var(--tone-mark,var(--muted))}
.verdict-block[data-tone="ok"]{--tone-mark:#1a7f4b;border-color:rgba(26,127,75,.55)}
.verdict-block[data-tone="warn"]{--tone-mark:#a86400;border-color:rgba(168,100,0,.55)}
.verdict-block[data-tone="bad"]{--tone-mark:#b3261e;border-color:rgba(179,38,30,.55)}
.verdict-block[data-tone="unknown"]{--tone-mark:#5b6270;border-color:rgba(91,98,112,.55)}

/* ③ 손가락 ------------------------------------------------------------- */
/* `.button-small` 을 함께 끌어올리지 않는다 — 그쪽은 눌리는 영역만 넓힌다. */
.button:not(.button-small){min-height:44px}
/* 작은 보조 버튼은 **보이는 높이는 그대로 두고 눌리는 영역만** 44px 로 넓힌다.
   시각 높이를 억지로 키우면 조밀한 툴 화면의 리듬이 깨진다. */
.button-small{position:relative}
.button-small::after{content:"";position:absolute;left:0;right:0;top:50%;
  transform:translateY(-50%);height:44px;min-height:100%}
button,a,summary,input,select,textarea,label,[role="button"]{touch-action:manipulation}

/* 키보드로 왔을 때만 보이는 본문 바로가기. 화면에는 줄을 더하지 않는다. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:300;padding:10px 14px;
  background:var(--ink);color:#fff;border-radius:0 0 var(--radius-sm) 0;
  font-size:14px;line-height:20px;font-weight:650}
.skip-link:focus{left:0}

/* 미측정 결과는 점수·행동·루프를 아예 그리지 않는다(app.js 가 hidden 을 건다).
   숨긴 자리에 빈 칸이 남지 않게 한다. */
.decision-memo[data-state="UNMEASURED"] .memo-grid-primary{border-top:1px solid var(--border)}
.loop-closing{margin:9px 0 0;font-size:12px;line-height:18px;color:var(--ink-2)}
.loop-closing[hidden]{display:none}

/* ── 재검사 보상 UX (커밋 B) ────────────────────────────────────────────
   순서가 계약이다: ① 직전 target 의 현재 상태 → ② 총점 변화 → ③ 항목 증감.
   ④ 다음으로 볼 한 가지는 이 블록 아래 행동 카드 하나뿐이다.
   v1 은 **점수 변화**만 말한다 — ✓/! 같은 품질 확정 표식 대신 ↑/↓ 를 쓴다. */
.loop-target{margin:0 15px 10px;padding:10px 12px;border:1px solid var(--border);
  border-radius:8px;background:var(--surface)}
.loop-target strong{display:block;font-size:14px;line-height:20px}
.loop-target span{display:block;margin-top:3px;font-size:12px;line-height:18px;color:var(--ink-2)}
/* 보조 한 줄 — 항목 점수의 오르내림, 또는 판단 보류의 이유.
   큰 문장(문제 상태)과 **다른 층**이므로 크기와 색을 낮춰 구분한다. */
.loop-target small{display:block;margin-top:3px;font-size:12px;line-height:18px;color:var(--ink-2)}
.loop-target[data-state="RESOLVED"]{border-color:rgba(20,124,74,.45)}
.loop-target[data-state="RESOLVED"] strong::after{content:" ✓";color:var(--green)}
.loop-total{margin:0 15px 10px;font-size:14px;line-height:20px}
.loop-total em{font-style:normal;font-size:14px;color:var(--ink-2)}
.loop-group[data-kind="raised"] h5{color:var(--green)}
.loop-group[data-kind="lowered"] h5{color:var(--red)}
.loop-group[data-kind="raised"] li::before{content:"↑ ";color:var(--green)}
.loop-group[data-kind="lowered"] li::before{content:"↓ ";color:var(--red)}
.revision-diff .loop-axis li[data-kind="raised"] b{color:#1a7f4b}
.revision-diff .loop-axis li[data-kind="lowered"] b{color:#b3261e}
.revision-diff>header{padding-bottom:6px}

/* ── 총점의 자리 (2026-09-19 세현 확정) ─────────────────────────────────────
   화면의 첫 질문이 「몇 점이지?」가 아니라 「그래서 뭘 고쳐야 하지?」가 되게 한다.

   바꾸는 것은 총점의 **이름·크기·위치·설명**뿐이다. 점수식·45/30/25·항목 점수·
   후보 선정·상태 판정·VIEW 8 은 그대로다. 같은 숫자가 다른 자리에 놓일 뿐이다.

   근거: 실채널 40편에서 총점과 실제 CTR 의 순위상관이 −0.277 이다. 62px 숫자를
   화면에서 가장 크게 두면 사용자는 그것을 영상 간 품질 등수로 읽는데, 우리는
   그 읽기를 지지할 자료를 갖고 있지 않다(PERFORMANCE_VALIDATION_FINDINGS.md 결정 4).

   위계는 검사 차수에 따라 다르다 — 주인공이 다르기 때문이다.
     첫 검사 (`lead`)      지금 확인된 문제·상태가 가장 큰 문장. 총점은 그 아래.
     재검사  (`recheck`)   주인공은 「수정 결과」. 현재 판정은 그 아래 행동 자리로
                           내려간다 — 헤더로 올리면 새 문제가 「이전 문제를
                           해결했어요」보다 위에 먼저 나온다.
     미측정  (`unmeasured`) 점수 자리는 「—」로 남기되 설명 한 줄은 붙이지 않는다.
                           없는 점수를 설명할 수는 없다. */
.memo-head-main{min-width:0;flex:1}
.score-line{display:flex;align-items:baseline;gap:8px;margin-top:16px;padding-top:12px;
  border-top:1px solid var(--border)}
.score-name{font-size:12px;line-height:18px;font-weight:700;color:var(--muted);letter-spacing:.03em}
.score-note{margin:6px 0 0;font-size:12px;line-height:19px;color:var(--muted);max-width:620px}

/* 첫 검사 — 상태 문장이 가장 큰 요소다.
   tone 은 여전히 **테두리와 표식**만 쓴다(§2·§9). 상자를 지우는 대신 왼쪽 선
   하나로 남겨, 45점 + 확정 행동 없음이 붉은 표시를 잃지 않게 한다. */
.memo-header[data-layout="lead"] .verdict-block,
.memo-header[data-layout="unmeasured"] .verdict-block{align-items:flex-start;gap:11px;
  padding:1px 0 1px 13px;border-width:0 0 0 3px;border-radius:0}
.memo-header[data-layout="lead"] #verdictIcon,
.memo-header[data-layout="unmeasured"] #verdictIcon{font-size:12px;line-height:35px}
.memo-header[data-layout="lead"] #verdictLabel,
.memo-header[data-layout="unmeasured"] #verdictLabel{font-size:26px;line-height:35px;letter-spacing:-.025em}
.memo-header[data-layout="lead"] #verdictHeadline,
.memo-header[data-layout="unmeasured"] #verdictHeadline{margin-top:3px}

/* 재검사 — 판정 블록을 세우지 않고, 그 사실 문장이 행동 카드 안에서 행동 위에 온다.
   행동문(15px)보다 작게 두어 「무엇이 그러한가 → 무엇을 할까」 순서가 읽히게 한다. */
.priority-item .state-fact{margin:0 0 6px;font-size:14px;line-height:22px;
  font-weight:500;color:var(--ink-2);letter-spacing:-.01em}
.priority-item .state-fact[hidden]{display:none}

/* 결과로 스크롤할 때 고정 헤더가 첫 문장을 덮지 않게 한다.
   `app.js` 가 분석이 끝나면 `#resultsSection` 을 `block:'start'` 로 올리는데,
   `.site-header` 는 sticky 62px(모바일 56px)이라 그대로 두면 카드의 맨 윗줄이
   헤더 아래로 들어간다. 예전에는 가려지는 것이 오버라인과 큰 숫자의 윗부분이었고,
   지금은 **그 자리가 상태 문장**이라 그냥 둘 수 없다. */
#resultsSection{scroll-margin-top:74px}

/* 미측정 — 설명할 점수가 없다. */
.memo-header[data-layout="unmeasured"] .score-note{display:none}

@media(max-width:640px){
  .memo-header[data-layout="lead"] #verdictLabel,
  .memo-header[data-layout="unmeasured"] #verdictLabel{font-size:22px;line-height:31px}
  .memo-header[data-layout="lead"] #verdictIcon,
  .memo-header[data-layout="unmeasured"] #verdictIcon{line-height:31px}
  /* 상태 문장 22px 과 같은 크기이면 위계가 서지 않는다. 축 점수 17px 보다는 크게. */
  .result-score{font-size:19px;line-height:24px}
  #resultsSection{scroll-margin-top:66px}
  .score-note{max-width:none}
}

/* 2026-09-23: one action first; supporting information opens on request. */
.workbench-footer{grid-template-columns:minmax(0,1fr) auto}
.scan-status{grid-column:1/-1;grid-row:1;min-width:0;padding:20px;background:var(--blue-soft);border-radius:10px}
.scan-status-head{gap:10px;flex-wrap:wrap}
.scan-status-head strong{font-size:15px;line-height:1.5;color:var(--ink)}
#scanElapsed{margin-left:auto;font-family:var(--font-en);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.scan-spinner{width:16px;height:16px;border:2px solid #c4d7f3;border-top-color:var(--blue);border-radius:50%;animation:scanSpin 1s linear infinite}
.scan-track{margin:12px 0 16px}
.scan-track i{animation:scanWait 2.4s ease-in-out infinite alternate}
.scan-tip-card .overline{font-size:12px;color:var(--muted)}
#scanTip{font-size:15px;line-height:1.6;min-height:48px;margin:4px 0 0;word-break:keep-all;overflow-wrap:anywhere}
.scan-tip-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}
.scan-tip-actions button{min-height:44px;padding:4px 0;background:none;border:0;font:inherit;font-size:13px;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.scan-tip-actions button+button{color:var(--muted)}
.scan-status[data-paused="true"] .scan-spinner,.scan-status[data-paused="true"] .scan-track i{animation-play-state:paused}
.scan-status[data-state="error"]{border-color:var(--border-strong);background:var(--surface-subtle)}
.scan-status[data-state="error"] .scan-track,.scan-status[data-state="error"] .scan-spinner,.scan-status[data-state="error"] #scanElapsed,.scan-status[data-state="error"] .scan-tip-card{display:none}
.memo-header{padding:20px 24px;gap:16px}
.memo-head-main{width:100%;min-width:0}
.score-note{font-size:12px;line-height:1.5;margin-top:4px;max-width:none}
.decision-memo .memo-grid-primary .memo-item{min-height:0;padding:20px 24px}
.priority-item>span{display:block;margin-bottom:6px}
.priority-item #resultFirstChange{font-size:17px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
.result-actions{padding:16px 24px;gap:8px}
.revision-diff{margin:16px 24px;border-radius:8px;overflow:hidden}
.revision-diff>header{padding:12px 16px 8px}
.revision-diff .loop-target{margin:0 16px 10px;padding:10px 12px}
.revision-diff .loop-target strong{font-size:18px;line-height:1.5}
.revision-diff .loop-total{margin:0 16px 12px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.loop-details{border-top:1px solid var(--border)}
.loop-details>summary{padding:12px 16px;min-height:44px;font-size:13px;color:var(--ink-2);cursor:pointer;line-height:1.6;overflow-wrap:anywhere}
.loop-details .loop-axis{margin:0 16px 12px}
.loop-details .loop-group{padding:0 16px 12px}
.loop-details .loop-group ul{margin:4px 0 0;padding:0}
.loop-details .loop-group h5{margin:0}
.result-details{border-top:1px solid var(--border)}
.result-details>.criteria-detail{margin:0;padding:20px 24px}
.result-details .criteria-body{margin-top:0}
.result-details .memo-meta{padding:0 24px 16px}
.result-details .professional-panel{margin:0;padding:20px 24px}
.result-details .revision-loop{padding:16px 24px}
.signup-nudge{margin:0 24px 20px;padding:12px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;gap:12px}
.signup-nudge .nudge-index,.signup-nudge small{display:none}
.signup-nudge .nudge-copy p{margin:0;font-size:13px;color:var(--muted);line-height:1.6}
.signup-nudge .button{background:transparent;color:var(--blue);border:0;box-shadow:none;white-space:nowrap}
.decision-memo [hidden]{display:none!important}
@keyframes scanSpin{to{transform:rotate(360deg)}}
@keyframes scanWait{from{transform:translateX(-30%)}to{transform:translateX(280%)}}
@media(max-width:640px){
  .workbench-footer{grid-template-columns:minmax(0,1fr);gap:12px}
  .scan-status{padding:16px}
  #scanTip{min-height:72px}
  .scan-status-head strong{font-size:14px;flex:1;min-width:140px}
  .memo-header,.decision-memo .memo-grid-primary .memo-item{padding:16px}
  .revision-diff{margin:12px 16px}
  .result-actions{padding:16px;display:flex;flex-wrap:wrap}
  .result-actions .button{flex:1 1 auto;width:auto;min-height:44px}
  .result-actions #reanalyzeButton{flex-basis:100%}
  .result-details>.criteria-detail,.result-details .professional-panel{padding:16px}
  .signup-nudge{margin:0 16px 16px;align-items:center;flex-direction:row;flex-wrap:wrap}
  .signup-nudge .nudge-copy{flex:1 1 160px}
  .signup-nudge>div:last-child{width:auto}
  .priority-item #resultFirstChange{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  .scan-spinner,.scan-track i{animation:none}
}

/* Studio layout · 2026-09-23. Quiet input canvas, one clear result, an openable report. */
:root{--canvas:#f5f4f0;--surface-subtle:#f5f5f2;--ink:#212624;--ink-2:#4b534f;--muted:#65706a;--border:#e0e3dd;--border-strong:#cbd1c9;--blue:#2357cf;--blue-soft:#edf2ff}
body{background:var(--canvas)}
.site-header{background:rgba(245,244,240,.97);border-bottom:1px solid var(--border)}
.header-inner{max-width:1184px}
.brand-word{letter-spacing:-.055em}
.quota-chip{font-size:12px;line-height:18px;min-height:40px;background:transparent;border-color:var(--border-strong)}
.header-actions select{min-height:40px;font-size:12px;background:transparent}
.header-actions{gap:10px}
.top-nav a,.top-nav button{font-size:13px}
.tool-section{padding:54px 32px 32px}
.tool-shell{max-width:1064px}
.tool-heading{margin-bottom:28px;align-items:flex-end}
.tool-heading .overline{font-size:12px;line-height:20px;letter-spacing:.02em;color:var(--ink-2)}
.tool-heading h1{font-size:40px;line-height:1.28;letter-spacing:-.055em;font-weight:750;text-wrap:balance;margin:8px 0 10px}
.tool-heading .tool-description{font-size:15px;line-height:24px;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}
.input-progress{padding:0 0 4px;gap:10px;background:transparent;border:0;border-radius:0}
.input-progress span{font-size:12px}
.input-progress strong{font-size:14px;color:var(--ink);letter-spacing:.02em}
.analysis-workbench{border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 32px -22px rgba(26,36,27,.25)}
.package-heading{padding:20px 28px 0;border:0}
.package-heading h2{font-size:13px;color:var(--muted);font-weight:600}
.asset-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:30px;padding:20px 28px 24px}
.asset-panel{padding:0}
.asset-panel+.asset-panel{border:0}
.asset-heading{min-height:0;margin:0 0 12px;align-items:center}
.asset-heading h3{font-size:14px;line-height:22px;font-weight:650}
.format-badge{font-size:12px;background:var(--surface-subtle);border:0}
.upload-zone{border-radius:12px;border-color:#bac3b7;background:#f2f4ee}
.upload-placeholder{padding:16px}
.upload-icon{width:44px;height:44px;border:0;border-radius:50%;background:#e5eadf;color:#4b6142;margin-bottom:12px}
.upload-placeholder strong{font-size:16px;line-height:24px}
.upload-placeholder small{font-size:12px;line-height:18px}
.image-toolbar{flex-wrap:wrap;gap:6px}
.image-toolbar span{font-size:12px;min-width:80px}
.image-toolbar button{font-size:12px;min-height:36px;padding:6px 9px}
.title-input-wrap{border-color:var(--border);border-radius:12px}
.title-input-wrap textarea{font-size:19px;line-height:1.55;height:132px;padding:16px 18px;font-weight:500}
.title-input-wrap textarea::placeholder{color:#7b827c;font-size:17px}
.title-meta{font-size:12px;line-height:18px;height:auto;min-height:34px;padding:7px 14px;gap:12px;background:#fafbf8}
.feed-preview{border:0;background:transparent;border-radius:0;margin-top:14px;padding:0;grid-template-columns:112px minmax(0,1fr);gap:14px}
.feed-thumb{border-radius:7px;background:#e8eae4}
.feed-copy b{font-size:13px;line-height:19px}
.feed-copy small{font-size:12px;line-height:18px;margin-top:5px}
.conditions-block{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:center;padding:20px 28px;background:#fafbf8}
.conditions-block .block-heading{padding:0;border:0}
.conditions-heading h2{font-size:14px;font-weight:600;line-height:22px}
.condition-grid{padding:0;gap:16px}
.field>span{font-size:12px;line-height:18px}
.field select{font-size:14px;min-height:44px;background:var(--surface)}
/* 카드를 닫는 한 줄이다. 왼쪽은 「이 도구가 내 파일을 어떻게 다루는가」,
   오른쪽은 「누르면 무슨 일이 일어나는가」. 둘을 같은 가운데선에 두면 두 문장이
   같은 무게로 읽히고, 버튼 덩어리만 아래로 늘어지지 않는다. */
.workbench-footer{padding:20px 28px;background:#fff;gap:16px 24px;border-top:1px solid var(--border);align-items:center}
.privacy-copy{max-width:340px;font-size:12px;line-height:19px;align-items:center;gap:8px}
.privacy-copy>.privacy-mark{display:inline-flex;align-items:center;flex:none;color:#9aa3ac}
.submit-group{align-items:flex-end}
.analyze-button{min-width:230px;min-height:48px;border-radius:9px;box-shadow:none;font-size:15px}
/* 횟수 안내는 버튼 폭에 갇히지 않는다. 「무료 회원은 하루 5회」가 다음 줄로
   넘어가면 한 문장이 두 조건처럼 읽힌다. 데스크톱에서는 한 줄로 고정한다. */
.submit-group p{font-size:12px;line-height:18px;margin-top:9px;max-width:none;white-space:nowrap}
.scan-status{border:1px solid #dbe4fb;background:#f5f8ff;border-radius:12px;padding:22px}
.scan-tip-card .overline{font-size:12px;letter-spacing:0}
#scanTip{min-height:0;max-width:700px;margin:8px 0;font-size:16px}
.scan-track{height:3px;background:#e1e9fc}
.scan-tip-actions{margin-top:0}
.results-section{padding:20px 32px 48px}
.decision-memo{border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 32px -22px rgba(26,36,27,.25);overflow:hidden}
.memo-header{padding:30px 32px 24px;background:#fff}
.memo-head-main{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;align-items:start}
.memo-head-main>.overline{grid-column:1;font-size:12px;line-height:20px;color:var(--muted);margin:0 0 14px;letter-spacing:.035em}
.verdict-line{grid-column:1;grid-row:2;margin:0}
.memo-header[data-layout="lead"] .verdict-block,.memo-header[data-layout="unmeasured"] .verdict-block{padding:0;border:0;gap:10px}
.memo-header[data-layout="lead"] #verdictLabel,.memo-header[data-layout="unmeasured"] #verdictLabel{font-size:28px;line-height:1.45;letter-spacing:-.045em;font-weight:700;word-break:keep-all;overflow-wrap:anywhere}
.memo-header[data-layout="lead"] #verdictIcon,.memo-header[data-layout="unmeasured"] #verdictIcon{font-size:10px;line-height:40px}
.score-line{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin:0;padding:0;border:0}
.score-name{font-size:12px;line-height:20px;letter-spacing:0;font-weight:500}
.result-score{font-family:var(--font-en);font-size:30px;line-height:38px;font-weight:650;letter-spacing:-.05em;white-space:nowrap}
.result-score small{font-size:13px;line-height:20px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:4px}
.score-note{grid-column:1/-1;font-size:12px;line-height:18px;margin:14px 0 0;color:var(--muted)}
.memo-header[data-layout="recheck"]{padding-bottom:16px;border-bottom:1px solid var(--border)}
.memo-header[data-layout="recheck"] .memo-head-main{align-items:center}
.memo-header[data-layout="recheck"] .overline{margin:0;grid-row:1}
.memo-header[data-layout="recheck"] .score-line{grid-row:1;flex-direction:row;align-items:baseline;gap:8px}
.memo-header[data-layout="recheck"] .result-score{font-size:22px;line-height:28px}
.memo-header[data-layout="recheck"] .score-note{display:none}
.decision-memo .memo-grid-primary{margin:0 32px;border:0;background:#f2f5ed;border-radius:10px}
.decision-memo .memo-grid-primary .memo-item{padding:18px 20px;border:0;background:transparent}
.priority-item>span{font-size:12px;color:#506344;margin-bottom:6px}
.priority-item #resultFirstChange{font-size:17px;line-height:27px;font-weight:550;letter-spacing:-.02em}
.priority-item .state-fact{font-size:13px;color:var(--muted);line-height:21px}
.decision-memo .result-actions{padding:20px 32px 28px;gap:10px;border:0}
.result-actions .button{border-radius:8px;min-height:44px;font-size:13px;box-shadow:none}
.result-actions #reanalyzeButton{background:var(--ink);color:#fff;padding-left:22px;padding-right:22px}
.result-actions #downloadReportButton{margin-left:auto;font-weight:500;color:var(--muted)}
.revision-diff{margin:22px 32px;background:transparent;border:1px solid var(--border);border-radius:12px}
.revision-diff>header{background:transparent;padding:16px 20px 8px}
.revision-diff .loop-target{margin:0 20px 14px;border:0;border-left:3px solid var(--border-strong);padding:2px 0 2px 14px;border-radius:0;background:transparent}
.revision-diff .loop-target[data-state="RESOLVED"]{border-left-color:var(--green)}
.revision-diff .loop-target strong{font-size:23px;line-height:32px;letter-spacing:-.03em}
.revision-diff .loop-target span,.revision-diff .loop-target small{font-size:13px;line-height:20px}
.revision-diff .loop-total{margin:0 20px 16px;font-variant-numeric:tabular-nums}
.loop-details>summary{padding:12px 20px;background:#fafbf8;font-size:13px}
.result-details{background:#fcfcfa}
.detail-intro{padding:28px 32px 4px}
.detail-intro .overline{font-size:12px;letter-spacing:.02em;color:var(--muted)}
.detail-intro h3{font-size:22px;line-height:32px;letter-spacing:-.035em;margin:6px 0}
.detail-intro>p:last-child{font-size:13px;line-height:21px;color:var(--muted)}
.component-row{padding:24px 32px;background:transparent;border:0;gap:20px}
.component-row>div{padding:0 20px 0 0;border-right:1px solid var(--border)}
.component-row>div:last-child{border-right:0;padding-right:0}
.component-row span{font-size:12px}
.component-row strong{font-size:20px}
.component-row i{height:3px;border-radius:0;background:#e4e7e0}
.component-row i b{background:var(--ink);border-radius:0}
.result-details .revision-loop{padding:16px 32px;border-top:1px solid var(--border);background:transparent}
.result-details .revision-loop ol{margin-top:10px}
.result-details>.criteria-detail{padding:24px 32px}
.criteria-body{display:block}
.criteria-axis{margin-bottom:28px}
.criteria-axis:last-child{margin-bottom:0}
.criteria-axis>h4{font-size:16px;line-height:24px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--border-strong)}
.criteria-axis>h4 b{font-size:14px;font-weight:600}
.criteria-axis ul{gap:0}
.criteria-axis li{padding:16px 0;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;font-size:14px;line-height:22px;align-items:baseline;font-weight:400}
.criterion-name{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-weight:650}
.criterion-name code{font-family:var(--font-mono);font-size:11px;color:var(--muted);font-weight:400}
.criteria-axis li .criterion-definition{grid-column:1/-1;font-size:13px;line-height:22px;color:var(--muted);font-weight:400;margin:0;max-width:760px}
.criteria-axis li .reason{opacity:1;font-size:13px;line-height:22px;color:var(--ink-2);padding:10px 14px;background:#f0f2ec;border-radius:6px;overflow-wrap:anywhere;font-weight:400}
.criteria-axis li .reason-label{display:block;font-size:12px;color:var(--muted);margin-bottom:2px;font-weight:600}
.criteria-axis li[data-first="true"] .criterion-name{color:#204a28}
.result-details .professional-panel{padding:24px 32px;border-top:1px solid var(--border);background:transparent}
.professional-panel .panel-head h2{font-size:20px;line-height:28px}
.professional-panel .panel-head .overline{font-size:12px}
.professional-panel .memo-grid-secondary{display:grid;grid-template-columns:1fr;gap:0;margin-top:16px;border:0}
.professional-panel .memo-item{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:14px 0;border:0;border-top:1px solid var(--border);background:transparent;min-height:0}
.professional-panel .memo-item>span{font-size:12px;line-height:22px}
.professional-panel .memo-item p{font-size:14px;line-height:24px;margin:0;font-weight:400}
.review-control{padding:16px 0;margin-top:8px;background:transparent;border:0}
.review-control button{min-height:40px;font-size:12px}
.result-details .memo-meta{padding:0 32px 24px;font-size:12px}
.signup-nudge{margin:0 32px 24px;align-items:center}
.signup-nudge strong{font-size:13px;line-height:20px}
.signup-nudge .nudge-copy p{font-size:12px}
.evidence-band{background:#e9ede3;color:var(--ink);padding:48px 32px;border:0}
.evidence-band-inner{max-width:1064px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center}
.evidence-band-copy{grid-column:1;grid-row:1}
.evidence-band-copy .overline{font-size:12px;line-height:20px;color:#51634a;letter-spacing:0}
.evidence-band-copy h2{font-size:28px;line-height:1.4;letter-spacing:-.045em;color:var(--ink);margin:10px 0}
.evidence-band-copy .evidence-explainer{font-size:14px;line-height:24px;color:var(--ink-2);margin-bottom:16px;word-break:keep-all;overflow-wrap:anywhere}
.evidence-band-copy .inline-link{font-size:13px;color:var(--ink);min-height:44px;text-underline-offset:5px}
.evidence-statline{grid-column:2;grid-row:1;border:0;border-radius:0;gap:20px}
.evidence-statline>div{padding:20px 0;border:0;border-top:1px solid #bac5b1;display:block}
.evidence-statline strong{font-size:30px;line-height:40px;color:var(--ink);letter-spacing:-.05em;display:flex;align-items:baseline;gap:3px}
.evidence-statline strong b{font-weight:inherit;font-family:inherit;letter-spacing:inherit}
/* 단위는 숫자에 붙되 숫자보다 작다 — 크기 위계는 숫자가 갖고, 단위는
   「무엇의 104인지」를 설명 줄까지 내려가지 않고 그 자리에서 말한다. */
.evidence-statline strong em{font-size:15px;line-height:24px;font-style:normal;font-weight:650;letter-spacing:-.01em;color:var(--ink-2)}
.evidence-statline span{font-size:12px;line-height:19px;color:var(--ink-2);margin-top:10px;word-break:keep-all;overflow-wrap:anywhere;text-align:left}
.method-section{padding:48px 32px;background:var(--canvas)}
.criteria-heading h2{font-size:26px;line-height:1.4;letter-spacing:-.04em}
.criteria-grid{gap:28px}
.criteria-grid article{padding:22px 0;border:0;border-top:1px solid var(--border-strong);border-radius:0;background:transparent}
.criteria-grid article>span{font-size:12px;color:var(--muted)}
.criteria-grid h3{font-size:17px;margin:12px 0 8px}
.criteria-grid p{font-size:14px;line-height:23px}
.social-button:disabled,.social-button:disabled:hover{background:#f0f1ee!important;color:#72786f!important;border-color:#dde1d8!important;filter:grayscale(1);cursor:not-allowed;transform:none;box-shadow:none}
.social-button:disabled .social-icon{opacity:.4}
.research-report{font-size:14px;line-height:1.8}
.research-report>h2{font-size:28px;line-height:1.35;letter-spacing:-.04em;margin-bottom:12px}
.research-report>p{color:var(--ink-2)}
.research-report h3{font-size:17px;line-height:26px;margin:28px 0 12px}
.research-sources{list-style:none;padding:0;margin:0;display:grid;gap:18px}
.research-sources li{padding-left:16px;border-left:2px solid var(--border-strong)}
.research-sources a{font-size:14px;font-weight:650;color:var(--ink);text-underline-offset:4px;overflow-wrap:anywhere}
.research-sources p{font-size:13px;line-height:22px;margin:5px 0;color:var(--ink-2)}
.research-sources small{font-size:12px;line-height:19px;color:var(--muted)}
.research-scope-note{padding:16px 18px;background:#f1f4ed;border-radius:8px;font-size:13px;line-height:23px;margin-top:24px}
.research-provisional{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.research-provisional summary{font-size:13px;min-height:44px;cursor:pointer;padding:8px 0}
.research-provisional p{font-size:13px;line-height:23px;color:var(--ink-2)}
@media(min-width:641px){
  .decision-memo[data-state="FINAL"]{animation:reportIn .22s ease-out}
}
@keyframes reportIn{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){
  .tool-heading h1{font-size:34px}
  .evidence-band-inner{grid-template-columns:minmax(0,1fr);gap:28px}
  .evidence-statline{grid-column:1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr))}
  .evidence-statline>div{display:block;border-right:0;border-bottom:0}
}
@media(max-width:640px){
  .header-inner{padding:0 16px;gap:8px}
  .header-actions{gap:6px}
  .quota-chip{font-size:12px;min-height:36px;padding:6px 8px}
  .header-actions select{font-size:12px;min-height:36px;max-width:82px}
  .tool-section{padding:30px 16px 20px}
  .tool-heading{display:block;margin-bottom:20px}
  .tool-heading h1{font-size:30px;line-height:1.35;max-width:310px;margin:8px 0 10px}
  .tool-heading .tool-description{font-size:14px;line-height:22px;max-width:320px}
  .input-progress{justify-content:flex-end;padding:0;margin-top:12px}
  .analysis-workbench,.decision-memo{border-radius:14px}
  .package-heading{padding:18px 18px 0}
  .asset-grid{grid-template-columns:1fr;gap:22px;padding:16px 18px 22px}
  .asset-panel+.asset-panel{border:0;padding:0}
  .upload-placeholder{padding:10px}
  .upload-icon{width:34px;height:34px;margin-bottom:6px}
  .upload-placeholder strong{font-size:14px;line-height:21px}
  .upload-placeholder small{margin-top:4px}
  .title-input-wrap textarea{font-size:16px;height:118px;padding:14px}
  .title-input-wrap textarea::placeholder{font-size:16px}
  .title-meta{font-size:12px;padding:7px 10px}
  .feed-preview{grid-template-columns:96px minmax(0,1fr);gap:12px}
  .conditions-block{display:block;padding:20px 18px}
  .conditions-block .block-heading{padding:0;margin-bottom:16px}
  .condition-grid{grid-template-columns:1fr 1fr;gap:12px;padding:0}
  .field select{font-size:13px;padding-left:10px;min-width:0}
  .workbench-footer{padding:20px 18px;display:flex;flex-direction:column;align-items:stretch;gap:14px}
  .workbench-footer .scan-status{order:-2}
  .submit-group{align-items:stretch;order:-1}
  .analyze-button{min-width:0;width:100%}
  /* 좁은 화면에서는 한 줄 고정이 오히려 화면 밖으로 밀어낸다. 줄바꿈을 허용한다. */
  .submit-group p{text-align:center;white-space:normal}
  .privacy-copy{max-width:none;font-size:12px;line-height:19px}
  .scan-status{padding:16px}
  #scanTip{font-size:14px;line-height:23px;min-height:0}
  .scan-status-head strong{font-size:14px}
  .results-section{padding:16px 16px 32px}
  .memo-header{padding:22px 20px}
  .memo-head-main{column-gap:16px}
  .memo-head-main>.overline{grid-column:1;grid-row:1;align-self:center;margin:0}
  .score-line{grid-row:1;gap:0}
  .score-name{font-size:12px;line-height:18px}
  .result-score{font-size:25px;line-height:31px}
  .verdict-line{grid-column:1/-1;grid-row:2;margin-top:20px}
  .memo-header[data-layout="lead"] #verdictLabel,.memo-header[data-layout="unmeasured"] #verdictLabel{font-size:23px;line-height:33px}
  .memo-header[data-layout="lead"] #verdictIcon,.memo-header[data-layout="unmeasured"] #verdictIcon{line-height:33px}
  .memo-header[data-layout="recheck"] .score-line{flex-direction:column;gap:0;align-items:flex-end}
  .decision-memo .memo-grid-primary{margin:0 20px;border-radius:8px}
  .decision-memo .memo-grid-primary .memo-item{padding:16px}
  .priority-item #resultFirstChange{font-size:16px;line-height:25px}
  .decision-memo .result-actions{padding:18px 20px 22px;gap:8px}
  .result-actions #reanalyzeButton{flex-basis:100%}
  .result-actions #detailsButton{flex:1 1 auto}
  .result-actions #downloadReportButton{margin:0;flex:0 1 auto;padding:8px}
  .revision-diff{margin:18px 20px}
  .revision-diff>header{padding:14px 16px 8px}
  .revision-diff .loop-target{margin:0 16px 12px;padding-left:12px}
  .revision-diff .loop-target strong{font-size:20px;line-height:29px}
  .revision-diff .loop-total{margin:0 16px 14px}
  .loop-details>summary{padding:12px 16px}
  .detail-intro{padding:24px 20px 0}
  .detail-intro h3{font-size:21px}
  .component-row{padding:24px 20px;gap:12px}
  .component-row>div{padding:0 12px 0 0}
  .component-row span{font-size:12px;line-height:19px;min-height:38px}
  .component-row strong{font-size:18px}
  .component-row .of{font-size:12px}
  .result-details .revision-loop{padding:16px 20px}
  .result-details>.criteria-detail,.result-details .professional-panel{padding:24px 20px}
  .criteria-axis>h4{font-size:15px}
  .criteria-axis li{gap:8px 12px;font-size:13px}
  .criteria-axis li .reason{padding:10px 12px}
  .professional-panel .memo-item{grid-template-columns:1fr;gap:6px}
  .result-details .memo-meta{padding:0 20px 20px}
  .signup-nudge{margin:0 20px 22px}
  .evidence-band{padding:36px 20px}
  .evidence-band-copy h2{font-size:25px}
  .evidence-band-inner{gap:20px}
  .evidence-statline{gap:14px}
  .evidence-statline>div{padding:14px 0}
  .evidence-statline strong{font-size:25px;line-height:33px}
  .evidence-statline strong em{font-size:13px;line-height:20px}
  .evidence-statline span{font-size:12px;line-height:19px;margin-top:8px}
  .method-section{padding:36px 20px}
  .criteria-heading h2{font-size:24px}
  .criteria-grid{gap:0}
  .criteria-grid article{padding:20px 0}
  .research-report>h2{font-size:24px}
}
@media(max-width:360px){
  .brand-word{font-size:13px}
  .brand-symbol{width:24px;height:24px}
  .header-inner{padding:0 12px}
  .header-actions select{max-width:70px}
  .quota-chip{font-size:12px;padding:4px 6px}
  .tool-heading h1{font-size:28px}
  .evidence-statline strong{font-size:23px}
  .evidence-statline strong em{font-size:12px;line-height:18px}
  .image-toolbar{left:5px;right:5px;bottom:5px}
  .image-toolbar span{flex-basis:100%;line-height:16px}
  .image-toolbar button{min-height:32px}
}
@media(prefers-reduced-motion:reduce){.decision-memo[data-state="FINAL"]{animation:none}}

#contentModalBody .research-report>h2{font-size:28px;line-height:1.4;letter-spacing:-.04em}
#contentModalBody .research-report h3{margin:28px 0 12px;font-size:17px;line-height:26px}
#contentModalBody .research-report>p{font-size:14px;line-height:24px}
#contentModalBody .research-report .research-scope-note{font-size:13px;line-height:23px}
#contentModalBody .research-report .criteria-table{font-size:13px;line-height:22px}
@media(max-width:640px){#contentModalBody .research-report>h2{font-size:24px}}
/* Keep the finding ahead of its supporting score in both reading order and scale. */
.tool-heading .tool-description{display:block}
.privacy-copy,.submit-group p,.feed-copy b,.feed-copy small{word-break:keep-all;overflow-wrap:anywhere}
html[lang="ja"] .tool-heading .tool-description,
html[lang="ja"] .evidence-band-copy .evidence-explainer,
html[lang="ja"] .evidence-statline span,
html[lang="ja"] .privacy-copy,
html[lang="ja"] .submit-group p,
html[lang="ja"] .feed-copy b,
html[lang="ja"] .feed-copy small{word-break:normal;line-break:strict}
.submit-group{flex-direction:column;gap:0;max-width:none}
.submit-group p{text-align:right}
.memo-header[data-layout="lead"] .memo-head-main{grid-template-columns:minmax(0,1fr)}
.memo-header[data-layout="lead"] .memo-head-main>.overline{grid-column:1;grid-row:1;margin-bottom:12px}
.memo-header[data-layout="lead"] .verdict-line{grid-column:1;grid-row:2;margin:0}
.memo-header[data-layout="lead"] .score-line{grid-column:1;grid-row:3;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:9px;margin-top:16px}
.memo-header[data-layout="lead"] .result-score{font-size:22px;line-height:28px}
.memo-header[data-layout="lead"] .score-note{grid-column:1;grid-row:4;margin-top:4px}
@media(max-width:640px){
  .submit-group{max-width:none}
  .submit-group p{text-align:center}
  .memo-header[data-layout="lead"] .result-score{font-size:20px;line-height:26px}
  .memo-header[data-layout="lead"] .score-line{margin-top:14px}
}

/* ==========================================================================
   2026-09-24 전체 화면 퇴고 — 한 페이지에 두 체계가 쌓여 있었다.

   실측(1280px, 첫 화면 아래 구역): 7px 4건 · 8px 10건 · 9px 15건 · 10px 13건 ·
   11px 7건. 첫 화면과 결과 카드는 2026-09-23 Studio 판으로 12px 바닥을 갖췄는데
   검사 기준·요금제·팀 플랜·크레딧·협업·FAQ·푸터는 옛 v9 눈금 그대로였다.
   같은 페이지에서 「12px 이하가 정상인 구역」과 「12px 이상이 정상인 구역」이
   갈리면 아래로 내려갈수록 제품이 다른 사람 손처럼 읽힌다.

   여기서 정하는 눈금(§4 하한을 구역 전체에 적용):
     읽는 문장 14 · 카드 안 보조 설명 13 · 의미 있는 메타 12 · 배지·순번 11
     10px 이하 0건
   ========================================================================== */

/* A. 구역 오버라인 — 첫 화면(12px)과 같게. 10px 은 같은 역할인데 혼자 작았다. */
.section-heading .overline,
.plans-head .overline,
.team-plan-heading .overline,
.credit-market-copy .overline,
.criteria-heading .overline{font-size:12px;line-height:20px;letter-spacing:.02em}

/* B. 읽는 문장 — 행동을 부르는 안내문은 14px 이상이다(§4). */
.criteria-note p{font-size:14px;line-height:23px}
.team-plan-heading p:not(.overline){font-size:14px;line-height:23px}

/* C. 카드 안 보조 설명 13px. */
.workflow-board p{font-size:13px;line-height:21px}
.credit-packs small{font-size:13px;line-height:19px}
.footer-inner nav button{font-size:13px;line-height:20px}
.billing-toggle button{font-size:13px;line-height:20px}

/* D. 의미 있는 메타 12px — 요금 조건·대상·출처·표본은 결제 판단에 쓰는 정보다.
      8~9px 로 두면 「읽지 말라」고 말하면서 그 값으로 결제하게 하는 화면이 된다. */
.plan-card header small,
.team-plan-grid .plan-card header small{font-size:12px;line-height:18px}
/* 앞 규칙이 `!important` 로 8px 을 박아 뒀다. 같은 무기로 푼다. */
.trial-price-stack>small,
.team-price-stack>small{font-size:12px!important;line-height:18px!important;max-width:210px}
.plan-card [data-plan-note]{font-size:12px;line-height:18px}
.market-nudge-values span{font-size:12px;line-height:18px}
.market-nudge-copy p{font-size:12px;line-height:19px}
.credit-packs span{font-size:12px;line-height:18px}
.footer-changelog-link{font-size:12px;line-height:18px}
.footer-meta small{font-size:12px;line-height:18px}

/* E. 배지·순번 11px — 장식 한도의 바닥. 그 아래로는 내려가지 않는다. */
.recommended-badge,
.team-premium-badge,
.team-plan-heading>span,
.trial-price-stack em,
.team-price-stack em,
.billing-toggle button small{font-size:11px;line-height:17px}
.recommended-badge{height:auto;padding:3px 9px}
.workflow-board span{font-size:11px;line-height:18px}

/* F. 미리보기 자리표시자 — 9px 에 대비 3.43:1 로 AA 미달이었다. */
#feedThumbPlaceholder{font-size:11px;line-height:16px;color:#5f665e}

/* G. 탭 타깃 44px — 보이는 높이는 그대로 두고 눌리는 영역만 넓힌다.
      `.button-small` 이 이미 쓰는 방법 그대로다(§8). 실측에서 헤더 내비 34px,
      요금 주기 토글 36px, 「검사 기준 자세히 보기」 19px, 푸터 링크 16px 였다. */
.top-nav a,.top-nav button,
.billing-toggle button,
.footer-inner nav button,
.footer-changelog-link,
.criteria-note .inline-link,
.brand{position:relative}
.top-nav a::after,.top-nav button::after,
.billing-toggle button::after,
.footer-inner nav button::after,
.footer-changelog-link::after,
.criteria-note .inline-link::after,
.brand::after{content:"";position:absolute;left:0;right:0;top:50%;
  transform:translateY(-50%);height:44px;min-height:100%}
.language-control select,#quotaChip{min-height:44px}
/* 검토 상태 단추(보이는 높이 40px)·섬네일 도구 단추(36px, 360px 이하 32px)도 같은 방법으로
   눌리는 영역만 44px 로 넓힌다(외부 감사 2026-09-28). */
.review-control button{position:relative}
.review-control button::after,.image-toolbar button::after{content:"";position:absolute;left:0;right:0;top:50%;
  transform:translateY(-50%);height:44px;min-height:100%}

/* H. 반경 — 같은 역할에 네 값이 섞여 있었다(외곽 카드 9·10·11·18, 버튼 7·9).
      Studio 판이 세운 값으로 모은다: 버튼 9 · 내부 박스 12 · 외곽 카드 18 ·
      칩과 배지만 pill. */
.button,.button-primary,.button-outline,.button-ghost,
.top-nav a,.top-nav button,.billing-toggle button{border-radius:9px}
.plan-card,.team-plan-section,.credit-market,.market-nudge,
.workflow-board{border-radius:18px}
.billing-toggle,.credit-packs button{border-radius:12px}
.format-badge{border-radius:999px}

/* I. 좁은 화면에서만 10px 로 내려가던 두 곳. 폭이 좁다는 것이 글자를 못 읽게
      해도 된다는 뜻은 아니다. 업로드 안내는 행동을 부르는 문장이고, 취소선
      원가는 사용자가 비교하는 값이다. */
@media(max-width:640px){
  .upload-placeholder span:not(.upload-icon){font-size:12px;line-height:18px}
  .trial-price-row s{font-size:12px}
}

/* J. 검사 기준 표 — 열 이름 10px, 내용 11px 이었고 `min-width:650px` 때문에
      390px 모달(본문 폭 337px)에서 가로로 밀어야 읽혔다. 표는 보고서의 본문이다. */
.criteria-table th{font-size:12px;line-height:18px}
.criteria-table td{font-size:13px;line-height:21px}
@media(max-width:640px){
  .criteria-table{min-width:0}
  .criteria-table th,.criteria-table td{padding:10px 9px}
  .criteria-table td:first-child,
  .criteria-table td:nth-child(2){white-space:normal}
}

/* K. 고정 헤더(62px) 밑으로 들어가던 스크롤 목적지들.
      `#resultsSection` 만 `scroll-margin-top` 을 갖고 있었다. 헤더의 「검사하기」·
      「요금제」·「검사 기준」과 `scrollIntoView({block:"start"})` 로 가는
      `#analysisForm` 은 목적지의 첫 줄이 헤더에 가린 채로 멈췄다. */
#analyzer,#analysisForm,#how,#plans,#faq,#mainContent{scroll-margin-top:74px}
@media(max-width:640px){
  #analyzer,#analysisForm,#how,#plans,#faq,#mainContent{scroll-margin-top:66px}
}

/* ==========================================================================
   2026-09-24 폐쇄 베타 — 본질(검사 → 한 가지 수정 → 다시 검사)에 화면을 모은다.
   ========================================================================== */

/* L. 결제가 닫힌 동안 보이지 않는 구역. 팀 요금제 · 해외 동종 도구 비교 ·
      추가 크레딧 · 협업 워크플로. 팀 요금제를 숨기면서 그것을 설명하던 문장과
      그 기능을 파는 구역도 함께 숨긴다 — 가리키는 것이 없는 문장을 남기지 않는다.
      코드는 그대로 두고 표시만 끈다. 다시 켤 때는 이 블록만 지운다. */
.team-plan-section,
.market-nudge,
.credit-market,
.business-workflow,
.pro-nudge,
.plans-head .section-heading>p:not(.overline){display:none!important}

/* M. 첫 화면의 약속 — 결과 화면 「검사 기록」의 세 단계를 미리 보여준다.
      「필수 입력 0/4」가 있던 자리다. 그 수는 버튼이 행동 옆에서 말한다. */
.loop-promise{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none;
  font-size:12px;line-height:18px;color:var(--ink-2);white-space:nowrap}
.loop-promise li{display:inline-flex;align-items:center;gap:6px}
.loop-promise li+li::before{content:"→";color:#a3a9ae;font-size:12px}
.loop-promise li:nth-child(2){font-weight:650;color:var(--ink)}

/* N. 「어떤 영상인가요?」 — 옆 칸 라벨을 위 라벨로. 위 구획(섬네일·영상 제목)과
      같은 읽기 방향이 되고, 180px 빈 칸이 사라진다. */
.conditions-block{grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.conditions-block .block-heading{margin:0}

@media(max-width:640px){
  .loop-promise{white-space:normal;flex-wrap:wrap;gap:4px 8px;margin-top:12px}
}
/* FAQ 에서 숨긴 구역(팀 요금제·추가 크레딧)을 설명하던 항목도 같이 숨긴다. */
.beta-hidden{display:none!important}

/* ==========================================================================
   2026-09-24 §27 — 세현 실측 보정 + 모바일은 다른 구조다
   ========================================================================== */

/* O. 검사 기준 세 칸. 안쪽 칸은 윗줄만 가진 열린 판인데 바깥 상자(테두리·둥근 모서리·
      overflow hidden)가 남아 있어 첫 칸이 잘린 것처럼 보였다(실측 1280). 상자를 없앤다. */
.method-grid.criteria-grid{border:0;border-radius:0;background:transparent;overflow:visible}

/* P. 개인정보 한 줄은 섬네일 칸 아래. 제출 줄은 버튼과 한도 문장만 남아 오른쪽에 모인다. */
.thumbnail-block .privacy-copy{margin-top:10px;max-width:none}
.workbench-footer{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.workbench-footer .scan-status{align-self:stretch;width:100%}

/* Q~V. 모바일(≤640)은 데스크톱을 세로로 쌓은 것이 아니라 엄지로 쓰는 구조다.
      · 제출 줄이 폼이 보이는 동안 화면 아래에 붙는다(sticky) — 버튼이 늘 엄지 자리에 있다.
      · 언어 선택은 「한국어」가 다 보이게.
      · 근거 숫자 셋은 한 줄 띠, 요금제 셋은 옆으로 넘기는 카드 — 세로 길이를 줄인다.
      · 결과 버튼은 전폭: 「수정하기」 한 줄, 그 아래 둘. */
@media(max-width:640px){
  .language-control select{font-size:12px;padding:0 22px 0 8px;min-width:96px}
  #analyzer h1{font-size:28px;line-height:34px;letter-spacing:-.03em}
  .analysis-workbench{overflow:visible}
  .workbench-footer{position:sticky;bottom:0;z-index:5;background:#fff;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px;
    border-top:1px solid var(--border);border-radius:0 0 18px 18px;
    box-shadow:0 -10px 24px -14px rgba(20,24,22,.35)}
  .submit-group{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .analyze-button{width:100%;justify-content:center}
  .submit-group p{white-space:normal;text-align:center;max-width:none}
  .evidence-statline{display:flex;gap:0;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
  .evidence-statline>div{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 4px;border:0}
  .evidence-statline>div span{font-size:11px;line-height:15px}
  .plan-grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;
    padding:4px 0 14px;margin:18px 0 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .plan-grid::-webkit-scrollbar{display:none}
  .plan-grid>.plan-card{flex:0 0 86%;scroll-snap-align:start;margin:0}
  .result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .result-actions>.button{width:100%;margin:0}
  .result-actions>#reanalyzeButton{grid-column:1/-1}
}

/* ==========================================================================
   2026-09-24 §28 — 색은 한 벌, 제출 줄은 꽉 차게, 미리보기는 칸에 맞게
   ========================================================================== */

/* W. 색. 캔버스 베이지 + 근거 띠 세이지 + 업로드 칸 연두 + 파란 강조가 한 화면에 있어
      네 계열이 섞였다(세현: 전문가 같지 않다). 차가운 회색 한 계열 + 파랑 하나로 줄인다.
      초록·노랑·빨강은 결과의 tone 에만 남는다. */
:root{--canvas:#f6f7f9;--surface:#fff;--surface-subtle:#f2f3f6;--surface-strong:#e8eaee;
  --ink:#15171b;--ink-2:#454a54;--muted:#5f6673;--border:#e3e5e9;--border-strong:#cdd2d9;
  --blue:#2f5bea;--blue-hover:#2449c4;--blue-soft:#eef2ff;--focus:0 0 0 3px rgba(47,91,234,.18)}
body{background:var(--canvas)}
.site-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border)}
.analysis-workbench{border-color:var(--border);box-shadow:0 14px 44px -30px rgba(21,25,31,.4)}
.format-badge{background:var(--surface-subtle);color:var(--muted)}
.upload-zone{border-color:#c9ced6;background:#f4f5f7}
.upload-zone:hover,.upload-zone.is-dragging{border-color:var(--blue);background:var(--blue-soft)}
.upload-icon{background:#e8eaee;color:var(--ink-2)}
.title-input-wrap textarea::placeholder{color:#8a919c}
.title-meta{background:#f7f8fa}
.feed-thumb{background:#e6e8ec}
.decision-memo .memo-grid-primary{background:#f3f6ff;border:1px solid #dfe6fb}
.decision-memo .memo-grid-primary .memo-item{background:transparent}
.priority-item>span{color:var(--blue)}
.method-section{background:var(--surface)}
.plans-section{background:var(--canvas)}
.criteria-note{background:var(--surface-subtle)}

/* 근거 띠는 어두운 판. 밝은 화면 사이에서 숫자가 흰색으로 서고, 「근거」 구역임이 한눈에 갈린다. */
.evidence-band{background:#14171d;color:#fff}
.evidence-band-copy .overline{color:rgba(255,255,255,.55)}
.evidence-band-copy h2{color:#fff}
.evidence-band-copy .evidence-explainer{color:rgba(255,255,255,.74)}
.evidence-band-copy .inline-link{color:#fff}
.evidence-statline>div{border-top-color:rgba(255,255,255,.2)}
.evidence-statline strong{color:#fff}
.evidence-statline strong em{color:rgba(255,255,255,.72)}
.evidence-statline span{color:rgba(255,255,255,.6)}

/* X. 제출 줄. 왼쪽이 비어 있었다. 한도 문장은 왼쪽, 버튼은 오른쪽에 크게 —
      검사 버튼이 이 화면의 보상 지점이다. 미완성 상태는 회색이고, 네 칸이 차면
      파랑으로 켜진다(상태 변화가 보여야 누르고 싶어진다). */
.workbench-footer{padding:18px 28px}
.submit-group{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px}
.submit-group p{order:-1;margin:0;text-align:left;font-size:13px;line-height:20px;color:var(--muted)}
.button.analyze-button:not(.button-small){min-width:280px;min-height:58px;padding:0 30px;font-size:17px;font-weight:700;border-radius:12px;
  gap:10px;box-shadow:0 12px 28px -14px rgba(47,91,234,.6)}
.analyze-button:active{transform:translateY(1px);box-shadow:0 6px 16px -10px rgba(47,91,234,.6)}
#analyzeButton[data-incomplete="true"]{opacity:1;background:#e6e8ed;border-color:#e6e8ed;color:var(--muted);box-shadow:none}
#analyzeButton[data-incomplete="true"]:hover{background:#dfe2e8;border-color:#dfe2e8}

/* Y. 피드 미리보기는 오른쪽 칸을 채운다 — 섬네일 176px, 제목 15px. */
.feed-preview{grid-template-columns:176px minmax(0,1fr);gap:16px;margin-top:16px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}
.feed-thumb{border-radius:8px}
.feed-copy b{font-size:15px;line-height:22px;-webkit-line-clamp:2}
.feed-copy small{font-size:12px;line-height:18px;margin-top:6px}

@media(max-width:640px){
  .workbench-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .submit-group{flex-direction:column;align-items:stretch;gap:8px}
  .submit-group p{order:1;text-align:center}
  .button.analyze-button:not(.button-small){min-width:0;width:100%;min-height:54px;font-size:16px}
  .feed-preview{grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px}
  .feed-copy b{font-size:14px;line-height:20px}
}
/* W-2. 스튜디오 판(2026-09-23)에 남아 있던 초록 기운을 마저 뺀다 — 조건 칸·보고서 배경·
      항목 근거 칸·연구 범위 메모·구성 막대·첫 수정 이름색. 전부 회색 한 계열로. */
.conditions-block{background:#f9fafb}
.loop-details>summary{background:#f7f8fa}
.result-details{background:#fbfbfc}
.component-row i{background:#e6e8ec}
.criteria-axis li .reason{background:#f2f3f6}
.criteria-axis li[data-first="true"] .criterion-name{color:var(--blue)}
.research-scope-note{background:#f2f3f6}
#feedThumbPlaceholder{color:#6b7280}
.social-button:disabled,.social-button:disabled:hover{background:#f2f3f6!important;color:#6b7280!important;border-color:#e3e5e9!important}

/* Z. 푸터는 한 줄 — 브랜드 · 링크(고객센터·검사 기준·개인정보·이용약관·패치노트) · ©.
      패치노트가 오른쪽에 따로 두 줄로 서 있었다(세현, 2026-09-24). */
.footer-inner{align-items:center;justify-content:space-between;gap:24px}
.footer-inner nav{margin-left:auto;gap:18px}
.footer-meta{flex-direction:row;align-items:center;gap:0}
.footer-meta small{font-size:12px;line-height:18px;letter-spacing:0;font-family:var(--font-ko)}
html[lang="en"] .footer-meta small{font-family:var(--font-en)}
@media(max-width:640px){
  .footer-inner{flex-wrap:wrap;gap:12px 16px}
  .footer-inner nav{order:2;width:100%;margin:0;justify-content:flex-start;flex-wrap:wrap;gap:12px 16px}
  .footer-meta{order:3;width:100%}
}

/* AA. 보상 루프의 촉감 — 눌림은 즉시(80ms, 0.985), 결과는 200ms 페이드로 한 층 아래에서
      올라온다. 도박 기계식 대기·팡파르·near-miss 연출은 없다(DESIGN §29). 움직임 줄이기
      설정이면 전역 규칙(prefers-reduced-motion)이 전부 끈다. */
.button.analyze-button:not(.button-small){transition:transform 80ms ease-out,background-color 120ms ease,border-color 120ms ease,box-shadow 120ms ease}
.button.analyze-button:not(.button-small):active{transform:scale(.985)}
#resultCard{animation:resultEnter 200ms ease-out}
@keyframes resultEnter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}


/* ── §AB 2026-09-24 — 데스크톱 작업대: 오른쪽 열(제목+미리보기) 높이 = 섬네일 칸 높이 ──
   섬네일 칸은 16:9 그대로 둔다. 오른쪽 열은 「영상 제목」 입력과 피드 미리보기를
   세로로 쌓고, 두 개를 합친 높이가 섬네일 칸과 같게 한다 — 입력 칸이 남는 높이를
   채우고 미리보기는 고정 높이. 조건(장르·길이)과 검사 버튼은 한 줄에 둔다:
   조건은 섬네일 열 아래, 버튼은 제목 열 아래. 폭은 머리글(content-shell 안쪽)과 맞춘다. */
@media(min-width:901px){
  .asset-grid{align-items:stretch}
  .title-block{display:flex;flex-direction:column;min-height:0}
  .title-input-wrap{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
  .title-input-wrap textarea{flex:1 1 0;height:0;min-height:84px}
  .title-meta{flex:0 0 auto}
  .feed-preview{flex:0 0 auto;margin-top:12px;grid-template-columns:128px minmax(0,1fr);gap:14px;padding:10px}
  .feed-copy b{font-size:14px;line-height:20px}
  .feed-copy small{margin-top:4px}
}
@media(min-width:1024px){
  .tool-shell{max-width:1136px}
  .analysis-workbench{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
  .analysis-workbench>.package-block{grid-column:1/-1}
  .analysis-workbench>.conditions-block{grid-column:1;padding:20px 15px 22px 28px;border-top:1px solid var(--border);background:#f9fafb}
  .analysis-workbench>.workbench-footer{grid-column:2;padding:20px 28px 22px 15px;border-top:1px solid var(--border);background:#f9fafb;justify-content:flex-end}
  .analysis-workbench>.workbench-footer .submit-group{flex-direction:column;align-items:stretch;gap:10px}
  .analysis-workbench>.workbench-footer .submit-group p{order:-1;text-align:left;white-space:normal}
  .analysis-workbench>.workbench-footer .button.analyze-button:not(.button-small){width:100%;min-width:0}
  /* 검사 중에는 대기 카드가 넓게 서야 읽힌다 — 바닥 줄 전체를 쓴다. */
  .analysis-workbench:has(#scanStatus:not([hidden]))>.workbench-footer{grid-column:1/-1;padding-left:28px;background:#fff}
  .analysis-workbench:has(#scanStatus:not([hidden]))>.conditions-block{display:none}
}
@media(max-width:900px){
  .feed-preview{margin-top:12px}
}

/* ── §AD 2026-09-24 — 머리 글자(overline)는 본문 글꼴로 ──
   고정폭 글꼴 + 자간이 한글에 걸려 「검 사  결 과」처럼 벌어져 보였다. */
.overline{font-family:var(--font-ko);letter-spacing:0;text-transform:none;font-size:12px;line-height:18px;font-weight:600}
html[lang="en"] .overline{font-family:var(--font-en);letter-spacing:.04em;text-transform:uppercase;font-size:11px}

/* ── §AE 2026-09-24 — 분석 보고서 항목 줄 ──
   항목 코드(T1·S6)는 내지 않는다. 상태는 괄호 기울임 대신 작은 표지로, 먼저 고칠 항목은
   파란 표지와 왼쪽 선으로 구분한다. 배점 항목에는 얇은 막대로 받은 비율을 보인다. */
.criteria-axis li{position:relative}
.criterion-name{align-items:center;gap:8px}
.criterion-pill{font-style:normal;font-size:12px;line-height:18px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--surface-subtle);color:var(--muted);border:1px solid var(--border)}
.criterion-pill.is-first{background:var(--blue-soft);color:var(--blue);border-color:#d6e0fb}
.criteria-axis li[data-first="true"]{padding-left:14px}
.criteria-axis li[data-first="true"]::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:2px;background:var(--blue)}
.criteria-axis li[data-first="true"] .criterion-name{color:var(--ink)}
.criterion-bar{grid-column:1/-1;display:block;height:4px;border-radius:2px;background:#eceef2;overflow:hidden;margin:2px 0 2px}
.criterion-bar b{display:block;height:100%;background:#9aa6b8;border-radius:2px}
.criteria-axis li[data-first="true"] .criterion-bar b{background:var(--blue)}
.revision-loop li span{display:none}
.criteria-axis ul>li:first-child{border-top:0}
/* 검사 메모는 보고서 안의 한 구간이다 — 카드 안의 카드로 두지 않는다. 좌우 여백은 항목 목록과 같다. */
.result-details .professional-panel{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;background:transparent;padding:24px var(--report-pad,26px)}
.result-details .professional-panel .panel-head{padding:0;border:0;background:transparent}
.result-details .professional-panel>.inline-link{margin:12px 0 0}
/* ── §AF 2026-09-24 — 데스크톱의 모든 구간을 머리글과 같은 세로선에 ──
   실측(1440): 머리글·작업대 152 · 근거 띠 212 · 검사 기준 164 · 요금제 124 · FAQ·푸터 164.
   다섯 개의 왼쪽 선이 달라 PC 화면이 한 장으로 읽히지 않았다. 안쪽 폭 1136으로 통일한다. */
@media(min-width:1024px){
  .content-shell,
  .plans-section .content-shell,
  .business-workflow .content-shell,
  .footer-inner.content-shell,
  .evidence-band-inner{max-width:1184px;padding-left:24px;padding-right:24px}
}
/* ── §AG 2026-09-24 — 브랜드 색(파랑)을 보고서 막대에 ──
   점수 칸 막대와 항목 막대를 파랑 한 계열로. 먼저 고칠 항목만 진한 파랑, 나머지는 옅게. */
.component-row i b,#thumbBar,#titleBar,#pairBar{background:var(--blue)}
.criterion-bar b{background:var(--blue);opacity:.45}
.criteria-axis li[data-first="true"] .criterion-bar b{opacity:1}

/* ==========================================================================
   §AH 2026-09-24 실사용 시뮬레이션(Playwright, 1440×900·390×844) 퇴고
   ① 「먼저 바꿀 것」 상자가 머리글 구분선에 붙어 있었다 → 위 여백.
   ② 한국어 제목·검사 상태 문장이 낱말 한가운데서 끊겼다(「받았습니|다」,
      「분|석하고」) → 어절 단위 줄바꿈.
   ③ 휴대폰에서 알림 토스트가 아래 고정 검사 버튼을 덮었다 → 버튼 위로.
   ========================================================================== */
.decision-memo .memo-grid-primary{margin-top:20px}
.title-input-wrap textarea,.scan-status-head strong{word-break:keep-all;overflow-wrap:anywhere}
html[lang="ja"] .title-input-wrap textarea,html[lang="ja"] .scan-status-head strong{word-break:normal;line-break:strict}
@media(max-width:640px){
  .decision-memo .memo-grid-primary{margin-top:16px}
  .toast{bottom:calc(104px + env(safe-area-inset-bottom,0px))}
}

/* §AI 수정 전·후 한 쌍 — 실제로 검사한 두 패키지를 나란히 (DESIGN §34) */
.revision-diff .loop-pair{display:grid;grid-template-columns:minmax(0,248px) auto minmax(0,248px);justify-content:start;align-items:start;gap:14px;margin:0 20px 16px}
.loop-pair-item{margin:0;min-width:0}
.loop-pair-item figcaption{font-size:12px;line-height:18px;color:var(--muted);margin-bottom:6px}
.loop-pair-item[data-side="after"] figcaption{color:var(--blue);font-weight:650}
.loop-pair-item img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:var(--surface-subtle)}
.loop-pair-item[data-side="after"] img[data-changed="true"]{border:2px solid var(--blue)}
.loop-pair-item p{margin:8px 0 0;font-size:13px;line-height:19px;color:var(--ink-2);word-break:keep-all;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.loop-pair-item p[data-changed="true"]{color:var(--ink);font-weight:650}
.loop-pair-arrow{align-self:center;margin-top:18px;color:var(--muted);font-size:16px}
html[lang="ja"] .loop-pair-item p{word-break:normal;line-break:strict}
@media(max-width:640px){.revision-diff .loop-pair{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;margin:0 16px 14px}.loop-pair-item p{font-size:12px;line-height:17px}}

/* §AJ 대기 팁이 2초마다 바뀔 때 카드가 들썩이지 않게 — 390px 실측으로 가장 긴 팁이 3줄(69px)
   (1440px 에서는 13개 모두 한 줄 26px). 가장 긴 팁 높이를 바닥으로 둔다. */
@media(max-width:640px){#scanTip{min-height:69px}}

/* 검사 기준 띠 수치: 라벨이 두 줄로 접혀도 세 라벨의 첫 줄 높이를 맞춘다(휴대폰에서 space-between 이 한 줄짜리 라벨을 아래로 밀었다). */
.evidence-statline>div{justify-content:flex-start}
@media(max-width:640px){.evidence-statline>div{align-items:flex-start;text-align:left;padding:0 8px 0 0}}
/* §43 요금제 두 장 */
.consumer-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){.consumer-plan-grid .featured-plan{grid-column:auto}}
@media(max-width:640px){.consumer-plan-grid{grid-template-columns:1fr}}
/* 검사 기준 창 (DESIGN §43) — 수치 카드·발견 목록·작은 글씨 범위 */
.research-report .method-scope{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 18px;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-subtle)}
.research-report .method-scope>div{display:flex;flex-direction:column;gap:4px;padding:18px 22px 16px;border:0;border-left:1px solid var(--border);border-radius:0;background:transparent}
.research-report .method-scope>div:first-child{border-left:0}
.research-report .method-scope strong{font-size:26px;line-height:32px;letter-spacing:-.02em;color:var(--ink)}
.research-report .method-scope span{margin:0;font-size:12px;line-height:18px;color:var(--muted)}
#contentModalBody .research-findings{list-style:none;margin:12px 0 4px;padding:0;display:grid;gap:8px}
#contentModalBody .research-findings li{position:relative;margin:0;padding-left:18px;font-size:13px;line-height:21px;color:var(--ink-2);word-break:keep-all;overflow-wrap:anywhere}
#contentModalBody .research-findings li::before{content:"";position:absolute;left:3px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--blue)}
#contentModalBody .research-report .criteria-table-wrap+p{margin-top:12px}
#contentModalBody .research-provisional p,#contentModalBody .research-provisional p.research-scope-note{margin:0 0 8px;padding:0;background:none;border:0;border-radius:0;font-size:12px;line-height:20px;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}
#contentModalBody .research-provisional[open] summary{margin-bottom:6px}
@media(max-width:640px){
  .research-report .method-scope>div{padding:14px 12px 12px}
  .research-report .method-scope strong{font-size:18px;line-height:24px;letter-spacing:-.01em}
  .research-report .method-scope span{font-size:11px;line-height:16px}
}
/* 무료 요금제 카드 아래 비회원 체험 안내 (DESIGN §43) */
.plan-guest-note{margin:0 0 10px;font-size:12px;line-height:18px;color:var(--muted);text-align:center;word-break:keep-all}

/* ───────────────────────────────────────────────────────────────────────────
   DESIGN §48 — 전체 눈금 (2026-09-27). 이 블록이 글자 크기·구역 여백의 마지막 결정이다.
   글자 7단(표시 40 · 구역 제목 28 · 카드 제목 18 · 첫 설명 16 · 읽는 글 15 · 메타 13 · 캡션 12)과
   구역 세로 여백 하나(데스크톱 88 · 휴대폰 56), 휴대폰 좌우 16 하나로 모은다.
   위의 옛 층을 고치지 말고, 바꿀 값은 이 블록에서만 바꾼다.
   ─────────────────────────────────────────────────────────────────────────── */
:root{--t-h2:28px;--t-h3:18px;--t-lead:16px;--t-body:15px;--t-meta:13px;--t-cap:12px;--sec-y:88px;--head-gap:36px}
@media(max-width:640px){:root{--t-h2:24px;--t-h3:17px;--t-lead:15px;--sec-y:56px;--head-gap:24px}}

/* 구역 세로 리듬 — 네 구역이 48 · 76 으로 갈려 있었다 */
body .method-section,body .plans-section,body .faq-section{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
body .evidence-band{padding-top:72px;padding-bottom:72px}
body .evidence-band .evidence-band-inner{min-height:0;padding-top:0;padding-bottom:0}
@media(max-width:640px){
  body .evidence-band{padding:48px 0}
  body .method-section{padding-left:0;padding-right:0}
  body .evidence-band .evidence-band-inner,body .method-section .content-shell,body .plans-section .content-shell,body .faq-section .content-shell,body .site-footer .content-shell{padding-left:16px;padding-right:16px}
}

/* 구역 머리 — 오버라인 12 · 제목 28 · 내용까지 36 */
body .section-heading .overline,body .evidence-band .overline{margin:0 0 8px;font-size:var(--t-cap)}
body .section-heading h2,body .evidence-band h2{font-size:var(--t-h2);line-height:1.3;letter-spacing:-.025em}
body .method-section .section-heading,body .faq-section .section-heading{margin-bottom:var(--head-gap)}
body .plans-section .plans-head{margin-bottom:var(--head-gap)}
body .plans-section .plans-head .section-heading{margin-bottom:0}
/* 「자주 묻는 질문 / 자주 묻는 질문」 — 같은 말을 두 줄에 두지 않는다 */
body .faq-section .section-heading .overline{display:none}

/* 머리글 · 첫 화면 */
body .site-header nav a,body .site-header nav button{font-size:14px}
body .site-header .button-small{font-size:13px}
body .tool-description{font-size:var(--t-lead);line-height:1.6}
body .loop-promise li{font-size:var(--t-meta)}
body .conditions-block .field>span{font-size:var(--t-meta)}
body .upload-placeholder>span{font-size:var(--t-meta)}

/* 근거 띠 — 수치 라벨 칸 사이 16px 을 폭이 아니라 규칙으로 보장한다(§43) */
body .evidence-band .evidence-explainer{font-size:var(--t-lead);line-height:1.65}
body .evidence-band .evidence-statline span{font-size:var(--t-meta)}
@media(max-width:640px){
  body .evidence-band .evidence-statline{column-gap:16px}
  body .evidence-band .evidence-statline>div{min-width:0}
  body .evidence-band .evidence-statline span{font-size:var(--t-cap);white-space:normal}
}

/* 검사 기준 카드 */
body .method-section .criteria-grid article h3{font-size:var(--t-h3)}
body .method-section .criteria-grid article p{font-size:var(--t-body);line-height:1.6}

/* 요금제 카드 — 혜택 줄이 12px 이고 제목과 목록 사이가 50px 비어 있었다 */
body .plans-section .plan-card header small{font-size:var(--t-meta)}
body .plans-section .plan-card header strong{font-size:22px}
body .plans-section .plan-card h3{font-size:var(--t-h3);min-height:0;margin:20px 0 14px}
body .plans-section .plan-card ul{margin:0;gap:10px}
body .plans-section .plan-card li{font-size:var(--t-body);line-height:1.5}
body .plans-section .plan-card .plan-guest-note{font-size:var(--t-meta);margin-top:16px}
body .plans-section .plan-card .button{font-size:15px}

/* 자주 묻는 질문 — 질문 13 · 답 12 는 읽는 글 하한(§4 14px) 아래였다 */
body .faq-list summary{font-size:16px;line-height:1.5;padding-top:20px;padding-bottom:20px}
body .faq-list details p{font-size:var(--t-body);line-height:1.7}

/* 결과 카드 — 버튼 13px · 읽는 설명 12~13px 이 §4 하한 아래였다. 좌우 들여쓰기는 한 값 */
#resultsSection .result-actions .button,#resultsSection .signup-nudge .button{font-size:15px}
#resultsSection .revision-diff .loop-target>span,#resultsSection .revision-diff .loop-details>summary{font-size:14px}
#resultsSection .signup-nudge .nudge-copy strong{font-size:15px}
#resultsSection .signup-nudge .nudge-copy p{font-size:var(--t-meta)}
#resultsSection .detail-intro h3,#resultsSection .panel-head h2{font-size:20px;line-height:1.35}
#resultsSection .detail-intro>p{font-size:14px}
#resultsSection .criterion-definition{font-size:14px;line-height:1.6}
#resultsSection #professionalPanel{padding-left:32px;padding-right:32px}
#resultsSection #professionalPanel .memo-grid-secondary{margin-bottom:8px}
#resultsSection #professionalPanel .review-control{margin-top:0}
#resultsSection #reviewControlLabel{font-size:var(--t-meta)}
#resultsSection .review-control button{font-size:14px}
@media(max-width:640px){
  #resultsSection #professionalPanel{padding-left:20px;padding-right:20px}
  /* DESIGN §68 — 세 항목을 한 줄씩 쌓는다. 세 칸이면 항목 이름과 「무엇을 보는지」 줄이
     두세 글자씩 꺾인다(실측 390px 일본어). */
  #resultsSection #componentRow{grid-template-columns:1fr;gap:0}
  #resultsSection #componentRow>div{padding:12px 0;border-right:0;border-bottom:1px solid var(--border)}
  #resultsSection #componentRow>div:first-child{padding-top:0}
  #resultsSection #componentRow>div:last-child{padding-bottom:0;border-bottom:0}
  #resultsSection #componentRow span{min-height:0}
}
/* 연구 출처 — 저자·학회 줄은 제목 바로 아래(§49). 설명 뒤에 두면 다음 항목의 서지로 읽힌다 */
#contentModalBody .research-sources small{display:block;margin:4px 0 0;font-size:var(--t-cap);line-height:1.5;color:var(--muted)}
#contentModalBody .research-sources p{font-size:var(--t-meta);line-height:1.6;margin:6px 0 0}

/* ── DESIGN §50 계정 창 · 배점 표기 ─────────────────────────────────────── */
#accountModal #accountSummary{margin:20px 0 16px;padding:0;border:0;background:none;font-size:var(--t-body);line-height:1.5}
#accountModal .account-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding-bottom:14px;border-bottom:1px solid var(--border)}
#accountModal .account-identity strong{font-size:17px}
#accountModal .account-identity small{flex-basis:100%;font-size:var(--t-meta);color:var(--muted)}
#accountModal .account-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 16px;padding:12px 0;border-bottom:1px solid var(--border)}
#accountModal .account-row>span{font-size:14px;color:var(--ink-2)}
#accountModal .account-row>b{font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink)}
#accountModal .account-usage{grid-column:1/-1;display:block;height:4px;border-radius:999px;background:#e4e7eb;overflow:hidden}
#accountModal .account-usage em{display:block;height:100%;background:var(--blue)}
#accountModal .account-action{padding:14px 16px;border-radius:12px}
#accountModal .account-action strong{font-size:14px}
#accountModal .account-action p{font-size:var(--t-meta);line-height:1.5}
body .method-section .criteria-grid article span[data-axis-max] em{font-style:normal;margin-right:2px}
/* 잔여 칩은 「CREATOR · 350회 남음」 문장이다 — 고정폭 글꼴 대신 본문 글꼴 + 표 숫자 */
body .site-header .quota-chip{font-family:inherit;font-variant-numeric:tabular-nums;letter-spacing:0}
/* 로그인한 휴대폰 머리글 — 영어·일본어에서 「기록·계정」이 두 줄로 밀렸다(360·390 실측, 로그인 전부터 있던 결함) */
@media(max-width:420px){body .site-header .language-control,body .site-header .language-control select{width:90px;min-width:0} body .site-header .language-control select{padding-left:8px;padding-right:4px}}
@media(max-width:380px){body .site-header:has(#historyButton:not([hidden])) .brand-word{display:none}}

/* ── DESIGN §51 — 총점이 결과의 첫 숫자다 · 제목 칸은 3줄 · 피드 미리보기가 남는 높이를 쓴다 ── */
/* 결과 머리: 오버라인 → 검사 점수(가장 큰 숫자) → 지금 상태 문장 → 점수 설명 */
#memoHeader .memo-head-main{display:flex;flex-direction:column;align-items:flex-start}
#memoHeader .memo-head-main>.overline{order:0;margin:0 0 12px}
#memoHeader .score-line{order:1;display:flex;flex-direction:row;align-items:baseline;gap:10px;margin:0 0 14px;padding:0;border:0}
#memoHeader .verdict-line{order:2;width:100%}
#memoHeader .score-note{order:3;margin:10px 0 0}
#memoHeader .score-name{font-size:var(--t-meta);line-height:1.4;font-weight:600;color:var(--muted);letter-spacing:0}
#memoHeader .result-score{font-size:52px;line-height:1;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
#memoHeader .result-score small{font-size:18px;font-weight:500;letter-spacing:0;margin-left:4px}
#memoHeader[data-layout="lead"] #verdictLabel{font-size:24px;line-height:1.4}
#memoHeader[data-layout="recheck"] .memo-head-main{align-items:flex-start}
#memoHeader[data-layout="recheck"] .overline{margin:0 0 12px}
#memoHeader[data-layout="recheck"] .score-line{margin:0}
#memoHeader[data-layout="unmeasured"] .result-score{font-size:28px}
@media(max-width:640px){
  #memoHeader .result-score{font-size:44px}
  #memoHeader .result-score small{font-size:16px}
  #memoHeader[data-layout="lead"] #verdictLabel{font-size:21px}
}
/* 재검사 수정 전후 줄의 점수 변화도 읽히는 크기로 */
#resultsSection .revision-diff .loop-score{font-size:20px}

/* 작업대 오른쪽 열: 제목 칸은 3줄, 남는 높이는 휴대폰 피드 미리보기가 쓴다(섬네일 칸과 높이는 그대로 같다) */
@media(min-width:901px){
  body .title-input-wrap{flex:0 0 auto}
  body .title-input-wrap textarea{flex:0 0 auto;height:calc(3 * 1.55em + 32px);min-height:0}
  body .feed-preview{flex:1 1 0;min-height:0;display:flex;align-items:center;gap:16px}
  body .feed-preview .feed-thumb{flex:0 0 auto;height:100%;max-height:176px;width:auto;aspect-ratio:16/9}
  body .feed-preview .feed-copy{min-width:0}
}
@media(max-width:640px){body .title-input-wrap textarea{height:calc(3 * 1.55em + 28px)}}
#memoHeader .memo-head-main>.overline{align-self:stretch;text-align:left}
/* 수정 전후 점수 변화 — 오르면 초록 굵게(해결 ✓ 와 같은 색), 내리면 중립색. 빨강으로 겁주지 않는다(§10) */
#resultsSection .revision-diff .loop-total em{font-style:normal;font-size:16px;font-weight:700;color:var(--ink-2)}
#resultsSection .revision-diff .loop-total em.up{color:var(--green)}
/* 901~1000px 는 섬네일 칸이 낮아 남는 높이가 작다 — 제목 칸이 먼저 줄고(최소 84px), 미리보기 섬네일은 128px 폭 아래로 줄지 않는다 */
@media(min-width:901px){
  body .title-input-wrap{flex:0 1 auto;min-height:0}
  body .title-input-wrap textarea{flex:0 1 auto;min-height:84px}
  body .feed-preview .feed-thumb{min-height:72px}
}
/* §52 작업대 바닥 줄 — 조건 칸 제목은 화면 읽기용으로만 남기고, 버튼 위 줄은 칩에 없는 말만.
   바닥 줄 높이가 버튼 칸(비회원 안내 줄 포함)에 맞춰 늘면 장르·길이 칸도 바닥에 붙여
   선택 칸 아래선과 검사 버튼 아래선이 같다 */
@media(min-width:1024px){
  .analysis-workbench>.conditions-block{align-content:end}
}
/* §55 검사 기준 창 「출처별 세부」 — 토글 안 작은 글씨와 같은 눈금 */
#contentModalBody .research-provisional .research-sources-title{margin:16px 0 6px;font-size:var(--t-cap);font-weight:700;color:var(--muted)}
#contentModalBody .research-provisional .research-sources{margin:0;padding-left:16px;display:grid;gap:8px}
#contentModalBody .research-provisional .research-sources li{font-size:var(--t-cap);line-height:1.6;color:var(--muted)}


/* 2026-09-28 축이 무엇을 재는지 한 줄(DESIGN §68). 막대 아래, 축 전체 폭. */
.component-row .axis-means,.component-row .axis-state{grid-column:1/-1;display:block;font-size:12px;line-height:17px;color:var(--muted);font-weight:500}
.component-row .axis-state{color:var(--ink-2);font-weight:600}
/* 처리방침은 주제마다 문단을 나눈다(수집·보유·국외 이전·쿠키, DESIGN §70). */
#contentModalBody > p + p{margin-top:12px}
/* §83 결제가 닫힌 동안의 유료 단추 — 잠긴 것으로 보인다 */
button.is-locked,button.is-locked:disabled{display:inline-flex;align-items:center;justify-content:center;gap:6px;opacity:1!important;background:#f2f3f5!important;color:#5f6673!important;border:1px solid #e1e4e8!important;filter:none;box-shadow:none;cursor:not-allowed}
button.is-locked .lock-icon{width:14px;height:14px;flex:none}
.plan-lock-badge{display:inline-flex;width:auto;align-items:center;gap:4px;margin-left:8px;padding:3px 8px 3px 7px;border-radius:999px;background:#f2f3f5;color:#5f6673;font:700 11px/1.2 var(--font-ko);font-style:normal;vertical-align:2px}
.plan-lock-badge .lock-icon{width:11px;height:11px}.plan-lock-badge b{font-weight:700}
.plan-card > button.is-locked{margin-top:18px}
