*{box-sizing:border-box}
 [x-cloak]{display:none!important}
 body{font-size:14px}
 h1,h2,p{margin:0}
 h1{font-size:20px}
 h2{font-size:14px}
 button,a,input,select,summary{touch-action:manipulation}
 button{cursor:pointer;flex-shrink:0;white-space:nowrap}
 button,input,select,textarea{max-width:100%}
 button,.button{min-height:var(--h-btn);border:1px solid var(--c-border-input);border-radius:var(--radius-btn);background:var(--c-surface);color:var(--c-ink);padding:10px 14px;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
 .primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-surface);min-height:var(--h-btn-primary);border-radius:var(--radius-btn-primary);font-weight:700;width:100%}
 .primary:hover{background:var(--c-primary-hover);color:var(--c-surface)}
 input:not([type=checkbox]),select,textarea{width:100%;min-height:48px;border:1px solid var(--c-border-input);border-radius:10px;padding:10px 12px;background:var(--c-surface);color:var(--c-ink);min-width:0}
 input[type=checkbox]{width:20px;height:20px;accent-color:var(--c-primary);flex-shrink:0}
 :focus-visible{outline:2px solid var(--c-primary);outline-offset:3px}
 label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
 .check{display:flex;gap:8px;align-items:center;min-height:44px}
 .muted{font-size:12px;color:var(--c-ink-muted);line-height:1.6}
 .stack{display:flex;flex-direction:column;gap:14px}
 .content{padding:14px var(--gutter);display:flex;flex-direction:column;gap:12px}
 .card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:14px}
 .header{padding:12px var(--gutter);background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;flex-direction:column;gap:10px}
 .row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}
 .row>*{min-width:0}
 .back{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--c-ink);font-size:24px;flex-shrink:0}
 .header-title{display:flex;align-items:center;gap:8px}
 .header-title h1{font-size:17px}
 .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .list-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--c-divider);padding:8px 0;color:var(--c-ink);text-decoration:none}
 .section-label{font-size:12px;font-weight:700;color:var(--c-ink-muted);padding-bottom:6px}
 .notice{padding:12px 16px;border-radius:12px;background:var(--c-warn-bg);color:var(--c-warn-ink);overflow-wrap:anywhere}
 .success{background:var(--c-ok-bg);color:var(--c-ok-ink)}
 .badge{font-size:11px;background:var(--c-warn-bg);color:var(--c-warn-ink);padding:2px 6px;border-radius:4px;white-space:nowrap}
 .nav{margin-top:auto;min-height:64px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--c-surface);border-top:1px solid var(--c-border)}
 .nav>*{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;text-decoration:none}
 .nav [aria-disabled]{color:var(--c-disabled-ink)}
 .nav .active{font-weight:700;color:var(--c-primary)}
 .nav svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}
 .login{min-height:100vh;justify-content:center;padding:32px 24px;gap:28px}
 .brand{align-items:center;gap:6px}
 .brand-icon{width:56px;height:56px;border-radius:16px;background:var(--c-primary);display:flex;align-items:center;justify-content:center;color:var(--c-surface);margin-bottom:4px}
 .brand h1{font-size:22px}
 .login .card{padding:20px;border-radius:16px}
 details>summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:var(--c-primary)}
 fieldset{padding:0;margin:0;border:0;min-width:0}
 fieldset:disabled{opacity:1}
 fieldset:disabled input,fieldset:disabled select{color:var(--c-ink-muted);background:var(--c-disabled-bg)}
 .filters{display:flex;gap:6px;overflow-x:auto;padding:2px}
 .chip{border-radius:99px;min-height:44px;white-space:nowrap;font-size:13px;padding:6px 12px}
 .selected{border:2px solid var(--c-primary);background:var(--c-primary-tint);color:var(--c-primary-hover);font-weight:700}
 .menu-list{padding:0 16px;display:flex;flex-direction:column;gap:6px}
 .menu-row{background:var(--c-surface);border:1px solid var(--c-border);border-radius:10px;padding:6px 10px;display:flex;gap:8px;align-items:center;min-height:44px}
 .menu-row .name{flex:1;overflow-wrap:anywhere;color:var(--c-ink);text-decoration:none;min-height:44px;display:flex;align-items:center}
 .sheet{position:sticky;bottom:0;margin-top:16px;background:var(--c-surface);border-radius:20px 20px 0 0;border-top:1px solid var(--c-border);box-shadow:0 -6px 20px color-mix(in srgb,var(--c-ink) 10%,transparent);padding:16px;max-height:65vh;overflow:auto;display:flex;flex-direction:column;gap:12px;z-index:2}
 .weekly-day{border-top:1px solid var(--c-divider);padding:8px 0}
 .weekly-day .grid{padding-top:4px}
 .empty{padding:20px 0;color:var(--c-ink-muted)}
 .price{white-space:nowrap;font-size:12px}
 .full{width:100%}
 .staff-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}

/* D-72: 管理画面の共通部品。現行配色はD-102のモノトーンを適用。文字は濃色を使用。 */
.app{background:var(--c-bg);box-shadow:0 0 48px color-mix(in srgb,var(--c-primary) 6%,transparent)}
.header{padding-top:18px;padding-bottom:16px;border-top:2px solid var(--c-primary)}
.header h1{letter-spacing:.06em}
.content{padding-top:18px;padding-bottom:24px;gap:16px}
.card{padding:16px;border-radius:16px;box-shadow:0 3px 12px color-mix(in srgb,var(--c-primary) 4%,transparent)}
.section-label{color:var(--c-primary-hover);letter-spacing:.08em;padding:4px 0 10px}
.card>.section-label{border-bottom:2px solid var(--c-primary-tint);margin-bottom:4px}
.card>.section-label+.list-row{border-top:0}
button,.button{font-weight:500;transition:background-color .15s,border-color .15s,box-shadow .15s}
.primary{font-weight:700;letter-spacing:.04em;box-shadow:0 3px 8px color-mix(in srgb,var(--c-primary) 16%,transparent)}
button:disabled,.button[aria-disabled=true]{background:var(--c-disabled-bg);border-color:var(--c-border);color:var(--c-disabled-ink);box-shadow:none;cursor:default}
.nav{padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:4px}
.nav>a{min-height:52px;border-radius:12px;color:var(--c-ink-muted)}
.nav .active{background:var(--c-primary);color:var(--c-surface)}
.nav svg{stroke-width:1.6}
.brand-icon{background:var(--c-primary-tint);color:var(--c-primary);border:1px solid var(--c-primary-line)}
.brand h1{font-family:var(--font-shop);font-weight:600;letter-spacing:.04em}
@media(hover:hover){
  button:not(.primary):not(:disabled):hover,.button:not(.primary):not(.external-button):hover{background:var(--c-primary-tint);border-color:var(--c-primary-line);color:var(--c-primary-hover)}
  a.list-row:hover{background:var(--c-bg);color:var(--c-primary-hover)}
}
@media(prefers-reduced-motion:reduce){button,.button{transition:none}}
.header>.brand-logo{align-self:center;margin-bottom:4px}
.brand .login-heading{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--c-ink-muted);margin-top:12px;letter-spacing:.04em}
.nav .brand-logo{height:auto}
.nav-label{max-width:100%;text-align:center;line-height:1.4;overflow-wrap:anywhere}
@media(min-width:1100px){.admin-sidebar .nav-label{text-align:left}}

/* D-102: ロゴの黒帯に合わせたヘッダー。入力/ボタンの面色は既存部品を維持。 */
.header{background:var(--c-primary);color:var(--c-surface)}
.header .muted,.sidebar-brand .muted{color:color-mix(in srgb,var(--c-surface) 80%,transparent)}
.header a:not(.button):not(.primary){color:var(--c-surface)}
.header .primary{border-color:var(--c-surface)}
.sidebar-brand{background:var(--c-primary);color:var(--c-surface)}