:root{color-scheme:light;--bg: #f4f6f2;--surface: #ffffff;--surface-muted: #f8f9f6;--border: #d9dfd5;--border-strong: #b8c2b1;--text: #1f2320;--muted: #667064;--primary: #2f6f4e;--primary-hover: #285f43;--accent: #8a5a18;--danger: #b42318;--warning: #a15c07;--ok-bg: #e7f3ea;--ok-text: #25613e;--warning-bg: #fff4df;--danger-bg: #fff0ed}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-size:15px}button,input,select,textarea{font:inherit}button,a.link-button{min-height:38px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;text-decoration:none;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}button:hover,a.link-button:hover{background:var(--surface-muted)}button svg,a svg{width:16px;height:16px;flex:0 0 16px}button.primary,a.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover,a.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button.secondary,a.secondary{background:var(--surface)}.app-shell{min-height:100vh}.topbar{min-height:68px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:20px}.product-name,.product-subtitle{margin:0}.product-name{font-weight:700;font-size:17px}.product-subtitle{color:var(--muted);font-size:13px}.tabs{display:flex;gap:6px;align-items:center}.tab{border-color:transparent;min-width:88px}.tab.active{background:#eef4ed;border-color:var(--border-strong);color:var(--primary)}.workspace{width:min(1240px,calc(100% - 32px));margin:20px auto 48px}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}.kiosk-shell{min-height:100vh;background:#101510;color:#fff;display:grid;grid-template-rows:auto minmax(0,1fr) auto;position:relative;overflow:hidden}.kiosk-header{min-height:72px;padding:14px 20px;background:#151b16;border-bottom:1px solid #2c382e;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:2}.kiosk-header .product-subtitle{color:#c4d0c2}.kiosk-actions{display:flex;gap:8px;align-items:center}.kiosk-camera{min-height:0;background:#060806;display:grid;position:relative}.kiosk-reader{min-height:calc(100vh - 146px);width:100%;display:grid;place-items:center}.kiosk-reader video{width:100%!important;height:100%!important;object-fit:cover}.kiosk-reader img{display:none}.camera-start{position:absolute;inset:0;display:grid;place-items:center;background:#060806;z-index:1}.large-action{min-height:58px;padding:0 22px;font-size:18px}.large-action svg{width:20px;height:20px}.kiosk-manual{min-height:74px;padding:14px 20px;background:#151b16;border-top:1px solid #2c382e;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;z-index:2}.kiosk-manual input{max-width:520px;justify-self:end}.scan-feedback{position:fixed;inset:0;z-index:50;display:grid;place-items:center;text-align:center;color:#fff;padding:24px}.scan-feedback.ok{background:#138a43}.scan-feedback.danger{background:#b42318}.scan-feedback strong{display:block;font-size:180px;line-height:.92;font-weight:800}.scan-feedback p{margin:24px 0 0;font-size:28px;font-weight:700}.registration-shell{min-height:100vh;background:var(--bg)}.registration-header{min-height:72px;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.registration-panel{width:min(960px,calc(100% - 32px));margin:20px auto 48px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px}.survey-form{display:grid;gap:18px}.survey-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.survey-fieldset{border:1px solid var(--border);border-radius:8px;padding:14px;margin:0}.survey-fieldset legend{padding:0 6px;color:var(--muted);font-size:13px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-row{display:flex;align-items:center;gap:10px}.check-row input{width:18px;height:18px;flex:0 0 18px}.check-row span{color:var(--text);font-size:14px}.registration-result{display:grid;gap:18px;justify-items:center;text-align:center}.registration-result h1,.registration-result p{margin:0}.registration-result h1{font-size:28px}.registration-result p{color:var(--muted);margin-top:6px}.registration-qr{width:min(320px,100%);aspect-ratio:1;border:1px solid var(--border)}.registration-details{width:min(440px,100%);margin:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.registration-details div{min-height:48px;display:grid;grid-template-columns:120px minmax(0,1fr);border-bottom:1px solid var(--border)}.registration-details div:last-child{border-bottom:0}.registration-details dt,.registration-details dd{margin:0;display:flex;align-items:center;padding:0 12px}.registration-details dt{color:var(--muted);background:var(--surface-muted)}.registration-details dd{font-weight:700}.summary-item{min-height:72px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);display:flex;flex-direction:column;justify-content:space-between}.summary-item span{color:var(--muted);font-size:13px}.summary-item strong{font-size:24px;line-height:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px}.scan-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px}.section-header{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-header.compact{margin-bottom:12px}.section-header h1,.section-header h2,.section-header p{margin:0}.section-header h1{font-size:22px}.section-header h2{font-size:16px}.section-header p{color:var(--muted);font-size:13px}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}.segmented button{min-width:76px;border:0;border-radius:0}.segmented button+button{border-left:1px solid var(--border-strong)}.segmented button.active{background:var(--primary);color:#fff}.stacked-form,.participant-form,.filters{display:grid;gap:14px}.stacked-form.narrow{max-width:420px}.form-grid,.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-form{grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) 160px auto;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:18px}.filters{margin-bottom:14px}label{display:grid;gap:6px}label span{color:var(--muted);font-size:13px}input,select,textarea{width:100%;border:1px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--text)}input,select{height:40px;padding:0 10px}textarea{min-height:108px;padding:10px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(47,111,78,.22);outline-offset:1px}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.button-row.tight{gap:8px}.icon-button{width:38px;padding:0}.small-button{min-height:32px;padding:0 10px}.reader-wrap{width:min(100%,460px);margin-top:18px;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface-muted)}.reader-wrap.hidden{display:none}#reader{min-height:320px}.panel-side{border-left:1px solid var(--border);padding-left:20px}.event-list{display:grid;gap:8px}.event-item{min-height:58px;border:1px solid var(--border);border-radius:8px;padding:9px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.event-item strong,.event-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-item span,.event-item time,.empty,.empty-cell{color:var(--muted);font-size:13px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}table{width:100%;min-width:760px;border-collapse:collapse;background:var(--surface)}th,td{height:48px;padding:0 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--muted);font-weight:600;font-size:13px;background:var(--surface-muted)}tr:last-child td{border-bottom:0}.actions{width:96px;text-align:right}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:7px;padding:0 8px;font-size:12px;border:1px solid transparent}.badge.ok{background:var(--ok-bg);color:var(--ok-text);border-color:#b7dac1}.badge.warning{background:var(--warning-bg);color:var(--warning);border-color:#edc783}.badge.neutral,.badge.muted{background:var(--surface-muted);color:var(--muted);border-color:var(--border)}.notice{width:min(1240px,calc(100% - 32px));margin:16px auto 0;min-height:44px;border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;align-items:center;background:var(--surface)}.notice.success{background:var(--ok-bg);border-color:#b7dac1;color:var(--ok-text)}.notice.warning{background:var(--warning-bg);border-color:#edc783;color:var(--warning)}.notice.danger{background:var(--danger-bg);border-color:#f0b9ae;color:var(--danger)}.modal-backdrop{position:fixed;inset:0;background:#1f23206b;display:grid;place-items:center;padding:20px}.qr-dialog{width:min(420px,100%);border:1px solid var(--border);border-radius:8px;padding:18px;background:var(--surface)}.qr-image{width:min(280px,100%);aspect-ratio:1;display:block;margin:10px auto 18px;border:1px solid var(--border)}@media(max-width:900px){.kiosk-header{min-height:68px;padding:12px 14px;align-items:flex-start;flex-direction:column}.kiosk-actions{width:100%}.kiosk-actions button{flex:1}.kiosk-reader{min-height:calc(100vh - 140px)}.kiosk-manual{min-height:72px;padding:12px 14px;grid-template-columns:1fr}.kiosk-manual input{max-width:none;justify-self:stretch}.scan-feedback strong{font-size:104px}.scan-feedback p{font-size:22px}.topbar{min-height:auto;padding:14px 16px;align-items:flex-start;flex-direction:column}.tabs{width:100%;overflow-x:auto;padding-bottom:2px}.tab{flex:1 0 92px}.workspace,.notice{width:calc(100% - 24px)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-layout,.participant-form,.survey-grid,.choice-grid,.form-grid,.filters{grid-template-columns:1fr}.registration-header{min-height:auto;padding:14px 16px;align-items:flex-start;flex-direction:column}.registration-panel{width:calc(100% - 24px);padding:16px}.panel{padding:16px}.panel-side{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:16px}}
