/* Phase 1 shared components. Values from the supplied Claude reference.
   Kept separate from existing module layout and business-state styles. */
html.fsg-ui { color-scheme:light; }
html.fsg-ui :focus-visible { outline:2px solid var(--fsg-orange);outline-offset:2px; }
html.fsg-ui .fsg-btn:not(.fsg-tab) {
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:36px;height:auto;padding:7px 16px;border-radius:8px;font-family:var(--fsg-font);
  font-size:14px;line-height:20px;font-weight:500;cursor:pointer;white-space:normal;
  border:1px solid var(--fsg-ctrl-border);background:var(--fsg-gloss);color:var(--fsg-ctrl-text);
  text-shadow:var(--fsg-ctrl-txtshadow);box-shadow:var(--fsg-shadow-1),inset 0 1px 0 var(--fsg-highlight);
  text-decoration:none;max-width:100%;
}
html.fsg-ui .fsg-btn:not(.fsg-tab):hover {background:var(--fsg-gloss-hover);color:var(--fsg-ctrl-text);}
html.fsg-ui .fsg-btn:not(.fsg-tab):active {background:var(--fsg-gloss-pressed);box-shadow:var(--fsg-inset);}
html.fsg-ui .fsg-btn[data-fsg-variant=primary]:not(.fsg-tab) {
  background:linear-gradient(var(--fsg-primary-top),var(--fsg-primary-bottom));border-color:var(--fsg-primary-border);
  color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);box-shadow:0 1px 2px rgba(60,57,53,.25),inset 0 1px 0 rgba(255,255,255,.28);
}
html.fsg-ui .fsg-btn[data-fsg-variant=primary]:not(.fsg-tab):hover {background:linear-gradient(var(--fsg-primary-hover-top),var(--fsg-primary-bottom));color:#fff;}
html.fsg-ui .fsg-btn[data-fsg-variant=danger]:not(.fsg-tab) {background:var(--fsg-danger);border-color:var(--fsg-danger);color:#fff;text-shadow:none;}
html.fsg-ui .fsg-btn[data-fsg-variant=ghost]:not(.fsg-tab) {background:transparent;border-color:transparent;color:var(--fsg-orange-ink);box-shadow:none;text-shadow:none;}
html.fsg-ui .fsg-btn[data-fsg-variant=ghost]:not(.fsg-tab):hover {background:var(--fsg-orange-tint);}
html.fsg-ui .fsg-btn.sm:not(.fsg-tab) {min-height:30px;padding:4px 12px;font-size:13px;}
html.fsg-ui .fsg-btn:disabled,html.fsg-ui .fsg-btn[aria-disabled=true] {opacity:.5;cursor:not-allowed;box-shadow:none;}
html.fsg-ui .fsg-btn[hidden] {display:none!important;}

/* Keep every original tab node in place; only our overflow marker hides a rendered option. */
html.fsg-ui .fsg-tabs.fsg-tabs {
  display:inline-flex!important;align-items:stretch;flex-wrap:nowrap!important;gap:0!important;
  background:var(--fsg-gloss)!important;border:1px solid var(--fsg-ctrl-border)!important;border-radius:8px!important;
  box-shadow:var(--fsg-shadow-1),inset 0 1px 0 var(--fsg-highlight);padding:0!important;
  margin:12px 0 16px!important;max-width:100%!important;width:fit-content!important;min-width:0;
  position:relative;overflow:visible!important;vertical-align:top;flex-shrink:1;
}
html.fsg-ui .fsg-tabs > .fsg-tab.fsg-tab {
  position:relative;appearance:none;display:block;text-align:center;
  flex:0 1 auto;min-width:0;min-height:36px;height:36px!important;max-width:var(--fsg-segment-max,340px);
  padding:0 18px!important;margin:0!important;border:0!important;border-right:1px solid var(--fsg-ctrl-div)!important;
  border-radius:0!important;background:transparent!important;box-shadow:none!important;
  font-family:var(--fsg-font)!important;font-size:14px!important;line-height:36px!important;font-weight:500!important;
  color:var(--fsg-ctrl-text)!important;text-shadow:var(--fsg-ctrl-txtshadow);cursor:pointer;
  white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;text-decoration:none;
}
html.fsg-ui .fsg-tabs > .fsg-tab:first-child {border-radius:7px 0 0 7px!important;}
html.fsg-ui .fsg-tabs > .fsg-tab.fsg-more {border-right:0!important;border-radius:0 7px 7px 0!important;flex-shrink:0;max-width:none;}
html.fsg-ui .fsg-tabs > .fsg-tab:hover {background:var(--fsg-gloss-hover)!important;}
html.fsg-ui .fsg-tabs > .fsg-tab[aria-selected=true],
html.fsg-ui .fsg-tabs > .fsg-more.fsg-more-active {
  background:var(--fsg-gloss-pressed)!important;box-shadow:var(--fsg-inset),inset 0 -2px 0 var(--fsg-orange)!important;
  color:var(--fsg-orange-ink)!important;
}
html.fsg-ui .fsg-tabs > .fsg-tab:focus-visible {outline:2px solid var(--fsg-orange)!important;outline-offset:-2px;z-index:1;}
html.fsg-ui .fsg-tabs > .fsg-tab:disabled {opacity:.5;cursor:not-allowed;}
html.fsg-ui .fsg-tabs > .fsg-tab[hidden],html.fsg-ui .fsg-tabs > .fsg-tab[data-fsg-overflowed=true] {display:none!important;}
html.fsg-ui .fsg-tabs > [data-training-unsaved] {font-family:var(--fsg-font);padding:0 8px;margin:0;align-self:center;order:10000;color:var(--fsg-warning-ink);}
html.fsg-ui .fsg-menu {
  position:fixed;inset:auto;margin:0;width:max-content;min-width:min(200px,calc(100vw - 24px));max-width:min(340px,calc(100vw - 24px));
  box-sizing:border-box;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;
  background:var(--fsg-surface);border:1px solid var(--fsg-line);border-radius:8px;
  box-shadow:var(--fsg-shadow-2);padding:6px;z-index:2147483500;display:flex;flex-direction:column;
  font-family:var(--fsg-font);color:var(--fsg-text);
}
html.fsg-ui .fsg-menu[hidden] {display:none!important;}
html.fsg-ui .fsg-menu > button.fsg-menu-item {
  appearance:none;display:flex;align-items:center;text-align:left;width:100%;max-width:100%;height:auto;min-height:36px;
  padding:8px 10px;margin:0;border:0!important;border-radius:6px;box-shadow:none;background:transparent;
  font:500 14px/1.4 var(--fsg-font);color:var(--fsg-text);cursor:pointer;white-space:normal;overflow-wrap:anywhere;
}
html.fsg-ui .fsg-menu > button.fsg-menu-item:hover,html.fsg-ui .fsg-menu > button.fsg-menu-item:focus-visible {background:var(--fsg-surface-2);}
html.fsg-ui .fsg-menu > button.fsg-menu-item[aria-checked=true] {color:var(--fsg-orange-ink);}
html.fsg-ui .fsg-menu > button.fsg-menu-item:disabled {opacity:.5;cursor:not-allowed;}

/* Only ordinary existing inputs; never file, checkbox, radio, range, hidden or submit controls. */
html.fsg-ui :is(.fsg-input,.fsg-select,.fsg-textarea) {
  box-sizing:border-box;min-height:36px;padding:7px 12px;border-radius:6px;border:1px solid var(--fsg-line-strong);
  background-color:var(--fsg-surface);color:var(--fsg-text);font-family:var(--fsg-font);font-size:14px;line-height:20px;
  box-shadow:var(--fsg-field-inset);max-width:100%;min-width:0;
}
html.fsg-ui .fsg-textarea {min-height:84px;height:auto;padding:10px 12px;resize:vertical;}
html.fsg-ui .fsg-select {padding-right:28px;}
html.fsg-ui :is(.fsg-input,.fsg-select,.fsg-textarea):focus-visible {outline:2px solid var(--fsg-orange);outline-offset:1px;border-color:var(--fsg-orange);}
html.fsg-ui :is(.fsg-input,.fsg-textarea)::placeholder {color:var(--fsg-text-muted);opacity:1;}
html.fsg-ui :is(.fsg-input,.fsg-select,.fsg-textarea)[aria-invalid=true],html.fsg-ui :is(.fsg-input,.fsg-select,.fsg-textarea):user-invalid {border-color:var(--fsg-danger);}
html.fsg-ui :is(.fsg-input,.fsg-select,.fsg-textarea):disabled {background-color:var(--fsg-surface-2);cursor:not-allowed;}
html.fsg-ui .fsg-dialog {font-family:var(--fsg-font);color:var(--fsg-text);border:1px solid var(--fsg-line);border-radius:12px;box-shadow:var(--fsg-shadow-3);}
html.fsg-ui .fsg-dialog :is(.onefsg-dialog-field,.onefsg-dialog-error) {font-weight:700;}
html.fsg-ui .fsg-dialog .onefsg-dialog-icon {border-radius:4px;}
html.fsg-ui .fsg-dialog .onefsg-dialog-message {color:var(--fsg-text-muted);}
html.fsg-ui .fsg-tile {background:var(--fsg-surface);border:1px solid var(--fsg-line);border-radius:12px;box-shadow:var(--fsg-shadow-1);}
html.fsg-ui .fsg-tile :is(strong,.v) {font-weight:500;font-variant-numeric:tabular-nums lining-nums;}
html.fsg-ui .fsg-chip {border-radius:999px;font-family:var(--fsg-font);font-size:12px;font-weight:500;line-height:1.4;}
html.fsg-ui .fsg-banner {border-radius:8px;font-family:var(--fsg-font);font-size:13px;line-height:1.45;}
@media(max-width:640px){
 html.fsg-ui .fsg-btn:not(.fsg-tab) {min-height:36px;}
 html.fsg-ui .tx-app :is(.tx-primary,.tx-camera-picker) {min-height:50px;}
 html.fsg-ui .fsg-tabs > .fsg-tab.fsg-tab {padding:0 12px!important;}
 html.fsg-ui .fsg-menu > button.fsg-menu-item {min-height:42px;}
}
@media(prefers-reduced-motion:reduce){html.fsg-ui :is(.fsg-btn,.fsg-tab,.fsg-menu){transition:none!important;animation:none!important;scroll-behavior:auto!important;}}
@media(forced-colors:active){html.fsg-ui .fsg-tabs>.fsg-tab[aria-selected=true],html.fsg-ui .fsg-tabs>.fsg-more.fsg-more-active{border-bottom:3px solid Highlight!important;}html.fsg-ui .fsg-btn{border:1px solid ButtonText;}}

/* Form labels use the reference weight; validation classes and text remain module-owned. */
html.fsg-ui form label {font-family:var(--fsg-font);font-weight:500;}
