:root{
  --ym-bg:#080b10;--ym-surface:#101722;--ym-surface-raised:#151e2c;
  --ym-border:#263246;--ym-text:#f5f7fb;--ym-muted:#aeb9c9;
  --ym-accent:#38bdf8;--ym-success:#22c55e;--ym-warning:#f59e0b;--ym-danger:#ef4444;
  --ym-radius-sm:10px;--ym-radius-md:16px;--ym-radius-lg:22px;
  --ym-shadow-sm:0 6px 18px rgba(0,0,0,.2);--ym-shadow:0 14px 36px rgba(0,0,0,.28);--ym-motion-fast:160ms;--ym-motion-base:220ms;
}
html{color-scheme:dark}

/* Management pages share one visual language even while their workflows remain separate. */
body.ym-management-surface{
  --bg:var(--ym-bg);--panel:var(--ym-surface);--panel2:var(--ym-surface-raised);
  --soft:var(--ym-surface);--softline:var(--ym-border);--chip:var(--ym-surface-raised);
  --ink:var(--ym-text);--muted:var(--ym-muted);--line:var(--ym-border);
  --accent:var(--ym-accent);--accent2:var(--ym-accent);--accent-2:var(--ym-success);
  --blue:var(--ym-accent);--ok:var(--ym-success);--warn:var(--ym-warning);--bad:var(--ym-danger);
  margin:0;
  background:var(--ym-bg)!important;
  color:var(--ym-text)!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif!important;
  letter-spacing:0;
}
body.ym-management-surface :is(.page,.container,.container-wide){min-width:0;max-width:1440px;margin-inline:auto}
body.ym-management-surface :is(.title,.section-title,h1){color:var(--ym-text);letter-spacing:-.015em}
body.ym-management-surface :is(.sub,.section-sub,.muted,.small-muted,.small-note,.text-muted){color:var(--ym-muted)!important}
body.ym-management-surface :is(.card,.panel,.panel2,.tip,.help-box){
  color:var(--ym-text)!important;
  background:var(--ym-surface)!important;
  border:1px solid var(--ym-border)!important;
  border-radius:var(--ym-radius-md)!important;
  box-shadow:var(--ym-shadow-sm)!important;
  backdrop-filter:none!important;
}
body.ym-management-surface :is(.form-control,.form-select,input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  box-sizing:border-box;max-width:100%;min-width:0;min-height:44px;
  color:var(--ym-text)!important;background:var(--ym-bg)!important;
  border:1px solid var(--ym-border)!important;border-radius:var(--ym-radius-sm)!important;
}
body.ym-management-surface :is(.form-control,.form-select,input,select,textarea):focus{
  border-color:var(--ym-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--ym-accent) 22%,transparent)!important;outline:0;
}
body.ym-management-surface :is(.btn,button[class*="btn"]){border-radius:var(--ym-radius-sm);min-height:44px;box-shadow:none}
body.ym-management-surface :is(.table,table){border-color:var(--ym-border);color:var(--ym-text)}
body.ym-management-surface :is(.table,table) :is(th,td){border-color:var(--ym-border);color:inherit}
body.ym-management-surface :is(.table,table) th{background:var(--ym-surface-raised)!important;color:var(--ym-muted)!important}
body.ym-management-surface :is(.table,table) td{background:var(--ym-surface)!important;color:var(--ym-text)!important}
@media(max-width:640px){
  body.ym-management-surface :is(.page,.container,.container-wide){width:100%;padding-inline:12px}
  body.ym-management-surface :is(.title,.section-title,h1){font-size:clamp(1.25rem,6vw,1.6rem);line-height:1.25}
  body.ym-management-surface :is(.card,.panel,.panel2,.tip,.help-box){border-radius:var(--ym-radius-sm)!important}
}

/* Enterprise progress tools use the available workspace consistently. */
body.ym-progress-surface{padding-inline:0!important}
body.ym-progress-surface > :is(.container,.container-fluid,.container-lg,.container-xl,.tm-page-wrap,.ym-tool-main,.list-container),
body.ym-progress-surface > main > :is(.container,.container-fluid,.container-lg,.container-xl,.tm-page-wrap,.ym-tool-main,.list-container){
  box-sizing:border-box;
  width:90%!important;
  max-width:none!important;
  margin-inline:auto!important;
}
body.ym-progress-surface.ym-cut-list-page > :is(
  .mw-workflow,.mw-workflow-mobile,.cp-hero,.cp-hero-preview,.cp-guide-grid,
  .site-tabs-row,#topManufactureTabs,#topManufactureTabsContent
),
body.ym-progress-surface.ym-isometric-page > :is(
  .iso-top,.iso-toolbar,#mgrPanel,.text-center.my-4,.tab-scroll,#projTabContent
){
  box-sizing:border-box;
  width:90%!important;
  max-width:none!important;
  margin-inline:auto!important;
}
:where(form,fieldset,.form-group,.input-group,[class$="-field"],[class*="-field "]){min-inline-size:0}
:where(input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"]){display:block;box-sizing:border-box;inline-size:100%;max-inline-size:100%;min-inline-size:0;overflow:hidden}
:where(input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"])::-webkit-datetime-edit{min-inline-size:0;max-inline-size:100%;overflow:hidden}
:where(input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"])::-webkit-date-and-time-value{min-inline-size:0;max-inline-size:100%;text-align:start}
:where(input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"])::-webkit-calendar-picker-indicator{flex:0 0 auto;margin-inline-start:4px}

.ym-filter-select {
  width: min(100%, var(--ym-filter-width, 160px));
}

.ym-filter-select .form-label {
  color: var(--ym-muted);
  font-size: .8rem;
  font-weight: 700;
}

.ym-filter-select .form-select {
  min-height: 44px;
}

.ym-flash-modal{--ym-flash-color:var(--ym-accent);position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:clamp(16px,4vw,32px);box-sizing:border-box}
.ym-flash-modal[data-tone="success"]{--ym-flash-color:var(--ym-success)}
.ym-flash-modal[data-tone="error"]{--ym-flash-color:var(--ym-danger)}
.ym-flash-modal[data-tone="warning"]{--ym-flash-color:var(--ym-warning)}
.ym-flash-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ym-flash-modal__card{position:relative;width:min(100%,420px);max-width:100%;min-width:0;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:18px;border:1px solid color-mix(in srgb,var(--ym-flash-color) 34%,var(--ym-border));border-radius:18px;background:color-mix(in srgb,var(--ym-surface) 80%,transparent);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);color:var(--ym-text);box-shadow:0 18px 50px rgba(0,0,0,.45);animation:ym-flash-in .2s ease-out}
.ym-flash-modal__card,.ym-flash-modal__card *{box-sizing:border-box}
.ym-flash-modal__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--ym-flash-color) 18%,transparent);color:var(--ym-flash-color);font-size:1.2rem}
.ym-flash-modal__content{min-width:0;padding-top:1px}
.ym-flash-modal__title{margin:0 0 5px;font-size:1rem;font-weight:800;line-height:1.35;color:var(--ym-text)}
.ym-flash-modal__messages{display:grid;gap:6px;min-width:0}
.ym-flash-modal__message,.ym-flash-modal__errors{margin:0;color:var(--ym-muted);font-size:.9rem;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.ym-flash-modal__errors{padding-left:1.25em}
.ym-flash-modal__button{grid-column:1/-1;width:100%;min-height:42px;margin-top:2px;border:1px solid color-mix(in srgb,var(--ym-flash-color) 44%,var(--ym-border));border-radius:12px;background:color-mix(in srgb,var(--ym-flash-color) 14%,var(--ym-surface-raised));color:var(--ym-text);font:inherit;font-size:.92rem;font-weight:750;cursor:pointer}
.ym-flash-modal__button:hover,.ym-flash-modal__button:focus-visible{background:color-mix(in srgb,var(--ym-flash-color) 26%,var(--ym-surface-raised));outline:2px solid color-mix(in srgb,var(--ym-flash-color) 55%,transparent);outline-offset:2px}
body.ym-flash-modal-open{overflow:hidden}
@keyframes ym-flash-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:480px){.ym-flash-modal{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.ym-flash-modal__card{width:100%;padding:15px;border-radius:16px}.ym-flash-modal__icon{width:36px;height:36px;font-size:1.05rem}}
@media(prefers-reduced-motion:reduce){.ym-flash-modal__card{animation:none}}
.ym-autosave-status{position:fixed;left:50%;bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));z-index:9998;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);min-height:42px;padding:9px 14px;box-sizing:border-box;border:1px solid var(--ym-border);border-radius:999px;background:rgba(16,23,34,.92);color:var(--ym-text);box-shadow:var(--ym-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:.88rem;font-weight:750;line-height:1.35;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity var(--ym-motion-fast) ease,transform var(--ym-motion-fast) ease}
.ym-autosave-status.is-visible{opacity:1;transform:translate(-50%,0)}
.ym-autosave-status[data-tone="saving"] i{color:var(--ym-accent);animation:ym-autosave-spin 1s linear infinite}
.ym-autosave-status[data-tone="success"] i{color:var(--ym-success)}
@keyframes ym-autosave-spin{to{transform:rotate(360deg)}}
@media(max-width:768px){body.has-mobile-bottom-nav .ym-autosave-status{bottom:calc(var(--ym-bottom-nav-clearance,80px) + 8px)}}

/* Shared settings modal */
.stm-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.65);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.stm-overlay.is-open{display:flex}
.stm-dialog{position:relative;background:var(--ym-surface-raised);color:var(--ym-text);border:1px solid var(--ym-border);border-radius:var(--ym-radius-md);width:min(95vw,100%);height:min(90dvh,900px);display:flex;flex-direction:column;box-shadow:var(--ym-shadow);overflow:hidden}
.stm-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--ym-border)}
.stm-header h5{margin:0;font-size:17px;font-weight:900}
.stm-header .stm-close{min-width:44px;min-height:44px}
.stm-tabs{display:flex;gap:0;border-bottom:1px solid var(--ym-border);overflow-x:auto;flex-shrink:0;scrollbar-width:thin}
.stm-tab{min-height:44px;padding:9px 16px;background:transparent;border:none;color:var(--ym-muted);cursor:pointer;white-space:nowrap;font-size:.85rem;font-weight:700;border-bottom:2px solid transparent;transition:color var(--ym-motion-fast),border-color var(--ym-motion-fast)}
.stm-tab.active{color:var(--ym-text);border-bottom-color:var(--stm-accent,var(--ym-accent))}
.stm-tab:hover{color:var(--ym-text)}
.stm-body{flex:1;min-height:0;overflow-y:auto;padding:18px;overscroll-behavior:contain}
.stm-pane{display:none}.stm-pane.active{display:block}
.stm-section-box{border:1px solid var(--ym-border);border-radius:var(--ym-radius-sm);padding:14px;margin-bottom:14px;background:rgba(255,255,255,.02)}
.stm-toast{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));right:16px;z-index:10;max-width:min(60%,320px);display:grid;gap:8px;pointer-events:none}
.stm-toast-item{display:flex;align-items:center;gap:8px;border-radius:var(--ym-radius-sm);padding:10px 14px;border:1px solid var(--ym-border);box-shadow:var(--ym-shadow-sm);font-weight:700;font-size:.82rem;opacity:0;transform:translateY(8px);transition:opacity var(--ym-motion-base),transform var(--ym-motion-base);pointer-events:auto}
.stm-toast-item.is-visible{opacity:1;transform:translateY(0)}
.stm-toast-item--success{border-color:#1f4d33;background:rgba(18,32,24,.96);color:#b6f4c6}
.stm-toast-item--error{border-color:#7a2c2c;background:rgba(36,20,23,.96);color:#ffb4b4}
.stm-toast-item--saving{border-color:#3a3520;background:rgba(30,28,16,.96);color:#f5e6a0}
@media(max-width:640px){.stm-overlay{align-items:flex-end;padding:0}.stm-dialog{width:100%;max-width:none!important;height:min(92dvh,900px);border-radius:var(--ym-radius-md) var(--ym-radius-md) 0 0}.stm-body{padding:14px}.stm-toast{left:12px;right:12px;max-width:none}}

/* Bootstrap/native modal foundation. :where keeps feature-specific overrides working. */
:where(.modal-backdrop.show){opacity:.72}
:where(.modal){padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
:where(.modal-dialog){margin-inline:auto;max-height:calc(100dvh - max(16px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}
:where(.modal-content){color:var(--ym-text);background:var(--ym-surface-raised);border:1px solid var(--ym-border);border-radius:var(--ym-radius-md);box-shadow:var(--ym-shadow);overflow:hidden}
:where(.modal-header,.modal-footer){gap:10px;border-color:var(--ym-border);padding:14px 16px}
:where(.modal-title){font-weight:800;line-height:1.35}
:where(.modal-body){min-width:0;max-height:min(72dvh,760px);overflow:auto;overscroll-behavior:contain;padding:16px}
:where(.modal .btn-close,.modal [data-bs-dismiss="modal"]){min-width:44px;min-height:44px}
:where(.modal input,.modal select,.modal textarea){min-height:44px}
:where(dialog.ym-dialog){width:min(94vw,720px);max-height:min(90dvh,900px);padding:0;color:var(--ym-text);background:var(--ym-surface-raised);border:1px solid var(--ym-border);border-radius:var(--ym-radius-md);box-shadow:var(--ym-shadow)}
:where(dialog.ym-dialog)::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}
body.ym-modal-open{overflow:hidden}
[data-ym-modal][aria-hidden="true"]{visibility:hidden}
[data-ym-modal].is-open{visibility:visible}
@media(max-width:640px){:where(.modal){padding:0}:where(.modal-dialog){margin:0;min-height:100%;display:flex;align-items:flex-end}:where(.modal-content){width:100%;max-height:92dvh;border-radius:var(--ym-radius-md) var(--ym-radius-md) 0 0}:where(.modal-body){max-height:none}}
:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--ym-accent);outline-offset:2px}
:where(button,a,[role="button"]){touch-action:manipulation}
[data-ym-help-panel]{border-color:var(--ym-border)!important;border-radius:var(--ym-radius-md)!important;background:linear-gradient(145deg,rgba(16,23,34,.96),rgba(10,15,23,.96))!important;box-shadow:var(--ym-shadow)}
[data-ym-help-panel] .tip-toggle{min-height:44px}
body.ym-hide-help-panels :is(
  [data-ym-help-panel],
  [data-ym-explanation],
  .help-box,
  .invoice-guide,
  .invoice-help,
  .import-guide,
  .cp-guide-card,
  .roster-help,
  .nc-template-guide,
  .notif-guide-details
){display:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
