/* One non-modal assistant is shared by service pages and edit mode. */
#builderLumiRoot { position:fixed; inset:0; z-index:10020; pointer-events:none; font-family:Pretendard,Arial,sans-serif; color:#172235; }
#builderLumiRoot[hidden] { display:none!important; }
#builderLumiRoot *,#builderLumiRoot *::before,#builderLumiRoot *::after { box-sizing:border-box; }
#builderLumiRoot button,#builderLumiRoot textarea { font:inherit; }
#builderLumiRoot button { cursor:pointer; }
#builderLumiRoot button:disabled { cursor:not-allowed; opacity:.52; }
#builderLumiRoot :focus-visible { outline:3px solid #2563eb; outline-offset:2px; }
.lumi-launcher { pointer-events:auto; position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom)); min-width:92px; min-height:48px; border:1px solid #d7cce8; border-radius:999px; padding:0 17px; background:#fff; color:#502b77; box-shadow:0 8px 25px #2f1c4b33; font-size:15px!important; font-weight:750!important; }
.lumi-launcher[hidden],.lumi-panel[hidden],.lumi-task[hidden] { display:none!important; }
.lumi-panel { pointer-events:auto; position:fixed; width:380px; height:520px; min-width:300px; min-height:340px; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); display:flex; flex-direction:column; overflow:hidden; border:1px solid #d8cfe4; border-radius:18px; background:#fff; box-shadow:0 20px 55px #1f193c3b; transition:opacity .18s ease,box-shadow .18s ease; }
.lumi-panel.is-background { opacity:.48; box-shadow:0 8px 24px #1f193c24; }
.lumi-header { display:flex; align-items:center; gap:8px; min-height:56px; padding:5px 8px 5px 16px; border-bottom:1px solid #eee9f3; background:#fbf9fd; touch-action:none; user-select:none; cursor:grab; }
.lumi-header:active { cursor:grabbing; }
.lumi-heading { flex:1; min-width:0; margin:0; font-size:16px; font-weight:800; line-height:1.3; }
.lumi-heading small { display:block; font-size:10px; font-weight:500; color:#736785; }
.lumi-icon-button { display:grid; place-items:center; width:44px; height:44px; flex:none; border:0; border-radius:11px; background:transparent; color:#49365c; font-size:23px!important; line-height:1; }
.lumi-icon-button:hover { background:#efe8f5; }
.lumi-messages { flex:1; min-height:0; overflow:auto; padding:14px; overscroll-behavior:contain; }
.lumi-message { width:fit-content; max-width:92%; margin:0 0 11px; padding:10px 12px; border-radius:12px; background:#f2eef7; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.5; }
.lumi-message--user { margin-left:auto; background:#e9ddf7; }
.lumi-message--notice { width:100%; max-width:100%; background:#fff5f5; color:#9a2432; }
.lumi-message--result { background:#edf8f1; color:#17633a; }
.lumi-composer { border-top:1px solid #eee9f3; padding:10px; background:#fff; }
.lumi-selection { margin:0 0 7px; color:#665675; font-size:11px; line-height:1.3; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.lumi-selection[hidden] { display:none!important; }
.lumi-input { display:block; width:100%; min-height:70px; max-height:160px; resize:vertical; border:1px solid #d5cadd; border-radius:11px; padding:10px 11px; background:#fff; color:#172235; font-size:14px!important; line-height:1.45; }
.lumi-input::placeholder { color:#777082; }
.lumi-privacy { display:block; margin-top:6px; color:#6c6475; font-size:10px; line-height:1.4; }
.lumi-actions { display:flex; align-items:center; gap:7px; min-height:44px; margin-top:7px; }
.lumi-cost { flex:1; font-size:11px; color:#746b7b; line-height:1.3; }
.lumi-button { min-height:44px; border:1px solid #d5cadd; border-radius:10px; padding:0 12px; background:#fff; color:#55306f; font-size:12px!important; font-weight:700!important; }
.lumi-button:hover { background:#f5eef9; }
.lumi-button--primary { border-color:#6b3896; background:#6b3896; color:#fff; }
.lumi-button--primary:hover { background:#542978; }
.lumi-followup { display:flex; flex-wrap:wrap; gap:7px; margin:0 10px 10px; }
.lumi-followup[hidden] { display:none!important; }
.lumi-task { pointer-events:auto; position:fixed; top:12px; right:12px; display:flex; align-items:center; gap:9px; min-width:160px; max-width:min(280px,calc(100vw - 24px)); min-height:50px; padding:8px 12px; border:1px solid #efc4c8; border-radius:12px; background:#fff; box-shadow:0 7px 23px #3f11212a; }
.lumi-task-percent { flex:none; color:#d90429; font-size:18px; font-weight:850; font-variant-numeric:tabular-nums; }
.lumi-task-label { min-width:0; font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.lumi-resize { position:absolute; right:0; bottom:0; width:28px; height:28px; border:0; border-bottom-right-radius:17px; background:transparent; cursor:nwse-resize; touch-action:none; }
.lumi-resize::after { content:""; position:absolute; right:7px; bottom:7px; width:11px; height:11px; border-right:2px solid #8b739b; border-bottom:2px solid #8b739b; }
.lumi-tools { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:6px 10px; border-bottom:1px solid #eee9f3; }
.lumi-tools span { flex:1; min-width:70px; color:#736785; font-size:10px; line-height:1.3; }
.lumi-tools[hidden],.lumi-features[hidden],.lumi-messages[hidden] { display:none!important; }
.lumi-features { flex:1; min-height:0; display:grid; align-content:start; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; overflow:auto; padding:10px; overscroll-behavior:contain; }
.lumi-feature { text-align:left; overflow-wrap:anywhere; line-height:1.4; padding:9px 10px; }
.lumi-feature small { display:block; margin-top:4px; font-size:10px; font-weight:400; }
.lumi-suggestions { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.lumi-control-highlight { outline:3px solid #9156c0!important; outline-offset:4px!important; }
/* Modal improvement review is separate from the persistent chat/canvas layer. */
.lumi-improvements { box-sizing:border-box; width:min(720px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #d8cfe4; border-radius:18px; background:#fff; color:#172235; box-shadow:0 20px 55px #1f193c3b; font:14px/1.5 Pretendard,Arial,sans-serif; }
.lumi-improvements::backdrop { background:#21192f66; }
.lumi-improvements * { box-sizing:border-box; }
.lumi-improvements [hidden] { display:none!important; }
.lumi-improvements :focus-visible { outline:3px solid #2563eb; outline-offset:2px; }
.lumi-improvements button,.lumi-improvements input,.lumi-improvements textarea,.lumi-improvements select { font:inherit; }
.lumi-improvements button { cursor:pointer; }
.lumi-improvements button:disabled { cursor:not-allowed; opacity:.6; }
.lumi-improvement-header { position:sticky; top:0; z-index:1; display:flex; align-items:center; gap:12px; padding:12px 18px; background:#fbf9fd; border-bottom:1px solid #eee9f3; }
.lumi-improvement-header h2 { flex:1; margin:0; font-size:18px; line-height:1.35; }
.lumi-improvement-body { padding:16px 18px 22px; overflow-wrap:anywhere; }
.lumi-improvement-help { margin:0 0 12px; color:#665675; font-size:13px; }
.lumi-improvement-status { color:#633b7d; white-space:pre-wrap; margin-bottom:12px; }
.lumi-improvement-status:empty { display:none; }
.lumi-improvement-form,.lumi-review-form { display:grid; gap:10px; }
.lumi-improvements label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.lumi-improvements input,.lumi-improvements select,.lumi-improvements textarea { display:block; width:100%; min-width:0; min-height:44px; border:1px solid #d5cadd; border-radius:9px; padding:9px 10px; color:#172235; background:#fff; }
.lumi-improvements textarea { resize:vertical; }
.lumi-improvements small { display:block; font-size:11px; color:#746b7b; }
.lumi-improvement-list-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:22px; }
.lumi-improvement-list-header h3,.lumi-improvement-usage h3 { font-size:16px; }
.lumi-improvement-list { display:grid; gap:10px; }
.lumi-improvement-card { padding:14px; border:1px solid #e3dcea; border-radius:12px; background:#fcfaff; }
.lumi-improvement-card h4 { margin:0 0 6px; font-size:14px; }
.lumi-improvement-card p { margin:9px 0; white-space:pre-wrap; }
.lumi-improvement-badge { display:inline-block; padding:3px 7px; border-radius:6px; background:#eee4f6; color:#5a3874; font-size:11px; }
.lumi-improvement-note { padding:8px; border-left:3px solid #a985c5; background:#f2ecf8; }
.lumi-review-form { margin-top:12px; padding-top:12px; border-top:1px solid #e3dcea; }
.lumi-improvement-usage { margin-top:22px; padding-top:12px; border-top:1px solid #e3dcea; }
.lumi-improvement-usage > p { color:#746b7b; font-size:12px; }
.lumi-improvement-usage .lumi-improvement-card { margin-top:10px; }
.lumi-usage-list { display:flex; flex-wrap:wrap; gap:7px; padding:0; list-style:none; font-size:12px; }
.lumi-usage-list li { padding:6px 9px; border-radius:7px; background:#f2eef7; }
@media (max-width:640px) {
  .lumi-launcher { right:12px; bottom:calc(12px + var(--lumi-keyboard-offset,0px) + env(safe-area-inset-bottom)); min-height:48px; touch-action:none; }
  .lumi-panel { left:0!important; right:0!important; top:auto!important; bottom:calc(var(--lumi-keyboard-offset,0px) + env(safe-area-inset-bottom)); width:100vw!important; min-width:0; max-width:none; height:min(58dvh,500px,calc(var(--lumi-visual-height,100dvh) - 60px))!important; min-height:0; max-height:calc(var(--lumi-visual-height,100dvh) - 60px); border-radius:18px 18px 0 0; }
  .lumi-header { min-height:54px; cursor:default; }
  .lumi-header::before { content:""; position:absolute; top:5px; left:calc(50% - 19px); width:38px; height:4px; border-radius:9px; background:#c4b3d1; }
  .lumi-resize { display:none; }
  .lumi-panel.is-background { opacity:.38; }
  .lumi-improvements { width:100%; max-width:none; max-height:90dvh; margin:auto 0 0; border-radius:18px 18px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .lumi-improvement-header { padding:10px 12px; }
  .lumi-improvement-body { padding:12px; }
  .lumi-tools { flex-wrap:nowrap; }
  .lumi-tools .lumi-button { padding:0 9px; }
}
@media (prefers-reduced-motion:reduce) { .lumi-panel { transition:none; } }
