:root{--bg: #f3efe4;--panel: #fffdf6;--ink: #1f1d1a;--muted: #6b665c;--line: #2b2823;--soft: #d9d2c0;--accent: #3b6fd6;--good: #2a9d6f;--warn: #e0a81c;--bad: #c0392b;--idle: #9a948a;--floor: #e8dfc9;--floor2: #ded3b8;--wall: #cdbf9d;--shadow: 4px 4px 0 var(--line)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #15171c;--panel: #1e2128;--ink: #ece8df;--muted: #a39d92;--line: #0b0c0f;--soft: #343944;--floor: #262a33;--floor2: #2d323c;--wall: #3a4150;--idle: #6c7380}}:root[data-theme=dark]{--bg: #15171c;--panel: #1e2128;--ink: #ece8df;--muted: #a39d92;--line: #0b0c0f;--soft: #343944;--floor: #262a33;--floor2: #2d323c;--wall: #3a4150;--idle: #6c7380}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:14px;line-height:1.5}a{color:inherit}button{font:inherit;cursor:pointer}.px{background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow);image-rendering:pixelated}.px-btn{background:var(--panel);color:var(--ink);border:2px solid var(--line);box-shadow:3px 3px 0 var(--line);padding:6px 12px;font-weight:700;letter-spacing:.02em}.px-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--line)}.px-btn.primary{background:var(--accent);color:#fff}.px-btn.good{background:var(--good);color:#fff}.px-btn.bad{background:var(--bad);color:#fff}.px-btn.ghost{box-shadow:none}.px-btn:disabled{opacity:.5;cursor:not-allowed}.app{max-width:1240px;margin:0 auto;padding:16px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:16px}.brand{font-weight:900;letter-spacing:.04em;font-size:15px}.brand small{display:block;font-weight:500;color:var(--muted);font-size:11px;letter-spacing:0}.nav{display:flex;gap:6px;flex-wrap:wrap}.nav button{border:2px solid transparent;background:transparent;padding:6px 10px;font-weight:700;color:var(--muted)}.nav button.on{border-color:var(--line);background:var(--panel);color:var(--ink);box-shadow:2px 2px 0 var(--line)}.kpis{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.kpi{padding:4px 10px;border:2px solid var(--line);background:var(--panel);font-weight:700;font-size:12px;display:flex;gap:6px;align-items:center}.kpi .n{font-size:15px}.dot{display:inline-block;width:10px;height:10px;border:2px solid var(--line)}.dot.working{background:var(--accent)}.dot.meeting{background:var(--warn)}.dot.blocked{background:var(--bad)}.dot.idle{background:var(--idle)}.home{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}@media (max-width: 900px){.home{grid-template-columns:1fr}.home .side{order:-1}}.office{padding:14px;background:var(--wall)}.office-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:800}.office-head small{color:var(--muted);font-weight:500}.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 600px){.rooms{grid-template-columns:repeat(2,minmax(0,1fr))}}.room{position:relative;min-height:168px;padding:10px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;color:var(--ink);font:inherit;background:repeating-linear-gradient(0deg,var(--floor) 0 14px,var(--floor2) 14px 28px);border:3px solid var(--line);box-shadow:var(--shadow);transition:transform .08s}.room:hover{transform:translate(-1px,-1px)}.room.chief{outline:3px solid var(--accent);outline-offset:-6px}.room .name{font-weight:900;font-size:13px;background:var(--panel);border:2px solid var(--line);display:inline-block;padding:1px 6px}.room .desk{position:absolute;right:10px;bottom:44px;width:54px;height:16px;background:#8b6b3e;border:2px solid var(--line)}.room .desk:after{content:"";position:absolute;left:8px;top:-14px;width:20px;height:12px;background:#dfe9f5;border:2px solid var(--line)}.room .crew{position:absolute;left:12px;bottom:44px;display:flex;gap:8px;align-items:flex-end}.room .status{position:absolute;left:10px;right:10px;bottom:8px;display:flex;gap:6px;align-items:center;font-size:12px;font-weight:700;background:var(--panel);border:2px solid var(--line);padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room .status span{overflow:hidden;text-overflow:ellipsis}.room .bubble{position:absolute;left:12px;top:44px;font-size:11px;background:#fff;color:#1f1d1a;border:2px solid var(--line);padding:2px 6px;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room .bubble:after{content:"";position:absolute;left:10px;bottom:-8px;width:6px;height:6px;background:#fff;border-right:2px solid var(--line);border-bottom:2px solid var(--line)}.room .count{position:absolute;right:10px;top:10px;font-size:11px;font-weight:800;color:var(--muted)}.bot{width:16px;height:30px;position:relative;animation:bob 1.4s steps(2) infinite}.bot.still{animation:none}.bot i{position:absolute;left:0;display:block}.bot .hair{top:0;width:16px;height:4px;background:var(--line)}.bot .face{top:4px;width:16px;height:8px;background:#f3cfae;border-left:2px solid var(--line);border-right:2px solid var(--line)}.bot .face:before,.bot .face:after{content:"";position:absolute;top:3px;width:2px;height:2px;background:var(--line);left:3px}.bot .face:after{left:9px}.bot .body{top:12px;left:-2px;width:20px;height:12px;border:2px solid var(--line)}.bot .legs{top:24px;width:16px;height:6px;background:linear-gradient(90deg,var(--line) 0 4px,transparent 4px 12px,var(--line) 12px)}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.side{display:flex;flex-direction:column;gap:16px}.panel{padding:12px}.panel h3{margin:0 0 8px;font-size:14px;display:flex;justify-content:space-between;align-items:baseline}.panel h3 small{color:var(--muted);font-weight:500}.list{display:flex;flex-direction:column;gap:8px}.item{text-align:left;padding:8px 10px;background:var(--panel);border:2px solid var(--line);width:100%}.item:hover{background:var(--floor)}.item .t{font-weight:800}.item .s{color:var(--muted);font-size:12px}.chat{font-size:12px;display:flex;flex-direction:column;gap:6px}.chat .row{display:grid;grid-template-columns:56px 1fr;gap:6px}.chat .row .w{color:var(--muted)}.chat .row .m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-box{display:flex;flex-direction:column;gap:8px}.order-box textarea{width:100%;min-height:70px;resize:vertical;border:2px solid var(--line);padding:8px;font:inherit;background:var(--panel);color:var(--ink)}.order-box select,.order-box input{border:2px solid var(--line);padding:6px;font:inherit;background:var(--panel);color:var(--ink)}.order-box .r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.table-wrap{overflow-x:auto}table.px-table{width:100%;border-collapse:collapse;font-size:13px}.px-table th,.px-table td{border:2px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.px-table th{background:var(--floor);font-size:12px}.px-table tr:hover td{background:var(--floor)}.px-table td.num{text-align:right;font-variant-numeric:tabular-nums}.tag{display:inline-block;border:2px solid var(--line);padding:0 6px;font-size:11px;font-weight:800;background:var(--panel);white-space:nowrap}.tag.결재대기{background:var(--accent);color:#fff}.tag.막힘,.tag.반려{background:var(--bad);color:#fff}.tag.회의중{background:var(--warn)}.tag.완료,.tag.승인{background:var(--good);color:#fff}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.filters select,.filters input{border:2px solid var(--line);padding:6px;font:inherit;background:var(--panel);color:var(--ink)}.two{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.two{grid-template-columns:1fr}}.detail h2{margin:0 0 4px;font-size:18px}.meta{color:var(--muted);font-size:12px;margin-bottom:12px;display:flex;gap:10px;flex-wrap:wrap}.block{margin-bottom:14px}.block h4{margin:0 0 6px;font-size:13px;text-transform:none;letter-spacing:.02em}.quote{border-left:4px solid var(--line);padding:6px 10px;background:var(--floor);white-space:pre-wrap}.advice{border:2px dashed var(--line);padding:8px 10px;margin-bottom:8px;background:var(--panel)}.advice b{display:block;font-size:12px;margin-bottom:2px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions input{flex:1;min-width:160px;border:2px solid var(--line);padding:6px;font:inherit;background:var(--panel);color:var(--ink)}.timeline{display:flex;flex-direction:column;gap:6px}.tl{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13px;border-bottom:1px solid var(--soft);padding-bottom:6px}.tl .when{color:var(--muted);font-size:12px}.tl .who{font-weight:800}.tl.kind-order .who{color:var(--accent)}.tl.kind-decision .who{color:var(--good)}.tl.kind-advice .who{color:var(--muted)}.tl.kind-meeting{background:var(--floor);padding:6px}.empty{color:var(--muted);padding:20px;text-align:center}.external{color:var(--bad);font-weight:800;font-size:12px}.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.team-card{padding:12px;border-top:8px solid var(--accent)}.team-card h3{margin:0 0 6px}.team-card ul{margin:4px 0 8px 18px;padding:0;font-size:13px}.chips{display:flex;gap:6px;flex-wrap:wrap}.bars{display:flex;flex-direction:column;gap:8px}.bar{display:grid;grid-template-columns:110px 1fr 70px;gap:8px;align-items:center;font-size:13px}.bar .track{height:16px;border:2px solid var(--line);background:var(--panel)}.bar .fill{height:100%;background:var(--accent)}.bar .v{text-align:right;font-variant-numeric:tabular-nums}footer{margin-top:24px;color:var(--muted);font-size:12px;display:flex;gap:12px;flex-wrap:wrap}.kpi.me{display:inline-flex;align-items:center;gap:4px;padding:2px 6px}.kpi.me button{font:inherit;border:2px solid transparent;background:transparent;color:var(--muted);padding:2px 6px;cursor:pointer;border-radius:4px}.kpi.me button.on{border-color:var(--ink);color:var(--ink);background:var(--panel);font-weight:800}.kpi.me small{color:var(--muted);margin-left:2px}.room .name small{display:block;font-weight:500;color:var(--muted);font-size:10px}.order-box input[type=date],.order-box input[type=time]{flex:1}.sched-item{display:block;text-align:left}.sched-item .when{display:inline-block;min-width:92px;font-weight:700;color:var(--muted);margin-right:6px}.sched-item .when small{display:block;font-weight:500;font-size:10px}.sched-item .when.late{color:var(--bad)}.sched-item .t{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.sched-item .tag{margin-left:auto}.tag.sched-대기{background:#fff3c4;color:#7a5a00}.tag.sched-지시함{background:#dce9ff;color:#1f4fa3}.tag.sched-완료{background:#d9f2e3;color:#1d6b43}.tag.sched-제외{background:#eee;color:#777;text-decoration:line-through}.st-완료 .t,.st-제외 .t{opacity:.7}.chips .px-btn{padding:2px 8px;font-size:12px}.advice.conote{border-style:solid;border-color:var(--accent)}.tl.kind-conote .who{color:var(--accent)}.team-picker{display:flex;flex-direction:column;gap:4px}.team-picker .chips{display:flex;flex-wrap:wrap;gap:6px}.team-picker .px-btn{padding:3px 8px;font-size:12px}.cal{margin-bottom:10px}.cal-head{display:flex;gap:6px;align-items:center;margin-bottom:6px}.cal-head b{flex:1;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-w{font-size:11px;color:var(--muted);text-align:center;padding:2px 0}.cal-w:first-child{color:var(--bad)}.cal-c{min-height:64px;border:2px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;padding:3px;font:inherit;font-size:10.5px;display:flex;flex-direction:column;gap:2px;cursor:pointer;overflow:hidden}.cal-c.empty{border-color:transparent;background:transparent;cursor:default}.cal-c .d{font-weight:800;font-size:11px}.cal-c.today .d{color:var(--accent)}.cal-c.sel{outline:3px solid var(--accent);outline-offset:-3px}.cal-i{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px;border-radius:2px;background:#fff3c4}.cal-i.st-지시함{background:#dce9ff}.cal-i.st-완료{background:#d9f2e3;text-decoration:line-through}.cal-i.st-제외{background:#eee;text-decoration:line-through}.cal-more{font-size:10px;color:var(--muted)}@media (max-width: 720px){.cal-c{min-height:44px}.cal-i{display:none}.cal-c.has:after{content:"•"}}.tag.기획중{background:var(--accent);color:#fff;opacity:.75}.tag.착수대기{background:var(--warn)}.kpi.me select{font:inherit;font-weight:800;border:2px solid var(--ink);background:var(--panel);color:var(--ink);padding:1px 4px}.users th,.users td{font-size:12px}.users input[type=text],.users input[type=number]{width:100%;box-sizing:border-box}.plan .steps{margin:6px 0 0 18px;padding:0;font-size:13px}.plan .steps li{margin-bottom:4px}.plan .steps small{color:var(--muted)}.plan .s{font-size:12px;margin-top:4px}.work details.step{border:2px solid var(--line);padding:6px 8px;margin-top:6px;background:var(--panel)}.work details.step summary{cursor:pointer;font-size:13px}.work details.step .quote{margin-top:6px;font-size:12.5px;line-height:1.55}pre.prompt{white-space:pre-wrap;font-size:11.5px;line-height:1.5;border:2px solid var(--line);padding:8px;background:var(--panel);max-height:320px;overflow:auto}.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:20px}.login{width:min(420px,100%)}.login label{display:block;font-size:13px;margin-bottom:6px}.login label input{display:block;width:100%;box-sizing:border-box;margin-top:3px}.settings{display:flex;flex-direction:column;gap:14px}.settings .tabs{display:flex;gap:6px;flex-wrap:wrap}.settings .tabs .px-btn small{font-weight:500;opacity:.8}.settings .guide{margin:0;padding-left:18px;font-size:13px;line-height:1.55}.settings .guide li{margin-bottom:6px}.settings .panel h3{flex-wrap:wrap;gap:4px 10px}.settings .panel h3 small{font-weight:500;font-size:12px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.card{padding:10px 12px;display:flex;flex-direction:column;gap:6px}.card .card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.card .tag.ok{background:var(--good);color:#fff}.card .hint{color:var(--muted);font-size:12px;line-height:1.4}.card .r{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.card input{flex:1;min-width:0;border:2px solid var(--line);padding:6px;font:inherit;background:var(--panel);color:var(--ink)}.card select{border:2px solid var(--line);padding:5px;font:inherit;background:var(--panel);color:var(--ink);max-width:100%}.switches{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:4px 16px;margin-top:12px;font-size:13px}.switches label{display:flex;gap:6px;align-items:flex-start}table.models td{white-space:normal}table.models td:first-child{white-space:nowrap}table.models select{max-width:100%;border:2px solid var(--line);padding:4px;font:inherit;background:var(--panel);color:var(--ink)}.users input[type=text],.users input[type=number]{min-width:80px}@media (max-width: 720px){.app{padding:8px}.topbar{gap:8px}.kpis{margin-left:0;width:100%}.panel{padding:10px}table.px-table{font-size:12px}.px-table th,.px-table td{padding:4px 6px}.detail h2{font-size:18px}}.livebar{align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.livebar small{flex:1 1 240px}table.manuals input{width:100%;min-width:220px}table.manuals td:nth-child(2){color:var(--muted);font-size:12px}.card textarea{width:100%;font:12px/1.4 ui-monospace,monospace;margin:6px 0}.advice.lesson textarea{width:100%;box-sizing:border-box;border:2px solid var(--line);padding:6px;font:inherit;background:var(--panel);color:var(--ink);margin:4px 0}.advice.lesson .actions select{border:2px solid var(--line);padding:5px;font:inherit;background:var(--panel)}table.lessons input[type=text]{width:100%;min-width:260px}.room.busy .crew{left:auto;right:22px;bottom:56px;gap:6px;z-index:0}.room.busy .bot{height:22px}.room.busy .bot .legs{display:none}.room.busy .bot .body{height:10px}.room .desk{z-index:1}.room.busy .desk:after{background:#bfe3ff;box-shadow:inset 0 0 0 2px #e8f6ff;animation:glow 1.4s steps(2) infinite}@keyframes glow{50%{background:#e8f6ff}}.room.alert .crew .bot:first-child{animation:bob .5s steps(2) infinite}.saved-flash{font-size:12px;font-weight:800;color:var(--good);margin-left:8px}.tl.pick{grid-template-columns:22px 110px 1fr}.tl .pickbox{width:16px;height:16px;margin-top:2px}.tag.중단{background:#555;color:#fff}.block.manage{border-top:2px dashed var(--line);padding-top:10px}
