:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:#1e3433;background:#f1f5f3;line-height:1.65;font-size:16px}*{box-sizing:border-box}body{margin:0}header{padding:22px max(20px,calc((100vw - 1040px)/2));background:#174b48;color:white;display:flex;justify-content:space-between;align-items:center;gap:16px}h1{font-size:25px;margin:0}h2{font-size:22px;margin:0 0 16px}h3{margin-top:30px}p{margin:8px 0 18px}.eyebrow{font-size:10px;letter-spacing:.18em;opacity:.75}main{max-width:1080px;padding:24px 20px;margin:auto}.card{background:white;border:1px solid #d8e4df;border-radius:16px;padding:26px;margin-bottom:20px}.narrow{max-width:480px;margin:28px auto}label{display:block;font-weight:600;margin-bottom:16px}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #b8cbc4;border-radius:8px;font:inherit;background:#fff;color:#1e3433;margin-top:6px}textarea{resize:vertical}button,.button{cursor:pointer;display:inline-block;border:1px solid transparent;border-radius:9px;padding:12px 19px;background:#17655c;color:white;font:inherit;font-weight:600;text-decoration:none;text-align:center;min-height:48px}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#edf4ef;color:#174b48;border-color:#c7d9cf}.danger{background:#fff0ed;color:#9c2f25;border-color:#edc0b7}.ghost{background:transparent;border-color:#92ada5;color:white}.toolbar,.sectionTitle{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar label{margin:0}.grow{flex:1;min-width:220px}.sectionTitle{justify-content:space-between;margin-bottom:12px}.sectionTitle h2{margin:0}.muted{color:#5a726c;font-size:14px}.error{color:#a32e27}nav{display:flex;gap:8px;margin:0 0 20px}nav button{background:#e1ebe5;color:#405e55}nav button.active{background:#174b48;color:white}.pill{font-size:12px;padding:5px 12px;background:#edf4ef;border-radius:50px}.camera{background:#173431;border-radius:12px;min-height:230px;position:relative;overflow:hidden;max-width:560px;margin:auto auto 18px}.camera video{width:100%;max-height:440px;display:block;object-fit:cover}.camera #cameraHint{color:white;padding:70px 20px;text-align:center}.camera.live #cameraHint{display:none}#scanResult{border-radius:12px;padding:0;margin:16px 0;font-size:22px;font-weight:700}#scanResult.success{background:#e3f5e8;color:#136638;padding:20px}#scanResult.failure{background:#fff0ed;color:#a32e27;padding:20px}#scanResult.pending{background:#fff6db;color:#785a13;padding:20px}details{margin-top:20px}summary{cursor:pointer;font-weight:600}details form{margin-top:20px}input[type=file]{font-size:14px}.total{background:#174b48;color:white;border-radius:12px;padding:20px 28px;display:flex;align-items:baseline;gap:12px}.total strong{font-size:64px;line-height:1.2;margin-left:auto}.regionGrid,.ticketGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:20px 0}.regionStat{padding:20px;background:#f1f5f3;border-radius:12px;display:flex;justify-content:space-between;align-items:center}.regionStat strong{font-size:28px}.ticket{border:1px solid #d8e4df;border-radius:12px;padding:12px;text-align:center}.ticket canvas{display:block;width:100%;height:auto;margin-bottom:12px}.ticket button{width:100%}.logRow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e4ece7}.logRow span{flex:1}.logRow small{display:block;color:#667c75}.logRow button{font-size:14px;padding:6px 14px;min-height:40px}dialog{border:1px solid #c8d8d0;border-radius:16px;padding:26px;width:min(94vw,560px);max-height:92vh;overflow:auto}dialog::backdrop{background:#102c2580}footer{text-align:center;font-size:12px;color:#687f75;padding:20px}#notice{padding:14px 20px;background:#fff2d4;border-radius:9px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #dfad35;outline-offset:3px}[hidden]{display:none!important}@media(max-width:600px){header{padding:16px}h1{font-size:21px}main{padding:16px 12px}.card{padding:20px 16px}nav button{flex:1;padding:10px 8px;font-size:14px}.toolbar>button{flex:1}.total strong{font-size:52px}.camera{min-height:180px}.regionGrid{grid-template-columns:1fr 1fr}.regionStat{padding:14px;display:block}.regionStat strong{display:block}.ticketGrid{grid-template-columns:1fr}}

/* v1.1: camera feedback stays directly over the area staff are watching. */
.soundOption{display:flex;align-items:center;gap:9px;font-size:14px;margin:10px 0}.soundOption input{display:inline-block;width:20px;height:20px;margin:0;accent-color:#17655c}
.camera{border:4px solid #557a70;isolation:isolate}.camera video{max-height:42vh;max-height:42svh;min-height:220px;object-fit:cover}.camera:not(.live) video{display:none}
.cameraState{position:absolute;top:12px;left:12px;z-index:3;background:#173431e8;color:white;border-radius:40px;padding:6px 13px;font-size:14px;font-weight:700}
.camera[data-state=searching]{border-color:#24b9de}.camera[data-state=searching] .cameraState{background:#075e78}.camera[data-state=searching] .cameraState::before{content:'●';margin-right:7px;color:#79eaff}
.camera[data-state=success]{border-color:#27ba67}.camera[data-state=failure]{border-color:#df5445}.camera[data-state=pending]{border-color:#d9a22b}
.cameraFeedback{position:absolute;inset:0;z-index:2;background:#07512ff5;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:52px 16px 16px;gap:8px;overflow:auto}
.feedbackIcon{border:3px solid currentColor;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;font-size:42px;line-height:1;flex-shrink:0}.cameraFeedback strong{font-size:clamp(26px,6vw,38px);line-height:1.2}.cameraFeedback #feedbackDetail{font-size:clamp(18px,4.6vw,25px);font-weight:700;overflow-wrap:anywhere}.cameraFeedback small{font-size:12px;opacity:.9}
.camera[data-state=failure] .cameraFeedback{background:#7e241ef5}.camera[data-state=pending] .cameraFeedback{background:#624b12f5}
.scanActions{max-width:560px;margin:0 auto 14px}.scanActions button{width:100%;font-size:20px;min-height:58px}.scanActions #nextScan{background:#17655c;border:2px solid #104e46}
#scanResult.searching{background:#e4f7fc;color:#075e78;padding:14px;font-size:18px}#scanResult.success{border:2px solid #27ba67}#scanResult:empty{display:none}
@media(max-width:600px){.camera video{min-height:230px}.cameraFeedback{gap:7px}.feedbackIcon{width:50px;height:50px;font-size:34px}.scanActions>button{flex-basis:100%}}

/* v1.2: participant check-in and survey */
nav{flex-wrap:wrap}nav button{font-size:14px}.participantMain{max-width:680px}.participant header{padding:22px max(20px,calc((100vw - 640px)/2))}.participant h1{font-size:23px}.participant dialog{width:min(94vw,560px)}.participant dialog button{width:100%}
.plainText{white-space:pre-wrap;overflow-wrap:anywhere}.participantNotice{padding:16px;background:#f1f5f3;border-radius:10px;margin:18px 0}.participantNotice h3{margin:0 0 10px;font-size:17px}.errorBox{padding:20px;background:#fff0ed;color:#8b2c22;border-radius:12px;white-space:pre-wrap}.receiptCard{text-align:center;border:2px solid #27ba67;background:#edfaf1}.receiptCheck{display:block;color:#167046;font-size:60px;font-weight:700;line-height:1.3}.participant #receiptInfo{font-size:22px;font-weight:700}.participant label{overflow-wrap:anywhere}
.posterPreview{max-width:340px;margin:18px 0}.posterPreview canvas{width:100%;height:auto}.dataTableWrap{overflow:auto;margin:18px 0}.dataTable{width:100%;border-collapse:collapse;font-size:14px}.dataTable th,.dataTable td{text-align:left;border-bottom:1px solid #d8e4df;padding:10px;white-space:nowrap}.answerCard{border:1px solid #d8e4df;border-radius:10px;padding:16px;margin:16px 0}.answerCard h4{margin:0 0 12px}.answerCard dt{font-weight:700;margin-top:12px;white-space:pre-wrap}.answerCard dd{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}#selfSettingsForm{max-width:700px}#selfPosterBox{border-top:1px solid #d8e4df;margin-top:24px}#selfJoinUrl{font-size:13px}
/* Independent venue QR app */
.levelLabels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pathRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:center;margin:10px 0}.pathRow input{margin:0;min-width:0}.pathRow button{font-size:13px;padding:8px 10px}.logRow small{overflow-wrap:anywhere}#eventForm{max-width:900px}
@media(max-width:600px){.levelLabels{grid-template-columns:1fr}.pathRow{grid-template-columns:1fr;gap:6px;background:#f1f5f3;border-radius:10px;padding:12px}.pathRow button{justify-self:end}.logRow{align-items:flex-start}.participant #receiptName{font-size:24px;font-weight:700}}

/* v1.2: two-level organization presets */
.levelLabels{grid-template-columns:repeat(2,minmax(0,1fr))}.pathRow{grid-template-columns:repeat(2,minmax(0,1fr)) auto}@media(max-width:600px){.levelLabels,.pathRow{grid-template-columns:1fr}}

/* v1.3: dashboard and individual notice acknowledgement */
.dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.metric{border-radius:12px;padding:18px;background:#edf4ef;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px}.metric:first-child{background:#174b48;color:white}.metric>span:first-child{width:100%;font-weight:600;font-size:14px}.metric strong{font-size:42px;line-height:1.4}.statsDetails{border:1px solid #d8e4df;border-radius:10px;margin:16px 0;padding:16px}.statsDetails>summary{padding:4px 0}.statsDetails[open]>summary{margin-bottom:18px}.noticeCheck{display:flex;align-items:flex-start;gap:12px;background:white;border:1px solid #c5d8cf;border-radius:8px;padding:14px;margin:10px 0;font-weight:400}.noticeCheck input{width:24px;height:24px;flex:0 0 24px;margin:1px 0;accent-color:#17655c}.noticeCheck span{white-space:pre-wrap;overflow-wrap:anywhere}.answerCard summary{overflow-wrap:anywhere}.answerCard .answerMeta{color:#5a726c;font-size:13px;font-weight:400;display:block}.toolbar input{min-width:0}@media(max-width:650px){.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:14px}.metric strong{font-size:36px}}

/* v1.3.1: arrival counts first, answer excerpts, meeting title and deadline */
.selectedEvent{border-left:6px solid #17655c}.selectedEvent .eyebrow{color:#486e63;font-size:12px;letter-spacing:.08em;margin:0 0 6px}.selectedEvent h2{font-size:clamp(26px,4vw,36px);line-height:1.4;margin:0 0 12px;overflow-wrap:anywhere}.selectedEvent p:last-child{margin-bottom:0}.attendanceDashboard>h3,.surveyDashboard>h3{margin:0 0 14px}.overallMetric{background:#174b48;color:white;margin:14px 0 20px;padding:22px 26px}.overallMetric strong{font-size:64px}.arrivalGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.arrivalMetric{background:#edf4ef;border:1px solid #d8e4df;border-radius:12px;padding:16px;min-width:0}.arrivalMetric small{display:block;color:#526e63}.arrivalName{display:block;font-weight:700;overflow-wrap:anywhere}.arrivalMetric strong{font-size:34px;margin-right:6px}.attendanceDashboard h4{margin:20px 0 10px}.surveyDashboard{border-top:3px solid #c7d9cf;margin-top:28px;padding-top:26px}.surveyDashboard .dashboard{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 24px}.surveyDashboard .metric:first-child{background:#e9f0f8;color:#203f5d}.surveyDashboard .metric{background:#f3f5f7}.answerPreview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;max-height:3.2em;line-height:1.6;white-space:normal;font-size:14px;font-weight:400;color:#294a40;margin-top:9px;overflow-wrap:anywhere}.answerCard[open] .answerPreview{display:none}.surveyDeadline{background:#fff3ce;border:2px solid #b4770e;border-radius:12px;padding:18px;margin:0 0 20px;color:#603c00}.surveyDeadline>span{display:block;font-size:14px;font-weight:700}.surveyDeadline strong{display:block;font-size:22px;line-height:1.5;margin-top:6px;overflow-wrap:anywhere}.surveyDeadline.deadlineClosed{background:#f2f2f2;border-color:#7b8581;color:#44534d}@media(max-width:650px){.overallMetric strong{font-size:52px}.arrivalGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.arrivalMetric{padding:12px}.surveyDashboard .dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.surveyDeadline strong{font-size:20px}}

/* v1.3.2: preview before copying meeting notices */
.noticeSourcePreview{background:#f1f5f3;border:1px solid #d8e4df;border-radius:8px;padding:16px;max-height:260px;overflow:auto;margin:12px 0}

/* v1.5: level names and inclusion settings */
.levelSetting{background:#f1f5f3;padding:14px;border-radius:10px}.levelSetting label:last-child{margin-bottom:0}

/* v1.6: survey confirmation in the deadline panel */
.surveyDeadline.surveySent{background:#e8f5ed;border-color:#287349;color:#174b34}.surveySent>span{font-size:1.35rem;font-weight:700}.surveySent>strong{font-size:1rem;line-height:1.7}

/* v1.6.1: municipality breakdowns start collapsed per prefecture. */
.areaDisclosureList{display:grid;gap:12px}.areaDisclosureList .areaDetails{margin:0}.areaDetails>summary{font-weight:700;cursor:pointer}.areaDetails>.arrivalGrid{margin-top:14px}

/* v1.7: reversible event deletion */
.trashRow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #d8e4df}.trashRow span{overflow-wrap:anywhere}.trashRow button{flex-shrink:0}#eventLifecycleDialog{width:min(580px,calc(100% - 32px));border:0;border-radius:16px;padding:24px}#eventLifecycleDialog::backdrop{background:#0007}
