:root{color:#111827;background:#f6f7f9;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.download{align-items:center;background:#146c63;border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;min-height:40px;padding:0 14px;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.55}button.secondary{background:#344054}button.danger{background:#b42318}button.textButton{background:transparent;color:#344054;font-size:13px;min-height:28px;padding:0}.loading{align-items:center;display:flex;min-height:100vh;justify-content:center;font-weight:800}.authPage{align-items:center;background:#f6f7f9;display:flex;min-height:100vh;justify-content:center;padding:20px}.authCard{background:#fff;border:1px solid #e4e7ec;border-radius:8px;box-shadow:0 16px 40px #10182814;display:grid;gap:16px;max-width:460px;padding:28px;width:100%}.authCard h1,.authCard p{margin:0}.authCard p{color:#475467;line-height:1.55}.authInfo{background:#f9fafb;border:1px solid #eef0f3;border-radius:8px;display:grid;gap:6px;padding:12px}.authInfo span{color:#475467}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#10201e;color:#fff;min-width:0;padding:24px 18px}.brand{align-items:center;display:flex;gap:12px;margin-bottom:28px}.brandMark{align-items:center;background:#f2c94c;border-radius:8px;color:#10201e;display:flex;font-weight:900;height:48px;justify-content:center;width:48px}.brand strong,.brand span{display:block}.brand span{color:#b8c7c3;font-size:13px;margin-top:3px}nav{display:grid;gap:8px}nav button{background:transparent;color:#d9e4e1;justify-content:flex-start;min-height:44px;width:100%}nav button.active{background:#1f3a36;color:#fff}.main{min-width:0;padding:28px}.topbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.topbar p,.topbar h1{margin:0}.topbar p,.muted{color:#667085}.topbar h1{font-size:30px;letter-spacing:0}.operator{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.operator span{color:#667085;font-size:13px}.operator button{align-self:flex-end}.metrics{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.metric,.panel{background:#fff;border:1px solid #e4e7ec;border-radius:8px;box-shadow:0 1px 2px #1018280a}.metric{padding:18px}.metric span,.metric p{color:#667085;margin:0}.metric strong{display:block;font-size:32px;letter-spacing:0;margin:8px 0 4px}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:18px}.panelTitle{align-items:center;display:flex;justify-content:space-between;gap:14px;margin-bottom:18px}.panelTitle>div{align-items:center;display:flex;gap:9px}.panelTitle h2{font-size:17px;margin:0}.panelTitle span{background:#eef5f3;border-radius:999px;color:#146c63;font-size:13px;font-weight:800;padding:6px 10px}.chartPanel{min-height:340px}.focusGrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.statusCard{align-items:flex-start;background:#f9fafb;border:1px solid #e4e7ec;color:#344054;display:grid;gap:5px;justify-items:flex-start;min-height:126px;padding:12px;text-align:left}.statusCard.selected{border-color:#146c63;box-shadow:0 0 0 2px #146c6329}.statusCard.open{background:#ecfdf3}.statusCard.completed{background:#f2f4f7}.statusCard span,.statusCard em,.statusCard small{color:#667085;font-style:normal}.statusCard strong{color:#101828;font-size:24px}.statusCard.focus{min-height:142px}.emptyState{background:#f9fafb;border:1px dashed #d0d5dd;border-radius:8px;color:#667085;display:grid;gap:4px;padding:16px}.emptyState strong{color:#344054}.dateTabs{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;padding-bottom:2px}.dateTabs button{background:#f9fafb;border:1px solid #e4e7ec;color:#344054;flex:0 0 auto;gap:8px;min-height:40px}.dateTabs button.active{background:#146c63;border-color:#146c63;color:#fff}.dateTabs span{background:#ffffffb8;border-radius:999px;color:#344054;font-size:12px;padding:3px 7px}.eventList{display:grid;gap:8px}.eventRow{align-items:center;background:#fff;border:1px solid #e4e7ec;color:#344054;display:grid;gap:12px;grid-template-columns:56px minmax(0,1fr) 86px 56px 150px;min-height:64px;padding:10px 12px;text-align:left}.eventRow.selected{border-color:#146c63;box-shadow:0 0 0 2px #146c631f}.eventRow time,.eventRow b{color:#101828;font-weight:900}.eventRow span,.eventRow small{color:#667085}.eventRow em{border-radius:999px;font-size:12px;font-style:normal;font-weight:900;justify-self:start;padding:5px 8px}.eventRow em.open{background:#ecfdf3;color:#05603a}.eventRow em.pending{background:#eef4ff;color:#3538cd}.eventRow em.completed,.eventRow em.inactive{background:#f2f4f7;color:#667085}.statusDetail{border-top:1px solid #eef0f3;display:grid;gap:12px;padding-top:16px}.statusDetail span,.statusDetail p{color:#667085;margin:0}.ratioBar{background:#eef0f3;border-radius:999px;height:12px;overflow:hidden}.ratioBar span{background:#146c63;display:block;height:100%}.missingList{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:260px;overflow:auto}.missingList span{background:#fff;border:1px solid #e4e7ec;border-radius:8px;color:#344054;padding:8px 10px}.noticeList,.timeline,.reportList{display:grid;gap:12px}.notice{border-left:4px solid #f2c94c;padding:2px 0 2px 12px}.notice.urgent{border-left-color:#d92d20}.notice strong,.notice span,.notice p{display:block}.notice p{color:#475467;margin:5px 0}.notice span{color:#667085;font-size:13px}.field{color:#344054;display:grid;font-weight:800;gap:8px}select,input,textarea{background:#fff;border:1px solid #d0d5dd;border-radius:8px;padding:0 12px;width:100%}input,select{min-height:42px}textarea{line-height:1.45;min-height:120px;padding:10px 12px;resize:vertical}.qrReader{margin:18px 0;min-height:96px}.eventSummary{background:#f9fafb;border:1px solid #e4e7ec;border-radius:8px;display:grid;gap:4px;margin-top:12px;padding:12px}.eventSummary strong{color:#146c63;font-size:28px}.eventSummary span{color:#475467}.eventSummary em{color:#b42318;font-style:normal;font-weight:800}.mutedBox em{color:#667085}.buttonRow{display:flex;gap:10px}.errorText{color:#b42318;font-weight:700}.manualForm,.searchBox{align-items:center;display:flex;gap:10px}.manualForm input{flex:1}.checkResult{border-radius:8px;margin:16px 0;padding:14px}.checkResult.checked{background:#ecfdf3;color:#05603a}.checkResult.duplicate{background:#fffaeb;color:#93370d}.checkResult.not_found,.checkResult.not_target,.checkResult.event_not_found,.checkResult.event_closed{background:#fef3f2;color:#b42318}.checkResult strong,.checkResult span{display:block}.checkResult span{margin-top:5px}.recent{margin-top:18px}.recent h3{font-size:15px}.recentRow{align-items:center;border-top:1px solid #eef0f3;display:grid;gap:8px;grid-template-columns:18px 1fr auto;padding:10px 0}.recentRow time{color:#667085;font-size:13px}.searchBox{background:#f9fafb;border:1px solid #e4e7ec;border-radius:8px;margin-bottom:16px;padding:8px 12px}.searchBox input{border:0;min-height:32px;padding:0}.tableWrap{overflow-x:auto}table{border-collapse:collapse;min-width:960px;width:100%}th{color:#667085;font-size:12px;text-align:left;text-transform:uppercase}td,th{border-bottom:1px solid #eef0f3;padding:12px 10px;vertical-align:middle}td span{color:#667085;display:block;font-size:13px;margin-top:3px}.status,.chip{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:5px 9px}.status.confirmed{background:#ecfdf3;color:#05603a}.status.separate{background:#fff6ed;color:#b54708}.status.pending{background:#eef4ff;color:#3538cd}.iconText{min-height:34px}.timelineItem,.reportList article{align-items:center;border:1px solid #eef0f3;border-radius:8px;display:grid;gap:14px;grid-template-columns:110px 1fr auto;padding:14px}.timelineItem time,.timelineItem span,.reportList span{color:#667085}.timelineItem strong,.timelineItem span,.reportList strong,.reportList span{display:block}.timelineItem em{color:#146c63;font-style:normal;font-weight:800}.scheduleCalendar{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.dayColumn{background:#f9fafb;border:1px solid #eef0f3;border-radius:8px;min-width:0;overflow:hidden}.dayHeader{align-items:center;background:#10201e;color:#fff;display:flex;justify-content:space-between;padding:12px 14px}.dayHeader span{color:#b8c7c3;font-size:13px}.dayEvents{display:grid;gap:8px;padding:10px}.calendarEvent{background:#fff;border-left:4px solid #98a2b3;border-radius:8px;box-shadow:0 1px 1px #1018280a;display:grid;gap:4px;padding:10px}.calendarEvent time{color:#475467;font-size:12px;font-weight:800}.calendarEvent strong{color:#111827;line-height:1.35}.calendarEvent span{color:#667085;font-size:13px;line-height:1.35}.calendarEvent em{color:#146c63;font-size:12px;font-style:normal;font-weight:800}.calendarEvent.lecture{border-left-color:#146c63}.calendarEvent.transport{border-left-color:#2e90fa}.calendarEvent.worship{border-left-color:#7a5af8}.calendarEvent.arrival,.calendarEvent.departure{border-left-color:#f79009}.route{align-items:center;display:grid;gap:10px;grid-template-columns:1fr auto 1fr;margin-bottom:12px}.route span{background:#eef5f3;border-radius:999px;color:#146c63;font-weight:900;padding:7px 10px}.chipRow{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chip{background:#f2f4f7;color:#344054}.staffList,.adminForm{display:grid;gap:12px}.adminTabs{background:#fff;border:1px solid #e4e7ec;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:8px}.adminTabs button{background:transparent;color:#344054}.adminTabs button.active{background:#146c63;color:#fff}.formGrid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.checkField{align-items:center;color:#344054;display:flex;font-weight:800;gap:8px}.checkField input{min-height:auto;width:auto}.adminList{display:grid;gap:12px;max-height:620px;overflow:auto;padding-right:4px}.divider{background:#eef0f3;height:1px;margin:4px 0}.schemaList{display:grid;gap:12px}.schemaList article,.importResult{background:#f9fafb;border:1px solid #eef0f3;border-radius:8px;padding:12px}.schemaList strong,.schemaList span,.importResult strong,.importResult span{display:block}.schemaList span,.importResult span,.importResult p{color:#667085;margin-top:4px}.importResult{background:#ecfdf3;color:#05603a}.adminItem{border:1px solid #eef0f3;border-radius:8px;display:grid;gap:12px;grid-template-columns:1fr auto;padding:12px}.adminItem strong,.adminItem span{display:block}.adminItem span,.adminItem p{color:#667085}.adminItem p{margin:6px 0 0}.itemActions{align-items:flex-start;display:flex;gap:8px}.staffRow{align-items:center;border:1px solid #eef0f3;border-radius:8px;display:grid;gap:12px;grid-template-columns:1fr 140px;padding:12px}.staffRow strong,.staffRow span{display:block}.staffRow span{color:#667085;font-size:13px;margin-top:3px}@media(max-width:920px){.shell{grid-template-columns:1fr}.sidebar{max-width:100vw;overflow:hidden;padding:12px;position:static;width:100%}.brand{margin-bottom:12px}nav{display:flex;gap:8px;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:2px}nav button{flex:0 0 auto;width:auto}.main{max-width:100vw;overflow-x:hidden;padding:18px;width:100%}.topbar{align-items:flex-start;flex-direction:column;gap:12px}.operator{align-items:flex-start}.operator button{align-self:flex-start}.metrics,.grid.two{grid-template-columns:1fr}.timelineItem,.reportList article,.adminItem,.eventRow{align-items:flex-start;grid-template-columns:1fr}.formGrid{grid-template-columns:1fr}}@media(max-width:640px){.authCard,.panel,.metric{padding:14px}.topbar h1{font-size:24px}.manualForm,.buttonRow{align-items:stretch;flex-direction:column}.manualForm button,.buttonRow button,.adminForm button,.iconText{justify-content:center;width:100%}.searchBox{align-items:flex-start}table{min-width:0}thead{display:none}tbody,tr,td{display:block}tr{border:1px solid #eef0f3;border-radius:8px;margin-bottom:12px;padding:8px}td{border-bottom:0;display:grid;gap:8px;grid-template-columns:82px 1fr;padding:8px}td:before{color:#667085;content:attr(data-label);font-size:12px;font-weight:800;text-transform:uppercase}.staffRow{grid-template-columns:1fr}.staffRow select{width:100%}.itemActions{flex-direction:column}.itemActions button{justify-content:center;width:100%}}
