:root{--bg:#F7F7F5;--surface:#FFFFFF;--surface-2:#EFEFEC;--border:#DEDEDA;--ink:#1B1D22;--ink-2:#62666F;--accent:#2B5D8C;--accent-soft:#E9F1F8;--danger:#B3432D;--danger-soft:#FBECE8;--ok:#2E7D4F;--ok-soft:#E8F3EC;--warn:#9A6B1E;--warn-soft:#FBF1DF;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root{--bg:#15171C;--surface:#1D2027;--surface-2:#262A33;--border:#333947;--ink:#E7E9EE;--ink-2:#9AA0AC;--accent:#7FB0E0;--accent-soft:#223244;--danger:#E08871;--danger-soft:#3A241F;--ok:#7FCC9C;--ok-soft:#1E3226;--warn:#D8B267;--warn-soft:#3A2F16}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}h1,h2,h3{text-wrap:balance;letter-spacing:-.01em}h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:28px 0 10px}code{font:92% var(--mono)}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:32px}.login-card h1{font-size:20px}.login-card>p{color:var(--ink-2);margin:0 0 20px}.login-sso-button{display:block;text-align:center;font:600 14px/1 system-ui,sans-serif;text-decoration:none;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:11px 16px}.login-sso-button:hover{filter:brightness(1.08)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}button{font:600 14px/1 system-ui,sans-serif;cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 16px}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--ink);border:1px solid var(--border)}button.danger{background:var(--danger)}.field-error{color:var(--danger);font-size:13px;margin:0}.admin-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.admin-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.admin-header-brand{display:flex;align-items:center;gap:10px;min-width:0}.admin-header-brand a{font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.admin-header-env{font:600 11px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.admin-header-right{display:flex;align-items:center;gap:14px}.admin-header-user{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;font-size:13px}.admin-header-user strong{font-weight:600}.admin-header .secondary{padding:7px 12px;font-size:13px}.admin-body{flex:1 1;display:flex;min-height:0;min-width:0}.admin-nav{flex:none;width:220px;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;gap:4px;overflow-y:auto}.admin-nav,.admin-nav nav{display:flex;flex-direction:column}.admin-nav nav{gap:2px;flex:1 1}.admin-nav nav a{color:var(--ink-2);text-decoration:none;padding:8px 10px;border-radius:6px;font-size:14px}.admin-nav nav a:hover{background:var(--surface-2);color:var(--ink)}.admin-content{flex:1 1;min-width:0;width:100%;padding:24px 28px 40px}@media (max-width:800px){.admin-body{flex-direction:column}.admin-nav{width:100%;border-right:none;border-bottom:1px solid var(--border);padding:10px 12px}.admin-nav nav{flex-direction:row;flex-wrap:wrap;gap:4px}.admin-content{padding:16px}.admin-header-user{display:none}}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.data-table th{text-align:left;font:600 11.5px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--surface-2);padding:10px 14px}.data-table td,.data-table th{border-bottom:1px solid var(--border)}.data-table td{padding:11px 14px;vertical-align:top}.data-table tr:last-child td{border-bottom:none}.muted{font-size:13px}.empty,.muted{color:var(--ink-2)}.empty{text-align:center;padding:24px!important}.badge{display:inline-block;font:600 12px/1 system-ui,sans-serif;padding:4px 9px;border-radius:999px}.badge-processing,.badge-waiting{background:var(--accent-soft);color:var(--accent)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-completed{background:var(--ok-soft);color:var(--ok)}.badge-cancelled{background:var(--surface-2);color:var(--ink-2)}.badge-admin{background:var(--warn-soft);color:var(--warn)}.badge-store_user{background:var(--accent-soft);color:var(--accent)}.badge-danger,.badge-pending{background:var(--danger-soft);color:var(--danger)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:12px;flex-wrap:wrap}.toolbar{margin:16px 0}.filter-form,.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);white-space:nowrap}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;max-width:480px}.form-grid{gap:16px}.form-grid,.form-grid label{display:flex;flex-direction:column}.form-grid label{gap:6px;font-size:13px;color:var(--ink-2)}.checkbox-row,.form-grid .checkbox-row{flex-direction:row;align-items:center;gap:8px}.checkbox-row{display:flex;font-size:14px;color:var(--ink);cursor:pointer}.form-actions{display:flex;gap:10px;margin-top:8px}.store-picker{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:10px;background:var(--surface)}.store-picker label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:14px;color:var(--ink)}.store-picker-group{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px dashed var(--border)}.store-picker-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.store-picker-all{top:-10px;padding:6px 0;margin-bottom:4px;border-bottom:1px solid var(--border);z-index:2}.store-picker-all,.store-picker-branch{position:-webkit-sticky;position:sticky;background:var(--surface)}.store-picker-branch{top:22px;padding:4px 0;z-index:1}.store-picker-item{padding-left:18px}.store-filter{position:relative;min-width:240px}.store-filter-input{width:100%}.store-filter-list{position:absolute;z-index:10;top:calc(100% + 2px);left:0;right:0;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.12)}.store-filter-list li{padding:6px 10px;border-radius:4px;font-size:14px;cursor:pointer;white-space:nowrap}.store-filter-list li:hover{background:var(--surface-2)}.store-filter-list li.active{background:var(--accent-soft);color:var(--accent)}.store-filter-list li.muted{cursor:default}.store-filter-list li.muted:hover{background:none}.so-detail>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:baseline}.so-detail>summary::-webkit-details-marker{display:none}.so-detail>summary:before{content:"▸";color:var(--ink-2);margin-right:5px;font-size:11px}.so-detail[open]>summary:before{content:"▾"}.so-detail-list{margin-top:6px;padding-left:8px;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:4px}.so-detail-item{display:flex;justify-content:space-between;gap:12px;font-size:13px;white-space:nowrap}.so-detail-item code{color:var(--ink-2)}.status-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.status-form input[type=text]{width:160px}.guide-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}.guide-card{display:block;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:inherit;text-decoration:none;transition:border-color .15s,background .15s}.guide-card:hover{border-color:var(--accent);background:var(--accent-soft)}.guide-layout{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:28px;gap:28px;align-items:start}.guide-toc nav{display:flex;flex-direction:column;gap:4px}.guide-toc nav a{display:block;padding:8px 10px;border-radius:6px;color:var(--ink-2);text-decoration:none;font-size:13px;line-height:1.35}.guide-toc nav a:hover{background:var(--surface-2);color:var(--ink)}.guide-toc nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.guide-article{max-width:780px}.guide-article h2{margin:24px 0 10px;font-size:18px}.guide-article li,.guide-article p{line-height:1.55}.guide-article ul,.guide-steps{padding-left:20px}.guide-steps{display:flex;flex-direction:column;gap:14px}.guide-steps li strong{display:block;margin-bottom:4px}.guide-callout{margin-top:20px;padding:14px 16px;border:1px solid var(--warn);border-radius:8px;background:var(--warn-soft);font-size:14px}.guide-callout strong{display:block;margin-bottom:4px}@media (max-width:860px){.guide-layout{grid-template-columns:1fr}.guide-toc{order:2}}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.modal-card{background:var(--surface);border-radius:10px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:16px}.modal-close{background:none;border:none;color:var(--ink-2);font-size:22px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px}.modal-close:hover{color:var(--ink);background:var(--surface-2)}.modal-body{padding:20px}.qr-modal{display:flex;flex-direction:column;align-items:center;gap:16px}.qr-preview{width:240px;height:240px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:12px}.qr-preview-placeholder{width:240px;height:240px;border:1px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:13px}.qr-store-info{text-align:center}.qr-store-name{font-weight:700;font-size:15px}.qr-store-code{color:var(--ink-2);font:92% var(--mono);margin-top:2px}.qr-modal .form-actions{margin:0}