:root{--bg:#f4f6f8;--panel:#fff;--line:#d7dde5;--line2:#e7ebf0;--text:#172033;--muted:#697386;--navy:#153b6b;--navy2:#0f2d52;--blue:#2563a7;--accent:#2f6f9f;--green:#2f7d62;--orange:#ad6138;--shadow:0 8px 28px rgba(29,43,67,.08);--r:10px}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1440px)/2));position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px}.brandmark{width:34px;height:34px;border-radius:7px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:.5px}.brand b,.brand small{display:block}.brand b{font-size:14px}.brand small{font-size:10px;color:var(--muted);margin-top:1px}.topbar nav{display:flex;align-items:center;gap:4px}.topbar nav a{padding:8px 10px;border-radius:6px;font-size:13px;color:#4a5568}.topbar nav a:hover,.topbar nav .adminlink{background:#eef3f8;color:var(--navy)}.shell{max-width:1440px;margin:0 auto;padding:26px 20px 60px}.hero,.pagehead,.adminhead{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.hero{background:linear-gradient(135deg,#173b68,#24517f);color:#fff;padding:30px;border-radius:12px;box-shadow:var(--shadow)}.hero h1,.pagehead h1,.adminhead h1{margin:5px 0 6px;font-size:28px;letter-spacing:-.5px}.hero p,.pagehead p,.adminhead p{margin:0;color:inherit;opacity:.74;font-size:14px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;opacity:.72}.daypill{border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.1);padding:9px 14px;border-radius:999px;font-weight:700}.tabs{display:flex;gap:4px;background:#e9edf2;border:1px solid var(--line);padding:4px;border-radius:8px;width:max-content;margin:0 0 18px}.tabs a{padding:8px 18px;border-radius:5px;font-size:13px;font-weight:600;color:#667085}.tabs a.active{background:white;color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.08)}.findbox,.panel,.infobox{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 2px 8px rgba(26,38,56,.03)}.findbox{padding:20px;max-width:760px}.findbox label,label{display:block;font-size:12px;font-weight:700;color:#465267;margin-bottom:7px}.searchrow{display:flex;gap:8px}.searchrow input{flex:1}.findbox small{display:block;color:var(--muted);margin-top:8px}input,select,textarea{width:100%;border:1px solid #c9d1dc;border-radius:6px;background:#fff;padding:10px 11px;font:inherit;font-size:14px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#6b93bd;box-shadow:0 0 0 3px rgba(37,99,167,.1)}button,.linkbtn,.adminactions>a{border:0;border-radius:6px;background:var(--navy);color:#fff;padding:10px 14px;font-weight:700;font-size:13px;cursor:pointer}.secondary{background:#e9edf2;color:#334155}.sectionhead{display:flex;align-items:center;justify-content:space-between;margin:25px 0 10px}.sectionhead h2{font-size:16px;margin:0}.sectionhead span{font-size:12px;color:var(--muted)}.mobilecards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.assignment-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 2px 6px rgba(35,48,70,.04)}.cardtop{display:flex;justify-content:space-between;gap:12px}.cardtop h3{margin:9px 0 3px;font-size:19px}.cardtop p{margin:0;color:var(--muted);font-size:12px}.zone{display:inline-flex;background:#eef3f8;color:#315b83;border:1px solid #dce5ef;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:800;text-transform:uppercase}.position,.focuspos{font-size:26px;font-weight:800;color:var(--navy);min-width:50px;text-align:right}.details{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);margin:14px 0}.details div{padding:11px 0}.details span,.details b{display:block}.details span{font-size:10px;color:var(--muted);text-transform:uppercase}.details b{font-size:12px;margin-top:3px}.note{font-size:12px;background:#fff8e9;border:1px solid #f3e2bd;padding:9px;border-radius:6px;color:#76552c;margin-bottom:10px}.mapbtn{font-size:12px;font-weight:700;color:var(--blue)}.quicklinks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}.quicklinks a{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.quicklinks b,.quicklinks span{display:block}.quicklinks span{font-size:12px;color:var(--muted);margin-top:4px}.empty{background:#fff;border:1px dashed #c7d0db;border-radius:10px;padding:32px;text-align:center}.empty b,.empty span{display:block}.empty span{font-size:12px;color:var(--muted);margin-top:5px}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f5f7f9;text-align:left;color:#536176;font-size:11px;text-transform:uppercase;letter-spacing:.04em}th,td{padding:11px 12px;border-bottom:1px solid var(--line2);white-space:nowrap}td small{display:block;color:var(--muted);margin-top:2px}.posbadge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;border-radius:12px;background:#e9f0f7;color:#1f527f;font-weight:800;font-size:11px}.mapfocus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin-bottom:12px}.mapfocus span,.mapfocus b{display:block}.mapfocus span{font-size:10px;color:var(--muted);text-transform:uppercase}.mapfocus b{font-size:13px;margin-top:2px}.mapframe{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;overflow:auto;text-align:center}.mapframe img{max-width:100%;height:auto;min-width:680px}.maphint{text-align:center;color:var(--muted);font-size:11px;margin-top:8px}.loginwrap{min-height:70vh;display:grid;place-items:center}.loginpanel{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:var(--shadow)}.loginpanel h1{font-size:24px;margin:7px 0}.loginpanel p{font-size:13px;color:var(--muted);line-height:1.5}.loginpanel label{margin-top:18px}.loginpanel button{width:100%;margin-top:10px}.loginpanel>a{display:block;text-align:center;margin-top:14px;color:var(--muted);font-size:12px}.validation{color:#a23d3d;font-size:12px}.adminhead{border-bottom:1px solid var(--line);padding-bottom:18px}.adminactions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.adminactions form{margin:0;flex:0 0 auto}.adminactions>a,.adminactions button{background:#fff;color:#3d4a5e;border:1px solid var(--line);white-space:nowrap;word-break:keep-all;line-height:1.15;flex:0 0 auto;min-width:max-content}.board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:10px;overflow:auto;padding-bottom:10px}.lane{background:#e9edf2;border:1px solid #d2d9e2;border-radius:8px;min-height:520px}.lane>header{height:48px;padding:0 10px;border-bottom:1px solid #d2d9e2;display:flex;align-items:center;justify-content:space-between}.lane>header>div{display:flex;align-items:center;gap:8px}.lane>header b{font-size:12px}.lane>header>span{font-size:11px;color:var(--muted);background:#fff;border:1px solid var(--line);padding:2px 6px;border-radius:10px}.laneicon{width:24px;height:24px;border-radius:5px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:10px;font-weight:900;color:var(--navy)}.dropzone{min-height:470px;padding:8px}.dropzone.over{background:#dce7f1}.personcard{background:#fff;border:1px solid #cfd6df;border-radius:6px;margin-bottom:7px;padding:9px;display:grid;grid-template-columns:16px 1fr auto;gap:7px;align-items:center;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.03)}.personcard:hover{border-color:#8faac4}.personcard.dragging{opacity:.45}.draghandle{color:#9aa6b5;cursor:grab}.personmain b,.personmain span{display:block}.personmain b{font-size:12px}.personmain span{font-size:10px;color:var(--muted);margin-top:2px}.cardmeta{text-align:right}.cardmeta small{display:block;color:var(--muted);font-size:9px;margin-top:3px;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}dialog{border:0;border-radius:10px;padding:0;width:min(620px,calc(100% - 24px));box-shadow:0 28px 90px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(12,22,36,.48)}.dialoghead{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line)}.dialoghead h2{margin:3px 0 0;font-size:18px}.iconbtn{background:transparent;color:#536176;font-size:24px;padding:2px 7px}.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.fieldgrid .wide{grid-column:1/-1}.dialogactions,.formactions{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line2)}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:10px}.toolbar input{max-width:420px}.toolbar span{font-size:12px;color:var(--muted)}.status{font-size:10px;font-weight:800;padding:4px 7px;border-radius:10px}.status.ok{background:#e8f4ee;color:#2d6e57}.status.off{background:#eee;color:#666}.twocol{display:grid;grid-template-columns:2fr 1fr;gap:14px}.paneltitle{font-size:12px;font-weight:800;padding:13px 16px;border-bottom:1px solid var(--line2);text-transform:uppercase;color:#4b596d}.panel>.fieldgrid{padding:16px}.check{display:flex;align-items:center;gap:7px}.check input{width:auto}.dayrow{display:grid;grid-template-columns:72px 1fr 60px;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line2);font-size:12px}.dayrow small{grid-column:2/-1;color:var(--muted)}.infobox{padding:14px 16px;margin-bottom:12px}.infobox b,.infobox span{display:block}.infobox span{font-size:12px;color:var(--muted);margin-top:3px}.dangerlite{background:#fff1f1;color:#9a3333;border:1px solid #e7caca;padding:7px 10px}code{font-size:11px;color:#48566a}.toast{position:fixed;right:18px;top:76px;z-index:100;background:#1f2937;color:#fff;padding:10px 14px;border-radius:6px;font-size:12px;box-shadow:var(--shadow);transition:.25s}.toast.hide{opacity:0;transform:translateY(-6px);pointer-events:none}footer{max-width:1440px;margin:0 auto;border-top:1px solid var(--line);padding:18px 20px 28px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}
@media(max-width:900px){.topbar{height:auto;min-height:60px;padding:10px 14px;align-items:flex-start}.brand small{display:none}.topbar nav{overflow:auto;max-width:68vw}.topbar nav a{white-space:nowrap;padding:8px;font-size:11px}.shell{padding:18px 12px 45px}.hero{padding:20px}.hero h1,.pagehead h1,.adminhead h1{font-size:22px}.mobilecards{grid-template-columns:1fr}.quicklinks{grid-template-columns:1fr}.board{grid-template-columns:repeat(5,250px);margin:0 -12px;padding:0 12px 12px}.adminhead{display:block}.adminactions{margin-top:13px;overflow:auto}.adminactions>*{white-space:nowrap}.twocol{grid-template-columns:1fr}.tablewrap table{min-width:760px}.mapframe{margin:0 -12px;border-left:0;border-right:0;border-radius:0}.mapfocus{grid-template-columns:1fr auto}.mapfocus>div:last-child{grid-column:1/-1;margin-top:8px}.tabs{max-width:100%;overflow:auto}.tabs a{white-space:nowrap}.fieldgrid{grid-template-columns:1fr}.fieldgrid .wide{grid-column:auto}}
@media(max-width:560px){.hero{display:block}.daypill{display:inline-block;margin-top:14px}.searchrow{display:grid;grid-template-columns:1fr auto}.findbox{padding:15px}.assignment-card{padding:15px}.topbar nav a:nth-child(2){display:none}.pagehead{display:block}.mapframe img{min-width:600px}}
.rowactions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.rowactions form{margin:0}.rowactions button{padding:7px 10px}.splitactions{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center}.adminactions>button{background:#fff;color:#3d4a5e;border:1px solid var(--line)}
@media(max-width:560px){.splitactions{grid-template-columns:1fr 1fr}.splitactions span{display:none}.splitactions .dangerlite{grid-column:1/-1}.rowactions{justify-content:flex-start}}
/* Visual map operations */
.map-adminhead{margin-bottom:0}.map-workspace{display:grid;grid-template-columns:310px minmax(720px,1fr);gap:12px;align-items:start}.map-roster,.floor-panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 3px rgba(20,35,55,.04);overflow:hidden}.map-roster{position:sticky;top:72px;max-height:calc(100vh - 92px);display:flex;flex-direction:column}.map-roster-head{padding:12px;border-bottom:1px solid var(--line2)}.map-roster-head>div{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}.map-roster-head b{font-size:12px;text-transform:uppercase}.map-roster-head small{font-size:10px;color:var(--muted)}.map-roster-head input{padding:8px 9px}.map-roster-list{overflow:auto;padding:7px;background:#f4f6f8}.map-person-card{width:100%;border:1px solid #d3d9e1;background:#fff;color:var(--text);padding:8px;display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;text-align:left;margin-bottom:6px;border-radius:5px;touch-action:none;user-select:none}.map-person-card:hover{border-color:#8ca7c2;background:#fbfdff}.map-person-card.selected{border-color:#2d6e9f;box-shadow:0 0 0 2px rgba(45,110,159,.14);background:#f2f7fb}.map-avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:4px;background:#e7edf3;color:#34546f;font-size:11px;font-weight:800}.map-person-copy b,.map-person-copy small,.map-current b,.map-current small{display:block}.map-person-copy b{font-size:12px}.map-person-copy small,.map-current small{font-size:9px;color:var(--muted);margin-top:2px}.map-current{text-align:right}.map-current b{font-size:12px;color:#1f527f}.floor-toolbar{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line2);background:#fafbfc}.floor-toolbar>div:first-child b,.floor-toolbar>div:first-child span{display:block}.floor-toolbar b{font-size:12px}.floor-toolbar span{font-size:10px;color:var(--muted);margin-top:2px}.floor-toolbar span.error{color:#a23d3d}.floor-tools{display:flex;gap:6px}.compact{padding:7px 9px;font-size:10px}.compact.active{background:#dfeaf4;color:#234e73;border:1px solid #9db7ce}.floor-scroll{overflow:auto;max-height:calc(100vh - 210px);background:#e9edf1;padding:12px}.floor-canvas{position:relative;width:min(100%,830px);min-width:700px;margin:0 auto;background:#fff;box-shadow:0 2px 10px rgba(25,40,60,.10);line-height:0}.floor-canvas>img{width:100%;height:auto;display:block;pointer-events:none;user-select:none}.floor-pin{position:absolute;transform:translate(-50%,-50%);z-index:3;min-width:29px;min-height:29px;padding:0;border-radius:16px;border:2px solid #fff;background:#2d77ad;color:#fff;box-shadow:0 1px 5px rgba(0,0,0,.28);display:grid;place-items:center;line-height:1;touch-action:none}.floor-pin.empty-pin{background:#f5f7fa;color:#34546f;border-color:#8da3b7}.floor-pin:hover,.floor-pin.drop-target{z-index:8;transform:translate(-50%,-50%) scale(1.16);box-shadow:0 0 0 4px rgba(45,119,173,.18),0 2px 8px rgba(0,0,0,.24)}.floor-pin.moving-pin{z-index:20;cursor:grabbing;transform:translate(-50%,-50%) scale(1.18)}.pin-number{font-size:10px;font-weight:900;padding:7px}.pin-people{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);white-space:nowrap;background:rgba(22,35,50,.92);color:#fff;padding:4px 6px;border-radius:4px;font-size:9px;font-weight:700;line-height:1.1;box-shadow:0 1px 4px rgba(0,0,0,.2);pointer-events:none}.pin-edit-mode .floor-pin{cursor:grab;background:#8a5aa6}.map-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--line2);font-size:10px;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border:2px solid #8da3b7;border-radius:50%;margin-right:4px;vertical-align:-1px}.dot.filled{background:#2d77ad;border-color:#2d77ad}.select-sample{display:inline-block;width:14px;height:9px;border:2px solid #2d6e9f;margin-right:4px;vertical-align:-1px}.map-mobile-help{margin-left:auto}.map-drag-ghost{position:fixed;z-index:9999;pointer-events:none;background:#20364b;color:#fff;border-radius:5px;padding:7px 10px;font-size:11px;font-weight:700;box-shadow:0 5px 18px rgba(0,0,0,.25)}
.location-coords{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}.coord-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coord-grid label{margin:0}.checkline{display:flex;align-items:center;gap:8px;font-size:12px}.checkline input{width:auto}
@media(max-width:1000px){.map-workspace{grid-template-columns:260px minmax(680px,1fr)}}
@media(max-width:760px){.map-workspace{display:block}.map-roster{position:static;max-height:none;margin-bottom:10px}.map-roster-list{display:flex;gap:6px;overflow:auto;padding:7px}.map-person-card{min-width:210px;margin:0}.floor-scroll{max-height:none;padding:6px;margin:0 -1px}.floor-canvas{min-width:620px}.floor-toolbar{height:auto;min-height:54px;gap:8px}.floor-tools{flex-shrink:0}.map-mobile-help{width:100%;margin-left:0}.map-roster-head>div small{display:none}}
.public-map-scroll{overflow:auto;background:#e9edf1;border:1px solid var(--line);border-radius:8px;padding:8px}.public-map-canvas{position:relative;width:min(820px,100%);min-width:620px;margin:0 auto;line-height:0;background:#fff}.public-map-canvas img{display:block;width:100%;height:auto}.public-map-pin{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f6f8fa;border:2px solid #7f96aa;color:#31536f;font-size:9px;font-weight:900;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.18)}.public-map-pin.active{width:40px;height:40px;background:#155f96;color:#fff;border:4px solid #fff;font-size:14px;z-index:5;box-shadow:0 0 0 5px rgba(21,95,150,.24),0 3px 10px rgba(0,0,0,.28);animation:mapPulse 1.4s ease-in-out infinite}.map-callout{margin-top:10px;background:#edf5fb;border:1px solid #c8ddeb;border-radius:7px;padding:11px 13px}.map-callout b,.map-callout span{display:block}.map-callout b{font-size:13px}.map-callout span{font-size:11px;color:var(--muted);margin-top:3px}@keyframes mapPulse{50%{box-shadow:0 0 0 10px rgba(21,95,150,.08),0 3px 10px rgba(0,0,0,.28)}}
@media(max-width:560px){.public-map-scroll{margin:0 -12px;border-left:0;border-right:0;border-radius:0;padding:4px}.public-map-canvas{min-width:600px}}
/* Card-click assignment editing: no draggable map overlays */
.card-edit-workspace .map-person-card{touch-action:manipulation;cursor:pointer}.card-edit-workspace .plain-floor-map{min-width:700px}.card-edit-workspace .plain-floor-map>img{pointer-events:auto}.assignment-edit-dialog{width:min(560px,calc(100vw - 24px))}.password-required-field{padding-top:2px}.dialog-security-note{display:flex;gap:8px;align-items:flex-start;background:#f5f7f9;border:1px solid var(--line);border-radius:6px;padding:10px 12px}.dialog-security-note b{font-size:11px;white-space:nowrap}.dialog-security-note span{font-size:11px;color:var(--muted);line-height:1.45}.assignment-edit-dialog .validation{min-height:16px}.assignment-edit-dialog button:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.card-edit-workspace .map-roster-list{display:block;max-height:340px}.card-edit-workspace .map-person-card{min-width:0;margin-bottom:6px}.assignment-edit-dialog .fieldgrid{grid-template-columns:1fr}.assignment-edit-dialog .fieldgrid .wide{grid-column:auto}.card-edit-workspace .plain-floor-map{min-width:600px}}

/* Public schedule row editing */
.clickable-schedule .schedule-row{cursor:pointer;transition:background .12s ease,box-shadow .12s ease}.clickable-schedule .schedule-row:hover{background:#f4f8fc}.clickable-schedule .schedule-row:focus{outline:2px solid #6b93bd;outline-offset:-2px;background:#f4f8fc}.clickable-schedule .schedule-row td:first-child b::after{content:"  ·  클릭하여 수정";font-size:9px;font-weight:600;color:#8a96a8;opacity:0}.clickable-schedule .schedule-row:hover td:first-child b::after{opacity:1}.schedule-phone{position:relative;z-index:2}
@media(max-width:760px){.clickable-schedule .schedule-row td:first-child b::after{display:none}}

/* Role emphasis: supervisor group (감독 + 부감독) */
.clickable-schedule .schedule-row.role-supervisor{background:#edf3f8;box-shadow:inset 4px 0 0 #46647f}
.clickable-schedule .schedule-row.role-supervisor td:first-child b{color:#173b5d}
.clickable-schedule .schedule-row.role-supervisor td:first-child small{color:#46647f;font-weight:800}
.clickable-schedule .schedule-row.role-assistant-supervisor{background:#f7f4ec;box-shadow:inset 4px 0 0 #8a7956}
.clickable-schedule .schedule-row.role-assistant-supervisor td:first-child b{color:#51462f}
.clickable-schedule .schedule-row.role-assistant-supervisor td:first-child small{color:#7a6947;font-weight:800}
.clickable-schedule .schedule-row.role-supervisor:hover{background:#e5eef6}
.clickable-schedule .schedule-row.role-assistant-supervisor:hover{background:#f1ecdf}
/* Schedule notes + new attendant */
.pagehead-actions{display:flex;align-items:center;gap:8px}.pagehead-actions button{white-space:nowrap}.assignment-edit-dialog textarea{resize:vertical;min-height:88px}.person-add-dialog{width:min(650px,calc(100vw - 24px))}.person-add-dialog .dialogactions{display:flex;justify-content:flex-end;gap:8px}.notes-cell{max-width:430px;white-space:normal;line-height:1.4}.schedule-row .notes-cell:empty::after{content:"비고 없음";color:#a0a8b4;font-size:11px}@media(max-width:760px){.pagehead-actions{margin-top:12px}.pagehead-actions button{width:100%}.person-add-dialog .fieldgrid{grid-template-columns:1fr}.person-add-dialog .fieldgrid .wide{grid-column:auto}}

/* Supervisor group cards: 감독 + 부감독 use one visual treatment */
.personcard.supervisor-card{background:#edf3f8;border-color:#b9c9d8;box-shadow:inset 4px 0 0 #46647f,0 1px 2px rgba(0,0,0,.03)}.personcard.supervisor-card:hover{background:#e5eef6;border-color:#8faac4}

/* Headcount */
.count-pagehead{align-items:center}.count-nav{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.period-switch{display:flex;border:1px solid var(--line);background:#e9edf2;border-radius:8px;padding:4px;gap:4px}.period-switch a{min-width:92px;padding:7px 14px;border-radius:5px;text-align:center;color:#667085}.period-switch a b,.period-switch a span{display:block}.period-switch a b{font-size:12px}.period-switch a span{font-size:10px;margin-top:1px}.period-switch a.active{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.08)}.count-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px}.count-summary>div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:13px 15px}.count-summary span,.count-summary b{display:block}.count-summary span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.count-summary b{font-size:22px;color:var(--navy);margin-top:3px}.count-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.count-entry-panel{min-width:0}.count-group{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;overflow:hidden}.count-group-title{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:#f5f7f9;border-bottom:1px solid var(--line2)}.count-group-title h2{font-size:13px;margin:0}.count-group-title span{font-size:10px;color:var(--muted)}.count-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:0}.count-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line2);border-right:1px solid var(--line2)}.count-card-label b,.count-card-label span{display:block}.count-card-label b{font-size:12px}.count-card-label span{font-size:10px;color:var(--muted);margin-top:2px}.count-input-wrap{display:grid;grid-template-columns:34px 74px 34px;align-items:center;border:1px solid #c9d1dc;border-radius:6px;overflow:hidden;background:#fff}.count-input-wrap .count-step{height:38px;padding:0;border-radius:0;background:#eef2f6;color:#3e5268;font-size:18px}.count-input-wrap .count-input{height:38px;border:0;border-left:1px solid #d7dde5;border-right:1px solid #d7dde5;border-radius:0;text-align:center;font-weight:800;font-size:17px;padding:4px}.count-input::-webkit-inner-spin-button,.count-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.count-side{position:sticky;top:78px;padding:16px}.count-side-head{border-bottom:1px solid var(--line2);padding-bottom:12px;margin-bottom:14px}.count-side-head h2{font-size:18px;margin:3px 0 0}.count-side label{margin-bottom:13px}.count-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.count-actions button:first-child{grid-column:1/-1}.validation.ok{color:#2f7d62}.count-area-dialog{width:min(900px,calc(100vw - 24px))}.count-area-body{display:grid;grid-template-columns:1fr 330px;min-height:470px}.count-area-list{padding:10px;background:#f4f6f8;border-right:1px solid var(--line);overflow:auto;max-height:560px}.count-area-item{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);padding:9px 10px;margin-bottom:6px}.count-area-item span b,.count-area-item span small{display:block}.count-area-item span b{font-size:12px}.count-area-item span small{font-size:9px;color:var(--muted);margin-top:2px}.count-area-item em{font-style:normal;font-size:10px;color:#52708c}.count-area-editor{padding:16px}.count-area-editor label{margin-bottom:11px}.count-area-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:12px}.security-grid{display:grid;grid-template-columns:minmax(0,620px) minmax(260px,1fr);gap:14px}.security-panel,.security-help{padding:20px}.panel-title h2,.security-help h2{margin:4px 0 14px;font-size:18px}.security-form label{margin-bottom:14px}.security-note{display:flex;gap:10px;background:#f5f7f9;border:1px solid var(--line);padding:10px 12px;border-radius:6px}.security-note b{font-size:11px;white-space:nowrap}.security-note span{font-size:11px;line-height:1.5;color:var(--muted)}.security-error{margin-bottom:12px}.security-help p{font-size:12px;line-height:1.6;color:var(--muted)}
@media(max-width:900px){.count-layout{grid-template-columns:1fr}.count-side{position:static}.security-grid{grid-template-columns:1fr}.count-grid{grid-template-columns:1fr}.count-card{border-right:0}.count-nav{display:block}.period-switch{width:max-content;margin-bottom:14px}}
@media(max-width:600px){.count-pagehead{display:block}.count-pagehead .pagehead-actions{display:grid;grid-template-columns:1fr 1fr}.count-summary{grid-template-columns:1fr 1fr}.count-summary>div:first-child{grid-column:1/-1}.count-card{padding:10px}.count-input-wrap{grid-template-columns:36px 64px 36px}.count-area-body{display:block}.count-area-list{max-height:240px;border-right:0;border-bottom:1px solid var(--line)}.count-actions{grid-template-columns:1fr}.count-actions button:first-child{grid-column:auto}.topbar nav a{padding:7px 6px;font-size:11px}}

/* Headcount result / Main position editor */
.main-position-dialog{width:min(680px,calc(100vw - 24px))}.main-position-body{padding:18px;display:grid;gap:16px}.main-position-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.main-position-item{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line,#d9dee7);border-radius:8px;background:#f8fafc}.main-position-item span{font-weight:700;color:#4b5563}.main-position-item input{margin:0}.result-total-card{margin:18px 0;padding:24px;border:1px solid #cfd7e3;border-radius:12px;background:#f5f7fa;display:flex;align-items:baseline;gap:10px}.result-total-card span{margin-right:auto;font-weight:700;color:#4b5563}.result-total-card strong{font-size:42px;line-height:1;color:#111827}.result-total-card small{font-size:16px;color:#6b7280}.result-mobile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.result-count-card{border:1px solid #d8dee8;border-radius:10px;background:#fff;padding:18px;display:grid;gap:8px;min-height:118px}.result-count-card span{font-size:14px;font-weight:700;color:#5b6472}.result-count-card strong{font-size:30px;line-height:1.1;color:#18202a}.result-count-card small{color:#7a8493}.result-count-card.main-total{background:#eef2f6;border-color:#c5ceda}.result-notes{margin-top:16px}.result-notes p{white-space:pre-wrap}.result-meta{text-align:right;color:#7b8492;font-size:12px;margin:14px 2px 24px}.result-empty{margin-top:22px}
@media(max-width:720px){.main-position-grid{grid-template-columns:1fr}.main-position-item{grid-template-columns:64px 1fr}.result-nav{position:sticky;top:0;z-index:5;background:var(--bg,#f5f6f8);padding-top:6px}.result-total-card{padding:18px;margin:12px 0}.result-total-card{display:grid;grid-template-columns:1fr auto;gap:5px}.result-total-card span{grid-column:1/-1}.result-total-card strong{font-size:38px}.result-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.result-count-card{padding:15px;min-height:104px}.result-count-card strong{font-size:28px}.count-actions{display:grid!important;grid-template-columns:1fr 1fr}.count-actions .linkbtn,.count-actions button{width:100%;justify-content:center}.pagehead-actions{flex-wrap:wrap}}
@media(max-width:420px){.result-mobile-grid{grid-template-columns:1fr 1fr}.result-count-card{padding:13px}.result-count-card strong{font-size:26px}}

/* Flexible Main headcount location management */
.main-location-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.main-location-toolbar span{color:var(--muted,#667085);font-size:13px}.main-position-item{display:grid!important;grid-template-columns:auto minmax(90px,1fr) 34px;align-items:center;gap:8px}.main-location-remove{width:34px;height:34px;border:1px solid #d8dde6;background:#fff;color:#667085;border-radius:6px;font-size:18px;line-height:1;cursor:pointer}.main-location-remove:hover{background:#f6f7f9;color:#b42318;border-color:#f0b4ad}@media(max-width:640px){.main-location-toolbar{align-items:stretch;flex-direction:column}.main-location-toolbar .secondary{width:100%}.main-position-grid{grid-template-columns:1fr!important}}

/* Headcount session authentication */
.headcount-loginpanel .session-note,.session-active-note{display:flex;gap:10px;align-items:flex-start;background:#f3f6f9;border:1px solid #d8e0e8;border-radius:7px;padding:10px 12px;margin-top:14px}.headcount-loginpanel .session-note b,.session-active-note b{font-size:11px;color:#315b83;white-space:nowrap}.headcount-loginpanel .session-note span,.session-active-note span{font-size:11px;line-height:1.45;color:var(--muted)}.headcount-login-error{margin-top:10px}.headcount-logout-form{margin:0}.headcount-logout-form button{height:100%}.count-side .session-active-note{margin:0 0 13px}.count-area-editor .session-active-note,.main-position-body .session-active-note{margin-top:4px}@media(max-width:600px){.headcount-logout-form,.headcount-logout-form button{width:100%}}

/* Headcount result: final total at bottom */
.result-total-section{margin:24px 0 8px;padding:20px 22px;border-top:3px solid #7d8b9c;border-bottom:1px solid #cfd7e3;background:#eef2f6;display:flex;align-items:center;gap:18px}.result-total-label{display:grid;gap:4px}.result-total-label span{font-size:11px;font-weight:800;letter-spacing:.08em;color:#788392}.result-total-label b{font-size:17px;color:#273142}.result-total-number{margin-left:auto;display:flex;align-items:baseline;gap:8px}.result-total-number strong{font-size:42px;line-height:1;color:#111827}.result-total-number small{font-size:15px;color:#667085}.result-meta{margin-top:8px}
@media(max-width:720px){.result-total-section{margin-top:20px;padding:18px 16px;border-top-width:4px}.result-total-label b{font-size:15px}.result-total-number strong{font-size:38px}}

/* Headcount scheduled times */
.count-time-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:9px 12px;border:1px solid #d6dde6;border-left:4px solid #73859a;border-radius:6px;background:#f3f6f9}.count-time-banner span{font-size:11px;color:var(--muted,#667085)}.count-time-banner b{font-size:12px;color:#27364a}.headcount-time-dialog{width:min(720px,calc(100vw - 24px))}.headcount-time-body{padding:18px}.headcount-time-list{display:grid;gap:9px}.headcount-time-row{display:grid;grid-template-columns:120px 1fr 1fr;gap:12px;align-items:end;padding:12px;border:1px solid var(--line,#d9dee7);border-radius:8px;background:#f8fafc}.headcount-time-day{align-self:center;display:grid;gap:2px}.headcount-time-day b{font-size:14px}.headcount-time-day span{font-size:10px;color:var(--muted,#667085);letter-spacing:.06em}.headcount-time-row label{margin:0}.headcount-time-row label span{display:block;margin-bottom:5px;font-size:10px;font-weight:700;color:#5f6b7a}.headcount-time-row input[type=time]{width:100%;height:38px;margin:0}.headcount-time-body .session-active-note{margin-top:14px}.result-time-banner{margin-top:-2px;margin-bottom:14px}
@media(max-width:600px){.count-time-banner{justify-content:space-between}.count-time-banner b{text-align:right}.headcount-time-row{grid-template-columns:1fr 1fr}.headcount-time-day{grid-column:1/-1;border-bottom:1px solid #e0e5ec;padding-bottom:7px}.headcount-time-body{padding:12px}.headcount-time-row{padding:10px;gap:9px}.headcount-time-dialog .count-area-actions{display:grid;grid-template-columns:1fr 1fr}.headcount-time-dialog .count-area-actions button{width:100%}}

/* Public day headcount time summary */
.public-count-times{display:flex;align-items:center;gap:13px;width:max-content;max-width:100%;margin:8px 0 16px;padding:9px 13px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px rgba(20,35,55,.03)}.public-count-times>span{font-size:10px;font-weight:800;letter-spacing:.04em;color:#697386;white-space:nowrap}.public-count-times>div{display:flex;align-items:center;gap:7px;white-space:nowrap}.public-count-times b{font-size:10px;color:#536176}.public-count-times strong{font-size:13px;color:#173b68}.public-count-times i{width:1px;height:22px;background:#dfe4ea}
@media(max-width:560px){.public-count-times{width:100%;display:grid;grid-template-columns:auto 1fr 1px 1fr;gap:8px;padding:9px 10px;margin-top:7px}.public-count-times>div{justify-content:center;display:grid;gap:1px;text-align:center}.public-count-times>div b{font-size:9px}.public-count-times>div strong{font-size:12px}.public-count-times i{height:30px}.public-count-times>span{font-size:9px}}

/* Board drag & drop */
.board.drag-active .lane{transition:border-color .12s ease,background .12s ease}.board.drag-active .dropzone{outline:1px dashed #a9b8c8;outline-offset:-5px}.dropzone.over{background:#dbe6f1!important;box-shadow:inset 0 0 0 2px #6f8faa}.dropzone.over::before{content:"여기로 이동";display:block;margin:1px 1px 8px;padding:7px 9px;border:1px dashed #7f99b3;border-radius:5px;background:rgba(255,255,255,.72);color:#365a7b;font-size:10px;font-weight:800;text-align:center}.personcard[draggable="true"]{user-select:none}.personcard[draggable="true"] .draghandle{cursor:grab}.personcard.dragging{opacity:.35;transform:scale(.985)}

/* Keep Schedule column spacing identical across Supervisor/Lobby/Stage/Main/Unassigned. */
.schedule-fixed-columns{table-layout:fixed;width:100%;min-width:980px}
.schedule-fixed-columns col.col-name{width:17%}
.schedule-fixed-columns col.col-congregation{width:18%}
.schedule-fixed-columns col.col-position{width:10%}
.schedule-fixed-columns col.col-phone{width:19%}
.schedule-fixed-columns col.col-guide-time{width:14%}
.schedule-fixed-columns col.col-notes{width:22%}
.schedule-fixed-columns th,.schedule-fixed-columns td{overflow:hidden;text-overflow:ellipsis}
.schedule-fixed-columns td:last-child{white-space:normal;overflow-wrap:anywhere}
@media(max-width:900px){.tablewrap .schedule-fixed-columns{min-width:760px}.schedule-fixed-columns col.col-name{width:19%}.schedule-fixed-columns col.col-congregation{width:22%}.schedule-fixed-columns col.col-position{width:12%}.schedule-fixed-columns col.col-phone{width:21%}.schedule-fixed-columns col.col-guide-time{width:15%}.schedule-fixed-columns col.col-notes{width:11%}}
