:root{--bg:#f5f3ee;--ink:#1c2430;--sub:#5b6573;--line:#ddd8ce;--brand:#1f5fae;--ng:#b3412e;--card:#fff;--warn:#8a5a00}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Noto Sans JP,Hiragino Sans,system-ui,sans-serif;font-size:15px}button{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:8px 14px}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}button.danger{color:var(--ng);border-color:var(--ng);background:#fff}button.danger:not(:disabled):hover{background:var(--ng);color:#fff}button.link{color:var(--brand);background:0 0;border:none;padding:2px 6px;font-size:13px}input,select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}.mono{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.small{color:var(--sub);margin:4px 0;font-size:13px}.err{color:var(--ng)}.dev{color:var(--warn);font-size:13px}.dev.bar{background:#fff4dc;margin:0;padding:6px 24px}.note{background:#eef3fa;border-radius:8px;padding:10px 14px}.warn{color:var(--warn);background:#fff4dc;border-radius:8px;padding:10px 14px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.row{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.login{max-width:420px;margin:12vh auto;padding:0 16px}.login .row{justify-content:flex-start}.form label{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.steps{margin:8px 0 12px 20px;padding:0;line-height:1.8}.qrbox{justify-content:center;margin:8px 0;display:flex}.qrbox img{width:220px;height:220px}.hint{color:var(--sub);word-break:break-all;font-size:13px}header{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:20px;padding:12px 24px;display:flex}header nav{flex:1;gap:6px;display:flex}header nav button{border:none}header nav button.on{background:var(--bg);font-weight:700}.who{color:var(--sub);font-size:14px}main{max-width:1200px;padding:20px 24px}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.toolbar input{min-width:240px}table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px;font-size:14px}th{color:var(--sub);background:#faf8f4;font-weight:600}tr.stopped td{color:var(--sub);background:#fbfaf7}tr.deleted td{color:#a8aeb6}td.actions{justify-content:flex-end;gap:6px;display:flex}.modal{background:#14181e73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal .card{width:100%;max-width:520px}.modal h2{margin-top:0;font-size:18px}.check{align-items:flex-start;gap:8px;margin:12px 0;display:flex}.issued .print-area{text-align:center;border:2px dashed var(--line);border-radius:12px;margin-top:12px;padding:16px}.issued .label{margin:0 0 6px;font-weight:700}.issued .code{letter-spacing:.08em;margin:8px 0;font-size:28px;font-weight:700}.switch{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.switch.is-on{border-color:var(--ng);background:#fdf3f1}@media (width<=720px){header{flex-wrap:wrap;gap:8px;padding:10px 16px}header nav{flex:100%;order:3;overflow-x:auto}header nav button{white-space:nowrap}main{padding:14px 16px}.toolbar input{flex:100%;min-width:0}button{min-height:44px}button.link{min-height:0}table.cards,table.cards tbody,table.cards tr,table.cards td{width:100%;display:block}table.cards{background:0 0;border:none}table.cards thead{display:none}table.cards tr{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:10px;padding:6px 4px}table.cards td{border:none;justify-content:space-between;gap:12px;padding:6px 12px;display:flex}table.cards td[data-label]:before{content:attr(data-label);color:var(--sub);flex:none;font-size:13px}table.cards td.actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-start;margin-top:4px;padding-top:10px}.modal{align-items:flex-end;padding:0}.modal .card{border-radius:16px 16px 0 0;max-height:92vh;overflow:auto}}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{border:none;width:100%;position:absolute;top:0;left:0}.noprint{display:none}}
