*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f3f2ed;--surface: #fff;--ink: #2f2b26;--ink2: #6b6459;--ink3: #9a938a;--line: #e0ddd4;--line2: #efece5;--brand: #627e49;--brand-d: #536b3d;--brand-dd: #3b4c2c;--brand-w: #e8eedf;--gold: #ecb85c;--gold-ink: #4a3610;--ok: #4a7c59;--warn: #c78a3c;--bad: #b5544a;--info: #5b7a99;--r: 10px}body{font-family:Pretendard,Pretendard Variable,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:200px minmax(0,1fr);min-height:100vh}.body{min-width:0}.side{background:var(--brand-dd);color:#dfe6d6;padding:16px 0;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{padding:0 18px 14px;border-bottom:1px solid #4a5c39;margin-bottom:10px}.brand b{display:block;font-size:15px;color:#fff;letter-spacing:-.3px}.brand span{font-size:10px;color:#a9b69c;letter-spacing:.4px}.navsec{padding:14px 18px 4px;font-size:9.5px;color:#b4c1a8;letter-spacing:1.2px;font-weight:700;border-top:1px solid rgba(255,255,255,.06);margin-top:6px}.navsec:first-of-type{border-top:0;margin-top:0}.navlink{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 18px;color:#dfe6d6;text-decoration:none;cursor:pointer;font-size:12.5px;border-left:2px solid transparent}.navlink:hover{background:#45573a;color:#fff}.navlink.on{background:#4d6140;color:#fff;border-left-color:var(--gold);font-weight:600}.navlink.is-soon{color:#9aaa8c;cursor:default}.navlink.is-soon:hover{background:transparent;color:#9aaa8c}.navlink em{font-style:normal;font-size:10px;color:#9aaa8c}.top{background:var(--surface);border-bottom:1px solid var(--line);padding:12px 24px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;flex-wrap:wrap}.top h1{font-size:16px;font-weight:700;letter-spacing:-.3px}.clock{font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums;flex:1;min-width:150px}.rolebar{display:flex;align-items:center;gap:8px;background:var(--bg);padding:5px 10px;border-radius:8px;border:1px solid var(--line);flex-wrap:wrap}.rolebar label{font-size:11px;color:var(--ink2);font-weight:600}.rolebar input[type=range]{width:120px;padding:0;border:0;background:transparent}.rolebar output{font-size:11px;color:var(--ink2);min-width:52px;font-variant-numeric:tabular-nums}select,input,textarea{font-family:inherit;font-size:12px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}select:focus,input:focus,textarea:focus{outline:2px solid var(--brand-w);border-color:var(--brand)}.main{padding:20px 24px 60px;max-width:1560px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:16px}.card>h3,.card h3{font-size:13px;font-weight:700;margin-bottom:2px;letter-spacing:-.2px}.sub{font-size:11px;color:var(--ink3);margin-bottom:14px}.mut{color:var(--ink3)}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(auto-fit,minmax(146px,1fr));margin-bottom:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px}.kpi .l{font-size:10.5px;color:var(--ink3);font-weight:600}.kpi .v{font-size:21px;font-weight:700;letter-spacing:-.6px;margin-top:3px;font-variant-numeric:tabular-nums}.kpi .d{font-size:10.5px;color:var(--ink2);margin-top:2px}.kpi.hl{background:var(--brand-d);border-color:var(--brand-d)}.kpi.hl .l{color:#f4f7ef}.kpi.hl .v{color:#fff}.kpi.hl .d{color:#eef3e7}.btn{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 11px;font-size:11.5px;cursor:pointer;font-family:inherit;color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;line-height:1.35;min-height:30px;white-space:nowrap}.btn:hover{background:var(--bg)}.btn.pri{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.pri:hover{background:var(--brand-d);border-color:var(--brand-d)}.btn.sm{padding:4px 8px;font-size:11px;min-height:26px}.btn.on{background:var(--brand-dd);color:#fff;border-color:var(--brand-dd)}.clink{background:none;border:0;padding:2px;font-family:inherit;font-size:11.5px;color:var(--brand-d);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.hint{font-size:11px;color:var(--ink3)}.err{font-size:11px;color:var(--bad);font-weight:600}.tag{display:inline-block;padding:1.5px 6px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap;background:#f0eeea;color:#6b6459}.tag[data-kind=office]{background:#e3ebd8;color:#44592f}.tag[data-kind=overtime]{background:var(--brand-dd);color:#fff}.tag[data-kind=home]{background:#e3edf5;color:#3d6285}.tag[data-kind=outside],.tag[data-kind=trip]{background:#f6e8d6;color:#8a6329}.tag[data-kind=leave]{background:#f6e0dd;color:#8e3f36}.tag[data-kind=before],.tag[data-kind=after],.tag[data-kind=weekend]{background:#f0eeea;color:#8a8378}.status-chip{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none;background:var(--ink3)}.status-chip[data-kind=allHands]{background:var(--brand)}.status-chip[data-kind=outside],.status-chip[data-kind=trip]{background:var(--warn)}.status-chip[data-kind=leave]{background:var(--bad)}.status-chip[data-kind=home]{background:var(--info)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--ink2);margin-bottom:10px}.legend>span{display:inline-flex;align-items:center;gap:5px}#office{display:block;width:100%;max-width:912px;aspect-ratio:304 / 232;image-rendering:pixelated;margin:0 auto}#office.is-hover{cursor:pointer}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-size:10.5px;color:var(--ink3);font-weight:600;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}td{padding:7px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}tbody tr:hover{background:#faf9f5;cursor:pointer}tbody tr.sel{background:var(--brand-w)}.who{display:flex;align-items:center;gap:10px}.who canvas{width:22px;height:20px;image-rendering:pixelated;flex:none}.who b{font-weight:600}.who small{font-size:11px;color:var(--ink3);margin-left:4px}.mask{position:fixed;inset:0;background:#1e1a1659;display:none;z-index:40}.mask.on{display:block}.drawer{position:fixed;right:0;top:0;bottom:0;width:400px;max-width:94vw;background:#fff;z-index:41;transform:translate(100%);transition:transform .18s ease;overflow-y:auto;padding:20px}.drawer.on{transform:none}.drawer h2{font-size:17px;margin-bottom:3px;letter-spacing:-.3px}.x{position:absolute;right:16px;top:16px;border:0;background:var(--line2);width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:15px;color:var(--ink2);font-family:inherit}.figure{background:var(--bg);border:1px solid var(--line2);border-radius:var(--r);display:flex;justify-content:center;padding:16px 0 12px}#portrait{image-rendering:pixelated;display:block}.dl{display:grid;grid-template-columns:76px 1fr;gap:6px 10px;font-size:12px;margin-top:14px}.dl dt{color:var(--ink3);font-size:11px}.dl dd{margin:0}.actions{display:flex;gap:6px;margin-top:16px}.actions .btn{flex:1;min-height:36px;font-size:12px}.composer{margin-top:12px;background:#faf9f6;border:1px solid var(--line2);border-radius:8px;padding:10px}.composer__label{display:block;font-size:11px;color:var(--ink3);font-weight:700;margin-bottom:6px}.composer textarea{width:100%;font-size:13px;resize:none}.composer__foot{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px}.composer__foot .btn{margin-left:auto}.toast{margin-top:12px;font-size:12px;background:var(--brand-w);color:#3f5330;border-radius:6px;padding:8px 10px}.cal{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.cal__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.cal__head h3{font-size:15px}.cal__nav{display:flex;gap:6px}.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line2)}.cal__dow{font-size:10.5px;color:var(--ink3);font-weight:600;padding:7px 8px;border-bottom:1px solid var(--line);border-right:1px solid var(--line2)}.cal__dow.is-weekend,.cal__cell.is-weekend .cal__num{color:var(--ink3)}.cal__cell{all:unset;box-sizing:border-box;min-height:86px;padding:6px 7px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);display:flex;flex-direction:column;gap:3px;cursor:pointer}.cal__cell:hover{background:#faf9f5}.cal__cell:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.cal__cell.is-blank{cursor:default;background:#fbfaf8}.cal__cell.is-selected{background:var(--brand-w)}.cal__num{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cal__cell.is-today .cal__num{align-self:flex-start;background:var(--gold);color:var(--gold-ink);border-radius:4px;padding:0 5px}.cal__line{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal__more{font-size:10px;color:var(--ink3)}.cal__side h3{font-size:15px}.cal__list{list-style:none;margin-bottom:10px}.cal__list li{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:12px}.cal__list strong{display:flex;align-items:center;gap:6px;font-weight:600}.cal__list span:not(.status-chip){display:block;margin-top:2px;font-size:11px;color:var(--ink3)}.cal__list .clink{color:var(--ink3);font-weight:500}.cal__empty{color:var(--ink3);font-size:12px}.cal__form{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:9px}.cal__form-title{font-size:12px;font-weight:700}.cal__form label{display:grid;gap:3px;font-size:11px;color:var(--ink2);font-weight:600}.cal__form select,.cal__form input{font-size:12px}.cal__times{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cal__times[hidden],.cal__form label[hidden]{display:none}.cal__form .btn.pri{justify-self:start}@media(max-width:1100px){.app{grid-template-columns:minmax(0,1fr)}.side{position:static;height:auto;display:flex;flex-wrap:wrap;align-items:center;padding:10px 8px}.brand{border:0;margin:0;padding:0 10px}.navsec{display:none}.navlink{padding:6px 10px;border-left:0;border-bottom:2px solid transparent}.navlink.on{border-bottom-color:var(--gold)}.navlink.is-soon{display:none}.cal{grid-template-columns:1fr}}@media(max-width:640px){.top{padding:10px 14px}.main{padding:14px 12px 40px}.drawer{width:100%;max-width:100%;padding:16px}#view-office table th:nth-child(3),#view-office table td:nth-child(3){display:none}.cal__cell{min-height:58px;padding:4px}.cal__line{font-size:9.5px}}[hidden]{display:none!important}.gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px}.gate[hidden]{display:none}.gate__card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;display:grid;gap:10px}.gate__card[hidden]{display:none}.gate__brand{font-size:16px;font-weight:700;letter-spacing:-.3px}.gate__card .sub{margin-bottom:4px}.gate__card label{display:grid;gap:4px;font-size:11px;color:var(--ink2);font-weight:600}.gate__card input{font-size:13px;padding:8px 10px}.gate__card .btn.pri{min-height:36px;font-size:12px}.whoami{font-size:11.5px;color:var(--ink2);font-weight:600}.navlink .bdg{background:var(--bad, #b5544a);color:#fff;border-radius:9px;padding:0 6px;font-size:10px;font-weight:700;margin-left:auto}.navlink .bdg[hidden]{display:none}tr.unread td{font-weight:600}tr.unread td:first-child{box-shadow:inset 2px 0 0 var(--gold)}td .btn.sm+.btn.sm{margin-left:4px}.empty{margin:10px 0 0}.empty[hidden]{display:none}.notice{background:#faf6ea;border:1px solid #efe2bf;color:#6b5420;border-radius:8px;padding:9px 12px;font-size:12px;margin-bottom:14px}.card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.card__tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.seg{display:inline-flex;gap:4px}.two-col{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}.two-col>.card{margin-bottom:0}.grid.two-col{margin-bottom:16px}.tbl{overflow-x:auto}td.r,th.r{text-align:right}td.c,th.c{text-align:center}.num{font-variant-numeric:tabular-nums}.view tbody tr:hover{cursor:default}.field{display:grid;gap:4px;font-size:11px;color:var(--ink2);font-weight:600}.field>span{font-size:11px}.field input,.field select,.field textarea{font-size:12.5px;font-weight:400;width:100%}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checks{display:flex;flex-wrap:wrap;gap:6px 12px;font-weight:400;color:var(--ink)}.checks label{display:inline-flex;align-items:center;gap:4px;font-size:12px}.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:10px}.inline-form .field{min-width:150px}.big-num{font-size:21px;font-variant-numeric:tabular-nums}.chart{display:block;width:100%;height:auto;overflow:visible;font-family:inherit}.chart-empty{display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--line);border-radius:8px;color:var(--ink3);font-size:12px;padding:0 16px;background:#fbfaf8}.chart-tip{position:fixed;z-index:60;background:var(--ink);color:#fff;font-size:11.5px;padding:5px 8px;border-radius:6px;pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums}.spark{width:96px;height:28px;flex:none}.pbar{display:inline-block;position:relative;width:64px;height:6px;background:var(--line2);border-radius:3px;overflow:hidden;vertical-align:middle}.pbar i{position:absolute;inset:0 auto 0 0;background:var(--brand);border-radius:3px}.share{display:inline-flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.flow__step{display:grid;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:8px 12px;min-width:96px}.flow__step small{font-size:10.5px;color:var(--ink3);font-weight:600}.flow__step b{font-size:16px;font-variant-numeric:tabular-nums}.flow__arrow{color:var(--ink3);font-size:18px}.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:16px}.ch{all:unset;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;display:grid;gap:6px;cursor:pointer}.ch:hover{border-color:#cfcabd}.ch:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.ch.is-sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.ch__top{display:flex;justify-content:space-between;align-items:center;gap:8px}.ch__role{font-size:11px}.ch__metric{display:grid}.ch__metric small,.ch__foot small{font-size:10.5px;color:var(--ink3);font-weight:600;display:block}.ch__metric strong{font-size:21px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.ch__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;font-size:12px;font-variant-numeric:tabular-nums}.ch__crm{font-size:11px;border-top:1px solid var(--line2);padding-top:6px}.top10{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.top10__item{display:grid;gap:4px;text-decoration:none;color:var(--ink);font-size:11.5px}.top10__item.is-first{grid-column:span 2;grid-row:span 2}.top10__item img,.top10__ph{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:var(--line2);display:block}.top10.is-empty .top10__ph{background:repeating-linear-gradient(135deg,#f3f1ec 0 8px,#ece9e2 8px 9px)}.top10__cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heat__cell{color:var(--ink3)}.kw{padding-left:18px;display:grid;gap:4px}.tag-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.tags{display:grid;gap:8px;align-content:start}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line2);border-radius:999px;padding:2px 10px;font-size:12px}.chip__x{border:0;background:none;color:var(--ink3);cursor:pointer;font-size:14px;line-height:1;padding:0 0 0 2px;font-family:inherit}.chip__x:hover{color:var(--bad)}.mform{display:flex;gap:6px;flex-wrap:wrap}.mform input[type=text]{flex:1;min-width:120px}.kanban{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}.kcol{background:var(--bg);border:1px solid var(--line2);border-radius:var(--r);padding:8px;display:flex;flex-direction:column;gap:8px;min-height:180px}.kcol.is-hold{background:#f7f6f2;border-style:dashed}.kcol.is-over{border-color:var(--brand);background:var(--brand-w)}.kcol header{display:flex;justify-content:space-between;align-items:center;padding:2px 4px;font-size:12px}.kcol__empty{font-size:11px;color:var(--ink3);padding:4px}.pcard{all:unset;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 10px;display:grid;gap:5px;cursor:pointer;font-size:12px}.pcard:hover{border-color:#cfcabd}.pcard:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.pcard[draggable=true]{cursor:grab}.pcard.is-drag{opacity:.5}.pcard__cover{width:100%;height:84px;object-fit:cover;border-radius:6px;display:block}.pcard__top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.pcard__top b{font-weight:700}.pcard__sum{color:var(--ink2);font-size:11.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pcard__meta{color:var(--ink3);font-size:11px}.pcard__prog{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}.pcard__prog .pbar{flex:1}.tl__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.tl__head h3{font-size:15px}.tl-wrap{overflow-x:auto}.tl{display:grid;grid-template-columns:150px repeat(var(--days),minmax(22px,1fr));min-width:calc(150px + var(--days) * 22px);border-top:1px solid var(--line)}.tl__name{all:unset;box-sizing:border-box;grid-column:1;padding:7px 8px;font-size:12px;border-bottom:1px solid var(--line2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tl__corner{font-size:10.5px;color:var(--ink3);font-weight:600;cursor:default}.tl__day{font-size:10px;color:var(--ink3);text-align:center;padding:7px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.tl__day.is-weekend{background:#fbfaf8}.tl__day.is-today{color:var(--gold-ink);font-weight:700;background:var(--gold);border-radius:4px 4px 0 0}.tl__lane{grid-column:2 / -1;display:grid;grid-template-columns:repeat(var(--days),minmax(22px,1fr));align-items:center;border-bottom:1px solid var(--line2);position:relative;min-height:34px}.tl__today{grid-row:1;align-self:stretch;justify-self:center;width:2px;background:var(--gold)}.tl__bar{all:unset;box-sizing:border-box;grid-row:1;height:20px;border-radius:4px;background:var(--brand);color:#fff;font-size:10.5px;font-weight:600;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;display:flex;align-items:center;margin:0 1px}.tl__bar.stage-plan,.tl__bar.stage-prep{background:#8aa173}.tl__bar.stage-review{background:var(--brand-d)}.tl__bar.stage-done{background:#b8b2a6}.tl__bar.stage-hold{background:#d8d3c8;color:var(--ink2)}.tl__empty{margin-top:10px}.sheet{width:460px}.sheet__cover{width:100%;max-height:180px;object-fit:cover;border-radius:8px;margin-bottom:12px;display:block}.sheet__kicker{margin-bottom:4px;display:flex;align-items:center;gap:6px}.sheet__sum{color:var(--ink2);margin:6px 0 4px;white-space:pre-wrap}.sheet__h{font-size:13px;margin:18px 0 6px}.sheet .dl{grid-template-columns:70px 1fr}.links{display:grid;gap:2px}.links a{color:var(--brand-d);word-break:break-all}.mlist{list-style:none;margin:8px 0;display:grid;gap:2px}.mlist li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line2);font-size:12.5px}.mlist label{display:flex;align-items:center;gap:8px}.mlist li.is-done span{color:var(--ink3);text-decoration:line-through}.pform{display:grid;gap:10px}.pform h2{margin-bottom:4px}@media(max-width:760px){.two{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(6,minmax(200px,78vw))}.top10__item.is-first{grid-column:span 1;grid-row:span 1}}
