:root{--page-bg: #fafafa;--white: #ffffff;--surface-alt: #f9f9fa;--hover-bg: #f4f4f5;--col-bg: #f1f1f3;--col-bg-drag: #e4e4e7;--border: #e4e4e7;--text-dark: #18181b;--text-gray: #52525b;--text-light: #a1a1aa;--accent: #18181b;--accent-hover: #000000;--accent-bg: #f4f4f5;--accent-border: #d4d4d8;--ring: rgba(24, 24, 27, .13);--chip-bg: #f4f4f5;--exc: #ca4d4d;--exc-bg: #fdf2f2;--exc-border: #f3cccc;--radius: 10px;--radius-sm: 8px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--t: .12s ease;--font: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Pretendard", "Malgun Gothic", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font);background:var(--page-bg);color:var(--text-dark);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:14px;color:var(--text-dark)}a{color:inherit;text-decoration:none}.page-title{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px}.page-sub{color:var(--text-gray);font-size:14px;margin:0 0 20px}.section-title{font-size:15px;font-weight:600;margin:0}.page{min-height:100%}.container{max-width:1280px;margin:0 auto;padding:24px}.container-narrow{max-width:820px;margin:0 auto;padding:24px}.header{background:var(--white);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.header-inner{max-width:1280px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between}.logo{display:inline-flex;align-items:center;gap:7px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--accent)}.header-right{display:flex;align-items:center;gap:16px}.header-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-gray);font-weight:500;font-size:14px;transition:color var(--t)}.header-link:hover{color:var(--text-dark)}.header-user{color:var(--text-light);font-size:13px}.fullscreen-center{min-height:100vh;display:flex;align-items:center;justify-content:center}.loading-text{color:var(--text-light);font-size:14px;padding:40px 0;text-align:center}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--page-bg)}.auth-card{width:100%;max-width:360px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:32px 28px}.auth-logo{font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--accent);text-align:center;margin:0 0 4px}.auth-sub{text-align:center;color:var(--text-gray);font-size:14px;margin:0 0 24px}.auth-card .form-field+.form-field{margin-top:16px}.auth-card .btn-block{margin-top:20px}.auth-notice{margin:16px 0 0;padding:10px 12px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--text-gray);font-size:13px}.auth-toggle{margin-top:20px;text-align:center;font-size:13px;color:var(--text-gray)}.auth-toggle button{border:none;background:none;padding:0;color:var(--accent);font-weight:600;font-size:13px}.auth-toggle button:hover{color:var(--accent-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--white);color:var(--text-dark);border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:500;transition:background var(--t),border-color var(--t),color var(--t)}.btn:hover{background:var(--hover-bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-sm{padding:6px 12px;font-size:13px}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-back{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:20px;padding:4px 8px;color:var(--text-gray);border-radius:var(--radius-sm);transition:background var(--t),color var(--t)}.btn-back:hover{background:var(--hover-bg);color:var(--text-dark)}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--chip-bg);color:var(--text-gray);border-radius:var(--radius-pill);padding:2px 10px;font-size:12px;font-weight:500}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:2px 10px;font-size:12px;font-weight:600}.status-신규{background:#f4f4f5;border:1px solid var(--border);color:#27272a}.status-상담중{background:#f4f4f5;border:1px solid var(--border);color:#3f3f46}.status-견적전달,.status-계약{background:#f4f4f5;border:1px solid var(--border);color:#52525b}.status-완료{background:#f4f4f5;border:1px solid var(--border);color:#a1a1aa}.resp-bar{display:flex;align-items:center;gap:12px;background:var(--exc-bg);border:1px solid var(--exc-border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px}.resp-dot{width:8px;height:8px;border-radius:50%;background:var(--exc);flex:none}.resp-label{font-weight:600;color:var(--exc)}.resp-detail{color:var(--text-gray)}.resp-bar .spacer{flex:1}.resp-action{color:var(--exc);font-weight:600;font-size:13px;background:none;border:none;padding:0}.resp-action:hover{text-decoration:underline}.controlbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--white)}.segmented button{border:none;background:transparent;padding:8px 16px;font-size:13px;color:var(--text-gray);font-weight:500;transition:background var(--t),color var(--t)}.segmented button:hover{background:var(--hover-bg)}.segmented button.active{background:var(--accent);color:#fff}.segmented button.active:hover{background:var(--accent)}.controlbar .spacer{flex:1}.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);padding:8px 12px;font-size:13px;color:var(--text-dark);transition:border-color var(--t),box-shadow var(--t)}.select:hover{border-color:var(--text-light)}.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.kanban{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}.kcol{background:var(--col-bg);border-radius:var(--radius);padding:12px;min-height:120px}.kcol.dragover{outline:2px dashed var(--accent-border);background:var(--col-bg-drag)}.kcol-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 12px}.kcol-head .name{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px}.kcol-head .name svg{color:var(--text-light)}.kcol-count{background:var(--white);border-radius:var(--radius-pill);min-width:22px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-gray);padding:0 6px}.kcard{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow);transition:border-color var(--t),box-shadow var(--t)}.kcard:hover{border-color:var(--accent-border);box-shadow:var(--shadow-md)}.kcard.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--ring)}.kcard .name{font-weight:600;margin-bottom:8px}.kcard .summary{color:var(--text-gray);font-size:13px;margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kcard-foot{display:flex;align-items:center;gap:8px;font-size:12px}.kcard-foot .card-date{color:var(--text-light)}.kcard .elapsed{font-size:12px;color:var(--text-light)}.kcard .elapsed.warn{color:var(--exc);font-weight:600}.kcol-empty{color:var(--text-light);font-size:12px;text-align:center;padding:20px 0;border:1px dashed var(--border);border-radius:var(--radius-sm)}.table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table th,.table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}.table th{background:var(--surface-alt);color:var(--text-gray);font-weight:600;font-size:13px}.table tr:last-child td{border-bottom:none}.table tbody tr{cursor:pointer;transition:background var(--t)}.table tbody tr:hover{background:var(--hover-bg)}.board-wrap{display:grid;grid-template-columns:1fr;gap:16px}.board-wrap.with-panel{grid-template-columns:minmax(0,1fr) 380px}.detail-panel{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 108px);overflow-y:auto}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-light);font-size:13px;padding:64px 24px;min-height:240px}.detail-section{padding:20px}.detail-section+.detail-section{border-top:1px solid var(--border)}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.info-grid.panel{grid-template-columns:repeat(2,1fr)}.info-item .label{font-size:12px;color:var(--text-light);margin-bottom:4px}.info-item .value{font-size:15px;font-weight:500}.req-box{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;color:var(--text-dark);white-space:pre-wrap;word-break:break-word}.field-label{font-size:12px;color:var(--text-light);margin-bottom:6px}.history-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.timeline{display:flex;flex-direction:column;gap:16px}.tl-item{display:flex;gap:12px}.tl-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none}.tl-body{flex:1;min-width:0}.tl-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tl-time{font-size:12px;color:var(--text-light)}.tl-content{font-size:14px;white-space:pre-wrap;word-break:break-word}.tl-edit{margin-top:4px}.tl-edit-btn{font-size:12px;color:var(--accent);background:none;border:none;padding:0}.tl-edit-btn:hover{color:var(--accent-hover);text-decoration:underline}.history-empty{color:var(--text-light);text-align:center;padding:24px 0;font-size:13px}.history-form{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:var(--radius-sm);padding:12px;margin-bottom:16px}.type-picker{display:flex;gap:8px;margin-bottom:8px}.type-opt{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--white);border-radius:var(--radius-pill);padding:4px 12px;font-size:12px;color:var(--text-gray);transition:background var(--t),border-color var(--t),color var(--t)}.type-opt:hover{border-color:var(--text-light)}.type-opt.active{background:var(--accent);border-color:var(--accent);color:#fff}.form-wrap{display:flex;flex-direction:column;gap:20px}.form-field label{display:block;font-weight:600;font-size:14px;margin-bottom:8px}.form-field .req-mark{color:var(--exc);margin-left:2px}.input,.textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--white);outline:none;transition:border-color var(--t),box-shadow var(--t)}.input:hover,.textarea:hover{border-color:var(--text-light)}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.input.error,.textarea.error{border-color:var(--exc)}.input.error:focus,.textarea.error:focus{box-shadow:0 0 0 3px var(--exc-bg)}.textarea{resize:vertical;min-height:90px}.field-error{color:var(--exc);font-size:12px;margin-top:6px}.chip-picker{display:flex;gap:8px;flex-wrap:wrap}.chip-opt{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--white);border-radius:var(--radius-pill);padding:8px 16px;font-size:13px;color:var(--text-gray);transition:background var(--t),border-color var(--t),color var(--t)}.chip-opt:hover{border-color:var(--text-light)}.chip-opt.active{background:var(--accent);border-color:var(--accent);color:#fff}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ai-box{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius);padding:20px}.ai-box h3{margin:0 0 4px;font-size:15px;font-weight:600}.ai-box p{margin:0 0 12px;color:var(--text-gray);font-size:13px}.ai-error{margin-top:12px;color:var(--exc);font-size:13px}.ai-tag{display:inline-flex;align-items:center;background:var(--accent);color:#fff;border-radius:var(--radius-pill);padding:1px 8px;font-size:11px;font-weight:600;margin-left:8px}.ai-toast{background:var(--exc-bg);border:1px solid var(--exc-border);color:var(--exc);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;margin-top:12px}.toast-warn{position:fixed;top:20px;left:50%;transform:translate(-50%);background:var(--exc-bg);border:1px solid var(--exc-border);color:var(--exc);border-radius:var(--radius-sm);padding:12px 18px;font-size:14px;box-shadow:var(--shadow-md);z-index:1000}.detail-topbar{display:flex;align-items:center;gap:12px}.detail-topbar .title{font-size:20px;font-weight:700;letter-spacing:-.01em}.detail-topbar .spacer{flex:1}.empty-state{text-align:center;padding:72px 24px;color:var(--text-gray);max-width:460px;margin:0 auto}.empty-state h2{color:var(--text-dark);font-size:18px;font-weight:700;margin:0 0 8px}.empty-state p{margin:0 0 24px;color:var(--text-light)}@media (max-width: 1100px){.board-wrap.with-panel{grid-template-columns:1fr}.detail-panel{position:static;max-height:none}.kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.container,.container-narrow{padding:16px}.kanban{grid-template-columns:1fr}.info-grid,.info-grid.panel{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.header-inner{padding:0 16px}}
