/* 新規画面用の共通部品。印刷物の字体・用紙寸法はアプリ側が管理する。 */
@media screen {
  .ecos-app {
    margin: 0;
    color: var(--ecos-ink);
    background: var(--ecos-canvas);
    font: 400 var(--ecos-font-body)/1.6 var(--ecos-font-ui);
    color-scheme: light;
  }
  .ecos-app *, .ecos-app *::before, .ecos-app *::after { box-sizing: border-box; }
  .ecos-app :where(button, input, select, textarea) { font-family: var(--ecos-font-ui); }
  .ecos-app :where(button, a, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--ecos-blue); outline-offset: 3px;
  }
  .ecos-header {
    display: flex; align-items: center; gap: var(--ecos-space-5);
    min-height: 72px; padding: var(--ecos-space-4) var(--ecos-space-6);
    border-bottom: 1px solid var(--ecos-line); background: var(--ecos-surface);
  }
  .ecos-header-title { min-width: 0; }
  .ecos-header-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--ecos-space-2); margin-left: auto; }
  .ecos-workspace-header { display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:56px;padding:0 24px;background:var(--ecos-surface);border-bottom:1px solid var(--ecos-line); }
  .ecos-workspace-brand { flex-shrink:0;color:var(--ecos-ink-strong);font-size:13px;font-weight:600;text-decoration:none; }
  .ecos-workspace-apps { display:flex;align-items:stretch;gap:20px;min-width:0;overflow-x:auto;white-space:nowrap; }
  .ecos-workspace-apps a { display:flex;align-items:center;min-height:56px;border-bottom:2px solid transparent;color:var(--ecos-muted);font-size:12px;text-decoration:none; }
  .ecos-workspace-apps a:hover { color:var(--ecos-ink-strong); }
  .ecos-workspace-apps a[aria-current="page"] { color:var(--ecos-ink-strong);border-bottom-color:var(--ecos-ink-strong);font-weight:600; }
  .ecos-has-workspace-header { --ecos-workspace-header-height:56px;padding-top:var(--ecos-workspace-header-height); }
  .ecos-has-workspace-header > .ecos-workspace-header { position:fixed;inset:0 0 auto;z-index:20;height:var(--ecos-workspace-header-height); }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .sidebar { top:var(--ecos-workspace-header-height); }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .sidebar-toggle { top:calc(var(--ecos-workspace-header-height) + 7px); }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header.sidebar-collapsed main { padding-top:56px; }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .daily-table-sticky { top:var(--ecos-workspace-header-height); }
  .ecos-title { margin: 0; color: var(--ecos-ink-strong); font-size: var(--ecos-font-title); line-height: 1.3; font-weight: 600; letter-spacing: -.035em; }
  .ecos-section-title { margin: 0; font-size: var(--ecos-font-section); line-height: 1.5; font-weight: 600; }
  .ecos-caption { color: var(--ecos-muted); font-size: var(--ecos-font-caption); }
  .ecos-layout { display: grid; grid-template-columns: var(--ecos-sidebar-width) minmax(0, 1fr); min-height: 100vh; }
  .ecos-sidebar { padding: var(--ecos-space-6) var(--ecos-space-3); background: var(--ecos-sidebar); color: var(--ecos-sidebar-ink); }
  .ecos-nav { display: grid; gap: var(--ecos-space-1); margin-top: var(--ecos-space-6); }
  .ecos-nav-item {
    display: flex; align-items: center; gap: var(--ecos-space-3); width: 100%;
    border: 0; border-radius: var(--ecos-radius); background: transparent;
    padding: 10px var(--ecos-space-3); color: var(--ecos-sidebar-muted);
    font: 500 var(--ecos-font-label)/1.5 var(--ecos-font-ui); text-decoration: none; text-align: left;
  }
  .ecos-nav-item:hover, .ecos-nav-item[aria-current="page"] { color: #fff; background: #ffffff14; }
  .ecos-nav-item[aria-current="page"] { background: var(--ecos-blue); }
  .ecos-content { min-width: 0; padding: var(--ecos-space-6); }
  .ecos-panel { min-width: 0; border: 1px solid var(--ecos-line); border-radius: var(--ecos-radius); padding: var(--ecos-space-5); background: var(--ecos-surface); box-shadow: none; }
  .ecos-button {
    display: inline-flex; justify-content: center; align-items: center; gap: var(--ecos-space-2);
    min-height: var(--ecos-control-height); padding: 7px var(--ecos-space-3);
    border: 1px solid var(--ecos-input-line); border-radius: var(--ecos-radius);
    background: var(--ecos-surface); color: var(--ecos-ink);
    font: 600 var(--ecos-font-control)/1.5 var(--ecos-font-ui); text-decoration: none; cursor: pointer;
    transition: background var(--ecos-motion), border-color var(--ecos-motion), color var(--ecos-motion);
  }
  .ecos-button:hover:not(:disabled) { background: var(--ecos-surface-muted); border-color: #b8b8b8; }
  .ecos-button--primary { background: var(--ecos-primary); border-color: var(--ecos-primary); color: #fff; }
  .ecos-button--primary:hover:not(:disabled) { background: var(--ecos-primary-hover); border-color: var(--ecos-primary-hover); }
  .ecos-button--danger { color: var(--ecos-red); border-color: #dfbcbc; }
  .ecos-button--danger:hover:not(:disabled) { background: var(--ecos-red-soft); }
  .ecos-button:disabled { opacity: .45; cursor: not-allowed; }
  .ecos-icon { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .ecos-field { display: grid; gap: var(--ecos-space-2); }
  .ecos-label { font-size: var(--ecos-font-label); font-weight: 600; }
  .ecos-input {
    width: 100%; min-width: 0; min-height: var(--ecos-control-height);
    padding: 7px 10px; border: 1px solid var(--ecos-input-line); border-radius: var(--ecos-radius);
    color: var(--ecos-ink); background: linear-gradient(#fff, #fafafa);
    font: 400 var(--ecos-font-control)/1.6 var(--ecos-font-ui); box-shadow: inset 0 1px 2px #00000004;
  }
  .ecos-input:focus { border-color: var(--ecos-blue); }
  .ecos-input::placeholder { color: var(--ecos-muted); }
  .ecos-input[aria-invalid="true"] { border-color: var(--ecos-red); }
  textarea.ecos-input { min-height: 140px; resize: vertical; }
  .ecos-tabs { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; background: var(--ecos-surface-muted); border-radius: var(--ecos-radius); }
  .ecos-tabs > button { min-height: 30px; padding: 5px 12px; border: 0; border-radius: var(--ecos-radius); color: var(--ecos-ink); background: transparent; font: 600 var(--ecos-font-control)/1.5 var(--ecos-font-ui); cursor: pointer; }
  .ecos-tabs > button:hover { background: #e7e7e7; }
  .ecos-tabs > button[aria-pressed="true"], .ecos-tabs > button[aria-selected="true"] { color: var(--ecos-blue); background: #fff; }
  .ecos-table-wrap { overflow-x: auto; }
  .ecos-table { border-collapse: collapse; width: 100%; font-size: var(--ecos-font-control); }
  .ecos-table th, .ecos-table td { padding: 10px 12px; border-bottom: 1px solid var(--ecos-line); text-align: left; }
  .ecos-table th { background: var(--ecos-surface-muted); font-weight: 600; }
  .ecos-table .ecos-number { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .ecos-table .ecos-day--saturday { background: var(--ecos-blue-soft); }
  .ecos-table .ecos-day--holiday { background: var(--ecos-red-soft); }
  .ecos-number { font-variant-numeric: tabular-nums; }
  .ecos-status { display: inline-flex; align-items: center; gap: 6px; font-size: var(--ecos-font-caption); }
  .ecos-status::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
  .ecos-status--success { color: var(--ecos-green); }
  .ecos-status--error { color: var(--ecos-red); }
  .ecos-status--warning { color: var(--ecos-amber); }
  .ecos-popover { border: 1px solid var(--ecos-line); border-radius: var(--ecos-radius); background: var(--ecos-surface); box-shadow: var(--ecos-popover-shadow); }
}
@media screen and (max-width: 650px) {
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .sidebar { top:0; }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .sidebar .navigation { flex-wrap:wrap; }
}
@media screen and (max-width: 600px) {
  .ecos-workspace-header { flex-wrap:wrap;gap:0;padding:0 16px; }
  .ecos-workspace-brand { display:flex;align-items:center;min-height:44px; }
  .ecos-workspace-apps { width:100%;gap:20px; }
  .ecos-workspace-apps a { min-height:44px; }
  .ecos-has-workspace-header { --ecos-workspace-header-height:88px; }
  .ecos-app[data-ecos-app="report"].ecos-has-workspace-header .sidebar { top:0; }
  .ecos-header { flex-wrap: wrap; gap: var(--ecos-space-3); padding: var(--ecos-space-4); }
  .ecos-header-title { flex: 1 0 100%; }
  .ecos-header-actions { margin-left: 0; width: 100%; }
  .ecos-title { font-size: 20px; }
  .ecos-content { padding: var(--ecos-space-4); }
  .ecos-panel { padding: var(--ecos-space-4); }
  .ecos-layout { grid-template-columns: 1fr; }
  .ecos-button, .ecos-input, .ecos-tabs > button { min-height: var(--ecos-touch-height); }
  .ecos-input { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .ecos-app *, .ecos-app *::before, .ecos-app *::after { transition: none !important; }
}
