@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Noto Sans KR,sans-serif;color:#292937;background:#f7f8fb;font-synthesis:none;font-size:13px;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #ada1ff;outline-offset:3px}input:focus,select:focus{outline:2px solid #bfb5ff;outline-offset:1px}h1,h2,h3,p{margin:0}button{border:0;background:none}svg{flex-shrink:0;vertical-align:middle}.app{height:100dvh;display:flex;flex-direction:column}.topbar{height:76px;flex-shrink:0;background:#fff;border-bottom:1px solid #e9eaf0;display:flex;align-items:center;padding:0 28px;gap:58px}.brand{display:flex;align-items:center;gap:9px}.brand-mark{width:34px;height:34px;display:grid;place-content:center;background:#7160d9;border-radius:10px;color:#fff;font-size:27px;font-weight:700;letter-spacing:-5px;padding-right:5px}.brand-mark span{color:#d7d0ff}.brand strong{font-size:25px;font-weight:800;letter-spacing:-1px}.brand-sub{font-size:8px;letter-spacing:1.6px;color:#92919e;margin:9px 0 0 3px}.top-nav{height:76px;display:flex;align-items:center;gap:9px;border-bottom:2px solid #7d69df;color:#6b58cb;font-weight:600}.top-right{margin-left:auto;display:flex;gap:25px;font-size:11px;color:#7c7c8e;align-items:center}.top-right a,.sync{display:flex;gap:7px;align-items:center}.sync i,.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:#61a891}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:246px minmax(400px,1fr) 260px}.panel{background:#fff;padding:28px 20px 18px;display:flex;flex-direction:column;min-height:0}.user-panel{border-right:1px solid #e9eaf0}.panel-heading{display:flex;align-items:center;gap:9px}.panel-heading>svg{color:#7a6dba}.panel-heading h2{font-size:14px;font-weight:700}.panel>.muted{margin:9px 0 22px;font-size:10px}.muted{color:#9797a5}.name-form{display:flex;align-items:center;border:1px solid #e2ddeb;border-radius:8px;background:#fff;min-height:42px}.name-form input{width:100%;min-width:0;border:0;background:none;padding:11px 0 11px 12px;outline:none!important;font-size:12px}.name-form:focus-within{box-shadow:0 0 0 2px #e9e4ff}.name-form button{color:#8e82bb;padding:10px}.user-summary{display:flex;justify-content:space-between;align-items:center;margin:20px 0 6px}.user-summary>span{font-size:12px;font-weight:600;display:flex;align-items:center;gap:7px}.user-summary i{width:7px;height:7px;border-radius:50%;background:#8874d9}.icon-button{display:grid;place-content:center;padding:5px;color:#9693a4;border-radius:5px}.icon-button:hover{background:#f0edf9}.user-empty{text-align:center;padding:68px 0}.empty-icon{width:56px;height:56px;background:#f6f3fd;border-radius:18px;display:grid;place-content:center;color:#a595d4;margin:0 auto 20px}.user-empty strong{font-size:12px;font-weight:500;color:#6f6e80}.user-empty p{font-size:10px;line-height:1.9;color:#aaa7b5;margin-top:10px}.panel-foot{margin-top:auto;padding-top:18px;font-size:9px;color:#a4a1af;display:flex;gap:6px;align-items:center}.panel-foot .dot{background:#b7b2c7;width:4px;height:4px}.job-list{overflow:auto;margin-top:10px;padding-right:14px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#c8bfd8 transparent}.job{margin-bottom:8px}.job h3{font-size:12px}.job-toggle{width:100%;display:flex;align-items:center;gap:7px;padding:11px 4px;color:#6b628b;text-align:left;font-weight:600;border-radius:5px}.job-toggle:hover{background:#f6f3fb}.job-count{margin-left:auto;font-size:10px;color:#9b96ac}.job-chevron{transform:rotate(-90deg);transition:transform .15s ease}.job-toggle[aria-expanded=true] .job-chevron{transform:rotate(0)}.participation{padding:11px 0;border-top:1px solid #f0eef5}.participation>div{display:flex;align-items:center;justify-content:space-between;gap:4px}.participation strong{font-size:11px;font-weight:500}.participation small{font-size:9px;color:#a29daf;display:block;margin-top:5px}.board-panel{min-width:0;min-height:0;display:flex;flex-direction:column;padding:12px 28px 0}.eyebrow{font-size:9px;letter-spacing:1.9px;color:#9791b0;font-weight:600}.title-row{display:flex;align-items:center;gap:12px;margin-top:9px}.title-row h1{font-size:25px;letter-spacing:-1px;font-weight:700}.count-badge{background:#eeeaf9;color:#8877b6;font-size:10px;border-radius:5px;padding:4px 7px}.board-heading p{color:#9794a4;font-size:11px;margin:10px 0 25px}.day-tabs{display:flex;border-bottom:1px solid #e3e2eb;gap:5px}.day-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 0 11px;font-size:14px;font-weight:700;color:#625a76;border-radius:8px 8px 0 0;border-bottom:3px solid transparent;margin-bottom:-1px}.day-tabs button span{font-size:10px;background:#eeedf2;border-radius:4px;min-width:21px;padding:2px 4px}.day-tabs button.active{color:#5836aa;background:#ede7fb;border-color:#7954cd;font-weight:700}.day-tabs button.active span{background:#e9e2fb;color:#866ad7}.board-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 10px;font-size:11px}.board-toolbar>span{display:flex;align-items:center;gap:10px}.board-toolbar strong{font-size:15px;color:#44345f}.board-hint{color:#b0aaba;font-size:10px}.board-scroll{overflow:auto;flex:1;min-height:0;padding-bottom:18px;scrollbar-width:thin;scrollbar-color:#d7d1e5 transparent}.slot-grid{display:grid;gap:12px;align-content:start}.slot{min-height:143px;border-radius:9px;position:relative}.raid-card{width:100%;height:100%;min-height:143px;display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:13px 12px 11px;background:#fff;border:1px solid #e9e5ef;border-left:3px solid #aa93dd;border-radius:9px;box-shadow:0 2px 3px #26203d03;transition:box-shadow .15s,transform .15s}.raid-card:hover{box-shadow:0 4px 14px #34264b12;transform:translateY(-1px)}.raid-card.blue{border-left-color:#8cafd9}.raid-card.rose{border-left-color:#d99aaa}.card-top{display:flex;justify-content:space-between;align-items:center;gap:4px}.card-top>svg{color:#cec6d9;margin-right:26px}.completion-control{position:absolute;top:9px;right:8px;display:grid;place-items:center;width:26px;height:26px;cursor:pointer;border-radius:5px}.completion-control:hover{background:#eee8f7}.completion-control input{width:15px;height:15px;margin:0;cursor:pointer;accent-color:#8a74b4}.completion-control input:focus-visible{outline:2px solid #8a74b4;outline-offset:3px}.raid-card.completed{opacity:.55;background:#eeedf2;filter:grayscale(.8);cursor:default}.raid-card.completed:hover{transform:none;box-shadow:none}.difficulty{display:inline-flex;white-space:nowrap;border-radius:4px;font-size:9px;line-height:1.4;padding:3px 5px;color:#9876b6;background:#f3eef9;font-weight:500}.difficulty.blue{color:#7191b7;background:#eef4fb}.difficulty.rose{color:#b87d91;background:#fcf0f4}.raid-card h3{font-size:13px;font-weight:600;margin-top:11px;letter-spacing:-.35px}.card-time{font-size:10px;color:#a09aac;margin-top:5px;min-height:15px}.card-bottom{margin-top:auto;padding-top:13px;display:flex;justify-content:space-between;color:#b3adbe;font-size:9px;gap:3px}.card-bottom>span{display:flex;align-items:center;gap:4px}.empty-slot{width:100%;height:100%;min-height:143px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #e0dce8;border-radius:9px;color:#c9c3d3;gap:8px;position:relative}.empty-slot>span{font-size:10px}.empty-slot>small{font-size:8px;position:absolute;bottom:9px;right:10px;color:#d6d1df}.empty-slot:hover{background:#f2eef9;border-color:#c4b6df}.locked .empty-slot{border-style:solid;background:#f0eff3}.locked .empty-slot svg{visibility:hidden}.can-place .empty-slot{border-color:#b9a4df;color:#9b83bf;background:#f6f2fc}.drag-over .empty-slot{background:#e8dff8;border:2px solid #9679d3}.board-footer{display:flex;justify-content:space-between;padding:13px 0 15px;color:#b6b0c1;font-size:8px;letter-spacing:.4px;gap:8px}.sample-panel{border-left:1px solid #e9eaf0}.small-count{margin-left:auto;background:#f1edf9;color:#9b8db5;padding:2px 5px;border-radius:4px;font-size:9px}.sample-search{display:flex;align-items:center;gap:8px;color:#b4adbf;background:#f8f7fa;border:1px solid #ece8f2;border-radius:7px;padding:10px 11px;margin-bottom:18px}.sample-search input{min-width:0;width:100%;border:0;outline:none;background:none;font-size:11px;color:#7f768f}.sample-list{overflow:auto;scrollbar-width:thin;flex:1;min-height:0;padding:1px 2px 1px 0}.sample-card{border:1px solid #ebe6f1;border-radius:9px;padding:13px 12px;margin-bottom:10px;background:#fff;cursor:grab}.sample-card:hover,.sample-card.chosen{border-color:#baa7df;background:#fdfbff}.sample-title{display:flex;align-items:center;gap:9px}.sample-symbol{width:32px;height:34px;border-radius:8px;color:#a096bb;background:#f5f2fa;display:grid;place-content:center}.sample-title h3{font-size:12px;font-weight:600}.sample-title small{font-size:9px;color:#b4aabd;display:flex;align-items:center;gap:4px;margin-top:4px}.sample-title .grip{margin-left:auto;color:#c9bfd7}.sample-actions{display:flex;gap:7px;margin-top:12px}.sample-actions select{flex:1;min-width:0;border:1px solid #eee9f4;border-radius:5px;padding:6px 7px;background:#faf8fc;color:#9c8eab;font-size:10px}.sample-tip{margin-top:18px;padding:14px 12px;background:#f8f6fc;border:1px solid #eee9f7;border-radius:8px}.sample-tip>div{display:flex;align-items:center;gap:6px;color:#a08bbf;font-size:10px}.sample-tip strong{font-weight:500}.sample-tip p{font-size:9px;line-height:1.9;color:#b1a4c1;margin-top:8px}.alert{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:10px 12px;background:#fff0ed;color:#b57265;border:1px solid #f3dcd6;border-radius:7px;font-size:11px;margin-bottom:12px}.placement-bar{display:flex;justify-content:space-between;align-items:center;background:#eee7fa;color:#8b6bbb;border-radius:7px;padding:10px;font-size:10px;margin-bottom:12px;gap:8px}.placement-bar>span{display:flex;align-items:center;gap:4px}.placement-bar button{font-size:10px;text-decoration:underline}.loading-board,.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;color:#b3a6c6;font-size:11px;line-height:1.8;padding:35px 0}.loading-board{padding:100px 0}.loading-board h3{font-size:15px;color:#8b7da3}.toast,.busy-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#51445f;color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 6px 30px #2e213a25;display:flex;align-items:center;gap:10px;font-size:12px;z-index:20;max-width:90vw}.busy-toast{background:#74608b}.spin{animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid #eae3f2;padding:0;border-radius:16px;width:min(480px,calc(100vw - 32px));box-shadow:0 18px 80px #27203230;color:#42394d}dialog::backdrop{background:#30223e50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{padding:25px}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal h2{font-size:24px}.modal-sub{font-size:12px;color:#a295ac;margin-top:8px}.component-list{display:flex;flex-direction:column;gap:8px;margin:20px 0}.component-list>span{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:9px 12px;border-radius:7px;background:#f8f5fb}.member-heading{font-size:12px;margin:20px 0 10px}.time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;font-size:12px}.time-heading>span{display:flex;align-items:center;gap:8px;color:#877597}.edit-link{display:flex;align-items:center;gap:6px;font-size:11px;color:#8165a4;padding:7px;border-radius:5px}.edit-link:hover{background:#f3edf9}.time-editor{background:#f8f5fc;border:1px solid #e9e0f2;border-radius:9px;padding:12px;margin-top:9px}.clock-inputs{display:flex;align-items:center;gap:7px}.clock-inputs select{min-width:0;flex:1;background:#fff;border:1px solid #e2d6ed;border-radius:5px;padding:8px 5px;font-size:12px}.save-field{background:#8870ba;color:#fff;border-radius:5px;padding:9px 12px;font-size:11px;white-space:nowrap}.time-editor p{margin:15px 0 8px;font-size:10px;color:#9e8bac}.relative-time{display:flex;gap:7px}.relative-time button{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;background:#eee5f6;color:#8868a5;border-radius:5px;padding:9px 4px;font-size:11px}.member-slot{border-bottom:1px solid #f2edf5;padding:9px 0}.member-row{display:flex;align-items:center;gap:8px;min-height:32px}.member-row .slot-number{color:#c1b1d0;font-size:9px;width:11px}.member-identity{flex:1;min-width:0}.member-identity strong{display:block;font-size:12px;overflow-wrap:anywhere}.member-identity small{display:block;font-size:10px;margin-top:3px;color:#a193b0}.member-buttons{display:flex;gap:5px}.member-buttons .remove-member{color:#bb8190}.empty-member .member-identity strong{color:#b6a9c2;font-size:11px}.member-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#faf7fd;padding:10px;border-radius:7px}.member-form .slot-label{grid-column:1 / -1;font-size:10px;color:#9a83ae}.member-form input{width:100%;min-width:0;padding:9px;border:1px solid #e5daef;border-radius:5px;font-size:12px}.member-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;font-size:11px}.modal>.alert{margin-top:14px}.member-heading span{font-size:10px;color:#aa9cb6;margin-left:8px}.members{max-height:220px;overflow:auto}.members>div{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #f2edf5;font-size:11px}.members svg{color:#c1b1d0}.members strong{font-weight:500}.members span{margin-left:auto;color:#ac9eb8}.source-link{font-size:10px;display:flex;align-items:center;gap:6px;color:#a089b9;margin-top:18px}.delete-note{font-size:10px;color:#b8aabe;line-height:1.8;margin-top:19px}.modal-actions{display:flex;justify-content:space-between;margin-top:18px;gap:12px}.modal-actions button{display:flex;gap:8px;align-items:center;padding:12px 15px;border-radius:7px;font-size:11px}.delete-button{background:#fcf0f2;color:#ba8495}.primary-button{background:#8870ba;color:#fff}.sheet-tabs{flex-shrink:0;background:#fff;border-bottom:1px solid #e9eaf0;padding:0 24px;overflow-x:auto}.sheet-tab{display:flex;align-items:center;gap:9px;padding:13px 8px;color:#9791a6;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent}.sheet-tabs [role=tablist]{display:flex;gap:20px}.sheet-tab[aria-selected=true]{color:#6b58cb;border-bottom-color:#7d69df}.sheet-tab span{font-size:9px;font-weight:400;color:#658e7b;background:#eff7f2;border-radius:4px;padding:3px 6px}.mobile-tabs{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1600px){.workspace{grid-template-columns:270px minmax(400px,1fr) 290px}.board-panel{padding:14px 36px 0}.panel{padding-left:24px;padding-right:24px}.slot{min-height:156px}.raid-card h3{font-size:14px}}@media(max-width:1150px){.workspace{grid-template-columns:205px minmax(330px,1fr) 225px}.panel{padding:24px 14px 14px}.board-panel{padding:10px 18px 0}.topbar{gap:25px;padding:0 20px}.brand-sub{display:none}.top-right{gap:15px}.slot-grid{gap:9px}.board-hint{display:none!important}}@media(max-width:850px){.app{height:auto;min-height:100dvh}.topbar{height:62px;padding:0 18px}.top-nav{display:none}.top-right{font-size:10px}.brand strong{font-size:22px}.top-right .sync{display:none}.mobile-tabs{display:flex;background:#fff;border-bottom:1px solid #ece7f2;padding:0 18px;gap:18px}.mobile-tabs button{padding:14px 0;font-size:12px;color:#b0a3bf}.mobile-tabs .active{color:#8d70b5;border-bottom:2px solid #aa8ecd}.workspace{display:flex;flex-direction:column}.panel{display:none}.panel.mobile-visible{display:flex;max-height:300px;order:0;border:0;border-bottom:1px solid #e8e1ef;padding:18px}.panel>.muted{margin:7px 0 12px}.user-empty{padding:20px 0}.user-empty .empty-icon{display:none}.user-empty p{margin-top:5px}.panel-foot{display:none}.job-list{padding-bottom:12px;max-height:135px;display:flex;gap:20px}.job{min-width:220px}.user-summary{margin:8px 0 0}.sample-list{display:flex;gap:10px;min-height:120px;overflow-x:auto}.sample-card{min-width:185px;margin-bottom:2px}.sample-tip{display:none}.sample-search{margin-bottom:12px}.board-panel{order:1;padding:10px 18px 0}.board-scroll{max-height:70vh;min-height:330px}.title-row h1{font-size:22px}.day-tabs button{gap:5px}.board-footer{font-size:8px}.placement-bar>span{display:block}.toast,.busy-toast{font-size:11px}.modal{padding:22px}}.role-filter{padding:10px 0;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto}.role-filter-buttons{display:flex;gap:6px;align-items:center;flex-wrap:nowrap;flex-shrink:0;white-space:nowrap}.role-filter-buttons button{padding:7px 10px;border:1px solid #ddd8e9;border-radius:8px;background:#fff;color:#514a66;cursor:pointer;font-size:12px}.role-filter-buttons button[aria-pressed=true]{background:#ede8fa;border-color:#8063c6;color:#543699}.role-filter-buttons strong{font-size:12px;color:#543699}.role-summary{display:grid;gap:4px;font-size:11px;color:#635b73;line-height:1.5;margin:8px 0;white-space:normal}.raid-card.role-match{border:2px solid #7350c7;box-shadow:0 0 0 2px #7350c726}.raid-card.role-match:hover{box-shadow:0 0 0 3px #7350c740}.raid-filter-selects{display:flex;flex-wrap:nowrap;gap:6px;flex-shrink:0}.raid-filter-selects label{display:block;width:135px;font-size:12px;color:#635b73}.raid-filter-selects label+label{width:115px}.raid-filter-selects select{width:100%;min-width:0;padding:8px 10px;border:1px solid #ddd8e9;border-radius:8px;background:#fff;color:#514a66;font:inherit}.raid-filter-selects select:disabled{background:#f1eff5;color:#88818f;cursor:not-allowed}.raid-edit-form{display:grid;gap:10px;padding:14px;margin:12px 0;background:#f7f5fb;border-radius:10px}.raid-edit-form label{display:grid;gap:5px;font-size:12px}.raid-edit-form input{padding:8px;border:1px solid #ddd8e9;border-radius:6px;min-width:0}.raid-edit-form small{color:#746d83;line-height:1.6}.raid-edit-form>div{display:flex;gap:12px}.auth-gate{max-width:560px;margin:15vh auto;padding:32px;text-align:center}.auth-gate button,.auth-login{display:inline-block;margin:8px;padding:10px 16px;border-radius:8px}.auth-login{background:#365bd6;color:#fff;text-decoration:none}.account-menu{position:relative;order:2}.account-menu summary{display:flex;cursor:pointer;padding:8px;border-radius:50%;list-style:none}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary:hover{background:#eef1f7}.account-popover{position:absolute;right:0;top:44px;z-index:30;min-width:190px;padding:16px;display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid #e2e6ef;border-radius:12px;box-shadow:0 8px 24px #14213d20}.login-dialog{max-width:min(440px,calc(100vw - 32px));border:0;border-radius:16px;padding:0}.login-dialog::backdrop{background:#10182870}.login-dialog-content{padding:28px}.login-dialog-content p{line-height:1.7}.login-dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px}.login-dialog-actions button{padding:10px 16px}.profile-dialog{width:min(620px,calc(100vw - 32px));max-height:85vh;border:0;border-radius:16px;padding:0}.profile-dialog::backdrop{background:#10182870}.profile-form{padding:24px}.profile-form label{display:flex;flex-direction:column;gap:8px}.profile-form input{min-width:0;padding:9px;border:1px solid #dce2ed;border-radius:6px}.pool-editor-list{max-height:42vh;overflow:auto;margin-bottom:12px}.pool-editor-row{display:flex;align-items:center;gap:6px;margin:8px 0}.pool-editor-row input{flex:1;width:100px}.pool-editor-row button{padding:6px}.pool-settings{margin:0 16px 12px;padding:8px;border-radius:6px}.job h3{display:flex;align-items:center}.job-toggle{flex:1;min-width:0}.character-drag{display:inline-flex;align-items:center;gap:3px;padding:8px 6px;cursor:grab;font-size:11px;white-space:nowrap;color:#465fd6}.character-drop-hint{margin:8px 16px;color:#465fd6}.save-sheet-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.save-sheet-actions button{padding:9px 12px;white-space:nowrap}.role-filter{flex-wrap:wrap}@media(max-width:720px){.save-sheet-actions{width:100%;justify-content:flex-end}}.slot.draft-conflict{outline:3px solid #e53935;outline-offset:-2px;border-radius:12px}.member-slot.draft-conflict{outline:2px solid #e53935;outline-offset:-2px;border-radius:8px}
