:root{--bg:#f3f7fb;--panel-bg:#ffffffeb;--border-color:#869ab22e;--blue-50:#eaf4ff;--blue-600:#0e70c7;--blue-700:#0a5698;--orange-500:#ff922b;--orange-600:#df6f0e;--orange-700:#a94e10;--slate-50:#f5f8fb;--slate-300:#aab8ca;--slate-500:#708198;--slate-600:#5a6a81;--slate-700:#354760;--slate-800:#1e3148;--slate-900:#0f2137;--soft-shadow:0 20px 48px #152f4f14;--sans:"Segoe UI", "Noto Sans KR", system-ui, sans-serif;--heading:"Segoe UI", "Noto Sans KR", system-ui, sans-serif;font-family:var(--sans);color:var(--slate-700);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#0e70c71f,#0000 28%),radial-gradient(circle at 100% 0,#ff922b1f,#0000 22%),linear-gradient(#f8fbff 0%,#edf3f9 100%);font-weight:500;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}body,button,input,select{font:inherit}button,input,select{outline:none}button:focus-visible,input:focus-visible,select:focus-visible{box-shadow:0 0 0 4px #0e70c729}#root{width:min(1440px,100%);margin:0 auto}h1,.h1,h2,h3,strong{color:var(--slate-900)}h1{font-family:var(--heading);letter-spacing:-.04em;font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.06}h2{font-size:clamp(1.5rem,2vw,2.1rem);line-height:1.15}h3{font-size:1.1rem}h1,h2,h3,p{margin:0}a{color:inherit}.app-shell{flex-direction:column;gap:24px;min-height:100vh;padding:32px;display:flex}.topbar,.hero-panel,.screen-card,.nav-pill,.site-card,.worker-card,.worker-row-card,.finance-card,.emergency-worker-card,.payout-row,.finance-summary-card{border:1px solid var(--border-color);box-shadow:var(--soft-shadow);border-radius:28px}.topbar{background:linear-gradient(135deg,#0e70c71f,#fffffff5 52%,#ff922b1f);justify-content:space-between;align-items:flex-start;gap:20px;padding:32px;display:flex}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--blue-600);margin:0 0 10px;font-size:.8rem;font-weight:700}.alert-eyebrow{color:var(--orange-600)}.topbar h1,.panel-heading h2,.screen-header h2,.column-title h3{margin:0}.topbar-copy{max-width:720px;color:var(--slate-600)}.topbar-summary{background:#ffffffe0;border:1px solid #0e70c724;border-radius:24px;min-width:260px;padding:18px 20px}.topbar-summary strong,.summary-card strong,.finance-summary-card strong,.fee-summary strong{color:var(--slate-900);display:block}.topbar-summary p{color:var(--slate-600);margin-top:8px}.date-chip,.status-chip,.priority-badge,.status-dot,.emergency-badge,.mini-tag{justify-content:center;align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:inline-flex}.date-chip{background:var(--blue-50);color:var(--blue-700);border-radius:999px;margin-bottom:12px;padding:8px 12px}.view-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.nav-pill{background:var(--panel-bg);color:var(--slate-700);cursor:pointer;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.nav-pill span{font-size:1rem;font-weight:800}.nav-pill small{color:var(--slate-500)}.nav-pill.active{background:linear-gradient(#0e70c71f,#fffffffa);border-color:#0e70c747;transform:translateY(-2px)}.hero-grid,.finance-layout,.emergency-layout{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:20px;display:grid}.hero-panel,.screen-card{background:var(--panel-bg);padding:24px}.panel-heading,.screen-header,.column-title,.worker-card-top,.site-card-top,.worker-actions,.row-actions,.payout-row,.emergency-worker-card,.emergency-actions,.finance-metrics,.emergency-header{justify-content:space-between;gap:12px;display:flex}.summary-grid,.quick-actions,.finance-top-grid,.finance-card-grid,.worker-grid,.worker-table,.emergency-list,.fee-summary{gap:16px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.summary-card{background:#fff;border-radius:22px;padding:18px}.summary-card.blue{background:linear-gradient(#0e70c71a,#fff)}.summary-card.orange{background:linear-gradient(#ff922b24,#fff)}.summary-card.neutral{background:linear-gradient(#8294ab1a,#fff)}.summary-card span,.summary-card p,.column-title span,.worker-card p,.site-card p,.finance-card span,.payout-row p,.emergency-worker-card p,.emergency-actions p,.worker-info-block span{color:var(--slate-600)}.summary-card strong{margin:8px 0;font-size:2rem}.quick-actions{margin-top:12px}.primary-button,.secondary-button,.alert-button,.ghost-button,.site-card,.nav-pill,.worker-card{appearance:none;font:inherit;border:1px solid #0000}.primary-button,.secondary-button,.alert-button,.ghost-button{cursor:pointer;border-radius:18px;padding:16px 18px;font-weight:800}.primary-button{background:var(--blue-600);color:#fff}.secondary-button{color:var(--blue-700);background:#0e70c714}.alert-button{background:linear-gradient(135deg, var(--orange-500), #ff6b37);color:#fff}.ghost-button{color:var(--slate-700);background:#fff;border-color:#8294ab3d}.ghost-button.danger{color:var(--orange-700);border-color:#ff922b47}.compact{border-radius:14px;padding:12px 14px}.large{padding:20px 22px;font-size:1.05rem}.action-note{background:var(--slate-50);border-radius:20px;margin-top:16px;padding:18px}.content-stack{gap:20px;display:grid}.filter-row,.compact-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.filter-row label,.search-field{color:var(--slate-600);gap:8px;font-size:.92rem;font-weight:700;display:grid}.filter-row input,.filter-row select,.search-field input{min-width:140px;color:var(--slate-900);background:#fff;border:1px solid #8294ab3d;border-radius:16px;padding:14px 16px}.search-field input{min-width:260px}.matching-layout{grid-template-columns:minmax(260px,.9fr) minmax(0,1.3fr);gap:20px;margin-top:18px;display:grid}.matching-column{gap:14px;display:grid}.site-card,.worker-card,.worker-row-card,.finance-card,.emergency-worker-card,.payout-row,.finance-summary-card{background:#fff}.site-card{text-align:left;cursor:pointer;padding:18px}.site-card.active,.worker-card.selected{border-color:#0e70c757;transform:translateY(-1px);box-shadow:0 18px 32px #0e70c71f}.site-meta,.worker-stats,.tag-row,.emergency-meta{flex-wrap:wrap;gap:8px;display:flex}.site-meta span,.mini-tag,.emergency-meta span{background:var(--slate-50);color:var(--slate-700);border-radius:999px;padding:8px 10px}.priority-badge,.status-dot,.status-chip,.emergency-badge{border-radius:999px;padding:8px 12px}.priority-badge.긴급,.status-chip.pending,.emergency-badge,.status-dot.블랙리스트{color:var(--orange-700);background:#ff922b2e}.priority-badge.중요,.status-chip.review,.status-dot.주의,.status-dot.대기{color:#9a4b16;background:#ff922b1f}.priority-badge.일반,.status-dot.우수,.status-chip.done{color:var(--blue-700);background:#0e70c71f}.worker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.worker-card{text-align:left;cursor:pointer;padding:20px;position:relative}.drag-indicator{color:var(--slate-300);letter-spacing:2px;position:absolute;top:16px;right:16px}.rating-row{color:var(--orange-500);align-items:center;gap:10px;margin:14px 0;display:flex}.worker-stats{gap:12px;margin:0;display:grid}.worker-stats div{gap:4px;display:grid}.worker-stats dt{color:var(--slate-500);font-size:.82rem}.worker-stats dd{color:var(--slate-800);margin:0}.worker-actions,.row-actions{flex-wrap:wrap;align-items:center;margin-top:16px}.worker-table{margin-top:18px}.worker-row-card{grid-template-columns:minmax(120px,.8fr) repeat(2,minmax(100px,.5fr)) minmax(180px,1fr) auto;align-items:center;gap:14px;padding:18px 20px;display:grid}.worker-identity,.worker-info-block{gap:4px;display:grid}.worker-identity span{color:var(--slate-500)}.finance-top-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.finance-summary-card{padding:22px}.finance-summary-card strong{margin-top:12px;font-size:clamp(2rem,3vw,2.8rem)}.finance-column{gap:14px;display:grid}.finance-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-card,.payout-row,.emergency-worker-card{padding:18px}.finance-metrics{flex-direction:column;margin:14px 0}.payout-list{gap:12px;display:grid}.fee-summary{background:linear-gradient(#0e70c714,#fffffff5);border-radius:22px;grid-template-columns:repeat(3,minmax(0,1fr));padding:18px}.alert-text{color:var(--orange-600)}.emergency-screen{background:linear-gradient(#ff922b14,#fff)}.emergency-actions{background:#ffffffeb;border-radius:24px;flex-direction:column;justify-content:center;padding:24px}@media (width<=1200px){.summary-grid,.finance-card-grid,.worker-grid,.view-nav,.finance-top-grid,.fee-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-grid,.matching-layout,.finance-layout,.emergency-layout,.worker-row-card{grid-template-columns:1fr}}@media (width<=760px){.app-shell{padding:16px}.topbar,.screen-card,.hero-panel{padding:20px}.topbar,.panel-heading,.screen-header,.hero-grid,.view-nav,.summary-grid,.worker-grid,.finance-top-grid,.finance-card-grid,.fee-summary{flex-direction:column;grid-template-columns:1fr}.view-nav{padding-bottom:4px;display:flex;overflow-x:auto}.nav-pill{min-width:132px}.topbar-summary{width:100%;min-width:0}.search-field input,.filter-row input,.filter-row select{min-width:100%}.worker-row-card{padding:16px}.row-actions,.worker-actions{flex-direction:column;align-items:stretch}}.site-drop-hint{border-top:1px dashed #0e70c72e;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.site-drop-hint strong{color:var(--blue-700)}.site-card.drop-target{background:linear-gradient(#0e70c714,#fff);border-color:#0e70c76b;box-shadow:0 22px 38px #0e70c724}.assignment-board{background:linear-gradient(#0e70c714,#fffffffa);border:1px solid #0e70c729;border-radius:22px;padding:18px}.assignment-chip-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.assignment-chip,.assignment-empty{border-radius:999px;align-items:center;min-height:38px;padding:8px 12px;display:inline-flex}.assignment-chip{color:var(--slate-800);background:#fff;border:1px solid #0e70c729}.assignment-empty{color:var(--slate-500);background:#ffffffb8}.worker-card.dragging{opacity:.68;transform:rotate(-1deg)scale(.985)}.mini-tag.assigned{color:var(--blue-700);background:#0e70c71f}
