:root{font-family:Inter,Pretendard,system-ui,sans-serif;color:#17221b;background:#f1f5f2}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}main{max-width:900px;margin:0 auto;padding:48px 24px}main.login{min-height:100vh;display:grid;place-items:center}header,.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px}header{margin-bottom:28px}.header-actions{display:flex;align-items:center;gap:8px}.section-actions{display:flex;gap:8px}h1{margin:6px 0 0;font-size:32px}h2{margin:0}small{color:#4f7a60;font-weight:800;letter-spacing:.14em}.card{width:100%;padding:28px;background:#fff;border:1px solid #dce6df;border-radius:20px;box-shadow:0 16px 45px #1d382315}.spaced{margin-top:20px}.contact-footer{padding:30px 0 4px;color:#728078;text-align:center;font-size:13px}.contact-footer a{color:#315f59;font-weight:750;text-decoration:none}.contact-footer a:hover{text-decoration:underline}.login-form{max-width:420px;display:grid;gap:14px}.section-title p{margin:6px 0 0;color:#627067}input,select,textarea{width:100%;padding:12px 14px;border:1px solid #cad8ce;border-radius:10px;background:#fff}textarea{resize:vertical}button{border:0;border-radius:10px;padding:12px 16px;cursor:pointer;font-weight:750;white-space:nowrap}button:disabled{cursor:not-allowed;opacity:.55}.primary{color:#fff;background:#196b3d}.danger-light{color:#8b2424;background:#f9e7e7}.ghost{background:#fff;border:1px solid #dce6df}.account-logout{display:inline-flex;align-items:center;gap:8px}.account-logout span{color:#526158;font-size:13px;font-weight:650}.account-logout span+span{color:#196b3d}.account-logout span+span,.account-logout b{padding-left:8px;border-left:1px solid #dce6df}.account-logout .service-label.stopped{color:#b43131}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:10px;font-weight:750;text-decoration:none;white-space:nowrap}.button-link.ghost{color:#17221b}.queue-link-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.queue-link-card p{margin:6px 0 0;color:#627067}.status{display:flex;gap:10px;align-items:center;font-size:22px;font-weight:750}.dot{width:12px;height:12px;border-radius:50%;background:#98a49c}.dot.running{background:#22a65a;box-shadow:0 0 0 6px #22a65a18}.dot.failed{background:#d84b4b}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.error,.notice,.service-warning{margin-top:18px;padding:14px;border-radius:10px;line-height:1.55}.error,.service-warning{color:#8b2424;background:#fff0f0}.notice{color:#196b3d;background:#ecf8f0}.error-toast-stack{position:fixed;z-index:2147483647;top:12px;left:50%;display:grid;width:min(560px,calc(100vw - 24px));gap:8px;transform:translate(-50%);pointer-events:none}.error-toast{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 14px 16px;border:1px solid #f0bcbc;border-radius:12px;color:#7f2020;background:#fff0f0;box-shadow:0 10px 35px #49131335;line-height:1.5;pointer-events:auto}.error-toast span{overflow-wrap:anywhere}.error-toast button{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -4px -4px 0;padding:0;color:#8b2424;background:transparent}.error-toast svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.macro-toggle{width:100%;margin-top:24px}.failure-logs{margin-top:24px;padding-top:20px;border-top:1px solid #e2e9e4}.failure-logs summary{cursor:pointer;font-size:16px;font-weight:750}.failure-logs summary span{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:20px;color:#9b2929;background:#fff0f0;font-size:12px}.failure-logs ul{margin:10px 0 0;padding:0;list-style:none}.failure-logs li{padding:11px 0;border-top:1px solid #edf1ee}.failure-logs li>div{display:flex;justify-content:space-between;gap:12px}.failure-logs time{color:#728078;font-size:12px}.failure-logs p{margin:6px 0 0;color:#9b2929;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.interval-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.interval-grid button{min-height:50px;border:1px solid #315f59;color:#fff;background:#315f59;font-size:17px;box-shadow:0 3px 8px #183b3520;transition:background .15s,transform .15s}.interval-grid button:not(.active):not(:disabled):hover{border-color:#244c47;background:#244c47;transform:translateY(-1px)}.interval-grid button:focus-visible{outline:3px solid #ee9a8f;outline-offset:2px}.interval-grid button.active{border-color:#bd493a;color:#fff;background:#d85c4a;box-shadow:0 0 0 3px #f3b8b0,0 7px 18px #92372c38}.teeup-list,.copy-list{list-style:none;margin:20px 0 0;padding:0}.teeup-list.saving{pointer-events:none}.teeup-list li{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-top:1px solid #edf1ee}.row-actions{display:flex;gap:7px}.row-actions button{padding:8px 11px;background:#edf3ef}.row-actions .delete{color:#9b2929;background:#fff0f0}.teeup-entry{display:flex;align-items:center;gap:12px}.teeup-entry>input,.macro-select-all input{width:20px;height:20px;accent-color:#196b3d}.macro-select-all{display:flex;align-items:center;gap:9px;margin-top:18px;font-weight:700}.teeup-info small{display:block;margin:6px 0 0;color:#627067;font-size:12px;letter-spacing:0}.teeup-values{display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px}.teeup-values i{color:#a4ada7;font-style:normal;font-weight:400}.course-name{color:#3f6aab;font-weight:700}.teeup-date{color:#263d2e;font-weight:700}.green-fee{color:#cd4941;font-weight:800}.edit-guide{margin:14px 0 -4px;color:#8b5b1f;font-size:13px}.teeup-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;padding:5px;background:#edf3ef;border-radius:12px}.teeup-tabs button{color:#607067;background:transparent}.teeup-tabs button.active{color:#fff;background:#196b3d}.teeup-tabs span{display:inline-block;margin-left:5px;padding:1px 7px;border-radius:20px;background:#ffffff30}.teeup-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.teeup-tools label{display:grid;gap:6px;color:#526158;font-size:13px;font-weight:700}.result-count{margin:16px 0 -8px;color:#627067;font-size:14px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}.grid-form label{display:grid;gap:7px;font-size:14px;font-weight:700}.full{grid-column:1 / -1}.grid-form .option-checks{display:flex;flex-wrap:wrap;gap:10px 24px;padding:14px;border:1px solid #dce6df;border-radius:10px;background:#f8fbf9}.grid-form .option-checks label{display:flex;align-items:center;gap:8px}.option-checks input{width:20px;height:20px;accent-color:#196b3d}.wide{width:100%;margin-top:12px}.bulk{margin-top:20px;font-family:ui-monospace,monospace;font-size:13px}.inline{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:20px}.select-all{display:block;margin-top:20px;font-weight:700}.select-all input,.copy-list input{width:auto}.copy-list{max-height:320px;overflow:auto;border:1px solid #e2e9e4;border-radius:10px}.copy-list li{padding:10px 12px;border-bottom:1px solid #edf1ee}.copy-list li:last-child{border-bottom:0}.queue-guide{padding:15px 18px;border:1px solid #cfe1d5;border-radius:12px;color:#285d3b;background:#eef8f1;line-height:1.5}.file-upload{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;padding:14px;border:1px dashed #9db7a5;border-radius:10px;color:#526158;background:#f8fbf9;cursor:pointer}.file-upload input{display:none}.queue-empty{margin:22px 0 0;color:#728078}.queue-list{list-style:none;margin:18px 0 0;padding:0}.queue-list li{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-top:1px solid #edf1ee}.queue-item-title{display:flex;align-items:center;gap:9px}.queue-list small{display:block;margin-top:7px;color:#68766d}.queue-status{padding:4px 8px;border-radius:20px;font-size:12px;font-weight:800}.queue-status.queued{color:#385c45;background:#e8f2eb}.queue-status.running{color:#145c99;background:#e9f4ff}.queue-status.failed{color:#9b2929;background:#fff0f0}.queue-status.succeeded{color:#196b3d;background:#e8f6ed}.queue-list .delete{align-self:center;color:#9b2929;background:#fff0f0}.queue-error{margin:8px 0 0;color:#9b2929;font-size:13px}.result-modal{width:min(420px,calc(100% - 32px));padding:28px;border:0;border-radius:18px;box-shadow:0 24px 80px #07170d55}.result-modal::backdrop{background:#07170d88}.result-modal h2{margin-bottom:12px}.result-modal p{margin:0 0 22px;color:#526158;line-height:1.6;white-space:pre-wrap}.result-modal.error h2{color:#9b2929}.result-modal button{width:100%}.form-modal{width:min(760px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:24px;border:0;border-radius:18px;box-shadow:0 24px 80px #07170d55}.form-modal::backdrop{background:#07170d88}.form-modal .card{padding:0;border:0;box-shadow:none}.form-modal .spaced{margin-top:0}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 0 8px auto;padding:0;color:#526158;background:#edf3ef}.modal-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.account-settings>p{color:#627067}.account-settings h3{margin:6px 0 -2px;padding-bottom:8px;border-bottom:1px solid #e2e9e4}.grid-form .permission-check{display:flex;align-items:center;flex-direction:row;gap:9px}.permission-check input{width:20px;height:20px;accent-color:#196b3d}.spinner{display:inline-block;width:14px;height:14px;border:2px solid #9fb0a5;border-top-color:#196b3d;border-radius:50%;vertical-align:-2px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-spinner{width:32px;height:32px;border-width:3px}.course-modal{width:min(760px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:26px;border:0;border-radius:18px;box-shadow:0 24px 80px #07170d55}.course-modal::backdrop{background:#07170d88}.course-modal>p{color:#627067}.course-modal h3{margin:24px 0 8px}.course-modal h3 span{color:#627067;font-size:14px}.course-list{max-height:280px;overflow:auto;margin:0;padding:0;border:1px solid #e2e9e4;border-radius:10px;list-style:none}.course-list li{display:grid;grid-template-columns:minmax(160px,1fr) 100px 80px;gap:10px;padding:10px 12px;border-bottom:1px solid #edf1ee;align-items:center}.course-list li:last-child{border-bottom:0}.course-list li>span{color:#627067}.course-list code{color:#3f6aab;font-weight:700}@media(max-width:640px){main{padding:24px 14px}.card{padding:20px}header{align-items:stretch;flex-direction:column}.grid-form,.teeup-tools{grid-template-columns:1fr}.interval-grid{gap:7px}.interval-grid button{min-height:46px;padding:9px}.full{grid-column:auto}.teeup-list li{align-items:flex-start;flex-direction:column}.row-actions{width:100%}.row-actions button{flex:1}.section-title{align-items:flex-start}.excel-title{align-items:stretch;flex-direction:column}.excel-title .section-actions button{flex:1}.header-actions,.queue-link-card,.file-upload{align-items:stretch;flex-direction:column}.file-upload input{max-width:100%}.queue-list li{align-items:stretch;flex-direction:column}.queue-list .delete{align-self:stretch}.course-list li{grid-template-columns:1fr auto}}
