:root{--ink:#18211c;--muted:#6d776f;--paper:#f4f1e9;--panel:#fffdf8;--line:#d9ded6;--green:#1f6f4a;--green2:#dcecdf;--amber:#b46b22;--red:#a33d35;--navy:#223b55;--shadow:0 16px 44px rgba(30,45,35,.1)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Inter,"Pretendard","Noto Sans KR",system-ui,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.hidden{display:none!important}.muted,.hint{color:var(--muted)}.eyebrow{margin:0 0 3px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.15em}.button{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 14px;font-weight:750;color:var(--ink)}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);border-color:var(--green);color:white}.button.ghost{background:transparent}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.topbar{min-height:82px;display:flex;align-items:center;gap:28px;padding:14px 26px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar h1{font:700 24px Georgia,serif;margin:0}.metrics{display:flex;gap:12px;margin-left:auto;align-items:center}.metrics>span{border-left:1px solid var(--line);padding-left:12px;color:var(--muted);white-space:nowrap}.metrics b{font-size:19px;color:var(--ink);margin-right:3px}.demo-badge{border:0!important;background:#fff1cb;color:#75500f!important;padding:6px 9px!important;border-radius:20px;font-size:11px;font-weight:800}.header-actions{display:flex;gap:8px;align-items:center}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:calc(100vh - 83px)}.main-area{padding:22px}.view-switch{display:inline-flex;border:1px solid var(--line);border-radius:10px;background:#e9e9e1;padding:3px;margin-bottom:14px}.view-switch button,.tabs button{border:0;background:transparent;border-radius:7px;padding:7px 14px;color:var(--muted);font-weight:700}.view-switch button.active,.tabs button.active{background:white;color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.08)}.office{min-height:680px;border:1px solid #cbd4c9;border-radius:18px;overflow:hidden;background-color:#e8ede3;background-image:linear-gradient(30deg,rgba(255,255,255,.5) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.5) 87.5%),linear-gradient(150deg,rgba(255,255,255,.5) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.5) 87.5%);background-size:32px 55px;box-shadow:var(--shadow)}.office-heading{padding:18px 22px;background:rgba(255,253,248,.86);border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.office-heading>div{font-size:17px;font-weight:800}.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#4aa56d;margin-right:7px;box-shadow:0 0 0 4px #d7eadc}.office-heading small{color:var(--muted)}.seats{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:18px;padding:25px}.seat{position:relative;min-height:250px;border:1px solid #bdc8bc;border-radius:16px;padding:18px;background:rgba(255,253,248,.92);box-shadow:0 9px 25px rgba(41,63,47,.1);text-align:left;color:var(--ink);overflow:hidden}.seat:hover,.seat:focus-visible{outline:3px solid rgba(31,111,74,.2);border-color:var(--green);transform:translateY(-2px)}.seat.chief{grid-column:span 1;background:#fdf9eb}.seat:before{content:"";position:absolute;width:94px;height:48px;border:6px solid #8f6847;border-top-width:10px;background:#b88b63;border-radius:8px;bottom:20px;right:18px;transform:skewY(-5deg);opacity:.85}.avatar{width:60px;height:60px;border-radius:50% 50% 44% 44%;display:grid;place-items:center;background:var(--green2);border:3px solid white;box-shadow:0 3px 10px rgba(0,0,0,.13);font-size:25px;font-weight:900;color:var(--green);margin-bottom:14px}.seat h3{margin:0;font-size:18px}.seat .role{color:var(--muted);margin-bottom:13px}.seat-footer{display:flex;gap:6px;align-items:center;position:absolute;left:18px;bottom:20px}.status{display:inline-flex;border-radius:20px;padding:4px 9px;background:#edf0ed;color:#526057;font-size:12px;font-weight:800}.status.running{background:#ddecf8;color:#24567d}.status.review{background:#fbe8bd;color:#77520f}.status.error{background:#f9d9d5;color:#8b3029}.status.done{background:var(--green2);color:var(--green)}.count{font-size:12px;color:var(--muted)}.side-panel{border-left:1px solid var(--line);background:var(--panel);padding:25px;max-height:calc(100vh - 83px);overflow:auto;position:sticky;top:83px}.empty-panel{text-align:center;margin-top:28vh;color:var(--muted)}.empty-icon{font-size:48px;color:#a5b0a5}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.panel-head h2{margin:0}.tabs{display:flex;border-bottom:1px solid var(--line);gap:3px;margin:22px 0 16px}.tabs button.active{box-shadow:none;border-bottom:2px solid var(--green);border-radius:0}.card{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:11px;background:#fff}.card h3{font-size:15px;margin-bottom:6px}.instruction{white-space:pre-wrap;color:#38433b}.steps{margin:0;padding-left:20px}.event{padding:11px 0;border-bottom:1px solid #eceeea}.event time{display:block;color:var(--muted);font-size:12px}.artifact{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}.artifact-actions{display:flex;gap:7px;margin-top:10px}.markdown{background:#f6f7f3;border-radius:10px;padding:16px;margin-top:12px;overflow:auto}.markdown h1,.markdown h2,.markdown h3{font-family:Georgia,serif}.markdown code{background:#e8ebe6;padding:2px 4px;border-radius:4px}.job-list{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.job-row{width:100%;display:grid;grid-template-columns:1fr auto;gap:7px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:15px;color:var(--ink)}.job-row:last-child{border:0}.job-row strong{font-size:16px}.job-row small{color:var(--muted)}dialog{border:0;border-radius:18px;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.3);width:min(590px,calc(100% - 30px));background:var(--panel)}dialog::backdrop{background:rgba(15,25,19,.55);backdrop-filter:blur(3px)}#job-form{padding:25px}.stack{display:grid;gap:15px}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.dialog-actions{justify-content:flex-end;gap:8px}.icon-button{border:0;background:transparent;font-size:28px}label{font-weight:750;display:grid;gap:6px}input,textarea{width:100%;border:1px solid #bbc5bb;border-radius:9px;padding:10px 12px;background:white;color:var(--ink)}textarea{resize:vertical}.alert{padding:10px;border-radius:8px}.alert.error{background:#f9d9d5;color:var(--red)}#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:#18211c;color:white;border-radius:9px;padding:10px 16px;opacity:0;pointer-events:none;transition:.2s;z-index:20}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#dceadf,transparent 34%),var(--paper)}.login-card{width:min(390px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--green);color:white;font-weight:900;margin-bottom:20px}.login-card h1{font:700 33px Georgia,serif;margin-bottom:4px}
.mode-control{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:700;border-left:1px solid var(--line);padding-left:12px}.mode-control select,select{border:1px solid #bbc5bb;border-radius:9px;padding:7px 10px;background:#fff;color:var(--ink);font:inherit;font-weight:700}
.mode-notice{padding:8px 26px;background:var(--panel);border-bottom:1px solid var(--line);display:grid;gap:6px}.notice{margin:0;padding:8px 12px;border-radius:9px;font-size:13px}.notice.info{background:#e8f0f6;color:#24567d}.notice.warn{background:#fff1cb;color:#75500f}
.status.input{background:#fbe0cc;color:#8a4312}.mode-badge{display:inline-block;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:800}.mode-badge.api{background:#ddecf8;color:#24567d}.mode-badge.manual{background:#efe6f7;color:#5b3a7a}
.input-card{border:2px solid #e9b58a;background:#fffaf5}.input-card h3{color:#8a4312}.input-card label{margin-top:10px}.mono{font:12px/1.5 ui-monospace,Consolas,"D2Coding",monospace;background:#f6f7f3}details{margin-top:10px}details summary{cursor:pointer;color:var(--muted);font-weight:700}
.steps{margin:6px 0 10px;padding-left:20px;color:var(--muted)}.small-title{margin:10px 0 2px;font-size:12px;font-weight:800}.error-text{color:var(--red)}.button.small{padding:5px 10px;font-size:13px}.revise{border-color:#b9c9e0}.revise label{margin-top:8px}
.table-wrap{overflow-x:auto;margin-bottom:16px}table.runs{width:100%;border-collapse:collapse;font-size:12px}table.runs th,table.runs td{text-align:left;padding:6px 5px;border-bottom:1px solid var(--line);white-space:nowrap}table.runs th{color:var(--muted);font-weight:800}
.metrics>.metric{border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 0 12px;color:var(--muted);white-space:nowrap;font:inherit}.metrics>.metric:hover b,.metrics>.metric:focus-visible b,.metrics>.metric.active b{color:var(--green);text-decoration:underline}.metrics>.metric.active{color:var(--green);font-weight:800}
.panel-actions{margin:14px 0 2px;padding:12px 14px;border:1px solid #cfe0d3;border-radius:12px;background:#f3f9f4}.panel-actions-text{margin:0;font-weight:700;color:#2d3b33;font-size:14px}.panel-actions .artifact-actions{flex-wrap:wrap}
.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;margin-bottom:6px;border-radius:10px;background:#fff7da;color:#6f4a05}.job-row.needs-owner{background:#fffaf0;box-shadow:inset 3px 0 0 #d59a29}
.security-body{padding:25px}.qr{display:block;margin:6px auto;image-rendering:pixelated;border:6px solid #fff;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.08)}.setup-key{padding:8px 10px;border-radius:8px;letter-spacing:1px;word-break:break-all}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding:12px 14px;border-radius:10px;font-size:14px}
.report-card{border:2px solid #9cc7ad;background:#f3faf5}.markdown p{margin:0 0 4px}.markdown h1{font-size:21px;margin:12px 0 8px}.markdown h2{font-size:17px;margin:14px 0 6px}.markdown h3{font-size:15px;margin:12px 0 4px}.markdown blockquote{margin:6px 0;padding:6px 10px;border-left:3px solid #9cc7ad;background:#eef6f0;color:#40524a}.markdown .table-wrap{margin:6px 0 10px}.markdown table.md{border-collapse:collapse;width:100%;font-size:13px}.markdown table.md th,.markdown table.md td{border:1px solid var(--line);padding:5px 7px;text-align:left;vertical-align:top}.markdown table.md th{background:#eef1ec}.md-li{margin:2px 0 2px 4px}.md-gap{height:6px}.metrics-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0}.metrics-list dt{font-size:12px;color:var(--muted)}.metrics-list dd{margin:0;font-weight:800}
label.check{display:flex;align-items:center;gap:8px;font-weight:600}label.check input{width:auto;margin:0}.login-card .hint{margin:-4px 0 0;font-size:12px;color:var(--muted)}.header-actions form{display:flex;gap:8px}
@media(max-width:1050px){.workspace{grid-template-columns:1fr}.side-panel{position:relative;top:0;max-height:none;border-left:0;border-top:1px solid var(--line)}.seats{grid-template-columns:repeat(2,1fr)}.empty-panel{margin:40px auto}.metrics{display:none}}
@media(max-width:650px){.topbar{padding:12px;gap:10px}.topbar .eyebrow,.header-actions form{display:none}.main-area{padding:12px}.seats{grid-template-columns:1fr;padding:14px}.seat{min-height:0}.seat-footer{position:static;margin-top:12px}.office-heading small{display:none}.workspace{display:block}}

/* 7단계: 상태에 따라 캐릭터만 움직이는 사무실 일러스트 */
.office{min-height:0}.seats{display:block;padding:18px}.office-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(34,59,85,.16);border-radius:14px;background:linear-gradient(145deg,#f6f1e6,#dfe9e7);isolation:isolate}.office-background{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.office-people{position:absolute;inset:0;z-index:4;pointer-events:none}.office-room{position:absolute;z-index:1;border:1px solid transparent;border-radius:13px;background:transparent;color:#21324a;text-align:left;padding:7px;transition:background-color .18s,border-color .18s,box-shadow .18s}.office-room:hover,.office-room:focus-visible{outline:0;border-color:rgba(34,59,85,.5);background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 2px rgba(255,255,255,.42)}.office-room span,.office-room-label span{display:inline-block;border:1px solid rgba(34,59,85,.15);border-radius:999px;background:rgba(255,253,248,.9);box-shadow:0 3px 12px rgba(31,43,55,.12);padding:4px 8px;font-size:clamp(8px,.82vw,12px);font-weight:900;white-space:nowrap}.office-room small,.office-room-label small{display:block;width:max-content;margin:3px 0 0 4px;border-radius:999px;background:rgba(24,33,28,.76);color:#fff;padding:2px 7px;font-size:clamp(7px,.65vw,10px);font-weight:750;white-space:nowrap}.room-chief{left:38%;top:34%;width:28%;height:28%}.room-education{left:8%;top:3%;width:34%;height:31%}.room-marketing{left:58%;top:3%;width:36%;height:31%}.room-web-agency{left:1%;top:31%;width:34%;height:31%}.room-ai-dev{left:68%;top:33%;width:31%;height:29%;text-align:right}.room-operations{left:70%;top:61%;width:29%;height:35%;text-align:right}.office-room-label{position:absolute;z-index:3;pointer-events:none}.room-lounge{left:8%;top:64%}.room-meeting{left:52%;top:66%}.office-person{--agent-x:50%;--agent-y:50%;--agent-size:10%;position:absolute;left:var(--agent-x);top:var(--agent-y);z-index:5;width:var(--agent-size);aspect-ratio:3/4;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;color:#172031;text-align:center;pointer-events:auto;transition:left .68s cubic-bezier(.22,.78,.3,1),top .68s cubic-bezier(.22,.78,.3,1),width .68s cubic-bezier(.22,.78,.3,1)}.office-person:hover{z-index:7}.office-person:focus-visible{z-index:8;outline:3px solid #1f6f4a;outline-offset:3px;border-radius:12px}.office-person img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 3px rgba(18,31,42,.14));pointer-events:none}.office-nameplate{position:absolute;left:50%;bottom:-4%;display:flex;align-items:baseline;gap:5px;min-width:max-content;transform:translateX(-50%);border:1px solid rgba(23,32,49,.16);border-left:4px solid #223b55;border-radius:8px;background:rgba(255,253,248,.95);box-shadow:0 4px 10px rgba(23,32,49,.14);padding:2px 7px;line-height:1.2;white-space:nowrap}.office-nameplate strong{font-size:clamp(9px,.85vw,12px)}.office-nameplate [data-agent-status]{color:#5b6576;font-size:clamp(8px,.68vw,10px);font-weight:800}.agent-education .office-nameplate{border-left-color:#64bda8}.agent-marketing .office-nameplate{border-left-color:#e3a52f}.agent-web_agency .office-nameplate{border-left-color:#5d9fe8}.agent-ai_dev .office-nameplate{border-left-color:#8668d7}.agent-operations .office-nameplate{border-left-color:#ef765f}.office-bubble{position:absolute;left:50%;top:3%;z-index:3;display:flex;align-items:center;gap:4px;width:max-content;max-width:190px;transform:translate(-50%,-100%);border:2px solid #44718e;border-radius:12px 12px 12px 3px;background:#edf7fd;color:#244e69;box-shadow:0 6px 18px rgba(22,42,54,.2);padding:5px 8px;font-size:clamp(9px,.82vw,12px);font-weight:900;line-height:1.2;white-space:nowrap}.office-bubble-input{border-color:#d65d3d;background:#fff2e9;color:#8a321d}.office-bubble-review{border-color:#d59a29;background:#fff7da;color:#6f4a05}.office-bubble-error{border-color:#b33d35;background:#fff0ee;color:#8b3029}.office-person[data-office-status="working"] img{animation:office-focus 2.8s ease-in-out infinite}.office-person[data-office-status="input"] .office-bubble{animation:office-attention 1.8s ease-in-out infinite}.seat-cards{display:none;grid-template-columns:1fr;gap:14px}
@keyframes office-focus{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes office-attention{0%,100%{box-shadow:0 6px 18px rgba(174,65,39,.18)}50%{box-shadow:0 6px 22px rgba(174,65,39,.42)}}
@media(max-width:850px) and (min-width:651px){.seats{padding:10px}.office-room{padding:4px}.office-room-label small{display:none}.office-bubble{padding:4px 6px}}
/* 8단계 보완: 좁은 화면 카드에도 사무실과 같은 캐릭터를 쓰고, 버튼으로 사무실 그림을 옆으로 밀어 볼 수 있게 한다. */
#office-picture{display:none;padding:6px 11px;font-size:13px;white-space:nowrap}
.seat-person{display:none}
@media(max-width:650px){
  .office{min-height:0}.office-stage{display:none}.seat-cards{display:grid}.seats{display:block;padding:14px}
  #office-picture{display:inline-flex}
  .office-heading{align-items:center;gap:10px}
  .seat{display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px;align-items:center;min-height:0;padding:14px}
  .seat:before{content:none}
  .seat-person{display:block;width:100px;height:auto;aspect-ratio:3/4;object-fit:contain;filter:drop-shadow(0 4px 3px rgba(18,31,42,.14))}
  .seat h3{font-size:17px}.seat .role{margin-bottom:9px}
  .seat-footer{position:static;margin:0;flex-wrap:wrap;gap:7px}
  .seat[data-office-status="working"] .seat-person{animation:office-focus 2.8s ease-in-out infinite}
  .office.show-stage .office-stage-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
  .office.show-stage .office-stage{display:block;width:660px;max-width:none}
  .office.show-stage .seat-cards{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){.office-person{transition:none}.office-person[data-office-status="working"] img,.office-person[data-office-status="input"] .office-bubble{animation:none}}

/* 5단계: 아침 보고·예약·뉴스 출처 */
.view-switch button{position:relative}.view-dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:#d65d3d;box-shadow:0 0 0 2px #e9e9e1}
.briefing-view{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow);max-width:920px}
.briefing-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:12px}.briefing-head h2{margin:0;font:700 22px Georgia,serif}.briefing-head p{margin:2px 0 0}
.briefing-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.history-pick select{max-width:260px}
.small{font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.briefing-view>.notice{margin-bottom:8px}
.attention-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 12px;padding:10px 12px;border-radius:12px;background:#f3f5f1}
.chip{border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 12px;font-weight:750;color:var(--ink)}.chip b{margin-left:3px}.chip.review{border-color:#e3c27a;background:#fff7da}.chip.input{border-color:#e9b58a;background:#fff2e9}.chip.failed{border-color:#e2a39d;background:#fff0ee}.chip:hover{transform:translateY(-1px)}
.briefing-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 4px}
.briefing-doc{padding:16px 18px}.briefing-doc .markdown{background:transparent;padding:0;margin-top:8px}.briefing-doc-head{display:flex;gap:8px;align-items:baseline}
.markdown a,.news-list a{color:var(--green);font-weight:650;text-decoration:underline;text-underline-offset:2px;word-break:break-word}
.briefing-items h4{margin:14px 0 4px;font-size:14px}.news-list{margin:0;padding-left:18px}.news-list li{margin:4px 0}
.schedule-body{padding:25px}#schedule-dialog{width:min(760px,calc(100% - 30px))}.schedule-section{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.schedule-section:first-child{border-top:0;padding-top:0}.schedule-section h3{margin-bottom:8px}
.schedule-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin:8px 0}.schedule-row input[type=time]{width:auto}
.weekday-pick{display:flex;gap:10px;flex-wrap:wrap;border:0;margin:0;padding:0}.weekday-pick legend{font-weight:750;margin-bottom:6px;padding:0}
.schedule-item{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}.schedule-item .artifact-actions{margin-top:0}
table.sources td{white-space:normal}table.sources input{width:auto}.source-form{display:grid;gap:10px;margin-top:8px}
.repeat-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.repeat-row input[type=time]{width:auto}
@media(max-width:650px){.briefing-view{padding:14px;border-radius:12px}.briefing-head h2{font-size:19px}.briefing-tools{width:100%}.briefing-tools .button{flex:1}.history-pick,.history-pick select{width:100%;max-width:none}.schedule-body{padding:16px}table.sources th:nth-child(3),table.sources td:nth-child(3){display:none}}

/* 6단계: 앱 설치 팝업(chaoda.kr과 같은 흐름) · 휴대폰 메뉴 · 알림 권유 */
.pwa-banner{position:fixed;left:0;right:0;top:var(--pwa-top,0);z-index:40;display:flex;align-items:center;gap:12px;padding:11px 18px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 28px rgba(24,34,51,.14);transform:translateY(-130%);visibility:hidden;transition:transform .32s ease,visibility 0s linear .32s}
.pwa-banner.show{transform:translateY(0);visibility:visible;transition:transform .32s ease}
.pwa-ic{width:44px;height:44px;border-radius:12px;flex:0 0 auto;box-shadow:0 4px 10px rgba(15,27,45,.18)}
.pwa-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.4}
.pwa-txt b{font-size:15px;color:var(--ink)}.pwa-txt span{font-size:13px;color:var(--muted)}
.pwa-share{vertical-align:-2px}
.pwa-txt .i,.pwa-txt .t1,.pwa-txt .t2,.pwa-txt .t3,.pwa-spin,.pwa-done{display:none}
.pwa-banner.ios .d,.pwa-banner.ios .pwa-install{display:none}.pwa-banner.ios .i{display:block}
.pwa-banner.installing .t0,.pwa-banner.installing .d,.pwa-banner.installing .i,.pwa-banner.done .t0,.pwa-banner.done .d,.pwa-banner.done .i{display:none}
.pwa-banner.installing .t1,.pwa-banner.done .t2{display:block}
.pwa-banner.installing .t1,.pwa-banner.done .t2,.pwa-banner.done.unverified .t3{color:var(--ink)}
.pwa-banner.done.unverified .t2{display:none}.pwa-banner.done.unverified .t3{display:block}
.pwa-banner.installing .pwa-install,.pwa-banner.done .pwa-install,.pwa-banner.installing .pwa-close{display:none}
.pwa-banner.installing .pwa-spin{display:block;width:26px;height:26px;flex:0 0 auto;border-radius:50%;border:3px solid var(--line);border-top-color:var(--green);animation:pwa-spin .8s linear infinite}
.pwa-banner.done .pwa-done{display:flex;width:30px;height:30px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:50%;background:var(--green);color:#fff}
.pwa-close{border:0;background:none;font-size:22px;line-height:1;color:var(--muted);padding:4px 7px;flex:0 0 auto;border-radius:8px}.pwa-close:hover{background:#eef1ec;color:var(--ink)}
@keyframes pwa-spin{to{transform:rotate(360deg)}}
@media(min-width:760px){.pwa-banner{left:auto;right:18px;top:calc(var(--pwa-top,0px) + 12px);width:min(460px,calc(100% - 36px));border:1px solid var(--line);border-radius:14px}}
@media(prefers-reduced-motion:reduce){.pwa-banner,.pwa-banner.show{transition:none}.pwa-banner.installing .pwa-spin{animation-duration:2.4s}}
.menu-toggle{display:none}
/* 머리글 버튼은 줄바꿈하지 않는다. 1500px보다 좁으면 로그아웃·손님 계정·보안 설정을 [메뉴] 안으로 접는다(2026-09-28, 손님 계정 버튼 추가). */
.topbar .button,.metrics>span,.metric,.mode-control,.topbar .eyebrow{white-space:nowrap}
#header-menu{display:flex;gap:8px}
@media(max-width:1500px){.menu-toggle{display:inline-flex}.header-actions{position:relative}.header-actions #header-menu{display:none}.header-actions.menu-open #header-menu{display:flex;position:absolute;right:0;top:calc(100% + 8px);z-index:20;flex-direction:column;gap:6px;min-width:200px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.header-actions.menu-open #header-menu .button{text-align:left}}
.push-invite{border-color:#9cc7ad;background:#f3faf5}.push-invite p{margin:4px 0 0}
@media(max-width:650px){.menu-toggle{display:inline-flex}.header-actions{position:relative;margin-left:auto}.header-actions.menu-open form{display:flex;position:absolute;right:0;top:calc(100% + 8px);z-index:20;flex-direction:column;gap:6px;min-width:200px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.header-actions.menu-open form .button{text-align:left}}
.side-panel{scroll-margin-top:96px}
/* 손님(체험) 계정 관리 창 (2026-09-28) */
.guest-rules{padding-left:18px;margin:4px 0 12px}.guest-rules li{margin:3px 0}
.guest-cred{background:#f6f7f3;border:1px dashed var(--line);border-radius:10px;padding:10px 12px;line-height:1.8;user-select:all;word-break:break-all}
.guest-issued{border-color:var(--green)}
.guest-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
table.guests td{vertical-align:middle}

/* 사무실 꾸미기 */
.office-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#open-office-custom{padding:6px 11px;font-size:13px;white-space:nowrap}
#office-dialog{width:min(820px,calc(100% - 24px))}
.office-custom{display:flex;flex-direction:column;gap:14px;padding:22px;max-height:calc(100dvh - 40px);overflow-y:auto}
.office-custom>*{flex-shrink:0}
.office-custom .hint{margin:0;font-size:13px}
.office-custom .tabs{margin:4px 0 0}
.office-custom .spacer{flex:1}
.office-custom .dialog-actions{position:sticky;bottom:-22px;margin:0 -22px -22px;padding:12px 22px;background:var(--panel);border-top:1px solid var(--line)}
.office-preview{position:relative;width:100%;max-width:calc(40dvh * 16 / 9);margin:0 auto;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#f6f1e6,#dfe9e7)}
.office-preview .preview-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.office-preview .preview-person{position:absolute;aspect-ratio:3/4;height:auto;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 2px rgba(18,31,42,.14))}
.office-preview .preview-person.picked{filter:drop-shadow(0 0 3px #1f6f4a) drop-shadow(0 0 6px rgba(31,111,74,.7))}
.pick-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
.pick-grid.bg-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.pick{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid var(--line);border-radius:12px;background:#fff;padding:6px;cursor:pointer;text-align:center;font-size:13px;font-weight:700}
.pick input,.agent-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.pick img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}
.bg-grid .pick img{aspect-ratio:16/9;border-radius:8px}
.pick small{display:block;color:var(--muted);font-size:11px;font-weight:700}
.pick:hover{border-color:rgba(31,111,74,.45)}
.pick:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px rgba(31,111,74,.18);background:#f3faf6}
.pick:has(input:focus-visible),.agent-chip:has(input:focus-visible){outline:3px solid #1f6f4a;outline-offset:2px}
.pick-agents{display:flex;gap:8px;flex-wrap:wrap}
.agent-chip{position:relative;display:inline-flex;align-items:center;gap:6px;border:2px solid var(--line);border-radius:999px;background:#fff;padding:3px 12px 3px 4px;cursor:pointer;font-size:13px;font-weight:800}
.agent-chip img{width:28px;height:28px;object-fit:cover;object-position:top;border-radius:50%;background:#f1f4f2}
.agent-chip:has(input:checked){border-color:var(--green);background:#f3faf6;color:var(--green)}
@media(max-width:650px){
  .office-heading{flex-wrap:wrap}.office-heading>div{white-space:nowrap}.office-heading-actions{flex-wrap:nowrap}
  .office-custom{padding:16px}
  .office-custom .dialog-actions{bottom:-16px;margin:0 -16px -16px;padding:10px 16px}
  .pick-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
  .pick-grid.bg-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  .office-custom .dialog-actions{flex-wrap:wrap}
}
.office-stage.no-rooms .office-room,.office-stage.no-rooms .office-room-label{display:none}

/* 직원과 대화 */
.chat{display:flex;flex-direction:column;gap:10px}
.chat-log{display:flex;flex-direction:column;gap:12px;max-height:min(58vh,560px);overflow-y:auto;padding:4px 2px 8px}
.chat-empty{margin:8px 0}
.chat-msg{display:flex;gap:8px;align-items:flex-start}
.chat-msg.owner{flex-direction:column;align-items:flex-end}
.chat-msg .bubble{border-radius:14px;padding:9px 12px;line-height:1.55;overflow-wrap:anywhere}
.chat-msg.owner .bubble{max-width:85%;background:var(--green);color:#fff;border-bottom-right-radius:4px}
.chat-msg.agent .bubble{background:#fff;border:1px solid var(--line);border-top-left-radius:4px}
.chat-msg.agent .bubble.markdown{margin-top:3px;padding:9px 12px}
.chat-msg .bubble.typing{color:var(--muted);font-style:italic}
.chat-msg .bubble.failed{background:#fff4f2;border-color:#efc2bb;color:var(--red)}
.chat-msg .bubble.failed div{margin-top:6px}
.chat-body{display:flex;flex-direction:column;min-width:0;flex:1}
.chat-body strong{font-size:13px}
.chat-face{width:34px;height:34px;flex:none;border-radius:50%;object-fit:cover;object-position:top;background:var(--green2)}
.chat-msg time{font-size:11px;color:var(--muted);margin-top:2px}
.chat-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:4px}
.chat-form{display:grid;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.chat-form textarea{resize:vertical;min-height:70px}
.chat-form-foot{display:flex;gap:8px;align-items:center;justify-content:space-between}
.chat-form-foot small{line-height:1.4}
#chat-send{flex:none;white-space:nowrap}
.chat-owner-foot{display:flex;gap:8px;align-items:center}
.chat-remember{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:2px 4px;text-decoration:underline;text-underline-offset:2px}
.chat-remember:hover{color:var(--green)}
.chat-refs{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;margin-top:4px;font-size:12px;color:var(--muted)}
.chat-refs button{border:1px solid var(--line);border-radius:999px;background:#f6f8f5;color:var(--ink);font-size:12px;padding:2px 8px;text-align:left}
.chat-refs button:hover{border-color:var(--green)}

/* 직원 기억 */
.memory{display:flex;flex-direction:column;gap:10px}
.memory .hint{margin:0;font-size:13px}
.memory-form{display:grid;gap:6px}
.memory-form-foot{display:flex;gap:8px;align-items:center;justify-content:space-between}
.memory-form-foot select{border:1px solid #bbc5bb;border-radius:9px;padding:8px 10px;background:#fff;font:inherit}
.memory-head{margin:10px 0 4px;font-size:15px}
.memory-head small{color:var(--muted);font-weight:600;margin-left:4px}
.memory-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.memory-list li{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;display:grid;gap:4px}
.memory-list li p{margin:0;overflow-wrap:anywhere}
.memory-list li small{color:var(--muted);font-size:11px}
.memory-actions{display:flex;gap:6px;justify-content:flex-end}

/* 실제 회의 */
#meeting-dialog{width:min(860px,calc(100% - 24px))}
.meeting-body{display:flex;flex-direction:column;gap:12px;padding:22px;max-height:calc(100dvh - 40px);overflow-y:auto}
.meeting-form .meeting-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.meeting-form select{border:1px solid #bbc5bb;border-radius:9px;padding:10px 12px;background:#fff;font:inherit}
.meeting-people{display:flex;flex-wrap:wrap;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.meeting-people legend{font-weight:750;padding:0 4px}
.agent-chip.static{cursor:default}
.agent-chip small{color:var(--green);font-weight:800}
.meeting-recent h3{font-size:15px;margin:8px 0 4px}
.meeting-recent .job-row{border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:#fff}
.meeting-live{display:flex;flex-direction:column;gap:10px}
.meeting-topic{margin:0;font-size:18px}
.meeting-meta{display:flex;gap:8px;align-items:center;margin:4px 0 8px;color:var(--muted);font-size:13px}
.meeting-people-row{display:flex;flex-wrap:wrap;gap:6px}
.meeting-details{margin:6px 0 0;white-space:pre-wrap}
.meeting-log{display:flex;flex-direction:column;gap:12px;max-height:min(46vh,480px);overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:#fbfbf8;padding:12px}
.meeting-note{margin:0;text-align:center;color:var(--muted);font-size:12px}
.meeting-say{display:grid;gap:6px}
.meeting-say-foot{display:flex;justify-content:flex-end}
.meeting-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.meeting-result h4{margin:12px 0 4px;font-size:14px}
.meeting-result ul{margin:0;padding-left:20px}
.meeting-followup{display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;background:#fff}
.meeting-followup.done{grid-template-columns:1fr auto;align-items:center;background:#f3faf6}
.meeting-followup.done small{grid-column:1}
.meeting-followup small{color:var(--muted);font-size:12px}
.office-room-label.room-meeting{pointer-events:auto;cursor:pointer;border:0;background:transparent;padding:0}
.office-room-label.room-meeting.live span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#d65d3d;margin-right:5px;vertical-align:1px;animation:meeting-pulse 1.6s ease-in-out infinite}
@keyframes meeting-pulse{0%,100%{opacity:1}50%{opacity:.25}}
@media(max-width:650px){
  .meeting-body{padding:16px}
  .meeting-form .meeting-row{grid-template-columns:1fr}
  .office-heading-actions{flex-wrap:wrap}
}

/* 독립 검토 */
.task-review{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.review-line{margin:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.review-summary{margin:4px 0 0}
.review-issues{margin:4px 0 0;padding-left:20px;font-size:14px}
.review-auto{margin:6px 0 0;font-size:12px}

/* 업무 간 연결 */
.job-links h3{font-size:14px;margin:4px 0 6px}
.job-links .job-row{border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:#fff}

/* 대표 판단함·결과물 검색 */
.view-switch{flex-wrap:wrap}
.view-count{display:inline-block;min-width:18px;margin-left:5px;border-radius:999px;background:#d65d3d;color:#fff;font-size:11px;font-weight:800;line-height:18px;padding:0 5px;text-align:center}
.inbox-head{margin:6px 4px 10px;font-size:16px}
.inbox-head small{color:var(--muted);font-weight:600}
.inbox-item{display:grid;gap:6px}
.inbox-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.inbox-detail{margin:0;font-weight:700;overflow-wrap:anywhere}
.inbox-where{font-size:13px}
.link-button{border:0;background:transparent;color:var(--green);font-weight:700;padding:0;text-decoration:underline;text-underline-offset:2px;text-align:left}
.inbox-answer{display:grid;gap:6px;border-top:1px dashed var(--line);padding-top:8px}
.inbox-answer select{border:1px solid #bbc5bb;border-radius:9px;padding:8px 10px;background:#fff;font:inherit}
.inbox-answer .hint{margin:0;font-size:12px}
.search-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.search-form .search-q{flex:1 1 260px}
.search-form select{border:1px solid #bbc5bb;border-radius:9px;padding:10px 12px;background:#fff;font:inherit}
.search-form .check{display:flex;align-items:center;gap:6px;font-weight:600}
.search-form .check input{width:auto}
.search-hit{background:#fff}
.search-snippet{margin:6px 0 0;color:#38433b;font-size:14px}
.search-snippet mark{background:#fff1a8;padding:0 2px;border-radius:3px}

/* 직원 관리 */
#staff-dialog{width:min(760px,calc(100% - 24px))}
.staff-body{max-height:calc(100dvh - 40px);overflow-y:auto}
.staff-list{display:grid;gap:10px}
.staff-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;display:grid;gap:8px}
.staff-card.retired{background:#f4f4f1;opacity:.85}
.staff-top{display:flex;gap:10px;align-items:center}
.staff-top img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:top;background:var(--green2)}
.staff-protect{margin:0;font-size:12px}
.staff-edit{display:grid;gap:8px;border-top:1px dashed var(--line);padding-top:8px}
.staff-edit textarea{font-family:inherit;font-size:14px}
.staff-versions{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.staff-versions li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}
.staff-head{margin:14px 0 6px;font-size:15px}
.staff-looks{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px;margin:0}
.staff-looks legend{font-weight:750;padding:0 4px}

/* 여러 회사: 잔액·충전(회사 대표), 회사 관리(총괄 관리자) */
.billing-body,.platform-body{max-height:calc(100dvh - 40px);overflow-y:auto}
#platform-dialog{width:min(780px,calc(100% - 30px))}
.staff-edit .meeting-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.staff-edit select{width:100%;border:1px solid #bbc5bb;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink)}
.balance-box{border:1px solid #cfe0d3;border-radius:14px;padding:14px 16px;background:#f3f9f4;display:grid;gap:2px}
.balance-box strong{font:700 30px Georgia,serif;color:var(--ink)}
.balance-box small{color:var(--muted)}
.balance-box.low{background:#fff7e3;border-color:#f0dca8}
.balance-box.empty{background:#fbeae7;border-color:#efc4bd}
.amount-picks{border:1px solid var(--line);border-radius:12px;padding:10px;margin:0;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.amount-picks legend{font-weight:750;padding:0 4px}
.amount-picks input[name=custom]{width:170px}
.bank-info{border:1px dashed #bbc5bb;border-radius:10px;padding:8px 12px;background:#fff}
.bank-info p{margin:0;font-weight:750}
.bank-info small{color:var(--muted)}
.plain-list{list-style:none;margin:0;padding:0;display:grid}
.plain-list li{display:flex;justify-content:space-between;align-items:center;gap:6px 10px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid #eceeea;font-size:14px}
.plain-list .artifact-actions{margin-top:0}
.minus{color:var(--red)}
.plus{color:var(--green)}
.company-top{display:flex;justify-content:space-between;align-items:start;gap:8px;flex-wrap:wrap}
.company-top .status{margin-left:4px}
.company-balance{font-size:18px}
.company-card .artifact-actions{flex-wrap:wrap}
.domain-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px}
.domain-list li{display:flex;align-items:center;gap:6px;flex-wrap:wrap;word-break:break-all}
.platform-secret p{margin:6px 0}
.platform-settings summary,.platform-body details>summary{cursor:pointer;font-weight:750;margin:14px 0 6px}
@media(max-width:650px){
  .staff-edit .meeting-row{grid-template-columns:1fr}
  .amount-picks input[name=custom]{width:100%}
}
.domain-error{flex-basis:100%}

/* PC: 가운데 경계를 끌어 오른쪽 칸(업무 상세) 폭을 바꾼다. 폭은 이 기기에만 기억한다. */
.workspace{grid-template-columns:minmax(0,1fr) 10px var(--panel-width,390px)}
.panel-resizer{position:sticky;top:83px;height:calc(100vh - 83px);cursor:col-resize;touch-action:none;display:flex;justify-content:center;z-index:2}
.panel-resizer::after{content:"";width:4px;height:56px;margin-top:40vh;border-radius:4px;background:#cfd6cc;transition:background .15s}
.panel-resizer:hover::after,.panel-resizer:focus-visible::after,.panel-resizer.dragging::after{background:var(--green)}
.panel-resizer:focus-visible{outline:2px solid rgba(31,111,74,.35);outline-offset:-2px}
body.resizing-panel{cursor:col-resize;user-select:none}
@media(max-width:1050px){.workspace{grid-template-columns:1fr}.panel-resizer{display:none}}
.usage-box{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 14px;margin-bottom:6px}
.usage-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.usage-head .staff-head{margin:0}
.usage-head .artifact-actions{margin-top:0;align-items:center}
.usage-table td,.usage-table th{vertical-align:top}
.usage-table .num{text-align:right;white-space:nowrap}
.usage-table tfoot td{border-top:2px solid var(--line)}
.usage-box .hint{margin:8px 0 0;font-size:13px}
.ledger-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ledger-bar .artifact-actions{margin-top:0;align-items:center}
.ledger-bar select{width:auto}
.ledger-panel .hint{margin:0;font-size:13px}
.deposit-line{margin:0;font-size:15px}
.deposit-line b{font-size:17px}
.tax-info{border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 12px}
.tax-info summary{cursor:pointer;font-weight:750}
.tax-info .staff-edit{border-top:0;margin-top:8px}
.tax-fields{border:1px dashed var(--line);border-radius:12px;padding:8px 10px;margin:0;display:grid;gap:8px}
.tax-fields legend{font-weight:750;padding:0 4px}
.tax-box{margin-top:10px}
.tax-box tr.issued td{color:var(--muted)}
.tax-box label.check{white-space:nowrap}
/* 창 안의 넓은 표가 창 폭을 밀어내지 않게: 칸 폭은 창에 맞추고 표만 그 안에서 옆으로 밀어 본다(모바일 손님 계정·회사 관리). */
.stack,.security-body{grid-template-columns:minmax(0,1fr)}
.security-body .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.usage-table td:first-child{white-space:normal;min-width:130px}
.company-card,.staff-card{min-width:0}
.plain-list li>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){
  .security-body{padding:16px}
  .usage-head h3{font-size:14px}
  .company-top{align-items:center}
}
/* 휴대폰: 사용량·세금계산서 표를 한 줄씩 카드 모양으로(옆으로 밀지 않고 다 보이게) */
@media(max-width:650px){
  .usage-box .table-wrap{overflow:visible}
  .usage-table thead{display:none}
  .usage-table,.usage-table tbody,.usage-table tfoot,.usage-table tr{display:block;width:100%}
  .usage-table tr{border-bottom:1px solid var(--line);padding:8px 0}
  .usage-table tfoot tr{border-bottom:0}
  .usage-table td{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border:0;padding:2px 0;white-space:normal;text-align:right;font-size:13px}
  .usage-table td::before{content:attr(data-label);color:var(--muted);font-weight:700;text-align:left;flex:none}
  .usage-table td:first-child,.usage-table td.who{display:block;text-align:left;min-width:0}
  .usage-table td:first-child::before,.usage-table td.who::before{content:none}
  .usage-table td.empty{display:none}
  .usage-table tfoot td{border-top:0}
  .usage-table tfoot tr{border-top:2px solid var(--line)}
}
@media(max-width:650px){
  .usage-table td{justify-content:flex-end}
  .usage-table td::before{margin-right:auto}
  .usage-table td>small{margin-left:6px}
}
@media(max-width:650px){.usage-table td:first-child>small,.usage-table td.who>small{margin-left:0}}
.model-row{display:grid;gap:6px}
.model-row select{width:100%}
.model-legend{margin:0;padding-left:18px;display:grid;gap:3px;font-size:12px}
.company-staff{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px}
.welcome-steps{display:flex;gap:6px;margin:0;padding:0;list-style:none;counter-reset:w;flex-wrap:wrap}
.welcome-steps li{counter-increment:w;font-size:12px;font-weight:800;color:var(--muted);background:#edf0ed;border-radius:20px;padding:4px 10px}
.welcome-steps li:before{content:counter(w) ". "}
.welcome-steps li.on{background:var(--green);color:#fff}
.welcome-examples{display:grid;gap:8px}
.welcome-examples .button{display:grid;gap:2px;text-align:left;font-weight:700}
.welcome-examples small{color:var(--muted);font-weight:500}
.site-footer{padding:14px 16px 22px;text-align:center;font-size:12px;color:var(--muted);line-height:1.7}
.site-footer a{color:var(--muted)}
.login-page .site-footer{position:absolute;left:0;right:0;bottom:0}
.login-page{position:relative;padding-bottom:90px}
.legal-page{background:var(--paper);margin:0}
.legal-card{max-width:760px;margin:0 auto;padding:32px 16px 48px}
.legal-card h1{font:700 30px Georgia,serif;margin-bottom:6px}
.legal-card h2{font-size:17px;margin:24px 0 8px}
.legal-card p{margin:0 0 8px;line-height:1.75}
.legal-nav{font-size:13px;margin-bottom:18px;color:var(--muted)}
.legal-nav a{color:var(--green)}
.legal-footer{margin-top:32px!important;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.terms-box{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font-size:13px}
.terms-box h4{margin:8px 0 4px;font-size:13px}.terms-box p{margin:0 0 6px}
.side-panel select{max-width:100%;min-width:0;width:100%}
.help-card{max-width:880px}
.help-toc{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 16px;margin:18px 0 8px}
.help-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px;font-size:14px;line-height:1.9}
.help-toc a,.help-page section a{color:var(--green)}
.help-page section{scroll-margin-top:16px}
.help-page h2{font-size:21px;margin-top:40px;padding-top:12px;border-top:1px solid var(--line)}
.help-steps,.help-list{margin:0 0 12px;padding-left:22px;line-height:1.8}
.help-tip{background:#eef6f0;border-left:4px solid var(--green);border-radius:8px;padding:10px 14px}
.help-btn{display:inline-block;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 6px;font-size:.92em;font-weight:700;white-space:nowrap}
.help-shot{margin:14px 0 18px}
.help-shot img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.help-shot.phone img{max-width:320px;margin:0 auto}
.help-shot figcaption{text-align:center;font-size:13px;color:var(--muted);margin-top:6px}
.help-faq details{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 14px;margin-bottom:8px}
.help-faq summary{font-weight:750;cursor:pointer}
.help-faq p{margin:8px 0 0}
.help-top{text-align:right;font-size:12px}
@media (max-width:650px){.help-toc ol{columns:1}.help-btn{white-space:normal}}
@media print{.help-toc,.help-top{display:none}.help-page h2{break-after:avoid}.help-shot{break-inside:avoid}}
.intro-page{background:var(--paper);margin:0}
.intro-top{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:14px 16px}
.intro-logo{display:flex;align-items:center;gap:8px;font-size:18px}.intro-logo .brand-mark{width:32px;height:32px;margin:0;border-radius:8px;font-size:13px}
.intro-top nav{display:flex;gap:14px;align-items:center;font-size:14px}.intro-top nav a{color:var(--ink)}
.intro-hero{max-width:1120px;margin:0 auto;padding:28px 16px 40px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:36px;align-items:center}
.intro-hero h1{font:800 40px/1.25 "Pretendard","Noto Sans KR",system-ui,sans-serif;margin:6px 0 14px}
.intro-lead{font-size:17px;line-height:1.75}
.intro-cta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 8px}
.intro-small{font-size:13px}
.intro-hero img,.intro-shots img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.12)}
.intro-hero figure,.intro-shots figure{margin:0}
.intro-section{max-width:1120px;margin:0 auto;padding:36px 16px;border-top:1px solid var(--line)}
.intro-section h2{font-size:26px;margin-bottom:12px}.intro-section h3{margin-top:24px}
.intro-steps{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:s}
.intro-steps li,.intro-grid>div,.intro-price>div,.intro-industries>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:6px;align-content:start}
.intro-steps li{counter-increment:s}.intro-steps li b:before{content:counter(s);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;margin-right:8px;font-size:14px}
.intro-steps span,.intro-grid span,.intro-industries small{color:var(--muted);line-height:1.65}
.intro-shots{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:18px;align-items:end}
.intro-shots figcaption{text-align:center;font-size:13px;color:var(--muted);margin-top:6px}
.intro-industries{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.intro-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.intro-chips li{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 12px;font-size:14px}
.intro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.intro-price{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:10px}
.intro-price p{margin:0}.intro-price-main{background:#eef6f0!important;border-color:#bcd9c5!important}
.intro-big{font:800 44px/1.1 "Pretendard",system-ui,sans-serif;color:var(--green)}.intro-mid{font-size:20px;font-weight:800}
.intro-form{display:grid;gap:12px;max-width:720px}.intro-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.intro-form small{color:var(--muted);font-weight:500}
.intro-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:820px){.intro-hero{grid-template-columns:minmax(0,1fr);padding-top:12px}.intro-hero h1{font-size:30px}
.intro-steps,.intro-price,.intro-grid,.intro-row{grid-template-columns:minmax(0,1fr)}.intro-shots{grid-template-columns:minmax(0,1fr)}.intro-shots .phone{max-width:260px;margin:0 auto}
.intro-top nav a:not(.button){display:none}}
.inquiry-list li.inquiry{display:grid;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.inquiry-msg{margin:6px 0 0;white-space:pre-wrap;background:#f6f7f3;border-radius:8px;padding:8px 10px;font-size:13px}
.intro-page a.button{text-decoration:none}
