:root{--navy:#10283f;--blue:#1565d8;--blue-light:#eaf2ff;--line:#dfe5ed;--ink:#172b43;--muted:#64748b;--red:#bc2842;--red-bg:#fff0f2;--bg:#f3f6fa;font-family:'Malgun Gothic','맑은 고딕',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a{touch-action:manipulation}a{color:var(--blue);text-decoration:none}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-1px}h2{font-size:21px}h3{font-size:17px}.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:30px 20px;display:flex;flex-direction:column}.brand{color:white;display:flex;gap:12px;align-items:center;margin-bottom:42px;font-size:23px;font-weight:800}.brand small{display:block;font-size:11px;font-weight:400;margin-top:3px;color:#c6d5e6}.brand-symbol{border:1px solid #668199;display:grid;place-items:center;width:40px;height:40px;border-radius:10px}.side-caption{color:#99b0c8;font-size:12px;letter-spacing:2px;margin:0 14px 14px}.nav{width:100%;text-align:left;padding:14px 12px;border-radius:8px;margin:3px 0;background:transparent;color:#cbd9e6;font-weight:600;display:flex;gap:12px;align-items:center}.nav span{font-size:22px;min-width:24px}.nav:hover{background:#203c54}.nav.active{background:#245275;color:white;box-shadow:inset 3px 0 #5cbdff}.side-bottom{margin-top:auto;padding-top:40px;font-size:12px;color:#aabdce;line-height:1.7}.side-bottom>a{display:block;margin:10px 0;color:#d4e6f5}.profile{border-top:1px solid #365066;margin-top:22px;padding-top:20px;display:flex;gap:10px;align-items:center}.profile small{display:block;font-size:11px}.profile b{color:white;font-size:14px}.avatar{display:grid;place-items:center;background:#42637e;border-radius:50%;width:36px;height:36px;color:white;font-weight:700}main{padding:32px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--blue);margin-bottom:8px}.topbar p{color:var(--muted);margin-top:10px;font-size:14px}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}#sync-label{font-size:12px;color:var(--muted)}.button{border-radius:7px;min-height:40px;padding:10px 15px;font-weight:700;white-space:nowrap}.button.primary{background:var(--blue);color:white}.button.primary:hover{background:#1057be}.button.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.button.small{font-size:13px;padding:7px 12px;min-height:34px}.icon-btn{width:34px;height:34px;border-radius:6px;color:var(--ink);background:transparent;font-size:23px}.icon-btn:hover{background:var(--blue-light)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric{background:white;border:1px solid var(--line);border-radius:10px;padding:19px 21px;display:flex;justify-content:space-between;align-items:center}.metric label{display:block;color:var(--muted);font-size:13px;margin-bottom:9px}.metric strong{font-size:30px;letter-spacing:-1px}.metric small{font-size:13px;font-weight:400;margin-left:6px}.metric .metric-icon{font-size:23px;padding:10px 12px;background:var(--blue-light);color:var(--blue);border-radius:10px}.metric.warning .metric-icon{color:var(--red);background:var(--red-bg)}.workspace{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.toolbar{padding:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.date-nav{display:flex;align-items:center;gap:6px}.date-nav h2{min-width:140px;text-align:center;font-size:20px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters input{max-width:210px}.filters select{max-width:150px}input,select,textarea{border:1px solid #cbd5e1;border-radius:6px;background:white;color:var(--ink);padding:10px 11px;min-width:0;max-width:100%}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline-color:var(--blue)}textarea{resize:vertical}.segmented{display:flex;background:#edf1f6;padding:3px;border-radius:6px}.segmented button{padding:7px 13px;background:transparent;color:var(--muted);border-radius:4px;font-size:13px}.segmented .selected{background:white;color:var(--blue);box-shadow:0 1px 4px #0001;font-weight:700}.legend{display:flex;gap:17px;padding:14px 20px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.legend .muted{margin-left:auto}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#aaa}.dot.tentative{background:#bc7a13}.dot.confirmed{background:#2773df}.dot.completed{background:#238066}.danger-text{color:var(--red)!important}.muted,.hint{color:var(--muted);font-size:13px;line-height:1.6}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{text-align:center;padding:11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;font-weight:700;background:#fafbfd}.day-cell{min-height:125px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{background:#f8fafc}.day-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.day-number{font-size:12px;padding:5px 6px;border-radius:50%;min-width:28px;text-align:center;display:inline-block}.day-number.today{background:var(--blue);color:white;font-weight:700}.sun{color:#c54151}.sat{color:#367cc8}.outside .day-number{opacity:.5}.day-add{background:none;color:#7891a8;font-size:18px;width:28px;height:28px}.event-chip{display:block;width:100%;text-align:left;background:#edf4ff;border-left:3px solid #2773df;border-radius:4px;padding:7px;margin:5px 0;color:#244971;overflow:hidden;font-size:12px;line-height:1.5}.event-chip b,.event-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-chip b{font-size:12px}.event-chip small{font-size:11px}.event-chip.tentative{background:#fff8e9;border-color:#bf861d;color:#785613}.event-chip.completed{background:#eaf6ef;border-color:#338262;color:#326e55}.event-chip.cancelled{background:#f0f1f4;color:#7b8492;border-color:#aeb7c3;text-decoration:line-through}.event-chip.conflict{background:var(--red-bg);border:1px solid #eaa2ac;border-left:3px solid var(--red);color:#a01e35}.conflict-label{display:block;font-weight:800;color:var(--red);font-size:11px}.empty{padding:65px 25px;text-align:center;color:var(--muted);line-height:1.8}.empty strong{display:block;color:var(--ink);font-size:18px;margin-bottom:10px}.empty .button{margin-top:15px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f8fafc;color:#576b80;font-weight:700;text-align:left;padding:14px;white-space:nowrap}td{padding:14px;border-top:1px solid var(--line);line-height:1.7;vertical-align:top}td small{display:block;color:var(--muted)}td .button{margin:2px}tr.conflict-row{background:#fff6f7}.badge{display:inline-block;font-size:11px;border-radius:4px;padding:2px 7px;background:var(--blue-light);color:var(--blue);white-space:nowrap}.badge.tentative{background:#fff3db;color:#825e16}.badge.completed{background:#e8f5ee;color:#236d52}.badge.cancelled{background:#eceff3;color:#6a7481}.badge.danger{background:var(--red-bg);color:var(--red);border:1px solid #efb9c2}.badge.neutral{background:#edf1f5;color:#607287}.list-title{color:var(--ink);font-weight:700;background:none;text-align:left;padding:0;font-size:14px}.list-title:hover{color:var(--blue);text-decoration:underline}.section-bar{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line);gap:15px}.workforce-table{min-width:900px;table-layout:fixed}.workforce-table th:first-child{width:145px}.workforce-table td{padding:8px}.workforce-table td:first-child{padding:15px}.workforce-table .event-chip{font-size:11px}.free{display:block;color:#8193a5;font-size:12px;padding:8px}.blocked-time{border-radius:4px;background:#f1eff7;color:#6e5a89;padding:7px;font-size:11px;margin:4px 0}.notice,.error-banner{padding:13px 16px;border-radius:7px;margin-bottom:16px;line-height:1.7;font-size:14px}.notice{background:#eaf2ff;color:#235790}.error-banner{background:var(--red-bg);color:#ad2941;border:1px solid #eeb7c1;white-space:pre-line}.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:20px}.staff-card{border:1px solid var(--line);border-radius:9px;padding:18px}.staff-card h3{margin-bottom:6px}.staff-card p{font-size:13px;color:var(--muted);margin:8px 0}.staff-card .button{margin-top:10px}.staff-card.inactive{opacity:.6}dialog{width:min(760px,calc(100vw - 28px));max-height:92vh;border:0;border-radius:14px;padding:0;box-shadow:0 20px 100px #10283f55;color:var(--ink)}dialog::backdrop{background:#10283f99;backdrop-filter:blur(3px)}dialog form{margin:0}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:21px}.dialog-body{padding:23px 26px;max-height:calc(92vh - 160px);overflow-y:auto}.dialog-footer{padding:18px 26px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:9px;background:#fafbfd}.dialog-footer>.muted{margin-right:auto;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}label input,label textarea,label select{font-weight:400;width:100%}.dialog-body>label{margin-bottom:18px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:24px 0 9px}.section-heading span{font-size:12px;color:var(--blue)}#assignment-section>.hint{margin-bottom:12px}#assignment-search{width:100%;margin-bottom:10px}.person-row{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:8px;display:flex;align-items:center;gap:12px}.person-info{flex:1;min-width:0}.person-info small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.person-info strong{font-size:14px}.person-row.busy{border-color:#e9adb7;background:#fff7f8}.person-row .risk{color:var(--red);font-size:12px;line-height:1.6;margin-top:5px}.role-toggle{padding:8px 10px;border-radius:6px;border:1px solid var(--line);color:#566c82;background:white;font-size:12px;white-space:nowrap}.role-toggle.chosen{background:var(--blue);color:white;border-color:var(--blue)}.role-toggle.chosen.assist{background:#6955ad;border-color:#6955ad}.override,.check-label{display:flex;flex-direction:row;align-items:flex-start;gap:9px;line-height:1.6}.override input,.check-label input{width:17px;height:17px;margin-top:3px}.override{color:var(--red);padding:12px;background:var(--red-bg);margin-top:12px}.readonly-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;font-size:14px;line-height:1.7}.readonly-grid dt{color:var(--muted)}.readonly-grid dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.member-result{display:block;width:100%;padding:12px;text-align:left;background:#f3f7fc;border:1px solid var(--line);border-radius:6px;margin:7px 0}.member-result:hover{background:var(--blue-light)}#member-results{margin:14px 0}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:14px 24px;color:white;background:#18344e;border-radius:9px;box-shadow:0 6px 30px #0002;z-index:1000}.admin-only{display:none}body.is-admin .admin-only{display:revert}body.is-admin button.nav.admin-only{display:flex}[hidden]{display:none!important}#print-area{display:none}.staff-count{display:flex;gap:16px}.staff-count strong{font-size:22px;color:var(--ink)}.print-title{text-align:center;margin:0 0 15px;font-size:24px}.print-meta{display:flex;justify-content:space-between;margin:10px 0 18px;font-size:12px}.print-foot{margin-top:15px;font-size:11px;color:#555}.inline-warning{font-size:11px;color:var(--red);font-weight:700}
@media(min-width:1550px){main{padding:38px 42px}.day-cell{min-height:145px}}
@media(max-width:1200px){.app-shell{grid-template-columns:185px minmax(0,1fr)}main{padding:24px 18px}.sidebar{padding:24px 14px}.metrics{gap:10px}.metric{padding:15px}.metric .metric-icon{display:none}.topbar{align-items:flex-start}.top-actions{justify-content:flex-end}.day-cell{padding:5px}.legend .muted{display:none}.toolbar{gap:12px}.filters input{max-width:180px}}
@media(max-width:800px){.app-shell{display:block}.sidebar{padding:14px 16px;display:block}.brand{margin:0 0 12px;font-size:18px}.brand small{font-size:10px}.brand-symbol{width:32px;height:32px}.side-caption,.side-bottom{display:none}.sidebar nav{display:flex;gap:4px;overflow:auto}.nav{white-space:nowrap;width:auto;min-width:max-content;font-size:12px;padding:9px 10px}.nav span{display:none}.nav.active{box-shadow:none}.sidebar nav .nav{margin:0}.topbar{display:block;margin-bottom:18px}.topbar h1{font-size:24px}.top-actions{justify-content:flex-start;margin-top:15px}.topbar p{font-size:12px}main{padding:18px 12px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:15px}.metric strong{font-size:25px}.metric label{font-size:12px}.metric{padding:13px}.toolbar{padding:12px}.filters{width:100%}.filters input{max-width:none;width:100%}.filters select{flex:1}.date-nav h2{font-size:18px}.day-cell{min-height:100px;padding:3px}.event-chip{padding:4px 3px;border-left-width:2px;font-size:10px}.event-chip b{font-size:10px}.event-chip small{font-size:10px}.event-chip .chip-team{display:none}.day-number{min-width:24px;padding:4px;font-size:11px}.day-add{width:20px;height:22px;font-size:16px}.legend{padding:10px;gap:10px;font-size:11px}.weekday{font-size:11px}.conflict-label{font-size:9px}.dialog-head,.dialog-body,.dialog-footer{padding:16px}.dialog-footer .muted{display:none}.form-grid{gap:12px}.person-row{gap:7px;padding:10px}.role-toggle{padding:8px}.staff-grid{padding:12px}.section-bar{padding:14px;align-items:flex-start}#sync-label{font-size:11px}.print-type{width:100%}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;font-size:10px;color:#111}.app-shell{display:block}.sidebar,.no-print,dialog,.toast,.workspace{display:none!important}main{padding:0}#print-area{display:block!important}#print-area table{font-size:10px;table-layout:fixed}#print-area th,#print-area td{padding:7px;border:1px solid #bbb;word-break:break-word;overflow-wrap:anywhere}#print-area th{background:#eee!important;color:#111}#print-area thead{display:table-header-group}#print-area tr{break-inside:avoid}#print-area .print-title{font-size:23px}#print-area .print-meta{font-size:11px}#print-area .badge{color:#111;background:white;border:1px solid #999}#print-area .danger-text{color:#a00000!important;font-weight:bold}#print-area .workforce-table{min-width:0}#print-area .workforce-table th:first-child{width:100px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.mobile-account{display:none}@media(max-width:800px){.mobile-account{display:flex;justify-content:space-between;gap:12px;margin:0 0 14px;font-size:12px;color:var(--muted)}}
.contact-card{border:1px solid var(--line);border-radius:8px;padding:16px;margin:14px 0;line-height:1.7}.contact-card h3{margin-bottom:12px}.contact-card .contact-card{border:0;padding:0}.preferences{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}#application-link{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}#application-link .section-heading{margin-top:0}.text-button{background:none;color:var(--blue);padding:8px}.private-label{margin:14px 0}.search-row{display:flex;gap:9px;flex-wrap:wrap}.search-row input{flex:1;min-width:150px}.cards-list{padding:20px}.install-guides h3{margin-top:22px}.install-guides p{margin:9px 0 20px;line-height:1.8}#manager-selected{margin:22px 0}@media(max-width:800px){.readonly-grid{grid-template-columns:80px minmax(0,1fr)}.person-row{flex-wrap:wrap}.person-info{flex-basis:100%}.role-toggle{min-height:42px;flex:1}.sidebar nav+nav{margin-top:6px}.contact-card{padding:12px}.cards-list{padding:12px}input,select,textarea{font-size:16px}}
@media screen and (max-width:800px){.schedule-table,.schedule-table tbody,.schedule-table tr,.schedule-table td{display:block;width:100%}.schedule-table thead{display:none}.schedule-table tbody{padding:12px}.schedule-table tr{padding:14px;border:1px solid var(--line);border-radius:9px;margin-bottom:12px;background:#fff}.schedule-table tr.conflict-row{background:var(--red-bg);border-color:#e9adb7}.schedule-table td{border:0;padding:4px 0;line-height:1.6}.schedule-table td:first-child{font-weight:bold;color:var(--blue);font-size:14px}.schedule-table td .list-title{font-size:17px}.schedule-table td:nth-child(4)::before{content:"주강사: ";color:var(--muted)}.schedule-table td:nth-child(5)::before{content:"보조강사: ";color:var(--muted)}.schedule-table td:nth-child(4) br,.schedule-table td:nth-child(5) br{display:none}}

.welcome-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(155deg,#10283f 0,#214c6c 48%,#f3f6fa 48%)}.welcome-card{width:min(100%,530px);padding:38px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 70px #10283f33}.welcome-description{margin:18px 0 25px;line-height:1.8;color:var(--muted)}.welcome-actions{display:flex;gap:12px}.welcome-actions a{flex:1;text-align:center}.welcome-guide{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.welcome-guide h2{font-size:17px}.welcome-guide ol{padding-left:20px;margin:15px 0;line-height:1.9;font-size:14px}.welcome-guide p{font-size:13px;line-height:1.7;color:var(--muted)}.welcome-home{display:block;margin-top:24px;font-size:13px}#signup-link{display:inline-flex;align-items:center}@media(max-width:550px){.welcome-card{padding:26px 22px}.welcome-body{padding:18px}.welcome-card h1{font-size:25px}}

.button.danger{background:var(--red-bg);border:1px solid #e9adb7;color:var(--red)}.button.danger:hover{background:#ffe2e7}.dialog-footer #delete-event-btn{margin-right:auto}#trash-error{margin:0 20px 16px}
.dialog-footer{flex-wrap:wrap}
.organization-badge{display:inline-block;max-width:100%;padding:3px 8px;border:1px solid transparent;border-radius:5px;font-size:11px;line-height:1.4;font-weight:700;white-space:normal;vertical-align:middle;margin:0 6px 5px 0}.organization-kdec{background:#edf5ff;color:#1855a6;border-color:#cbdff7}.organization-dongguk{background:#fff3e5;color:#925009;border-color:#f3d2a6}.event-chip .organization-badge{display:block;width:fit-content;font-size:10px;padding:2px 4px;margin:0 0 4px}.agenda-main>.organization-badge{margin-bottom:7px}.schedule-table td>.organization-badge{display:block;width:fit-content}.application-source{max-width:100%;margin-bottom:14px}.application-source select{min-width:230px;max-width:100%}.institution-search-bar{display:block}.institution-search-bar .application-source{max-width:340px}.organization-badge+strong{display:block}@media(max-width:800px){.application-source select{min-width:0}.event-chip .organization-badge{font-size:9px}}@media print{.organization-badge{font-size:9px;border-color:#999;color:#111;background:white}}

.install-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:16px 20px;border:1px solid #c5d8f0;border-radius:12px;background:#edf5ff}.install-banner .hint{margin:5px 0 0}.install-banner button{flex-shrink:0}.install-primary{display:block;width:100%;text-align:center;min-height:48px;margin:14px 0}.welcome-install{margin:0 0 24px}.install-page .welcome-card{text-align:center}.install-icon{border-radius:18px;margin-bottom:20px}#install-dialog{width:min(92vw,480px)}#install-dialog p{line-height:1.8}#install-dialog section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}#install-dialog .button{white-space:normal}@media(max-width:550px){.install-banner{align-items:stretch;flex-direction:column;padding:16px}.install-banner button{width:100%;min-height:46px}}
