:root{--bg:#fff;--side:#f7f7f5;--text:#37352f;--muted:#8b8a85;--line:#e9e9e7;--hover:#f1f1ef;--brand:#1d559c;--brand-soft:#e7eef8;--danger:#c4372f;color:var(--text);background:var(--bg);font-family:Pretendard Variable,Pretendard,-apple-system,Malgun Gothic,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit;color:inherit}h1{margin:0 0 16px;font-size:24px;font-weight:700}.muted{color:var(--muted)}.small{font-size:12px}.layout{height:100vh;display:flex}.sidebar{background:var(--side);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:2px;width:220px;padding:14px 8px;display:flex}.brand{padding:4px 10px 14px;font-size:16px;font-weight:800}.nav-item{text-align:left;background:0 0;border:0;border-radius:6px;padding:7px 10px}.nav-item:hover{background:var(--hover)}.nav-item.sub{padding-left:22px;font-size:13px}.nav-item.sub>span{color:var(--muted)}.page-desc{margin:-8px 0 16px;font-size:13px}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.sidebar-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:auto;padding:10px;display:flex}.me{background:0 0;border:0;border-radius:4px;padding:2px 4px;font-weight:600}.me:hover{background:var(--hover)}.me-input{border:1px solid var(--brand);border-radius:4px;outline:none;width:120px;padding:2px 6px;font-weight:600}.confirm-row{align-items:center;gap:8px;margin-top:28px;display:flex}.confirm-row .danger{margin-top:0}.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}.ghost{border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px 12px}.link{color:var(--muted);background:0 0;border:0;font-size:12px}.link:hover{color:var(--text)}.main{flex:1;overflow:auto}.page{padding:32px 40px 80px}.page-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.page-head h1{margin:0 auto 0 0}.table-wrap{margin-bottom:8px;overflow-x:auto}.grid{border-collapse:collapse;min-width:100%}.grid th{text-align:center;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px;font-size:13px;font-weight:500}.grid th.left{text-align:left;padding-left:14px}.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:37px;padding:2px 4px}.grid td:last-child{border-right:0}.grid tr:hover td{background:#fbfbfa}.w-name{min-width:170px}.w-tag{min-width:120px}.w-date{width:150px}.w-check{width:92px}.w-note{width:100%;min-width:220px}.center{text-align:center}.cell-input{background:0 0;border:0;border-radius:4px;outline:none;width:100%;padding:6px}.cell-input:focus{box-shadow:inset 0 0 0 2px var(--brand-soft);background:#fff}.cell-input.bold{font-weight:600}.cell-input.date.empty{color:#0000}.cell-input.date.empty:focus,tr:hover .cell-input.date.empty{color:var(--muted)}.name-cell{align-items:center;display:flex}.open-btn{opacity:.55;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:15px}.open-btn.has{opacity:1}.open-btn:hover{background:var(--hover);opacity:1}.check-cell{cursor:pointer;padding:6px;display:inline-flex}.check-cell input{accent-color:#2383e2;cursor:pointer;width:17px;height:17px}.tag{white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:13px;display:inline-block}.tag-cell{position:relative}.tag-cell-btn{text-align:left;background:0 0;border:0;border-radius:4px;width:100%;min-height:31px;padding:6px}.tag-cell-btn:hover{background:var(--hover)}.popover{z-index:40;border:1px solid var(--line);background:#fff;border-radius:8px;width:220px;padding:6px;position:fixed;box-shadow:0 8px 24px #0f0f0f1f}.popover-input{border:1px solid var(--line);border-radius:5px;outline:none;width:100%;margin-bottom:4px;padding:6px 8px}.popover-list{flex-direction:column;max-height:240px;display:flex;overflow:auto}.popover-item{text-align:left;background:0 0;border:0;border-radius:4px;padding:5px 6px}.popover-item:hover{background:var(--hover)}.add-row{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:8px 10px}.add-row:hover{background:var(--hover);color:var(--text)}.primary{background:var(--brand);color:#fff;border:0;border-radius:6px;padding:8px 14px;font-weight:600}.primary:disabled{opacity:.5}.danger{color:var(--danger);background:#fff;border:1px solid #f0c7c4;border-radius:6px;margin-top:28px;padding:7px 12px}.danger:hover{background:#fdf0ef}.section-toggle{background:0 0;border:0;margin-top:24px;padding:10px 4px;font-size:15px;font-weight:600}.search{border:1px solid var(--line);border-radius:6px;outline:none;width:220px;padding:7px 10px}.search:focus{border-color:var(--brand)}.month .month-title{margin-top:18px;font-size:18px}.month-sum{margin-left:10px;font-size:13px;font-weight:400}.month-head{align-items:center;gap:12px;display:flex}.month-head .month-title{margin:18px auto 8px 0;padding:0 4px;font-size:18px;font-weight:600}.month-head .small-btn{margin-top:18px}.small-btn{padding:4px 10px;font-size:13px}.confirm-inline{align-items:center;gap:6px;font-size:13px;display:inline-flex}.confirm-inline .small-btn{margin-top:0}.month-head .confirm-inline{margin-top:18px}.back{margin-bottom:10px;padding:0;font-size:13px}.month-list{min-width:640px}.month-list td{padding:8px 10px}.month-list tr.clickable{cursor:pointer}.month-list tr.clickable:hover td{background:var(--brand-soft)}.month-cell{font-weight:600}.drawer-backdrop{z-index:50;background:#0f0f0f2e;position:fixed;inset:0}.drawer{background:#fff;width:min(720px,92vw);padding:48px 48px 40px;position:absolute;top:0;bottom:0;right:0;overflow:auto;box-shadow:-8px 0 32px #0f0f0f26}.drawer>.cell-input,.sop-body>.cell-input{padding:4px 0;font-size:28px;font-weight:700}.drawer-close{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:16px;position:absolute;top:14px;right:16px}.drawer-close:hover{background:var(--hover)}.edited-by{color:var(--muted);margin:4px 0 16px;font-size:12px}.editor{border-top:1px solid var(--line);padding-top:8px}.toolbar{flex-wrap:wrap;gap:2px;margin-bottom:8px;display:flex}.tb-btn{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:13px}.tb-btn:hover{background:var(--hover);color:var(--text)}.tb-btn.active{background:var(--brand-soft);color:var(--brand)}.prose{outline:none;min-height:240px;font-size:15px;line-height:1.7}.prose p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#c4c3bf;float:left;pointer-events:none;height:0}.prose:has(>p:only-child:empty):before{content:attr(data-placeholder);color:#c4c3bf;float:left;pointer-events:none;height:0}.prose h2{margin:20px 0 6px;font-size:21px}.prose h3{margin:16px 0 4px;font-size:17px}.prose p{margin:2px 0}.prose ul,.prose ol{margin:4px 0;padding-left:24px}.prose ul[data-type=taskList]{padding-left:2px;list-style:none}.prose ul[data-type=taskList] li{align-items:flex-start;gap:8px;display:flex}.prose ul[data-type=taskList] li>label{margin-top:4px}.prose ul[data-type=taskList] li>label input{accent-color:#2383e2;width:16px;height:16px}.prose ul[data-type=taskList] li>div{flex:1}.prose ul[data-type=taskList] li[data-checked=true]>div{color:var(--muted);text-decoration:line-through}.prose a{color:var(--brand);text-decoration:underline}.prose .img-wrap{margin:8px 0}.prose .img-wrap img{border-radius:4px;max-width:100%;display:block}.prose .img-wrap.selected img{outline:3px solid var(--brand-soft)}.img-loading,.img-missing{color:var(--muted);background:var(--side);border-radius:4px;padding:20px;font-size:13px}.prose [data-type=details]{gap:4px;margin:4px 0;display:flex}.prose [data-type=details]>button{width:22px;height:26px;color:var(--text);background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;display:grid}.prose [data-type=details]>button:before{content:"▶";font-size:11px;transition:transform .15s}.prose [data-type=details].is-open>button:before{transform:rotate(90deg)}.prose [data-type=details]>button:hover{background:var(--hover)}.prose [data-type=details]>div{flex:1;min-width:0}.prose [data-type=details] summary{font-weight:600;list-style:none}.prose [data-type=details] summary::-webkit-details-marker{display:none}.prose [data-type=detailsContent]{padding-left:2px}.prose [data-type=details]:not(.is-open) [data-type=detailsContent]{display:none}.prose .tableWrapper{margin:8px 0 14px;overflow-x:auto}.prose table{border-collapse:collapse;font-size:14px}.prose th,.prose td{border:1px solid var(--line);vertical-align:top;min-width:70px;padding:4px 10px;position:relative}.prose th{background:var(--side);text-align:center;font-weight:600}.prose th p,.prose td p{margin:0}.prose .selectedCell:after{content:"";pointer-events:none;background:#2383e21f;position:absolute;inset:0}.save-status{color:var(--muted);white-space:nowrap;align-self:center;margin-left:auto;padding-left:8px;font-size:12px}.save-status.saved{color:#2f7d4f}.save-status.error{color:var(--danger);font-weight:600}.tb-sep{background:var(--line);width:1px;margin:2px 4px}.prose hr{border:0;border-top:1px solid var(--line);margin:14px 0}.sop-page{align-items:flex-start;gap:32px;display:flex}.sop-list{flex-direction:column;flex-shrink:0;gap:2px;width:240px;display:flex;position:sticky;top:32px}.sop-list h1{font-size:18px}.sop-item{text-align:left;background:0 0;border:0;border-radius:6px;padding:7px 10px}.sop-item:hover{background:var(--hover)}.sop-item.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.sop-body{flex:1;max-width:820px}.center-screen{background:var(--side);place-items:center;min-height:100vh;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:340px;padding:32px;display:flex}.card h1,.card p{margin:0}.card label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.card input{border:1px solid var(--line);color:var(--text);border-radius:6px;outline:none;padding:9px 10px}.card input:focus{border-color:var(--brand)}.error{color:var(--danger);font-size:13px}.toast{color:#fff;z-index:100;background:#2f2f2f;border-radius:8px;padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}
