/* Shared legacy presentation; scoped to module/auth containers. */
@scope (.gsh-legacy) {

:scope{--bg:#f5f7fa;--card:#fff;--line:#e5e7eb;--text:#1f2937;--muted:#6b7280;--dark:#111827;--ok:#166534;--bad:#b91c1c;--blue:#2563eb}
*{box-sizing:border-box}
:scope{font-family:Arial,sans-serif;margin:0;background:var(--bg);color:var(--text)}
.wrap{min-height:100vh;padding:28px}
.card,.panel,.stat{background:var(--card);border:1px solid var(--line);border-radius:14px}
.card{width:min(440px,100%);padding:30px;margin:14vh auto 0}
button{padding:11px 15px;border:0;border-radius:8px;font-weight:700;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.google{width:100%;margin-top:18px;background:white;color:var(--text);border:1px solid #d1d5db}
.primary{background:var(--dark);color:white}
.secondary{background:white;border:1px solid #d1d5db;color:var(--text)}
.linkbtn{background:#eef2ff;color:#3730a3;padding:7px 10px}
.error{color:var(--bad);margin-top:12px}
.success{color:var(--ok);margin-top:12px}
.small{font-size:13px;color:var(--muted)}
#authLoading{margin-top:14vh;text-align:center}
#login{display:none}
#mfa{display:none;margin-top:8vh}
.mfa-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.mfa-actions .primary{flex:1}
.mfa-setup{display:none;margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;text-align:center}
.mfa-setup img{display:block;width:220px;max-width:100%;height:auto;margin:0 auto 12px;background:white;border:8px solid white;border-radius:8px}
.mfa-secret{display:block;margin-top:8px;padding:8px;border-radius:7px;background:white;border:1px solid var(--line);font:12px ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
.mfa-form{display:none;margin-top:18px}
.mfa-form input{margin-top:7px;text-align:center;font-size:22px;letter-spacing:.3em;font-variant-numeric:tabular-nums}
#dashboard{display:none;max-width:1120px;margin:0 auto}
.module-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.module-nav button{background:var(--card);border:1px solid var(--line);color:var(--text)}
.module-nav button[aria-current="page"]{background:#fbf6e8;border-color:#d2aa43}
.module-nav button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
#dashboard [hidden]{display:none!important}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{padding:18px} .stat b{font-size:28px;display:block;margin-top:6px}
.panel{padding:20px;margin-top:16px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
table{width:100%;border-collapse:collapse;margin-top:8px}
th,td{padding:10px;border-bottom:1px solid #eee;text-align:left;font-size:14px;vertical-align:middle}
th{color:var(--muted);font-weight:600}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#f3f4f6;font-size:12px}
.badge.done{background:#ecfdf5;color:#166534}
.upload-status{margin-top:10px;font-size:13px}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap}
.doc-actions button{padding:6px 9px;font-size:12px}
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:30;padding:24px;overflow:auto}
.modal{background:white;max-width:850px;margin:3vh auto;border-radius:14px;border:1px solid var(--line);padding:24px;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.modal-head h2{margin:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.market-scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.market-scenarios{min-width:0}.market-scenarios p{overflow-wrap:anywhere}.market-scenarios .form-grid{grid-template-columns:1fr}.market-scenario-grid input,.market-scenario-grid select{min-width:0;width:100%;box-sizing:border-box}@media(max-width:1000px){.market-scenario-grid{grid-template-columns:1fr}}
.market-price-position{min-width:0;max-width:100%}.market-price-position p{overflow-wrap:anywhere}.market-price-position .market-pairs,.market-price-position .market-detail-row .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.market-price-position .market-pairs,.market-price-position .market-detail-row .market-pairs{grid-template-columns:1fr}}
.market-competition-density{min-width:0;max-width:100%}.market-competition-density p,.market-competition-density strong{overflow-wrap:anywhere}.market-competition-density .market-detail-row .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.market-competition-density .market-detail-row .market-pairs,.market-competition-density .market-metrics{grid-template-columns:1fr}}
.market-entry-barriers{min-width:0;max-width:100%}.market-entry-barriers p,.market-entry-barriers dt,.market-entry-barriers dd{overflow-wrap:anywhere}.market-entry-barriers .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.market-entry-barriers .market-pairs{grid-template-columns:1fr}}
.market-swor{min-width:0;max-width:100%}.market-swor p,.market-swor h5{overflow-wrap:anywhere}.market-swor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.market-swor-quadrant{min-width:0}@media(max-width:760px){.market-swor-grid{grid-template-columns:1fr}}
.market-sensitivity{max-width:900px;min-width:0}.market-sensitivity p{overflow-wrap:anywhere}.market-sensitivity .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.market-sensitivity .form-grid{grid-template-columns:1fr}}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group.full{grid-column:1/-1}
label{font-weight:700;font-size:13px}
input,select,textarea{width:100%;padding:10px 11px;border:1px solid #d1d5db;border-radius:8px;font:inherit;background:white}
textarea{min-height:80px;resize:vertical}
.help{font-size:12px;color:var(--muted)}
.ai-summary{margin-top:12px;padding:10px 12px;border-radius:9px;background:#f8fafc;border:1px solid #e2e8f0;font-size:13px;line-height:1.45}
.ai-summary strong{display:block;margin-bottom:4px}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.section-title{grid-column:1/-1;margin-top:6px;padding-top:14px;border-top:1px solid #eee;font-weight:700}
.market-content{max-width:900px;margin:0 auto}
.market-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.market-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:18px}
.market-card h3{margin:0}
.market-card p{margin:0;line-height:1.5}
.market-card .secondary{margin-top:auto}
.market-back{margin-bottom:12px}
.market-empty{margin-top:16px}
.market-empty h3{margin:0 0 8px}
.market-empty p{margin:0}
.market-content :focus:not(:focus-visible){outline:none;box-shadow:none}
.market-content :focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.market-content .form-grid>h4.full,.market-content .market-form-heading{grid-column:1/-1;margin:8px 0 0}
.market-content .market-study-item{padding:12px}.market-content .market-study-item p{margin:6px 0}
.market-content .market-detail-list{gap:8px}.market-content .market-detail-row{padding:10px}
.market-content .market-keyword-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.market-content .market-keyword-list .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.market-content .market-scenario-case>summary{cursor:pointer;font-weight:700;overflow-wrap:anywhere}
.market-content .market-scenarios .form-grid,.market-content .market-sensitivity .form-grid{gap:8px;margin-top:10px}
.market-content .market-scenarios .form-group,.market-content .market-sensitivity .form-group{min-width:0}
.market-content input,.market-content select,.market-content textarea{min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:600px){.market-content .market-keyword-list{grid-template-columns:1fr}}
@media(max-width:760px){.grid{grid-template-columns:1fr 1fr}.top{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-group.full,.section-title{grid-column:1}}
@media(max-width:760px){.market-cards{grid-template-columns:1fr}}
@media(max-width:480px){.grid{grid-template-columns:1fr}.wrap{padding:16px}}
.market-inline{display:flex;gap:8px;flex-wrap:wrap}.market-inline input{flex:1 1 190px;min-width:0}.market-tags{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.market-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;overflow-wrap:anywhere;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:3px 6px 3px 10px;font-size:13px}.market-chip button{padding:1px 5px;background:transparent;color:var(--text)}.market-summary{border:1px solid var(--line);border-radius:9px;padding:14px;margin-top:18px}.market-summary p{margin:8px 0 0}.market-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}.market-study-list{display:grid;gap:10px;margin-top:16px}.market-study-item{margin:0;min-width:0}.market-study-item h3{margin:0}.market-study-item p{overflow-wrap:anywhere}
.market-detail{max-width:100%;min-width:0}.market-detail h3{margin:0 0 12px}.market-detail h4{margin:0 0 8px}.market-detail p{line-height:1.45}.market-detail-header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}.market-detail-header h2{margin:0;overflow-wrap:anywhere}.market-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.market-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.market-metric{padding:14px;min-width:0}.market-metric strong{display:block;font-size:20px;overflow-wrap:anywhere}.market-metric span{font-size:13px;color:var(--muted)}.market-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.market-pairs>div{min-width:0;overflow-wrap:anywhere}.market-pairs dt{font-size:13px;color:var(--muted)}.market-pairs dd{margin:3px 0 0;font-weight:700}.market-detail-list{display:grid;gap:10px}.market-detail-row{border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}.market-detail-row h4{overflow-wrap:anywhere}.market-detail-row .market-pairs{grid-template-columns:repeat(3,minmax(0,1fr))}.market-detail-row a{overflow-wrap:anywhere}.market-detail-row button{margin-top:8px}.market-detail-row .market-tags{margin-top:8px}.market-detail .market-chip{padding:4px 9px}.market-detail-notice{padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:8px}.market-detail-panel{min-width:0}.market-detail-expand{margin-top:12px}.market-detail .market-subrow{padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.market-detail .market-subrow:last-child{border-bottom:0}
.market-detail .market-detail-section-heading{margin:0}.market-detail-section-toggle{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;text-align:left;border:0;background:transparent;color:var(--text);padding:0;cursor:pointer;font:inherit}.market-detail-section-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}.market-detail-section-title{font-size:1em;font-weight:700;min-width:0;overflow-wrap:anywhere}.market-detail-section-summary{grid-column:1;color:var(--muted);font-size:13px;font-weight:400;min-width:0;overflow-wrap:anywhere}.market-detail-section-indicator{grid-column:2;grid-row:1 / span 2;font-size:24px;line-height:1}.market-detail-section-body{min-width:0;margin-top:12px}.market-detail-section-body[hidden]{display:none}.market-detail-subheading{margin:16px 0 8px}
.market-history-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.market-history-list{display:grid;gap:10px;min-width:0}.market-history-item{border:1px solid var(--line);border-radius:9px;padding:12px;min-width:0;overflow-wrap:anywhere}.market-history-item p{margin:5px 0}.market-history-item button{margin-top:6px}.market-history-current{display:block;font-size:13px;font-weight:700;margin-top:6px}
@media(max-width:760px){.market-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.market-detail-row .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.market-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.market-pairs,.market-detail-row .market-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}.market-metric strong{font-size:17px}.market-detail-header{display:block}.market-detail-actions{margin-top:10px}.market-detail-row{padding:10px}}
.market-content .market-comparison-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.market-content .market-tracking,.market-content .market-tracking :is(form,div,details,label,select,input,button,p,summary,a){min-width:0;max-width:100%;overflow-wrap:anywhere}
.market-content .market-tracking :is(input,select){width:100%;box-sizing:border-box}
.market-content .market-tracking button{white-space:normal}
.market-content .market-technical{min-width:0;overflow-wrap:anywhere}
.market-content .market-comparison :is(h3,h4,p){overflow-wrap:anywhere}
.market-content .market-comparison-choice{display:flex;align-items:flex-start;gap:10px;cursor:pointer;overflow-wrap:anywhere}
.market-content .market-comparison-choice input{width:auto;flex:0 0 auto;margin-top:4px}
.market-content .market-comparison-choice span,.market-content .market-comparison select{min-width:0;max-width:100%}
.market-content .market-comparison-values{display:grid;gap:8px}.market-content .market-comparison-values>div{border-bottom:1px solid var(--line);padding:8px 0}
.market-content .market-comparison-values dt{font-size:13px;color:var(--muted)}.market-content .market-comparison-values dd{margin:4px 0;font-weight:700}
.market-content .market-comparison summary{cursor:pointer;overflow-wrap:anywhere}.market-content .market-comparison summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
@media(max-width:700px){.market-content .market-comparison-cards{grid-template-columns:minmax(0,1fr)}}

}

@scope (.gsh-legacy) {
  :scope {min-width:0;max-width:100%;--bg:var(--surface,#f5f7fa);--text:var(--ink,#1f2937);}
  [hidden]{display:none!important}
  .panel{min-width:0;max-width:100%;overflow-x:auto}
  td{overflow-wrap:anywhere}
  #adminView table{min-width:500px}
  #adminView button{white-space:nowrap}
  .modal-backdrop{z-index:40}
  .modal{max-width:min(850px,100%)}
  .form-group{min-width:0}
  input,select,textarea{min-width:0;max-width:100%}
  @media(max-width:480px){.panel{padding:12px}.modal-backdrop{padding:8px}.modal{padding:14px}th,td{padding:6px;font-size:12px}}
}
