:root{
  --bg:#f5f7fb;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;
  --primary:#111827;--soft:#f3f4f6;--ok:#0f766e;--warn:#b45309;--danger:#b91c1c;
  --radius:20px;--shadow:0 10px 30px rgba(17,24,39,.08)
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
body{min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
.shell{max-width:820px;margin:0 auto;min-height:100vh;padding-bottom:96px}
.topbar{position:sticky;top:0;z-index:20;background:rgba(245,247,251,.94);backdrop-filter:blur(14px);padding:16px;border-bottom:1px solid rgba(229,231,235,.8)}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:44px;height:44px;border-radius:14px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:900;font-size:19px;box-shadow:var(--shadow)}
.brand h1{margin:0;font-size:20px}
.brand p{margin:2px 0 0;color:var(--muted);font-size:12px}
.content{padding:14px 16px 32px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.card h2,.card h3{margin:0 0 14px}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.muted{color:var(--muted)} .small{font-size:12px}
.center{text-align:center}
.setup-wrap,.login-wrap{max-width:520px;margin:0 auto;padding:38px 16px}
.hero{text-align:center;margin-bottom:22px}
.hero .logo{width:74px;height:74px;border-radius:24px;margin:0 auto 14px;font-size:31px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:800;margin-bottom:7px}
.field input,.field select,.text-input{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;outline:none}
.field input:focus,.field select:focus,.text-input:focus{border-color:#9ca3af;box-shadow:0 0 0 3px rgba(156,163,175,.15)}
.btn{width:100%;border:0;border-radius:14px;padding:14px 16px;font-weight:900}
.btn.primary{background:var(--primary);color:white}
.btn.secondary{background:#eef0f3;color:var(--text)}
.btn.ok{background:#ecfdf5;color:var(--ok)}
.btn.warn{background:#fff7ed;color:var(--warn)}
.btn.danger{background:#fef2f2;color:var(--danger)}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.status-box{border-radius:18px;padding:16px;background:#f9fafb;border:1px solid var(--line);margin-bottom:14px}
.status-main{font-size:28px;font-weight:900;letter-spacing:-.02em}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.metric{background:#f9fafb;border:1px solid var(--line);border-radius:16px;padding:14px}
.metric .value{font-size:24px;font-weight:900;margin-top:4px}
.metric .label{color:var(--muted);font-size:12px}
.project-card{border:1px solid var(--line);border-radius:18px;padding:15px;margin-bottom:10px}
.project-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.project-name{font-weight:900}
.inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.inline-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.inline-field input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px}
.timeline{display:grid;gap:8px}
.timeline-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#f9fafb;border:1px solid var(--line);font-size:13px}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(820px,100%);display:grid;grid-template-columns:repeat(3,1fr);background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom));z-index:30}
.nav-btn{border:0;background:transparent;border-radius:12px;padding:10px 6px;color:var(--muted);font-size:12px;font-weight:900}
.nav-btn.active{background:var(--soft);color:var(--text)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--muted);font-weight:900}
.row{display:flex;gap:10px;align-items:center}
.row>*{flex:1}
.pill{display:inline-block;padding:6px 9px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:900}
.pill.ok{background:#ecfdf5;color:var(--ok)}
.pill.warn{background:#fff7ed;color:var(--warn)}
.pill.danger{background:#fef2f2;color:var(--danger)}
.empty{text-align:center;padding:28px 12px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:94px;transform:translateX(-50%);background:#111827;color:white;padding:11px 14px;border-radius:12px;font-size:13px;z-index:100;box-shadow:var(--shadow);max-width:90%}
.link-btn{border:0;background:transparent;color:var(--muted);font-weight:800;padding:0}
.notice{padding:14px;border:1px solid #fde68a;background:#fffbeb;border-radius:14px;color:#92400e;font-size:13px;line-height:1.7}
.success{padding:14px;border:1px solid #a7f3d0;background:#ecfdf5;border-radius:14px;color:#065f46;font-size:13px;line-height:1.7}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.tab{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;font-weight:900}
.tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.staff-actions{display:flex;gap:8px;align-items:center}
.staff-actions select{border:1px solid var(--line);border-radius:10px;padding:8px}
.toggle{display:flex;align-items:center;gap:6px;font-size:12px}
code.inline{background:#f3f4f6;border-radius:7px;padding:2px 6px}
@media(min-width:680px){.content{padding-left:24px;padding-right:24px}.metric-grid{grid-template-columns:repeat(4,1fr)}}


/* v0.4: supplied Ayumi Connect logo + smartphone refinements */
body {
  -webkit-tap-highlight-color: transparent;
  overscroll-behavior-y: none;
}
.brand-logo {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  flex: 0 0 auto;
}
.hero-logo {
  display: block;
  width: 176px;
  height: 176px;
  object-fit: contain;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #fff;
}
.topbar {
  padding-top: calc(14px + env(safe-area-inset-top));
}
.bottom-nav {
  min-height: 70px;
}
.nav-btn {
  min-height: 48px;
  font-size: 13px;
}
.btn {
  min-height: 52px;
  touch-action: manipulation;
}
input, select {
  min-height: 48px;
}
.install-note {
  padding: 13px 14px;
  border-radius: 14px;
  background: #f9fafb;
  border: 1px solid var(--line);
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
}
.mobile-only { display: none; }

@media (max-width: 520px) {
  .shell { width: 100%; }
  .topbar { padding-left: 14px; padding-right: 14px; }
  .brand h1 { font-size: 18px; }
  .brand p { max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .content { padding: 12px 12px 26px; }
  .card { border-radius: 17px; padding: 15px; margin-bottom: 11px; }
  .card h2 { font-size: 21px; }
  .card h3 { font-size: 18px; }
  .status-main { font-size: 26px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric { padding: 12px; min-width: 0; }
  .metric .value { font-size: 22px; overflow-wrap: anywhere; }
  .inputs { grid-template-columns: 1fr 1fr; }
  .project-card { padding: 13px; }
  .section-title { align-items: flex-start; }
  .setup-wrap, .login-wrap { padding: 22px 12px calc(24px + env(safe-area-inset-bottom)); }
  .hero-logo { width: 148px; height: 148px; }
  .table-wrap { margin: 0 -3px; }
  th, td { padding: 10px 7px; }
  .timeline-item { align-items: flex-start; }
  .staff-actions { flex-direction: column; align-items: flex-end; }
  .row { align-items: stretch; }
  .bottom-nav { padding-left: 7px; padding-right: 7px; }
  .mobile-only { display: block; }
}

@media (max-width: 370px) {
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 7px; }
  .metric .value { font-size: 20px; }
  .inputs { gap: 7px; }
}


/* ===== v0.5 社内運用機能 ===== */
.bottom-nav {
  grid-template-columns: repeat(var(--nav-count, 4), minmax(0, 1fr));
}
.nav-btn {
  min-width: 0;
  padding-left: 3px;
  padding-right: 3px;
}
.admin-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 14px;
}
.admin-tab {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 11px;
  padding: 10px 5px;
  font-size: 12px;
  font-weight: 900;
  color: var(--muted);
}
.admin-tab.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.actions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.request-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 10px;
  background: #fff;
}
.request-head {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  align-items: flex-start;
}
.request-meta {
  font-size: 12px;
  color: var(--muted);
  margin-top: 5px;
  line-height: 1.6;
}
.request-note {
  margin-top: 10px;
  background: #f9fafb;
  border-radius: 11px;
  padding: 10px;
  font-size: 13px;
  white-space: pre-wrap;
}
.pill.pending { background: #fff7ed; color: #b45309; }
.pill.approved { background: #ecfdf5; color: #0f766e; }
.pill.rejected { background: #fef2f2; color: #b91c1c; }
.pill.incomplete { background: #fef2f2; color: #b91c1c; }
.month-picker-row {
  display: flex;
  gap: 8px;
  align-items: end;
}
.month-picker-row .field { flex: 1; margin-bottom: 0; }
.csv-buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}
.subtle {
  background: #f9fafb;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
}
.stack { display: grid; gap: 10px; }
.table-note {
  margin-top: 8px;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.6;
}
.danger-text { color: var(--danger); }
.approval-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}
.approval-actions .btn { min-height: 42px; padding: 10px; }
.compact-field { margin-bottom: 10px; }
.compact-field label {
  display: block;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 5px;
}
.compact-field input,
.compact-field select,
.compact-field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 11px;
  background: #fff;
  font: inherit;
}
.compact-field textarea {
  min-height: 86px;
  resize: vertical;
}
.history-day-status {
  display: inline-flex;
  margin-left: 5px;
  vertical-align: middle;
}

@media (max-width: 520px) {
  .admin-tabs { grid-template-columns: repeat(2, 1fr); }
  .actions-grid, .csv-buttons { grid-template-columns: 1fr; }
  .nav-btn { font-size: 11px; }
  .request-head { flex-direction: column; }
  .month-picker-row { align-items: stretch; flex-direction: column; }
}


/* ===== v0.6 勤怠・給与・シフト強化 ===== */
.admin-tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.v06-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.v06-summary .metric { min-width:0; }
.v06-kpi {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.v06-kpi > div {
  background:#f9fafb;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  font-size:12px;
}
.v06-kpi strong {
  display:block;
  margin-top:3px;
  font-size:17px;
}
.v06-shift-card {
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  margin-bottom:9px;
  background:#fff;
}
.v06-shift-date {
  font-weight:900;
  font-size:14px;
}
.v06-shift-detail {
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
.v06-grid-3 {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.v06-grid-4 {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.v06-form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.v06-announcement {
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  margin-bottom:10px;
  background:#fff;
}
.v06-announcement.important {
  border-color:#f59e0b;
  background:#fffbeb;
}
.v06-announcement-title {
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:900;
}
.v06-announcement-body {
  white-space:pre-wrap;
  margin-top:8px;
  font-size:13px;
  line-height:1.7;
}
.v06-payroll-note {
  background:#f9fafb;
  border:1px solid var(--line);
  border-radius:13px;
  padding:12px;
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
}
.v06-rule {
  border-left:4px solid #111827;
  padding:8px 12px;
  background:#f9fafb;
  border-radius:0 12px 12px 0;
  font-size:12px;
  line-height:1.7;
}
.v06-badge {
  display:inline-block;
  border-radius:999px;
  padding:4px 7px;
  font-size:10px;
  font-weight:900;
  background:#f3f4f6;
}
.v06-badge.warn {background:#fff7ed;color:#b45309}
.v06-badge.ok {background:#ecfdf5;color:#0f766e}
.v06-badge.danger {background:#fef2f2;color:#b91c1c}
.v06-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:14px;
}
.v06-tab {
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:#fff;
  font-weight:900;
}
.v06-tab.active {background:#111827;color:#fff}
.v06-money {
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.v06-scroll-x {overflow-x:auto}
.v06-inline-actions {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.v06-inline-actions .btn {
  width:auto;
  min-height:38px;
  padding:8px 11px;
  font-size:12px;
}
.v06-compact {
  font-size:12px;
  color:var(--muted);
  line-height:1.6;
}
.v06-list {
  display:grid;
  gap:8px;
}
.v06-list-item {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--line);
  padding:9px 0;
}
.v06-list-item:last-child {border-bottom:0}
@media (max-width: 620px) {
  .admin-tabs {grid-template-columns:repeat(2,1fr)}
  .v06-grid-3,.v06-grid-4 {grid-template-columns:repeat(2,1fr)}
  .v06-form-row {grid-template-columns:1fr}
  .v06-kpi {grid-template-columns:1fr}
}


/* ===== v0.6.1 月間シフト一括入力 ===== */
.v061-bulk-tools {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}
.v061-shift-head,
.v061-shift-row {
  display:grid;
  grid-template-columns:72px 70px 105px 105px 130px minmax(220px,1fr);
  gap:8px;
  align-items:center;
}
.v061-shift-head {
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  padding:0 8px 7px;
}
.v061-shift-list {
  display:grid;
  gap:6px;
}
.v061-shift-row {
  border:1px solid var(--line);
  border-radius:13px;
  padding:8px;
  background:#fff;
}
.v061-shift-row input[type="time"],
.v061-shift-row select {
  width:100%;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:9px;
  padding:7px;
  background:#fff;
}
.v061-date-cell {
  display:flex;
  gap:5px;
  align-items:center;
}
.v061-weekday {
  color:var(--muted);
  font-size:11px;
}
.v061-off-label {
  display:flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  white-space:nowrap;
}
.v061-custom-break {
  display:flex;
  align-items:center;
  gap:5px;
}
.v061-custom-break input { min-width:88px; }

@media(max-width:760px){
  .v061-shift-head { display:none; }
  .v061-shift-row {
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .v061-date-cell {
    grid-column:1 / -1;
    font-size:15px;
  }
  .v061-custom-break {
    grid-column:1 / -1;
  }
  .v061-bulk-tools {
    grid-template-columns:1fr;
  }
}


/* ===== v0.6.2 スタッフ月間シフト提出 ===== */
.v062-request-tabs {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-bottom:14px;
}
.v062-month-head,
.v062-submit-row {
  display:grid;
  grid-template-columns:155px 70px 120px 120px 150px minmax(220px,1fr);
  gap:8px;
  align-items:center;
}
.v062-month-head {
  padding:0 8px 7px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
}
.v062-month-list {
  display:grid;
  gap:6px;
}
.v062-submit-row {
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  padding:8px;
}
.v062-submit-row select {
  width:100%;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:7px;
}
.v062-date { font-size:13px; }
.v062-off {
  display:flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  white-space:nowrap;
}
.v062-custom {
  display:flex;
  align-items:center;
  gap:5px;
}
.v062-custom select { min-width:90px; }

.v062-admin-month-preview {
  display:grid;
  gap:4px;
  margin-top:9px;
  max-height:300px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px;
  background:#f9fafb;
}
.v062-admin-month-preview > div {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:12px;
  border-bottom:1px solid var(--line);
  padding:6px 0;
}
.v062-admin-month-preview > div:last-child {border-bottom:0}

@media(max-width:760px){
  .v062-request-tabs { grid-template-columns:1fr; }
  .v062-month-head { display:none; }
  .v062-submit-row { grid-template-columns:1fr 1fr; }
  .v062-date {
    grid-column:1 / -1;
    font-size:15px;
    padding-bottom:2px;
  }
  .v062-custom { grid-column:1 / -1; }
}


/* ===== v0.6.3 平日一括反映 ===== */
.v063-bulk-box {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border:1px solid var(--line);
  background:#f9fafb;
  border-radius:14px;
  padding:12px;
  margin-bottom:12px;
}
.v063-bulk-box .btn {
  width:auto;
  min-width:230px;
}
@media(max-width:760px){
  .v063-bulk-box {
    flex-direction:column;
    align-items:stretch;
  }
  .v063-bulk-box .btn {
    width:100%;
    min-width:0;
  }
}


/* ===== v0.6.4 管理者 月間シフト一覧 ===== */
.v064-legend {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:10px;
  font-size:12px;
  color:var(--muted);
}
.v064-legend span {
  display:flex;
  align-items:center;
  gap:5px;
}
.v064-legend i {
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}
.v064-legend i.pending { background:#f59e0b; }
.v064-legend i.approved { background:#10b981; }
.v064-legend i.official { background:#6b7280; }

.v064-matrix-wrap {
  overflow:auto;
  max-height:68vh;
  border:1px solid var(--line);
  border-radius:14px;
}
.v064-matrix {
  border-collapse:separate;
  border-spacing:0;
  min-width:max-content;
  width:100%;
  font-size:12px;
}
.v064-matrix th,
.v064-matrix td {
  min-width:145px;
  padding:9px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  text-align:center;
  vertical-align:middle;
}
.v064-matrix thead th {
  position:sticky;
  top:0;
  z-index:4;
  background:#f9fafb;
  font-weight:900;
}
.v064-matrix .v064-date-col {
  position:sticky;
  left:0;
  z-index:3;
  min-width:130px;
  background:#f9fafb;
  text-align:left;
  font-weight:900;
}
.v064-matrix thead .v064-date-col {
  z-index:5;
}
.v064-weekday {
  color:var(--muted);
  font-size:11px;
  margin-left:3px;
}
.v064-cell-content {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.v064-status {
  display:inline-block;
  padding:3px 6px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
}
.v064-status.pending {
  background:#fff7ed;
  color:#b45309;
}
.v064-status.approved {
  background:#ecfdf5;
  color:#0f766e;
}
.v064-status.official {
  background:#f3f4f6;
  color:#4b5563;
}
.v064-empty {
  color:#9ca3af;
  font-size:11px;
}
@media(max-width:760px){
  .v064-matrix th,
  .v064-matrix td {
    min-width:125px;
    padding:8px;
  }
  .v064-matrix .v064-date-col {
    min-width:112px;
  }
}


/* ===== v0.6.6 Googleシート連携 ===== */
.v066-google-box {
  border:1px solid var(--line);
  background:#f9fafb;
  border-radius:14px;
  padding:12px;
  margin-bottom:12px;
}
.v066-google-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.v066-google-actions .btn {
  width:auto;
}
@media(max-width:760px){
  .v066-google-actions {
    display:grid;
    grid-template-columns:1fr;
  }
  .v066-google-actions .btn {
    width:100%;
  }
}


/* ===== v0.6.7 スタッフ並び順 ===== */
.v067-order-note {
  background:#f9fafb;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  margin-bottom:10px;
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
}
.v067-order-number {
  flex:0 0 28px;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#f3f4f6;
  font-size:11px;
  font-weight:900;
}
.v067-order-actions {
  display:flex;
  gap:5px;
}
.v067-arrow {
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  font-weight:900;
  cursor:pointer;
}
@media(max-width:760px){
  .v067-order-actions {
    flex-direction:column;
  }
  .v067-arrow {
    width:38px;
    height:30px;
  }
}


/* ===== v0.7.3 シフトUI / 分割勤務 / 曜日色 ===== */
.v073-month-list,
.v073-admin-shift-list {
  display:grid;
  gap:10px;
}

.v073-submit-card,
.v073-admin-shift-card {
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
  min-width:0;
  overflow:hidden;
}

.v073-submit-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.v073-date {
  font-size:14px;
  font-weight:900;
}

.v073-off {
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  font-size:12px;
  font-weight:800;
}

.v073-field-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  min-width:0;
}

.v073-field {
  display:grid;
  gap:5px;
  min-width:0;
}

.v073-field > span {
  font-size:11px;
  font-weight:800;
  color:var(--muted);
}

.v073-field select,
.v073-field input[type="time"] {
  width:100%;
  min-width:0;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:7px;
  box-sizing:border-box;
}

.v073-range {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:5px;
  min-width:0;
}

.v073-range b {
  color:var(--muted);
  font-size:11px;
}

.v073-saturday .v073-date strong,
.v073-date-sat,
.v073-date-sat .v064-weekday {
  color:#2563eb !important;
}

.v073-sunday .v073-date strong,
.v073-date-sun,
.v073-date-sun .v064-weekday {
  color:#dc2626 !important;
}

.v073-saturday {
  border-left:4px solid #93c5fd;
}

.v073-sunday {
  border-left:4px solid #fca5a5;
}

/* 管理一覧の日付背景はそのまま、文字だけ曜日色 */
.v064-matrix .v073-date-sat,
.v064-matrix .v073-date-sun {
  background:#f9fafb;
}

/* 旧横長ヘッダーを使わない */
.v062-month-head,
.v061-shift-head {
  display:none !important;
}

@media(max-width:760px){
  .v073-field-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:500px){
  .v073-field-grid {
    grid-template-columns:1fr;
  }

  .v073-submit-card,
  .v073-admin-shift-card {
    padding:10px;
  }
}


/* ===== v0.7.5 お知らせ未読バッジ ===== */
.nav-btn {
  position:relative;
}

.v075-nav-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:10px;
  line-height:1;
  font-weight:900;
  margin-left:5px;
  vertical-align:middle;
  box-shadow:0 0 0 2px #fff;
}

.bottom-nav .v075-nav-badge {
  position:absolute;
  top:5px;
  right:calc(50% - 34px);
  margin:0;
}

.v075-ann-head-actions {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}

.v075-admin-note {
  border:1px solid var(--line);
  background:#f9fafb;
  border-radius:12px;
  padding:10px;
  margin-bottom:12px;
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
}


/* ===== v0.7.6 案件実績カード ===== */
.v076-result-note {
  border:1px solid var(--line);
  background:#f9fafb;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:14px;
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
}

.v076-project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v076-project-card {
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#fff;
  min-width:0;
}

.v076-project-card.inactive {
  background:#f9fafb;
  opacity:.72;
}

.v076-project-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:13px;
}

.v076-project-title-wrap {
  min-width:0;
}

.v076-project-name {
  font-size:16px;
  font-weight:900;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.v076-project-kana {
  margin-top:3px;
  font-size:10px;
  color:var(--muted);
}

.v076-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  padding:4px 8px;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}

.v076-status.active {
  background:#ecfdf5;
  color:#047857;
}

.v076-status.inactive {
  background:#f3f4f6;
  color:#6b7280;
}

.v076-field {
  display:grid;
  gap:5px;
  min-width:0;
}

.v076-field > span,
.v076-mini-field > span {
  font-size:11px;
  font-weight:800;
  color:var(--muted);
}

.v076-field input,
.v076-field select,
.v076-mini-field input {
  width:100%;
  min-width:0;
  min-height:42px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:8px 10px;
  font-size:14px;
}

.v076-number-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:9px;
}

.v076-metrics {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}

.v076-metrics > div {
  border:1px solid var(--line);
  border-radius:11px;
  background:#f9fafb;
  padding:9px;
  min-width:0;
}

.v076-metrics span {
  display:block;
  font-size:10px;
  color:var(--muted);
  line-height:1.3;
}

.v076-metrics strong {
  display:block;
  margin-top:4px;
  font-size:17px;
}

/* 管理者 案件登録 */
.v076-admin-project-create {
  display:grid;
  grid-template-columns:1.2fr 1.2fr .8fr auto;
  gap:9px;
  align-items:end;
  padding:12px;
  background:#f9fafb;
  border:1px solid var(--line);
  border-radius:14px;
  margin-bottom:13px;
}

.v076-admin-project-create select {
  width:100%;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:8px;
}

.v076-admin-project-create .btn {
  min-height:42px;
  width:auto;
}

.v076-admin-project-list {
  display:grid;
  gap:8px;
}

.v076-admin-project-row {
  display:grid;
  grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) 110px auto;
  gap:9px;
  align-items:end;
  border:1px solid var(--line);
  border-radius:13px;
  padding:11px;
  background:#fff;
}

.v076-admin-project-main {
  align-self:center;
  min-width:0;
}

.v076-admin-project-main strong {
  margin-right:6px;
}

.v076-mini-field {
  display:grid;
  gap:4px;
  min-width:0;
}

.v076-project-actions {
  display:flex;
  gap:6px;
  align-items:center;
}

.v076-project-actions .btn {
  width:auto;
  min-height:40px;
  padding:7px 10px;
  font-size:11px;
}

@media(max-width:900px){
  .v076-project-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v076-admin-project-create {
    grid-template-columns:1fr 1fr;
  }

  .v076-admin-project-row {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:600px){
  .v076-project-grid {
    grid-template-columns:1fr;
  }

  .v076-admin-project-create,
  .v076-admin-project-row {
    grid-template-columns:1fr;
  }

  .v076-project-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .v076-project-actions .btn {
    width:100%;
  }
}


/* ===== v0.7.8 実績 日次・月次アコーディオン ===== */
.v078-filter-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v078-accordion {
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  margin-bottom:10px;
  overflow:hidden;
}

.v078-accordion summary {
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  user-select:none;
  position:relative;
}

.v078-accordion summary::-webkit-details-marker {
  display:none;
}

.v078-accordion summary::after {
  content:"＋";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:20px;
  font-weight:800;
  color:var(--muted);
}

.v078-accordion[open] summary::after {
  content:"−";
}

.v078-accordion summary > div {
  display:grid;
  gap:3px;
  padding-right:34px;
}

.v078-accordion summary strong {
  font-size:15px;
}

.v078-accordion summary span {
  font-size:11px;
  color:var(--muted);
}

.v078-accordion-body {
  border-top:1px solid var(--line);
  padding:14px;
}

.v078-secondary summary {
  background:#fafafa;
}

.v078-total-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}

.v078-total-metric {
  border:1px solid var(--line);
  border-radius:12px;
  background:#f9fafb;
  padding:11px;
  min-width:0;
}

.v078-total-metric span {
  display:block;
  font-size:10px;
  color:var(--muted);
  line-height:1.35;
}

.v078-total-metric strong {
  display:block;
  margin-top:5px;
  font-size:18px;
}

.v078-results-table th,
.v078-results-table td {
  white-space:nowrap;
}

.v078-project-cell {
  display:flex;
  align-items:center;
  gap:7px;
  min-width:170px;
}

.v078-inactive-row {
  background:#fafafa;
  color:#6b7280;
}

@media(max-width:760px){
  .v078-filter-grid {
    grid-template-columns:1fr;
  }

  .v078-total-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:460px){
  .v078-total-grid {
    grid-template-columns:1fr;
  }
}


/* ===== v0.7.9 管理者シフト 月切替・開閉 ===== */
.v079-month-controls {
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  gap:10px;
  align-items:end;
  margin-bottom:8px;
}

.v079-month-buttons {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.v079-month-buttons .btn {
  width:auto;
  min-width:72px;
}

.v079-admin-shift-accordion {
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
  margin-bottom:14px;
}

.v079-admin-shift-accordion summary {
  list-style:none;
  cursor:pointer;
  padding:15px 16px;
  position:relative;
  user-select:none;
}

.v079-admin-shift-accordion summary::-webkit-details-marker {
  display:none;
}

.v079-admin-shift-accordion summary::after {
  content:"＋";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:20px;
  font-weight:900;
  color:var(--muted);
}

.v079-admin-shift-accordion[open] summary::after {
  content:"−";
}

.v079-admin-shift-accordion summary > div {
  display:grid;
  gap:3px;
  padding-right:34px;
}

.v079-admin-shift-accordion summary strong {
  font-size:16px;
}

.v079-admin-shift-accordion summary span {
  font-size:11px;
  color:var(--muted);
}

.v079-admin-shift-body {
  border-top:1px solid var(--line);
  padding:14px;
}

@media(max-width:700px){
  .v079-month-controls {
    grid-template-columns:1fr;
  }

  .v079-month-buttons {
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }

  .v079-month-buttons .btn {
    width:100%;
    min-width:0;
  }
}


/* ===== v0.8.0 歩みコネクト ブランドテーマ ===== */
:root{
  --bg:#f4f8f2;
  --card:#ffffff;
  --text:#17301a;
  --muted:#68766a;
  --line:#dce8d9;
  --primary:#1f5424;
  --soft:#eaf3e8;
  --ok:#2d7a38;
  --warn:#b7791f;
  --danger:#a52a2a;
  --brand-green:#1f5424;
  --brand-green-dark:#143d18;
  --brand-green-soft:#edf6eb;
  --brand-red:#7b1618;
  --brand-red-soft:#fbefef;
  --shadow:0 10px 30px rgba(31,84,36,.08);
}

html,body{
  background:
    radial-gradient(circle at 8% 0%, rgba(31,84,36,.09), transparent 30%),
    radial-gradient(circle at 94% 7%, rgba(123,22,24,.045), transparent 25%),
    linear-gradient(180deg,#f8fbf7 0%,#f3f7f1 100%);
}

.topbar{
  background:rgba(248,251,247,.95);
  border-bottom:1px solid rgba(31,84,36,.13);
}

.brand h1{
  color:var(--brand-green-dark);
  letter-spacing:.01em;
}

.brand-logo{
  border:1px solid rgba(123,22,24,.16);
  box-shadow:0 4px 14px rgba(31,84,36,.10);
}

.card,
.v078-accordion,
.v079-admin-shift-accordion{
  border-color:var(--line);
  box-shadow:var(--shadow);
}

.card h2,
.card h3,
.v078-accordion summary strong,
.v079-admin-shift-accordion summary strong{
  color:var(--brand-green-dark);
}

.btn.primary{
  background:linear-gradient(180deg,#2b6a31 0%,#1f5424 100%);
  color:#fff;
  box-shadow:0 7px 18px rgba(31,84,36,.16);
}

.btn.primary:hover{
  filter:brightness(.98);
}

.attendance-start{
  background:linear-gradient(180deg,#43a653 0%,#2f833b 100%) !important;
  color:#fff !important;
  border:1px solid rgba(21,91,34,.28) !important;
  box-shadow:0 8px 20px rgba(47,131,59,.24) !important;
  font-size:16px;
  letter-spacing:.03em;
}

.status-box{
  background:linear-gradient(180deg,#f7fbf5 0%,#eef6ec 100%);
  border-color:#d5e7d1;
}

.metric,
.v078-total-metric{
  background:#f8fbf7;
  border-color:#dce8d9;
}

.field input:focus,
.field select:focus,
.text-input:focus,
.compact-field input:focus,
.compact-field select:focus{
  border-color:#6ba972 !important;
  box-shadow:0 0 0 3px rgba(71,132,78,.13) !important;
  outline:none;
}

.nav-btn.active{
  background:#e5f1e3 !important;
  color:var(--brand-green-dark) !important;
}

.tab.active,
.admin-tab.active,
.v06-tab.active{
  background:var(--brand-green) !important;
  border-color:var(--brand-green) !important;
  color:#fff !important;
}

.bottom-nav{
  background:rgba(255,255,255,.96);
  border-top:1px solid #dbe7d8;
  box-shadow:0 -8px 24px rgba(31,84,36,.05);
}

.pill.ok,
.v076-status.active{
  background:#e7f5e7 !important;
  color:#267233 !important;
}

.v06-rule{
  border-left-color:var(--brand-green) !important;
  background:#f5faf3 !important;
}

.v078-accordion summary,
.v079-admin-shift-accordion summary{
  background:linear-gradient(180deg,#fff 0%,#fbfdfb 100%);
}

.v080-filter-help{
  margin-top:5px;
  font-size:10px;
  line-height:1.45;
  color:var(--muted);
}

.v080-summary-label{
  margin-top:13px;
  font-size:11px;
  font-weight:900;
  color:var(--brand-green);
  letter-spacing:.02em;
}

/* ロゴの赤を細いアクセントとして使用 */
.topbar::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:-1px;
  height:1px;
  background:linear-gradient(90deg,var(--brand-green),rgba(31,84,36,.08) 68%,rgba(123,22,24,.38));
  pointer-events:none;
}


/* ===== v0.8.1 月次サマリー拡張 ===== */
.v081-summary-grid .metric{
  min-height: 86px;
}
.v081-summary-grid .metric .value{
  line-height: 1.1;
}
@media(min-width: 680px){
  .v081-summary-grid{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}
@media(min-width: 980px){
  .v081-summary-grid{
    grid-template-columns: repeat(4, minmax(0,1fr));
  }
}


/* ===== v0.8.2 シフト開始前の早打刻除外 ===== */
.v082-note{
  margin-left:5px;
  font-size:9px;
  color:var(--muted);
  font-weight:600;
}


/* ===== v0.8.3 アカウント設定 ===== */
.v083-current-account{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:12px;
}

.v083-current-account > div{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:12px;
  padding:11px;
  min-width:0;
}

.v083-current-account span{
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:4px;
}

.v083-current-account strong{
  display:block;
  font-size:13px;
  overflow-wrap:anywhere;
}

.v083-setting-accordion{
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
  margin-bottom:10px;
  box-shadow:var(--shadow);
}

.v083-setting-accordion summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  position:relative;
  user-select:none;
}

.v083-setting-accordion summary::-webkit-details-marker{
  display:none;
}

.v083-setting-accordion summary::after{
  content:"＋";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:20px;
  color:var(--muted);
  font-weight:900;
}

.v083-setting-accordion[open] summary::after{
  content:"−";
}

.v083-setting-accordion summary > div{
  display:grid;
  gap:3px;
  padding-right:34px;
}

.v083-setting-accordion summary strong{
  color:var(--brand-green-dark);
  font-size:15px;
}

.v083-setting-accordion summary span{
  color:var(--muted);
  font-size:11px;
}

.v083-setting-body{
  border-top:1px solid var(--line);
  padding:14px;
}

.v083-setting-body .btn{
  margin-top:10px;
}

.v083-password-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v083-security-note{
  border:1px solid #d7e6d3;
  background:#f4faf2;
  border-radius:12px;
  padding:10px 12px;
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:12px;
}

.v083-account-table th,
.v083-account-table td{
  white-space:nowrap;
}

.v083-password-admin{
  display:flex;
  align-items:center;
  gap:10px;
}

.v083-password-admin > span{
  color:var(--muted);
  font-size:11px;
}

.v083-password-admin .link-btn{
  color:var(--brand-green);
  cursor:pointer;
}

.v083-logout{
  border-color:#d8b7b8 !important;
  color:#8e1f21 !important;
  background:#fff7f7 !important;
}

@media(max-width:700px){
  .v083-current-account{
    grid-template-columns:1fr;
  }

  .v083-password-grid{
    grid-template-columns:1fr;
  }
}


/* ===== v0.8.4 設定画面 ホーム追加案内 ===== */
.v084-install-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:12px;
  border:1px solid #d7e6d3;
  background:linear-gradient(180deg,#f6fbf4 0%,#edf6eb 100%);
  border-radius:13px;
  padding:11px 12px;
}

.v084-install-icon{
  flex:0 0 34px;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:#fff;
  border:1px solid #d5e7d1;
  color:var(--brand-green);
  font-size:18px;
  font-weight:900;
}

.v084-install-note strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:13px;
  line-height:1.4;
}

.v084-install-note p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
}


/* ===== v0.8.5 案件修正・安全削除・月別インセンティブ ===== */
.v085-incentive-form{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1.3fr;
  gap:9px;
  align-items:end;
}

.v085-incentive-list{
  display:grid;
  gap:7px;
  margin-top:12px;
}

.v085-incentive-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  border-radius:11px;
  padding:9px 11px;
  background:#f9fbf8;
}

.v085-project-actions{
  flex-wrap:wrap;
}

.v085-delete-project{
  background:#fff7f7 !important;
  color:#a1282a !important;
  border:1px solid #e7caca !important;
}

.v076-admin-project-row{
  grid-template-columns:minmax(160px,1.2fr) minmax(150px,1fr) minmax(150px,1fr) 100px auto;
}

@media(max-width:1000px){
  .v085-incentive-form{
    grid-template-columns:1fr 1fr;
  }

  .v076-admin-project-row{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:600px){
  .v085-incentive-form{
    grid-template-columns:1fr;
  }

  .v085-incentive-row{
    grid-template-columns:1fr auto;
  }

  .v085-incentive-row .danger-text{
    grid-column:1/-1;
    justify-self:start;
  }

  .v076-admin-project-row{
    grid-template-columns:1fr;
  }
}


/* ===== v0.8.6 管理者は時間計上なし・件数のみ ===== */
.v086-admin-home-note,
.v086-admin-record-note{
  border:1px solid #d7e6d3;
  background:#f3faf1;
  border-radius:12px;
  padding:10px 12px;
  font-size:12px;
  line-height:1.65;
  color:var(--muted);
  margin-bottom:12px;
}

.v086-admin-record-note strong{
  color:var(--brand-green-dark);
}

.v086-no-time-box{
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fbf7;
  padding:9px 10px;
  display:grid;
  gap:3px;
  min-height:42px;
}

.v086-no-time-box span{
  font-size:11px;
  color:var(--muted);
  font-weight:800;
}

.v086-no-time-box strong{
  color:var(--brand-green-dark);
  font-size:16px;
}

.v086-no-time-box small{
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
}


/* ===== v0.8.7 稼働・報酬出力 ===== */
.v087-export-hero{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) 1.6fr;
  gap:12px;
  align-items:end;
  margin-top:12px;
}

.v087-export-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.v087-export-summary > div{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:11px;
  padding:10px;
}

.v087-export-summary span{
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:4px;
}

.v087-export-summary strong{
  color:var(--brand-green-dark);
  font-size:13px;
}

.v087-export-example{
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:14px;
  padding:12px;
  border:1px solid #d7e6d3;
  background:#f4faf2;
  border-radius:12px;
  font-size:11px;
  color:var(--muted);
}

.v087-export-example > strong{
  color:var(--brand-green-dark);
}

.v087-example-cell{
  min-width:82px;
  padding:8px 12px;
  border:1px solid #bfd5ba;
  background:#fff;
  border-radius:8px;
  color:#111;
  font-weight:800;
  line-height:1.5;
  text-align:center;
}

.v087-export-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:14px;
}

.v087-sheet-link{
  display:inline-block;
  margin-top:12px;
  color:var(--brand-green);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

.v087-layout-guide{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:10px 0 12px;
}

.v087-layout-guide > div{
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px;
  display:grid;
  gap:4px;
}

.v087-layout-guide strong{
  color:var(--brand-green-dark);
}

.v087-layout-guide span{
  color:var(--muted);
  font-size:11px;
}

@media(max-width:760px){
  .v087-export-hero{
    grid-template-columns:1fr;
  }

  .v087-export-summary,
  .v087-layout-guide{
    grid-template-columns:1fr;
  }

  .v087-export-example{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* 管理者6メニュー時に少し詰める */
.bottom-nav[style*="--nav-count:6"] .nav-btn{
  padding-left:4px;
  padding-right:4px;
  font-size:11px;
}


/* ===== v0.8.8 出力メニュー集約 ===== */
.v088-output-intro{
  border:1px solid #d7e6d3;
  background:#f4faf2;
  border-radius:12px;
  padding:11px 12px;
  color:var(--muted);
  font-size:12px;
  line-height:1.65;
  margin-top:10px;
}

.v088-connection-card{
  border-top:3px solid var(--brand-green);
}

.v088-connection-actions{
  margin-top:10px;
  display:flex;
  justify-content:flex-start;
}

.v088-connection-actions .btn{
  width:auto;
  min-width:180px;
}

.v088-export-section{
  position:relative;
  overflow:hidden;
}

.v088-export-section::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--brand-green),rgba(31,84,36,.18));
}

.v088-shift-export-controls{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) 1.2fr;
  gap:10px;
  align-items:end;
  margin-top:10px;
}

.v088-month-buttons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}

@media(max-width:760px){
  .v088-shift-export-controls{
    grid-template-columns:1fr;
  }

  .v088-connection-actions .btn{
    width:100%;
  }
}


/* ===== v0.9.0 月間実績出力 ===== */
.v090-results-export::before{
  background:linear-gradient(180deg,#356f3d,rgba(53,111,61,.16));
}

.v090-results-controls{
  display:grid;
  grid-template-columns:minmax(220px,.75fr) 1.25fr;
  gap:12px;
  align-items:end;
  margin-top:10px;
}

.v090-results-summary{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:11px;
  padding:10px 12px;
  display:grid;
  gap:4px;
}

.v090-results-summary span{
  color:var(--muted);
  font-size:10px;
}

.v090-results-summary strong{
  color:var(--brand-green-dark);
  font-size:13px;
}

@media(max-width:760px){
  .v090-results-controls{
    grid-template-columns:1fr;
  }
}


/* ===== v0.9.2 スタッフ書類・請求書 ===== */
.v092-doc-intro{
  border:1px solid #d7e6d3;
  background:#f4faf2;
  border-radius:12px;
  padding:10px 12px;
  color:var(--muted);
  font-size:12px;
  line-height:1.65;
}

.v092-doc-accordion{
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
  margin-bottom:14px;
  box-shadow:var(--shadow);
}

.v092-doc-accordion summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  position:relative;
}

.v092-doc-accordion summary::-webkit-details-marker{
  display:none;
}

.v092-doc-accordion summary::after{
  content:"＋";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  font-size:20px;
  font-weight:900;
}

.v092-doc-accordion[open] summary::after{
  content:"−";
}

.v092-doc-accordion summary > div{
  display:grid;
  gap:3px;
  padding-right:32px;
}

.v092-doc-accordion summary strong{
  color:var(--brand-green-dark);
}

.v092-doc-accordion summary span{
  color:var(--muted);
  font-size:11px;
}

.v092-doc-body{
  border-top:1px solid var(--line);
  padding:14px;
}

.v092-profile-grid,
.v092-invoice-meta-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v092-invoice-meta-grid{
  grid-template-columns:1fr 1fr 1fr;
}

.v092-textarea{
  width:100%;
  min-height:88px;
  resize:vertical;
  border:1px solid var(--line);
  background:#fff;
  border-radius:12px;
  padding:12px;
  font:inherit;
  outline:none;
}

.v092-textarea:focus{
  border-color:#6ba972;
  box-shadow:0 0 0 3px rgba(71,132,78,.13);
}

.v092-invoice-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v092-invoice-summary > div{
  border:1px solid var(--line);
  border-radius:12px;
  padding:11px;
  background:#f8fbf7;
}

.v092-invoice-summary span{
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:4px;
}

.v092-invoice-summary strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:18px;
}

.v092-items-table th,
.v092-items-table td{
  vertical-align:middle;
}

.v092-num{
  text-align:right;
}

.v092-invoice-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:14px;
}

.v092-saved-list{
  display:grid;
  gap:7px;
}

.v092-saved-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  background:#f9fbf8;
  border-radius:11px;
  padding:10px 12px;
}

.v092-saved-row > div:first-child{
  display:grid;
  gap:3px;
}

.v092-saved-row span{
  color:var(--muted);
  font-size:11px;
}

.v092-saved-actions{
  display:flex;
  align-items:center;
  gap:12px;
}

.v092-saved-actions .link-btn{
  color:var(--brand-green);
  cursor:pointer;
}

/* 印刷用請求書 */
#v092PrintRoot{
  display:none;
}

.v092-paper{
  width:100%;
  background:#fff;
  color:#111;
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
}

.v092-print-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  border-bottom:4px solid #15558f;
  padding-bottom:8px;
}

.v092-print-head h1{
  margin:0;
  font-size:30px;
  letter-spacing:.08em;
}

.v092-print-meta{
  display:grid;
  gap:5px;
  min-width:240px;
}

.v092-print-meta > div{
  display:grid;
  grid-template-columns:90px 1fr;
  border-bottom:1px solid #999;
  padding:2px 0;
  font-size:11px;
}

.v092-print-meta span{
  color:#555;
}

.v092-print-to{
  margin:20px 0 14px;
  border-bottom:1px solid #444;
  padding-bottom:8px;
  max-width:65%;
}

.v092-print-label{
  font-size:10px;
  color:#555;
}

.v092-print-to-name{
  font-size:20px;
  font-weight:800;
}

.v092-print-issuer{
  margin-left:auto;
  width:55%;
  display:grid;
  gap:5px;
  margin-bottom:18px;
}

.v092-print-issuer > div{
  display:grid;
  grid-template-columns:95px 1fr;
  gap:8px;
  font-size:10px;
  border-bottom:1px solid #bbb;
  padding-bottom:3px;
}

.v092-print-issuer span{
  color:#555;
}

.v092-preline{
  white-space:pre-line;
}

.v092-print-table{
  width:100%;
  border-collapse:collapse;
  font-size:10px;
  margin-top:12px;
}

.v092-print-table th{
  background:#a50000;
  color:#fff;
  font-weight:800;
  padding:7px 6px;
  border:1px solid #222;
}

.v092-print-table td{
  padding:7px 6px;
  border:1px solid #333;
}

.v092-print-table th:first-child,
.v092-print-table td:first-child{
  width:42%;
}

.v092-print-table td:not(:first-child),
.v092-print-table th:not(:first-child){
  text-align:right;
}

.v092-empty-row{
  height:30px;
}

.v092-print-total{
  margin:16px 0 20px auto;
  width:45%;
  display:grid;
}

.v092-print-total > div{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid #333;
  padding:7px 5px;
  font-size:11px;
}

.v092-print-total .grand{
  border:2px solid #15558f;
  margin-top:8px;
  font-size:14px;
  font-weight:900;
}

.v092-print-note{
  border:1px solid #333;
  min-height:70px;
  padding:8px;
  font-size:10px;
}

.v092-print-note > span{
  display:block;
  color:#555;
  margin-bottom:6px;
  font-weight:800;
}

@media(max-width:700px){
  .v092-profile-grid,
  .v092-invoice-meta-grid,
  .v092-invoice-summary{
    grid-template-columns:1fr;
  }

  .v092-invoice-actions{
    grid-template-columns:1fr;
  }

  .v092-saved-row{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media print{
  @page{
    size:A4;
    margin:13mm 14mm;
  }

  html,
  body{
    background:#fff !important;
    margin:0 !important;
    padding:0 !important;
  }

  body > *:not(#v092PrintRoot){
    display:none !important;
  }

  #v092PrintRoot{
    display:block !important;
    position:static !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
  }

  .v092-paper{
    display:block !important;
    page-break-inside:avoid;
  }
}


/* ===== v0.9.3 請求書 銀行情報分割・請求者名編集 ===== */
.v093-field-help{
  margin-top:5px;
  font-size:10px;
  line-height:1.5;
  color:var(--muted);
}

.v093-bank-section{
  margin-top:12px;
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:13px;
  padding:12px;
}

.v093-bank-title{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  margin-bottom:10px;
}

.v093-bank-title strong{
  color:var(--brand-green-dark);
  font-size:14px;
}

.v093-bank-title span{
  color:var(--muted);
  font-size:10px;
}

.v093-bank-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v093-bank-holder{
  grid-column:1 / -1;
}

.v093-old-bank-note{
  margin-top:10px;
  border:1px solid #eadfbd;
  background:#fffaf0;
  color:#8a6725;
  border-radius:10px;
  padding:9px 10px;
  font-size:10px;
  line-height:1.6;
}

@media(max-width:700px){
  .v093-bank-grid{
    grid-template-columns:1fr;
  }

  .v093-bank-holder{
    grid-column:auto;
  }

  .v093-bank-title{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}


/* ===== v0.9.4 請求書PDF デザイン ===== */
.v094-fixed-recipient{
  min-height:48px;
  display:flex;
  align-items:center;
  padding:0 13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f4f8f2;
  color:var(--brand-green-dark);
  font-weight:900;
}

.v094-date-help{
  margin-top:5px;
  color:var(--muted);
  font-size:9px;
  line-height:1.5;
}

.v094-paper{
  --invoice-green:#153f1a;
  --invoice-green-2:#2f6c3a;
  --invoice-soft:#edf6ed;
  --invoice-soft-2:#dcebdd;
  --invoice-line:#bfd2c1;

  position:relative;
  overflow:hidden;
  width:100%;
  min-height:267mm;
  box-sizing:border-box;
  background:#fff;
  color:#172018;
  padding:6mm 6mm 3mm;
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

.v094-top-curve{
  position:absolute;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
  transform:rotate(9deg);
}

.v094-top-curve-a{
  width:145mm;
  height:33mm;
  right:-48mm;
  top:-23mm;
  border:7mm solid rgba(47,108,58,.17);
}

.v094-top-curve-b{
  width:132mm;
  height:28mm;
  right:-42mm;
  top:-19mm;
  border:2.7mm solid rgba(21,63,26,.32);
}

.v094-header{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(74mm,.9fr);
  gap:9mm;
  align-items:start;
}

.v094-header-left{
  padding-top:8mm;
}

.v094-title-row{
  display:flex;
  align-items:center;
  gap:7mm;
}

.v094-title-row h1{
  margin:0;
  color:var(--invoice-green);
  font-size:27px;
  letter-spacing:.22em;
  white-space:nowrap;
}

.v094-title-row span{
  height:1px;
  background:var(--invoice-green-2);
  flex:1;
}

.v094-recipient{
  display:inline-block;
  margin-top:14mm;
  padding:0 0 3mm;
  min-width:78%;
  color:var(--invoice-green);
  border-bottom:1.2px solid var(--invoice-green-2);
  font-size:17px;
  font-weight:900;
  letter-spacing:.03em;
}

.v094-greeting{
  margin:5mm 0 0;
  font-size:10px;
  line-height:1.8;
}

.v094-amount-card{
  width:78%;
  margin-top:10mm;
  border-radius:4mm;
  padding:5mm 6mm;
  background:linear-gradient(135deg,#edf6ed 0%,#f7fbf7 70%,#e4f0e4 100%);
  border:1px solid #d5e6d7;
}

.v094-amount-label{
  display:block;
  color:var(--invoice-green);
  font-size:12px;
  font-weight:900;
}

.v094-amount-card > strong{
  display:block;
  margin-top:2mm;
  color:var(--invoice-green);
  font-size:27px;
  letter-spacing:.03em;
}

.v094-due{
  margin-top:4mm;
  padding-top:3mm;
  border-top:1px solid #9bb59e;
  display:grid;
  gap:1.2mm;
}

.v094-due span{
  color:var(--invoice-green);
  font-size:9.5px;
  font-weight:900;
}

.v094-due b{
  font-size:10px;
}

.v094-header-right{
  position:relative;
  z-index:2;
  padding-top:2mm;
}

.v094-invoice-logo{
  display:block;
  width:31mm;
  height:31mm;
  object-fit:contain;
  margin:0 0 5mm auto;
  background:#fff;
  border-radius:50%;
}

.v094-issuer-meta{
  display:grid;
  gap:1.5mm;
  padding-left:2mm;
}

.v094-issuer-meta > div{
  display:grid;
  grid-template-columns:25mm 1fr;
  gap:2mm;
  align-items:start;
  font-size:8.8px;
  line-height:1.45;
}

.v094-issuer-meta span{
  color:var(--invoice-green);
  font-weight:900;
}

.v094-issuer-meta b{
  font-weight:600;
  overflow-wrap:anywhere;
}

.v094-section{
  position:relative;
  z-index:1;
  margin-top:9mm;
}

.v094-section-title{
  display:flex;
  align-items:center;
  gap:4mm;
  margin-bottom:3mm;
}

.v094-section-title strong{
  color:var(--invoice-green);
  font-size:13px;
  letter-spacing:.04em;
}

.v094-section-title span{
  flex:1;
  height:1px;
  background:var(--invoice-green-2);
}

.v094-detail-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:8.5px;
}

.v094-detail-table th{
  padding:3mm 2mm;
  color:var(--invoice-green);
  background:linear-gradient(180deg,#e7f2e7,#f2f8f2);
  border:1px solid var(--invoice-line);
  font-weight:900;
}

.v094-detail-table td{
  padding:2.7mm 2mm;
  border:1px solid var(--invoice-line);
  vertical-align:middle;
}

.v094-detail-table th:nth-child(1){width:26%}
.v094-detail-table th:nth-child(2){width:28%}
.v094-detail-table th:nth-child(3){width:13%}
.v094-detail-table th:nth-child(4){width:15%}
.v094-detail-table th:nth-child(5){width:18%}

.v094-detail-table td:nth-child(n+3),
.v094-detail-table th:nth-child(n+3){
  text-align:right;
}

.v094-empty-row{
  height:8mm;
}

.v094-total-box{
  width:45%;
  margin:0 0 0 auto;
}

.v094-total-box > div{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  border:1px solid var(--invoice-line);
  border-top:0;
  min-height:9mm;
  font-size:9px;
}

.v094-total-box span{
  padding:2.5mm 3mm;
  text-align:right;
  color:var(--invoice-green);
  font-weight:900;
  background:#f4f8f4;
}

.v094-total-box b{
  padding:2.5mm 3mm;
  text-align:right;
}

.v094-total-box .grand{
  background:linear-gradient(90deg,#e3f0e3,#eef6ee);
}

.v094-total-box .grand span{
  background:transparent;
  font-size:11px;
}

.v094-total-box .grand b{
  color:var(--invoice-green);
  font-size:16px;
}

.v094-bank-section{
  margin-top:8mm;
}

.v094-bank-table{
  border:1px solid var(--invoice-line);
  border-radius:2.5mm;
  overflow:hidden;
}

.v094-bank-table > div{
  display:grid;
  grid-template-columns:30mm 1fr;
  min-height:7.5mm;
  border-bottom:1px solid var(--invoice-line);
  font-size:8.8px;
}

.v094-bank-table > div:last-child{
  border-bottom:0;
}

.v094-bank-table span{
  padding:2mm 3mm;
  background:linear-gradient(90deg,#e8f2e8,#f2f7f2);
  color:var(--invoice-green);
  font-weight:900;
}

.v094-bank-table b{
  padding:2mm 3mm;
  font-weight:600;
}

.v094-old-bank{
  margin-top:2mm;
  padding:2mm;
  border:1px dashed var(--invoice-line);
  font-size:8px;
}

.v094-note{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:30mm 1fr;
  min-height:15mm;
  margin-top:6mm;
  border:1px solid var(--invoice-line);
  border-radius:2.5mm;
  overflow:hidden;
  font-size:8.5px;
}

.v094-note-label{
  padding:3mm;
  color:var(--invoice-green);
  font-weight:900;
  background:linear-gradient(90deg,#e8f2e8,#f4f8f4);
}

.v094-note-body{
  padding:3mm;
}

.v094-footer{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:4mm;
  margin-top:8mm;
  color:var(--invoice-green);
  font-size:8.5px;
}

.v094-footer span{
  height:1px;
  background:var(--invoice-green-2);
  flex:1;
}

@media print{
  @page{
    size:A4;
    margin:9mm 11mm;
  }

  .v094-paper{
    display:block !important;
    width:188mm !important;
    min-height:277mm !important;
    padding:4mm 5mm 2mm !important;
    page-break-inside:avoid;
  }

  .v094-invoice-logo{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* ===== v0.9.5 業務委託契約書 ===== */
.v095-document-nav-card{
  padding-bottom:12px;
}

.v095-document-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}

.v095-document-tab{
  border:1px solid var(--line);
  background:#f6f8f5;
  color:var(--muted);
  border-radius:12px;
  padding:12px 10px;
  font-weight:900;
  cursor:pointer;
}

.v095-document-tab.active{
  background:var(--brand-green);
  border-color:var(--brand-green);
  color:#fff;
}

.v095-contract-date-card{
  margin-top:12px;
  border:1px solid #d7e6d3;
  background:#f4faf2;
  border-radius:12px;
  padding:11px 12px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:3px 12px;
  align-items:center;
}

.v095-contract-date-card span{
  color:var(--muted);
  font-size:10px;
}

.v095-contract-date-card strong{
  color:var(--brand-green-dark);
}

.v095-contract-date-card small{
  grid-column:1/-1;
  color:var(--muted);
  font-size:9px;
}

.v095-contract-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v095-address-field{
  grid-column:1/-1;
}

.v095-contract-details{
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
  box-shadow:var(--shadow);
  margin-bottom:14px;
}

.v095-contract-details summary{
  cursor:pointer;
  padding:14px 16px;
  color:var(--brand-green-dark);
  font-weight:900;
  list-style:none;
}

.v095-contract-details summary::-webkit-details-marker{
  display:none;
}

.v095-contract-details summary::after{
  content:"＋";
  float:right;
  color:var(--muted);
  font-size:19px;
}

.v095-contract-details[open] summary::after{
  content:"−";
}

.v095-contract-body{
  border-top:1px solid var(--line);
  padding:16px;
  max-height:620px;
  overflow:auto;
}

.v095-contract-intro{
  margin:0 0 18px;
  line-height:1.9;
  font-weight:700;
}

.v095-contract-clause{
  margin:0 0 18px;
}

.v095-contract-clause h4{
  margin:0 0 7px;
  color:var(--brand-green-dark);
  font-size:13px;
}

.v095-contract-clause p,
.v095-contract-clause li{
  margin:3px 0;
  color:#29342b;
  font-size:11px;
  line-height:1.75;
}

.v095-contract-clause ul,
.v095-contract-clause ol{
  padding-left:22px;
  margin:5px 0;
}

.v095-contract-parties{
  border-top:1px solid var(--line);
  margin-top:20px;
  padding-top:15px;
}

.v095-party-block{
  margin-top:14px;
}

.v095-party-block p{
  margin:4px 0;
  font-size:11px;
}

.v095-signature-box{
  margin-top:12px;
  border:2px solid #bfd5ba;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}

#contractSignatureCanvas{
  display:block;
  width:100%;
  height:150px;
  cursor:crosshair;
  touch-action:none;
}

.v095-contract-agree{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:15px;
  padding:11px 12px;
  border:1px solid #d7e6d3;
  border-radius:11px;
  background:#f6faf5;
  font-size:12px;
  line-height:1.6;
}

.v095-contract-agree input{
  margin-top:3px;
}

.v095-contract-actions{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:8px;
  margin-top:12px;
}

.v095-signed-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:12px 0;
}

.v095-signed-summary > div{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:10px;
  padding:10px;
  min-width:0;
}

.v095-signed-summary span{
  display:block;
  color:var(--muted);
  font-size:9px;
  margin-bottom:4px;
}

.v095-signed-summary strong{
  overflow-wrap:anywhere;
}

.v095-admin-contract-counts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v095-admin-contract-counts > div{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:10px;
  padding:10px;
}

.v095-admin-contract-counts span{
  display:block;
  color:var(--muted);
  font-size:9px;
}

.v095-admin-contract-counts strong{
  color:var(--brand-green-dark);
  font-size:20px;
}

/* 契約書印刷 */
#v095ContractPrintRoot{
  display:none;
}

.v095-contract-paper{
  width:100%;
  box-sizing:border-box;
  color:#111;
  background:#fff;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Yu Gothic","Meiryo",serif;
  font-size:10.5px;
  line-height:1.8;
}

.v095-contract-print-header{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  margin-bottom:12mm;
  padding-bottom:5mm;
  border-bottom:1px solid #333;
}

.v095-contract-print-header img{
  position:absolute;
  left:0;
  width:22mm;
  height:22mm;
  object-fit:contain;
  border-radius:50%;
}

.v095-contract-print-header h1{
  margin:0;
  font-size:22px;
  letter-spacing:.12em;
}

.v095-contract-intro-print{
  margin:0 0 8mm;
  text-indent:1em;
}

.v095-contract-print-clause{
  margin-bottom:6mm;
  break-inside:avoid-page;
}

.v095-contract-print-clause h4{
  margin:0 0 2.5mm;
  font-size:11px;
  font-weight:700;
}

.v095-contract-print-clause p{
  margin:1mm 0;
}

.v095-contract-print-clause ul,
.v095-contract-print-clause ol{
  margin:2mm 0 2mm 7mm;
  padding-left:4mm;
}

.v095-contract-print-clause li{
  margin:1mm 0;
}

.v095-contract-print-parties{
  margin-top:10mm;
  break-inside:avoid-page;
  page-break-inside:avoid;
}

.v095-contract-date-line{
  margin-bottom:6mm;
}

.v095-contract-date-line strong{
  display:inline-block;
  width:28mm;
}

.v095-party-block{
  margin:5mm 0 0;
}

.v095-signature-print{
  display:flex;
  align-items:flex-end;
  gap:4mm;
  min-height:20mm;
  margin-top:2mm;
}

.v095-signature-print img{
  max-width:62mm;
  max-height:18mm;
  object-fit:contain;
}

@media(max-width:700px){
  .v095-contract-form-grid,
  .v095-signed-summary,
  .v095-admin-contract-counts{
    grid-template-columns:1fr;
  }

  .v095-address-field{
    grid-column:auto;
  }

  .v095-contract-actions{
    grid-template-columns:1fr;
  }

  .v095-document-tabs{
    grid-template-columns:1fr 1fr;
  }
}

@media print{
  body > *:not(#v092PrintRoot):not(#v095ContractPrintRoot){
    display:none !important;
  }

  #v095ContractPrintRoot{
    display:block !important;
    position:static !important;
    width:auto !important;
  }

  #v095ContractPrintRoot .v095-contract-paper{
    display:block !important;
  }
}


/* ===== v0.9.7 最新版更新通知 ===== */
.ayumi-update-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(10,25,13,.58);
  backdrop-filter:blur(4px);
}

.ayumi-update-card{
  width:min(100%,460px);
  max-height:calc(100vh - 36px);
  overflow:auto;
  box-sizing:border-box;
  border:1px solid #dbe8d9;
  border-radius:20px;
  padding:22px;
  background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.24);
}

.ayumi-update-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  background:#edf6eb;
  color:var(--brand-green-dark);
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}

.ayumi-update-card h2{
  margin:10px 0 8px;
  color:var(--brand-green-dark);
  font-size:22px;
}

.ayumi-update-lead{
  margin:0;
  color:#445046;
  font-size:12px;
  line-height:1.8;
}

.ayumi-update-steps{
  margin:15px 0;
  padding:13px 14px;
  border:1px solid #d9e8d6;
  border-radius:13px;
  background:#f6faf4;
  color:#28372b;
  font-size:11px;
  line-height:1.8;
}

.ayumi-update-steps strong{
  display:block;
  margin-bottom:4px;
  color:var(--brand-green-dark);
}

.ayumi-update-steps ol{
  margin:0;
  padding-left:20px;
}

.ayumi-update-main,
.ayumi-update-later{
  width:100%;
}

.ayumi-update-later{
  margin-top:8px;
}

.ayumi-update-help{
  margin-top:13px;
  border-top:1px solid var(--line);
  padding-top:11px;
  color:var(--muted);
  font-size:10px;
  line-height:1.7;
}

.ayumi-update-help summary{
  cursor:pointer;
  color:var(--brand-green-dark);
  font-weight:900;
}

.ayumi-update-help > div{
  margin-top:8px;
}


/* ===== v0.9.8 アプリ内業務マニュアル ===== */

/* 7メニュー時は少し詰める */
.bottom-nav[style*="--nav-count:7"] .nav-btn{
  padding-left:2px;
  padding-right:2px;
  font-size:10px;
}

.v098-manual-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-top:4px solid var(--brand-green);
  background:linear-gradient(135deg,#ffffff 0%,#f4faf2 100%);
}

.v098-manual-hero > div{
  min-width:0;
}

.v098-manual-hero img{
  width:82px;
  height:82px;
  object-fit:contain;
  border-radius:50%;
  flex:0 0 auto;
}

.v098-manual-kicker{
  display:inline-block;
  margin-bottom:5px;
  color:var(--brand-green);
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
}

.v098-manual-hero h2{
  margin:0 0 7px;
  color:var(--brand-green-dark);
}

.v098-manual-hero p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}

.v098-manual-jumps{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}

.v098-manual-jumps button{
  border:1px solid #d6e5d3;
  background:#f7fbf6;
  color:var(--brand-green-dark);
  border-radius:999px;
  padding:8px 10px;
  font-size:10px;
  font-weight:900;
}

.v098-manual-section{
  scroll-margin-top:78px;
  margin-bottom:11px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.v098-manual-section summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:15px 16px;
}

.v098-manual-section summary::-webkit-details-marker{
  display:none;
}

.v098-manual-section summary > div{
  min-width:0;
}

.v098-manual-section summary strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:14px;
}

.v098-manual-section summary span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:9.5px;
  line-height:1.5;
}

.v098-manual-section summary::after{
  content:"＋";
  flex:0 0 auto;
  color:var(--brand-green);
  font-size:20px;
  font-weight:700;
}

.v098-manual-section[open] summary::after{
  content:"−";
}

.v098-manual-body{
  padding:0 16px 17px;
  border-top:1px solid #eef2ed;
  color:#28332a;
  font-size:11.5px;
  line-height:1.8;
}

.v098-manual-body > p:first-child{
  margin-top:14px;
}

.v098-manual-body p{
  margin:10px 0;
}

.v098-manual-body ul,
.v098-manual-body ol{
  margin:10px 0;
  padding-left:22px;
}

.v098-manual-body li{
  margin:6px 0;
}

.v098-manual-subtitle{
  margin:17px 0 8px;
  padding-left:9px;
  border-left:4px solid var(--brand-green);
  color:var(--brand-green-dark);
  font-size:13px;
  font-weight:900;
}

.v098-highlight,
.v098-caution,
.v098-note{
  margin:13px 0;
  padding:12px 13px;
  border-radius:12px;
}

.v098-highlight{
  border:1px solid #d5e7d1;
  background:#f4faf2;
}

.v098-caution{
  border:1px solid #f0ddb2;
  background:#fff9eb;
  color:#765318;
}

.v098-note{
  border:1px solid #d9e3ea;
  background:#f7fafc;
  color:#51606b;
  font-size:10.5px;
}

.v098-step-list{
  counter-reset:v098-step;
  list-style:none;
  padding-left:0 !important;
}

.v098-step-list li{
  counter-increment:v098-step;
  position:relative;
  padding:10px 10px 10px 39px;
  border:1px solid #e1e9df;
  border-radius:11px;
  background:#fbfdfb;
}

.v098-step-list li::before{
  content:counter(v098-step);
  position:absolute;
  left:10px;
  top:9px;
  width:21px;
  height:21px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--brand-green);
  color:#fff;
  font-size:10px;
  font-weight:900;
}

.v098-inline-btn{
  width:100%;
  margin:10px 0 4px;
}

.v098-tool{
  margin:12px 0;
  padding:12px 13px;
  border:1px solid #e0e7df;
  border-radius:12px;
  background:#fbfdfb;
}

.v098-tool strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:12px;
}

.v098-tool p{
  margin:5px 0;
}

.v098-tool a{
  display:inline-block;
  margin-top:3px;
  color:var(--brand-green);
  font-weight:900;
  overflow-wrap:anywhere;
}

@media(max-width:520px){
  .v098-manual-hero img{
    width:66px;
    height:66px;
  }

  .v098-manual-hero p{
    font-size:11px;
  }

  .v098-manual-section summary{
    padding:14px;
  }

  .v098-manual-body{
    padding-left:14px;
    padding-right:14px;
  }
}



/* ===== v1.0.0 マニュアル内 ステータス早見表 ===== */
.v100-manual-top-card{
  padding-bottom:12px;
}

.v100-manual-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}

.v100-manual-tab{
  border:1px solid var(--line);
  background:#f6f8f5;
  color:var(--muted);
  border-radius:12px;
  padding:12px 10px;
  font-weight:900;
  cursor:pointer;
}

.v100-manual-tab.active{
  background:var(--brand-green);
  border-color:var(--brand-green);
  color:#fff;
}

.v100-status-intro h3{
  margin-top:0;
  color:var(--brand-green-dark);
}

.v100-status-intro p{
  margin:6px 0 0;
  color:#435046;
  font-size:11.5px;
  line-height:1.75;
}

.v100-status-section{
  margin-bottom:15px;
}

.v100-status-section-title{
  margin:4px 2px 8px;
  color:var(--brand-green-dark);
  font-size:13px;
  font-weight:900;
}

.v100-status-card{
  display:grid;
  grid-template-columns:132px 1fr;
  margin-bottom:7px;
  border:1px solid #dfe6df;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 2px 8px rgba(20,45,25,.04);
}

.v100-status-label{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:64px;
  padding:10px;
  color:#fff;
  font-size:11px;
  font-weight:900;
  text-align:center;
}

.v100-status-body{
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  color:#28332a;
  font-size:10.5px;
  line-height:1.55;
}

.v100-status-line{
  overflow-wrap:anywhere;
}

.v100-status-label.blue{background:#83b8d3;color:#143243}
.v100-status-label.teal{background:#78aab6;color:#102d35}
.v100-status-label.yellow{background:#e6c96a;color:#40320c}
.v100-status-label.orange{background:#ebb07a;color:#4d2908}
.v100-status-label.brown{background:#80642f}
.v100-status-label.green{background:#20763e}
.v100-status-label.lime{background:#65a95a}
.v100-status-label.pink{background:#e88c87;color:#4f1613}
.v100-status-label.purple{background:#8257a8}
.v100-status-label.red{background:#c71919}
.v100-status-label.navy{background:#11325d}
.v100-status-label.lightblue{background:#c5d6e8;color:#183146}
.v100-status-label.dark{background:#444}

@media(max-width:640px){
  .v100-status-card{
    grid-template-columns:1fr;
  }

  .v100-status-label{
    min-height:auto;
    justify-content:flex-start;
    text-align:left;
    padding:9px 12px;
  }

  .v100-status-body{
    padding:10px 12px 12px;
  }
}


/* ===== v1.0.1 対応可能案件 ===== */
.v101-manual-tabs{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.v101-project-list{
  display:grid;
  gap:7px;
  margin:10px 0 14px;
}

.v101-project-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:9px;
  align-items:center;
  padding:10px 11px;
  border:1px solid #dde8db;
  border-radius:11px;
  background:#fbfdfb;
}

.v101-project-main,
.v101-project-row > div{
  min-width:0;
}

.v101-project-row strong{
  display:block;
  color:var(--brand-green-dark);
}

.v101-project-row small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  overflow-wrap:anywhere;
}

.v101-compat{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:0 9px;
  border-radius:999px;
  background:#eaf4e7;
  color:var(--brand-green-dark);
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}

.v101-add-project{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(120px,.7fr);
  gap:9px;
  align-items:end;
  margin-top:13px;
  padding-top:13px;
  border-top:1px solid var(--line);
}

.v101-note-field{
  grid-column:1/-1;
}

.v101-add-project > .btn{
  grid-column:1/-1;
}

.v101-account-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.v101-analysis-block{
  margin:0 0 18px;
}

.v101-analysis-block > strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:12px;
}

.v101-analysis-block > span{
  display:block;
  margin:3px 0 8px;
  color:var(--muted);
  font-size:9.5px;
}

.v101-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}

.v101-check-item{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:39px;
  padding:8px 10px;
  border:1px solid #dde7db;
  border-radius:10px;
  background:#fafdfa;
  font-size:10.5px;
  cursor:pointer;
}

.v101-check-item:has(input:checked){
  border-color:#96bc91;
  background:#eef7ec;
  color:var(--brand-green-dark);
  font-weight:900;
}

.v101-admin-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:10px 0 14px;
}

.v101-admin-info-grid > div{
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafcfa;
}

.v101-admin-info-grid span,
.v101-analysis-readonly > div > span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:9px;
}

.v101-admin-info-grid strong{
  display:block;
  overflow-wrap:anywhere;
}

.v101-analysis-readonly{
  display:grid;
  gap:10px;
}

.v101-analysis-readonly > div{
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafcfa;
}

.v101-analysis-readonly p{
  margin:0;
  white-space:pre-wrap;
}

.v101-chip-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.v101-chip{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 8px;
  border-radius:999px;
  background:#eaf4e7;
  color:var(--brand-green-dark);
  font-size:9px;
  font-weight:900;
}

@media(max-width:700px){
  .v101-manual-tabs{
    grid-template-columns:1fr;
  }

  .v101-project-row{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .v101-project-row .danger{
    grid-column:1/-1;
    justify-self:end;
  }

  .v101-add-project,
  .v101-account-grid,
  .v101-check-grid,
  .v101-admin-info-grid{
    grid-template-columns:1fr;
  }

  .v101-note-field,
  .v101-add-project > .btn{
    grid-column:auto;
  }
}


/* ===== v1.0.2 自由帳 ===== */

/* 8メニュー時 */
.bottom-nav[style*="--nav-count:8"] .nav-btn{
  padding-left:1px;
  padding-right:1px;
  font-size:9px;
}

.v102-header-card{
  border-top:4px solid var(--brand-green);
}

.v102-layout{
  display:grid;
  grid-template-columns:minmax(210px,.55fr) minmax(0,1.8fr);
  gap:12px;
  align-items:start;
}

.v102-list-card{
  position:sticky;
  top:72px;
  max-height:calc(100vh - 160px);
  overflow:auto;
}

.v102-list-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  color:var(--brand-green-dark);
}

.v102-list-title span{
  color:var(--muted);
  font-size:9px;
}

.v102-note-list{
  display:grid;
  gap:7px;
}

.v102-note-card{
  width:100%;
  border:1px solid #dfe8dd;
  border-radius:11px;
  background:#fbfdfb;
  padding:10px;
  text-align:left;
  cursor:pointer;
}

.v102-note-card.active{
  border-color:#82ac7c;
  background:#eef7ec;
  box-shadow:0 0 0 1px #82ac7c inset;
}

.v102-note-card strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:11px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.v102-note-card span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:8.5px;
}

.v102-note-card small{
  display:block;
  margin-top:5px;
  color:#546257;
  font-size:9px;
  line-height:1.5;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.v102-editor-card{
  min-width:0;
}

.v102-editor-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}

.v102-editor-actions{
  display:flex;
  gap:7px;
}

.v102-mode-bar{
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap;
  margin:13px 0 7px;
}

.v102-mode-btn,
.v102-clear-btn{
  min-height:35px;
  border-radius:10px;
  border:1px solid #d7e3d5;
  background:#f7faf6;
  color:#526054;
  padding:0 12px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.v102-mode-btn.active{
  border-color:var(--brand-green);
  background:var(--brand-green);
  color:#fff;
}

.v102-clear-btn{
  margin-left:auto;
  background:#fff;
}

.v102-mode-help{
  margin-bottom:8px;
  color:var(--muted);
  font-size:9px;
  line-height:1.5;
}

.v102-paper-wrap{
  overflow:auto;
  border:1px solid #d8e2d6;
  border-radius:14px;
  background:#edf3eb;
  padding:12px;
}

.v102-paper-wrap.disabled{
  opacity:.55;
  pointer-events:none;
}

.v102-paper{
  position:relative;
  width:100%;
  min-width:520px;
  height:680px;
  overflow:hidden;
  border-radius:5px;
  background:
    linear-gradient(to right,rgba(81,120,80,.05) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(81,120,80,.07) 1px,transparent 1px),
    #fffef9;
  background-size:28px 28px;
  box-shadow:0 4px 16px rgba(31,54,34,.08);
}

.v102-text-layer{
  position:absolute;
  inset:0;
  z-index:1;
  box-sizing:border-box;
  padding:22px 24px;
  outline:none;
  color:#162019;
  font-size:16px;
  line-height:1.75;
  white-space:pre-wrap;
  overflow:auto;
  overflow-wrap:anywhere;
}

.v102-text-layer:empty::before{
  content:attr(data-placeholder);
  color:#9aa49a;
  pointer-events:none;
}

.v102-text-layer.drawing-mode{
  user-select:none;
  caret-color:transparent;
}

.v102-draw-layer{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  pointer-events:none;
  touch-action:none;
}

.v102-editor-footer{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:8px;
  color:var(--muted);
  font-size:8.5px;
}

@media(max-width:820px){
  .v102-layout{
    grid-template-columns:1fr;
  }

  .v102-list-card{
    position:static;
    max-height:none;
  }

  .v102-note-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v102-editor-top{
    grid-template-columns:1fr;
  }

  .v102-editor-actions{
    width:100%;
  }

  .v102-editor-actions .btn{
    flex:1;
  }
}

@media(max-width:560px){
  .v102-note-list{
    grid-template-columns:1fr;
  }

  .v102-paper-wrap{
    padding:7px;
  }

  .v102-paper{
    min-width:0;
    width:100%;
    height:610px;
  }

  .v102-text-layer{
    padding:18px;
    font-size:15px;
  }

  .v102-clear-btn{
    width:100%;
    margin-left:0;
  }

  .v102-editor-footer{
    flex-direction:column;
  }
}


/* ===== v1.0.3 自由帳 undo / redo ===== */
.v103-history-actions{
  display:flex;
  gap:6px;
}

.v103-history-btn{
  min-height:35px;
  border-radius:10px;
  border:1px solid #cfdccc;
  background:#fff;
  color:var(--brand-green-dark);
  padding:0 11px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.v103-history-btn:hover:not(:disabled){
  background:#f0f7ee;
  border-color:#9fbd9a;
}

.v103-history-btn:disabled{
  opacity:.38;
  cursor:not-allowed;
}

@media(max-width:560px){
  .v103-history-actions{
    flex:1;
  }

  .v103-history-btn{
    flex:1;
  }
}


/* ===== v1.0.4 管理者共有マニュアル ===== */
.v104-manual-admin-card{
  border-top:4px solid var(--brand-green);
  margin-bottom:12px;
}

.v104-manual-admin-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}

.v104-manual-admin-form .v104-full{
  grid-column:1/-1;
}

.v104-admin-manual-list{
  display:grid;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}

.v104-admin-manual-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:10px;
  border:1px solid #dce7da;
  border-radius:11px;
  background:#fbfdfb;
}

.v104-order-actions{
  display:flex;
  gap:4px;
}

.v104-admin-manual-main{
  min-width:0;
}

.v104-admin-manual-main strong{
  display:block;
  color:var(--brand-green-dark);
}

.v104-admin-manual-main > span,
.v104-admin-manual-main small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:9px;
  overflow-wrap:anywhere;
}

.v104-admin-manual-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:5px;
}

.v104-important-badge{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  margin-right:5px;
  padding:0 6px;
  border-radius:999px;
  background:#f6e6b8;
  color:#75510c;
  font-size:8px;
  font-weight:900;
  vertical-align:middle;
}

.v104-shared-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin:15px 3px 8px;
}

.v104-shared-heading strong{
  color:var(--brand-green-dark);
  font-size:14px;
}

.v104-shared-heading span{
  color:var(--muted);
  font-size:9px;
}

.v104-dynamic-manual.important{
  border-color:#e0c77e;
  box-shadow:0 0 0 1px rgba(224,199,126,.25),var(--shadow);
}

.v104-update-summary{
  display:grid;
  gap:3px;
  margin:13px 0;
  padding:10px 11px;
  border:1px solid #d7e7d3;
  border-radius:10px;
  background:#f4faf2;
}

.v104-update-summary strong{
  color:var(--brand-green-dark);
  font-size:10px;
}

.v104-update-summary span{
  font-size:10.5px;
  line-height:1.6;
}

.v104-manual-text{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.85;
}

.v104-manual-updated{
  margin-top:13px;
  padding-top:8px;
  border-top:1px solid #edf1ec;
  color:var(--muted);
  font-size:8.5px;
}

@media(max-width:760px){
  .v104-manual-admin-form{
    grid-template-columns:1fr;
  }

  .v104-manual-admin-form .v104-full{
    grid-column:auto;
  }

  .v104-admin-manual-row{
    grid-template-columns:auto minmax(0,1fr);
  }

  .v104-admin-manual-actions{
    grid-column:1/-1;
    justify-content:stretch;
  }

  .v104-admin-manual-actions .btn{
    flex:1 1 45%;
  }
}


/* ===== v1.1.0 Web Push ===== */
.v110-push-status{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  padding:11px 12px;
  border:1px solid #dce8da;
  border-radius:11px;
  background:#f7fbf6;
}

.v110-push-status span{
  color:var(--muted);
  font-size:10px;
}

.v110-push-status strong{
  color:var(--brand-green-dark);
}


/* ===== v1.1.2 ホーム画面に追加 ===== */
.v112-install-box{
  display:grid;
  gap:9px;
  padding:12px;
  border:1px solid #dce8da;
  border-radius:12px;
  background:#f7fbf6;
}

.v112-install-box > strong{
  color:var(--brand-green-dark);
  font-size:12px;
}

.v112-install-box p{
  margin:0;
  color:#526056;
  font-size:10.5px;
  line-height:1.7;
}

.v112-install-steps{
  margin:0;
  padding-left:22px;
  color:#314037;
  font-size:10.5px;
  line-height:1.9;
}

.v112-install-ok{
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid #cfe2cb;
  border-radius:12px;
  background:#eef8ec;
}

.v112-install-ok strong{
  color:var(--brand-green-dark);
}

.v112-install-ok span{
  color:var(--muted);
  font-size:10px;
}


/* ===== v1.1.4 時給履歴・請求書診断 ===== */
.v114-wage-current{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:8px 12px;
  align-items:center;
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid #dce7da;
  border-radius:11px;
  background:#f7fbf6;
}

.v114-wage-current span{
  color:var(--muted);
  font-size:9px;
}

.v114-wage-current strong{
  color:var(--brand-green-dark);
}

.v114-wage-form{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(140px,.8fr) minmax(120px,.7fr) auto;
  gap:9px;
  align-items:end;
}

.v114-wage-help{
  margin-top:10px;
  padding:9px 10px;
  border-radius:9px;
  background:#fafcf9;
  color:var(--muted);
  font-size:9px;
  line-height:1.65;
}

.v114-wage-history{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

.v114-wage-history-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
}

.v114-wage-history-title strong{
  color:var(--brand-green-dark);
}

.v114-wage-history-title span{
  color:var(--muted);
  font-size:9px;
}

.v114-wage-history-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px;
  border:1px solid #e0e8de;
  border-radius:10px;
  background:#fff;
  margin-top:6px;
}

.v114-wage-history-row > div{
  display:flex;
  align-items:baseline;
  gap:9px;
}

.v114-wage-history-row span{
  color:var(--muted);
  font-size:9px;
}

.v114-missing-wage-notice{
  display:grid;
  gap:8px;
}

.v114-missing-wage-dates{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.v114-missing-wage-dates span{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  font-size:9px;
  font-weight:800;
}

@media(max-width:760px){
  .v114-wage-current{
    grid-template-columns:auto 1fr;
  }

  .v114-wage-form{
    grid-template-columns:1fr;
  }

  .v114-wage-history-row > div{
    display:grid;
    gap:2px;
  }
}


/* ===== v1.1.5 時給適用説明 ===== */
.v115-wage-rule{
  margin:-2px 0 12px;
  padding:9px 11px;
  border-left:3px solid #8eb38a;
  border-radius:0 9px 9px 0;
  background:#f7fbf6;
  color:#566259;
  font-size:9px;
  line-height:1.7;
}

.v115-wage-rule strong{
  color:var(--brand-green-dark);
}

.v115-current-wage-badge{
  display:inline-flex;
  align-items:center;
  min-height:18px;
  margin-left:6px;
  padding:0 6px;
  border-radius:999px;
  background:#dcefd9;
  color:#1d5b25;
  font-size:7.5px;
  font-style:normal;
  font-weight:900;
  vertical-align:middle;
}


/* ===== v1.1.5 請求書 A4 1ページ最適化 ===== */
@media print{
  @page{
    size:A4 portrait;
    margin:0 !important;
  }

  html,
  body{
    width:210mm !important;
    height:297mm !important;
    max-height:297mm !important;
    overflow:hidden !important;
    margin:0 !important;
    padding:0 !important;
  }

  #v092PrintRoot{
    width:210mm !important;
    height:297mm !important;
    max-height:297mm !important;
    overflow:hidden !important;
    margin:0 !important;
    padding:0 !important;
  }

  .v094-paper{
    width:210mm !important;
    height:297mm !important;
    min-height:0 !important;
    max-height:297mm !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
    padding:7mm 10mm 5mm !important;
    page-break-before:avoid !important;
    page-break-after:avoid !important;
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
  }

  .v094-header{
    grid-template-columns:minmax(0,1.18fr) minmax(67mm,.82fr) !important;
    gap:6mm !important;
  }

  .v094-header-left{
    padding-top:3mm !important;
  }

  .v094-title-row h1{
    font-size:24px !important;
  }

  .v094-recipient{
    margin-top:8mm !important;
    padding-bottom:2mm !important;
    font-size:15px !important;
  }

  .v094-greeting{
    margin-top:3mm !important;
    font-size:8.7px !important;
    line-height:1.5 !important;
  }

  .v094-amount-card{
    margin-top:5mm !important;
    padding:3.5mm 5mm !important;
  }

  .v094-amount-card > strong{
    margin-top:1mm !important;
    font-size:24px !important;
  }

  .v094-due{
    margin-top:2.5mm !important;
    padding-top:2mm !important;
  }

  .v094-invoice-logo{
    width:25mm !important;
    height:25mm !important;
    margin-bottom:3mm !important;
  }

  .v094-issuer-meta{
    gap:.8mm !important;
  }

  .v094-issuer-meta > div{
    grid-template-columns:22mm 1fr !important;
    gap:1.5mm !important;
    font-size:7.8px !important;
    line-height:1.3 !important;
  }

  .v094-section{
    margin-top:5mm !important;
  }

  .v094-section-title{
    margin-bottom:2mm !important;
  }

  .v094-section-title strong{
    font-size:11px !important;
  }

  .v094-detail-table{
    font-size:7.7px !important;
  }

  .v094-detail-table th{
    padding:2mm 1.6mm !important;
  }

  .v094-detail-table td{
    padding:2mm 1.6mm !important;
  }

  .v094-empty-row{
    height:6mm !important;
  }

  .v094-total-box > div{
    min-height:7mm !important;
    font-size:8px !important;
  }

  .v094-total-box span,
  .v094-total-box b{
    padding:1.7mm 2.3mm !important;
  }

  .v094-total-box .grand span{
    font-size:9px !important;
  }

  .v094-total-box .grand b{
    font-size:14px !important;
  }

  .v094-bank-section{
    margin-top:4.5mm !important;
  }

  .v094-bank-table > div{
    min-height:5.8mm !important;
    font-size:7.8px !important;
  }

  .v094-bank-table span,
  .v094-bank-table b{
    padding:1.3mm 2.2mm !important;
  }

  .v094-note{
    min-height:10mm !important;
    margin-top:4mm !important;
    font-size:7.8px !important;
  }

  .v094-note-label,
  .v094-note-body{
    padding:2mm !important;
  }

  .v094-footer{
    margin-top:4mm !important;
    font-size:7.5px !important;
  }

  .v094-top-curve-a{
    width:132mm !important;
    height:28mm !important;
    right:-45mm !important;
    top:-21mm !important;
  }

  .v094-top-curve-b{
    width:120mm !important;
    height:24mm !important;
    right:-40mm !important;
    top:-18mm !important;
  }
}


/* ===== v1.1.7 お知らせPush送信履歴 ===== */
.v117-push-history{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:5px 7px;
  margin-top:10px;
  padding:8px 10px;
  border:1px solid #dce7da;
  border-radius:10px;
  background:#f8fbf7;
  font-size:9px;
}

.v117-push-history strong{
  color:var(--brand-green-dark);
}

.v117-push-history > span:last-of-type{
  justify-self:end;
  color:var(--muted);
}

.v117-push-history small{
  grid-column:2 / -1;
  color:#725a5a;
  line-height:1.45;
}

.v117-push-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
  background:#9aa39c;
}

.v117-push-dot.sent{
  background:#2f7a38;
}

.v117-push-dot.partial{
  background:#c88913;
}

.v117-push-dot.no_devices,
.v117-push-dot.unknown{
  background:#8a928c;
}

.v117-push-dot.error{
  background:#b13a3a;
}

.v117-push-history.partial{
  background:#fffaf0;
  border-color:#ead9af;
}

.v117-push-history.error{
  background:#fff6f6;
  border-color:#e7c2c2;
}

@media(max-width:640px){
  .v117-push-history{
    grid-template-columns:auto 1fr;
  }

  .v117-push-history > span:last-of-type{
    grid-column:2;
    justify-self:start;
  }

  .v117-push-history small{
    grid-column:1 / -1;
  }
}


/* ===== v1.1.9 契約書印刷修正 ===== */

/*
  請求書はA4 1ページ固定だが、契約書は複数ページ。
  契約書印刷中だけ請求書用の height:297mm / overflow:hidden を打ち消す。
*/
@media print{
  html.v095-printing-contract,
  html.v095-printing-contract body{
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  html.v095-printing-contract body > *{
    display:none !important;
  }

  html.v095-printing-contract body > #v095ContractPrintRoot{
    display:block !important;
    position:static !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
  }

  html.v095-printing-contract #v095ContractPrintRoot .v095-contract-paper{
    display:block !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:0 !important;
  }

  html.v095-printing-contract .v095-contract-print-clause{
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }

  html.v095-printing-contract .v095-contract-print-parties{
    break-inside:avoid-page !important;
    page-break-inside:avoid !important;
  }
}

/* Chrome/Edgeでは最後に宣言された@pageが使われるため、
   契約書はブラウザ側の標準余白も利用できるレイアウトにする */
@media print{
  html.v095-printing-contract #v095ContractPrintRoot{
    padding:12mm 14mm !important;
    box-sizing:border-box !important;
  }
}


/* ===== v1.1.9 管理者 請求書管理 ===== */
.v119-invoice-toolbar{
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin-top:12px;
}

.v119-invoice-toolbar .compact-field{
  width:min(100%,240px);
}

.v119-admin-invoice-counts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v119-admin-invoice-counts > div{
  border:1px solid var(--line);
  background:#f8fbf7;
  border-radius:10px;
  padding:10px;
}

.v119-admin-invoice-counts span{
  display:block;
  color:var(--muted);
  font-size:9px;
}

.v119-admin-invoice-counts strong{
  display:block;
  margin-top:2px;
  color:var(--brand-green-dark);
  font-size:18px;
}

.v119-admin-invoice-table td{
  vertical-align:middle;
}

@media(max-width:760px){
  .v119-admin-invoice-counts{
    grid-template-columns:1fr 1fr;
  }
}


/* ===== v1.1.10 契約書PDF 余白・位置調整 ===== */

/*
  契約書だけ名前付きページを使い、
  請求書の @page margin:0 の影響を受けないようにする。
*/
@page ayukoneContract {
  size:A4 portrait;
  margin:17mm 18mm 18mm 18mm;
}

@media print{
  html.v095-printing-contract #v095ContractPrintRoot{
    page:ayukoneContract !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }

  html.v095-printing-contract #v095ContractPrintRoot .v095-contract-paper{
    page:ayukoneContract !important;
    width:100% !important;
    max-width:174mm !important;
    margin:0 auto !important;
    padding:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }

  html.v095-printing-contract .v095-contract-print-header{
    display:grid !important;
    grid-template-columns:25mm 1fr 25mm !important;
    align-items:center !important;
    gap:4mm !important;
    min-height:25mm !important;
    margin:0 0 9mm !important;
    padding:0 0 4mm !important;
  }

  html.v095-printing-contract .v095-contract-print-header img{
    position:static !important;
    grid-column:1 !important;
    justify-self:start !important;
    align-self:center !important;
    width:21mm !important;
    height:21mm !important;
    max-width:21mm !important;
    max-height:21mm !important;
    margin:0 !important;
  }

  html.v095-printing-contract .v095-contract-print-header h1{
    grid-column:2 !important;
    justify-self:center !important;
    align-self:center !important;
    margin:0 !important;
    line-height:1.2 !important;
  }

  html.v095-printing-contract .v095-contract-intro-print,
  html.v095-printing-contract .v095-contract-print-clause,
  html.v095-printing-contract .v095-contract-print-parties{
    text-align:left !important;
  }
}


/* ===== v1.1.10 管理者 請求書 月別折りたたみ ===== */

.v1110-invoice-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:14px;
}

.v1110-invoice-overview > div{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fbf7;
}

.v1110-invoice-overview span{
  display:block;
  color:var(--muted);
  font-size:9px;
}

.v1110-invoice-overview strong{
  display:block;
  margin-top:2px;
  color:var(--brand-green-dark);
  font-size:18px;
}

.v1110-invoice-tools{
  display:flex;
  gap:8px;
  margin-top:12px;
  flex-wrap:wrap;
}

.v1110-month-stack{
  display:grid;
  gap:10px;
}

.v1110-invoice-month{
  padding:0 !important;
  overflow:hidden;
}

.v1110-invoice-month-summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  cursor:pointer;
  user-select:none;
  background:#fff;
}

.v1110-invoice-month-summary::-webkit-details-marker{
  display:none;
}

.v1110-invoice-month[open] > .v1110-invoice-month-summary{
  border-bottom:1px solid var(--line);
  background:#f8fbf7;
}

.v1110-month-title{
  display:grid;
  gap:3px;
}

.v1110-month-title strong{
  color:var(--brand-green-dark);
  font-size:18px;
}

.v1110-month-title span{
  color:var(--muted);
  font-size:10px;
}

.v1110-month-summary-right{
  display:flex;
  align-items:center;
  gap:12px;
  flex:none;
}

.v1110-month-summary-right > strong{
  color:var(--brand-green-dark);
  font-size:17px;
}

.v1110-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--brand-green-dark);
  font-size:18px;
  line-height:1;
  transition:transform .18s ease;
}

.v1110-invoice-month[open] .v1110-chevron{
  transform:rotate(180deg);
}

.v1110-month-body{
  padding:14px 18px 18px;
}

.v1110-invoice-table-wrap{
  margin-top:14px;
}

@media(max-width:760px){
  .v1110-invoice-overview{
    grid-template-columns:1fr;
  }

  .v1110-invoice-month-summary{
    align-items:flex-start;
    padding:14px;
  }

  .v1110-month-summary-right{
    gap:7px;
  }

  .v1110-month-summary-right > strong{
    font-size:14px;
  }

  .v1110-month-body{
    padding:12px 14px 16px;
  }
}


/* ===== v1.1.11 スマホの案件カードを1行3件表示 ===== */
@media(max-width:600px){
  .v076-project-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:5px !important;
  }

  .v076-project-card{
    padding:7px !important;
    border-radius:11px !important;
    margin:0 !important;
    min-width:0 !important;
  }

  .v076-project-head{
    display:block !important;
    margin-bottom:7px !important;
  }

  .v076-project-name{
    font-size:11px !important;
    line-height:1.25 !important;
    min-height:28px;
  }

  .v076-project-kana{
    display:none !important;
  }

  .v076-status{
    margin-top:4px;
    padding:2px 5px !important;
    font-size:7px !important;
  }

  .v076-field{
    gap:2px !important;
  }

  .v076-field > span,
  .v076-mini-field > span{
    font-size:7.5px !important;
    line-height:1.2 !important;
  }

  .v076-field input,
  .v076-field select,
  .v076-mini-field input{
    min-height:32px !important;
    padding:4px 4px !important;
    border-radius:7px !important;
    font-size:11px !important;
  }

  .v076-number-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:4px !important;
    margin-top:5px !important;
  }

  .v076-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:4px !important;
    margin-top:5px !important;
  }

  .v076-metrics > div{
    padding:5px 3px !important;
    border-radius:7px !important;
  }

  .v076-metrics span{
    font-size:6.5px !important;
    line-height:1.15 !important;
  }

  .v076-metrics strong{
    margin-top:2px !important;
    font-size:10px !important;
  }

  .v086-no-time-box{
    padding:5px !important;
    border-radius:7px !important;
  }

  .v086-no-time-box span,
  .v086-no-time-box small{
    font-size:6.5px !important;
  }

  .v086-no-time-box strong{
    font-size:11px !important;
  }
}

@media(max-width:370px){
  .v076-project-grid{
    gap:4px !important;
  }

  .v076-project-card{
    padding:6px !important;
  }

  .v076-project-name{
    font-size:10px !important;
  }

  .v076-field input,
  .v076-field select{
    font-size:10px !important;
    padding-left:2px !important;
    padding-right:2px !important;
  }
}


/* ===== v1.1.12 管理者専用 記録・データ削除 ===== */
.v1112-delete-card{
  border-color:#ead5d5 !important;
}

.v1112-delete-user{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);
  gap:10px;
  align-items:end;
}

.v1112-selected-user{
  min-height:58px;
  display:grid;
  align-content:center;
  gap:2px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fbf7;
}

.v1112-selected-user span,
.v1112-selected-user small{
  color:var(--muted);
  font-size:8.5px;
}

.v1112-selected-user strong{
  color:var(--brand-green-dark);
}

.v1112-delete-section{
  margin-top:14px;
  padding:14px;
  border:1px solid #e1e8df;
  border-radius:12px;
  background:#fbfcfb;
}

.v1112-delete-section > div:first-child > strong{
  color:var(--brand-green-dark);
  font-size:12px;
}

.v1112-delete-section p{
  margin:5px 0 0;
  color:#5e6861;
  font-size:9.5px;
  line-height:1.65;
}

.v1112-range-form{
  display:grid;
  grid-template-columns:minmax(140px,.7fr) minmax(140px,.7fr) auto;
  align-items:end;
  gap:8px;
  margin-top:12px;
}

.v1112-danger-zone{
  border-color:#e3bebe;
  background:#fff8f8;
}

.v1112-danger-zone > div:first-child > strong{
  color:#8e2525;
}

.v1112-delete-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

.v1112-delete-list span{
  display:inline-flex;
  padding:5px 8px;
  border:1px solid #ead0d0;
  border-radius:999px;
  background:#fff;
  color:#795454;
  font-size:8.5px;
}

.v1112-confirm-box{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.8fr) auto;
  align-items:end;
  gap:8px;
  margin-top:13px;
  padding-top:12px;
  border-top:1px solid #ead0d0;
}

.v1112-confirm-box label{
  color:#6f4b4b;
  font-size:9.5px;
  line-height:1.55;
}

.v1112-confirm-box .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}

@media(max-width:760px){
  .v1112-delete-user,
  .v1112-range-form,
  .v1112-confirm-box{
    grid-template-columns:1fr;
  }
}


/* ===== v1.1.13 案件実績の記録者内訳 ===== */
.v1113-project-note{
  margin:8px 0 12px;
  padding:9px 11px;
  border:1px solid #dce7da;
  border-radius:10px;
  background:#f8fbf7;
  color:#59655c;
  font-size:9px;
  line-height:1.6;
}

.v1113-source-details{
  min-width:110px;
}

.v1113-source-details summary{
  cursor:pointer;
  color:var(--brand-green-dark);
  font-weight:800;
  white-space:nowrap;
}

.v1113-source-list{
  display:grid;
  gap:6px;
  min-width:320px;
  margin-top:8px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}

.v1113-source-row{
  display:grid;
  grid-template-columns:minmax(120px,1.2fr) auto auto auto;
  gap:6px 10px;
  align-items:center;
  padding:7px 8px;
  border-radius:8px;
  background:#f8fbf7;
  font-size:8.5px;
}

.v1113-source-row > div:first-child{
  display:grid;
}

.v1113-source-row > div:first-child span{
  color:var(--muted);
  font-size:7.5px;
}

.v1113-source-dates{
  grid-column:1 / -1;
  color:var(--muted);
  font-size:7.5px;
}

.v1113-admin-reset-note{
  margin-top:13px;
  padding:10px 12px;
  border:1px solid #ead0d0;
  border-radius:10px;
  background:#fff;
  color:#795454;
  font-size:9px;
  line-height:1.65;
}

@media(max-width:700px){
  .v1113-source-list{
    min-width:245px;
  }

  .v1113-source-row{
    grid-template-columns:1fr 1fr;
  }

  .v1113-source-row > div:first-child,
  .v1113-source-dates{
    grid-column:1 / -1;
  }
}


/* ===== v1.1.14 管理者専用 案件台帳 ===== */

.v1114-average-wage-card,
.v1114-project-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.v1114-average-wage-card > div,
.v1114-project-summary > div{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fbf7;
}

.v1114-average-wage-card span,
.v1114-project-summary span{
  display:block;
  color:var(--muted);
  font-size:8.5px;
}

.v1114-average-wage-card strong,
.v1114-project-summary strong{
  display:block;
  margin-top:2px;
  color:var(--brand-green-dark);
  font-size:17px;
}

.v1114-average-wage-note{
  margin-top:9px;
  color:var(--muted);
  font-size:8.5px;
  line-height:1.55;
}

.v1114-create-project{
  padding:0 !important;
  overflow:hidden;
}

.v1114-create-project > summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 18px;
  cursor:pointer;
}

.v1114-create-project > summary::-webkit-details-marker{
  display:none;
}

.v1114-create-project > summary strong{
  color:var(--brand-green-dark);
  font-size:17px;
}

.v1114-create-project > summary span{
  color:var(--muted);
  font-size:9px;
}

.v1114-create-project[open] > summary{
  border-bottom:1px solid var(--line);
  background:#f8fbf7;
}

.v1114-create-body{
  padding:16px 18px 18px;
}

.v1114-project-form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px 10px;
}

.v1114-span-2{
  grid-column:span 2;
}

.v1114-hidden{
  display:none !important;
}

.v1114-auto-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
  margin-top:14px;
}

.v1114-auto-grid > div{
  min-width:0;
  padding:9px 8px;
  border:1px solid #dbe6d8;
  border-radius:10px;
  background:#f7fbf6;
}

.v1114-auto-grid span,
.v1114-auto-grid small{
  display:block;
  color:var(--muted);
  font-size:7.5px;
  line-height:1.35;
}

.v1114-auto-grid strong{
  display:block;
  margin:3px 0 2px;
  color:var(--brand-green-dark);
  font-size:13px;
  word-break:break-word;
}

.v1114-create-button{
  width:100%;
  margin-top:13px;
}

.v1114-project-list{
  display:grid;
  gap:9px;
  margin-top:12px;
}

.v1114-project-ledger{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}

.v1114-project-ledger > summary{
  list-style:none;
  display:grid;
  grid-template-columns:minmax(150px,.8fr) minmax(0,1.7fr) auto;
  gap:12px;
  align-items:center;
  padding:13px 14px;
  cursor:pointer;
  user-select:none;
}

.v1114-project-ledger > summary::-webkit-details-marker{
  display:none;
}

.v1114-project-ledger[open] > summary{
  background:#f8fbf7;
  border-bottom:1px solid var(--line);
}

.v1114-ledger-title{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}

.v1114-ledger-title strong{
  color:var(--brand-green-dark);
  overflow:hidden;
  text-overflow:ellipsis;
}

.v1114-ledger-summary-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px 12px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:8.5px;
}

.v1114-ledger-summary-meta strong{
  color:#23672c;
}

.v1114-ledger-summary-meta .v1114-negative,
.v1114-negative{
  color:#a02e2e !important;
}

.v1114-ledger-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--brand-green-dark);
  transition:transform .18s ease;
}

.v1114-project-ledger[open] .v1114-ledger-chevron{
  transform:rotate(180deg);
}

.v1114-ledger-body{
  padding:14px;
}

.v1114-project-actions{
  margin-top:13px;
}

@media(max-width:900px){
  .v1114-project-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1114-auto-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .v1114-project-summary,
  .v1114-average-wage-card{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .v1114-project-form-grid{
    grid-template-columns:1fr;
  }

  .v1114-span-2{
    grid-column:auto;
  }

  .v1114-auto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1114-project-ledger > summary{
    grid-template-columns:1fr auto;
  }

  .v1114-ledger-summary-meta{
    grid-column:1 / -1;
    justify-content:flex-start;
  }

  .v1114-project-summary,
  .v1114-average-wage-card{
    grid-template-columns:1fr 1fr;
  }
}


/* ===== v1.1.15 案件進捗・管理値補正 ===== */

/* 自動計算カードの補足文字を読みやすくする */
.v1114-auto-grid span,
.v1114-auto-grid small{
  color:#47564b !important;
  opacity:1 !important;
  font-weight:600;
}

.v1114-auto-grid span{
  font-size:8px !important;
}

.v1114-auto-grid small{
  font-size:7.5px !important;
}

.v1115-auto-grid{
  grid-template-columns:repeat(9,minmax(0,1fr));
}

.v1115-goal-card{
  background:#eef7ec !important;
  border-color:#bfd7bb !important;
}

.v1115-goal-card b{
  display:block;
  margin:3px 0 2px;
  color:#163f1c;
  font-size:12px;
}

.v1115-field-hint{
  display:block;
  margin-top:3px;
  color:#506054;
  font-size:8px;
  line-height:1.35;
}

.v1115-override-note{
  margin-top:9px;
  padding:8px 10px;
  border:1px solid #d6e3d3;
  border-radius:9px;
  background:#f7fbf6;
  color:#415046;
  font-size:8.5px;
  line-height:1.6;
}

/* 閉じた状態でも状況を確認しやすく */
.v1115-ledger-summary-meta{
  justify-content:flex-start !important;
  gap:5px !important;
}

.v1115-summary-chip{
  display:inline-flex !important;
  align-items:center;
  min-height:25px;
  padding:4px 7px;
  border:1px solid #dce6d9;
  border-radius:999px;
  background:#f7faf6;
  color:#334239 !important;
  font-size:9px !important;
  font-weight:700;
  white-space:nowrap;
}

.v1115-goal-summary{
  background:#edf7eb;
  border-color:#bcd7b7;
  color:#174b20 !important;
}

.v1114-ledger-summary-meta{
  color:#3f4d43 !important;
  font-size:9.5px !important;
}

.v1114-create-project > summary span,
.v1114-average-wage-note,
.v1114-project-summary span,
.v1114-average-wage-card span{
  color:#4c5b50 !important;
}

/* 閉じた案件カードを少し広く使う */
.v1114-project-ledger > summary{
  grid-template-columns:minmax(145px,.6fr) minmax(0,2.4fr) auto !important;
  align-items:start !important;
}

@media(max-width:1100px){
  .v1115-auto-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .v1115-auto-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .v1114-project-ledger > summary{
    grid-template-columns:1fr auto !important;
  }

  .v1115-ledger-summary-meta{
    grid-column:1 / -1;
  }

  .v1115-summary-chip{
    font-size:8.5px !important;
  }
}

@media(max-width:480px){
  .v1115-auto-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1115-summary-chip{
    white-space:normal;
  }
}


/* ===== v1.1.16 案件補正方式・開いた画面の簡素化 ===== */

.v1116-adjust-field{
  background:#f8fbf7;
  border:1px solid #dce8d9;
  border-radius:10px;
  padding:8px;
}

.v1116-adjust-field input{
  background:#fff;
}

.v1116-adjust-field .v1115-field-hint{
  color:#33463a !important;
  font-weight:700;
  line-height:1.5;
}

.v1116-adjust-explanation{
  display:flex;
  gap:7px;
  align-items:flex-start;
  margin-top:12px;
  padding:9px 11px;
  border:1px solid #d7e5d4;
  border-radius:10px;
  background:#f5faf4;
  color:#36473a;
  font-size:8.5px;
  line-height:1.55;
}

.v1116-adjust-explanation strong{
  flex:none;
  color:#174d20;
}

.v1115-summary-chip{
  color:#26382c !important;
  border-color:#cddcc9 !important;
  background:#fafcf9 !important;
}

.v1115-goal-summary{
  background:#eaf6e8 !important;
  color:#123f19 !important;
  border-color:#aacda4 !important;
}

/* v1.1.16では開いた案件内の重複集計カードは表示しない。
   数字確認は閉じた案件カードに集約。 */
.v1114-ledger-summary-meta{
  line-height:1.35;
}

@media(max-width:600px){
  .v1116-adjust-explanation{
    display:block;
  }

  .v1116-adjust-explanation strong{
    display:block;
    margin-bottom:3px;
  }
}


/* ===== v1.1.17 閉じた案件カードに概算人件費 ===== */
.v1117-labor-chip{
  background:#f3f6f2 !important;
  border-color:#cbd8c8 !important;
  color:#33443a !important;
}


/* ===== v1.1.18 管理者 経費管理 ===== */

.v1118-month-head{
  display:grid;
  grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr);
  gap:10px;
  align-items:end;
  margin-top:10px;
}

.v1118-current-admin{
  display:grid;
  gap:2px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fbf7;
}

.v1118-current-admin span,
.v1118-current-admin small{
  color:#4a5b4f;
  font-size:8.5px;
}

.v1118-current-admin strong{
  color:var(--brand-green-dark);
  font-size:14px;
}

.v1118-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v1118-summary-grid > div{
  padding:11px 12px;
  border:1px solid #d9e6d6;
  border-radius:11px;
  background:#f8fbf7;
}

.v1118-summary-grid span{
  display:block;
  color:#405146;
  font-size:8.5px;
  font-weight:700;
}

.v1118-summary-grid strong{
  display:block;
  margin-top:3px;
  color:var(--brand-green-dark);
  font-size:17px;
}

.v1118-zoom-card{
  border-color:#c7dcbf !important;
}

.v1118-always{
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:2px 6px;
  border-radius:999px;
  background:#e7f4e2;
  color:#276632;
  font-size:8px;
  vertical-align:middle;
}

.v1118-zoom-form{
  display:grid;
  grid-template-columns:150px 150px minmax(180px,1fr) auto auto;
  gap:8px;
  align-items:end;
}

.v1118-entry-grid{
  display:grid;
  grid-template-columns:150px minmax(180px,1fr) 160px minmax(180px,1.2fr);
  gap:9px;
  align-items:end;
}

.v1118-note-field{
  min-width:0;
}

.v1118-form-actions{
  display:flex;
  gap:8px;
  margin-top:12px;
}

.v1118-selected-total{
  text-align:right;
}

.v1118-selected-total span{
  display:block;
  color:#4c5b50;
  font-size:8px;
}

.v1118-selected-total strong{
  display:block;
  color:var(--brand-green-dark);
  font-size:16px;
}

.v1118-owner-tabs{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}

.v1118-owner-tab{
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  padding:7px 11px;
  color:#435148;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}

.v1118-owner-tab.active{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
}

.v1118-admin-breakdown{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-bottom:12px;
}

.v1118-admin-breakdown > div{
  padding:9px 10px;
  border:1px solid #dde7da;
  border-radius:10px;
  background:#fafcf9;
}

.v1118-admin-breakdown span,
.v1118-admin-breakdown small{
  display:block;
  color:#4b5b50;
  font-size:8px;
}

.v1118-admin-breakdown strong{
  display:block;
  margin:2px 0;
  color:#173e1d;
  font-size:13px;
}

.v1118-expense-table td{
  vertical-align:middle;
}

.v1118-zoom-pill{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border:1px solid #bcd7b6;
  border-radius:999px;
  background:#edf7ea;
  color:#1f6029;
  font-size:8.5px;
  font-weight:800;
}

.v1118-row-actions{
  display:flex;
  gap:8px;
  align-items:center;
}

.v1118-history-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.v1118-history-month{
  width:100%;
  text-align:left;
  border:1px solid #dce6d9;
  border-radius:11px;
  background:#fafcf9;
  padding:10px 11px;
  cursor:pointer;
}

.v1118-history-month.active{
  border-color:#8dbc87;
  background:#f0f8ee;
}

.v1118-history-month span,
.v1118-history-month small{
  display:block;
  color:#46564b;
  font-size:8.5px;
}

.v1118-history-month strong{
  display:block;
  margin:3px 0;
  color:#173f1d;
  font-size:15px;
}

@media(max-width:900px){
  .v1118-summary-grid,
  .v1118-admin-breakdown{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1118-zoom-form,
  .v1118-entry-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1118-note-field{
    grid-column:span 2;
  }

  .v1118-history-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .v1118-month-head{
    grid-template-columns:1fr;
  }

  .v1118-summary-grid,
  .v1118-admin-breakdown{
    grid-template-columns:1fr 1fr;
  }

  .v1118-zoom-form,
  .v1118-entry-grid{
    grid-template-columns:1fr;
  }

  .v1118-note-field{
    grid-column:auto;
  }

  .v1118-form-actions{
    flex-direction:column;
  }

  .v1118-history-grid{
    grid-template-columns:1fr;
  }

  .v1118-table-wrap{
    overflow-x:auto;
  }

  .v1118-expense-table{
    min-width:760px;
  }
}


/* ===== v1.1.19 月次損益出力 ===== */
.v1119-profit-loss-export{
  border-color:#d9c7cc !important;
}
.v1119-profit-loss-export .section-title h3{
  color:#5f2d3d;
}


/* ===== v1.1.21 出力の自動タイミング表示 ===== */
.v1121-export-badges{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  flex:none;
}

.v1121-auto-schedule{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 8px;
  border:1px solid #d6e3d2;
  border-radius:999px;
  background:#f7faf6;
  color:#39503f;
  font-size:8.5px;
  font-weight:800;
  white-space:nowrap;
}

.v1121-timing-note strong{
  color:#1d5726;
}

@media(max-width:600px){
  .v1121-export-badges{
    align-items:flex-start;
    margin-top:6px;
  }

  .v1121-auto-schedule{
    white-space:normal;
  }
}


/* ===== v1.1.25 マニュアル配置 + 直近7日間実績 ===== */
.v1125-position-help,
.v1125-position-label{
  color:#405047 !important;
  font-weight:700;
}

.v1125-seven-days{
  display:grid;
  gap:8px;
  margin-top:10px;
}

.v1125-day-detail{
  border:1px solid #d9e5d6;
  border-radius:12px;
  background:#fbfdfb;
  overflow:hidden;
}

.v1125-day-detail > summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:11px 13px;
  cursor:pointer;
  list-style:none;
  background:#f6faf5;
}

.v1125-day-detail > summary::-webkit-details-marker{display:none;}
.v1125-day-detail > summary div{display:grid;gap:2px;}
.v1125-day-detail > summary strong{color:#173f1d;font-size:13px;}
.v1125-day-detail > summary span{color:#4b5b50;font-size:9px;}

.v1125-day-count{
  flex:none;
  padding:4px 7px;
  border-radius:999px;
  background:#e7f4e3;
  color:#24642d !important;
  font-weight:800;
}

.v1125-day-body{
  display:grid;
  gap:9px;
  padding:10px;
}

.v1125-project-day-block{
  border:1px solid #dce6d9;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}

.v1125-project-day-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  background:#f1f7ef;
}

.v1125-project-day-head strong{
  color:#163f1c;
}

.v1125-project-day-head span{
  color:#44554a;
  font-size:8.5px;
  font-weight:700;
}

.v1125-project-staff-table{
  min-width:480px;
}

.v1125-role{
  display:inline-flex;
  padding:3px 6px;
  border-radius:999px;
  font-size:8px;
  font-weight:800;
}

.v1125-role.staff{
  background:#edf6eb;
  color:#25632e;
}

.v1125-role.admin{
  background:#f3edf0;
  color:#6a3345;
}

@media(max-width:600px){
  .v1125-day-detail > summary{
    align-items:flex-start;
  }
  .v1125-project-day-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* ============================================================
   v1.1.26 DB容量整理 / 長期保管
   ============================================================ */
.v1126-storage-tab{
  color:#a51d1d !important;
  border-color:#efcaca !important;
}

.v1126-storage-tab.active{
  background:#fff1f1 !important;
  color:#8f1717 !important;
  border-color:#d99a9a !important;
}

.v1126-storage-title{
  align-items:flex-start;
}

.v1126-owner-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:6px;
  padding:4px 8px;
  border:1px solid #efb7b7;
  border-radius:999px;
  background:#fff1f1;
  color:#9c1d1d;
  font-size:10px;
  font-weight:900;
  letter-spacing:.02em;
}

.v1126-storage-owner-card h2{
  margin-top:0;
}

.v1126-storage-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.v1126-storage-metrics > div{
  display:grid;
  gap:4px;
  padding:13px;
  border:1px solid #dfe8dc;
  border-radius:13px;
  background:#f8fbf7;
}

.v1126-storage-metrics span{
  color:#637067;
  font-size:10px;
  font-weight:700;
}

.v1126-storage-metrics strong{
  color:#173f1d;
  font-size:18px;
}

.v1126-storage-progress{
  height:10px;
  margin:14px 0 10px;
  overflow:hidden;
  border-radius:999px;
  background:#edf1ec;
  border:1px solid #dde4db;
}

.v1126-storage-progress span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#4f8b58,#b48836,#b42318);
}

.v1126-capacity-message{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid #dce6d9;
  background:#f7faf6;
}

.v1126-capacity-message strong{
  flex:none;
}

.v1126-capacity-message.ok strong{color:#267033;}
.v1126-capacity-message.warn strong{color:#9b6411;}
.v1126-capacity-message.danger strong{color:#b42318;}

.v1126-owner-warning{
  display:grid;
  gap:4px;
  margin:12px 0;
  padding:11px 12px;
  border-left:4px solid #b42318;
  border-radius:10px;
  background:#fff5f5;
}

.v1126-owner-warning strong{
  color:#a11d1d;
}

.v1126-owner-warning span{
  color:#5f4a4a;
  font-size:10px;
}

.v1126-retention-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);
  gap:12px;
  align-items:end;
}

.v1126-cutoff-summary{
  min-height:64px;
  display:grid;
  gap:3px;
  align-content:center;
  padding:10px 12px;
  border:1px solid #dce6d9;
  border-radius:12px;
  background:#f8fbf7;
}

.v1126-cutoff-summary span,
.v1126-cutoff-summary small{
  color:#68736b;
  font-size:9px;
}

.v1126-cutoff-summary strong{
  color:#173f1d;
}

.v1126-preview-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.v1126-preview-grid > div{
  display:grid;
  gap:3px;
  padding:10px;
  border:1px solid #e1e8df;
  border-radius:10px;
  background:#fff;
}

.v1126-preview-grid span{
  color:#6b756d;
  font-size:9px;
}

.v1126-preview-grid strong{
  color:#173f1d;
}

.v1126-total-target{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:10px 0;
  padding:10px 12px;
  border-radius:10px;
  background:#f2f7f0;
}

.v1126-total-target span{
  font-size:10px;
  color:#59665d;
}

.v1126-total-target strong{
  color:#173f1d;
  font-size:17px;
}

.btn.v1126-danger-action{
  background:#fff !important;
  color:#b42318 !important;
  border:1px solid #d96b64 !important;
  box-shadow:none !important;
  font-weight:900 !important;
}

.btn.v1126-danger-action:hover:not(:disabled){
  background:#fff2f1 !important;
}

.btn.v1126-danger-action:disabled{
  color:#b9a1a1 !important;
  border-color:#e2d4d4 !important;
  background:#faf7f7 !important;
}

.v1126-main-cleanup-button{
  width:100%;
  margin-top:10px;
  min-height:48px;
}

.v1126-cleanup-safety{
  display:grid;
  gap:4px;
  margin:10px 0;
  padding:10px 12px;
  border-radius:10px;
  background:#fff9ef;
  border:1px solid #efd9af;
}

.v1126-cleanup-safety strong{color:#7c5316;}
.v1126-cleanup-safety span,
.v1126-cleanup-safety small{color:#6d604d;font-size:9px;}

.v1126-processing-note,
.v1126-archived-pending{
  display:grid;
  gap:6px;
  margin:10px 0;
  padding:11px 12px;
  border:1px solid #d7e6d2;
  border-radius:11px;
  background:#f3f9f1;
}

.v1126-processing-note strong,
.v1126-archived-pending strong{
  color:#245d2a;
}

.v1126-processing-note span,
.v1126-archived-pending span{
  font-size:10px;
  color:#566158;
}

.v1126-inline-manual summary{
  cursor:pointer;
  color:#173f1d;
}

.v1126-inline-manual > div{
  padding-top:10px;
}

.v1126-inline-manual ol{
  margin:0;
  padding-left:20px;
}

.v1126-inline-manual li{
  margin:7px 0;
  line-height:1.6;
}

.v1126-manual-caution{
  margin-top:10px;
  padding:10px;
  border-radius:9px;
  background:#fff6f4;
  border:1px solid #efd4cf;
  color:#684845;
  font-size:10px;
  line-height:1.6;
}

.v1126-job-list{
  display:grid;
  gap:8px;
}

.v1126-job-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  border:1px solid #e0e7dd;
  border-radius:10px;
  background:#fff;
}

.v1126-job-row.failed{
  border-color:#efd0d0;
  background:#fff8f8;
}

.v1126-job-row > div{
  display:grid;
  gap:2px;
}

.v1126-job-row span,
.v1126-job-row small{
  font-size:9px;
  color:#657067;
}

.v1126-job-error{
  color:#aa2828 !important;
}

.v1126-manual-owner-note{
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid #efc2c2;
  border-radius:10px;
  background:#fff4f4;
  color:#6e3d3d;
}

.v1126-manual-owner-note strong{
  color:#a31f1f;
}

.v1126-manual-danger-jump{
  color:#a31f1f !important;
  border-color:#e8bebe !important;
}

@media(max-width:760px){
  .v1126-storage-metrics,
  .v1126-preview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .v1126-retention-row{
    grid-template-columns:1fr;
  }
}


/* v1.1.30 manual full ordering */
.v1130-manual-order-card{
  border:1px solid #cbdcc8;
}
.v1130-order-help,
.v1130-order-form-note{
  font-size:12px;
  line-height:1.7;
  color:#516153;
  background:#f4f8f2;
  border:1px solid #dce8d8;
  border-radius:10px;
  padding:9px 11px;
  margin-top:8px;
}
.v1130-manual-order-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}
.v1130-manual-order-row{
  display:grid;
  grid-template-columns:auto 34px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid #e0e8de;
  border-radius:12px;
  padding:10px;
  background:#fff;
}
.v1130-order-index{
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:800;
  font-size:12px;
  color:#24552b;
  background:#edf6ea;
}
.v1130-fixed-badge,
.v1130-custom-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px;
  font-weight:800;
}
.v1130-fixed-badge{
  color:#5a4300;
  background:#fff2bd;
}
.v1130-custom-badge{
  color:#1e5627;
  background:#e3f3df;
}
.v1130-hidden-manuals{
  margin-top:14px;
  border-top:1px solid #e1e8df;
  padding-top:10px;
}
.v1130-hidden-manuals summary{
  cursor:pointer;
  font-weight:700;
  color:#7a2a2a;
}
.v1130-hidden-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}
.v1130-hidden-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:9px 10px;
  border:1px dashed #ddcaca;
  border-radius:10px;
  background:#fffafa;
}
@media (max-width:700px){
  .v1130-manual-order-row{
    grid-template-columns:auto 28px minmax(0,1fr);
  }
  .v1130-manual-order-row .v104-admin-manual-actions{
    grid-column:1 / -1;
  }
}


/* ===== v1.1.31 リマインド ===== */
.bottom-nav[style*="--nav-count:9"] .nav-btn{
  padding-left:0;
  padding-right:0;
  font-size:8px;
}

.v1131-reminder-create{
  border-top:4px solid var(--brand-green);
}
.v1131-alarm-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fafcf9;
  cursor:pointer;
}
.v1131-alarm-toggle input{
  width:22px;
  height:22px;
  flex:0 0 auto;
}
.v1131-alarm-toggle span{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.v1131-alarm-toggle small{
  color:var(--muted);
  font-size:11px;
}
.v1131-current-sound{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  padding:10px 12px;
  margin-bottom:10px;
  border-radius:12px;
  background:#f4f8f2;
  border:1px solid #dce8d8;
  font-size:12px;
}
.v1131-reminder-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}
.v1131-reminder-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.v1131-reminder-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px;
  background:#fff;
}
.v1131-reminder-card.completed{
  background:#fafafa;
  opacity:.94;
}
.v1131-reminder-head{
  display:flex;
  gap:10px;
  justify-content:space-between;
  align-items:flex-start;
}
.v1131-reminder-head strong{
  font-size:15px;
}
.v1131-reminder-time{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.v1131-reminder-note{
  margin:10px 0;
  padding:10px 11px;
  border-radius:10px;
  background:#f8faf8;
  border:1px solid #e8eee6;
  font-size:12px;
  line-height:1.7;
  overflow-wrap:anywhere;
}
.v1131-reschedule{
  margin:10px 0;
  padding:10px;
  border:1px dashed #cdd9ca;
  border-radius:11px;
  background:#fbfdfb;
}
.v1131-reschedule .btn{
  margin-top:8px;
}
.v1131-sound-note{
  line-height:1.7;
}
@media(max-width:520px){
  .bottom-nav[style*="--nav-count:9"] .nav-btn{
    font-size:7.5px;
    padding-left:0;
    padding-right:0;
  }
  .v1131-reminder-head{
    align-items:flex-start;
  }
}


/* v1.1.32 - reminder alarm visibility fix */
.v1132-reminder-alarm-overlay{
  position:fixed;
  inset:0;
  z-index:10050;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(8,22,10,.56);
  backdrop-filter:blur(3px);
  animation:v1132AlarmFade .16s ease-out;
}
.v1132-reminder-alarm-card{
  width:min(520px,94vw);
  border-radius:24px;
  background:#fff;
  border:3px solid #a32222;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
  padding:26px 22px 20px;
  text-align:center;
  animation:v1132AlarmPop .28s ease-out;
}
.v1132-reminder-alarm-icon{
  font-size:38px;
  line-height:1;
  animation:v1132AlarmBell .8s ease-in-out 3;
}
.v1132-reminder-alarm-kicker{
  margin-top:10px;
  font-weight:900;
  font-size:20px;
  color:#a32222;
}
.v1132-reminder-alarm-card h2{
  margin:8px 0 4px;
  font-size:28px;
  line-height:1.35;
  color:#17301a;
}
.v1132-reminder-alarm-time{
  font-weight:800;
  color:#4d5b50;
  margin-top:4px;
}
.v1132-reminder-alarm-note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  text-align:left;
  background:#f4f8f2;
  border:1px solid #dce8d8;
  line-height:1.7;
}
.v1132-reminder-alarm-actions{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@keyframes v1132AlarmFade{
  from{opacity:0}to{opacity:1}
}
@keyframes v1132AlarmPop{
  from{transform:scale(.92);opacity:.5}to{transform:scale(1);opacity:1}
}
@keyframes v1132AlarmBell{
  0%,100%{transform:rotate(0)}
  25%{transform:rotate(-14deg)}
  75%{transform:rotate(14deg)}
}
@media(max-width:560px){
  .v1132-reminder-alarm-card{
    padding:22px 16px 16px;
  }
  .v1132-reminder-alarm-card h2{
    font-size:24px;
  }
  .v1132-reminder-alarm-actions{
    grid-template-columns:1fr;
  }
}


/* ===== v1.1.33 横スクロール下部メニュー ===== */

/* 以前のnav-count依存の縮小指定を上書き */
.bottom-nav{
  display:block !important;
  width:min(820px,100%);
  padding:0 !important;
  min-height:76px;
  overflow:visible;
  position:fixed;
}

.v1133-nav-scroll{
  display:flex;
  align-items:stretch;
  gap:2px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:9px 42px calc(10px + env(safe-area-inset-bottom));
  touch-action:pan-x;
}
.v1133-nav-scroll::-webkit-scrollbar{
  display:none;
}

.bottom-nav .nav-btn,
.bottom-nav[style*="--nav-count:6"] .nav-btn,
.bottom-nav[style*="--nav-count:7"] .nav-btn,
.bottom-nav[style*="--nav-count:8"] .nav-btn{
  flex:0 0 84px;
  min-width:84px;
  min-height:50px;
  padding:10px 8px !important;
  font-size:12.5px !important;
  line-height:1.15;
  white-space:nowrap;
  position:relative;
}

.v1133-nav-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-58%);
  z-index:5;
  width:34px;
  height:42px;
  border:1px solid #cbdcc8;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#1f5424;
  font-size:30px;
  font-weight:900;
  line-height:1;
  display:grid;
  place-items:center;
  box-shadow:0 3px 12px rgba(31,84,36,.18);
  cursor:pointer;
  transition:opacity .18s ease,transform .18s ease;
}
.v1133-nav-arrow-left{
  left:5px;
}
.v1133-nav-arrow-right{
  right:5px;
}
.v1133-nav-arrow.is-hidden{
  opacity:.16;
  pointer-events:none;
}

.v1133-nav-hint{
  position:absolute;
  left:50%;
  top:-22px;
  transform:translateX(-50%);
  z-index:4;
  border:1px solid #d8e7d5;
  background:rgba(247,251,246,.97);
  color:#557059;
  border-radius:999px;
  padding:3px 10px;
  font-size:10px;
  font-weight:800;
  line-height:1.25;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(31,84,36,.07);
  pointer-events:none;
}

.v1133-nav-scroll::before,
.v1133-nav-scroll::after{
  content:"";
  flex:0 0 1px;
}

@media(max-width:520px){
  .bottom-nav{
    min-height:78px;
  }
  .v1133-nav-scroll{
    padding-left:40px;
    padding-right:40px;
  }
  .bottom-nav .nav-btn{
    flex-basis:88px;
    min-width:88px;
    font-size:13px !important;
  }
  .v1133-nav-arrow{
    width:32px;
    height:40px;
    font-size:28px;
  }
  .v1133-nav-hint{
    font-size:10px;
    top:-21px;
  }
}


/* ===== v1.1.34 下部メニュー微調整 ===== */
.v1133-nav-scroll{
  padding-left:26px !important;
  padding-right:26px !important;
}

.bottom-nav .nav-btn{
  flex:0 0 76px !important;
  min-width:76px !important;
  min-height:48px !important;
  padding:9px 6px !important;
  font-size:11.5px !important;
  line-height:1.15 !important;
}

.v1133-nav-arrow{
  width:17px !important;
  height:28px !important;
  font-size:18px !important;
  font-weight:800 !important;
  border-radius:999px !important;
  border:1px solid rgba(203,220,200,.75) !important;
  background:rgba(255,255,255,.86) !important;
  box-shadow:0 1px 5px rgba(31,84,36,.08) !important;
  pointer-events:none !important;
  opacity:.75;
}
.v1133-nav-arrow-left{
  left:3px !important;
}
.v1133-nav-arrow-right{
  right:3px !important;
}
.v1133-nav-arrow.is-hidden{
  opacity:.08 !important;
}

.v1133-nav-hint{
  font-size:9px !important;
  padding:2px 8px !important;
  top:-19px !important;
  opacity:.92;
}

@media(max-width:520px){
  .v1133-nav-scroll{
    padding-left:24px !important;
    padding-right:24px !important;
  }
  .bottom-nav .nav-btn{
    flex-basis:76px !important;
    min-width:76px !important;
    font-size:11.5px !important;
  }
  .v1133-nav-arrow{
    width:16px !important;
    height:26px !important;
    font-size:17px !important;
  }
}


/* ===== v1.1.39 30分目標の見える化 ===== */
.v1139-target30-chip{
  font-weight:800;
  border-color:#b8d8b6 !important;
  background:#f2f8ef !important;
  color:#255b2b !important;
}

.v1139-record-target{
  margin-top:7px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:5px 9px;
  border:1px solid #b9d8b7;
  border-radius:999px;
  background:#f2f8ef;
  color:#285e2d;
  line-height:1.15;
  max-width:100%;
}

.v1139-record-target span{
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
  opacity:.82;
}

.v1139-record-target strong{
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}

@media(max-width:520px){
  .v1139-record-target{
    margin-top:6px;
    padding:5px 8px;
  }
  .v1139-record-target strong{
    font-size:12.5px;
  }
}


/* ===== v1.1.40 30分目標 スマホ表示調整 ===== */

/* 管理の案件一覧側 */
.v1139-target30-chip{
  max-width:100%;
  min-width:0;
  white-space:normal !important;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.25;
}

/* 記録画面側 */
.v1139-record-target{
  box-sizing:border-box;
  width:fit-content;
  max-width:100%;
  min-width:0;
  flex-wrap:wrap;
  row-gap:2px;
  overflow:hidden;
}

.v1139-record-target span,
.v1139-record-target strong{
  min-width:0;
  max-width:100%;
}

.v1139-record-target strong{
  white-space:normal !important;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* 案件名側自体も縮められるよう明示 */
.v076-project-title-wrap{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}

@media(max-width:520px){
  .v1139-record-target{
    gap:5px;
    padding:4px 7px;
    border-radius:12px;
  }

  .v1139-record-target span{
    font-size:9.5px;
  }

  .v1139-record-target strong{
    font-size:12px;
  }
}

/* ===== v1.1.41 社単位 / 件数調整 ===== */
.v1141-project-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.v1141-adjust-date-row{margin-top:14px;display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:14px;align-items:end}
.v1141-adjust-help{border:1px solid #dce8d8;background:#f6faf4;border-radius:14px;padding:11px 13px;font-size:12px;line-height:1.6;color:#4d6250}
.v1141-adjust-list{display:grid;gap:12px}
.v1141-adjust-card{border:1px solid #dce8d8;border-radius:16px;padding:14px;background:#fff}
.v1141-adjust-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.v1141-adjust-head strong{font-size:15px}
.v1141-company-badge{flex:0 0 auto;border-radius:999px;padding:4px 9px;background:#f4edf0;border:1px solid #decbd1;color:#7a2f44;font-size:10px;font-weight:900}
.v1141-adjust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.v1141-auto-count{min-height:64px;border:1px solid #e1e8de;border-radius:12px;padding:10px;background:#fafcf9;display:flex;flex-direction:column;justify-content:center;gap:3px}
.v1141-auto-count span{font-size:10px;color:#69776a;font-weight:700}
.v1141-auto-count strong{font-size:18px;color:#244d29}
.v1141-company-field{grid-column:span 2;border:1px solid #ddcbd1;background:#fff8fa;border-radius:12px;padding:10px}
.v1141-adjust-actions{display:flex;justify-content:flex-end;margin-top:10px}
.v1141-company-summary{border-color:#ddcbd1!important;background:#fff7f9!important;color:#7a2f44!important;font-weight:900}
@media(max-width:700px){.v1141-adjust-date-row{grid-template-columns:1fr}.v1141-adjust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v1141-company-field{grid-column:1/-1}}
@media(max-width:440px){.v1141-adjust-grid{grid-template-columns:1fr 1fr;gap:8px}.v1141-adjust-card{padding:11px}.v1141-auto-count strong{font-size:16px}}


/* ===== v1.1.42 件数調整：正しい件数を直接入力 ===== */
.v1142-correct-field{
  border:1px solid #cfe0cc;
  background:#f8fbf6;
  border-radius:12px;
  padding:9px;
}

.v1142-correct-field input{
  font-weight:800;
}

.v1142-correct-field .v1115-field-hint strong{
  color:#285e2d;
  font-weight:900;
}


/* ===== v1.1.43 管理補正を管理側集計へ反映 ===== */
.v1143-admin-note{
  margin:8px 0 12px;
  padding:9px 11px;
  border:1px solid #d9e5d6;
  border-radius:12px;
  background:#f7faf5;
  color:#526255;
  font-size:11px;
  line-height:1.6;
}

.v1143-adjustment-row td{
  background:#fffaf0 !important;
  font-weight:700;
}

.v1143-adjustment-badge{
  display:inline-flex;
  align-items:center;
  border:1px solid #ead8ae;
  background:#fff7df;
  color:#745b20;
  border-radius:999px;
  padding:3px 7px;
  font-size:10px;
  font-weight:800;
}

.v1143-source-adjustment{
  background:#fffaf0;
  border-color:#ead8ae !important;
}


/* ===== v1.1.44 管理者固定給 ===== */
.v1144-admin-salary-card{border-color:#d9dfcf}
.v1144-fixed-total{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.v1144-fixed-total span{font-size:10px;color:#6a766b;font-weight:700}
.v1144-fixed-total strong{font-size:18px;color:#17301a}
.v1144-month-selector{max-width:260px;margin-bottom:12px}
.v1144-admin-salary-list{display:grid;gap:10px}
.v1144-admin-salary-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(150px,.8fr) minmax(180px,1.2fr) auto;gap:10px;align-items:end;border:1px solid #dfe7db;border-radius:14px;padding:12px;background:#fbfcfa}
.v1144-admin-name{align-self:center;display:flex;flex-direction:column;gap:2px}
.v1144-admin-name strong{font-size:14px}
.v1144-admin-name span{font-size:10px;color:#69766a}
.v1144-admin-salary-help{margin-top:12px;padding:9px 11px;border-radius:12px;background:#f5f8f2;color:#566259;font-size:11px;line-height:1.6}
.v1144-admin-salary-history{margin-top:12px;border-top:1px solid #e1e7de;padding-top:10px}
.v1144-admin-salary-history summary{cursor:pointer;font-size:12px;font-weight:800}
.v1144-history-list{margin-top:8px;display:grid;gap:6px}
.v1144-history-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 10px;border:1px solid #e4e9e1;border-radius:10px}
.v1144-history-list small{grid-column:1/-1;color:#69766a}
.v1144-monthly-admin-total{font-size:18px;color:#17301a}
.v1144-monthly-admin-list{display:grid;gap:7px}
.v1144-monthly-admin-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid #e0e7dd;border-radius:11px;background:#fafcf9}
@media(max-width:760px){.v1144-admin-salary-row{grid-template-columns:1fr 1fr}.v1144-admin-salary-note{grid-column:1/-1}}
@media(max-width:520px){.v1144-admin-salary-row{grid-template-columns:1fr}.v1144-admin-salary-note{grid-column:auto}.v1144-fixed-total{align-items:flex-start}}


/* ===== v1.1.45 退勤後の記録リマインド ===== */
.v1145-clockout-overlay{
  position:fixed;
  inset:0;
  z-index:10100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(9,26,12,.52);
  backdrop-filter:blur(3px);
}
.v1145-clockout-card{
  width:min(470px,94vw);
  border-radius:22px;
  background:#fff;
  border:2px solid #b9d6b7;
  box-shadow:0 24px 70px rgba(0,0,0,.30);
  padding:24px 20px 18px;
  text-align:center;
}
.v1145-clockout-icon{
  width:46px;
  height:46px;
  margin:0 auto 10px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#eef7eb;
  color:#27602d;
  font-size:24px;
  font-weight:900;
}
.v1145-clockout-card h2{margin:0;color:#17301a;font-size:21px}
.v1145-clockout-card p{margin:9px 0 18px;font-size:17px;font-weight:900;color:#7b293f}
.v1145-clockout-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
@media(max-width:520px){
  .v1145-clockout-card{padding:21px 16px 16px}
  .v1145-clockout-card h2{font-size:19px}
  .v1145-clockout-card p{font-size:16px}
  .v1145-clockout-actions{grid-template-columns:1fr}
}


/* ===== v1.1.46 全体日次・横スクロール・再描画位置 ===== */

/* 個人日次 / 全体日次とも、横スクロール時に案件名を左へ固定 */
.v078-results-table th:first-child,
.v078-results-table td:first-child{
  position:sticky;
  left:0;
  min-width:160px;
  z-index:2;
  background:#fff;
  box-shadow:6px 0 8px -8px rgba(0,0,0,.35);
}

.v078-results-table thead th:first-child{
  z-index:4;
  background:#fff;
}

.v078-results-table .v078-inactive-row td:first-child{
  background:#fafafa;
}

.v1146-admin-daily-filter{
  grid-template-columns:minmax(220px,360px);
}

.v1146-no-daily-record{
  margin-bottom:10px;
}

@media(max-width:520px){
  .v078-results-table th:first-child,
  .v078-results-table td:first-child{
    min-width:145px;
    max-width:170px;
  }

  .v078-results-table .v078-project-cell{
    min-width:0;
    max-width:155px;
  }

  .v078-results-table .v078-project-cell strong{
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.35;
  }
}


/* ===== v1.1.48 管理者の直接記録を平均値から除外 ===== */
.v1148-average-note{
  margin-top:10px;
  padding:8px 10px;
  border:1px solid #dce7d8;
  border-radius:11px;
  background:#f8faf6;
  color:#58665a;
  font-size:10.5px;
  line-height:1.55;
}

.v1148-average-note strong{
  color:#28552f;
}


/* ===== v1.1.49 各ページの項目を自由に開閉 ===== */

.v1149-collapse-header{
  gap:8px;
}

.v1149-collapse-toggle{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:28px;
  margin-left:auto;
  padding:4px 8px;
  border:1px solid #d7e1d4;
  border-radius:999px;
  background:#f7faf5;
  color:#526256;
  font:inherit;
  font-size:10px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.v1149-collapse-toggle:hover{
  background:#edf4ea;
}

.v1149-collapse-toggle span:first-child{
  font-size:9px;
}

/* h2 / h3 がそのままカード見出しのケース */
h2.v1149-collapse-header,
h3.v1149-collapse-header{
  display:flex;
  align-items:center;
  width:100%;
}

/* 閉じた時は見出しだけ残す */
.v1149-collapse-card.v1149-is-collapsed > :not([data-v1149-collapse-header="1"]){
  display:none !important;
}

.v1149-collapse-card.v1149-is-collapsed{
  padding-bottom:12px;
}

/* 既存のsection-titleは右側に他ボタンがあるケースでも崩れにくくする */
.section-title.v1149-collapse-header{
  flex-wrap:wrap;
}

/* マニュアル管理は閲覧本文の後ろに置く */
#v104SharedManualArea{
  margin-top:14px;
}

.v1130-manual-order-card{
  margin-bottom:24px;
}

@media(max-width:520px){
  .v1149-collapse-toggle{
    min-height:26px;
    padding:4px 7px;
    font-size:9.5px;
  }
}


/* ===== v1.1.50 開閉UIを ＋ / − に統一 ===== */

.v1149-collapse-toggle{
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  padding:0;
  border-radius:50%;
  font-size:19px;
  font-weight:900;
  line-height:1;
}

/* 独自記号が無かったdetailsも＋/−へ統一 */
.v1125-day-detail > summary,
.v1114-create-project > summary,
.v1126-inline-manual > summary,
.v1130-hidden-manuals > summary,
.v1144-admin-salary-history > summary,
.v1113-source-details > summary{
  list-style:none;
  position:relative;
}

.v1125-day-detail > summary::-webkit-details-marker,
.v1114-create-project > summary::-webkit-details-marker,
.v1126-inline-manual > summary::-webkit-details-marker,
.v1130-hidden-manuals > summary::-webkit-details-marker,
.v1144-admin-salary-history > summary::-webkit-details-marker,
.v1113-source-details > summary::-webkit-details-marker{
  display:none;
}

.v1125-day-detail > summary::after,
.v1114-create-project > summary::after,
.v1126-inline-manual > summary::after,
.v1130-hidden-manuals > summary::after,
.v1144-admin-salary-history > summary::after,
.v1113-source-details > summary::after{
  content:"＋";
  margin-left:auto;
  color:var(--muted);
  font-size:18px;
  font-weight:900;
  line-height:1;
}

.v1125-day-detail[open] > summary::after,
.v1114-create-project[open] > summary::after,
.v1126-inline-manual[open] > summary::after,
.v1130-hidden-manuals[open] > summary::after,
.v1144-admin-salary-history[open] > summary::after,
.v1113-source-details[open] > summary::after{
  content:"−";
}

/* 案件一覧の旧⌄アイコンも＋/−に統一 */
.v1114-ledger-chevron{
  transform:none !important;
  font-size:0;
}

.v1114-ledger-chevron::before{
  content:"＋";
  font-size:18px;
  font-weight:900;
  line-height:1;
}

.v1114-project-ledger[open] .v1114-ledger-chevron::before{
  content:"−";
}

/* ===== v1.1.50 直近7日間をコンパクト表示 ===== */

.v1150-recent-card .section-title{
  margin-bottom:4px;
}

.v1150-seven-days{
  gap:7px;
}

.v1150-day-detail > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 13px;
  background:#f6faf5;
}

.v1150-day-detail > summary strong{
  font-size:13px;
  color:#173f1d;
}

.v1150-day-body{
  display:grid;
  gap:9px;
  padding:10px 12px 12px;
}

.v1150-project-group{
  padding:3px 0 5px;
}

.v1150-project-name{
  color:#173f1d;
  font-size:13px;
  font-weight:900;
  line-height:1.35;
}

.v1150-project-users{
  display:grid;
  gap:2px;
  margin-top:3px;
  padding-left:13px;
}

.v1150-user-name{
  position:relative;
  color:#526056;
  font-size:11px;
  font-weight:700;
  line-height:1.45;
}

.v1150-user-name::before{
  content:"";
  position:absolute;
  left:-9px;
  top:.68em;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#9aaa9a;
}

@media(max-width:520px){
  .v1149-collapse-toggle{
    width:28px;
    height:28px;
    min-width:28px;
    min-height:28px;
    font-size:18px;
  }

  .v1150-day-body{
    padding:9px 11px 11px;
  }

  .v1150-project-name{
    font-size:12.5px;
  }

  .v1150-user-name{
    font-size:10.5px;
  }
}


/* ===== v1.1.51 直近7日：実績表 + 案件名/名前固定 ===== */

.v1151-day-body{
  padding:8px 0 12px;
}

.v1151-table-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #e1e8df;
  border-radius:12px;
  background:#fff;
}

.v1151-recent-table{
  width:100%;
  min-width:790px;
  border-collapse:separate;
  border-spacing:0;
  font-size:11px;
}

.v1151-recent-table th,
.v1151-recent-table td{
  padding:9px 10px;
  border-right:1px solid #edf0eb;
  border-bottom:1px solid #e8ece6;
  text-align:center;
  white-space:nowrap;
  background:#fff;
}

.v1151-recent-table th{
  position:sticky;
  top:0;
  z-index:4;
  background:#f6faf5;
  color:#536156;
  font-size:10px;
  font-weight:900;
}

.v1151-recent-table tbody tr:last-child td{
  border-bottom:none;
}

/* 案件名は一番左に固定 */
.v1151-recent-table .v1151-sticky-project{
  position:sticky;
  left:0;
  z-index:3;
  width:150px;
  min-width:150px;
  max-width:150px;
  text-align:left;
  background:#f9fbf8;
  box-shadow:5px 0 8px -8px rgba(0,0,0,.45);
}

/* 人名は案件名の隣で固定 */
.v1151-recent-table .v1151-sticky-user{
  position:sticky;
  left:150px;
  z-index:3;
  width:125px;
  min-width:125px;
  max-width:125px;
  text-align:left;
  background:#fff;
  box-shadow:5px 0 8px -8px rgba(0,0,0,.32);
}

/* ヘッダーは本文より上へ */
.v1151-recent-table thead .v1151-sticky-project,
.v1151-recent-table thead .v1151-sticky-user{
  z-index:6;
  background:#eef5ec;
}

.v1151-project-cell{
  vertical-align:top;
}

.v1151-project-cell strong{
  display:block;
  white-space:normal;
  overflow-wrap:anywhere;
  color:#173f1d;
  font-size:12.5px;
  line-height:1.35;
}

.v1151-user-cell strong{
  display:inline-block;
  max-width:88px;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
  color:#4d5b50;
  font-size:11px;
}

.v1151-admin-badge{
  display:inline-flex;
  align-items:center;
  margin-left:4px;
  padding:2px 5px;
  border:1px solid #decbd1;
  border-radius:999px;
  background:#fff7f9;
  color:#7a4050;
  font-size:8px;
  font-weight:900;
  vertical-align:middle;
}

@media(max-width:520px){
  .v1151-recent-table{
    min-width:720px;
    font-size:10.5px;
  }

  .v1151-recent-table th,
  .v1151-recent-table td{
    padding:8px 8px;
  }

  .v1151-recent-table .v1151-sticky-project{
    width:125px;
    min-width:125px;
    max-width:125px;
  }

  .v1151-recent-table .v1151-sticky-user{
    left:125px;
    width:105px;
    min-width:105px;
    max-width:105px;
  }

  .v1151-project-cell strong{
    font-size:11.5px;
  }

  .v1151-user-cell strong{
    max-width:72px;
    font-size:10.5px;
  }
}


/* ===== v1.1.52 直近7日：案件見出し + 人名行 ===== */

.v1152-day-body{
  padding:8px 0 12px;
}

.v1152-day-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #e1e8df;
  border-radius:12px;
  background:#fff;
}

/* 案件ごとに1つの表。
   外側のスクロールを共通化することで、日付内は1回の横スクロールで済む */
.v1152-project-table{
  width:100%;
  min-width:720px;
  border-collapse:separate;
  border-spacing:0;
  font-size:11px;
  background:#fff;
}

.v1152-project-table + .v1152-project-table{
  border-top:1px solid #cfd9cd;
}

.v1152-project-table th,
.v1152-project-table td{
  padding:8px 10px;
  border-right:1px solid #edf0eb;
  border-bottom:1px solid #e8ece6;
  text-align:center;
  white-space:nowrap;
  background:#fff;
}

.v1152-project-table th{
  background:#f5f9f4;
  color:#566258;
  font-size:10px;
  font-weight:900;
}

/* 左端は案件名 / 人名とも同じ1列を固定 */
.v1152-project-table .v1152-sticky-label{
  position:sticky;
  left:0;
  z-index:4;
  width:170px;
  min-width:170px;
  max-width:170px;
  text-align:left;
  box-shadow:6px 0 9px -9px rgba(0,0,0,.5);
}

/* 案件名行 */
.v1152-project-table .v1152-project-heading{
  z-index:6;
  background:#edf5eb;
  color:#173f1d;
  font-size:12.5px;
  font-weight:900;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}

/* 名前は案件名より少し小さく、少し下げる */
.v1152-project-table .v1152-user-label{
  background:#fff;
  color:#566258;
  font-size:10.5px;
  font-weight:700;
}

.v1152-user-label strong{
  display:inline-block;
  max-width:118px;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}

.v1152-user-indent{
  display:inline-block;
  margin-right:4px;
  color:#a2aea3;
  font-size:9px;
  vertical-align:middle;
}

/* 最終行の境界線を少し軽く */
.v1152-project-table tbody tr:last-child td{
  border-bottom:none;
}

@media(max-width:520px){
  .v1152-project-table{
    min-width:660px;
    font-size:10.5px;
  }

  .v1152-project-table th,
  .v1152-project-table td{
    padding:7px 8px;
  }

  .v1152-project-table .v1152-sticky-label{
    width:135px;
    min-width:135px;
    max-width:135px;
  }

  .v1152-project-table .v1152-project-heading{
    font-size:11.5px;
  }

  .v1152-project-table .v1152-user-label{
    font-size:10px;
  }

  .v1152-user-label strong{
    max-width:88px;
  }
}


/* ===== v1.1.53 合計日次：管理者記録数を小さく併記 ===== */
.v1153-admin-count-label{
  display:inline-block;
  margin-left:3px;
  color:#7a867c;
  font-size:8.5px;
  font-weight:700;
  line-height:1.15;
  vertical-align:baseline;
  white-space:nowrap;
}

.v1153-admin-count-value{
  display:inline-block;
  margin-left:4px;
  color:#718075;
  font-size:.56em;
  font-weight:800;
  line-height:1;
  vertical-align:baseline;
  white-space:nowrap;
}

@media(max-width:520px){
  .v1153-admin-count-label{
    display:block;
    margin:2px 0 0;
    font-size:8px;
  }

  .v1153-admin-count-value{
    margin-left:3px;
    font-size:.52em;
  }
}


/* ===== v1.1.54 月次 / 給与分離 + 月次集計 ===== */

.v1154-month-list{
  display:grid;
  gap:9px;
}

.v1154-month-detail{
  border:1px solid #dde6da;
  border-radius:13px;
  background:#fff;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.v1154-month-detail > summary{
  list-style:none;
  cursor:pointer;
  min-width:720px;
  background:#f6faf5;
}

.v1154-month-detail > summary::-webkit-details-marker{
  display:none;
}

.v1154-month-detail > summary::after{
  content:"＋";
  position:absolute;
  right:14px;
  top:13px;
  color:#526256;
  font-size:18px;
  font-weight:900;
  line-height:1;
}

.v1154-month-detail[open] > summary::after{
  content:"−";
}

.v1154-month-detail > summary{
  position:relative;
  padding-right:42px;
}

.v1154-grid-row{
  display:grid;
  grid-template-columns:170px repeat(5,110px);
  min-width:720px;
  align-items:stretch;
}

.v1154-grid-row > div{
  padding:9px 10px;
  border-right:1px solid #edf0eb;
  border-bottom:1px solid #e8ece6;
  text-align:center;
  white-space:nowrap;
  background:#fff;
}

.v1154-month-summary > div{
  background:#f6faf5;
}

.v1154-sticky-label{
  position:sticky;
  left:0;
  z-index:4;
  text-align:left !important;
  box-shadow:6px 0 9px -9px rgba(0,0,0,.5);
}

.v1154-month-label{
  background:#edf5eb !important;
  color:#173f1d;
  display:flex;
  align-items:center;
}

.v1154-month-label strong{
  font-size:13px;
}

.v1154-metric-cell{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}

.v1154-metric-cell span{
  color:#68736a;
  font-size:8.5px;
  font-weight:800;
}

.v1154-metric-cell strong{
  color:#1f3d23;
  font-size:12px;
}

.v1154-user-row .v1154-person-label{
  background:#fff;
  color:#526056;
  font-size:10.5px;
}

.v1154-person-label strong{
  display:inline-block;
  max-width:110px;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}

.v1154-project-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #dde6da;
  border-radius:13px;
  background:#fff;
}

.v1154-project-group + .v1154-project-group{
  border-top:2px solid #d5ded2;
}

.v1154-project-summary > div{
  background:#f5f9f4;
}

.v1154-project-label{
  background:#edf5eb !important;
  color:#173f1d;
  display:flex;
  align-items:center;
}

.v1154-project-label strong{
  font-size:12.5px;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}

.v1154-project-users .v1154-grid-row:last-child > div,
.v1154-month-users .v1154-grid-row:last-child > div{
  border-bottom:none;
}

@media(max-width:520px){
  .v1154-grid-row{
    grid-template-columns:135px repeat(5,102px);
    min-width:645px;
  }

  .v1154-month-detail > summary{
    min-width:645px;
  }

  .v1154-grid-row > div{
    padding:8px 8px;
  }

  .v1154-month-label strong{
    font-size:12px;
  }

  .v1154-project-label strong{
    font-size:11.5px;
  }

  .v1154-user-row .v1154-person-label{
    font-size:10px;
  }

  .v1154-person-label strong{
    max-width:82px;
  }
}


/* ===== v1.1.55 月次全体サマリー ===== */
.v1155-month-total-grid{
  margin-top:12px;
}


/* ===== v1.1.56 日本の祝日：シフトでは日曜と同じ赤表示 ===== */

.v1156-holiday .v073-date strong,
.v1156-date-holiday,
.v1156-date-holiday .v064-weekday,
.v1156-date-holiday .v1156-matrix-holiday{
  color:#dc2626 !important;
}

.v1156-holiday{
  border-left:4px solid #fca5a5;
}

.v1156-holiday-name{
  display:inline-block;
  margin-left:6px;
  color:#dc2626;
  font-size:9.5px;
  font-weight:800;
  line-height:1.2;
}

.v1156-matrix-holiday{
  display:block;
  margin-top:2px;
  font-size:8px;
  font-weight:800;
  line-height:1.15;
  white-space:normal;
}

/* 管理シフト一覧でも背景は他の日と合わせ、文字を赤にする */
.v064-matrix .v1156-date-holiday{
  background:#f9fafb;
}


/* ===== v1.1.57 勤怠修正履歴 ===== */

.v1157-history-filters{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:8px;
}

.v1157-history-count{
  margin-bottom:10px;
  color:#6d786f;
  font-size:10px;
  font-weight:800;
  text-align:right;
}

.v1157-history-list{
  display:grid;
  gap:10px;
}

.v1157-history-item{
  padding:12px;
  border:1px solid #e0e7de;
  border-radius:12px;
  background:#fbfcfa;
}

.v1157-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.v1157-history-head > div{
  display:grid;
  gap:2px;
}

.v1157-history-head strong{
  color:#173f1d;
  font-size:12px;
}

.v1157-history-head > div > span{
  color:#6b766d;
  font-size:10px;
  font-weight:700;
}

.v1157-source-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}

.v1157-source-badge.admin{
  border:1px solid #d4dfd1;
  background:#f0f6ee;
  color:#315d37;
}

.v1157-source-badge.request{
  border:1px solid #d9d4e6;
  background:#f6f3fb;
  color:#5d4e78;
}

.v1157-diff-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}

.v1157-diff-item{
  min-width:0;
  padding:8px;
  border:1px solid #e7ebe5;
  border-radius:9px;
  background:#fff;
}

.v1157-diff-item > span{
  display:block;
  margin-bottom:4px;
  color:#7a847c;
  font-size:8px;
  font-weight:800;
}

.v1157-diff-item > div{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  white-space:nowrap;
}

.v1157-diff-item b{
  color:#7b837d;
  font-size:9.5px;
  font-weight:700;
}

.v1157-diff-item i{
  color:#9da59f;
  font-size:9px;
  font-style:normal;
}

.v1157-diff-item strong{
  color:#34463a;
  font-size:10px;
}

.v1157-diff-item.changed{
  border-color:#d7e4d4;
  background:#f8fbf7;
}

.v1157-diff-item.changed strong{
  color:#1c5a27;
}

.v1157-history-reason{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px dashed #dde3db;
}

.v1157-history-reason span{
  color:#7a847c;
  font-size:8.5px;
  font-weight:800;
}

.v1157-history-reason strong{
  color:#475148;
  font-size:10px;
  line-height:1.45;
  font-weight:700;
}

.v1157-history-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px 14px;
  margin-top:8px;
  color:#778078;
  font-size:8.5px;
}

.v1157-history-meta b{
  color:#59635b;
  font-weight:800;
}

@media(max-width:600px){
  .v1157-history-filters{
    grid-template-columns:1fr;
  }

  .v1157-diff-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* ===== v1.1.59 案件：請求換算時間 ===== */
.v1159-billing-hours-chip{
  border-color:#d7e2d4 !important;
  background:#f3f8f1 !important;
  color:#24542b !important;
}


/* ===== v1.1.61 管理者のh案件時間記録 ===== */
.v1161-admin-hour-field small{
  display:block;
  margin-top:4px;
  color:#6f7d72;
  font-size:9px;
  font-weight:700;
}


/* ============================================================
   v1.1.62 個人テーマカラー
   default = これまでの「あゆこねグリーン」
   ============================================================ */

:root,
html[data-ayumi-theme="default"]{
  --theme-primary:#1f5424;
  --theme-primary-light:#2b6a31;
  --theme-dark:#143d18;
  --theme-soft:#eaf3e8;
  --theme-soft-2:#edf6eb;
  --theme-line:#dce8d9;
  --theme-page-1:#f8fbf7;
  --theme-page-2:#f3f7f1;
  --theme-card-soft:#f8fbf7;
  --theme-rgb:31,84,36;
  --theme-light-rgb:43,106,49;
  --theme-focus:#6ba972;
  --theme-focus-rgb:71,132,78;
}

html[data-ayumi-theme="blue"]{
  --theme-primary:#2563a8;
  --theme-primary-light:#3979be;
  --theme-dark:#173f72;
  --theme-soft:#e8f1fb;
  --theme-soft-2:#edf5fd;
  --theme-line:#d7e4f2;
  --theme-page-1:#f7faff;
  --theme-page-2:#f0f5fb;
  --theme-card-soft:#f6f9fd;
  --theme-rgb:37,99,168;
  --theme-light-rgb:57,121,190;
  --theme-focus:#6a9dd1;
  --theme-focus-rgb:106,157,209;
}

html[data-ayumi-theme="navy"]{
  --theme-primary:#243b67;
  --theme-primary-light:#35517f;
  --theme-dark:#172849;
  --theme-soft:#e9edf5;
  --theme-soft-2:#eef1f7;
  --theme-line:#d9deea;
  --theme-page-1:#f8f9fc;
  --theme-page-2:#f2f4f8;
  --theme-card-soft:#f7f8fb;
  --theme-rgb:36,59,103;
  --theme-light-rgb:53,81,127;
  --theme-focus:#7283aa;
  --theme-focus-rgb:114,131,170;
}

html[data-ayumi-theme="purple"]{
  --theme-primary:#6d4aa2;
  --theme-primary-light:#805db5;
  --theme-dark:#4b3374;
  --theme-soft:#f0eafa;
  --theme-soft-2:#f4effb;
  --theme-line:#e2d8ef;
  --theme-page-1:#fbf9fd;
  --theme-page-2:#f5f1fa;
  --theme-card-soft:#faf7fc;
  --theme-rgb:109,74,162;
  --theme-light-rgb:128,93,181;
  --theme-focus:#9a7bc4;
  --theme-focus-rgb:154,123,196;
}

html[data-ayumi-theme="rose"]{
  --theme-primary:#a34466;
  --theme-primary-light:#b65a78;
  --theme-dark:#743047;
  --theme-soft:#f8e9ee;
  --theme-soft-2:#faeef2;
  --theme-line:#efd8e0;
  --theme-page-1:#fff9fb;
  --theme-page-2:#faf2f5;
  --theme-card-soft:#fdf7f9;
  --theme-rgb:163,68,102;
  --theme-light-rgb:182,90,120;
  --theme-focus:#cb819a;
  --theme-focus-rgb:203,129,154;
}

html[data-ayumi-theme="orange"]{
  --theme-primary:#b76324;
  --theme-primary-light:#c97a3b;
  --theme-dark:#7d4319;
  --theme-soft:#faeee3;
  --theme-soft-2:#fcf3ea;
  --theme-line:#ecdccf;
  --theme-page-1:#fffaf6;
  --theme-page-2:#f8f3ed;
  --theme-card-soft:#fcf8f4;
  --theme-rgb:183,99,36;
  --theme-light-rgb:201,122,59;
  --theme-focus:#d59869;
  --theme-focus-rgb:213,152,105;
}

html[data-ayumi-theme="teal"]{
  --theme-primary:#17756f;
  --theme-primary-light:#278a83;
  --theme-dark:#104f4b;
  --theme-soft:#e4f3f1;
  --theme-soft-2:#eaf7f5;
  --theme-line:#d4e8e5;
  --theme-page-1:#f6fbfa;
  --theme-page-2:#eff7f5;
  --theme-card-soft:#f5faf9;
  --theme-rgb:23,117,111;
  --theme-light-rgb:39,138,131;
  --theme-focus:#63aaa5;
  --theme-focus-rgb:99,170,165;
}

html[data-ayumi-theme="charcoal"]{
  --theme-primary:#414751;
  --theme-primary-light:#555d68;
  --theme-dark:#292e36;
  --theme-soft:#eceef1;
  --theme-soft-2:#f0f1f3;
  --theme-line:#dde0e4;
  --theme-page-1:#fafafa;
  --theme-page-2:#f3f4f5;
  --theme-card-soft:#f8f8f9;
  --theme-rgb:65,71,81;
  --theme-light-rgb:85,93,104;
  --theme-focus:#858c96;
  --theme-focus-rgb:133,140,150;
}

/* 既存ブランド変数を個人テーマへ接続 */
html[data-ayumi-theme]{
  --bg:var(--theme-page-2);
  --primary:var(--theme-primary);
  --soft:var(--theme-soft);
  --line:var(--theme-line);
  --brand-green:var(--theme-primary);
  --brand-green-dark:var(--theme-dark);
  --brand-green-soft:var(--theme-soft-2);
  --shadow:0 10px 30px rgba(var(--theme-rgb),.08);
}

html[data-ayumi-theme],
html[data-ayumi-theme] body{
  background:
    radial-gradient(
      circle at 8% 0%,
      rgba(var(--theme-rgb),.10),
      transparent 30%
    ),
    radial-gradient(
      circle at 94% 7%,
      rgba(var(--theme-light-rgb),.05),
      transparent 25%
    ),
    linear-gradient(
      180deg,
      var(--theme-page-1) 0%,
      var(--theme-page-2) 100%
    ) !important;
}

html[data-ayumi-theme] .topbar{
  background:color-mix(
    in srgb,
    var(--theme-page-1) 95%,
    transparent
  ) !important;
  border-bottom-color:rgba(var(--theme-rgb),.14) !important;
}

html[data-ayumi-theme] .topbar::after{
  background:linear-gradient(
    90deg,
    var(--theme-primary),
    rgba(var(--theme-rgb),.08) 68%,
    rgba(var(--theme-light-rgb),.35)
  ) !important;
}

html[data-ayumi-theme] .brand h1,
html[data-ayumi-theme] .card h2,
html[data-ayumi-theme] .card h3,
html[data-ayumi-theme] .v083-setting-accordion summary strong{
  color:var(--theme-dark) !important;
}

html[data-ayumi-theme] .btn.primary{
  background:linear-gradient(
    180deg,
    var(--theme-primary-light) 0%,
    var(--theme-primary) 100%
  ) !important;
  box-shadow:0 7px 18px rgba(var(--theme-rgb),.18) !important;
}

html[data-ayumi-theme] .nav-btn.active{
  background:var(--theme-soft) !important;
  color:var(--theme-dark) !important;
}

html[data-ayumi-theme] .tab.active,
html[data-ayumi-theme] .admin-tab.active,
html[data-ayumi-theme] .v06-tab.active{
  background:var(--theme-primary) !important;
  border-color:var(--theme-primary) !important;
}

html[data-ayumi-theme] .metric,
html[data-ayumi-theme] .v078-total-metric,
html[data-ayumi-theme] .status-box,
html[data-ayumi-theme] .v083-current-account > div{
  background:var(--theme-card-soft) !important;
  border-color:var(--theme-line) !important;
}

html[data-ayumi-theme] .field input:focus,
html[data-ayumi-theme] .field select:focus,
html[data-ayumi-theme] .text-input:focus,
html[data-ayumi-theme] .compact-field input:focus,
html[data-ayumi-theme] .compact-field select:focus,
html[data-ayumi-theme] textarea:focus{
  border-color:var(--theme-focus) !important;
  box-shadow:
    0 0 0 3px rgba(var(--theme-focus-rgb),.15) !important;
}

html[data-ayumi-theme] .v06-rule{
  border-left-color:var(--theme-primary) !important;
  background:var(--theme-card-soft) !important;
}

html[data-ayumi-theme] .v080-summary-label,
html[data-ayumi-theme] .v083-password-admin .link-btn{
  color:var(--theme-primary) !important;
}

/* 設定：テーマ選択 */
.v1162-theme-note{
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid var(--theme-line);
  border-radius:11px;
  background:var(--theme-card-soft);
  color:var(--muted);
  font-size:11px;
  line-height:1.65;
}

.v1162-theme-note strong{
  color:var(--theme-dark);
}

.v1162-theme-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:12px;
}

.v1162-theme-option{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:10px 7px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  cursor:pointer;
}

.v1162-theme-option:hover{
  border-color:var(--theme-focus);
}

.v1162-theme-option.selected{
  border:2px solid var(--theme-primary);
  padding:9px 6px;
  background:var(--theme-soft);
  box-shadow:0 5px 14px rgba(var(--theme-rgb),.10);
}

.v1162-theme-swatch{
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--swatch);
  border:3px solid #fff;
  box-shadow:
    0 0 0 1px rgba(0,0,0,.09),
    0 4px 10px rgba(0,0,0,.10);
}

.v1162-theme-option strong{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}

.v1162-theme-option small{
  min-height:11px;
  color:var(--muted);
  font-size:8px;
  font-weight:800;
}

@media(max-width:560px){
  .v1162-theme-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .v1162-theme-option strong{
    font-size:10.5px;
  }
}


/* ============================================================
   v1.1.63 テーマカラー：アプリ内部まで反映
   ============================================================ */

/* カード・補助ボックス・一覧背景 */
html[data-ayumi-theme] .v083-security-note,
html[data-ayumi-theme] .v084-install-note,
html[data-ayumi-theme] .v086-no-time-box,
html[data-ayumi-theme] .v087-export-summary > div,
html[data-ayumi-theme] .v087-export-example,
html[data-ayumi-theme] .v088-output-intro,
html[data-ayumi-theme] .v090-results-summary,
html[data-ayumi-theme] .v092-doc-intro,
html[data-ayumi-theme] .v092-invoice-summary > div,
html[data-ayumi-theme] .v093-bank-section,
html[data-ayumi-theme] .v095-contract-date-card,
html[data-ayumi-theme] .v095-contract-agree,
html[data-ayumi-theme] .v095-signed-summary > div,
html[data-ayumi-theme] .v095-admin-contract-counts > div,
html[data-ayumi-theme] .v098-manual-hero,
html[data-ayumi-theme] .v098-highlight,
html[data-ayumi-theme] .v104-update-summary,
html[data-ayumi-theme] .v117-push-history,
html[data-ayumi-theme] .v119-admin-invoice-counts > div,
html[data-ayumi-theme] .v1110-invoice-overview > div,
html[data-ayumi-theme] .v1110-invoice-month[open] > .v1110-invoice-month-summary,
html[data-ayumi-theme] .v1112-selected-user,
html[data-ayumi-theme] .v1113-project-note,
html[data-ayumi-theme] .v1113-source-row,
html[data-ayumi-theme] .v1114-average-wage-card > div,
html[data-ayumi-theme] .v1114-project-summary > div,
html[data-ayumi-theme] .v1114-create-project[open] > summary,
html[data-ayumi-theme] .v1114-project-ledger[open] > summary,
html[data-ayumi-theme] .v1116-adjust-field,
html[data-ayumi-theme] .v1118-current-admin,
html[data-ayumi-theme] .v1118-summary-grid > div,
html[data-ayumi-theme] .v1126-storage-metrics > div,
html[data-ayumi-theme] .v1126-cutoff-summary,
html[data-ayumi-theme] .v1130-order-help,
html[data-ayumi-theme] .v1130-order-form-note,
html[data-ayumi-theme] .v1131-current-sound,
html[data-ayumi-theme] .v1132-reminder-alarm-note,
html[data-ayumi-theme] .v1157-diff-item.changed,
html[data-ayumi-theme] .v1159-billing-hours-chip{
  background:var(--theme-card-soft) !important;
  border-color:var(--theme-line) !important;
}

/* 各種見出し・案件名・強調文字 */
html[data-ayumi-theme] .v1118-history-month strong,
html[data-ayumi-theme] .v1125-day-detail > summary strong,
html[data-ayumi-theme] .v1126-storage-metrics strong,
html[data-ayumi-theme] .v1126-cutoff-summary strong,
html[data-ayumi-theme] .v1126-preview-grid strong,
html[data-ayumi-theme] .v1126-total-target strong,
html[data-ayumi-theme] .v1126-inline-manual summary,
html[data-ayumi-theme] .v1150-day-detail > summary strong,
html[data-ayumi-theme] .v1150-project-name,
html[data-ayumi-theme] .v1151-project-cell strong,
html[data-ayumi-theme] .v1152-project-table .v1152-project-heading,
html[data-ayumi-theme] .v1154-month-label,
html[data-ayumi-theme] .v1154-project-label,
html[data-ayumi-theme] .v1157-history-head strong,
html[data-ayumi-theme] .v1157-diff-item.changed strong,
html[data-ayumi-theme] .v1130-order-index{
  color:var(--theme-dark) !important;
}

/* 日次・月次の見出し背景 */
html[data-ayumi-theme] .v1125-day-detail > summary,
html[data-ayumi-theme] .v1150-day-detail > summary,
html[data-ayumi-theme] .v1151-recent-table th,
html[data-ayumi-theme] .v1152-project-table th,
html[data-ayumi-theme] .v1154-month-detail > summary,
html[data-ayumi-theme] .v1154-month-summary > div,
html[data-ayumi-theme] .v1154-project-summary > div{
  background:var(--theme-card-soft) !important;
  border-color:var(--theme-line) !important;
}

html[data-ayumi-theme] .v1152-project-table .v1152-project-heading,
html[data-ayumi-theme] .v1154-month-label,
html[data-ayumi-theme] .v1154-project-label{
  background:var(--theme-soft-2) !important;
}

/* ステータス・バッジも選択色へ */
html[data-ayumi-theme] .pill.ok,
html[data-ayumi-theme] .v076-status.active,
html[data-ayumi-theme] .v1125-role.staff,
html[data-ayumi-theme] .v1130-custom-badge,
html[data-ayumi-theme] .ayumi-update-badge{
  background:var(--theme-soft-2) !important;
  color:var(--theme-dark) !important;
}

html[data-ayumi-theme] .v1130-order-index{
  background:var(--theme-soft-2) !important;
}

/* 各種アクセント */
html[data-ayumi-theme] .v1131-reminder-create{
  border-top-color:var(--theme-primary) !important;
}

html[data-ayumi-theme] .v1133-nav-arrow{
  color:var(--theme-primary) !important;
  border-color:var(--theme-line) !important;
  box-shadow:0 3px 12px rgba(var(--theme-rgb),.18) !important;
}

html[data-ayumi-theme] .v1159-billing-hours-chip{
  color:var(--theme-dark) !important;
}

/* 打刻ボタンもテーマカラーへ */
html[data-ayumi-theme] .attendance-start{
  background:linear-gradient(
    180deg,
    var(--theme-primary-light) 0%,
    var(--theme-primary) 100%
  ) !important;
  border-color:rgba(var(--theme-rgb),.30) !important;
  box-shadow:0 8px 20px rgba(var(--theme-rgb),.24) !important;
}

/* ============================================================
   v1.1.63 更新情報
   ============================================================ */
.v1163-version-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding:13px 14px;
  border:1px solid var(--theme-line);
  border-radius:13px;
  background:linear-gradient(
    135deg,
    var(--theme-soft-2) 0%,
    var(--theme-card-soft) 100%
  );
}

.v1163-version-hero > div{
  display:grid;
  gap:3px;
}

.v1163-version-hero span{
  color:var(--muted);
  font-size:9.5px;
  font-weight:800;
}

.v1163-version-hero strong{
  color:var(--theme-dark);
  font-size:22px;
  letter-spacing:.02em;
}

.v1163-version-hero small{
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}

.v1163-changelog-list{
  display:grid;
  gap:8px;
  margin-bottom:10px;
}

.v1163-changelog-entry{
  border:1px solid var(--theme-line);
  border-radius:11px;
  background:#fff;
  overflow:hidden;
}

.v1163-changelog-entry > summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  cursor:pointer;
  background:var(--theme-card-soft);
}

.v1163-changelog-entry > summary::-webkit-details-marker{
  display:none;
}

.v1163-changelog-entry > summary > div{
  display:flex;
  align-items:baseline;
  gap:8px;
}

.v1163-changelog-entry > summary strong{
  color:var(--theme-dark) !important;
  font-size:12px !important;
}

.v1163-changelog-entry > summary span{
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}

.v1163-changelog-entry > summary b{
  padding:3px 7px;
  border-radius:999px;
  background:var(--theme-soft-2);
  color:var(--theme-dark);
  font-size:8px;
}

.v1163-changelog-body{
  display:grid;
  gap:6px;
  padding:10px 12px 12px;
}

.v1163-change-item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:4px;
  color:#4f5b51;
  font-size:10px;
  line-height:1.55;
}

.v1163-change-item > span{
  color:var(--theme-primary);
  font-weight:900;
}

.v1163-change-item p{
  margin:0;
}

/* テーマ設定自体も中まで色が変わる */
html[data-ayumi-theme] .v1162-theme-note{
  background:var(--theme-card-soft) !important;
  border-color:var(--theme-line) !important;
}

html[data-ayumi-theme] .v1162-theme-option.selected{
  border-color:var(--theme-primary) !important;
  background:var(--theme-soft) !important;
  box-shadow:0 5px 14px rgba(var(--theme-rgb),.12) !important;
}

@media(max-width:520px){
  .v1163-version-hero{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
}


/* ============================================================
   v1.1.64 テレアポタイピング ミニゲーム
   ============================================================ */

.v1164-topbar-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.v1164-game-button{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 10px;
  background:#fff;
  color:var(--brand-green-dark);
  box-shadow:0 4px 13px rgba(0,0,0,.05);
  font-size:10px;
  cursor:pointer;
}

.v1164-game-button span{
  font-size:14px;
}

.v1164-game-button strong{
  white-space:nowrap;
}

.v1164-game-button.active{
  background:var(--brand-green);
  border-color:var(--brand-green);
  color:#fff;
}

.v1164-game-shell{
  display:grid;
  gap:12px;
}

.v1164-page-head{
  display:flex;
  align-items:center;
  gap:12px;
}

.v1164-page-head h1{
  margin:0;
  color:var(--brand-green-dark);
  font-size:20px;
}

.v1164-page-head p{
  margin:2px 0 0;
  color:var(--muted);
  font-size:10px;
}

.v1164-back-button{
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  padding:8px 10px;
  font-weight:800;
  font-size:10px;
}

.v1164-profile-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:13px;
  align-items:center;
  padding:14px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  box-shadow:var(--shadow);
}

.v1164-level-badge{
  width:72px;
  height:72px;
  border-radius:18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:linear-gradient(
    160deg,
    var(--brand-green-soft),
    var(--soft)
  );
  border:1px solid var(--line);
}

.v1164-level-badge span{
  color:var(--muted);
  font-size:7px;
  font-weight:900;
  letter-spacing:.12em;
}

.v1164-level-badge strong{
  color:var(--brand-green-dark);
  font-size:26px;
  line-height:1;
  margin-top:2px;
}

.v1164-level-badge small{
  color:var(--muted);
  font-size:7px;
  margin-top:2px;
}

.v1164-profile-main{
  min-width:0;
}

.v1164-title-row{
  display:flex;
  align-items:baseline;
  gap:8px;
}

.v1164-title-row span{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
}

.v1164-title-row strong{
  color:var(--brand-green-dark);
  font-size:14px;
}

.v1164-xp-row{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:8px;
  color:var(--muted);
  font-size:8.5px;
  font-weight:800;
}

.v1164-xp-bar{
  position:relative;
  height:7px;
  margin-top:5px;
  border-radius:999px;
  overflow:hidden;
  background:var(--soft);
}

.v1164-xp-bar i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    var(--brand-green),
    var(--theme-primary-light,var(--brand-green))
  );
  transition:width .25s ease;
}

.v1164-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}

.v1164-tabs button{
  min-width:0;
  border:1px solid var(--line);
  border-radius:11px;
  padding:10px 6px;
  background:#fff;
  color:var(--muted);
  font-size:9px;
  font-weight:900;
}

.v1164-tabs button.active{
  background:var(--brand-green);
  border-color:var(--brand-green);
  color:#fff;
}

.v1164-play-card,
.v1164-ranking-card,
.v1164-book-card{
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
}

.v1164-game-intro{
  text-align:center;
}

.v1164-game-icon{
  width:52px;
  height:52px;
  margin:0 auto 8px;
  border-radius:17px;
  display:grid;
  place-items:center;
  background:var(--brand-green-soft);
  color:var(--brand-green-dark);
  font-size:24px;
}

.v1164-game-intro h2{
  margin:0;
  color:var(--brand-green-dark);
  font-size:18px;
}

.v1164-game-intro p{
  max-width:500px;
  margin:7px auto 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.65;
}

.v1164-rule-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin:14px 0;
}

.v1164-rule-grid > div{
  display:grid;
  gap:3px;
  padding:9px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--theme-card-soft,#f8fbf7);
}

.v1164-rule-grid span{
  color:var(--muted);
  font-size:7.5px;
  font-weight:800;
}

.v1164-rule-grid strong{
  color:var(--brand-green-dark);
  font-size:10px;
}

.v1164-rule-grid small{
  color:var(--muted);
  font-size:7px;
  line-height:1.45;
}

.v1164-start-button{
  margin-top:2px;
}

.v1164-rarity-note{
  margin-top:10px;
  color:var(--muted);
  font-size:8px;
  line-height:1.55;
  text-align:center;
}

.v1164-running-head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
}

.v1164-timer{
  min-width:92px;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:2px;
  padding:10px;
  border-radius:14px;
  background:var(--brand-green-soft);
  color:var(--brand-green-dark);
}

.v1164-timer span,
.v1164-timer small{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
}

.v1164-timer strong{
  font-size:25px;
  line-height:1;
}

.v1164-timer strong.is-ending{
  color:#b91c1c;
}

.v1164-live-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}

.v1164-live-stats > div{
  padding:9px 7px;
  text-align:center;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--theme-card-soft,#f8fbf7);
}

.v1164-live-stats span{
  display:block;
  color:var(--muted);
  font-size:7px;
  font-weight:800;
}

.v1164-live-stats strong{
  display:block;
  margin-top:2px;
  color:var(--brand-green-dark);
  font-size:16px;
}

.v1164-word-stage{
  margin-top:15px;
  padding:18px 14px 15px;
  border:2px solid var(--line);
  border-radius:17px;
  text-align:center;
  background:linear-gradient(
    180deg,
    #fff,
    var(--theme-card-soft,#f8fbf7)
  );
}

.v1164-word-stage.is-correct{
  animation:v1164CorrectFlash .24s ease;
}

@keyframes v1164CorrectFlash{
  0%{border-color:var(--line)}
  45%{border-color:var(--brand-green);transform:scale(1.01)}
  100%{border-color:var(--line);transform:scale(1)}
}

.v1164-current-no{
  color:var(--muted);
  font-size:8px;
  font-weight:900;
  letter-spacing:.07em;
}

.v1164-current-word{
  margin:5px 0 15px;
  color:var(--brand-green-dark);
  font-size:clamp(24px,7vw,36px);
  font-weight:900;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.v1164-game-input{
  width:100%;
  border:2px solid var(--line);
  border-radius:13px;
  padding:12px 13px;
  background:#fff;
  color:var(--text);
  text-align:center;
  font-size:17px;
  font-weight:800;
  outline:none;
}

.v1164-game-input:focus{
  border-color:var(--brand-green);
  box-shadow:0 0 0 3px rgba(var(--theme-rgb,31,84,36),.12);
}

.v1164-game-input.is-error{
  border-color:#b91c1c !important;
  background:#fff5f5;
  color:#991b1b;
  animation:v1164Shake .16s linear;
}

@keyframes v1164Shake{
  0%,100%{transform:translateX(0)}
  35%{transform:translateX(-4px)}
  70%{transform:translateX(4px)}
}

.v1164-input-help{
  margin-top:7px;
  color:var(--muted);
  font-size:8px;
}

.v1164-result-card{
  text-align:center;
}

.v1164-result-kicker{
  color:var(--muted);
  font-size:9px;
  font-weight:900;
}

.v1164-result-card h2{
  margin:5px 0 13px;
  color:var(--brand-green-dark);
  font-size:24px;
}

.v1164-result-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:7px;
}

.v1164-result-grid > div{
  padding:10px 6px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--theme-card-soft,#f8fbf7);
}

.v1164-result-grid span{
  display:block;
  color:var(--muted);
  font-size:7px;
}

.v1164-result-grid strong{
  display:block;
  margin-top:3px;
  color:var(--brand-green-dark);
  font-size:17px;
}

.v1164-result-level{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px;
  border-radius:11px;
  background:var(--brand-green-soft);
}

.v1164-result-level span{
  color:var(--muted);
  font-size:8px;
}

.v1164-result-level strong{
  color:var(--brand-green-dark);
  font-size:12px;
}

.v1164-result-level b{
  padding:3px 7px;
  border-radius:999px;
  background:var(--brand-green);
  color:#fff;
  font-size:8px;
}

.v1164-result-book{
  margin-top:8px;
  color:var(--muted);
  font-size:9px;
}

.v1164-result-book strong{
  color:var(--brand-green-dark);
}

.v1164-result-actions{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:7px;
  margin-top:13px;
}

.v1164-result-actions .btn{
  padding:10px 6px;
  font-size:9px;
}

.v1164-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:11px;
}

.v1164-section-head h2{
  margin:0;
  color:var(--brand-green-dark);
  font-size:16px;
}

.v1164-section-head p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:8px;
}

.v1164-ranking-list{
  display:grid;
  gap:8px;
}

.v1164-ranking-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--theme-card-soft,#f8fbf7);
}

.v1164-ranking-row.rank-1{
  border-color:#e5c660;
  background:#fffaf0;
}

.v1164-rank-medal{
  font-size:24px;
}

.v1164-rank-person{
  min-width:0;
}

.v1164-rank-person strong{
  display:block;
  color:var(--text);
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.v1164-rank-person span{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:8px;
}

.v1164-rank-score{
  display:flex;
  align-items:baseline;
  gap:2px;
  color:var(--brand-green-dark);
}

.v1164-rank-score strong{
  font-size:22px;
}

.v1164-rank-score span{
  font-size:8px;
}

.v1164-ranking-note{
  margin-top:9px;
  color:var(--muted);
  font-size:8px;
  text-align:center;
}

.v1164-book-rate{
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  background:var(--brand-green-soft);
  color:var(--brand-green-dark);
  font-size:10px;
  font-weight:900;
}

.v1164-book-guide{
  margin-bottom:11px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--theme-card-soft,#f8fbf7);
  color:var(--muted);
  font-size:8px;
  line-height:1.55;
}

.v1164-wordbook-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}

.v1164-word-card{
  min-width:0;
  min-height:61px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.v1164-word-card.locked{
  background:#f7f7f7;
  opacity:.72;
}

.v1164-word-no{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
  color:var(--muted);
  font-size:7px;
  font-weight:900;
}

.v1164-word-no span{
  padding:2px 4px;
  border-radius:999px;
  background:var(--soft);
  color:var(--muted);
  font-size:6px;
}

.v1164-word-card.unlocked .v1164-word-no span{
  background:var(--brand-green-soft);
  color:var(--brand-green-dark);
}

.v1164-word-card strong{
  min-width:0;
  color:var(--brand-green-dark);
  font-size:9px;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.v1164-word-card.locked strong{
  color:#9ca3af;
  letter-spacing:.08em;
}

/* 個人テーマと連動 */
html[data-ayumi-theme] .v1164-game-button.active,
html[data-ayumi-theme] .v1164-tabs button.active,
html[data-ayumi-theme] .v1164-result-level b{
  background:var(--theme-primary) !important;
  border-color:var(--theme-primary) !important;
}

html[data-ayumi-theme] .v1164-level-badge,
html[data-ayumi-theme] .v1164-game-icon,
html[data-ayumi-theme] .v1164-timer,
html[data-ayumi-theme] .v1164-result-level,
html[data-ayumi-theme] .v1164-book-rate,
html[data-ayumi-theme] .v1164-word-card.unlocked .v1164-word-no span{
  background:var(--theme-soft-2) !important;
}

html[data-ayumi-theme] .v1164-level-badge strong,
html[data-ayumi-theme] .v1164-title-row strong,
html[data-ayumi-theme] .v1164-current-word,
html[data-ayumi-theme] .v1164-live-stats strong,
html[data-ayumi-theme] .v1164-result-card h2,
html[data-ayumi-theme] .v1164-result-grid strong,
html[data-ayumi-theme] .v1164-result-level strong,
html[data-ayumi-theme] .v1164-section-head h2,
html[data-ayumi-theme] .v1164-rank-score,
html[data-ayumi-theme] .v1164-word-card.unlocked strong{
  color:var(--theme-dark) !important;
}

@media(max-width:600px){
  .v1164-game-button{
    padding:7px 8px;
  }

  .v1164-game-button strong{
    font-size:9px;
  }

  .v1164-rule-grid{
    grid-template-columns:1fr;
  }

  .v1164-running-head{
    grid-template-columns:1fr;
  }

  .v1164-result-grid{
    grid-template-columns:1fr 1fr;
  }

  .v1164-result-actions{
    grid-template-columns:1fr;
  }

  .v1164-wordbook-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:390px){
  .v1164-game-button strong{
    display:none;
  }

  .v1164-game-button{
    width:38px;
    height:38px;
    justify-content:center;
    padding:0;
  }

  .v1164-game-button span{
    font-size:17px;
  }
}


/* ============================================================
   v1.1.65 スマホ専用 / ひらがな入力 / BGM
   ============================================================ */
.v1165-pc-only-note{
  max-width:560px;
  margin:4px auto;
  padding:20px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--theme-card-soft,#f8fbf7);
  text-align:center;
}
.v1165-pc-icon{font-size:34px;margin-bottom:6px}
.v1165-pc-only-note h2{margin:0;color:var(--brand-green-dark);font-size:18px}
.v1165-pc-only-note p{margin:9px 0;color:var(--muted);font-size:10px;line-height:1.7}
.v1165-pc-only-note strong{display:block;color:var(--brand-green-dark);font-size:11px;line-height:1.6}
.v1165-pc-view-note{margin-top:10px;text-align:center;color:var(--muted);font-size:9px}
.v1165-bgm-row{display:flex;justify-content:flex-end;align-items:center;gap:7px;margin-bottom:10px;color:var(--muted);font-size:8px;font-weight:800}
.v1165-bgm-toggle{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--brand-green-dark);padding:6px 9px;font-size:8px;font-weight:900;cursor:pointer}
.v1165-current-reading{margin:6px 0 2px;color:var(--muted);font-size:14px;font-weight:900;letter-spacing:.04em;overflow-wrap:anywhere}
.v1165-current-reading + .v1164-current-word{margin-top:1px}
html[data-ayumi-theme] .v1165-pc-only-note h2,
html[data-ayumi-theme] .v1165-pc-only-note strong,
html[data-ayumi-theme] .v1165-bgm-toggle{color:var(--theme-dark)!important}
@media(max-width:600px){
  .v1165-current-reading{font-size:13px}
  .v1164-current-word{font-size:clamp(26px,8vw,36px)}
}


/* ============================================================
   v1.1.66 テレアポタイピング 操作確定版
   ============================================================ */
.v1166-play-guide{
  display:flex;align-items:center;gap:7px;
  margin:8px 0 12px;padding:8px 10px;
  border:1px solid var(--line);border-radius:11px;background:#fff;
  color:var(--muted);font-size:8.5px;line-height:1.45;
}
.v1166-play-guide b{color:var(--brand-green-dark);white-space:nowrap}
.v1166-play-guide kbd{
  font:inherit;font-weight:900;background:var(--soft);
  border:1px solid var(--line);border-radius:6px;padding:2px 5px;
  color:var(--brand-green-dark);
}
.v1166-running-actions{
  display:flex;justify-content:center;align-items:center;gap:8px;
  flex-wrap:wrap;margin-top:10px;
}
.v1166-cancel-button{
  border:1px solid #e4bcbc;background:#fff;color:#9b1c1c;
  border-radius:999px;padding:7px 13px;font-size:8.5px;font-weight:900;cursor:pointer;
}
html[data-ayumi-theme] .v1166-play-guide b,
html[data-ayumi-theme] .v1166-play-guide kbd{color:var(--theme-dark)!important}
@media(max-width:600px){
  .v1166-play-guide{font-size:8px}
  .v1166-running-actions{margin-top:9px}
}


/* ===== v1.1.67 探索ゲーム・ポイント基盤 ===== */
.v1167-point-card{border:1px solid color-mix(in srgb,var(--theme-primary,#1f5424) 25%,#d9e4da)}
.v1167-point-head{align-items:flex-start;gap:12px}
.v1167-balance{min-width:86px;text-align:right;background:var(--theme-soft,#edf6ed);border-radius:14px;padding:9px 11px}
.v1167-balance span{display:block;font-size:10px;color:#6b7280;font-weight:700}
.v1167-balance strong{font-size:24px;color:var(--theme-primary,#1f5424);line-height:1.1}
.v1167-point-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.v1167-point-summary>div{border:1px solid #d9e4da;border-radius:12px;padding:9px 10px}
.v1167-point-summary span{display:block;font-size:10px;color:#6b7280}
.v1167-point-summary strong{font-size:17px;color:var(--theme-primary,#1f5424)}
.v1167-grant-details{margin-top:8px;border-top:1px solid #e5e7eb;padding-top:10px}
.v1167-grant-details summary{cursor:pointer;font-weight:800;color:var(--theme-primary,#1f5424)}
.v1167-grant-list{display:grid;gap:10px;margin-top:10px}
.v1167-grant-item{border:1px solid #e1e8e2;border-radius:14px;padding:11px;background:#fff}
.v1167-grant-date{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px}
.v1167-grant-total{font-weight:900;color:var(--theme-primary,#1f5424)}
.v1167-grant-lines{display:grid;gap:5px}
.v1167-grant-lines>div{display:flex;justify-content:space-between;gap:12px;font-size:12px}
.v1167-grant-lines strong{color:var(--theme-primary,#1f5424);white-space:nowrap}
.v1167-point-note{font-size:10px;color:#6b7280;line-height:1.5;margin-top:10px}
.v1167-incentive-list{display:grid;gap:8px}
.v1167-incentive-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e1e8e2;border-radius:12px;padding:10px 12px}
.v1167-incentive-row>div{display:grid;gap:2px}
.v1167-incentive-row span{font-size:11px;color:#6b7280}
.v1167-admin-toolbar,.v1167-recalc-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.v1167-admin-toolbar .compact-field{min-width:180px;flex:1}
.v1167-settings-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin:12px 0}
.v1167-settings-grid .compact-field{position:relative}
.v1167-settings-grid .compact-field span{font-size:11px;color:#6b7280}
.v1167-recalc-row input{min-height:42px}
@media(max-width:720px){
  .v1167-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v1167-grant-date{align-items:flex-start}
  .v1167-grant-lines>div{font-size:11px}
}

/* ============================================================
   v1.1.68 ミニゲームハブ / アユコネクエスト
   ============================================================ */
.v1168-hub-shell{max-width:760px;margin:0 auto;padding-bottom:24px}
.v1168-hub-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.v1168-hub-head h1{margin:0;color:var(--theme-primary,#1f5424);font-size:24px}
.v1168-hub-head p{margin:3px 0 0;color:#6b7280;font-size:13px}
.v1168-game-grid,.v1168-admin-choice-grid{display:grid;grid-template-columns:1fr;gap:12px}
.v1168-game-card{width:100%;display:grid;grid-template-columns:62px 1fr 24px;gap:13px;align-items:center;text-align:left;border:1px solid #d9e4da;background:#fff;border-radius:18px;padding:17px;box-shadow:0 8px 24px rgba(0,0,0,.045);color:#203025}
.v1168-game-card:active,.v1168-admin-choice:active{transform:scale(.99)}
.v1168-quest-card{border-color:color-mix(in srgb,var(--theme-primary,#1f5424) 26%,#d9e4da)}
.v1168-game-icon{width:58px;height:58px;border-radius:16px;background:#edf6ed;display:grid;place-items:center;font-size:30px}
.v1168-game-copy{display:flex;flex-direction:column;gap:5px}
.v1168-game-copy strong{font-size:18px;color:var(--theme-primary,#1f5424)}
.v1168-game-copy small{font-size:12px;color:#6b7280;line-height:1.5}
.v1168-game-arrow{font-size:31px;color:#94a3b8;font-weight:300;text-align:right}
.v1168-hub-note,.v1168-admin-only-note{margin-top:14px;padding:11px 13px;border-radius:12px;background:#f3f7f3;color:#5d6d60;font-size:12px;line-height:1.6}
.v1168-admin-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v1168-admin-choice{border:1px solid #d9e4da;background:#fff;border-radius:18px;padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;color:#203025;box-shadow:0 8px 24px rgba(0,0,0,.045)}
.v1168-admin-choice strong{font-size:18px;color:var(--theme-primary,#1f5424)}
.v1168-admin-choice small{font-size:12px;color:#6b7280;line-height:1.5}
.v1168-choice-icon{font-size:38px}
.v1168-dev-choice{background:linear-gradient(180deg,#fff,#f6faf6)}
.v1168-quest-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.v1168-quest-status>div{background:#fff;border:1px solid #d9e4da;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.v1168-quest-status span{font-size:11px;color:#6b7280}
.v1168-quest-status strong{font-size:15px;color:var(--theme-primary,#1f5424)}
.v1168-quest-preview{background:#fff;border:1px solid #d9e4da;border-radius:20px;padding:16px;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.045)}
.v1168-quest-preview h2{margin:14px 0 6px;color:var(--theme-primary,#1f5424)}
.v1168-quest-preview p{font-size:13px;line-height:1.7;color:#6b7280;max-width:520px;margin:0 auto}
.v1168-preview-map{height:235px;border-radius:16px;overflow:hidden;position:relative;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 24px),linear-gradient(135deg,#4f7b45 0 28%,#678f50 28% 46%,#7aa467 46% 62%,#52773f 62% 100%);image-rendering:pixelated}
.v1168-preview-map:before{content:"";position:absolute;left:16%;top:20%;width:24%;height:34%;background:#315c37;clip-path:polygon(0 38%,20% 10%,42% 29%,62% 0,100% 35%,86% 100%,26% 90%);opacity:.8}
.v1168-preview-map:after{content:"";position:absolute;right:5%;bottom:6%;width:42%;height:34%;background:#4a88a6;clip-path:polygon(12% 0,100% 18%,86% 100%,0 77%);opacity:.85}
.v1168-preview-fog{position:absolute;background:rgba(25,35,27,.72);filter:blur(5px);border-radius:44%}
.v1168-preview-fog.fog-a{width:49%;height:53%;left:-8%;bottom:-14%}
.v1168-preview-fog.fog-b{width:42%;height:47%;right:-5%;top:-9%}
.v1168-preview-player{position:absolute;left:46%;top:46%;font-size:31px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.v1168-preview-chest{position:absolute;left:63%;top:29%;font-size:27px;color:#d89b35;text-shadow:0 2px #5a3b18}
.v1168-preview-rule{display:inline-flex;gap:9px;align-items:center;margin-top:13px;background:#edf6ed;border-radius:999px;padding:8px 14px;color:var(--theme-primary,#1f5424);font-size:13px;font-weight:800}
.v1168-dev-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.v1168-dev-nav>div{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.v1168-dev-nav strong{color:var(--theme-primary,#1f5424)}
.v1168-dev-nav span{font-size:10px;color:#6b7280}
@media(max-width:560px){
  .v1168-admin-choice-grid{grid-template-columns:1fr}
  .v1168-hub-head{align-items:flex-start}
  .v1168-hub-head h1{font-size:21px}
  .v1168-game-card{grid-template-columns:54px 1fr 20px;padding:14px}
  .v1168-game-icon{width:50px;height:50px;font-size:26px}
  .v1168-game-copy strong{font-size:16px}
  .v1168-preview-map{height:210px}
  .v1168-dev-nav{align-items:flex-start}
}

/* ============================================================
   v1.1.69 アユコネクエスト：キャラ / タイルマップ / 移動
   ============================================================ */
.v1169-wide-shell{max-width:1120px}
.v1169-head{max-width:900px;margin-left:auto;margin-right:auto}
.v1169-hud,.v1169-player-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.v1169-hud>div,.v1169-player-hud>div{background:#fff;border:1px solid #d9e4da;border-radius:13px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.v1169-hud span,.v1169-player-hud span{font-size:10px;color:#6b7280}.v1169-hud strong,.v1169-player-hud strong{font-size:14px;color:var(--theme-primary,#1f5424);overflow:hidden;text-overflow:ellipsis}
.v1169-player-hud .v1169-player-char{display:flex;flex-direction:row;align-items:center;gap:7px;padding:5px 9px}.v1169-player-char canvas{width:46px;height:46px;image-rendering:pixelated;flex:none}.v1169-player-char>div{display:flex;flex-direction:column;min-width:0}
.v1169-join-intro{background:linear-gradient(135deg,#f3f8f2,#fff);border:1px solid #d9e4da;border-radius:14px;padding:12px 14px;margin-bottom:10px;display:flex;flex-direction:column;gap:3px}.v1169-join-intro strong{color:var(--theme-primary,#1f5424)}.v1169-join-intro span{font-size:12px;color:#617064;line-height:1.5}
.v1169-section{margin-bottom:12px}.v1169-step-title{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:0 2px 8px}.v1169-step-title h3{margin:0;color:#243027}.v1169-step-title span{font-size:11px;color:#6b7280}
.v1169-char-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}.v1169-char-card{border:2px solid #e2e8e2;background:#fff;border-radius:14px;padding:8px 5px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;color:#263328}.v1169-char-card canvas{width:52px;height:52px;image-rendering:pixelated}.v1169-char-card strong{font-size:12px;color:var(--theme-primary,#1f5424)}.v1169-char-card span{font-size:10px;color:#69766b}.v1169-char-card small{font-size:9px;color:#8a958c}.v1169-char-card.is-selected{border-color:#e4b735;background:#fffbea;box-shadow:0 0 0 2px rgba(228,183,53,.18)}.v1169-char-card.is-taken{opacity:.42;filter:grayscale(.65)}
.v1169-map-card{background:#fff;border:1px solid #d7e1d8;border-radius:18px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.045)}
.v1169-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.v1169-map-toolbar>div:first-child{display:flex;flex-direction:column}.v1169-map-toolbar strong{color:#29382d}.v1169-map-toolbar span{font-size:10px;color:#6b7280}.v1169-map-actions{display:flex;gap:5px;align-items:center}.v1169-map-actions button{border:1px solid #d4ded5;background:#f8fbf8;color:#345239;border-radius:9px;min-width:36px;height:34px;padding:0 9px;font-weight:800}.v1169-map-actions #v1169Fullscreen{font-size:11px;min-width:auto}
.v1169-map-stage{height:min(64dvh,620px);min-height:430px;position:relative;overflow:hidden;border-radius:13px;background:#101913;border:1px solid #26362a;touch-action:none;user-select:none;-webkit-user-select:none}.v1169-map-stage>canvas#v1169MapCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}.v1169-map-stage>canvas#v1169MapCanvas:active{cursor:grabbing}.v1169-map-hint{position:absolute;left:10px;bottom:10px;background:rgba(12,22,15,.76);color:#e7eee9;padding:6px 9px;border-radius:999px;font-size:9px;pointer-events:none}.v1169-minimap{position:absolute;right:10px;bottom:10px;width:100px;height:120px;border:2px solid rgba(255,255,255,.82);border-radius:8px;background:#152019;box-shadow:0 3px 10px rgba(0,0,0,.35);cursor:pointer}.v1169-full-close{display:none;position:absolute;z-index:8;top:max(10px,env(safe-area-inset-top));right:10px;border:0;border-radius:999px;padding:9px 12px;background:rgba(15,24,17,.86);color:#fff;font-weight:800}
.v1169-map-card.is-fullscreen{position:fixed;z-index:10020;inset:0;background:#0c130e;border:0;border-radius:0;padding:0;margin:0}.v1169-map-card.is-fullscreen .v1169-map-toolbar{display:none}.v1169-map-card.is-fullscreen .v1169-map-stage{height:100dvh;min-height:0;border:0;border-radius:0}.v1169-map-card.is-fullscreen .v1169-full-close{display:block}.v1169-map-card.is-fullscreen .v1169-minimap{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:112px;height:134px}.v1169-map-card.is-fullscreen .v1169-map-hint{left:12px;bottom:max(12px,env(safe-area-inset-bottom))}.v1169-map-open{overflow:hidden!important}
.v1169-start-choice{margin:8px auto 0;width:max-content;max-width:100%;background:#fff9df;border:1px solid #eed271;color:#6c5720;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800}.v1169-join-btn{width:100%;min-height:48px;font-weight:900}
.v1169-play-bottom{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:center;margin-top:12px}.v1169-dpad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,48px);gap:4px;justify-content:center}.v1169-dpad button{border:1px solid #cfdacf;background:#fff;border-radius:12px;color:var(--theme-primary,#1f5424);font-size:20px;font-weight:900;box-shadow:0 3px 8px rgba(0,0,0,.06)}.v1169-dpad button:active{transform:translateY(1px);background:#edf6ed}.v1169-dpad button:disabled{opacity:.45}.v1169-dpad>div{border-radius:12px;background:#eef5ee;display:grid;place-items:center;text-align:center;color:#315838;font-size:12px;font-weight:900;line-height:1.05}.v1169-dpad>div small{font-size:8px}.v1169-play-help{border:1px solid #e1e8e2;background:#fff;border-radius:14px;padding:12px 14px}.v1169-play-help strong{color:#355b3a}.v1169-play-help p{margin:5px 0 0;color:#6b7280;font-size:11px;line-height:1.5}
.v1169-admin-preview-note{display:flex;gap:10px;align-items:center;background:#fff8df;border:1px solid #ead382;border-radius:12px;padding:9px 11px;margin-bottom:9px}.v1169-admin-preview-note>span{font-size:11px;font-weight:900;color:#725c16;white-space:nowrap}.v1169-admin-preview-note p{margin:0;flex:1;font-size:10px;color:#746b4d}.v1169-admin-preview-note button{border:1px solid #dbc66f;border-radius:9px;background:#fffef5;padding:7px 10px;font-size:10px;font-weight:800;color:#6d5818}
@media(max-width:720px){
 .v1169-wide-shell{max-width:none}.v1169-head{margin-bottom:9px}.v1169-hud,.v1169-player-hud{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.v1169-char-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.v1169-char-card{padding:6px 1px;border-radius:10px}.v1169-char-card canvas{width:42px;height:42px}.v1169-char-card strong{font-size:9px}.v1169-char-card span{font-size:8px}.v1169-char-card small{font-size:7px}.v1169-map-card{padding:6px;border-radius:14px}.v1169-map-toolbar{align-items:flex-end}.v1169-map-toolbar>div:first-child span{display:none}.v1169-map-actions{gap:3px}.v1169-map-actions button{min-width:32px;height:32px;padding:0 7px}.v1169-map-actions #v1169Fullscreen{font-size:9px}.v1169-map-stage{height:66dvh;min-height:470px;border-radius:10px}.v1169-minimap{width:82px;height:99px;right:7px;bottom:7px}.v1169-map-hint{left:7px;bottom:7px;font-size:8px}.v1169-play-bottom{grid-template-columns:1fr}.v1169-dpad{grid-template-columns:repeat(3,62px);grid-template-rows:repeat(3,50px)}.v1169-play-help{display:none}.v1169-step-title{align-items:flex-start;flex-direction:column;gap:2px}.v1169-admin-preview-note{align-items:flex-start;flex-wrap:wrap}.v1169-admin-preview-note p{min-width:180px}
}
@media(max-width:390px){.v1169-char-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.v1169-char-card canvas{width:36px;height:36px}.v1169-map-stage{min-height:440px}.v1169-player-hud .v1169-player-char canvas{width:38px;height:38px}}
/* v1.1.96 アユコネクエスト自動運用 */
.v1196-schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.v1196-schedule>div,.v1196-status-grid>div{border:1px solid #e5e7eb;border-radius:14px;padding:12px;background:#fafafa}.v1196-schedule span,.v1196-status-grid span{display:block;font-size:12px;color:#64748b}.v1196-schedule strong,.v1196-status-grid strong{display:block;margin:4px 0}.v1196-schedule small,.v1196-status-grid small{display:block;color:#64748b;line-height:1.45}.v1196-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v1196-badge{display:inline-block!important;width:max-content;padding:3px 8px;border-radius:999px;font-size:12px!important}.v1196-badge.success{background:#dcfce7;color:#166534}.v1196-badge.failed{background:#fee2e2;color:#991b1b}.v1196-badge.running{background:#fef3c7;color:#92400e}.v1196-badge.none{background:#e2e8f0;color:#475569}.v1196-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}@media(max-width:650px){.v1196-schedule,.v1196-status-grid{grid-template-columns:1fr}}

/* v1.2.03 AyuQuest exit / stability */
.v1169-head{position:relative}.v1203-quest-title{min-width:0}.v1203-quest-exit{margin-left:auto;flex:0 0 auto;border:0;border-radius:999px;background:#8c2e2e;color:#fff;font-weight:900;padding:9px 13px;box-shadow:0 3px 10px rgba(90,20,20,.18)}
.v1203-quest-exit:active{transform:translateY(1px)}
@media(max-width:520px){.v1169-head{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}.v1169-head .v1164-back-button{font-size:10px;padding:8px 9px}.v1203-quest-title h1{font-size:17px!important;white-space:nowrap}.v1203-quest-title p{display:none}.v1203-quest-exit{padding:8px 10px;font-size:11px}}

/* v1.2.04 AyuQuest header controls */
.v1204-quest-actions{margin-left:auto;display:flex;align-items:center;gap:7px;flex:0 0 auto}
.v1204-quest-actions .v1171-quest-sound,.v1204-quest-actions .v1203-quest-exit{margin:0;min-height:36px}
@media(max-width:520px){
  .v1169-head{grid-template-columns:auto minmax(0,1fr) auto!important;gap:6px!important}
  .v1204-quest-actions{gap:5px}
  .v1204-quest-actions .v1171-quest-sound{font-size:9px;padding:7px 8px;min-height:34px}
  .v1204-quest-actions .v1203-quest-exit{font-size:10px;padding:7px 9px;min-height:34px}
  .v1203-quest-title h1{font-size:15px!important;overflow:hidden;text-overflow:ellipsis}
}


/* v1.2.05 AyuQuest test controls / map edge */
.v1205-manual-grant{display:grid;grid-template-columns:minmax(160px,1fr) 130px minmax(180px,1.2fr) auto;gap:9px;align-items:end}
.v1205-manual-grant .compact-field{min-width:0}.v1205-manual-grant select,.v1205-manual-grant input{width:100%}
.v1205-manual-grant .btn{min-height:42px;white-space:nowrap}
.v1171-quest-sound.v1171-floating{display:none!important}
@media(max-width:720px){.v1205-manual-grant{grid-template-columns:1fr 1fr}.v1205-grant-note{grid-column:1/-1}.v1205-manual-grant .btn{grid-column:1/-1;width:100%}}
@media(max-width:430px){
  .v1204-quest-actions{gap:4px!important}
  .v1204-quest-actions .v1171-quest-sound{font-size:8px!important;padding:6px 7px!important}
  .v1204-quest-actions .v1203-quest-exit{font-size:9px!important;padding:6px 8px!important}
}


/* v1.2.06 AyuQuest mobile viewport / visible animation */
@media(max-width:720px){
  .v1169-player-hud{gap:4px!important;margin-bottom:5px!important}
  .v1169-player-hud>div{padding:6px 8px!important;border-radius:10px!important;gap:1px!important}
  .v1169-player-hud span{font-size:9px!important}
  .v1169-player-hud strong{font-size:12px!important}
  .v1169-player-hud .v1169-player-char{padding:3px 6px!important}
  .v1169-player-hud .v1169-player-char canvas{width:34px!important;height:34px!important}
  .v1206-play-map{padding:4px!important}
  .v1206-play-map .v1169-map-toolbar{margin-bottom:4px!important}
  .v1206-play-map .v1169-map-toolbar strong{font-size:12px!important}
  .v1206-play-map .v1169-map-actions button{height:28px!important;min-width:28px!important;padding:0 6px!important;font-size:11px!important}
  .v1206-play-map .v1169-map-stage{height:clamp(240px,38dvh,340px)!important;min-height:0!important}
  .v1206-play-map .v1169-minimap{width:64px!important;height:76px!important}
  .v1206-play-map .v1169-map-hint{font-size:7px!important;padding:4px 6px!important}
  .v1169-play-bottom{margin-top:5px!important}
  .v1169-dpad{grid-template-columns:repeat(3,54px)!important;grid-template-rows:repeat(3,40px)!important;gap:3px!important}
  .v1169-dpad button{font-size:18px!important;border-radius:10px!important}
  .v1169-dpad>div{font-size:11px!important;border-radius:10px!important}
}
@media(max-width:430px){
  .v1206-play-map .v1169-map-stage{height:clamp(230px,36dvh,310px)!important}
  .v1169-dpad{grid-template-columns:repeat(3,50px)!important;grid-template-rows:repeat(3,38px)!important}
}
@media(max-height:760px) and (max-width:720px){
  .v1206-play-map .v1169-map-stage{height:32dvh!important;min-height:215px!important;max-height:270px!important}
  .v1169-player-hud .v1169-player-char canvas{width:30px!important;height:30px!important}
  .v1169-dpad{grid-template-rows:repeat(3,36px)!important}
}
