export const OFFICE_CSS = ` :root{ --bg:#070A12; --bg-soft:#0D1220; --surface:rgba(15,21,36,.78); --surface-strong:rgba(18,25,43,.94); --surface-faint:rgba(255,255,255,.045); --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.16); --text:#F5F7FC; --muted:#9BA6BF; --accent:#8A7CFF; --accent-2:#46D8FF; --success:#35D7A4; --warning:#F5C45A; --danger:#FF6B7A; --shadow:0 18px 60px rgba(0,0,0,.42); --radius-xl:24px; --radius-lg:18px; --radius-md:14px; --radius-sm:10px; } *{box-sizing:border-box} html,body{height:100%} body{ margin:0; background: radial-gradient(circle at 12% 0%,rgba(138,124,255,.18),transparent 28%), radial-gradient(circle at 90% 10%,rgba(70,216,255,.12),transparent 24%), radial-gradient(circle at 50% 100%,rgba(53,215,164,.08),transparent 32%), linear-gradient(180deg,#070A12 0%,#0A0F1A 100%); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; overflow:hidden; } button,input,select{font:inherit} .office-app{height:100vh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;padding:18px} .topbar{ min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 16px 14px 18px; border:1px solid var(--line); border-radius:var(--radius-xl); background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035)); backdrop-filter:blur(18px); box-shadow:var(--shadow); } .brand-block{display:flex;flex-direction:column;gap:3px;min-width:180px} .eyebrow,.panel-kicker{font-size:10px;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)} .h-title{font-size:22px;line-height:1.1;font-weight:750;letter-spacing:-.03em} .topbar-center{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;min-width:0} .phase-pill,.agent-pill{ min-height:38px; display:flex; align-items:center; gap:9px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.05); white-space:nowrap; } .phase-pill{font-weight:650} .phase-pill .phase-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px rgba(138,124,255,.8)} .phase-pill[data-tone="success"] .phase-dot{background:var(--success);box-shadow:0 0 16px rgba(53,215,164,.8)} .phase-pill[data-tone="warning"] .phase-dot{background:var(--warning);box-shadow:0 0 16px rgba(245,196,90,.8)} .phase-pill[data-tone="danger"] .phase-dot{background:var(--danger);box-shadow:0 0 16px rgba(255,107,122,.8)} .agent-pill{color:var(--muted)} .agent-pill strong{color:var(--text);font-size:13px} .agent-label{font-size:11px} .topbar-actions{display:flex;align-items:center;justify-content:flex-end;min-width:180px} .edit-btn{ height:38px; border-radius:999px; padding:0 15px; border:1px solid rgba(138,124,255,.35); color:var(--text); background:linear-gradient(180deg,rgba(138,124,255,.22),rgba(138,124,255,.12)); cursor:pointer; transition:transform .16s ease,border-color .16s ease,background .16s ease; } .edit-btn:hover{transform:translateY(-1px);border-color:rgba(138,124,255,.62);background:linear-gradient(180deg,rgba(138,124,255,.3),rgba(138,124,255,.16))} .edit-toolbar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 12px; border:1px solid rgba(138,124,255,.28); border-radius:var(--radius-lg); background:rgba(138,124,255,.12); backdrop-filter:blur(16px); } .edit-toolbar .et-hint{flex:1;min-width:220px;color:#DCE2F2;font-size:12px} .edit-toolbar button{ min-height:32px; padding:0 11px; border-radius:999px; border:1px solid var(--line-strong); color:var(--text); background:rgba(255,255,255,.07); cursor:pointer; } .edit-toolbar button:hover{background:rgba(255,255,255,.12)} .edit-toolbar button.add{border-color:rgba(53,215,164,.4);background:rgba(53,215,164,.12)} .edit-toolbar button.del{border-color:rgba(255,107,122,.42);background:rgba(255,107,122,.12)} .edit-toolbar button[disabled]{opacity:.42;cursor:not-allowed} .workspace{ min-height:0; display:grid; grid-template-columns:260px minmax(620px,1fr) 280px; gap:14px; } .side-panel,.office-shell,.activity-dock{ border:1px solid var(--line); border-radius:var(--radius-xl); background:var(--surface); backdrop-filter:blur(20px); box-shadow:var(--shadow); } .side-panel{padding:16px;min-height:0;overflow:hidden} .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px} .panel-head.compact{margin-bottom:16px} .panel-head h2{font-size:16px;line-height:1.2;letter-spacing:-.02em;margin:6px 0 0} .count-badge{ min-width:28px; height:28px; display:grid; place-items:center; border-radius:999px; border:1px solid rgba(70,216,255,.25); background:rgba(70,216,255,.12); color:#BDEFFF; font-size:12px; font-weight:700; } .roster-list{display:flex;flex-direction:column;gap:9px;overflow:auto;padding-right:2px;max-height:calc(100vh - 220px)} .roster-item{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:11px; align-items:center; padding:11px; border-radius:var(--radius-md); border:1px solid transparent; background:rgba(255,255,255,.035); transition:border-color .16s ease,background .16s ease,transform .16s ease; } .roster-item[data-agent]{cursor:pointer} .roster-item.active{border-color:rgba(138,124,255,.48);background:linear-gradient(180deg,rgba(138,124,255,.16),rgba(138,124,255,.08));transform:translateX(2px)} .roster-item.preview{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.07)} .roster-avatar{ width:33px;height:33px;border-radius:12px; display:grid;place-items:center; background:rgba(255,255,255,.08); border:1px solid var(--line); color:var(--role-color,var(--accent)); font-size:11px;font-weight:700; } .roster-copy{min-width:0;display:flex;flex-direction:column;gap:3px} .roster-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .roster-meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px} .roster-status{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.28)} .roster-item.active .roster-status{background:var(--role-color,var(--accent));box-shadow:0 0 12px var(--role-color,var(--accent))} .office-shell{min-width:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden} .office-shell[data-roster-empty="true"] .office{filter:saturate(.72) brightness(.9)} .office-shell[data-roster-empty="true"] .stage{opacity:.86} .office-shell[data-status="executing"] .office{box-shadow:inset 0 0 0 1px rgba(138,124,255,.12),0 0 0 1px rgba(138,124,255,.08)} .office-shell[data-status="reviewing"] .office{box-shadow:inset 0 0 0 1px rgba(70,216,255,.14),0 0 0 1px rgba(70,216,255,.08)} .office-shell[data-status="waiting_approval"] .office{box-shadow:inset 0 0 0 1px rgba(245,196,90,.16),0 0 0 1px rgba(245,196,90,.08)} .office-shell[data-status="error"] .office{box-shadow:inset 0 0 0 1px rgba(255,107,122,.18),0 0 0 1px rgba(255,107,122,.08)} .mission-strip{ min-height:72px; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:15px 18px; border-bottom:1px solid var(--line); } .mission-title{margin-top:6px;font-size:16px;font-weight:650;letter-spacing:-.02em;max-width:min(560px,52vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mission-step-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:160px} .mission-step-wrap span{font-size:11px;color:var(--muted)} .mission-step-wrap strong{font-size:13px;font-weight:650;text-align:right;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mini-map{display:flex;align-items:center;gap:6px;min-height:42px;padding:0 18px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none} .mini-map::-webkit-scrollbar{display:none} .mini-map .mm-dot{position:relative;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);flex-shrink:0;transition:all .2s ease} .mini-map .mm-dot[data-status="done"]{background:var(--success);border-color:var(--success);box-shadow:0 0 12px rgba(53,215,164,.35)} .mini-map .mm-dot[data-status="active"]{width:14px;height:14px;background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px rgba(138,124,255,.16)} .mini-map .mm-bar{flex:1;height:1px;min-width:22px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.18))} .mini-map .mm-label{position:absolute;left:50%;top:-29px;transform:translateX(-50%);padding:4px 7px;border-radius:999px;background:rgba(6,9,16,.95);border:1px solid var(--line);font-size:10px;white-space:nowrap;color:var(--text);opacity:0;pointer-events:none;transition:opacity .14s ease;z-index:40} .mini-map .mm-dot:hover .mm-label{opacity:1} .mini-map .mm-counter{margin-left:6px;color:var(--muted);font-size:11px;white-space:nowrap} .office-stage-wrap{min-height:0;padding:14px;display:flex} .office{ position:relative; flex:1; min-height:420px; overflow:hidden; display:flex; align-items:center; justify-content:center; border-radius:20px; border:1px solid rgba(255,255,255,.08); background: linear-gradient(180deg,rgba(18,28,48,.98) 0 16%,transparent 16%), radial-gradient(circle at 50% -10%,rgba(138,124,255,.24),transparent 32%), radial-gradient(circle at 18% 100%,rgba(70,216,255,.12),transparent 28%), linear-gradient(135deg,#31283A,#201A29 72%); } .office.has-art{ background: linear-gradient(180deg,rgba(6,10,18,.06),rgba(6,10,18,.12)), var(--office-backdrop) center center / cover no-repeat; } .office:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:48px 48px;opacity:.28} .office.has-art:before{background:linear-gradient(180deg,rgba(4,7,14,.06),transparent 28%,rgba(4,7,14,.1));opacity:1} .office:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 42%,rgba(0,0,0,.2) 100%);pointer-events:none} .stage{position:relative;width:720px;height:585px;margin:0;z-index:2} .flow-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:3} .flow-route{ fill:none; stroke:rgba(138,124,255,.34); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:5 8; filter:drop-shadow(0 0 6px rgba(138,124,255,.25)); } .flow-node{ fill:rgba(138,124,255,.18); stroke:rgba(255,255,255,.34); stroke-width:1.2; } .flow-node[data-status="done"]{fill:rgba(53,215,164,.34);stroke:rgba(53,215,164,.8)} .flow-node[data-status="active"]{fill:rgba(138,124,255,.6);stroke:#D8D2FF;filter:drop-shadow(0 0 8px rgba(138,124,255,.72))} .flow-node[data-status="pending"]{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.22)} .wall-window{position:absolute;top:16px;width:86px;height:42px;border:2px solid rgba(215,228,255,.35);border-radius:8px;background:linear-gradient(180deg,rgba(160,208,255,.34),rgba(110,150,210,.08));box-shadow:inset 0 0 0 1px rgba(15,20,31,.55)} .wall-window.w1{left:84px}.wall-window.w2{left:550px} .office.has-art .wall-window{display:none} .obj,.desk,.char{position:absolute;image-rendering:pixelated} .obj{filter:drop-shadow(3px 5px 0 rgba(0,0,0,.28));z-index:4} .desk{width:112px;z-index:5;filter:drop-shadow(4px 7px 0 rgba(0,0,0,.28))} .desk.boss{width:136px} .label{position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);font-size:10px;color:rgba(245,247,252,.8);white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.8)} .char{width:56px;height:72px;z-index:7;transition:left .9s cubic-bezier(.2,.7,.2,1),top .9s cubic-bezier(.2,.7,.2,1)} .char.walking{z-index:14} .char img{position:absolute;left:0;bottom:0;max-width:100%;max-height:100%;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.42));transform-origin:center bottom} .char.active:before{content:'';position:absolute;left:19px;top:-14px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,var(--role-color,var(--accent)) 0 28%,rgba(255,255,255,.18) 30%,transparent 72%);filter:blur(.2px);animation:focusPulse 1.8s ease-in-out infinite} .char.active::after{content:'';position:absolute;left:-4px;right:-4px;bottom:-7px;height:8px;border-radius:999px;background:radial-gradient(circle,var(--role-color,var(--accent)),transparent 70%);opacity:.82;filter:blur(1px)} .char.working img{animation:workLean 1.6s ease-in-out infinite} @keyframes focusPulse{0%,100%{transform:scale(.95);opacity:.88}50%{transform:scale(1.12);opacity:1}} @keyframes workLean{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}} .char[data-agent="ceo"],.desk[data-agent="ceo"],.roster-item[data-agent="ceo"]{--role-color:#A78BFA} .char[data-agent="planner"],.desk[data-agent="planner"],.roster-item[data-agent="planner"]{--role-color:#60A5FA} .char[data-agent="researcher"],.desk[data-agent="researcher"],.roster-item[data-agent="researcher"]{--role-color:#35D7A4} .char[data-agent="designer"],.desk[data-agent="designer"],.roster-item[data-agent="designer"]{--role-color:#F472B6} .char[data-agent="developer"],.desk[data-agent="developer"],.roster-item[data-agent="developer"]{--role-color:#F5C45A} .char[data-agent="qa"],.desk[data-agent="qa"],.roster-item[data-agent="qa"]{--role-color:#46D8FF} .char[data-agent="inspector"],.desk[data-agent="inspector"],.roster-item[data-agent="inspector"]{--role-color:#FB923C} .char[data-agent="support"],.desk[data-agent="support"],.roster-item[data-agent="support"]{--role-color:#94A3B8} .char[data-agent="writer"],.desk[data-agent="writer"],.roster-item[data-agent="writer"]{--role-color:#FBBF24} .desk::after{content:'';position:absolute;inset:-4px;border-radius:10px;border:1px solid transparent;pointer-events:none;transition:border-color .2s ease,box-shadow .2s ease} .desk.pipeline-desk::after{border-color:rgba(255,255,255,.12)} .desk[data-flow="done"]::after{border-color:rgba(53,215,164,.26)} .desk[data-flow="active"]::after{border-color:rgba(138,124,255,.72);box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 20px rgba(138,124,255,.34)} .desk[data-flow="pending"]::after{border-color:rgba(255,255,255,.16)} .flow-badge{ position:absolute; right:-7px; top:-12px; min-width:28px; height:22px; display:grid; place-items:center; padding:0 7px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:rgba(8,12,22,.88); color:#E7E2FF; font-size:10px; font-weight:750; letter-spacing:.01em; box-shadow:0 10px 22px rgba(0,0,0,.24); } .desk[data-flow="done"] .flow-badge{color:#B7FFE7;border-color:rgba(53,215,164,.28)} .desk[data-flow="active"] .flow-badge{color:#F2EFFF;border-color:rgba(138,124,255,.5);background:rgba(31,24,66,.92)} .desk.preview::after{border-color:rgba(255,255,255,.28);box-shadow:0 0 0 1px rgba(255,255,255,.04),0 0 18px rgba(255,255,255,.16)} .char.preview::before{content:'';position:absolute;left:18px;top:-14px;width:20px;height:20px;border-radius:50%;border:1px solid rgba(255,255,255,.42);box-shadow:0 0 18px rgba(255,255,255,.18)} .stage:has(.char.active[data-agent="ceo"]) .desk[data-agent="ceo"]::after, .stage:has(.char.active[data-agent="planner"]) .desk[data-agent="planner"]::after, .stage:has(.char.active[data-agent="researcher"]) .desk[data-agent="researcher"]::after, .stage:has(.char.active[data-agent="designer"]) .desk[data-agent="designer"]::after, .stage:has(.char.active[data-agent="developer"]) .desk[data-agent="developer"]::after, .stage:has(.char.active[data-agent="qa"]) .desk[data-agent="qa"]::after, .stage:has(.char.active[data-agent="inspector"]) .desk[data-agent="inspector"]::after, .stage:has(.char.active[data-agent="support"]) .desk[data-agent="support"]::after, .stage:has(.char.active[data-agent="writer"]) .desk[data-agent="writer"]::after{border-color:var(--role-color);box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 18px color-mix(in srgb,var(--role-color) 35%,transparent)} .shadow{position:absolute;left:12px;bottom:0;width:28px;height:7px;background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%)} .bubble{position:absolute;z-index:20;transform:translate(-50%,-100%);max-width:180px;padding:7px 10px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(10,14,24,.92);color:var(--text);font-size:11px;line-height:1.35;box-shadow:0 10px 24px rgba(0,0,0,.28);white-space:normal;animation:bubble-pop .22s cubic-bezier(.2,1.4,.6,1)} @keyframes bubble-pop{from{transform:translate(-50%,-88%) scale(.6);opacity:0}to{transform:translate(-50%,-100%) scale(1);opacity:1}} /* 감정 태그별 변형 — 희노애락. webtoon 느낌으로 background / 색 / 이모지 prefix. */ .bubble-joy {background:rgba(254,243,199,.97);color:#7c5d11;border-color:rgba(252,211,77,.6)} .bubble-joy::before {content:'😊 ';opacity:.85} .bubble-anger {background:rgba(254,226,226,.97);color:#7f1d1d;border-color:#ef4444;animation:bubble-pop .22s cubic-bezier(.2,1.4,.6,1),bubble-shake .4s ease-in-out 1} .bubble-anger::before {content:'😠 ';opacity:.85} .bubble-sorrow {background:rgba(219,234,254,.97);color:#1e3a8a;border-color:rgba(96,165,250,.5)} .bubble-sorrow::before {content:'😔 ';opacity:.85} .bubble-panic {background:rgba(254,226,226,.97);color:#9a1c1c;border-color:rgba(248,113,113,.55);animation:bubble-pop .22s cubic-bezier(.2,1.4,.6,1),bubble-shake .5s ease-in-out 1} .bubble-panic::before {content:'😱 ';opacity:.85} .bubble-curious {background:rgba(243,232,255,.97);color:#5b21b6;border-color:rgba(167,139,250,.45)} .bubble-curious::before {content:'🤔 ';opacity:.85} .bubble-firm {background:rgba(255,255,255,.98);color:#111;border-color:rgba(0,0,0,.18);font-weight:700} .bubble-firm::before {content:'✋ ';opacity:.85} .bubble-gratitude{background:rgba(220,252,231,.97);color:#14532d;border-color:rgba(74,222,128,.5)} .bubble-gratitude::before{content:'🙏 ';opacity:.85} .bubble-thought {/* default 그대로 */} @keyframes bubble-shake{0%,100%{transform:translate(-50%,-100%) rotate(0)}25%{transform:translate(-52%,-100%) rotate(-2deg)}75%{transform:translate(-48%,-100%) rotate(2deg)}} .brief-grid{display:flex;flex-direction:column;gap:10px} .brief-card{ padding:14px; border-radius:var(--radius-md); border:1px solid var(--line); background:rgba(255,255,255,.035); } .brief-card.hero{background:linear-gradient(180deg,rgba(138,124,255,.16),rgba(255,255,255,.03));border-color:rgba(138,124,255,.28)} .brief-card span{display:block;font-size:11px;color:var(--muted);margin-bottom:6px} .brief-card strong{display:block;font-size:17px;line-height:1.2;letter-spacing:-.02em} .brief-card p{margin:8px 0 0;color:#D6DDF0;font-size:12px;line-height:1.5} #attentionCard[data-tone="warning"]{border-color:rgba(245,196,90,.32);background:rgba(245,196,90,.08)} #attentionCard[data-tone="danger"]{border-color:rgba(255,107,122,.34);background:rgba(255,107,122,.08)} .progress{height:8px;margin-top:12px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden} .bar{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .22s ease} .activity-dock{padding:14px 16px 15px;display:flex;flex-direction:column;gap:10px} .activity-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px} .activity-head strong{display:block;font-size:14px;margin-top:5px} .last-log{max-width:65%;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .ticker{position:relative;overflow:hidden} .tk-track{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px} .tk-track::-webkit-scrollbar{display:none} .tk-item{ flex-shrink:0; display:inline-flex; align-items:center; gap:7px; min-height:30px; padding:0 11px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.045); color:#DCE3F3; font-size:11px; } .tk-item.tk-ok{border-color:rgba(53,215,164,.26)} .tk-item.tk-warn{border-color:rgba(245,196,90,.28)} .tk-item.tk-err{border-color:rgba(255,107,122,.3)} .tk-item .tk-agent{color:#C6BEFF;font-weight:650} .ctx-menu{position:fixed;z-index:1000;background:rgba(10,14,24,.96);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 18px 48px rgba(0,0,0,.5);padding:6px;min-width:180px;font-size:12px;color:var(--text)} .ctx-menu-head{padding:7px 10px 8px;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px} .ctx-menu-head .cmh-role{color:var(--role-color,#A78BFA);font-weight:700;text-transform:uppercase} .ctx-menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;border-radius:10px;transition:background .12s ease} .ctx-menu-item:hover{background:rgba(138,124,255,.16)} .ctx-menu-item.danger:hover{background:rgba(255,107,122,.14);color:#FFC3CC} .ctx-menu-divider{height:1px;background:var(--line);margin:4px} body[data-edit-mode="true"] .ctx-menu{display:none!important} body:not([data-edit-mode="true"]) .char{cursor:pointer} .ctx-detail{position:fixed;z-index:1001;background:rgba(10,14,24,.96);border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 20px 56px rgba(0,0,0,.56);padding:18px;color:var(--text);min-width:320px;max-width:520px;max-height:60vh;overflow-y:auto;font-size:12px;line-height:1.5} .ctx-detail h3{margin:0 0 10px;font-size:14px;color:var(--role-color,#A78BFA);letter-spacing:.02em} .ctx-detail .cd-close{position:absolute;top:10px;right:12px;background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer} .ctx-detail dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px} .ctx-detail dt{color:var(--muted);font-weight:600;white-space:nowrap} .ctx-detail dd{margin:0;color:var(--text);overflow-wrap:anywhere} .ctx-detail .cd-logs{margin-top:10px;padding:8px 10px;background:rgba(255,255,255,.045);border-radius:12px;font-family:ui-monospace,monospace;font-size:10.5px;max-height:120px;overflow-y:auto} .prop-panel{position:absolute;right:14px;top:14px;width:250px;background:rgba(10,14,24,.96);border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 18px 48px rgba(0,0,0,.5);padding:14px;font-size:11px;color:var(--text);z-index:25;display:none} .prop-panel.show{display:block} .prop-panel h4{margin:0 0 10px;font-size:12px;color:#C6BEFF;letter-spacing:.04em} .prop-panel .pp-row{margin-bottom:9px} .prop-panel label{display:block;font-size:10px;color:var(--muted);margin-bottom:4px} .prop-panel select,.prop-panel input{width:100%;background:rgba(255,255,255,.04);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:11px} .prop-panel .pp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:5px} .prop-panel .pp-thumb{width:100%;aspect-ratio:1/1;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:3px} .prop-panel .pp-thumb img{max-width:100%;max-height:100%;image-rendering:pixelated} .prop-panel .pp-thumb.active{border-color:rgba(138,124,255,.7);box-shadow:0 0 0 2px rgba(138,124,255,.18)} .prop-picker{position:fixed;inset:0;background:rgba(3,5,10,.68);z-index:1100;display:flex;align-items:center;justify-content:center} .prop-picker-box{background:rgba(10,14,24,.98);border:1px solid var(--line-strong);border-radius:20px;padding:16px;max-width:380px;max-height:80vh;overflow-y:auto;color:var(--text)} .prop-picker-box h3{margin:0 0 12px;font-size:13px;color:#C6BEFF} .prop-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .prop-pick{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:14px;padding:7px;cursor:pointer;text-align:center} .prop-pick:hover{border-color:rgba(138,124,255,.6)} .prop-pick img{max-width:60px;max-height:60px;image-rendering:pixelated} .prop-pick .pp-name{font-size:10px;color:var(--muted);margin-top:5px;word-break:keep-all} body[data-edit-mode="true"] .stage{background-image:linear-gradient(rgba(138,124,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(138,124,255,.18) 1px,transparent 1px);background-size:32px 32px} body[data-edit-mode="true"] .desk,body[data-edit-mode="true"] .char,body[data-edit-mode="true"] .obj{cursor:grab;outline:1px dashed rgba(138,124,255,.45)} body[data-edit-mode="true"] .desk:hover,body[data-edit-mode="true"] .char:hover,body[data-edit-mode="true"] .obj:hover{outline:2px solid rgba(138,124,255,.8);z-index:30} body[data-edit-mode="true"] .dragging{cursor:grabbing!important;opacity:.72;outline:2px solid var(--warning)!important;z-index:40} body[data-edit-mode="true"] .selected{outline:2px solid #F472B6!important;box-shadow:0 0 0 4px rgba(244,114,182,.22);z-index:35} body[data-edit-mode="true"] .char .shadow{display:none} @media (max-width:1180px){ .workspace{grid-template-columns:220px minmax(560px,1fr)} .mission-panel{display:none} } @media (max-width:900px){ body{overflow:auto} .office-app{height:auto;min-height:100vh;grid-template-rows:auto auto auto auto;padding:14px} .topbar{flex-wrap:wrap} .topbar-center{order:3;width:100%;justify-content:flex-start} .workspace{grid-template-columns:1fr} .team-panel{display:none} .mission-panel{display:block} .office-shell{min-height:620px} .mission-title{max-width:calc(100vw - 140px)} } @media (prefers-reduced-motion: reduce){ *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important} } `;