:root{--color-bg: #f7f8fa;--color-surface: #ffffff;--color-border: #e0e3e8;--color-text: #1f2430;--color-text-muted: #6b7280;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-warning: #d97706;--color-success: #16a34a;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius-sm: 4px;--radius-md: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--font-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", "Noto Sans JP", "Meiryo", system-ui, -apple-system, sans-serif;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--line-height-normal: 1.6;--nav-width: 220px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg)}a{color:var(--color-primary)}button{font-family:inherit}.app-shell{display:flex;min-height:100vh}.app-nav{width:var(--nav-width);flex-shrink:0;background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4)}.app-nav__brand{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-5)}.app-nav__section-title{margin-top:var(--space-5);margin-bottom:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.app-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.app-nav__link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none}.app-nav__link:hover{background-color:var(--color-bg)}.app-nav__link--active{background-color:var(--color-primary);color:#fff}.app-body{flex:1;display:flex;flex-direction:column;min-width:0}.app-header{display:flex;align-items:center;justify-content:flex-end;height:56px;flex-shrink:0;padding:0 var(--space-6);background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header__user{display:flex;align-items:center;gap:var(--space-3)}.app-header__name{font-weight:600}.app-nav__item{position:relative}.notify-badge{position:absolute;top:2px;right:6px;background-color:var(--color-danger);color:#fff;font-size:11px;line-height:1;padding:2px 5px;border-radius:999px}.app-main{flex:1;padding:var(--space-6);overflow-y:auto}.page-shell__title{font-size:var(--font-size-xl);margin:0 0 var(--space-2)}.page-shell__description{color:var(--color-text-muted);margin:0 0 var(--space-5)}.tab-nav{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.tab-nav__item{padding:var(--space-2) var(--space-3);text-decoration:none;color:var(--color-text-muted);border-bottom:2px solid transparent}.tab-nav__item--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-content{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm)}.button{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-md);cursor:pointer}.button:hover{background-color:var(--color-bg)}.button:disabled{cursor:not-allowed;opacity:.5}.button--primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.button--primary:hover{background-color:var(--color-primary-hover)}.button--danger{background-color:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.button--danger:hover{background-color:#fef2f2}.link-button{background:none;border:none;padding:0;color:var(--color-primary);cursor:pointer;font:inherit;text-decoration:underline}.form-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.form-field__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.form-field__input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-md);background-color:var(--color-surface);color:var(--color-text)}.form-error{color:var(--color-danger);margin:0 0 var(--space-4)}.inline-form{border-top:1px solid var(--color-border);margin-top:var(--space-4);padding-top:var(--space-4)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-bg)}.login-card{width:360px;padding:var(--space-6);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.login-card__title{font-size:var(--font-size-xl);margin:0 0 var(--space-3)}.login-card__description{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-5)}.toolbar{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.toolbar__search{flex:1;min-width:240px}.data-table{width:100%;border-collapse:collapse;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--font-size-md)}.data-table th{color:var(--color-text-muted);font-weight:600;background-color:var(--color-bg)}.data-table tbody tr:last-child td{border-bottom:none}.pagination{display:flex;justify-content:center;gap:var(--space-3);margin-top:var(--space-5)}.empty-state{color:var(--color-text-muted);padding:var(--space-5);text-align:center;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.badge{display:inline-block;padding:2px var(--space-2);border-radius:999px;font-size:var(--font-size-sm);line-height:1.4}.badge--private{background-color:#eef2ff;color:#4338ca}.badge--shared{background-color:#ecfdf5;color:#047857}.badge--neutral{background-color:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.unassigned-list{display:flex;flex-direction:column;gap:var(--space-4)}.unassigned-card__header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2)}.unassigned-card__title{font-weight:600}.unassigned-card__time{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-left:auto}.unassigned-card__preview{color:var(--color-text-muted);margin:0 0 var(--space-3)}.unassigned-card__actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.candidate-list{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.candidate-list__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.candidate-list__customer{color:var(--color-text-muted);margin-left:var(--space-1)}.candidate-list__score{margin-left:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.candidate-list__reason{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.feature-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.toast-host{position:fixed;right:var(--space-5);bottom:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;min-width:240px}.toast--success{background-color:var(--color-success)}.toast--error{background-color:var(--color-danger)}.toast--info{background-color:var(--color-text)}.toast__close{background:none;border:none;color:inherit;cursor:pointer;margin-left:auto;font-size:var(--font-size-lg);line-height:1}.admin-state{padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.admin-state--loading{color:var(--color-text-muted)}.admin-state--error{color:var(--color-danger);background-color:#fdeaea}.admin-state--empty{color:var(--color-text-muted);background-color:var(--color-bg)}.admin-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:1.4;background-color:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.admin-badge--internal{background-color:#fff3e0;color:#9a5b00;border-color:#f3d19e}.admin-badge--warn{background-color:#fdeaea;color:var(--color-danger);border-color:#f3c2c2}.admin-badge--success{background-color:#e8f6ec;color:var(--color-success);border-color:#bfe6cb}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.admin-summary-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.admin-summary-card__label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-1)}.admin-summary-card__value{font-size:28px;font-weight:700;margin:0}.admin-summary-card__note{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.admin-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5)}.admin-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.admin-card__title{font-size:var(--font-size-lg);margin:0}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.admin-table th,.admin-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.admin-table th{color:var(--color-text-muted);font-weight:600;white-space:nowrap}.admin-table tbody tr:hover{background-color:var(--color-bg)}.admin-table a{text-decoration:none}.admin-load-more{display:block;margin:var(--space-4) auto 0}.admin-btn{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-primary);background-color:var(--color-primary);color:#fff;cursor:pointer}.admin-btn:hover{background-color:var(--color-primary-hover)}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn--ghost{background-color:transparent;color:var(--color-primary)}.admin-btn--ghost:hover{background-color:var(--color-bg)}.admin-btn--danger{border-color:var(--color-danger);background-color:var(--color-danger)}.admin-btn--small{padding:2px var(--space-2);font-size:12px}.admin-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.admin-tabs__item{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-md)}.admin-tabs__item--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.admin-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.admin-form-row label{min-width:160px;color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-form-row input[type=text],.admin-form-row input[type=number],.admin-form-row input[type=date],.admin-form-row select,.admin-form-row textarea{flex:1;min-width:160px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm)}.admin-form-row textarea{min-height:80px;resize:vertical}.admin-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4)}.admin-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-source-note{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-left:var(--space-2)}.admin-forbidden{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.deal-header{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);margin-bottom:var(--space-4)}.deal-header__top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.deal-header__customer{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 2px}.deal-header__title{font-size:var(--font-size-xl);margin:0}.deal-header__meta{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.deal-header__actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.deal-header__status-select{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background-color:var(--color-surface)}.deal-alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.deal-alert--warn{background-color:#fdeaea;color:var(--color-danger);border:1px solid #f3c2c2}.deal-alert--info{background-color:#eef2ff;color:#4338ca;border:1px solid #d9e0fb}.deal-section{margin-bottom:var(--space-6)}.deal-section:last-child{margin-bottom:0}.deal-section__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.deal-section__title{font-size:var(--font-size-lg);margin:0}.deal-section__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-3)}.badge--high{background-color:#fdeaea;color:var(--color-danger)}.badge--mid{background-color:#fff8e1;color:#946200}.badge--low{background-color:#eef2ff;color:#4338ca}.badge--internal{background-color:#fff3e0;color:#9a5b00;border:1px solid #f3d19e}.badge--mcp{background-color:#ede9fe;color:#6d28d9}.badge--draft{background-color:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge--confirmed{background-color:#e8f6ec;color:var(--color-success)}.timeline-list{display:flex;flex-direction:column;gap:var(--space-3)}.timeline-item{display:flex;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.timeline-item__icon{font-size:20px;line-height:1.4;flex-shrink:0}.timeline-item__body{flex:1;min-width:0}.timeline-item__header{display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap}.timeline-item__kind{color:var(--color-text-muted);font-size:var(--font-size-sm)}.timeline-item__time{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-left:auto}.timeline-item__title{font-weight:600}.timeline-item__text{white-space:pre-wrap;margin:var(--space-2) 0 0}.timeline-item__actions{display:flex;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.issue-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-3)}.issue-card__header{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.issue-card__title{font-weight:600;margin-right:auto}.issue-card__body{margin:var(--space-2) 0;white-space:pre-wrap}.issue-card__evidence{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.issue-card__actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;align-items:center}.measure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-3);margin-top:var(--space-3)}.measure-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);background-color:var(--color-bg)}.measure-card__title{font-weight:600;margin:0 0 var(--space-2)}.measure-card__field{font-size:var(--font-size-sm);margin:var(--space-1) 0 0}.measure-card__field b{color:var(--color-text-muted)}.chat-mode-toggle{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.chat-thread{display:flex;flex-direction:column;gap:var(--space-3);max-height:520px;overflow-y:auto;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);margin-bottom:var(--space-3)}.chat-message{max-width:80%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-md)}.chat-message--user{align-self:flex-end;background-color:var(--color-primary);color:#fff}.chat-message--assistant{align-self:flex-start;background-color:var(--color-surface);border:1px solid var(--color-border)}.chat-message--system{align-self:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.chat-message__body{white-space:pre-wrap;margin:0}.chat-message__meta{font-size:11px;opacity:.75;margin-top:var(--space-1)}.chat-examples{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.chat-input-row{display:flex;gap:var(--space-2);align-items:flex-end}.chat-input-row textarea{flex:1;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-md);resize:vertical}.estimate-table .numeric{text-align:right}.estimate-table tr.needs-check-row{background-color:#fff8e1}.estimate-line-editor{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.estimate-line-editor select,.estimate-line-editor input{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.estimate-totals{display:flex;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-3);font-size:var(--font-size-sm)}.estimate-totals__item b{display:block;font-size:var(--font-size-lg);color:var(--color-text)}.proposal-preview{width:100%;height:640px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:#fff}.proposal-version-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.proposal-version-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-wrap:wrap}.proposal-version-row--active{border-color:var(--color-primary);background-color:#eef2ff}.proposal-version-row__title{font-weight:600;margin-right:auto}.check-finding-list{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.check-finding-list__item{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background-color:var(--color-bg)}
