:root{--bg:#f4f5f7;--panel:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--soft:#f1f5f9;--accent:#2563eb;--accent-text:#fff;--danger:#dc2626;--warn:#d97706;--ok:#059669;--q1:#fee2e2;--q2:#dbeafe;--q3:#fef3c7;--q4:#f1f5f9;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b1020;--panel:#141a2b;--text:#e5e7eb;--muted:#94a3b8;--line:#263049;--soft:#1b2337;--accent:#3b82f6;--danger:#f87171;--warn:#fbbf24;--ok:#34d399;--q1:#3b1d24;--q2:#1b2a4a;--q3:#3a2e13;--q4:#1b2337;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%;padding:7px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical}h1,h2,h3{margin:0}.top{z-index:10;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.top h1{white-space:nowrap;font-size:16px}.nav{gap:4px;display:flex}.nav-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 12px}.nav-btn.on{background:var(--soft);color:var(--text);font-weight:600}.top-right{align-items:center;gap:12px;margin-left:auto;display:flex}.banner{background:var(--q2);border-radius:8px;margin:12px 20px 0;padding:8px 12px;font-size:13px}.banner.error{background:var(--q1);color:var(--danger);align-items:center;gap:12px;display:flex}.main{max-width:1500px;margin:0 auto;padding:16px 20px 40px}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 14px}.btn:hover{background:var(--soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn.big{padding:12px 24px;font-size:16px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:4px 8px;font-size:15px}.icon-btn:hover:not(:disabled){background:var(--soft)}.icon-btn:disabled{opacity:.3}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:13px}.link.danger{color:var(--danger)}.link:disabled{color:var(--muted);cursor:not-allowed}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:14px 16px}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.panel-head h3{font-size:15px}.page{max-width:960px;margin:0 auto}.muted{color:var(--muted)}.small{font-size:12px}.empty{color:var(--muted);text-align:center;margin:0;padding:16px 0;font-size:13px}.pre{white-space:pre-wrap;margin:2px 0}.dot{border-radius:50%;flex:none;width:8px;height:8px;margin-right:6px;display:inline-block}.pill{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:11px}.tag{background:var(--soft);white-space:nowrap;border-radius:4px;padding:0 6px;font-size:11px}.tag-q1{background:var(--q1);color:var(--danger)}.tag-q2{background:var(--q2);color:var(--accent)}.tag-q3{background:var(--q3);color:var(--warn)}.due{white-space:nowrap;color:var(--muted);font-size:12px}.due-overdue{color:var(--danger);font-weight:600}.due-soon{color:var(--warn);font-weight:600}.meta-text{color:var(--muted);white-space:nowrap;align-items:center;font-size:12px;display:inline-flex}.task-row{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;width:100%;padding:8px 4px;display:flex}.task-row:hover{background:var(--soft)}.task-title{overflow-wrap:anywhere;flex:160px;min-width:0}.task-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.group-label{color:var(--muted);margin:8px 0 2px;font-size:12px;font-weight:600}.group-label.danger{color:var(--danger)}.dash{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.dash-col{flex-direction:column;gap:14px;min-width:0;display:flex}.dash-m{flex-direction:column;gap:12px;display:flex}.month-nav{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.cal{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-w{text-align:center;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--soft);padding:4px 0;font-size:12px}.cal-w.sun,.cal-d:nth-child(7n+8) .cal-n{color:var(--danger)}.cal-w.sat{color:var(--accent)}.cal-d{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;min-width:0;min-height:92px;padding:3px;position:relative}.cal-d:hover{background:var(--soft)}.cal-d.out{opacity:.4}.cal-d.sel{outline:2px solid var(--accent);outline-offset:-2px}.cal-n{text-align:center;border-radius:50%;width:22px;height:22px;font-size:12px;line-height:22px;display:inline-block}.cal-d.today .cal-n{background:var(--accent);font-weight:700;color:var(--accent-text)!important}.cal-count{display:none}.cal-items{flex-direction:column;gap:2px;display:flex}.chip{text-align:left;border:0;border-left:3px solid var(--muted);background:var(--soft);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:3px;width:100%;padding:1px 4px;font-size:11px;display:block;overflow:hidden}.chip.due-overdue{background:var(--q1);color:var(--danger)}.chip.due-soon{background:var(--q3)}.chip.closed{opacity:.6;text-decoration:line-through}.more{color:var(--muted);font-size:11px}.cal-sel{margin-top:12px}.quad{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quad-cell{border:2px solid #0000;border-radius:8px;min-width:0;min-height:140px;padding:8px}.quad-cell.q1{background:var(--q1)}.quad-cell.q2{background:var(--q2)}.quad-cell.q3{background:var(--q3)}.quad-cell.q4{background:var(--q4)}.quad-cell.over{border-color:var(--accent)}.quad-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.quad-head .link{margin-left:auto;font-size:16px}.quad-cell .task-row{border-bottom-color:#7f7f7f26}.quad-cell [draggable]{cursor:grab}.group summary{cursor:pointer;align-items:center;gap:4px;padding:6px 0;font-weight:600;display:flex}.group summary .muted{margin-left:6px;font-weight:400}.prog{margin:10px 0}.prog.total{border-bottom:1px solid var(--line);padding-bottom:10px}.prog-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.prog-head span:first-child{align-items:center;display:inline-flex}.bar{background:var(--soft);border-radius:999px;height:8px;overflow:hidden}.bar div{border-radius:999px;height:100%;transition:width .3s}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:16px 0 12px;display:flex;overflow-x:auto}.tabs.sticky{z-index:5;background:var(--bg);margin:0;position:sticky;top:49px}.tab{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px}.tab.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.overlay{z-index:50;background:#0f172a73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border-radius:12px;width:100%;max-width:520px;box-shadow:0 20px 50px #00000040}.modal.wide{max-width:820px}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-head h2{font-size:15px}.modal-body{padding:16px}.form{flex-direction:column;gap:12px;display:flex}.form label,.field,label.block{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form label>input,.form label>select,.form label>textarea,.field>textarea,label.block>textarea{color:var(--text)}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid2 label,.detail-top label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.checks{gap:16px;padding:7px 0;display:flex}.check{cursor:pointer;align-items:center;color:var(--text)!important;flex-direction:row!important;gap:6px!important;display:inline-flex!important}.check input{width:auto}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.actions.left{justify-content:flex-start}.inline-form{gap:8px;margin-bottom:12px;display:flex}.inline-form select{width:auto}.req{color:var(--danger);font-weight:600}.stat-line{color:var(--text);background:var(--soft);border-radius:6px;margin:0;padding:4px 8px;font-size:13px}.colors{flex-wrap:wrap;gap:4px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--panel) inset}.detail{flex-direction:column;gap:12px;display:flex}.title-input{border-color:#0000;padding:4px 6px;font-size:18px;font-weight:600}.title-input:hover{border-color:var(--line)}.detail-top{align-items:flex-end;gap:12px;display:flex}.detail-top label{width:200px}.detail-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;display:flex}.timeline{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.stage{border-left:4px solid var(--muted);background:var(--soft);border-radius:6px;padding:8px 12px}.stage-head,.fb-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-head .link,.fb-head .link:first-of-type{margin-left:auto}.stage-sec{margin-top:6px}.label{color:var(--muted);margin-right:6px;font-size:11px;font-weight:600}.cards{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.card{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px}.card.fb{cursor:pointer}.card.fb:hover,.version:hover{background:var(--soft)}.card.doc,.card.project{margin-top:8px}.card.project summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.card.project summary .muted{margin-left:auto}.card.project .form{margin-top:12px}.decision{background:var(--soft);border-radius:4px;margin-left:auto;padding:0 6px;font-size:11px}.d-applied{color:#065f46;background:#d1fae5}.d-partial{background:var(--q2);color:var(--accent)}.d-rejected{background:var(--q1);color:var(--danger)}.d-hold{background:var(--q3);color:var(--warn)}.reason{margin:4px 0;font-size:13px}.version{border-top:1px dashed var(--line);cursor:pointer;margin-top:6px;padding:8px 4px}.path{background:var(--soft);overflow-wrap:anywhere;border-radius:4px;margin:4px 0;padding:2px 6px;font-size:12px;display:block}.filters{grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.settings{flex-direction:column;gap:14px;max-width:820px;margin:0 auto;display:flex}.setting-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.setting-row .name{flex:140px;width:auto}.setting-row select{width:auto}.row-btns{align-items:center;gap:2px;margin-left:auto;display:flex}.login{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:16px;display:flex}@media (width<=1100px){.dash{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.stage .stat-line{background:var(--panel)}@media (width<=767px){body{font-size:15px}.top{flex-wrap:wrap;gap:8px;padding:8px 16px}.nav{order:3;width:100%;overflow-x:auto}.main{padding:12px 16px 40px}.banner{margin:10px 16px 0}.tabs.sticky{top:92px}.panel{padding:12px}.cal-d{text-align:center;min-height:48px}.cal-items{display:none}.cal-count{background:var(--accent);width:18px;height:18px;color:var(--accent-text);border-radius:50%;margin:2px auto 0;font-size:11px;line-height:18px;display:block}.quad{grid-template-columns:1fr}.quad-cell{min-height:0}.pc-only{display:none}.grid2,.filters{grid-template-columns:1fr}.overlay{padding:0}.modal,.modal.wide{border-radius:0;max-width:none;min-height:100vh}.detail-top label{width:100%}}
