:root{font-family:Pretendard,Noto Sans KR,Malgun Gothic,Segoe UI,sans-serif;color:#0f1b3d;background:#f4f7fb;font-synthesis:none;--app-bg:#f4f7fb;--surface:#fff;--surface-soft:#f7f9fc;--border:#e4eaf2;--border-light:#edf1f6;--text:#0f1b3d;--secondary:#53627a;--muted:#8c9aaf;--primary:#2674ff;--primary-soft:#eef5ff;--department:#20b983;--department-soft:#eaf9f3;--member:#7a4ce0;--member-soft:#f2edff;--milestone:#ff8a00;--milestone-soft:#fff2e4;--company-event:#64748b;--company-event-soft:#eef1f5;--dept-event:#0d9488;--dept-event-soft:#e6f7f5;--trip:#0891b2;--trip-soft:#e1f5fb;--danger:#f05262;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow:0 4px 18px rgba(31,41,55,.05);--shape-milestone:polygon(50% 0%,100% 50%,50% 100%,0% 50%);--shape-member:polygon(50% 0%,0% 100%,100% 100%);--shape-department:polygon(0 0,100% 0,100% 100%,0 100%);--shape-company-event:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);--shape-dept-event:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);--shape-trip:polygon(0% 0%,100% 50%,0% 100%)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--app-bg)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--primary)}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.app-shell{min-height:100vh}.app-shell>header{position:sticky;top:0;z-index:20;box-shadow:0 2px 10px #1f29370f}header{height:86px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:28px}.brand{display:flex;align-items:center;gap:16px;min-width:490px}.brand-icon{width:48px;height:48px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;box-shadow:0 5px 16px #2674ff2b}.brand-icon svg{width:31px;height:31px}.brand h1{font-size:23px;margin:0 0 4px}.brand p{margin:0;color:var(--secondary);font-size:14px}.search{height:44px;max-width:540px;flex:1;display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:0 14px;box-shadow:var(--shadow)}.search svg{width:20px;color:var(--muted)}.search input{border:0;outline:0;width:100%;font-size:13px}.header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;box-shadow:0 7px 17px #2674ff38}button{background:#fff;border:1px solid var(--border);border-radius:8px;padding:9px 14px}.primary{display:flex;align-items:center;gap:8px}.primary svg{width:20px}.icon-btn{width:42px;height:42px;padding:0;display:grid;place-items:center;color:#42618e}.icon-btn svg{width:21px}.profile{display:flex;align-items:center;gap:10px;padding-left:10px}.profile>span{width:45px;height:45px;border-radius:50%;background:#b7c4d6;color:#fff;display:grid;place-items:center;font-weight:700}.profile b,.profile small{display:block}.profile small{color:var(--secondary);margin-top:3px}.mobile-menu,.drawer-close{display:none}.body-grid{display:grid;grid-template-columns:228px minmax(700px,1fr);gap:14px;padding:0 18px 18px;max-width:1920px;margin:auto}.body-grid>aside,.body-grid>main{min-width:0}.body-grid>aside:first-child{background:#f8fbff;margin-left:-18px;padding:19px 18px;border-right:1px solid var(--border);position:sticky;top:86px;height:calc(100vh - 86px);overflow-y:auto;align-self:start;scrollbar-width:none}.body-grid>aside:first-child::-webkit-scrollbar{display:none}nav{display:grid;gap:2px;padding-bottom:18px;border-bottom:1px solid var(--border)}.nav-group{display:grid;gap:4px;margin-top:18px}.nav-group:first-child{margin-top:0}.nav-cat{padding:0 12px;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}nav button{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:16px;height:48px;color:#233c63;font-weight:600}nav button svg{width:21px;color:#607897}nav button.active{background:linear-gradient(135deg,#2674ff,#4669ef);color:#fff;box-shadow:0 5px 14px #2674ff33}nav button.active svg{color:#fff}.modal input,.modal select{width:100%;height:41px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 12px}.check{display:flex;align-items:center;gap:9px;margin:11px 0;font-size:13px;font-weight:600}.check input{accent-color:var(--primary)}.check i{width:10px;height:10px;border-radius:50%}.project{color:var(--primary)}.department{color:var(--department)}.member{color:var(--member)}.milestone{color:var(--milestone)}.company-event{color:var(--company-event)}.dept-event{color:var(--dept-event)}.trip{color:var(--trip)}.check i.project{background:var(--primary)}.check i.department{background:var(--department)}.check i.member{background:var(--member)}.check i.milestone{background:var(--milestone)}.check i.company-event{background:var(--company-event)}.check i.dept-event{background:var(--dept-event)}.check i.trip{background:var(--trip)}main{padding-top:14px}.calendar-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow)}.calendar-card{padding:14px 13px 10px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.calendar-toolbar>div{display:flex;align-items:center;gap:7px}.calendar-toolbar h2{font-size:24px;margin:0 0 0 18px}.quick-jump{display:flex;align-items:center;gap:7px;margin-left:12px}.quick-jump button{width:30px;height:30px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff}.qj-p{background:linear-gradient(145deg,#5eead4,#0d9488);box-shadow:0 4px 11px #0d948866,inset 0 1px #ffffff59}.qj-w{background:linear-gradient(145deg,#fcd34d,#d97706);box-shadow:0 4px 11px #d9770666,inset 0 1px #ffffff59}.qj-t{background:linear-gradient(145deg,#fda4af,#e11d48);box-shadow:0 4px 11px #e11d4866,inset 0 1px #ffffff59}.segments{background:var(--surface-soft);padding:4px;border:1px solid var(--border);border-radius:9px}.segments button{border:0;background:transparent;min-width:76px}.segments .on{background:var(--primary);color:#fff}.legend{text-align:right;font-size:12px;font-weight:600;display:flex;gap:20px;justify-content:flex-end;margin:0 11px 12px}.calendar{border:1px solid var(--border);border-radius:9px;overflow:hidden}.week,.days{display:grid;grid-template-columns:repeat(7,1fr)}.week b{text-align:center;background:#f6f9fc;padding:11px;border-right:1px solid var(--border);font-size:13px}.week b:last-child{color:var(--primary)}.days .day{border:0;border-radius:0;border-top:1px solid var(--border);border-right:1px solid var(--border);min-height:150px;padding:7px;text-align:left;overflow:hidden}.day:nth-child(7n){border-right:0}.day.muted{color:#9aa7bb;background:#fbfcfe}.day.selected{background:#f4f8ff;box-shadow:inset 0 0 0 1px #82aafc}.date{display:grid;width:25px;height:25px;place-items:center;font-size:13px;font-weight:700}.selected .date{background:var(--primary);color:#fff;border-radius:50%}.sun .date{color:#f04455}.sat .date{color:var(--primary)}.selected .date{color:#fff}.day.today{background:#fff8ec}.day.today.muted{background:#fbfcfe}.day.today .date{box-shadow:inset 0 0 0 2px var(--milestone);font-weight:800}.day.today.selected .date{box-shadow:none}.chips{display:grid;gap:3px}.chip{display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;background:var(--primary-soft);border:1px solid #cfe0ff;color:#145acc;border-radius:5px;padding:4px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip i{width:8px;height:8px;border-radius:50%;background:currentColor}.chip small{grid-column:2;color:var(--muted);font-weight:400}.chip.department{background:var(--department-soft);border-color:#c4f0df;color:#109b6b}.chip.member{background:var(--member-soft);border-color:#ddcfff;color:#6530d3}.chip.milestone{background:var(--milestone-soft);border-color:#ffd297;color:#e66c00}.chip.company-event{background:var(--company-event-soft);border-color:#d6dce4;color:#475569}.chip.dept-event{background:var(--dept-event-soft);border-color:#b7ebe4;color:#0d7a70}.chip.trip{background:var(--trip-soft);border-color:#b9e6f3;color:#0369a1}.chips em{font-size:11px;color:var(--primary)}.modal-wrap{position:fixed;inset:0;background:#0f1b3d59;display:grid;place-items:center;z-index:40}.modal{width:min(460px,calc(100vw - 32px));background:#fff;border-radius:14px;padding:22px;box-shadow:0 20px 60px #0f1b3d38}.modal>div,.modal footer{display:flex;justify-content:space-between;align-items:center}.modal h2{margin:0}.modal>div button{border:0;padding:6px}.modal label{display:grid;gap:8px;margin:20px 0;font-size:13px;font-weight:600}.modal footer{justify-content:flex-end;gap:8px}.project-progress-modal{width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 40px);display:flex;flex-direction:column}.project-progress-modal>div{flex:none}.project-progress-modal>div p{margin:4px 0 0;color:var(--secondary);font-size:12px}.pp-list{overflow:auto;margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding-right:2px;align-content:start}@media(max-width:900px){.pp-list{grid-template-columns:1fr}}.pp-row{border:1px solid var(--border);border-radius:10px;padding:13px 15px}.pp-row-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.pp-dot{width:10px;height:10px;border-radius:50%;flex:none}.pp-row-head b{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-code{font-size:11px;color:var(--secondary);background:var(--surface-soft);padding:2px 8px;border-radius:5px;white-space:nowrap}.pp-pct{font-size:13px;color:var(--primary);white-space:nowrap}.pp-bar{display:block;height:10px;background:#e9eef5;border-radius:6px;overflow:hidden;margin-bottom:10px}.pp-bar b{display:block;height:100%;border-radius:6px}.pp-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--secondary)}@media(max-width:760px){.project-progress-modal{max-height:100vh;width:100vw;height:100vh;border-radius:0}}.popup-list-modal{width:min(900px,calc(100vw - 32px));max-height:calc(100vh - 40px);display:flex;flex-direction:column}.popup-list-modal>div{flex:none}.popup-list-modal>div p{margin:4px 0 0;color:var(--secondary);font-size:12px}.popup-table-wrap{flex:1;min-height:0;overflow:auto;margin-top:14px;border:1px solid var(--border);border-radius:10px}.popup-task-table{width:100%;border-collapse:collapse;font-size:13px}.popup-task-table th{text-align:left;padding:9px 12px;background:var(--surface-soft);color:var(--secondary);font-size:11px;font-weight:700;border-bottom:1px solid var(--border);position:sticky;top:0}.popup-task-table td{padding:10px 12px;border-bottom:1px solid var(--border-light);vertical-align:middle}.popup-task-table tbody tr{cursor:pointer}.popup-task-table tbody tr:last-child td{border-bottom:0}.popup-task-table tbody tr:hover{background:var(--surface-soft)}.popup-task-table td:first-child{white-space:nowrap;color:var(--secondary);font-size:12px}.popup-task-table td i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:6px}.popup-task-table td.popup-task-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--secondary);white-space:nowrap}.popup-table-empty{text-align:center;padding:34px 10px;color:var(--muted);cursor:default}@media(max-width:760px){.popup-list-modal{max-height:100vh;width:100vw;height:100vh;border-radius:0}}.proj-view-modal{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto}.proj-view-modal footer button{padding:6px 12px;font-size:12px;gap:6px}.proj-view-modal footer button svg{width:14px;height:14px;flex:none}@media(max-width:760px){.proj-view-modal{max-height:100vh;width:100vw;height:100vh;border-radius:0;overflow-x:hidden}}.doc-preview,.modal .doc-preview,.doc-preview .print-sheet{display:block}.doc-preview .doc-page{position:relative;z-index:0;font-family:Noto Sans KR,Malgun Gothic,sans-serif;color:#1c1e2c;font-size:10.5pt;border:1.2pt solid #1c1e2c;padding:12pt 14pt;box-sizing:border-box;overflow:hidden;max-width:780px;margin:0 auto;box-shadow:0 4px 18px #0f1b3d1a}.doc-preview .doc-page:before{content:"에스엔피 시스템";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-38deg);z-index:5;pointer-events:none;font-size:52pt;font-weight:700;letter-spacing:.06em;color:#1c1e2c12;white-space:nowrap}.doc-preview .doc-titleblock{display:flex;justify-content:space-between;align-items:flex-end;gap:18pt;padding-bottom:12pt;margin-bottom:14pt;border-bottom:2.2pt solid #1c1e2c}.doc-preview .doc-eyebrow{font-size:8pt;font-weight:700;letter-spacing:.14em;color:#7c6fc9;margin-bottom:4pt}.doc-preview .doc-title{font-size:19pt;font-weight:700;line-height:1.25}.doc-preview .doc-titleblock-meta{display:flex;gap:18pt;flex:none}.doc-preview .doc-titleblock-meta-item{text-align:right}.doc-preview .doc-titleblock-meta-label{font-size:7.5pt;font-weight:700;letter-spacing:.08em;color:#83879a;margin-bottom:2pt}.doc-preview .doc-titleblock-meta-value{font-size:10.5pt;font-weight:700;white-space:nowrap}.doc-preview .doc-qr{display:flex;flex-direction:column;align-items:center;gap:2pt;flex:none}.doc-preview .doc-qr svg{width:38pt;height:38pt}.doc-preview .doc-qr small{font-size:6pt;color:#83879a;letter-spacing:.02em;white-space:nowrap}.doc-preview .doc-table{width:100%;border-collapse:collapse;table-layout:fixed}.doc-preview .doc-table tr{border-bottom:.8pt solid #e6e6ec}.doc-preview .doc-table tr:last-child{border-bottom:none}.doc-preview .doc-table th,.doc-preview .doc-table td{padding:6.5pt 3pt;text-align:left;vertical-align:top;font-weight:400}.doc-preview .doc-table th{width:76pt;font-size:8pt;font-weight:700;letter-spacing:.03em;color:#83879a;white-space:nowrap;padding-right:9pt}.doc-preview .doc-table td{color:#1c1e2c;white-space:pre-wrap;word-break:break-word}.doc-preview .doc-table td:not(.doc-group-spacer)+th{padding-left:20pt;border-left:.8pt solid #e6e6ec}.doc-preview .doc-group-label,.doc-preview .doc-group-spacer{width:26pt}.doc-preview .doc-table th.doc-group-label{text-align:center;vertical-align:middle;background:#f5f5f7;border-right:.8pt solid #e6e6ec;writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.1em;white-space:normal}.doc-preview .doc-group-spacer{padding:0;border:none}.doc-preview .doc-footer{margin-top:12pt;text-align:right;font-size:8pt;color:#83879a}.doc-preview .doc-itemtable{width:100%;border-collapse:collapse;margin-top:12pt;font-size:9pt}.doc-preview .doc-itemtable th,.doc-preview .doc-itemtable td{border:.6pt solid #b9bcc8;padding:5pt 6pt;text-align:right}.doc-preview .doc-itemtable thead th{background:#f2f3f6;font-weight:700;text-align:center}.doc-preview .doc-itemtable td.l,.doc-preview .doc-itemtable th:first-child,.doc-preview .doc-itemtable th:nth-child(2){text-align:left}.doc-preview .doc-itemtable tfoot td{background:#f6f7f9;font-weight:700}.doc-preview .doc-note{margin-top:10pt;font-size:8pt;color:#5b6270}.doc-preview .doc-journal-keywords{clear:both;margin-top:10pt;padding:6pt 8pt;background:#f7f8fa;border:.6pt solid #d7dbe6;font-size:8.5pt;color:#33405c;word-break:break-word}.doc-preview .doc-journal-keywords b{margin-right:8pt;color:#83879a;font-weight:700}.doc-preview .doc-journal-sec{margin-top:13pt}.doc-preview .doc-journal-sec h4{display:flex;align-items:center;gap:6pt;margin:0 0 5pt;font-size:9.5pt;font-weight:700;color:#1c1e2c;border-bottom:1pt solid #1c1e2c;padding-bottom:3pt}.doc-preview .doc-journal-sec h4 span{font-size:7.5pt;font-weight:400;color:#83879a}.doc-preview .doc-journal-table{width:100%;border-collapse:collapse;font-size:9pt}.doc-preview .doc-journal-table th,.doc-preview .doc-journal-table td{border:.6pt solid #d7dbe6;padding:5pt 6pt;text-align:left}.doc-preview .doc-journal-table thead th{background:#f2f3f6;font-weight:700;font-size:8pt;color:#5b6270}.doc-preview .doc-journal-table th:first-child,.doc-preview .doc-journal-table td:first-child{width:150pt;font-weight:700}.doc-preview .doc-journal-table td{white-space:pre-wrap;word-break:break-word}.doc-preview .doc-journal-note{margin:0;min-height:44pt;padding:6pt;border:.6pt solid #d7dbe6;font-size:9pt;line-height:1.6;white-space:pre-wrap;word-break:break-word}.doc-preview .doc-approval-table{width:100%;border-collapse:collapse;font-size:9pt;table-layout:fixed}.doc-preview .doc-approval-table th,.doc-preview .doc-approval-table td{border:.6pt solid #d7dbe6;padding:6pt 8pt;text-align:center}.doc-preview .doc-approval-table thead th{background:#f2f3f6;font-weight:700;font-size:8pt;color:#5b6270}.doc-preview .doc-approval-table td{height:30pt;vertical-align:middle}.doc-preview .doc-approval-table td b{display:block;font-size:10pt}.doc-preview .doc-approval-table td small{display:block;font-size:7.5pt;color:#83879a}.doc-preview .doc-approval-pending{color:#b3b7c2;font-size:8.5pt}.doc-preview .doc-approval-group-row th{background:#e7e9f2;font-weight:800;font-size:7.5pt;letter-spacing:.02em;color:#1c1e2c;border-bottom:none}@media(max-width:760px){.doc-preview .doc-page{max-width:100%;overflow-x:hidden}.doc-preview .doc-titleblock{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;row-gap:10px;column-gap:12px}.doc-preview .doc-titleblock-main{order:1}.doc-preview .doc-qr{order:2;flex-direction:row;align-items:center;width:auto;flex:none;gap:6px}.doc-preview .doc-titleblock-meta{order:3;flex-basis:100%;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.doc-preview .doc-titleblock-meta-item{text-align:left}.doc-preview .doc-qr svg{width:32px;height:32px;flex:none}.doc-preview .doc-journal-table{table-layout:fixed}.doc-preview .doc-journal-table th:first-child,.doc-preview .doc-journal-table td:first-child{width:76px}.doc-preview .doc-itemtable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.doc-preview .doc-itemtable{width:auto;min-width:100%}.doc-preview .doc-itemtable th,.doc-preview .doc-itemtable td{white-space:nowrap}.doc-preview .doc-table{display:block;border:1px solid var(--doc-line);border-radius:6px;overflow:hidden}.doc-preview .doc-table tbody,.doc-preview .doc-table tr{display:block}.doc-preview .doc-table th,.doc-preview .doc-table td{display:block;width:auto;background:none;border:0;padding:5px 10px}.doc-preview .doc-table th{font-size:8.5pt;font-weight:700;color:#83879a;padding-bottom:1px}.doc-preview .doc-table td{padding-top:0;padding-bottom:8px;border-bottom:1px solid var(--doc-line);font-size:10.5pt}.doc-preview .doc-table tr:last-child td:last-child{border-bottom:0}.doc-preview .doc-table .doc-group-spacer{display:none}.doc-preview .doc-table th.doc-group-label{writing-mode:horizontal-tb;text-orientation:mixed;text-align:left;background:#f5f5f7;border-bottom:1px solid var(--doc-line);padding:7px 10px}}.doc-preview .order-doc-table td{font-size:9.5pt}.er-form{margin-bottom:16px}.er-form .doc-table input,.er-form .doc-table select{width:100%;border:0;background:transparent;font:inherit;color:inherit;padding:0;outline:none}.er-form .doc-table input:focus,.er-form .doc-table select:focus{background:#eef5ff;box-shadow:0 0 0 2px #d9e6ff;border-radius:3px}.er-form .form-buttons{display:flex;justify-content:center;gap:8px;margin-top:14px}.er-box{clear:both;margin-top:10pt;padding:8pt 10pt;background:#f7f8fa;border:.6pt solid #d7dbe6;border-radius:4px}.er-box>b{display:block;font-size:8pt;font-weight:700;color:#83879a;margin-bottom:6pt}.er-companions{display:flex;flex-wrap:wrap;gap:5px 14px}.er-companions label{display:inline-flex;align-items:center;gap:4px;font-size:9pt;white-space:nowrap;flex:none;cursor:pointer}.er-companions label.on{font-weight:700;color:var(--primary)}.er-reason{width:100%;border:0;background:transparent;font:inherit;color:inherit;padding:0;outline:none;resize:vertical;box-sizing:border-box}.mm-doc{margin-bottom:16px}.mm-doc .doc-table input{width:100%;border:0;background:transparent;font:inherit;color:inherit;padding:0;outline:none}.mm-doc .doc-table input:focus{background:#eef5ff;box-shadow:0 0 0 2px #d9e6ff;border-radius:3px}.mm-doc .doc-table input:disabled{color:inherit;-webkit-text-fill-color:#1c1e2c;opacity:1}.mm-doc .form-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:14px}.mm-doc .doc-page{width:210mm;max-width:100%;aspect-ratio:210/297;display:flex;flex-direction:column}.mm-doc .mm-content-box{flex:1;display:flex;flex-direction:column;min-height:280px}.mm-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8pt;flex:none}.mm-toolbar select{height:26px;border:1px solid var(--border);border-radius:5px;background:#fff;font-size:11px;padding:0 4px}.mm-tb-btn{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:5px;background:#fff;font-size:12px;color:#1c2233}.mm-tb-btn:hover{background:var(--surface-soft)}.mm-tb-clear{width:auto;padding:0 8px;font-size:11px}.mm-tb-color{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;border:1px solid var(--border);border-radius:5px;overflow:hidden;cursor:pointer;padding:0}.mm-tb-color input{width:34px;height:34px;border:0;padding:0;margin:-4px;cursor:pointer;background:none}.mm-editor{flex:1;min-height:200px;outline:none;line-height:1.7;font-size:10.5pt;color:#1c1e2c;background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 10px}.mm-editor:empty:before{content:attr(data-placeholder);color:#9aa0ad}.mm-editor:focus{border-color:#8fb4ff;box-shadow:0 0 0 2px #d9e6ff}.signage{min-height:100vh;background:var(--app-bg);padding:30px}.signage header{border-radius:18px;height:120px}.signage header h2{font-size:36px;margin:auto}.signage time{font-size:21px}.signage-grid{display:grid;grid-template-columns:repeat(7,1fr);margin-top:20px;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:#fff}.signage-grid article{min-height:260px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:15px;display:flex;flex-direction:column;gap:10px}.signage-grid article>b{font-size:24px}.signage-grid article>span{font-size:19px;font-weight:700;padding:10px;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.signage-grid article>span.department{background:var(--department-soft);color:var(--department)}.signage-grid article>span.member{background:var(--member-soft);color:var(--member)}.signage-grid article>span.milestone{background:var(--milestone-soft);color:var(--milestone)}.signage-grid article>span.company-event{background:var(--company-event-soft);color:var(--company-event)}.signage-grid article>span.dept-event{background:var(--dept-event-soft);color:var(--dept-event)}.overlay{display:none}@media(max-width:1180px){.body-grid{grid-template-columns:210px minmax(600px,1fr)}.brand{min-width:300px}.profile,.search{display:none}}@media(max-width:760px){header{height:68px;padding:0 14px}.brand{min-width:0}.brand-icon{width:40px;height:40px}.brand h1{font-size:17px}.brand p,.header-actions{display:none}.mobile-menu{display:grid;margin-left:auto}.body-grid{display:block;padding:0 10px 14px}.body-grid>aside:first-child{position:fixed;left:-290px;top:0;width:280px;height:100vh;margin:0;z-index:30;transition:left .2s;overflow:auto}.body-grid>aside:first-child.open{left:0}.drawer-close{display:grid;margin-left:auto;border:0}.overlay{display:block;position:fixed;inset:0;background:#0f1b3d4d;z-index:25}.calendar-toolbar{align-items:flex-start}.calendar-toolbar h2{font-size:19px;margin-left:4px}.segments{display:none}.legend{overflow:auto;justify-content:flex-start}.days .day{min-height:82px;padding:3px}.chip{display:block;padding:4px;overflow:hidden;text-overflow:ellipsis}.chip i,.chip small{display:none}.week b{padding:8px 2px}.calendar-card{padding:9px 6px}.signage{padding:10px}.signage-grid article{min-height:100px}.signage header h2{font-size:20px}}@media(min-width:2500px){.signage{font-size:1.5rem}.signage-grid article{min-height:330px}.signage-grid article>span{font-size:25px}.signage header{height:150px}.signage .brand h1{font-size:34px}}.signage{height:100vh;min-height:0;overflow:hidden;padding:clamp(10px,1.5vw,30px);display:flex;flex-direction:column}.signage header{height:clamp(76px,8vh,120px);flex:0 0 auto}.signage header h2{font-size:clamp(22px,2vw,40px)}.signage time{font-size:clamp(13px,1.1vw,22px)}.signage-calendar{min-height:0;flex:1;display:flex;flex-direction:column;margin-top:clamp(8px,1vh,20px);border:1px solid var(--border);border-radius:18px;overflow:hidden;background:#fff}.signage-week{height:clamp(32px,4vh,56px);flex:0 0 auto;display:grid;grid-template-columns:repeat(7,1fr);background:#f6f9fc;border-bottom:1px solid var(--border)}.signage-week b{display:grid;place-items:center;font-size:clamp(13px,1vw,22px);border-right:1px solid var(--border)}.signage-week b:first-child{color:var(--danger)}.signage-week b:last-child{color:var(--primary);border-right:0}.signage .signage-grid{min-height:0;flex:1;margin:0;border:0;border-radius:0;grid-template-rows:repeat(var(--signage-rows),minmax(0,1fr))}.signage .signage-grid article{min-height:0;overflow:hidden;padding:clamp(5px,.75vw,15px);gap:clamp(3px,.45vw,10px)}.signage .signage-grid article:nth-child(7n){border-right:0}.signage .signage-grid article.outside{background:#f8fafc;color:var(--muted)}.signage .signage-grid article>b{font-size:clamp(14px,1.25vw,26px)}.signage-events{min-height:0;display:flex;flex-direction:column;gap:clamp(3px,.35vw,7px);overflow:hidden;padding-block:clamp(2px,.2vw,4px)}.signage-events>span{flex:0 1 auto;min-height:clamp(22px,2.1vw,42px);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(10px,1vw,20px);font-weight:700;line-height:1.35;padding:clamp(4px,.4vw,8px) clamp(5px,.5vw,10px);border-radius:7px;background:var(--primary-soft);color:var(--primary)}.signage-events>span.department{background:var(--department-soft);color:var(--department)}.signage-events>span.member{background:var(--member-soft);color:var(--member)}.signage-events>span.milestone{background:var(--milestone-soft);color:var(--milestone)}.signage-events>span.company-event{background:var(--company-event-soft);color:var(--company-event)}.signage-events>span.dept-event{background:var(--dept-event-soft);color:var(--dept-event)}.signage-more{flex:0 1 auto;min-height:clamp(21px,1.9vw,38px);display:block;line-height:1.35;padding:clamp(4px,.35vw,7px) clamp(5px,.5vw,10px);border-radius:7px;background:#f1f4f8;color:var(--secondary);font-size:clamp(10px,.85vw,18px);white-space:nowrap}@media(max-width:760px){.signage{padding:6px}.signage .brand p,.signage time{display:block}.signage header h2{font-size:17px}}@media(min-width:2500px){.signage .signage-grid article{min-height:0}.signage header{height:clamp(100px,8vh,150px)}}.signage header time{margin-left:auto}.signage-body{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:clamp(6px,1vh,16px)}.signage-slide-label{font-size:clamp(13px,1.5vw,28px);font-weight:800;color:var(--primary);margin-bottom:clamp(4px,.7vh,12px)}.signage-weekview .signage-week{border-radius:16px 16px 0 0}.signage-week-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-top:0;border-radius:0 0 18px 18px;overflow:hidden;background:#fff}.signage-week-grid article{min-height:0;border-right:1px solid var(--border);padding:clamp(6px,.8vw,16px);display:flex;flex-direction:column;gap:clamp(3px,.4vw,8px);overflow:hidden}.signage-week-grid article:last-child{border-right:0}.signage-week-grid article.today{background:var(--primary-soft)}.signage-week-grid article>b{font-size:clamp(15px,1.5vw,32px);flex:0 0 auto}.signage-week-grid article.sun>b{color:var(--danger)}.signage-week-grid article.sat>b{color:var(--primary)}.signage-week-grid .signage-events{flex:1}.signage-week-grid .signage-events>span{display:flex;align-items:center;gap:6px;min-height:0;font-size:clamp(11px,1.05vw,22px)}.signage-week-grid .signage-events>span i{font-style:normal;font-weight:800;font-size:.82em;opacity:.72;flex:0 0 auto}.signage-week-grid .signage-more{margin-top:auto}.signage-month-grid{grid-auto-rows:minmax(0,1fr)}.signage-month-grid article{border-bottom:1px solid var(--border)}.signage-month-grid article:nth-child(7n){border-right:0}.signage-month-grid article.outside{background:#f8fafc;color:var(--muted)}.signage-month-grid article.outside>b{color:var(--muted)}.signage-month-grid article>b{font-size:clamp(13px,1.3vw,26px)}.signage-month-grid .signage-events>span{font-size:clamp(9px,.82vw,16px);padding:clamp(3px,.32vw,6px) clamp(4px,.42vw,9px)}.signage-month-grid .signage-more{font-size:clamp(8px,.7vw,14px)}.signage-month-grid .signage-events>span.milestone,.signage-week-grid .signage-events>span.milestone{background:var(--milestone);color:#fff;font-weight:800;box-shadow:0 0 0 2px var(--milestone-soft)}.signage-month-grid .signage-events>span.milestone:before{content:"◆";margin-right:5px;font-size:.82em}.signage-agenda{overflow:hidden;display:flex;flex-direction:column}.agenda-cards{flex:1;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(240px,26vw,520px),1fr));gap:clamp(8px,1vw,20px);align-content:start;overflow:hidden}.agenda-card{background:#fff;border:1px solid var(--border);border-left:5px solid var(--primary);border-radius:12px;padding:clamp(8px,1vw,20px) clamp(10px,1.2vw,24px);display:flex;flex-direction:column;gap:clamp(4px,.5vh,10px)}.agenda-card.department{border-left-color:var(--department)}.agenda-card.member{border-left-color:var(--member)}.agenda-card.company-event{border-left-color:var(--company-event)}.agenda-card.dept-event{border-left-color:var(--dept-event)}.agenda-card.milestone{border-left-color:var(--milestone);background:var(--milestone-soft);box-shadow:0 0 0 2px var(--milestone-soft)}.agenda-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-weight:800}.agenda-card-date{font-size:clamp(13px,1.4vw,28px);color:var(--primary)}.agenda-card.milestone .agenda-card-date{color:var(--milestone)}.agenda-card-time{font-size:clamp(12px,1.2vw,24px);color:var(--secondary)}.agenda-card-title{font-size:clamp(15px,1.55vw,32px);font-weight:800;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.agenda-card.milestone .agenda-card-title{color:var(--milestone)}.agenda-card-ms{margin-right:8px}.agenda-card.trip{border-left-color:var(--trip)}.agenda-card.trip .agenda-card-date{color:var(--trip)}.trip-cards{grid-template-columns:repeat(auto-fill,minmax(clamp(280px,30vw,560px),1fr))}.trip-card-traveler{font-size:clamp(18px,2vw,40px);font-weight:800;color:var(--trip)}.trip-card-companions{font-size:clamp(12px,1.2vw,22px);color:var(--secondary)}.trip-card-destination{font-size:clamp(15px,1.6vw,30px);font-weight:700}.trip-card-reason{font-size:clamp(12px,1.1vw,20px);color:var(--secondary);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.signage-empty{padding:clamp(24px,6vh,90px);text-align:center;color:var(--muted);font-size:clamp(16px,2vw,42px);font-weight:700}.signage-progress{display:flex;justify-content:center;gap:clamp(6px,.9vw,14px);padding-top:clamp(6px,1.2vh,18px);flex:0 0 auto}.signage-progress-seg{width:clamp(46px,7vw,110px);height:clamp(4px,.55vh,7px);border-radius:99px;background:var(--border);overflow:hidden}.signage-progress-seg b{display:block;height:100%;width:0;background:var(--primary);border-radius:inherit;animation-name:signage-progress-fill;animation-timing-function:linear;animation-fill-mode:forwards}.signage-progress-seg.done{background:var(--primary)}@keyframes signage-progress-fill{0%{width:0}to{width:100%}}.drawer-head,.mobile-date-summary,.mobile-dots,.mobile-add{display:none}@media(max-width:760px){body{background:#fff}.body-grid{padding:0}.body-grid>main{padding:8px}.calendar-card{border:0;box-shadow:none;padding:6px 0}.calendar-toolbar{padding:0 4px 6px}.calendar-toolbar>div{width:100%}.calendar-toolbar h2{order:-1;margin:0 auto 0 0;font-size:21px;white-space:nowrap}.calendar-toolbar .icon-btn{width:38px;height:38px}.calendar-toolbar>div>button:not(.icon-btn){padding:8px 10px;white-space:nowrap}.legend{display:none}.mobile-date-summary{display:flex;align-items:center;justify-content:space-between;margin:3px 4px 10px;padding:10px 12px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:13px}.mobile-date-summary span{font-weight:600}.calendar{border-radius:12px}.week b{height:34px;display:grid;place-items:center;padding:0;font-size:12px}.week b:first-child{color:var(--danger)}.days .day{min-height:58px;height:58px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--border);background:#fff}.days .day.muted{background:#fafbfd}.date{width:28px;height:28px;font-size:12px}.chips{display:none}.mobile-dots{display:flex;height:9px;max-width:40px;align-items:center;justify-content:center;gap:2px;margin-top:3px;overflow:hidden}.mobile-dots i{display:block;flex:0 0 5px;width:5px;height:5px;border-radius:50%;background:currentColor}.body-grid>aside:first-child{left:-310px;width:min(88vw,310px);padding:0 14px 90px;background:#fff;box-shadow:8px 0 30px #0f1b3d29}.body-grid>aside:first-child.open{left:0}.drawer-head{position:sticky;top:0;z-index:2;height:62px;margin:0 -2px 8px;padding:0 2px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border)}.drawer-head b{font-size:17px}.drawer-close{display:grid;width:40px;height:40px;place-items:center;padding:0}nav{grid-template-columns:1fr 1fr;gap:6px;padding-bottom:14px}nav button{height:44px;padding:8px 10px;gap:9px;font-size:13px}nav button svg{width:18px}.check{display:inline-flex;width:49%;margin:8px 0}.mobile-add{display:flex;position:fixed;right:16px;bottom:18px;z-index:18;height:48px;align-items:center}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--app-bg)}.auth-card{width:min(420px,100%);padding:38px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 18px 50px #1f293717}.auth-card>.brand-icon{margin:0 auto 20px}.auth-card h1{text-align:center;font-size:24px;margin:0 0 8px}.auth-card>p{text-align:center;color:var(--secondary);font-size:14px;margin:0 0 28px}.auth-card form,.password-modal{display:grid;gap:16px}.auth-card label,.password-modal label{display:grid;gap:8px;font-size:13px;font-weight:700}.auth-card input,.password-modal input{height:46px;border:1px solid var(--border);border-radius:9px;padding:0 13px;outline:none}.auth-card input:focus,.password-modal input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.auth-card .primary,.password-modal .primary{height:46px;justify-content:center}.sysmgr-card{width:min(720px,100%);padding:32px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 18px 50px #1f293717}.sysmgr-card h1{display:flex;align-items:center;gap:10px;font-size:22px;margin:0 0 8px}.sysmgr-card>p{color:var(--secondary);font-size:13px;margin:0 0 20px}.sysmgr-card .admin-list>div>div{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px}.sysmgr-card .admin-list>div{display:block}.sysmgr-card .admin-list button{height:34px;padding:0 12px;font-size:12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.sysmgr-card .admin-list button svg{width:14px;height:14px;flex:none}.sysmgr-card .admin-list .danger-button{height:34px;padding:0 12px;font-size:12px}@media(max-width:640px){.sysmgr-card{padding:20px}.sysmgr-card .admin-list>div>div{grid-template-columns:1fr;justify-items:start}}.login-choices{display:grid;gap:10px}.login-choices-hint{margin:0 0 4px;font-size:13px;color:var(--secondary);line-height:1.5}.login-choice{display:grid;gap:3px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:#fff}.login-choice:hover{border-color:var(--primary);background:var(--primary-soft)}.login-choice b{font-size:14px}.login-choice small{color:var(--secondary);font-size:12px}.login-choice:disabled{opacity:.55}.auth-error{padding:10px 12px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:12px}.auth-loading{min-height:100vh;display:grid;place-items:center;color:var(--secondary)}.password-modal>p{color:var(--secondary);font-size:13px;line-height:1.5;margin:0}.password-modal h2{margin-bottom:0}.app-error{position:fixed;z-index:40;top:96px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;border:1px solid #ffcbd1;border-radius:10px;background:var(--danger-soft);color:var(--danger);box-shadow:var(--shadow);font-size:13px}.app-error button{border:0;background:transparent;color:inherit;padding:3px}.app-error svg{width:16px;height:16px}.task-editor{width:min(780px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;overflow:hidden;display:flex;flex-direction:column}.task-editor .editor-header{flex:none;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.editor-header>div{display:block}.editor-header h2{font-size:20px;white-space:nowrap}.editor-header p{margin:5px 0 0;color:var(--secondary);font-size:12px}.editor-body{padding:18px 24px;overflow:auto;background:#f8fafd}.editor-section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:14px}.editor-section:last-child{margin-bottom:0}.editor-section h3{font-size:13px;margin:0 0 14px;color:#263e62}.editor-section h3 small{font-weight:400;color:var(--secondary);margin-left:7px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h3{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.form-grid label{display:grid;gap:7px;margin:0;font-size:12px;font-weight:700}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:40px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fff}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid #d9e6ff;border-color:var(--primary)}.title-field input{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden}.form-grid textarea{resize:vertical}.field-with-req{display:flex;align-items:center;gap:5px}.field-with-req .req{color:var(--danger);font-weight:800;flex:none}.field-with-req select{flex:1;min-width:0}.field-hint{display:block;margin-top:5px;font-size:11px;font-weight:400;color:var(--secondary)}.progress-field span{display:flex;justify-content:space-between}.progress-field input[type=range]{padding:0}.inline-toggle,.signage-toggle{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:8px!important;margin:0!important}.inline-toggle input,.signage-toggle input{width:17px!important;min-height:17px!important}.signage-toggle{align-self:end;min-height:40px}.assignees{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.assignees label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:8px;border-radius:7px;background:var(--surface-soft);font-size:12px}.assignees input{width:17px;min-height:17px;padding:0}.task-editor>footer{flex:none;padding:14px 24px;border-top:1px solid var(--border);background:#fff}.task-actions{position:static!important;display:flex;justify-content:flex-end;gap:6px;margin-top:8px}.task-actions button{padding:5px 9px;font-size:11px}.danger-button{color:var(--danger);border-color:#ffcbd1;background:var(--danger-soft)}.empty-tasks{text-align:center;padding:34px 10px;color:var(--muted)}.empty-tasks svg{width:30px}.empty-tasks p{font-size:13px}.editor-section:first-child{background:#e6f1fb;border-color:#b5d4f4}.editor-section:first-child h3,.editor-section:first-child label>span{color:#0c447c}.editor-section:has(.section-heading){background:#faeeda;border-color:#fac775}.editor-section:has(.section-heading) h3,.editor-section:has(.section-heading) label>span{color:#633806}.editor-section:has(.progress-field){background:#eeedfe;border-color:#cecbf6}.editor-section:has(.progress-field) h3,.editor-section:has(.progress-field) label>span{color:#3c3489}.editor-section:has(.assignees){background:#e1f5ee;border-color:#9fe1cb}.editor-section:has(.assignees) h3{color:#085041}.editor-section:has(.signage-toggle){background:#faece7;border-color:#f5c4b3}.editor-section:has(.signage-toggle) h3,.editor-section:has(.signage-toggle) label>span{color:#712b13}.editor-section input,.editor-section select,.editor-section textarea,.assignees label{box-shadow:0 1px 2px #0f1b3d06}.task-editor{width:min(640px,calc(100vw - 32px));border:1px solid rgba(0,0,0,.06);border-radius:12px;box-shadow:0 16px 44px #0f1b3d29}.task-editor>.editor-header{display:flex;align-items:flex-start;justify-content:space-between}.task-editor>.editor-body{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:24px;background:#fff}.task-editor .editor-section{width:100%;margin:0;padding:16px 20px;border-width:1px;border-radius:12px;box-shadow:none}.task-editor .editor-section h3{font-weight:600;margin-bottom:10px}.task-editor .section-heading{margin-bottom:10px}.task-editor .section-heading h3{margin-bottom:0}.task-editor .form-grid{gap:10px}.task-editor .form-grid label{gap:4px}.task-editor .form-grid input,.task-editor .form-grid select,.task-editor .form-grid textarea{border-color:#0000001a;box-shadow:none}.task-editor .form-grid input:not([type=range]),.task-editor .form-grid select{height:38px;min-height:38px}.task-editor .editor-section:has(.progress-field) .form-grid{grid-template-columns:1fr 2fr;align-items:end}.task-editor .progress-field{grid-template-columns:auto 1fr auto;align-items:center;column-gap:10px}.task-editor .progress-field>span{white-space:nowrap}.task-editor .progress-field input{height:38px}.task-editor .assignees{grid-template-columns:1fr;gap:8px}.task-editor .assignees label{margin:0;border:1px solid rgba(0,0,0,.08);background:#fff;padding:9px 12px}.task-editor .inline-toggle{color:#854f0b}.task-editor .signage-toggle{color:#993c1d}.task-editor>footer{padding:16px 24px}.task-editor>footer button{min-width:72px}.task-editor>footer .primary{justify-content:center;background:#3378dd!important;border-color:#3378dd!important}@media(max-width:760px){.task-editor{max-height:100vh;width:100vw;height:100vh;border-radius:0}.task-editor .editor-header{padding:16px 18px 13px}.task-editor>.editor-body{padding:12px;gap:10px}.task-editor .editor-section{padding:14px}.task-editor .form-grid,.task-editor .editor-section:has(.progress-field) .form-grid{grid-template-columns:1fr}.task-editor .form-grid .wide{grid-column:auto}.task-editor .assignees{grid-template-columns:1fr}.task-editor>footer{padding:12px 18px}.task-actions{position:static!important;padding:0!important;background:transparent!important}}.admin-launch{position:fixed;z-index:5;right:258px;top:22px;height:42px;display:flex;align-items:center;gap:7px;color:#42618e}.admin-launch svg{width:18px}.admin-settings{width:min(760px,calc(100vw - 32px));height:calc(100vh - 32px);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #0f1b3d33;overflow:hidden}.admin-settings>header{height:auto;min-height:76px;padding:16px 22px;flex:none}.admin-settings>header h2{margin:0;font-size:20px}.admin-settings>header p{margin:4px 0 0;color:var(--secondary);font-size:12px}.admin-tabs{display:flex;padding:0 16px;border-bottom:1px solid var(--border);overflow-x:auto}.admin-tabs button{display:flex;align-items:center;gap:5px;border:0;border-radius:0;padding:9px 8px;color:var(--secondary);font-size:11px;white-space:nowrap;flex:none}.admin-tabs button svg{width:14px}.admin-tabs button.on{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:700}.admin-content{flex:1;min-height:0;padding:20px 22px;overflow:auto;background:#f8fafd}.admin-form,.admin-list{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:14px}.admin-form h3,.admin-list h3{margin:0 0 14px;font-size:14px}.admin-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-fields label{display:grid;gap:6px;font-size:12px;font-weight:700}.admin-fields .wide{grid-column:1/-1}.admin-fields input,.admin-fields select{width:100%;height:40px;border:1px solid var(--border);border-radius:8px;padding:0 11px;background:#fff}.admin-form>.primary{margin:14px 0 0 auto}.admin-list>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-list>div>div{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-soft);border-radius:7px;font-size:12px}.admin-list span{color:var(--secondary)}.admin-success{padding:10px 12px;border-radius:8px;background:var(--department-soft);color:#087b58;font-size:13px}@media(max-width:1100px){.admin-launch{right:180px}}@media(max-width:760px){.admin-launch{position:fixed;right:16px;top:auto;bottom:78px;border-color:#cfe0ff;box-shadow:var(--shadow)}.admin-settings{width:100vw;height:100vh;max-height:100vh;border-radius:0}.admin-settings>header{display:flex}.admin-content{padding:12px}.admin-fields,.admin-list>div{grid-template-columns:1fr}.admin-fields .wide{grid-column:auto}}.admin-rule{margin:-6px 0 14px;color:var(--secondary);font-size:12px}.admin-member{display:grid;gap:3px}.admin-member small{color:var(--secondary);font-size:11px}.admin-list .danger-button{flex:none;padding:6px 9px;font-size:11px}.admin-list>div>div{flex-wrap:nowrap}.admin-list .admin-member-editing{grid-column:1/-1}.admin-member b,.admin-member small{white-space:nowrap}.admin-contact-edit{display:flex;flex-wrap:nowrap;gap:6px;margin-top:2px}.admin-contact-edit input{height:28px;border:1px solid var(--border);border-radius:6px;padding:0 8px;font-size:11px;width:150px;flex:none}.admin-row-actions{display:flex;flex-wrap:nowrap;gap:6px;flex:none}.admin-row-actions button,.contact-edit-btn{flex:none;height:30px;padding:0 10px;font-size:11px;white-space:nowrap}.admin-list .admin-member{margin-right:auto}.role-edit{flex:none;height:30px;border:1px solid var(--border);border-radius:7px;background:#fff;padding:0 8px;font-size:11px;margin-left:8px}.admin-settings>header{position:relative;padding-right:64px}.admin-settings>header>.icon-btn{position:absolute;top:14px;right:16px;margin:0}.header-actions>.profile{border:0;background:transparent;text-align:left;border-radius:9px;padding:3px 7px}.header-actions>.profile:hover{background:var(--surface-soft)}.account-settings{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #0f1b3d33;overflow:hidden}.account-settings>header{position:relative;height:auto;min-height:76px;padding:16px 64px 16px 22px;flex:none}.account-settings>header h2{margin:0;font-size:20px}.account-settings>header p{margin:4px 0 0;color:var(--secondary);font-size:12px}.account-settings>header>.icon-btn{position:absolute;right:16px;top:14px}.account-body{padding:18px 22px;overflow:auto;background:#f8fafd}.account-body section{padding:16px;margin-bottom:12px;background:#fff;border:1px solid var(--border);border-radius:10px}.account-body section h3{margin:0 0 13px;font-size:14px}.account-body section h3 small{color:var(--secondary);font-weight:400}.account-body label{display:grid;gap:6px;margin:10px 0;font-size:12px;font-weight:700}.account-body label>span{display:flex;align-items:center;gap:6px}.account-body label svg{width:15px;color:var(--primary)}.account-body input{width:100%;height:40px;border:1px solid var(--border);border-radius:8px;padding:0 11px}.account-body .current-password{background:var(--primary-soft);border-color:#cfe0ff}.current-password p{margin:4px 0 0;color:var(--secondary);font-size:11px}.account-settings>footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--border)}.account-settings>footer .primary{justify-content:center}@media(max-width:760px){.account-settings{width:100vw;height:100vh;max-height:100vh;border-radius:0}.account-body{padding:12px}}.signage-links{display:grid;gap:14px}.signage-links>section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px}.signage-links h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:15px}.signage-links h3 svg{width:19px;color:var(--primary)}.signage-links section>p{margin:0 0 14px;color:var(--secondary);font-size:12px}.signage-departments{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.signage-departments label{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:12px;cursor:pointer}.signage-departments label.selected{border-color:#82aafc;background:var(--primary-soft)}.signage-departments input{grid-row:1/3;width:16px;height:16px;accent-color:var(--primary)}.signage-departments small{color:var(--secondary)}.link-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px}.link-row input{min-width:0;height:40px;border:1px solid var(--border);border-radius:8px;padding:0 10px;background:#f8fafd;color:#42618e}.link-row-sm input{font-size:11px}.link-row button,.link-row a{display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#31527f;font-size:12px}.link-row svg{width:15px}.link-summary{color:#0c447c!important;font-weight:700}.link-empty{padding:14px;border:1px dashed var(--border);border-radius:8px;text-align:center;color:var(--muted);font-size:12px}@media(max-width:760px){.admin-tabs{padding:0 8px}.admin-tabs button{padding:8px 7px;font-size:10px}.admin-tabs button svg{width:13px}.signage-departments,.link-row{grid-template-columns:1fr 1fr}.link-row input{grid-column:1/-1}}.profile>span:last-child{width:auto;height:auto;border-radius:0;background:transparent;color:inherit;display:block;font-weight:400}.profile>span:first-child{background:#7890b2;color:#fff;box-shadow:0 2px 7px #27406538}.profile-status-emoji{margin-left:5px;font-size:14px}.profile-status-message{margin-left:5px;font-weight:400;color:var(--secondary);font-size:11px}nav button{font-size:13px}.link-origin{background:var(--primary-soft)!important;border-color:#cfe0ff!important}.link-origin select{width:100%;height:40px;padding:0 10px;border:1px solid #b5d4f4;border-radius:8px;background:#fff;color:#23466f;font-size:12px}.profile>.profile-avatar{position:relative;overflow:hidden}.profile-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.profile-avatar svg{width:24px;height:24px;color:#fff}.avatar-editor{display:grid!important;grid-template-columns:82px 1fr;gap:16px;align-items:center}.avatar-preview{position:relative;width:76px;height:76px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#7890b2;color:#fff}.avatar-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.avatar-preview svg{width:34px!important;height:34px;color:#fff!important}.avatar-editor h3{margin-bottom:4px!important}.avatar-editor p{margin:0 0 10px;color:var(--secondary);font-size:12px}.avatar-editor>div>small{display:block;margin-top:7px;color:var(--muted);font-size:11px}.avatar-file{width:max-content!important;display:flex!important;grid-template-columns:none!important;flex-direction:row;align-items:center;gap:6px!important;margin:0!important;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#31527f;cursor:pointer}.avatar-file input{display:none}.avatar-file svg{width:16px!important}@media(max-width:420px){.avatar-editor{grid-template-columns:1fr;text-align:center}.avatar-preview{margin:auto}.avatar-file{margin:auto!important}}.account-qr-section{text-align:center}.account-qr{display:flex;justify-content:center;padding:6px 0 14px}.account-qr-section .link-row{max-width:320px;margin:0 auto}.status-auto-note{background:var(--trip-soft);border:1px solid #b9e6f3;color:#0369a1;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.5;margin:0 0 10px}.status-options{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.status-options button{padding:7px 12px;font-size:12px;border-radius:20px}.status-options button.on{background:var(--primary);border-color:var(--primary);color:#fff}.status-period{display:grid;grid-template-columns:1fr 1fr;gap:10px}.emoji-presets{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.emoji-presets button{width:36px;height:36px;padding:0;font-size:17px;border-radius:8px;display:grid;place-items:center}.emoji-presets button.on{border-color:var(--primary);background:var(--primary-soft)}.status-save-row{display:flex;align-items:center;gap:10px;margin-top:4px}.status-msg{color:var(--secondary);font-size:11px}.voice-mute-toggle{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.voice-mute-toggle input{width:16px;height:16px}.voice-test-row{display:flex;align-items:center;gap:8px;margin-top:8px}.voice-test-row input{flex:1;min-width:0;font-size:11px}.forgot-button{border:0;background:transparent;color:var(--primary);padding:2px;font-size:12px}.forgot-button:hover{text-decoration:underline}.reset-modal{width:min(430px,calc(100vw - 32px))}.reset-modal>div:first-child{align-items:flex-start;margin-bottom:4px}.reset-modal>div:first-child>div{display:block}.reset-modal h2{font-size:20px}.reset-modal h2+p{margin:5px 0 0;color:var(--secondary);font-size:12px}.reset-modal>label{margin:12px 0}.reset-modal>.primary{width:100%;height:44px;justify-content:center;margin-top:14px}.reset-success{display:block!important;padding:14px!important;margin:18px 0 4px;border-radius:8px;background:var(--department-soft);color:#087b58;font-size:13px;line-height:1.6}@media(max-width:760px){.auth-page{padding:16px;background:#fff}.auth-card{padding:24px;border:0;box-shadow:none}.auth-card input,.auth-card .primary,.password-modal input,.password-modal .primary{height:50px}}.list-view{max-height:640px;overflow:auto}.list-row{width:100%;display:grid;grid-template-columns:92px 10px minmax(0,1fr) 58px 52px;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border-light);border-radius:0;background:#fff;padding:11px 8px;text-align:left;font-size:13px}.list-row:hover{background:var(--surface-soft)}.list-row i{width:9px;height:9px;border-radius:50%;background:var(--primary)}.list-row i.department{background:var(--department)}.list-row i.member{background:var(--member)}.list-row i.milestone{background:var(--milestone)}.list-row i.company-event{background:var(--company-event)}.list-row i.dept-event{background:var(--dept-event)}.list-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .list-date,.list-row .list-meta{color:var(--secondary);font-size:12px}.list-row em{font-style:normal;font-size:11px;color:var(--secondary);text-align:right}.day-view{padding:12px 10px;max-height:640px;overflow:auto}.day-view-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px}.day-view-head span{color:var(--secondary);font-size:12px}.day-row{width:100%;display:grid;grid-template-columns:56px 10px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:11px 12px;margin-bottom:7px;text-align:left;font-size:13px}.day-row:hover{background:var(--surface-soft)}.day-row i{width:9px;height:9px;border-radius:50%;background:var(--primary)}.day-row i.department{background:var(--department)}.day-row i.member{background:var(--member)}.day-row i.milestone{background:var(--milestone)}.day-row i.company-event{background:var(--company-event)}.day-row i.dept-event{background:var(--dept-event)}.day-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-row .day-time{color:var(--secondary);font-size:12px}.day-row em{font-style:normal;font-size:11px;color:var(--secondary)}@media(max-width:760px){.list-view,.day-view{max-height:none}.list-row{grid-template-columns:78px 8px minmax(0,1fr) 46px}.list-row em{display:none}}.aux-wrap{grid-column:2 / -1;min-width:0;padding-top:14px}.aux-screen{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100vh - 118px)}.aux-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);height:auto}.aux-head h2{margin:0;font-size:19px}.aux-head p{margin:4px 0 0;color:var(--secondary);font-size:12px}.aux-actions{display:flex;gap:8px;flex-wrap:wrap}.aux-actions select,.aux-actions button,.aux-actions input{height:36px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 12px;font-size:13px}.aux-actions button.proj-back-top{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--accent,var(--primary));border-color:var(--accent,var(--primary))}.aux-actions button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.aux-actions button svg{width:15px;height:15px;flex:none}.aux-body{padding:16px 20px;overflow:auto;background:#f8fafd}.aux-body:has(.village-grid){scrollbar-width:none}.aux-body:has(.village-grid)::-webkit-scrollbar{display:none}.aux-section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:12px}.aux-section:last-child{margin-bottom:0}.aux-section h3{margin:0 0 10px;font-size:13px;color:#263e62;display:flex;align-items:center;gap:8px}.aux-section h3 span{background:var(--surface-soft);color:var(--secondary);border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}.aux-empty{margin:6px 0;color:var(--muted);font-size:12px}.aux-row{width:100%;display:grid;grid-template-columns:92px 10px minmax(0,1fr) auto 56px 52px;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border-light);border-radius:0;background:#fff;padding:9px 4px;text-align:left;font-size:13px}.aux-row:last-child{border-bottom:0}.aux-row:hover{background:var(--surface-soft)}.aux-row i{width:9px;height:9px;border-radius:50%;background:var(--primary)}.aux-row i.department{background:var(--department)}.aux-row i.member{background:var(--member)}.aux-row i.milestone{background:var(--milestone)}.aux-row i.company-event{background:var(--company-event)}.aux-row i.dept-event{background:var(--dept-event)}.aux-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aux-row .aux-date,.aux-row .aux-meta{color:var(--secondary);font-size:11px}.aux-row em{font-style:normal;font-size:11px;color:var(--secondary);text-align:right}.badge-late{font-size:10px;font-weight:700;color:var(--danger);background:var(--danger-soft);border-radius:4px;padding:2px 6px}.aux-row-detail{width:100%;display:flex;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border-light);background:#fff;padding:9px 4px;text-align:left;font-size:13px}.aux-row-detail:last-child{border-bottom:0}.aux-row-detail:hover{background:var(--surface-soft)}.aux-row-detail b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aux-row-detail .aux-meta{color:var(--secondary);font-size:11px;flex:none;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aux-row-detail .aux-date{color:var(--secondary);font-size:11px;flex:none}.aux-row-detail em{font-style:normal;font-size:11px;color:var(--secondary);flex:none}.aux-row-detail .row-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;flex:none;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aux-row-detail .row-badge.project{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,#fff)}.aux-row-detail .row-badge.milestone{color:var(--milestone);background:color-mix(in srgb,var(--milestone) 12%,#fff)}.aux-row-detail .row-badge.dept-work{color:var(--department);background:color-mix(in srgb,var(--department) 12%,#fff)}@media(max-width:760px){.aux-row-detail{flex-wrap:wrap}.aux-row-detail .aux-meta,.aux-row-detail .row-badge{max-width:none}}.wl-bar{display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;margin:9px 0;font-size:12px}.wl-bar i{height:12px;background:#e9eef5;border-radius:6px;overflow:hidden}.wl-bar i b{display:block;height:100%;border-radius:6px;background:var(--primary)}.wl-bar strong{text-align:right;color:var(--secondary)}.journal-panel.doc-form{position:relative;margin:0;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;overflow-x:hidden}.journal-panel.doc-form fieldset{min-width:0}.journal-panel.doc-form .journal-close{position:absolute;top:14px;right:14px}.journal-panel.doc-form .form-buttons button{height:38px;padding:0 16px;font-size:13px;display:inline-flex;align-items:center;gap:6px;box-sizing:border-box}.journal-panel.doc-form .form-buttons button svg{width:15px}.journal-panel.doc-form .admin-fields>label>input:disabled{color:#5b6270;background:#f8fafd;-webkit-text-fill-color:#5b6270}.journal-panel.doc-form fieldset:first-of-type .admin-fields{grid-template-columns:repeat(3,1fr)}.journal-panel.doc-form fieldset:first-of-type .admin-fields>label{grid-template-columns:52px 1fr;text-indent:6px;background:linear-gradient(to right,#eef1f6 0 52px,#fff 52px)}@media(max-width:520px){.journal-panel.doc-form fieldset:first-of-type .admin-fields{grid-template-columns:1fr}}.journal-panel.doc-form fieldset:has(.journal-item-row),.journal-panel.doc-form fieldset:has(.journal-add-row){padding:12px 16px 14px}.journal-item-row{clear:both;display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;min-width:0}.journal-item-row select{flex:0 0 180px;min-width:0;max-width:180px;box-sizing:border-box;height:36px;border:1px solid var(--doc-line);border-radius:6px;padding:0 8px;font-size:12px;background:#fff}.journal-item-row textarea{flex:1;min-width:0;box-sizing:border-box;border:1px solid var(--doc-line);border-radius:6px;padding:7px 9px;font-size:12px;font:inherit;resize:vertical}.journal-item-row button{flex:none;border:0;background:transparent;color:var(--danger);padding:6px;display:grid;place-items:center;margin-top:2px}.journal-item-row button svg{width:15px}.journal-add-row{clear:both;display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:6px 11px;border:1px dashed var(--doc-line);border-radius:7px;background:#fff;color:#33405c}.journal-add-row svg{width:14px}@media(max-width:760px){.journal-item-row{flex-wrap:wrap}.journal-item-row select,.journal-item-row textarea{flex:1 1 100%}}.journal-search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:14px}.journal-search label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--secondary)}.journal-search select,.journal-search input{height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px;font-size:13px;background:#fff}.journal-search-range{display:flex;align-items:center;gap:6px}.journal-search-range input{width:140px}.journal-search>button{height:38px}.journal-table-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:auto}.journal-table{width:100%;border-collapse:collapse;font-size:13px}.journal-table th{background:var(--surface-soft);text-align:left;padding:10px 12px;font-size:12px;color:var(--secondary);border-bottom:1px solid var(--border);white-space:nowrap}.journal-table td{padding:10px 12px;border-bottom:1px solid var(--border-light);vertical-align:middle}.journal-table tr:last-child td{border-bottom:0}.journal-table-actions{display:flex;gap:7px;white-space:nowrap}.journal-author{display:flex;align-items:center;gap:7px}.journal-avatar{flex:none;width:24px;height:24px;border-radius:50%;background:#7890b2;color:#fff;display:grid;place-items:center;overflow:hidden}.journal-avatar img{width:100%;height:100%;object-fit:cover}.journal-avatar svg{width:14px;height:14px}.journal-act{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;transition:transform .1s ease}.journal-act:hover{transform:translateY(-1px)}.journal-act svg{width:13px;height:13px;box-sizing:content-box;padding:6px;border-radius:8px;color:#fff;flex:none;box-shadow:0 3px 7px var(--sh,rgba(38,116,255,.35)),inset 0 1px #fff6}.journal-act-view svg{background:linear-gradient(145deg,#63a3ff,#1f61df);--sh:rgba(31,97,223,.4)}.journal-act-print svg{background:linear-gradient(145deg,#97a5b9,#4b5768);--sh:rgba(60,72,90,.38)}.journal-act-mail svg{background:linear-gradient(145deg,#7ee0b8,#0f9e6a);--sh:rgba(15,158,106,.38)}.journal-mail-modal .pick-list{max-height:280px;overflow:auto}@media(max-width:760px){.journal-search{flex-direction:column;align-items:stretch}.journal-search-range input{width:auto;flex:1}.journal-table-wrap{overflow:visible;background:transparent;border:0;border-radius:0}.journal-table{width:100%;min-width:0;display:block;border-collapse:separate}.journal-table thead{display:none}.journal-table tbody{display:block}.journal-table tr{display:block;background:#fff;border:1px solid var(--border);border-radius:10px;padding:2px 14px;margin-bottom:10px;box-shadow:var(--shadow)}.journal-table tr:last-child{margin-bottom:0}.journal-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-light)}.journal-table tr td:last-child{border-bottom:0}.journal-table td:nth-child(1):before{content:"일지번호";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.journal-table td:nth-child(2):before{content:"작성일자";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.journal-table td:nth-child(3):before{content:"작성자";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.journal-table td:nth-child(4):before{content:"부서";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.journal-table td:nth-child(5):before{content:"키워드";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.journal-table td:nth-child(5){text-align:right}.journal-table td.journal-table-actions{justify-content:flex-end;padding-top:11px}}.proj-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}@media(max-width:1400px){.proj-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.proj-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.proj-cards{grid-template-columns:1fr}}.proj-card-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:5px;margin:-4px -4px -2px 0}.proj-print{width:26px;height:26px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--secondary)}.proj-print svg{width:14px}.proj-print:hover{color:var(--primary)}.print-sheet{display:none}@media print{@page{size:A4 portrait;margin:16mm}#root{display:none!important}.print-sheet{display:block!important}.print-sheet .doc-page{position:relative;z-index:0;font-family:Noto Sans KR,Malgun Gothic,sans-serif;color:#1c1e2c;font-size:10.5pt;border:1.2pt solid #1c1e2c;padding:12pt 14pt;box-sizing:border-box;overflow:hidden}.print-sheet .doc-page:before{content:"에스엔피 시스템";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-38deg);z-index:5;pointer-events:none;font-size:52pt;font-weight:700;letter-spacing:.06em;color:#1c1e2c12;white-space:nowrap}.print-sheet .doc-titleblock{display:flex;justify-content:space-between;align-items:flex-end;gap:18pt;padding-bottom:12pt;margin-bottom:14pt;border-bottom:2.2pt solid #1c1e2c}.print-sheet .doc-eyebrow{font-size:8pt;font-weight:700;letter-spacing:.14em;color:#7c6fc9;margin-bottom:4pt}.print-sheet .doc-title{font-size:19pt;font-weight:700;line-height:1.25}.print-sheet .doc-titleblock-meta{display:flex;gap:18pt;flex:none}.print-sheet .doc-titleblock-meta-item{text-align:right}.print-sheet .doc-titleblock-meta-label{font-size:7.5pt;font-weight:700;letter-spacing:.08em;color:#83879a;margin-bottom:2pt}.print-sheet .doc-titleblock-meta-value{font-size:10.5pt;font-weight:700;white-space:nowrap}.print-sheet .doc-qr{display:flex;flex-direction:column;align-items:center;gap:2pt;flex:none}.print-sheet .doc-qr svg{width:38pt;height:38pt}.print-sheet .doc-qr small{font-size:6pt;color:#83879a;letter-spacing:.02em;white-space:nowrap}.print-sheet .doc-table{width:100%;border-collapse:collapse;table-layout:fixed}.print-sheet .doc-table tr{border-bottom:.8pt solid #e6e6ec}.print-sheet .doc-table tr:last-child{border-bottom:none}.print-sheet .doc-table th,.print-sheet .doc-table td{padding:6.5pt 3pt;text-align:left;vertical-align:top;font-weight:400}.print-sheet .doc-table th{width:76pt;font-size:8pt;font-weight:700;letter-spacing:.03em;color:#83879a;white-space:nowrap;padding-right:9pt}.print-sheet .doc-table td{color:#1c1e2c;white-space:pre-wrap;word-break:break-word}.print-sheet .doc-table td:not(.doc-group-spacer)+th{padding-left:20pt;border-left:.8pt solid #e6e6ec}.print-sheet .doc-group-label,.print-sheet .doc-group-spacer{width:26pt}.print-sheet .doc-table th.doc-group-label{text-align:center;vertical-align:middle;background:#f5f5f7;border-right:.8pt solid #e6e6ec;writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.1em;white-space:normal}.print-sheet .doc-group-spacer{padding:0;border:none}.print-sheet .doc-footer{margin-top:12pt;text-align:right;font-size:8pt;color:#83879a}.print-sheet .order-doc-table td{font-size:9.5pt}}.proj-card-wrap{display:flex;flex-direction:column}.proj-card{display:grid;grid-template-columns:auto 1fr;align-content:start;gap:6px 10px;align-items:center;flex:1;border:1px solid var(--border);border-radius:10px;padding:14px;background:#fff;text-align:left;cursor:pointer}.proj-card:hover{border-color:#82aafc;background:var(--primary-soft)}.proj-dot{width:12px;height:12px;border-radius:50%}.proj-name-row{display:flex;align-items:center;gap:7px;min-width:0}.proj-card b{font-size:14px}.proj-status-badge{flex:none;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700}.proj-status-badge.proj-status-pending{background:#fff3cd;color:#8a6516}.proj-status-badge.proj-status-rejected{background:var(--danger-soft);color:var(--danger)}.proj-approval-modal{width:min(540px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto}@media(max-width:760px){.proj-approval-modal{max-height:100vh;width:100vw;height:100vh;border-radius:0;overflow-x:hidden}}.modal>.proj-approval-body{display:block}.proj-approval-body>*+*{margin-top:14px}.proj-status-banner{border-radius:10px;padding:11px 14px;background:var(--surface-soft);border:1px solid var(--border)}.proj-status-banner-main{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.proj-status-banner-main b{font-size:14px}.proj-status-banner-main span{font-size:12px;color:var(--secondary)}.proj-status-banner-note{margin:6px 0 0;font-size:12px}.proj-status-banner.proj-status-pending{background:#fff8e8;border-color:#f3dfa3}.proj-status-banner.proj-status-pending b{color:#8a6516}.proj-status-banner.proj-status-rejected{background:var(--danger-soft);border-color:#ffcbd1}.proj-status-banner.proj-status-rejected b{color:var(--danger)}.proj-status-banner.proj-status-rejected .proj-status-banner-note{color:#7a2330}.proj-status-banner.proj-status-approved{background:var(--department-soft);border-color:#b9ecd6}.proj-status-banner.proj-status-approved b{color:var(--department)}.proj-approval-meta{margin:0;font-size:12px;color:var(--secondary)}.proj-steps{display:grid;gap:2px}.proj-step{display:flex;gap:10px;padding:8px 2px}.proj-step+.proj-step{border-top:1px solid var(--border-light)}.proj-step-dot{flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border);display:grid;place-items:center;margin-top:1px}.proj-step-dot svg{width:12px;height:12px}.proj-step.done .proj-step-dot{border-color:var(--department);background:var(--department);color:#fff}.proj-step-body{min-width:0;flex:1;display:grid;gap:2px}.proj-step-body>b{font-size:12px;color:var(--secondary);font-weight:700}.proj-step-value{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.proj-step-value>span{font-size:13px;font-weight:700}.proj-step-value small{font-size:11px;color:var(--muted)}.proj-step-pending{font-size:12px;color:var(--muted)}.proj-step-group{display:block;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:8px;padding:0 2px}.proj-step-group:first-child{margin-top:0}.proj-reference{padding-top:14px;border-top:1px solid var(--border);display:grid;gap:10px}.proj-reference>b{font-size:12px;color:var(--secondary);font-weight:700}.proj-reference>button{justify-self:start}.proj-changelog{font-size:12px}.proj-changelog>b{font-size:12px;color:var(--secondary);font-weight:700}.proj-changelog ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}.proj-changelog li{display:flex;gap:8px;font-size:11px;color:var(--secondary)}.proj-changelog li span{flex:none;color:var(--muted)}.proj-changelog li b{color:var(--text);font-weight:700}.proj-approval-actions{padding-top:14px;border-top:1px solid var(--border);display:grid;gap:10px}.proj-approval-approve{display:flex;gap:8px;flex-wrap:wrap}.proj-approval-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.proj-approval-divider:before,.proj-approval-divider:after{content:"";flex:1;height:1px;background:var(--border)}.proj-reject-box{display:flex;gap:8px;align-items:flex-start}.proj-reject-box textarea{flex:1;min-height:40px;border:1px solid var(--border);border-radius:8px;padding:7px 9px;font-size:12px}.proj-ms-graph{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;height:10px;position:relative}.proj-ms-graph:before{content:"";position:absolute;left:4px;right:4px;top:50%;height:1px;background:var(--border);z-index:0}.proj-ms-graph i{position:relative;z-index:1;flex:none;width:7px;height:7px;border-radius:50%;background:#cbd5e1;box-shadow:0 0 0 2px #fff}.proj-ms-graph i.done{background:var(--department)}.proj-ms-graph i.next{background:var(--milestone)}.proj-bar{grid-column:1 / -1;height:10px;background:#e9eef5;border-radius:5px;overflow:hidden}.proj-bar b{display:block;height:100%;border-radius:5px}.proj-card small{grid-column:1 / -1;color:var(--secondary);font-size:11px}.matrix-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.matrix{border-collapse:collapse;font-size:12px;width:max-content;min-width:100%}.matrix th,.matrix td{border:1px solid var(--border-light);padding:6px 9px;text-align:center;white-space:nowrap}.matrix thead th{background:var(--surface-soft);font-weight:700;vertical-align:bottom}.matrix thead th.rot{white-space:nowrap;padding:8px 12px;font-weight:600;vertical-align:middle}.matrix thead th.mx-corner{writing-mode:horizontal-tb;text-align:left;color:var(--secondary);font-weight:600}.matrix tbody th{text-align:left;background:#fff;position:sticky;left:0;z-index:1;font-weight:400;box-shadow:1px 0 0 var(--border);max-width:260px;overflow:hidden;text-overflow:ellipsis}.matrix tbody td.on{color:var(--accent,var(--primary));font-weight:700;font-size:13px}.matrix .mx-o{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;background:var(--primary);color:#fff;font-size:11px;line-height:1}.matrix tr.mx-prow>th{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:700}.matrix tr.mx-prow>td{background:#fafbfd;font-weight:700}.matrix tr.mx-prow>th:hover{background:var(--surface-soft)}.matrix tr.mx-trow>th{padding-left:26px}.matrix tr.mx-trow>th:not(.mx-empty){cursor:pointer}.matrix tr.mx-trow>th:not(.mx-empty):hover{background:var(--surface-soft)}.matrix .mx-empty{color:var(--muted)}.matrix .mx-caret{display:inline-block;width:12px;color:var(--secondary);font-size:10px}.matrix th.mx-proj{cursor:pointer;-webkit-user-select:none;user-select:none}.matrix th.mx-proj:hover{background:var(--surface-soft)}.matrix .mx-type{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px;vertical-align:middle;background:var(--primary)}.matrix .mx-type.department{background:var(--department)}.matrix .mx-type.member{background:var(--member)}.matrix .mx-type.milestone{background:var(--milestone)}.matrix .mx-type.company-event{background:var(--company-event)}.matrix .mx-type.dept-event{background:var(--dept-event)}.matrix td.mx-total,.matrix tfoot td{background:var(--surface-soft);font-weight:700;color:var(--secondary)}.matrix .proj-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.chip-list span{background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;padding:4px 9px;font-size:12px}.report-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.report-kpi>div{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center}.report-kpi b{display:block;font-size:22px;color:var(--primary)}.report-kpi span{color:var(--secondary);font-size:11px}.report-note{margin:12px 0 0;padding:12px;border-radius:8px;background:var(--primary-soft);color:#23466f;font-size:12px;line-height:1.6}.search-box{position:relative;max-width:540px;flex:1}.search-box .search{max-width:none;width:100%}.search-overlay{position:fixed;inset:0;z-index:29}.search-drop{position:absolute;top:52px;left:0;right:0;z-index:30;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 44px #0f1b3d2e;padding:8px;max-height:60vh;overflow:auto}.search-empty{margin:8px;color:var(--muted);font-size:12px}.search-grp{padding:4px}.search-grp h4{margin:6px 8px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.search-grp button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:#fff;border-radius:7px;padding:8px 10px;text-align:left;font-size:13px}.search-grp button:hover{background:var(--surface-soft)}.search-grp button i{width:9px;height:9px;border-radius:50%;background:var(--primary);flex:none}.search-grp button i.department{background:var(--department)}.search-grp button i.member{background:var(--member)}.search-grp button i.milestone{background:var(--milestone)}.search-grp button i.company-event{background:var(--company-event)}.search-grp button i.dept-event{background:var(--dept-event)}.search-grp button svg{width:16px;color:var(--muted)}.search-grp button small{margin-left:auto;color:var(--secondary);font-size:11px}@media(max-width:1180px){.search-box{display:none}}@media(max-width:760px){.aux-wrap{grid-column:auto;padding:8px}.aux-screen{max-height:none}.aux-row{grid-template-columns:64px 8px minmax(0,1fr) auto 44px}.aux-row .aux-meta{display:none}.report-kpi{grid-template-columns:1fr}.aux-head{flex-direction:column;align-items:stretch}.aux-actions{width:100%}.aux-actions select,.aux-actions button,.aux-actions input{flex:1 1 auto}}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatches button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer}.swatches button.on{border-color:var(--text);box-shadow:0 0 0 2px #fff inset}.pick-list{display:flex;flex-wrap:wrap;gap:6px}.pick-list label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:#fff;font-size:12px;font-weight:600;cursor:pointer}.pick-list label.on{border-color:#82aafc;background:var(--primary-soft);color:#145acc}.pick-list label input{width:14px;height:14px;accent-color:var(--primary)}.origin-fixed{display:inline-block;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:#fafbfd;color:var(--secondary);font-size:12px;font-weight:600}.pick-hint{color:var(--muted);font-size:11px;font-weight:400}.proj-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:middle}.admin-form .form-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.aux-body>.admin-form{margin-bottom:14px}.aux-actions .primary{background:var(--primary);color:#fff;border-color:var(--primary)}.signage-error{position:fixed;left:50%;bottom:16px;transform:translate(-50%);background:var(--danger-soft);color:var(--danger);border:1px solid #ffcbd1;border-radius:8px;padding:8px 14px;font-size:clamp(11px,1vw,16px)}.days .day{display:flex;flex-direction:column;justify-content:flex-start}.days .day>.date{flex:0 0 auto;margin-bottom:2px}.medal-badge{display:flex;align-items:center;gap:5px;height:34px;padding:0 11px;border:1px solid #cfe0ff;border-radius:17px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:13px}.medal-badge svg{width:16px}.medal-badge:hover{background:#e2eeff;border-color:#82aafc}@media(max-width:760px){.medal-badge{display:none}}.notif-box{position:relative;display:flex}.notif-box>.icon-btn{position:relative}.notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}.notif-overlay{position:fixed;inset:0;z-index:29}.notif-drop{position:absolute;top:48px;right:0;z-index:30;width:280px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 44px #0f1b3d2e;padding:8px;max-height:60vh;overflow:auto}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 8px;border-bottom:1px solid var(--border-light)}.notif-head b{font-size:13px}.notif-head small{color:var(--secondary);font-size:11px}.notif-sub{margin:8px 8px 4px;font-size:11px;color:var(--muted)}.notif-drop>button{width:100%;display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;border:0;background:#fff;border-radius:7px;padding:8px 10px;text-align:left;font-size:12px}.notif-drop>button:hover{background:var(--surface-soft)}.notif-drop>button i{width:9px;height:9px;border-radius:50%}.notif-drop>button b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-drop>button small{color:var(--secondary);font-size:10px}.notif-clear{margin-top:4px;justify-content:center;grid-template-columns:1fr!important;text-align:center!important;color:var(--primary);font-weight:700}.notif-empty{padding:16px 8px;text-align:center;color:var(--muted);font-size:12px}@media(max-width:760px){.notif-drop{position:fixed;top:60px;right:8px;left:8px;width:auto}}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.milestone,.chip.milestone i,.matrix .mx-type.milestone{border-radius:0;clip-path:var(--shape-milestone)}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.member,.chip.member i,.matrix .mx-type.member{border-radius:0;clip-path:var(--shape-member)}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.department,.chip.department i,.matrix .mx-type.department{border-radius:0;clip-path:var(--shape-department)}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.company-event,.chip.company-event i,.matrix .mx-type.company-event{border-radius:0;clip-path:var(--shape-company-event)}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.dept-event,.chip.dept-event i,.matrix .mx-type.dept-event{border-radius:0;clip-path:var(--shape-dept-event)}:is(.mobile-dots,.check,.list-row,.day-row,.aux-row,.search-grp button,.popup-task-table td) i.trip,.chip.trip i,.matrix .mx-type.trip{border-radius:0;clip-path:var(--shape-trip)}.matrix .mx-type.project{border-radius:50%}.aux-screen{border-left-width:4px}.calendar-card,.admin-settings{border-left:4px solid var(--primary)}.account-settings{border-left:4px solid var(--department)}.aux-section{border-left:3px solid var(--accent,var(--border))}.aux-section h3 span{background:color-mix(in srgb,var(--accent,var(--primary)) 12%,#fff);color:var(--accent,var(--secondary))}.assign-print-button{color:var(--primary);border:1px solid var(--border);background:#fff;border-radius:7px}.assign-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--secondary)}.assign-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.proj-board{display:flex;align-items:flex-start;gap:12px;overflow:auto;max-height:calc(100vh - 250px);padding-bottom:10px}.proj-board-col{display:flex;flex-direction:column;gap:12px;flex:0 0 230px}.proj-hover-target{position:relative}.proj-hover-popup{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:260px;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #0f1b3d33;padding:10px 12px;text-align:left}.proj-hover-target:hover .proj-hover-popup{display:block}.proj-hover-popup>b{display:block;font-size:12px;margin-bottom:6px;color:#263e62}.proj-hover-list{display:flex;flex-direction:column;gap:8px}.proj-hover-list li{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border-light);padding-bottom:6px;font-size:12px}.proj-hover-list li:last-child{border-bottom:0;padding-bottom:0}.proj-hover-sub{color:var(--primary);font-size:11px}.proj-hover-meta{color:var(--secondary);font-size:11px}.village-grid{columns:230px;column-gap:12px}.village-drag-handle{display:inline-block;cursor:grab;touch-action:none;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.village-drag-handle.dragging{position:relative;z-index:5;cursor:grabbing;transition:none}.village-drag-handle.flying{position:relative;z-index:6;transition:none}@media(prefers-reduced-motion:reduce){.village-drag-handle{transition:none}}.village-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;width:100%;margin:0 0 26px;border:none;background:transparent;padding:6px 8px;cursor:pointer;break-inside:avoid}.village-card:hover .village-avatar{animation-play-state:paused;box-shadow:0 14px 22px -4px #141e3c52,inset -5px -5px 8px #00000024,inset 4px 5px 8px #ffffff2e}.village-card:hover .village-avatar:before{animation-play-state:paused}@keyframes village-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes village-spin{to{transform:rotate(1turn)}}.village-avatar{position:relative;flex:none;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--dept-c),rgba(0,0,0,.12) 100%);color:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 10px 18px -4px #141e3c40,inset -5px -5px 8px #00000024,inset 4px 5px 8px #ffffff26;animation:village-float var(--float-dur,3.6s) ease-in-out infinite;animation-delay:var(--float-delay,0s)}.village-avatar:before{content:"";position:absolute;inset:2px;border-radius:50%;z-index:2;pointer-events:none;background:conic-gradient(from 0deg,rgba(255,255,255,.65) 0deg,transparent 55deg,transparent 300deg,rgba(255,255,255,.65) 360deg);animation:village-spin 4.5s linear infinite}.village-avatar:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 24%,#ffffff59,#fff0 32%);z-index:2;pointer-events:none}.village-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;border-radius:50%}.village-avatar svg{width:24px;height:24px;position:relative;z-index:1}.village-dot{position:absolute;right:1px;bottom:1px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:var(--muted);z-index:3}.village-avatar.online .village-dot{background:var(--department)}.village-bubble{position:relative;margin:0 0 12px;max-width:150px;width:max-content;padding:5px 10px;background:#ffe066;color:#5c4a00;font-size:10px;font-weight:700;line-height:1.35;text-align:center;border-radius:13px;box-shadow:0 6px 14px #141e3c38,0 2px 4px #141e3c26}.village-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border:6px solid transparent;border-top-color:#ffe066;filter:drop-shadow(0 2px 1px rgba(20,30,60,.15))}.village-card-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;min-width:0;max-width:100%}.village-card b{font-size:13px}.village-dept-tag{background:var(--surface-soft);color:var(--dept-c);border-radius:8px;padding:1px 7px;font-size:10px;font-weight:700}.village-status-row{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;color:var(--secondary);max-width:100%;min-width:0}.village-online-icon{flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted)}.village-online-icon.online{background:var(--department)}.village-status-row em{font-style:normal;flex:none}.village-status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.village-message{position:relative;margin-top:5px;max-width:150px;width:max-content;padding:5px 10px;background:var(--primary-soft);color:#145acc;font-size:10px;font-weight:700;line-height:1.35;text-align:center;border-radius:13px;box-shadow:0 6px 14px #141e3c29,0 2px 4px #141e3c1a}.village-message:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border:6px solid transparent;border-bottom-color:var(--primary-soft);filter:drop-shadow(0 -2px 1px rgba(20,30,60,.1))}@media(prefers-reduced-motion:reduce){.village-avatar,.village-avatar:before{animation:none}}.assign-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden;transition:box-shadow .15s}.assign-card:hover{box-shadow:0 2px 10px #141e3c14}.assign-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;background:var(--surface-soft);border-bottom:1px solid var(--border-light)}.assign-card-actions{display:flex;align-items:center;gap:4px}.assign-card-actions button{flex:none;padding:4px 6px}.assign-card-actions button svg{width:13px;height:13px;flex:none;min-width:13px;min-height:13px}.assign-add-button{color:var(--primary);border:1px solid var(--border);background:#fff;border-radius:7px}.assign-card-body{display:flex;flex-direction:column;gap:8px;border:0;background:transparent;padding:12px;text-align:left;flex:1}.assign-card-title{font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.assign-card-meta{display:flex;flex-direction:column;gap:2px;color:var(--secondary);font-size:11px}.assign-card-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-card-stats{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:auto;font-size:11px;color:var(--secondary)}.assign-card-stats em{font-style:normal;font-weight:700;color:var(--primary)}.assign-card-kind{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;flex:none;margin-right:auto}.assign-card-work{border-left:3px solid var(--department)}.assign-card-work .assign-card-kind{color:var(--department);background:var(--department-soft)}.assign-card-detail{border-left:3px solid var(--primary)}.assign-card-detail .assign-card-kind{color:var(--primary);background:var(--primary-soft)}.assign-card-milestone{border-left:3px solid var(--milestone)}.assign-card-milestone .assign-card-kind{color:var(--milestone);background:var(--milestone-soft)}.assign-progress{display:flex;align-items:center;gap:8px}.assign-bar{flex:1;height:10px;background:#e9eef5;border-radius:5px;overflow:hidden}.assign-bar b{display:block;height:100%;border-radius:5px;background:var(--primary)}.assign-card-work .assign-bar b{background:var(--department)}.assign-card-milestone .assign-bar b{background:var(--milestone)}.assign-progress small{flex:none;color:var(--secondary);font-size:11px;font-weight:700}.mytask-card.mytask-late{border-left:3px solid var(--danger)}.mytask-card.mytask-late .assign-card-kind{color:var(--danger);background:var(--danger-soft)}.mytask-card.mytask-late .assign-bar b{background:var(--danger)}.mytask-card.mytask-in_progress{border-left:3px solid var(--primary)}.mytask-card.mytask-in_progress .assign-card-kind{color:var(--primary);background:var(--primary-soft)}.mytask-card.mytask-todo{border-left:3px solid var(--secondary)}.mytask-card.mytask-todo .assign-card-kind{color:var(--secondary);background:color-mix(in srgb,var(--secondary) 12%,#fff)}.mytask-card.mytask-todo .assign-bar b{background:var(--secondary)}.mytask-card.mytask-blocked{border-left:3px solid var(--milestone)}.mytask-card.mytask-blocked .assign-card-kind{color:var(--milestone);background:var(--milestone-soft)}.mytask-card.mytask-blocked .assign-bar b{background:var(--milestone)}.mytask-card.mytask-done{border-left:3px solid var(--department)}.mytask-card.mytask-done .assign-card-kind{color:var(--department);background:var(--department-soft)}.mytask-card.mytask-done .assign-bar b{background:var(--department)}.mytask-card.mytask-cancelled{border-left:3px solid var(--muted)}.mytask-card.mytask-cancelled .assign-card-kind{color:var(--muted);background:color-mix(in srgb,var(--muted) 14%,#fff)}.mytask-card.mytask-cancelled .assign-bar b{background:var(--muted)}.order-form fieldset{border-left:3px solid var(--accent,var(--primary))}.report-kpi>div{border-left:3px solid var(--accent,var(--primary))}.proj-card{border-left:3px solid var(--accent,var(--primary))}.proj-card-mine{background:color-mix(in srgb,var(--accent,var(--primary)) 14%,#fff);border-color:var(--accent,var(--primary))}.proj-card-mine:hover{background:color-mix(in srgb,var(--accent,var(--primary)) 22%,#fff)}.proj-copy-picker{max-width:864px;margin:0 auto 14px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.proj-copy-picker label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:#263e62;flex-wrap:wrap}.proj-copy-picker select{height:38px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 10px;font-size:12px;min-width:240px}.proj-copy-picker small{color:var(--secondary)}.proj-copy-hint{margin:10px 0 0;font-size:12px;color:#0c447c;background:var(--primary-soft);border-radius:7px;padding:8px 11px}.order-form{max-width:840px}.order-form .req{color:var(--danger);font-style:normal;font-weight:700;margin-left:3px}.order-form fieldset{border:1px solid var(--border);border-radius:10px;padding:12px 16px 14px;margin:0 0 14px}.order-form legend{font-size:13px;font-weight:700;color:#263e62;padding:0 6px}.order-form textarea,.admin-fields textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fff;font:inherit;resize:vertical}.equip-cat{display:grid;grid-template-columns:104px 1fr;gap:8px 12px;align-items:start;padding:9px 0;border-top:1px solid var(--border-light)}.equip-cat:first-of-type{border-top:0}.equip-cat>b{font-size:12px;padding-top:5px}.equip-add{display:flex;gap:6px;grid-column:2}.equip-add input{flex:1;min-width:0;height:32px;border:1px solid var(--border);border-radius:7px;padding:0 9px;font-size:12px;background:#fff}.equip-add button{height:32px;border:1px solid var(--border);border-radius:7px;background:#fff;padding:0 12px;font-size:12px;white-space:nowrap}.equip-pick{display:flex;flex-direction:column;gap:6px;grid-column:2}.equip-pick>select{height:32px;border:1px solid var(--border);border-radius:7px;padding:0 9px;font-size:12px;background:#fff;align-self:flex-start;min-width:180px}.doc-form .equip-pick>select{border:1px solid var(--doc-line);border-radius:0;height:33px}.ms-row{clear:both;display:grid;grid-template-columns:1.3fr 140px 150px 30px;gap:8px;align-items:start;margin:0 0 8px}.ms-title{display:grid;gap:6px}.ms-row select,.ms-row input{height:32px;border:1px solid var(--border);border-radius:7px;padding:0 9px;font-size:12px;background:#fff;min-width:0}.ms-row>input[type=date]{margin-top:0}.ms-row button{height:30px;width:30px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--secondary);font-size:15px;line-height:1;align-self:start}.ms-dept-select{height:32px;border:1px solid var(--border);border-radius:7px;padding:0 8px;font-size:12px;background:#fff;min-width:0}.doc-form .ms-dept-select{border:1px solid var(--doc-line);border-radius:0;height:33px}.ms-add{clear:both;display:inline-block;border:1px dashed var(--border);border-radius:7px;background:#fff;padding:7px 12px;font-size:12px;color:var(--secondary)}@media(max-width:760px){.ms-row{grid-template-columns:1fr;gap:6px}.ms-row button{justify-self:end;width:auto;padding:0 10px}}.chip-list span button{margin-left:6px;border:0;background:none;color:inherit;cursor:pointer;font:inherit;padding:0;line-height:1}@media(max-width:760px){.equip-cat{grid-template-columns:1fr}.equip-cat>b{padding-top:0}.equip-add,.equip-pick{grid-column:auto}}.toolbar-right{display:flex;align-items:center;gap:10px}.toolbar-add,.toolbar-print,.toolbar-filter{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:0;border-radius:50%}.toolbar-add svg,.toolbar-print svg,.toolbar-filter svg{width:18px;height:18px;color:#fff}.toolbar-add{background:linear-gradient(145deg,#63a3ff,#1f61df);box-shadow:0 4px 11px #1f61df66,inset 0 1px #ffffff59}.toolbar-print{background:linear-gradient(145deg,#97a5b9,#4b5768);box-shadow:0 4px 11px #3c485a61,inset 0 1px #ffffff4d}.toolbar-filter{background:linear-gradient(145deg,#c4b5fd,#7c3aed);box-shadow:0 4px 11px #7c3aed66,inset 0 1px #ffffff59}.toolbar-filter.on{box-shadow:0 2px 6px #7c3aed80,inset 0 0 0 2px #ffffff8c}.calendar-filter-box{position:relative}.filter-badge{position:absolute;top:-4px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;box-shadow:0 0 0 2px #fff}.calendar-filter-drop{position:absolute;top:48px;right:0;z-index:30;width:264px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 44px #0f1b3d2e;padding:14px;max-height:70vh;overflow:auto}.calendar-filter-drop h4{font-size:12px;margin:14px 0 7px;color:var(--secondary)}.calendar-filter-drop h4:first-child{margin-top:0}.calendar-filter-drop select{width:100%;height:38px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 10px;font-size:12px}.calendar-filter-drop .check{margin:8px 0}.calendar-filter-drop .filter-apply{width:100%;justify-content:center;margin-top:14px}@media(max-width:760px){.calendar-toolbar{flex-direction:column;align-items:stretch;gap:6px}.calendar-toolbar>div:first-child{display:flex;align-items:center;gap:7px}.toolbar-right{display:flex;width:100%;margin-top:0}.toolbar-add,.toolbar-print{display:none}.segments{display:grid!important;grid-template-columns:repeat(4,1fr);width:100%;gap:2px}.segments button{min-width:0;padding:9px 0;font-size:13px;border-radius:6px}.days .day{min-height:66px;height:auto}.mobile-dots{max-width:52px}.calendar-filter-drop{position:fixed;inset:auto 0 0;width:auto;border-radius:14px 14px 0 0;max-height:75vh;box-shadow:0 -10px 40px #0f1b3d38}}.repo-upload{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:0 0 16px;background:color-mix(in srgb,var(--accent,var(--primary)) 4%,#fff)}.repo-upload-wrap{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:120;padding:24px}.repo-upload-modal{width:min(640px,calc(100vw - 32px));max-height:90vh;overflow:auto;margin:0;border:0;border-radius:14px;padding:22px;background:#fff;box-shadow:0 20px 60px #0f1b3d38}.repo-upload-modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.repo-upload-modal>header h2{margin:0;font-size:20px}.repo-upload-modal .repo-upload-grid{grid-template-columns:1fr 1fr}.repo-upload-grid{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1.6fr) minmax(140px,1fr);gap:8px;align-items:center}.repo-upload input,.repo-upload select,.repo-upload textarea{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fff;font:inherit}.repo-upload textarea{width:100%;margin-top:8px;resize:vertical}.repo-upload-actions{display:flex;justify-content:flex-end;margin-top:8px}.repo-upload-actions .primary{padding:6px 16px;font-size:12px;box-shadow:none}.repo-file-label{display:flex;align-items:center;gap:7px;border:1px dashed var(--border);border-radius:8px;padding:8px 10px;background:#fff;cursor:pointer;overflow:hidden}.repo-file-label svg{width:16px;flex:none;color:var(--accent,var(--primary))}.repo-file-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.repo-file-label input,.repo-cam-label{display:none}.repo-list{display:flex;flex-direction:column;gap:8px}.repo-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;border:1px solid var(--border);border-radius:9px;padding:10px 12px;background:#fff}.repo-item-main{min-width:0;flex:1}.repo-item-main>b{display:block;font-family:inherit;font-size:13px;font-weight:700;margin-bottom:3px}.repo-item-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-family:inherit;font-size:11px;color:var(--secondary)}.repo-cat{background:color-mix(in srgb,var(--accent,var(--primary)) 14%,#fff);color:var(--accent,var(--secondary));border-radius:5px;padding:1px 7px;font-family:inherit;font-size:11px;font-weight:700}.repo-item-desc{margin:6px 0 0;font-family:inherit;font-size:12px;color:var(--secondary);white-space:pre-wrap}.repo-item-actions{display:flex;gap:4px;flex:none}.repo-item-actions button,.repo-item-actions a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);cursor:pointer}.repo-item-actions svg{width:16px;height:16px;flex:none;min-width:16px;min-height:16px}.repo-item-actions .danger-button{color:var(--danger)}.repo-preview-wrap{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:120;padding:24px}.repo-preview{background:#fff;border-radius:12px;width:min(920px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.repo-preview>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.repo-preview>header small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.repo-preview>header button{border:0;background:none;cursor:pointer;color:var(--muted)}.repo-preview-body{flex:1;overflow:auto;background:var(--surface,#f6f8fb);display:flex;align-items:center;justify-content:center;padding:14px}.repo-preview-body img{max-width:100%;max-height:78vh;object-fit:contain}.repo-preview-body iframe{width:100%;height:76vh;border:0;background:#fff}.repo-preview-body pre{align-self:stretch;margin:0;width:100%;white-space:pre-wrap;word-break:break-word;font:12.5px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text)}.repo-preview>footer{padding:10px 16px;border-top:1px solid var(--border);text-align:right}.repo-preview>footer a{display:inline-block;padding:8px 16px;border-radius:8px;text-decoration:none}@media(max-width:760px){.repo-upload-grid{grid-template-columns:1fr}.repo-item{flex-direction:column}.repo-item-actions{align-self:flex-end}.repo-cam-label{display:flex;justify-content:center;border-style:solid;border-color:#5a708f;background:#5a708f;color:#fff}.repo-cam-label svg{color:#fff}.repo-upload-actions .primary{width:100%;justify-content:center}}.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}nav button.active .nav-badge{background:#fff;color:var(--danger)}.note-target{display:flex;flex-wrap:wrap;gap:8px}.note-target label{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer}.note-target label.on{border-color:#82aafc;background:var(--primary-soft);color:#145acc;font-weight:600}.note-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;max-height:180px;overflow:auto;border:1px solid var(--border-light);border-radius:8px;padding:8px;margin-top:8px}.note-roster label{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:7px;background:var(--surface-soft);font-size:12px;cursor:pointer}.note-roster label.on{background:var(--primary-soft);color:#145acc}.note-roster label small{margin-left:auto;color:var(--secondary)}.note-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none}.note-recips{display:flex;flex-wrap:wrap;gap:6px}.note-recips span{display:inline-flex;align-items:center;gap:5px;font-size:12px;border:1px solid var(--border);border-radius:14px;padding:3px 10px;color:var(--secondary)}.note-recips span.read{border-color:#bfe6d3;background:var(--department-soft);color:#087b58;font-weight:600}.note-recips span svg{width:13px}.note-recips .note-pending{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--muted)}.note-del{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:6px 10px}.note-del svg{width:14px}@media(max-width:760px){.note-roster{grid-template-columns:1fr 1fr}}.aux-body:has(.note-feed){display:flex;flex-direction:column;overflow:hidden;padding:0}.aux-body:has(.note-feed)>.admin-success,.aux-body:has(.note-feed)>.auth-error{margin:12px 20px 0}.note-feed{flex:1;min-height:0;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;gap:2px}.note-bubble-row{width:100%;display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:12px}.note-bubble-row:hover{background:var(--surface-soft)}.note-bubble-row.unread{background:var(--primary-soft)}.note-bubble-row.out{justify-content:flex-end}.note-avatar{flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#b7c4d6;color:#fff;display:grid;place-items:center}.note-avatar img{width:100%;height:100%;object-fit:cover}.note-avatar svg{width:22px}.note-bubble-col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:1}.note-bubble-col.out{align-items:flex-end;flex:none;max-width:78%}.note-bubble-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.note-bubble-btn.out{align-items:flex-end}.note-sender{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#263e62}.note-bubble{position:relative;max-width:100%;background:#ffd93d;color:#3d3110;border-radius:3px 14px 14px;padding:10px 13px;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 3px #141e371f}.note-bubble-tail{position:absolute;top:0;left:-6px;width:0;height:0;border-style:solid;border-width:0 7px 8px 0;border-color:transparent #ffd93d transparent transparent}.note-bubble.out{background:#e7ecf5;color:#1c2233;border-radius:14px 3px 14px 14px}.note-bubble-tail.out{left:auto;right:-6px;border-width:0 0 8px 7px;border-color:transparent transparent transparent #e7ecf5}.note-time{font-size:10px;color:var(--muted)}.note-attachments{display:flex;flex-wrap:wrap;gap:6px}.note-attachments.out{justify-content:flex-end}.note-attachments a{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#0c447c;background:var(--primary-soft);border:1px solid #cfe0ff;border-radius:14px;padding:4px 10px 4px 8px}.note-attachments a:hover{background:#dce8ff}.note-attachments svg{width:12px}.note-recips-pop{margin-top:4px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:8px;align-items:flex-end;box-shadow:var(--shadow)}@media(max-width:760px){.note-avatar{width:34px;height:34px}.note-bubble{font-size:12.5px;padding:9px 12px}.note-bubble-col.out{max-width:85%}}.note-composer{flex:none;border-top:1px solid var(--border);background:#fff;padding:10px 16px}.note-target-pop{border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);padding:10px 12px;margin-bottom:8px}.note-composer-row{display:flex;align-items:center;gap:8px}.note-target-toggle{flex:none;font-size:11px;font-weight:700;color:#33405c;border:1px solid var(--border);border-radius:16px;padding:7px 12px;background:#fff;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.note-target-toggle.on{border-color:#82aafc;background:var(--primary-soft);color:#145acc}.note-attach-mini{flex:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;background:#fff;cursor:pointer;color:#33405c}.note-attach-mini svg{width:16px}.note-attach-mini input{display:none}.note-composer-row>input{flex:1;min-width:0;height:38px;border:1px solid var(--border);border-radius:19px;padding:0 16px;font-size:13px;background:var(--surface-soft)}.note-send-btn{flex:none;width:38px;height:38px;border-radius:50%;padding:0;display:grid;place-items:center}.note-send-btn svg{width:16px}.note-attach-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:5px}.note-attach-list li{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:7px;padding:6px 9px;font-size:12px;background:#fafbfd}.note-attach-list svg{width:13px;color:var(--secondary);flex:none}.note-attach-list span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-attach-list small{color:var(--secondary);flex:none}.note-attach-list button{border:0;background:transparent;padding:2px;display:grid;place-items:center;color:var(--danger)}.note-attach-list button svg{width:13px}.calendar-print-sheet{display:none}@media print{@page cal{size:A4 landscape;margin:8mm}.calendar-print-sheet{display:block!important;page:cal;font-family:Noto Sans KR,Malgun Gothic,sans-serif;color:#1c1e2c}.calendar-print-sheet .cps-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2pt solid #1c1e2c;padding-bottom:5pt;margin-bottom:7pt}.calendar-print-sheet .cps-head b{font-size:15pt;font-weight:700}.calendar-print-sheet .cps-head span{font-size:7.5pt;letter-spacing:.06em;color:#83879a}.calendar-print-sheet .cps-grid{width:100%;border-collapse:collapse;table-layout:fixed}.calendar-print-sheet .cps-grid th{border:.5pt solid #9aa0ad;background:#eef0f4;font-size:8pt;font-weight:700;padding:3pt}.calendar-print-sheet .cps-grid td{border:.5pt solid #9aa0ad;vertical-align:top;height:24mm;padding:2.5pt;overflow:hidden}.calendar-print-sheet .cps-grid td.muted{background:#f7f8fa;color:#9aa1ad}.calendar-print-sheet .cps-date{display:block;font-size:8pt;font-weight:700;margin-bottom:2pt}.calendar-print-sheet .cps-ev{display:block;font-size:7pt;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.5pt 3pt;margin-bottom:1.2pt;border-radius:2pt;background:#e9effc}.calendar-print-sheet .cps-ev.department{background:#e4f5ee}.calendar-print-sheet .cps-ev.member{background:#efe8fd}.calendar-print-sheet .cps-ev.milestone{background:#ffe9cf}.calendar-print-sheet .cps-ev.company-event{background:#eef1f5}.calendar-print-sheet .cps-ev.dept-event{background:#e0f5f2}.calendar-print-sheet .cps-more{display:block;font-size:6.5pt;color:#83879a;padding:0 3pt}}@media(max-width:760px){.body-grid>aside:first-child{left:0!important;transform:translate(-100%);visibility:hidden;pointer-events:none;transition:transform .22s ease,visibility 0s linear .22s}.body-grid>aside:first-child.open{transform:none;visibility:visible;pointer-events:auto;transition:transform .22s ease}}.drawer-profile{display:none}@media(max-width:760px){.drawer-profile{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;padding:8px 10px;margin:0 0 12px}.drawer-profile-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;text-align:left}.drawer-profile .profile-avatar{position:relative;flex:none;width:38px;height:38px;border-radius:50%;background:#7890b2;color:#fff;display:grid;place-items:center;overflow:hidden}.drawer-profile .profile-avatar svg{width:20px;height:20px;color:#fff}.drawer-profile-text{min-width:0;display:grid;gap:2px}.drawer-profile-text b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-profile-text small{font-size:11px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-profile>.icon-btn{flex:none;width:38px;height:38px;border:1px solid var(--border);background:#fff}}.matrix-wrap{overflow:auto;max-height:70vh}.matrix thead th{position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--border)}.matrix thead th.mx-corner{position:sticky;left:0;z-index:4;box-shadow:1px 0 0 var(--border),inset 0 -1px 0 var(--border)}.matrix tfoot td{position:sticky;bottom:0;z-index:2;box-shadow:inset 0 1px 0 var(--border)}.matrix tfoot td:first-child{left:0;z-index:3;box-shadow:1px 0 0 var(--border),inset 0 1px 0 var(--border)}.purchase-form .admin-fields textarea{width:100%}.purchase-items{border:1px solid var(--border);border-radius:8px;padding:10px;margin:12px 0}.pi-head,.pi-row{display:grid;grid-template-columns:1.4fr 1fr 70px 60px 100px 110px 34px;gap:6px;align-items:center}.pi-head{font-size:11px;font-weight:700;color:var(--secondary);padding:0 2px 6px}.pi-row{margin-bottom:6px}.pi-row input{border:1px solid var(--border);border-radius:7px;padding:7px 8px;background:#fff;font:inherit;min-width:0}.pi-amt{font-size:12px;text-align:right;white-space:nowrap}.pi-del{padding:6px;display:inline-flex}.pi-del svg{width:14px}.pi-add{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:7px 12px;border:1px dashed var(--border);border-radius:7px;background:#fff}.pi-add svg{width:14px}.pi-total{text-align:right;margin-top:8px;font-size:13px}.pi-total b{font-size:15px;color:var(--accent,var(--primary));margin:0 4px}.pi-total small{color:var(--secondary)}.pv-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:#fff}.pv-table{width:100%;border-collapse:collapse;font-size:13px}.stats-tabs{margin-bottom:12px}.stats-table{font-size:12px;white-space:nowrap}.stats-table th,.stats-table td{padding:8px 10px}.stats-table .pv-title{max-width:none}.pv-table thead th{text-align:left;padding:10px 13px;background:var(--surface-soft);color:var(--secondary);font-size:11px;font-weight:700;white-space:nowrap;border-bottom:1px solid var(--border)}.pv-table tbody td{padding:10px 13px;border-bottom:1px solid var(--border-light);vertical-align:middle}.pv-row{cursor:pointer}.pv-row:hover td{background:var(--surface-soft)}.pv-row.on td{background:var(--primary-soft)}.pv-row.pv-row-locked{cursor:default}.pv-row.pv-row-locked td{opacity:.6}.pv-row.pv-row-locked:hover td{background:transparent}.pv-title{font-weight:700;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-badge{display:inline-block;flex:none;font-size:11px;font-weight:700;border-radius:12px;padding:2px 9px;white-space:nowrap}.pv-badge.sub{background:var(--surface-soft);color:var(--secondary)}.pv-badge.rcv{background:var(--primary-soft);color:#145acc}.pv-badge.ord{background:var(--milestone-soft);color:#e66c00}.pv-badge.arr{background:#e6f7f5;color:#0d7a70}.pv-badge.done{background:var(--department-soft);color:#087b58}.pv-badge.rej{background:var(--danger-soft);color:var(--danger)}.pv-badge.cnl{background:var(--surface-soft);color:var(--muted)}.pv-stage-hint{display:block;margin-top:3px;font-size:10.5px;color:var(--muted)}.pv-action-cell{display:flex;flex-wrap:wrap;gap:6px}.pv-action-cell button{font-size:11px;padding:5px 10px}.pv-action-cell small{color:var(--muted)}.pv-detail-row td{background:#fbfcfe;padding:16px}.pv-status-note{margin:10px 0 0;font-size:12px;color:var(--secondary)}.pv-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:10px}.pv-actions button{font-size:12px;padding:7px 14px}.proposal-status{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:var(--surface-soft);color:var(--secondary)}.proposal-status-pending_ceo{background:var(--milestone-soft);color:#e66c00}.proposal-status-adopted{background:var(--department-soft);color:#109b6b}.proposal-status-rejected{background:#fde2e4;color:#c23b4a}.proposal-engagement{margin-top:16px}.proposal-engagement .doc-approval-table th:last-child,.proposal-engagement .doc-approval-table td:last-child{border-left:1.2pt solid #1c1e2c}.proposal-ceo-reason{margin:8pt 0 0;font-size:8.5pt;color:#5b6270}.proposal-vote-actions{display:flex;align-items:center;gap:8pt;margin-top:9pt}.proposal-vote-actions button{font-size:8.5pt;padding:5pt 10pt}.proposal-vote-actions small{color:#83879a}.proposal-ceo-decision{margin-top:9pt}.proposal-ceo-decision textarea{width:100%;min-height:50pt;border:.6pt solid #d7dbe6;border-radius:4px;padding:6pt 8pt;font:inherit;font-size:9pt;resize:vertical}.proposal-reactions{display:flex;align-items:center;gap:10pt}.proposal-react{display:flex;align-items:center;gap:5pt;font-size:9pt;font-weight:700;padding:6pt 11pt;border-radius:20pt}.proposal-react svg{width:13pt;height:13pt}.proposal-react.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.proposal-reactions small{color:#83879a}.proposal-comment-row{display:flex;align-items:baseline;gap:7pt;padding:6pt 0;border-bottom:.6pt solid #edf0f5;font-size:9pt}.proposal-comment-row b{flex:none;font-size:9pt}.proposal-comment-row span{flex:1;color:#1c1e2c}.proposal-comment-row small{flex:none;color:#83879a;font-size:7.5pt}.proposal-comment-form{display:flex;gap:7pt;margin-top:9pt}.proposal-comment-form input{flex:1;height:30pt;border:.6pt solid #d7dbe6;border-radius:4px;padding:0 8pt;font:inherit;font-size:9pt}.proposal-comment-form button{font-size:8.5pt;padding:0 12pt}.pv-actions button.journal-act,.pv-action-cell button.journal-act{padding:0}@media(max-width:760px){.pv-purchase{overflow:visible;background:transparent;border:0;border-radius:0}.pv-purchase .pv-table{width:100%;display:block;border-collapse:separate}.pv-purchase .pv-table thead{display:none}.pv-purchase .pv-table tbody{display:block}.pv-purchase .pv-table tr.pv-row{display:block;background:#fff;border:1px solid var(--border);border-radius:10px;padding:2px 14px;margin-bottom:10px;box-shadow:var(--shadow);cursor:default}.pv-purchase .pv-table tr.pv-row.on{border-radius:10px 10px 0 0;margin-bottom:0;border-bottom:0}.pv-purchase .pv-table tr.pv-row td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-light)}.pv-purchase .pv-table tr.pv-row td:last-child{border-bottom:0}.pv-purchase .pv-table tr.pv-row td:nth-child(1):before{content:"제목";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-purchase .pv-table tr.pv-row td:nth-child(2):before{content:"구매처";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-purchase .pv-table tr.pv-row td:nth-child(3):before{content:"신청자";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-purchase .pv-table tr.pv-row td:nth-child(4):before{content:"상태";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-purchase .pv-table .pv-title{max-width:none;white-space:normal;overflow:visible;text-overflow:clip;text-align:right}.pv-purchase .pv-table tr.pv-row td.pv-action-cell{justify-content:flex-end;padding-top:11px}.pv-purchase .pv-table tr.pv-detail-row{display:block;border:1px solid var(--border);border-top:0;border-radius:0 0 10px 10px;margin-bottom:10px}.pv-purchase .pv-table tr.pv-detail-row td{display:block;padding:14px}.pv-purchase .pv-table tr.pv-row:hover td{background:none}}@media(max-width:760px){.pv-request{overflow:visible;background:transparent;border:0;border-radius:0}.pv-request .pv-table{width:100%;display:block;border-collapse:separate}.pv-request .pv-table thead{display:none}.pv-request .pv-table tbody{display:block}.pv-request .pv-table tr{display:block;background:#fff;border:1px solid var(--border);border-radius:10px;padding:2px 14px;margin-bottom:10px;box-shadow:var(--shadow)}.pv-request .pv-table tr:last-child{margin-bottom:0}.pv-request .pv-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-light)}.pv-request .pv-table td:last-child{border-bottom:0}.pv-request .pv-table td:nth-child(1):before{content:"상태";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-request .pv-table td:nth-child(3):before{content:"신청자";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-request .pv-table td:nth-child(4):before{content:"신청일";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-request .pv-table td:nth-child(5):before{content:"요청부서";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-request .pv-table td:nth-child(6):before{content:"관리부";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.pv-request .pv-table td:nth-child(2){display:block;font-weight:700;font-size:13px;padding-top:10px}.pv-request .pv-table td:last-child{justify-content:flex-end;padding-top:11px}}@media(max-width:760px){.pi-head{display:none}.pi-row{grid-template-columns:1fr 1fr;gap:5px}.pi-row input:nth-child(1){grid-column:1/-1}.pi-amt{grid-column:1/2;text-align:left}.pi-del{grid-column:2/3;justify-self:end}}@media print{.print-sheet .doc-itemtable{width:100%;border-collapse:collapse;margin-top:12pt;font-size:9pt}.print-sheet .doc-itemtable th,.print-sheet .doc-itemtable td{border:.6pt solid #b9bcc8;padding:5pt 6pt;text-align:right}.print-sheet .doc-itemtable thead th{background:#f2f3f6;font-weight:700;text-align:center}.print-sheet .doc-itemtable td.l,.print-sheet .doc-itemtable th:first-child,.print-sheet .doc-itemtable th:nth-child(2){text-align:left}.print-sheet .doc-itemtable tfoot td{background:#f6f7f9;font-weight:700}.print-sheet .doc-note{margin-top:10pt;font-size:8pt;color:#5b6270}.print-sheet .doc-journal-keywords{clear:both;margin-top:10pt;padding:6pt 8pt;background:#f7f8fa;border:.6pt solid #d7dbe6;font-size:8.5pt;color:#33405c;word-break:break-word}.print-sheet .doc-journal-keywords b{margin-right:8pt;color:#83879a;font-weight:700}.print-sheet .doc-journal-sec{margin-top:13pt}.print-sheet .doc-journal-sec h4{display:flex;align-items:center;gap:6pt;margin:0 0 5pt;font-size:9.5pt;font-weight:700;color:#1c1e2c;border-bottom:1pt solid #1c1e2c;padding-bottom:3pt}.print-sheet .doc-journal-sec h4 span{font-size:7.5pt;font-weight:400;color:#83879a}.print-sheet .doc-journal-table{width:100%;border-collapse:collapse;font-size:9pt}.print-sheet .doc-journal-table th,.print-sheet .doc-journal-table td{border:.6pt solid #d7dbe6;padding:5pt 6pt;text-align:left}.print-sheet .doc-journal-table thead th{background:#f2f3f6;font-weight:700;font-size:8pt;color:#5b6270}.print-sheet .doc-journal-table th:first-child,.print-sheet .doc-journal-table td:first-child{width:150pt;font-weight:700}.print-sheet .doc-journal-table td{white-space:pre-wrap;word-break:break-word}.print-sheet .doc-journal-note{margin:0;min-height:44pt;padding:6pt;border:.6pt solid #d7dbe6;font-size:9pt;line-height:1.6;white-space:pre-wrap;word-break:break-word}.print-sheet .doc-approval-table{width:100%;border-collapse:collapse;font-size:9pt;table-layout:fixed}.print-sheet .doc-approval-table th,.print-sheet .doc-approval-table td{border:.6pt solid #d7dbe6;padding:6pt 8pt;text-align:center}.print-sheet .doc-approval-table thead th{background:#f2f3f6;font-weight:700;font-size:8pt;color:#5b6270}.print-sheet .doc-approval-table td{height:30pt;vertical-align:middle}.print-sheet .doc-approval-table td b{display:block;font-size:10pt}.print-sheet .doc-approval-table td small{display:block;font-size:7.5pt;color:#83879a}.print-sheet .doc-approval-pending{color:#b3b7c2;font-size:8.5pt}.print-sheet .doc-approval-group-row th{background:#e7e9f2;font-weight:800;font-size:7.5pt;letter-spacing:.02em;color:#1c1e2c;border-bottom:none}}.pv-att{border:1px solid var(--border-light);border-radius:8px;padding:10px 12px;margin:0 0 10px;background:#fff}.pv-att h4{margin:0 0 8px;font-size:12px;color:#263e62;display:flex;align-items:center;gap:6px}.pv-att h4 span{background:var(--surface-soft);color:var(--secondary);border-radius:9px;padding:1px 7px;font-size:11px;font-weight:700}.pv-att-row{display:flex;align-items:center;gap:10px;font-size:12px;padding:5px 0;border-bottom:1px solid var(--border-light)}.pv-att-row:last-of-type{border-bottom:0}.pv-att-row a,.pv-att-row .pv-att-name{flex:none;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-att-row small{flex:1;min-width:0;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-att-row .danger-button{flex:none;padding:4px 7px}.pv-att-row .danger-button svg{width:13px}.pv-att-row .pv-att-icon{flex:none;max-width:none;display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#33405c}.pv-att-row .pv-att-icon svg{width:13px}.pv-att-add{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:7px 12px;border:1px dashed var(--border);border-radius:7px;background:#fff;cursor:pointer;margin-top:8px}.pv-att-add svg{width:14px;color:var(--accent,var(--primary))}.pv-att-add input{display:none}.ipf-att-add{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:7px 12px;border:1px dashed var(--border);border-radius:7px;background:#fff;cursor:pointer}.ipf-att-add svg{width:14px;color:var(--primary)}.ipf-att-add input{display:none}.ipf-att-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.ipf-att-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:7px;font-size:12px}.ipf-att-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions .icon-btn,.header-actions .medal-badge{border:0;transition:transform .12s ease,box-shadow .12s ease}.header-actions .icon-btn{border-radius:50%;color:#fff}.header-actions .icon-btn svg{color:#fff;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.28))}.header-actions .icon-btn:hover,.header-actions .medal-badge:hover{transform:translateY(-1px)}.header-actions .medal-badge{position:relative;width:42px;height:42px;padding:0;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ffd873,#e59208);color:#5b3c00;box-shadow:0 4px 11px #d692096b,inset 0 1px #ffffff80}.header-actions .medal-badge svg{width:20px;color:#5b3c00;filter:drop-shadow(0 1px 1px rgba(255,255,255,.5))}.header-actions .medal-badge:hover{background:linear-gradient(145deg,#ffdf8c,#ec9a12);box-shadow:0 6px 15px #d6920980,inset 0 1px #ffffff80}.medal-count{position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#fff;color:#b26a00;font-size:10px;font-weight:800;line-height:16px;text-align:center;box-shadow:0 1px 3px #b4780066}.header-actions .notif-box>.icon-btn{background:linear-gradient(145deg,#63a3ff,#1f61df);box-shadow:0 4px 11px #1f61df70,inset 0 1px #ffffff61}.header-actions .notif-box>.icon-btn:hover{box-shadow:0 6px 15px #1f61df85,inset 0 1px #ffffff61}.header-actions>.icon-btn{background:linear-gradient(145deg,#97a5b9,#4b5768);box-shadow:0 4px 11px #3c485a66,inset 0 1px #ffffff52}.header-actions>.icon-btn:hover{box-shadow:0 6px 15px #3c485a7a,inset 0 1px #ffffff52}.header-actions>button[aria-label=로그아웃]{background:linear-gradient(145deg,#ff909b,#e13b4d);box-shadow:0 4px 11px #e13b4d70,inset 0 1px #ffffff52}.header-actions>button[aria-label=로그아웃]:hover{box-shadow:0 6px 15px #e13b4d85,inset 0 1px #ffffff52}.header-actions .icon-btn,.header-actions .medal-badge{width:42px;height:42px}.header-actions .icon-btn svg,.header-actions .medal-badge svg{width:20px;height:20px}.header-actions>.profile>.profile-avatar{width:42px;height:42px}.header-actions>.profile>.profile-avatar svg{width:22px;height:22px}.header-actions>.profile>.profile-avatar{background:linear-gradient(145deg,#8ba0bd,#586e8e);box-shadow:0 4px 11px #2d3e5c6b,inset 0 1px #ffffff59;transition:transform .12s ease,box-shadow .12s ease}.header-actions>.profile:hover>.profile-avatar{transform:translateY(-1px);box-shadow:0 6px 15px #2d3e5c80,inset 0 1px #ffffff59}.header-actions>.profile>.profile-avatar:after{content:"";position:absolute;inset:0;border-radius:50%;z-index:2;pointer-events:none;box-shadow:inset 0 2px 3px #ffffff52,inset 0 -4px 7px #00000029}.header-actions>.profile>.profile-avatar svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.3))}.signage header{gap:clamp(10px,1.4vw,24px)}.signage header h1{font-size:clamp(20px,2.1vw,40px);margin:0;line-height:1.15}.signage-sub{align-self:center;flex:0 1 auto;min-width:0;font-size:clamp(13px,1.35vw,26px);font-weight:800;color:var(--primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:clamp(10px,1.4vw,24px);border-left:2px solid var(--border)}@media(max-width:760px){.signage header h1{font-size:16px}.signage-sub{font-size:12px;padding-left:8px}}.agenda-card{background:linear-gradient(180deg,#fff,#eef2f8);box-shadow:0 clamp(6px,1vh,18px) clamp(16px,2.6vh,44px) #172a4d2e,0 2px 5px #172a4d1f,inset 0 1px #fffffff2}.agenda-card.milestone{background:linear-gradient(180deg,#fff7ec,#ffe6c7);box-shadow:0 clamp(6px,1vh,18px) clamp(18px,2.8vh,48px) #d678004d,0 2px 5px #d678002e,inset 0 1px #fffffff2}.signage .signage-grid article{box-shadow:inset 0 -1px #172a4d0d}.signage-events>span{box-shadow:0 1px 2px #172a4d24,inset 0 1px #ffffff8c}.signage-week-grid article.today>b{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:clamp(28px,2.9vw,58px);height:clamp(28px,2.9vw,58px);padding:0;line-height:1;border-radius:50%;background:var(--primary);color:#fff;box-shadow:0 2px 7px #2674ff73,inset 0 1px #fff6}.signage .signage-grid article{padding:clamp(3px,.45vw,9px) clamp(3px,.45vw,9px) clamp(4px,.6vw,12px)}.signage-week-grid article>b{align-self:flex-start;line-height:1;margin:0}.signage-week-grid article.today>b{align-self:flex-start;margin:0}.signage header time{font-family:Roboto Mono,Noto Sans Mono,DejaVu Sans Mono,Consolas,Menlo,Noto Sans KR,Pretendard,monospace;font-weight:700;font-size:clamp(16px,1.8vw,36px);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}@media(max-width:760px){.signage header time{font-size:15px}}.tl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:#fff}.tl{min-width:680px}.tl-row{display:grid;grid-template-columns:168px 1fr;align-items:stretch;border-top:1px solid var(--border-light)}.tl-row:first-child{border-top:0}.tl-label{position:sticky;left:0;z-index:5;padding:7px 10px;font-size:12px;display:flex;align-items:center;gap:5px;border-right:1px solid var(--border-light);background:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-label.tl-sub{padding-left:20px;color:var(--secondary)}.tl-dlabel{border:0;border-right:1px solid var(--border-light);background:var(--surface-soft);font-weight:700;cursor:pointer;width:100%;text-align:left;font-size:12px}.tl-caret{color:var(--secondary);font-size:10px;width:11px;flex:none}.tl-none{color:var(--muted)}.tl-track{position:relative;min-height:32px;padding:5px 8px 5px 0}.tl-headrow .tl-track{min-height:22px}.tl-tick{position:absolute;top:2px;font-size:10px;color:var(--secondary);border-left:1px solid var(--border);padding-left:3px;height:14px;white-space:nowrap}.tl-today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--danger);opacity:.5;z-index:2}.tl-msrow{background:#fbfcfe}.tl-msrow .tl-track{min-height:40px}.tl-ms{position:absolute;top:50%;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:3;cursor:pointer}.tl-ms>b{width:12px;height:12px;background:var(--milestone);transform:rotate(45deg);box-shadow:0 1px 3px #e66c008c;flex:none}.tl-ms>span{font-size:10px;font-weight:700;color:var(--milestone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.tl-band{position:absolute;top:50%;transform:translateY(-50%);height:9px;border-radius:5px;background:color-mix(in srgb,var(--primary) 15%,#fff);z-index:0}.tl-dband{background:color-mix(in srgb,#64748b 24%,#fff)}.tl-bar{position:absolute;top:50%;transform:translateY(-50%);height:20px;min-width:3px;border:0;border-radius:5px;background:var(--primary-soft);color:#145acc;display:flex;align-items:center;overflow:hidden;cursor:pointer;box-shadow:inset 0 0 0 1px #145acc47;z-index:1}.tl-bar.department{background:var(--department-soft);color:#0f7a53;box-shadow:inset 0 0 0 1px #0f7a5347}.tl-bar.member{background:var(--member-soft);color:#5a2fb8;box-shadow:inset 0 0 0 1px #5a2fb847}.tl-bar.milestone{background:var(--milestone-soft);color:#c05600}.tl-bar.company-event{background:var(--company-event-soft);color:#475569;box-shadow:inset 0 0 0 1px #47556947}.tl-bar.dept-event{background:var(--dept-event-soft);color:#0d7a70;box-shadow:inset 0 0 0 1px #0d7a7047}.tl-bar.done{opacity:.6}.tl-bar.cancelled{opacity:.4}.tl-bar.blocked{box-shadow:inset 0 0 0 2px var(--danger)}.tl-bar-fill{position:absolute;left:0;top:0;bottom:0;background:currentColor;opacity:.26;border-radius:5px 0 0 5px}.tl-bar-label{position:relative;z-index:1;padding:0 6px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:760px){.tl-row{grid-template-columns:104px 1fr}.tl-label,.tl-dlabel{font-size:11px;padding-left:8px}.tl-label.tl-sub{padding-left:14px}}.tl-span{position:absolute;top:50%;transform:translateY(-50%);height:5px;border-radius:3px;background:color-mix(in srgb,var(--primary) 30%,#fff);z-index:1}.tl-span.department{background:color-mix(in srgb,var(--department) 30%,#fff)}.tl-span.member{background:color-mix(in srgb,var(--member) 30%,#fff)}.tl-span.company-event{background:color-mix(in srgb,var(--company-event) 30%,#fff)}.tl-span.dept-event{background:color-mix(in srgb,var(--dept-event) 30%,#fff)}.tl-span.done{opacity:.5}.tl-span.cancelled{opacity:.3}.tl-span.blocked{background:color-mix(in srgb,var(--danger) 30%,#fff)}.tl-mark{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:25px;height:25px;padding:0;border:0;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:14px;line-height:1;cursor:pointer;z-index:3;box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px color-mix(in srgb,var(--primary) 55%,#fff);transition:transform .1s}.tl-mark.department{box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px color-mix(in srgb,var(--department) 55%,#fff)}.tl-mark.member{box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px color-mix(in srgb,var(--member) 55%,#fff)}.tl-mark.company-event{box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px color-mix(in srgb,var(--company-event) 55%,#fff)}.tl-mark.dept-event{box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px color-mix(in srgb,var(--dept-event) 55%,#fff)}.tl-mark.blocked{box-shadow:0 1px 4px #172a4d4d,inset 0 0 0 2px var(--danger)}.tl-mark.cancelled{opacity:.45}.tl-mark:hover,.tl-mark:focus-visible{transform:translate(-50%,-50%) scale(1.22);z-index:6;outline:none}.tl-pop{position:fixed;z-index:120;transform:translate(-50%,calc(-100% - 12px));max-width:300px;background:#1f2b45;color:#fff;padding:8px 11px;border-radius:9px;font-size:12px;line-height:1.5;box-shadow:0 10px 30px #0f1b3d52;pointer-events:none;display:grid;gap:2px}.tl-pop b{font-size:12.5px}.tl-pop span{color:#c8d3e6}.tl-pop p{margin:3px 0 0;color:#e6ecf6;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.tl-pop:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1f2b45}.tl-track{overflow:hidden}.tl-lbl{position:absolute;display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px 0 5px;border:0;border-radius:5px;background:var(--primary-soft);color:#145acc;font-size:11px;font-weight:700;cursor:pointer;box-shadow:inset 0 0 0 1px #145acc47;overflow:hidden;z-index:3}.tl-lbl svg{width:13px;height:13px;flex:none}.tl-lbl b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tl-lbl em{font-style:normal;font-size:10px;opacity:.7;flex:none}.tl-lbl.department{background:var(--department-soft);color:#0f7a53;box-shadow:inset 0 0 0 1px #0f7a5347}.tl-lbl.member{background:var(--member-soft);color:#5a2fb8;box-shadow:inset 0 0 0 1px #5a2fb847}.tl-lbl.milestone{background:var(--milestone-soft);color:#c05600;box-shadow:inset 0 0 0 1px #c056004d}.tl-lbl.company-event{background:var(--company-event-soft);color:#475569;box-shadow:inset 0 0 0 1px #47556947}.tl-lbl.dept-event{background:var(--dept-event-soft);color:#0d7a70;box-shadow:inset 0 0 0 1px #0d7a7047}.tl-lbl.done{opacity:.62}.tl-lbl.cancelled{opacity:.42;text-decoration:line-through}.tl-lbl.blocked{box-shadow:inset 0 0 0 2px var(--danger)}.tl-lbl:hover{filter:brightness(.95);z-index:9}.tl-span{opacity:.85;height:4px}.tl-span{height:12px;border-radius:6px;opacity:1;background:var(--primary);box-shadow:0 1px 3px #172a4d4d,inset 0 1px #ffffff59;z-index:2}.tl-span.department{background:var(--department)}.tl-span.member{background:var(--member)}.tl-span.milestone{background:var(--milestone)}.tl-span.company-event{background:var(--company-event)}.tl-span.dept-event{background:var(--dept-event)}.tl-span.blocked{background:var(--danger)}.tl-span.done{opacity:.7}.tl-span.cancelled{opacity:.4}.tl-lbl{z-index:4}.tl-headrow .tl-track{min-height:28px}.tl-tick{top:0;height:20px;font-size:14px;font-weight:800;color:var(--text);border-left:2px solid var(--secondary);padding-left:5px}.perf-wrap{overflow-x:auto}.perf-table{width:100%;border-collapse:collapse;font-size:12px}.perf-table th,.perf-table td{border:1px solid var(--border-light);padding:6px 9px;text-align:right;white-space:nowrap}.perf-table td.l,.perf-table th:first-child,.perf-table th:nth-child(2){text-align:left}.perf-table thead th{background:var(--surface-soft);font-weight:700;color:#263e62}.perf-table tbody tr:hover{background:var(--surface-soft)}@media(max-width:760px){.perf-wrap{overflow:visible}.perf-table{width:100%;display:block;border-collapse:separate}.perf-table thead{display:none}.perf-table tbody{display:block}.perf-table tr{display:block;background:#fff;border:1px solid var(--border-light);border-radius:10px;padding:2px 12px;margin-bottom:8px}.perf-table tr:last-child{margin-bottom:0}.perf-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid var(--border-light);padding:7px 0;text-align:right;white-space:normal}.perf-table td:last-child{border-bottom:0}.perf-table td[colspan]{display:block;text-align:left;color:var(--muted)}.perf-table td.l{display:block;text-align:left;font-weight:700;color:#263e62;padding:9px 0}.perf-table td.l[colspan]{font-weight:400;color:var(--muted);padding:7px 0}.perf-baseline .perf-table td:nth-child(2):before{content:"평균 예상(입력)";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-baseline .perf-table td:nth-child(3):before{content:"표본(예상)";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-baseline .perf-table td:nth-child(4):before{content:"평균 실제 사이클";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-baseline .perf-table td:nth-child(5):before{content:"표본(사이클)";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-baseline .perf-table td:nth-child(6):before{content:"평균 계획일";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(2):before{content:"작업";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(3):before{content:"완료";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(4):before{content:"완료율";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(5):before{content:"지연";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(6):before{content:"정시완료";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(7):before{content:"평균 사이클";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(8):before{content:"평균 리드";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(9):before{content:"완료공수";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-dept .perf-table td:nth-child(10):before{content:"기여도";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(2){font-weight:400;color:var(--secondary);font-size:11.5px;padding-top:0}.perf-member .perf-table td:nth-child(3):before{content:"작업";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(4):before{content:"완료";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(5):before{content:"완료율";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(6):before{content:"진행중";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(7):before{content:"지연";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(8):before{content:"평균 사이클";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(9):before{content:"완료공수";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-member .perf-table td:nth-child(10):before{content:"기여도";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-bytype .perf-table td:nth-child(2):before{content:"작업";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-bytype .perf-table td:nth-child(3):before{content:"완료";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-bytype .perf-table td:nth-child(4):before{content:"평균 계획일";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-bytype .perf-table td:nth-child(5):before{content:"평균 실제 사이클";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}.perf-bytype .perf-table td:nth-child(6):before{content:"평균 리드";flex:none;font-size:11px;font-weight:700;color:var(--secondary)}}.nav-ico{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;box-sizing:content-box;padding:5px;border-radius:9px;flex:none;background-color:#607897;background-color:var(--ico,#607897);background-image:linear-gradient(145deg,color-mix(in srgb,var(--ico,#607897) 74%,#fff),var(--ico,#607897));box-shadow:0 3px 7px #0003,inset 0 1px #ffffff73;box-shadow:0 3px 7px color-mix(in srgb,var(--ico,#607897) 38%,transparent),inset 0 1px #ffffff73;transition:transform .1s ease}.nav-ico svg{width:19px;height:19px;color:#fff}nav button:hover .nav-ico{transform:translateY(-1px)}nav button.active .nav-ico{box-shadow:0 3px 9px #00000040,inset 0 1px #ffffff80;box-shadow:0 3px 9px color-mix(in srgb,var(--ico,#607897) 55%,transparent),inset 0 1px #ffffff80}@media(max-width:760px){.nav-ico{padding:4px}}.signage-cal .calendar-card{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;width:100%;max-width:1600px;margin:0 auto}.signage-cal .calendar{flex:1;min-height:0;display:flex;flex-direction:column}.signage-cal .days{flex:1;min-height:0;grid-auto-rows:minmax(clamp(90px,14vh,150px),1fr)}.link-selectall{margin:0 0 10px;font-size:12px;padding:6px 12px}.share-send{margin-top:4px}.share-send svg{width:15px}.report-mail{display:grid;gap:14px}.report-mail>section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px}.report-mail h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:15px}.report-mail h3 svg{width:19px;color:var(--primary)}.report-mail section>p{margin:0 0 12px;color:var(--secondary);font-size:12px}.rm-switch{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin-bottom:12px;cursor:pointer}.rm-switch input{width:16px;height:16px;accent-color:var(--primary)}.rm-fields{display:flex;flex-wrap:wrap;gap:12px}.rm-fields label{display:grid;gap:5px;font-size:12px;color:var(--secondary)}.rm-fields select,.rm-fields input{height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px;background:#fff;font-size:13px}.rm-fields input[type=number]{width:100px}.rm-time{display:flex;gap:6px}.session-presets{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px}.session-presets button{height:38px;border:1px solid var(--border);border-radius:8px;padding:0 12px;font-size:12px;font-weight:700;color:#33405c;background:#fff}.session-presets button.on{border-color:#82aafc;background:var(--primary-soft);color:#145acc}.rm-note{margin:12px 0 0!important;font-size:11px;color:var(--muted)}.rm-note code{background:#eef1f6;border-radius:4px;padding:1px 4px;font-size:10px}.rm-diag{margin:14px 0 0;display:grid;gap:6px;font-size:12px}.rm-diag div{display:grid;grid-template-columns:130px 1fr;gap:8px}.rm-diag dt{color:var(--secondary)}.rm-diag dd{margin:0;color:#1c1e2c}.rm-diag dd.ok{color:#1a8a4a;font-weight:700}.rm-diag dd.bad{color:#c23b2e;font-weight:700}@media(max-width:760px){.rm-diag div{grid-template-columns:1fr}}.rm-actions{display:flex;gap:10px;flex-wrap:wrap}.rm-test{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#31527f;font-size:13px}.rm-test svg{width:15px}.rm-test:disabled{opacity:.5}@media(max-width:760px){.report-mail .signage-departments{grid-template-columns:1fr}}.mm-form .req{color:var(--danger);font-style:normal;font-weight:700;margin-left:3px}.proj-mailbox .pick-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.proj-mailbox .form-buttons{display:flex;justify-content:space-between;gap:8px}.proj-mailbox .form-buttons .primary svg{width:15px}.pv-picksel{display:inline-flex;gap:6px}.pv-picksel button svg{width:14px;margin-right:3px}@media(min-width:761px){.calendar-toolbar h2{font-size:17px;margin-left:10px}.calendar-toolbar>div{gap:6px}.calendar-toolbar .icon-btn{width:30px;height:30px}.calendar-toolbar .icon-btn svg{width:16px}.calendar-toolbar>div>button:not(.icon-btn):not(.toolbar-add):not(.toolbar-print):not(.toolbar-filter){height:30px;padding:0 11px;font-size:12px}.toolbar-right{gap:8px}.toolbar-add,.toolbar-print,.toolbar-filter{width:32px;height:32px;padding:0}.toolbar-add svg,.toolbar-print svg,.toolbar-filter svg{width:15px;height:15px}.segments{padding:3px}.segments button{min-width:46px;height:24px;padding:0 9px;font-size:12px}}.drawer-tools{display:none}@media(max-width:760px){.drawer-tools{display:flex;gap:6px;margin:0 0 12px}.drawer-tools button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:auto;padding:9px 4px;border:1px solid var(--border);border-radius:9px;background:var(--surface-soft);font-size:11px;font-weight:600;color:#233c63;position:relative}.drawer-tools button svg{width:19px;height:19px;color:#42618e}.drawer-tool-badge{position:absolute;top:4px;right:10px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--danger);color:#fff;font-size:9px;font-weight:800;line-height:15px;text-align:center}.notif-overlay{z-index:34}.notif-drop{z-index:35}}.doc-form{--doc-line:#b4bbc7;max-width:864px;margin:0 auto;padding:0;background:#fff;border:1px solid #9aa2b0;border-radius:2px;box-shadow:0 8px 30px #16203a1f;font-size:12px;color:#1c2233}.doc-form>h3{margin:0;padding:22px 26px 4px;text-align:center;font-size:20px;font-weight:800;letter-spacing:.22em;color:#1f2a44}.doc-form>h3:after{content:"";display:block;width:56px;height:3px;background:#1f2a44;margin:11px auto 0}.doc-form>.admin-rule{margin:0;padding:8px 26px 18px;text-align:center;color:var(--secondary);font-size:11px}.doc-form fieldset{border:1px solid var(--doc-line);border-top:0;border-radius:0;padding:0;margin:0 26px}.doc-form fieldset:first-of-type{border-top:1px solid var(--doc-line)}.doc-form legend{float:left;width:100%;box-sizing:border-box;margin:0;padding:9px 15px;background:#e9edf4;border-bottom:1px solid var(--doc-line);font-size:12px;font-weight:800;letter-spacing:.07em;color:#2b3550}.doc-form fieldset>.admin-rule{clear:both;margin:0;padding:9px 15px;font-size:11px;background:#fafbfd;border-bottom:1px solid var(--doc-line);text-align:left;color:var(--secondary)}.doc-form .admin-fields{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--doc-line)}.doc-form>.admin-fields{border:1px solid var(--doc-line);margin:0 26px}.doc-form fieldset .admin-fields{border:0}.doc-form .admin-fields>label{display:grid;grid-template-columns:122px 1fr;align-items:center;min-width:0;min-height:44px;margin:0;font-weight:700;font-size:11.5px;color:#33405c;background:linear-gradient(to right,#eef1f6 0 122px,#fff 122px);position:relative;text-indent:12px}.doc-form .admin-fields>label.wide{grid-column:1/-1}.doc-form .admin-fields>label>.req{position:absolute;left:106px;top:13px;color:var(--danger);font-weight:800;text-indent:0}.doc-form .admin-fields>label>:is(input,select,textarea){border:0;border-left:1px solid var(--doc-line);border-radius:0;background:transparent;width:100%;min-width:0;height:40px;padding:0 11px;font-size:12px;font-weight:500;color:#1c2233;text-indent:0}.doc-form .admin-fields>label>textarea{align-self:stretch;height:auto;min-height:58px;padding:9px 11px;line-height:1.55;resize:vertical}.doc-form .admin-fields>label>input[type=checkbox]{width:18px;height:18px;flex:none;justify-self:start;margin-left:12px;border:0;background:none;padding:0;accent-color:var(--primary)}.doc-form .admin-fields>label>.pick-list{border-left:1px solid var(--doc-line);padding:7px 11px;text-indent:0}.doc-form .admin-fields>label.wide:has(.equip-add),.doc-form .admin-fields>label.wide:has(.swatches){display:block;background:#fff;padding:11px 15px;text-indent:0;color:#33405c}.doc-form .admin-fields>label.wide:has(.equip-add)>.pick-list,.doc-form .admin-fields>label.wide:has(.swatches)>.swatches{margin-top:9px;border-left:0;padding:0}.doc-form .admin-fields>label.wide:has(.equip-add)>.equip-add{margin-top:9px}.doc-form .equip-add input{border:1px solid var(--doc-line);border-radius:0;height:33px}.doc-form .equip-cat{padding:4px 15px;border-top:1px solid var(--doc-line);grid-template-columns:112px 1fr}.doc-form .equip-cat:first-of-type{border-top:0}.doc-form .ms-row{padding:9px 15px;margin:0;border-top:1px solid var(--doc-line)}.doc-form .ms-row select,.doc-form .ms-row input{border:1px solid var(--doc-line);border-radius:0;height:33px}.doc-form .ms-add{margin:10px 15px 14px}.doc-form fieldset>textarea{clear:both;display:block;width:100%;box-sizing:border-box;border:0;border-radius:0;padding:11px 15px;min-height:74px;font:inherit;line-height:1.55;resize:vertical;background:#fff}.doc-form.purchase-form>.admin-fields{border:1px solid var(--doc-line);margin:0 26px}.doc-form.purchase-form>.admin-fields:before{content:"신청 정보";grid-column:1/-1;background:#e9edf4;border-bottom:1px solid var(--doc-line);padding:9px 15px;font-weight:800;letter-spacing:.07em;color:#2b3550;text-indent:0}.doc-form .purchase-items{border:1px solid var(--doc-line);border-radius:0;padding:0;margin:16px 26px 0;background:#fff}.doc-form .purchase-items:before{content:"구매 목록";display:block;background:#e9edf4;border-bottom:1px solid var(--doc-line);padding:9px 15px;font-weight:800;letter-spacing:.07em;color:#2b3550}.doc-form .pi-head,.doc-form .pi-row{gap:1px;background:var(--doc-line);margin:0;padding:0;border-bottom:1px solid var(--doc-line)}.doc-form .pi-row:last-of-type{border-bottom:0}.doc-form .pi-head>span,.doc-form .pi-row>*{background:#fff}.doc-form .pi-head>span{display:flex;align-items:center;height:32px;background:#f3f5f9;padding:0 8px;font-size:11px;font-weight:800;color:#2b3550}.doc-form .pi-row>input{border:0;border-radius:0;height:38px;padding:0 8px;font-size:12px}.doc-form .pi-row>.pi-view{display:flex;align-items:center;height:38px;padding:0 8px;font-size:12px;color:#1c2233;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-form .pi-row>.pi-amt{display:flex;align-items:center;justify-content:flex-end;height:38px;padding:0 8px}.doc-form .pi-row>.pi-del{display:flex;align-items:center;border:0;border-radius:0;height:38px;justify-content:center}.doc-form .pi-add{margin:12px 0 0 26px}.purchase-items.view .pi-head,.purchase-items.view .pi-row{grid-template-columns:1.4fr 1fr 70px 60px 100px 110px}.doc-form .pi-total{margin:12px 26px 14px;padding:0}.doc-form>.form-buttons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:8px;border-top:1px solid var(--doc-line);margin:18px 0 0;padding:15px 26px 20px}@media(max-width:760px){.doc-form{box-shadow:none}.doc-form>h3{font-size:16px;letter-spacing:.12em}.doc-form fieldset,.doc-form>.admin-fields,.doc-form.purchase-form>.admin-fields,.doc-form .purchase-items,.doc-form>.form-buttons{margin-left:12px;margin-right:12px}.doc-form .pi-add{margin-left:12px}.doc-form .pi-total{margin-left:12px;margin-right:12px}.doc-form .admin-fields>label{grid-template-columns:88px 1fr;background:linear-gradient(to right,#eef1f6 0 88px,#fff 88px);text-indent:9px}.doc-form .admin-fields>label>.req{left:74px}}.dashboard-page{height:100vh;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(circle at 15% -10%,#0e1c38,transparent 45%),linear-gradient(180deg,#03081a,#050f28 60%);color:#eaf0ff;padding:14px 20px;font-size:15px}.dashboard-page a{color:#8fb4ff}.dash-info-back{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:transparent;color:#fff;text-decoration:none;flex:none;margin-left:14px;transition:transform .12s}.dash-info-back:hover{background:#ffffff1a}.dash-loading,.dash-error,.dash-empty{max-width:520px;margin:80px auto;text-align:center;color:#93a1c4}.dash-error{color:#ff8a8a}.dash-wrap{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}.dash-info{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#0a132c,#131f42);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:9px 16px;box-shadow:0 8px 28px #00000059}.dash-info-logo{width:40px;height:40px;border-radius:10px;background:#ffffff1f;display:grid;place-items:center;flex:none;color:#8fb4ff}.dash-info h3{margin:0;font-size:15.5px;font-weight:400;letter-spacing:.01em}.dash-info p{margin:1px 0 0;font-size:11px;color:#93a1c4}.dash-info-meta{margin-left:auto;text-align:right;font-size:12.5px;color:#93a1c4;line-height:1.7}.dash-info-meta b{color:#eaf0ff;font-size:14px;font-weight:400}.dash-timeline{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#08152a;box-shadow:0 8px 28px #0000004d}.dash-rows{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;margin-top:16px;border-top:2px solid rgba(255,255,255,.12)}.dash-rows>.dash-row:first-child{border-top:0}.dash-rows>.dash-row{flex:1 1 0;min-height:76px;overflow:hidden}.dash-rows>.dash-row .dash-track{min-height:0!important;height:100%}.dash-row{display:grid;grid-template-columns:170px 1fr;align-items:stretch;border-top:1px solid rgba(255,255,255,.06)}.dash-row:first-child{border-top:0}.dash-label{padding:8px 12px;font-size:14px;font-weight:400;display:flex;align-items:center;gap:8px;border-right:1px solid rgba(255,255,255,.06);background:#050f22;overflow:hidden;color:#dbe4ff}.dash-label i{width:9px;height:9px;border-radius:3px;flex:none;box-shadow:0 0 0 2px #ffffff14}.dash-label svg{flex:none}.dash-dept-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;flex:none;color:#fff;box-shadow:0 2px 6px #00000059,inset 0 1px #ffffff40}.dash-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-pie{width:34px;height:34px;border-radius:50%;flex:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #ffffff1a;margin-left:auto}.dash-pie:before{content:"";position:absolute;inset:4px;background:#050f22;border-radius:50%}.dash-pie em{position:relative;z-index:1;font-style:normal;font-size:10.5px;font-weight:400;color:#eaf0ff}.dash-head-row .dash-track{min-height:38px}.dash-mtick{position:absolute;top:2px;font-size:13px;font-weight:400;color:#eaf0ff;border-left:1px solid rgba(255,255,255,.16);padding-left:5px;height:18px;white-space:nowrap}.dash-wtick{position:absolute;top:22px;font-size:11px;color:#8393bc;border-left:1px solid rgba(255,255,255,.08);padding-left:3px;white-space:nowrap}.dash-ms-row{background:#050f22;min-height:58px}.dash-ms-row .dash-track{min-height:58px}.dash-ms{position:absolute;top:50%;transform:translate(-50%,-50%);border:0;background:transparent;padding:4px 6px;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:4;cursor:pointer;min-width:34px}.dash-ms:hover{background:#ffffff0f}.dash-ms>i{width:13px;height:13px;transform:rotate(45deg);flex:none;box-shadow:0 2px 6px #00000080}.dash-ms>b{font-size:12.5px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#eaf0ff}.dash-ms>b.dash-ms-no{font-size:11px;opacity:.9}.dash-ms>span{font-size:11px;color:#93a1c4}.dash-track{position:relative;min-height:38px;padding:7px 12px 7px 0}.dash-today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #ff5468;z-index:3;opacity:.85}.dash-today-dot{position:absolute;top:-6px;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:#ff5468;box-shadow:0 0 0 3px #ff546840;z-index:3}.dash-flow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;max-width:calc(100% - 4px);overflow:hidden}.dash-arrow-seg{flex:0 0 22px;height:2px;opacity:.6}.dash-bar{flex:none;border:0;border-radius:9px 9px 9px 3px;color:#fff;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:400;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px #0006,inset 0 1px #ffffff2e}.dash-bar span{opacity:.9;font-weight:400}.dash-bar.done{opacity:.55}.dash-bar.cancelled{opacity:.35;text-decoration:line-through}.dash-bar.blocked{box-shadow:0 0 0 2px #ff5468}@media(max-width:760px){.dash-row{grid-template-columns:106px 1fr}.dash-label{font-size:11px;padding-left:8px}}.dash-info-actions{display:flex;align-items:center;gap:8px;margin-left:18px}.dash-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:transparent;color:#fff;border:0;cursor:pointer;flex:none;transition:transform .12s}.dash-icon-btn:hover{transform:translateY(-1px)}.dash-icon-btn:hover{background:#ffffff1a}.dash-icon-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#ff5468;color:#fff;font-size:10px;font-weight:400;line-height:16px;text-align:center;box-shadow:0 0 0 2px #08152a}.dash-modal-wrap{position:fixed;inset:0;background:#05091499;display:grid;place-items:center;z-index:80}.dash-modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000080;color:#0f1b3d}.dash-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.dash-modal-head h3{margin:0;font-size:16px;font-weight:400;color:#0f1b3d}.dash-modal-head .dash-icon-btn{color:#42618e}.dash-modal-head .dash-icon-btn:hover{background:var(--surface-soft)}.dash-modal-body{padding:18px}.dash-donut-row{display:flex;align-items:center;gap:18px}.dash-donut{width:100px;height:100px;border-radius:50%;position:relative;flex:none}.dash-donut-hole{position:absolute;inset:12px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.dash-donut-hole b{font-size:23px;color:#0f1b3d;font-weight:400}.dash-donut-hole span{font-size:10.5px;color:var(--secondary)}.dash-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;flex:1}.dash-stat-grid>div{text-align:center;background:var(--surface-soft);border:1px solid var(--border);border-radius:9px;padding:7px 4px}.dash-stat-grid b{display:block;font-size:19px;color:#0f1b3d;font-weight:400}.dash-stat-grid span{font-size:11.5px;color:var(--secondary)}.dash-ms-table{width:100%;border-collapse:collapse;font-size:13.5px;color:#0f1b3d}.dash-ms-table td{padding:7px 4px;border-top:1px solid var(--border-light)}.dash-ms-table tr:first-child td{border-top:0}.dash-ms-table td:first-child{font-weight:400;color:var(--secondary);width:28px}.dash-ms-dot{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:400;border-radius:8px;padding:2px 9px}.dash-ms-dot.done{background:var(--department-soft);color:#0f7a53}.dash-ms-dot.progress{background:var(--primary-soft);color:#145acc}.dash-ms-dot.todo{background:var(--surface-soft);color:var(--secondary)}.dash-issue-list{display:flex;flex-direction:column;gap:9px}.dash-issue{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:#0f1b3d}.dash-issue:hover{background:#eef2f8}.dash-issue svg{flex:none;margin-top:1px}.dash-issue b{display:block;font-size:12px;font-weight:400}.dash-issue small{display:block;font-size:10.5px;color:var(--secondary);margin-top:1px}.dash-issue.late svg{color:var(--danger)}.dash-issue.blocked svg{color:#c05600}.dash-issue-badge{margin-left:auto;font-size:10px;font-weight:400;border-radius:8px;padding:2px 8px;flex:none;background:var(--surface-soft);color:#42618e}.dash-issue.late .dash-issue-badge{background:var(--danger-soft);color:var(--danger)}.dash-issue.blocked .dash-issue-badge{background:#fff2e4;color:#c05600}.task-doc{position:relative;width:min(900px,calc(100vw - 28px));max-height:calc(100vh - 28px);display:flex;flex-direction:column}.task-doc .doc-close{position:absolute;right:14px;top:14px;border:0;background:transparent;padding:6px;color:var(--secondary);cursor:pointer;z-index:2}.task-doc .doc-close:hover{color:var(--danger)}.task-doc .doc-close svg{width:18px}.task-doc-fieldset-reset{border:0;margin:0;padding:0;min-width:0}.task-doc-scroll{overflow:auto}.task-doc-scroll fieldset:last-of-type{margin-bottom:26px}.task-doc .assignees{clear:both;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px 15px}.task-doc .assignees label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:8px;border-radius:7px;background:var(--surface-soft);font-size:12px;font-weight:400;text-indent:0}.task-doc .assignees input[type=checkbox]{width:16px;height:16px}.task-doc-foot{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 26px;border-top:1px solid var(--doc-line);background:#fafbfd}.task-doc-foot .auth-error{margin-right:auto}.ps-month-label{font-size:14px;font-weight:700;min-width:84px;text-align:center}.ps-week{display:grid;grid-template-columns:repeat(7,1fr);margin-top:12px}.ps-week b{text-align:center;padding:8px 0;font-size:12px;color:var(--secondary)}.ps-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:9px;overflow:hidden}.ps-day{border:0;border-radius:0;border-top:1px solid var(--border);border-right:1px solid var(--border);min-height:150px;padding:8px;text-align:left;background:#fff;display:flex;flex-direction:column;gap:6px;cursor:pointer}.ps-grid .ps-day:nth-child(7n){border-right:0}.ps-day.muted{color:#9aa7bb;background:#fbfcfe}.ps-day.today{background:#f4f8ff}.ps-date{font-size:13px;font-weight:700}.ps-indicators{display:flex;align-items:center;gap:6px}.ps-todo-badge{background:var(--primary-soft);color:var(--primary);border-radius:10px;padding:2px 7px;font-size:11px;font-weight:700;align-self:flex-start}.ps-cell-preview{display:flex;flex-direction:column;gap:2px;min-width:0}.ps-cell-todo,.ps-cell-memo{margin:0;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-cell-memo{color:#16a34a;font-weight:600}.ps-editor{width:min(520px,calc(100vw - 32px))}.ps-editor h4{margin:14px 0 6px;font-size:13px}.ps-editor textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;font-size:13px;font-family:inherit;resize:vertical}.ps-todo-add{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.ps-todo-add input{height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.ps-todo-add input.ps-todo-title-input{flex:1;min-width:90px}.ps-todo-add input.ps-todo-content-input{flex:2;min-width:140px}.ps-todo-add>input:only-of-type{flex:1;min-width:110px}.ps-status-done span,.ps-status-cancelled span,p.ps-status-done,p.ps-status-cancelled{text-decoration:line-through;color:var(--muted)}.ps-status-delayed span,p.ps-status-delayed{color:#e66c00;font-weight:700}.ps-peek{width:min(380px,calc(100vw - 32px))}.ps-peek h2{font-size:16px;font-weight:700}.ps-peek-content{white-space:pre-wrap;font-size:13px;color:#1c1e2c;line-height:1.5;margin:4px 0 0}.ps-peek-status{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--secondary);margin-top:10px}.ps-peek-status select{height:32px;border:1px solid var(--border);border-radius:6px;font-size:12px;padding:0 8px}.ps-mobile-list{display:none}@media(max-width:760px){.ps-week{display:none}.ps-grid{grid-template-columns:1fr;border-left:0;border-right:0;border-radius:0}.ps-day{min-height:0;border-right:0;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 10px}.ps-day .ps-indicators{display:none}.ps-date{min-width:28px}.ps-mobile-list{display:block;flex:1 1 100%;margin-top:6px}.ps-mobile-list label{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;margin:0}.ps-mobile-list label span{flex:1;min-width:0;word-break:keep-all;overflow-wrap:break-word}.ps-mobile-list label select{height:30px;border:1px solid var(--border);border-radius:6px;font-size:12px;flex:none;width:auto}.ps-mobile-memo{margin:4px 0 0;font-size:12px;color:#16a34a;font-weight:600;white-space:pre-wrap}.ps-cell-preview{display:none}}@media(max-width:760px){.task-doc{width:100vw;max-height:100vh;border-radius:0}.task-doc .assignees{grid-template-columns:1fr}}.stock-section{margin-bottom:18px}.stock-section-title{display:block;font-size:13px;font-weight:800;color:var(--secondary);margin:4px 0 10px}.stock-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.stock-card{position:relative;display:grid;gap:4px;text-align:left;border:1px solid var(--border);border-radius:10px;padding:12px;background:#fff;cursor:pointer}.stock-card-history{position:absolute;top:8px;right:8px;width:26px;height:26px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:var(--secondary)}.stock-card-history svg{width:15px}.stock-card-history:hover{color:var(--primary)}.stock-card:hover{border-color:#82aafc;background:var(--primary-soft)}.stock-card.stock-card-alert{border-color:var(--danger);background:var(--danger-soft)}.stock-card-head{display:flex;align-items:center;gap:6px;padding-right:24px}.stock-card-star{width:14px;color:#f2a93b}.stock-card-depts{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:2px;font-size:11px;color:var(--secondary)}.stock-card-depts li.alert{color:var(--danger);font-weight:700}.stock-card-empty{color:var(--muted)}.stock-search-bar{display:flex;gap:8px;margin-bottom:10px}.stock-search-bar input{flex:1;height:38px;border:1px solid var(--border);border-radius:8px;padding:0 12px}.stock-search-bar{align-items:center}.stock-search-bar select{box-sizing:border-box;height:38px;min-width:130px;border:1px solid var(--border);border-radius:8px;padding:0 10px;background:#fff}.stock-search-bar input,.stock-search-bar button{box-sizing:border-box;height:38px;min-height:38px;line-height:1}.stock-search-bar button{display:flex;align-items:center;justify-content:center;gap:6px;padding:0 14px}.stock-detail-modal{width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto}.stock-detail-head-actions{display:flex;gap:6px}.stock-balance-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}.stock-balance-table th,.stock-balance-table td{border:1px solid var(--border-light);padding:6px 8px;text-align:center}.stock-balance-table th:first-child,.stock-balance-table td:first-child{text-align:left}.stock-balance-table tr.stock-alert-row td{background:var(--danger-soft)}.stock-alert-badge{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700}.stock-form textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}.stock-ledger-wrap{margin-top:10px;max-height:320px;overflow:auto;border:1px solid var(--border-light);border-radius:8px}.stock-ledger-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.stock-ledger-table th,.stock-ledger-table td{border-bottom:1px solid var(--border-light);padding:7px 9px;text-align:center}.stock-ledger-table th{background:var(--surface-soft);position:sticky;top:0}.stock-ledger-table td:nth-child(3),.stock-ledger-table td:nth-child(7){text-align:left;white-space:normal}.stock-ledger-table tbody tr:last-child td{border-bottom:0}.stock-ledger-in{color:var(--department);font-weight:700}.stock-ledger-out{color:var(--danger);font-weight:700}.stock-ledger-meta{display:block;color:var(--muted);font-weight:400}.stock-history-print-sheet{display:none}@media print{@page stockhist{size:A4 landscape;margin:12mm}.stock-history-print-sheet{display:block!important;page:stockhist;font-family:Noto Sans KR,Malgun Gothic,sans-serif;color:#1c1e2c}.stock-history-print-sheet .shp-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2pt solid #1c1e2c;padding-bottom:6pt;margin-bottom:10pt}.stock-history-print-sheet .shp-head b{font-size:15pt;font-weight:700}.stock-history-print-sheet .shp-head span{font-size:8pt;color:#83879a}.stock-history-print-sheet .shp-table{width:100%;border-collapse:collapse;font-size:9pt}.stock-history-print-sheet .shp-table th,.stock-history-print-sheet .shp-table td{border:.5pt solid #9aa0ad;padding:4pt 6pt;text-align:center}.stock-history-print-sheet .shp-table th{background:#eef0f4;font-weight:700}.stock-history-print-sheet .shp-table td:nth-child(3),.stock-history-print-sheet .shp-table td:nth-child(7){text-align:left}.stock-history-print-sheet .shp-empty{font-size:10pt;color:#83879a;margin-top:10pt}}:is(.chip,.list-row,.day-row,.aux-row,.popup-task-table td).unapproved,:is(.list-row,.day-row,.aux-row,.popup-task-table td):has(i.unapproved),.chip.unapproved{color:#dc2626}:is(.list-row,.day-row,.aux-row):has(i.unapproved) b,:is(.list-row,.day-row,.aux-row):has(i.unapproved) em,.chip.unapproved small{color:#dc2626}.chip.cancelled,:is(.list-row,.day-row,.aux-row):has(i.cancelled) b{text-decoration:line-through;opacity:.55}.assign-ms-section{margin-bottom:22px}.proj-ms-graph i{cursor:default}.proj-ms-graph i:before{content:"";position:absolute;inset:-6px}.proj-ms-graph i:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1f2937;color:#fff;font-size:12px;font-style:normal;line-height:1.3;padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:20;box-shadow:none}.proj-ms-graph i:hover:after{opacity:1;visibility:visible}.proj-ms-graph i:first-child:after{left:0;transform:none}.proj-ms-graph i:last-child:after{left:auto;right:0;transform:none}.proj-ms-graph i:only-child:after{left:50%;right:auto;transform:translate(-50%)}.agenda-card-group{grid-column:span 1}.agenda-card-group .agenda-group-line{display:flex;align-items:baseline;gap:8px;margin-top:6px}.agenda-card-group .agenda-group-date{margin-left:auto;opacity:.75;font-size:.75em;white-space:nowrap}.approval-alert-wrap{z-index:90}.approval-alert{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 60px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000080;overflow:hidden}.approval-alert-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:#fff7ed;color:#9a3412}.approval-alert-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);min-height:0;overflow:auto}.approval-alert-list{list-style:none;margin:0;padding:8px;border-right:1px solid var(--border);overflow:auto;display:flex;flex-direction:column;gap:6px}.approval-alert-list button{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fff}.approval-alert-list button.on{border-color:var(--primary);background:#eef4ff}.approval-alert-kind{font-size:11px;color:#9a3412;font-weight:700}.approval-alert-list small{color:var(--muted,#6b7280)}.approval-alert-detail{padding:14px 18px;overflow:auto}.approval-alert-detail h3{margin:0 0 10px}.approval-alert-detail dl{display:grid;grid-template-columns:70px 1fr;gap:6px 10px;margin:0}.approval-alert-detail dt{color:var(--muted,#6b7280);font-size:12px}.approval-alert-detail dd{margin:0;word-break:break-word}.approval-alert-hint{margin:14px 0 0;color:#9a3412;font-size:13px}.approval-alert-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}@media(max-width:640px){.approval-alert-body{grid-template-columns:1fr}.approval-alert-list{border-right:0;border-bottom:1px solid var(--border);max-height:34vh}}.order-state-checks{display:flex;gap:12px;align-items:center}.order-summary-scroll{overflow:auto}.order-summary-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1400px}.order-summary-table th,.order-summary-table td{border:1px solid var(--border);padding:7px 9px;text-align:center;vertical-align:middle}.order-summary-table th{background:var(--surface-soft);position:sticky;top:0}.order-summary-table td.l{text-align:left}.order-summary-table td.r{text-align:right}.order-summary-table td small{display:block;color:var(--muted,#6b7280)}.order-state{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700}.order-state-plan{background:#fef3c7;color:#92400e}.order-state-run{background:#dbeafe;color:#1d4ed8}.order-state-done{background:#dcfce7;color:#166534}.order-summary-print-sheet{display:none}@media print{@page ordersum{size:A4 landscape;margin:10mm}.order-summary-print-sheet{display:block!important;page:ordersum;font-family:Noto Sans KR,Malgun Gothic,sans-serif;color:#1c1e2c}.order-summary-print-sheet .osp-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2pt solid #1c1e2c;padding-bottom:6pt;margin-bottom:8pt}.order-summary-print-sheet .osp-head b{font-size:16pt}.order-summary-print-sheet .osp-head span{font-size:8pt;color:#83879a}.order-summary-print-sheet .osp-table{width:100%;border-collapse:collapse;font-size:7.5pt}.order-summary-print-sheet .osp-table th,.order-summary-print-sheet .osp-table td{border:.5pt solid #9aa0ad;padding:3pt 4pt;text-align:center;vertical-align:middle}.order-summary-print-sheet .osp-table th{background:#eef0f4;font-weight:700}.order-summary-print-sheet .osp-table td.l{text-align:left}.order-summary-print-sheet .osp-table td.r{text-align:right}.order-summary-print-sheet .osp-table tfoot td{font-weight:700;background:#f6f7fa;text-align:right}.order-summary-print-sheet .osp-table tr{page-break-inside:avoid}.order-summary-print-sheet .osp-empty{font-size:10pt;color:#83879a;margin-top:10pt}}.assign-card-static{cursor:default}@keyframes ms-overdue-blink{0%,to{background:#fee2e2;color:#991b1b}50%{background:#ef4444;color:#fff}}.ms-overdue{animation:ms-overdue-blink 1.2s ease-in-out infinite!important}.ms-overdue *{color:inherit!important}@media(prefers-reduced-motion:reduce){.ms-overdue{animation:none!important;background:#fecaca!important;color:#991b1b}}.ms-chip{border-left:4px solid var(--pc,var(--milestone))!important}.ms-text{display:flex;align-items:baseline;gap:.4em;min-width:0;width:100%;overflow:hidden}.ms-text .ms-proj{flex:0 8 auto;min-width:2.2em;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-weight:600;opacity:.75}.ms-text .ms-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.stock-tabs{display:inline-flex;margin-bottom:14px}
