:root{--bg: #f6f1ea;--surface: #fffdfa;--surface-2: #f3ebe3;--border: #e2d6ca;--text: #2b2420;--muted: #6b5f58;--accent: #a84e5e;--accent-strong: #8e3f4d;--accent-soft: #f6e4e7;--ok: #2f6b3a;--ok-soft: #e3f0e5;--warn: #8a4f00;--warn-soft: #fff1d6;--danger: #a3302f;--danger-soft: #fbe3e2;--info: #2f5c8f;--info-soft: #e3ecf7;--focus: #2f5c8f;--radius: 8px;--tap: 44px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px;line-height:1.5}body{min-width:320px;overflow-x:hidden}a{color:var(--info)}h1{font-size:1.4rem;margin:0 0 12px}h2{font-size:1.1rem;margin:20px 0 8px}h3{font-size:1rem;margin:12px 0 6px}h1,h2,h3{overflow-wrap:anywhere}p{margin:6px 0}code{background:var(--surface-2);padding:0 4px;border-radius:4px;font-size:.9em;word-break:break-all}small,.muted{color:var(--muted)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.app{display:grid;grid-template-columns:1fr;min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;max-width:100%}.topbar .brand{font-weight:700;font-size:1.05rem}.topbar .spacer{flex:1}.mode-badge{display:inline-flex;flex-wrap:wrap;gap:4px 8px;align-items:center;padding:6px 10px;border-radius:var(--radius);font-size:.85rem;background:var(--warn-soft);color:var(--warn);border:1px solid #e8c98f;max-width:100%}.mode-badge[data-tone=test]{background:var(--info-soft);color:var(--info);border-color:#b9cbe3}.mode-badge[data-tone=live]{background:var(--danger-soft);color:var(--danger);border-color:#e3a3a2;font-weight:700}.mode-badge[data-tone=unknown]{background:var(--surface-2);color:var(--text);border-color:var(--border)}.role-chip{padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.85rem;font-weight:600}.shell{display:grid;grid-template-columns:1fr}.sidenav{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px}.sidenav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.sidenav a{display:inline-flex;align-items:center;min-height:var(--tap);padding:8px 12px;border-radius:var(--radius);color:var(--text);text-decoration:none;border:1px solid transparent}.sidenav a:hover{background:var(--surface-2)}.sidenav a.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#e7c6cc;font-weight:600}.sidenav.collapsed{display:none}main.content{padding:16px;max-width:1400px;width:100%;margin:0 auto}@media(min-width:900px){.shell{grid-template-columns:230px 1fr}.sidenav{border-bottom:none;border-right:1px solid var(--border);padding:12px;min-height:calc(100vh - 60px)}.sidenav ul{flex-direction:column}.sidenav a{width:100%}.sidenav.collapsed{display:block}.topbar .menu-toggle{display:none}main.content{padding:24px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}.card.attention{border-color:#e8c98f;background:#fffaf0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.tile .label{color:var(--muted);font-size:.85rem}.tile .value{font-size:1.5rem;font-weight:700}.tile.warn{border-color:#e8c98f;background:var(--warn-soft)}.tiles.money{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.85rem;border:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:#b9d8be}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#e8c98f}.pill.danger{background:var(--danger-soft);color:var(--danger);border-color:#e3a3a2}.pill.info{background:var(--info-soft);color:var(--info);border-color:#b9cbe3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);min-width:var(--tap);padding:8px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;cursor:pointer;text-decoration:none}.btn:hover{background:var(--surface-2)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-strong)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.small{min-height:var(--tap);min-width:var(--tap);padding:4px 10px;font-size:.9rem}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;align-items:center;max-width:100%}.btn-row .btn{max-width:100%;white-space:normal;text-align:center}.form{display:grid;gap:10px}.form.inline{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.form.inline>.check{height:fit-content}.field{display:flex;flex-direction:column;gap:4px}.field label,.field>span.label{font-size:.9rem;color:var(--muted)}select:not([multiple]):not([size]){height:var(--tap)}select{overflow:hidden;contain:paint}.field input,.field select,.field textarea{min-height:var(--tap);padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:#fff;color:var(--text);width:100%}.field textarea{min-height:88px}.check{display:flex;align-items:center;gap:8px;min-height:var(--tap);overflow-wrap:anywhere}.check input{width:22px;height:22px}.checks{display:flex;flex-wrap:wrap;gap:4px 14px}fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin:0}legend{color:var(--muted);font-size:.9rem;padding:0 4px}main.content{container-type:inline-size;container-name:content}.table-wrap{width:100%;max-width:100%;overflow-x:auto}table.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}table.table th,table.table td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}table.table th{background:var(--surface-2);font-size:.9rem;color:var(--muted);font-weight:600}table.table td:is([data-label=メニュー],[data-label=名称],[data-label=表示名],[data-label=対応スタッフ],[data-label=対応メニュー],[data-label=対象]),table.table td .note{overflow-wrap:anywhere}table.table tr:last-child td{border-bottom:none}table.table code{white-space:normal}.nowrap{white-space:nowrap}table.table .pill{white-space:normal;word-break:keep-all}@container content (width > 1220px){table.table.wide td:is([data-label=状態],[data-label=支払],[data-label=予約状態],[data-label=決済状態]){width:14.5rem}table.table.wide td:is([data-label=メニュー],[data-label=決済ID]){min-width:7em}}table.table .pill,.day-col .pill{border-radius:12px}.reservation-name{overflow-wrap:anywhere}code.receipt,table.table code.receipt{white-space:nowrap;word-break:keep-all}table.table summary{white-space:nowrap;min-width:var(--tap)}table.table input:not([type=checkbox]):not([type=radio]),table.table select{min-height:var(--tap);max-width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:#fff;color:var(--text)}table.table select{width:100%}@media(max-width:640px){table.table thead{display:none}table.table,table.table tbody,table.table tr,table.table td{display:block;width:100%}table.table tr{border-bottom:2px solid var(--border);padding:6px 0}table.table td{border-bottom:none;padding:4px 10px}table.table td[data-label]:before{content:attr(data-label) " : ";color:var(--muted);font-size:.85rem}}@container content (max-width: 820px){table.table thead{display:none}table.table,table.table tbody,table.table tr,table.table td{display:block;width:100%}table.table tr{border-bottom:2px solid var(--border);padding:6px 0}table.table td{border-bottom:none;padding:4px 10px}table.table td[data-label]:before{content:attr(data-label) " : ";color:var(--muted);font-size:.85rem}}@container content (max-width: 1220px){table.table.wide thead{display:none}table.table.wide,table.table.wide tbody,table.table.wide tr,table.table.wide td{display:block;width:100%}table.table.wide tr{border-bottom:2px solid var(--border);padding:6px 0}table.table.wide td{border-bottom:none;padding:4px 10px}table.table.wide td[data-label]:before{content:attr(data-label) " : ";color:var(--muted);font-size:.85rem}}.list{list-style:none;margin:0;padding:0}.list li{padding:10px 0;border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:none}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}.kv dt{color:var(--muted);font-size:.9rem}.kv dd{margin:0;overflow-wrap:anywhere}@media(max-width:480px){.kv{grid-template-columns:1fr}.kv dd{margin-bottom:6px}}.week-grid{display:grid;grid-template-columns:1fr;gap:8px}@media(min-width:900px){.week-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@container content (min-width: 1000px){.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}.day-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-width:0}.day-col h3{margin:0 0 6px;font-size:.95rem}.day-col .pill{white-space:normal;word-break:keep-all}.day-col .item{padding:6px 0;border-top:1px solid var(--border);font-size:.9rem;overflow-wrap:anywhere}.slot-grid{display:flex;flex-wrap:wrap;gap:6px}.slot-grid .btn[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.diff{display:grid;grid-template-columns:1fr;gap:8px}@media(min-width:640px){.diff{grid-template-columns:1fr auto 1fr;align-items:center}}.diff .box{background:var(--surface-2);border-radius:var(--radius);padding:8px 10px;overflow-wrap:anywhere}.diff .arrow{text-align:center;font-size:1.4rem;color:var(--muted)}.state{padding:20px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.alert{padding:10px 12px;border-radius:var(--radius);margin:8px 0;border:1px solid;overflow-wrap:anywhere}.alert.error{background:var(--danger-soft);border-color:#e3a3a2;color:var(--danger)}.alert.warn{background:var(--warn-soft);border-color:#e8c98f;color:var(--warn)}.alert.ok{background:var(--ok-soft);border-color:#b9d8be;color:var(--ok)}.alert.info{background:var(--info-soft);border-color:#b9cbe3;color:var(--info)}.note{font-size:.9rem;color:var(--muted)}.code-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.6rem;letter-spacing:.15em;background:var(--surface-2);padding:12px;border-radius:var(--radius);text-align:center;word-break:break-all}.secret-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;background:var(--surface-2);padding:12px;border-radius:var(--radius);word-break:break-all}dialog.dialog{padding:0;width:calc(100% - 32px);max-width:520px;max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}dialog.dialog::backdrop{background:#2b242073}.dialog-inner{padding:18px;overflow-wrap:anywhere}.dialog h2{margin-top:0}.login-wrap{max-width:520px;margin:24px auto}details.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;margin:8px 0}details.panel summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;font-weight:600}.json{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;white-space:pre-wrap;word-break:break-all;background:var(--surface-2);padding:6px 8px;border-radius:6px;margin:4px 0 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.theme-sample{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:var(--radius);color:#fff;font-weight:600}
