:root{--bg: #eef2f7;--surface: #ffffff;--surface-2: #f8fafc;--text: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--primary: #4f46e5;--primary-dark: #4338ca;--primary-soft: #eef2ff;--risk-high: #b91c1c;--risk-high-bg: #fee2e2;--risk-high-border: #fca5a5;--risk-medium: #b45309;--risk-medium-bg: #fef3c7;--risk-medium-border: #fcd34d;--risk-low: #15803d;--risk-low-bg: #dcfce7;--risk-low-border: #86efac;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 8px 24px rgba(15, 23, 42, .06)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,p,dl,dd,ol,ul{margin:0}button{font-family:inherit;cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column}.layout{display:grid;grid-template-columns:348px minmax(0,1fr);gap:24px;max-width:1360px;width:100%;margin:0 auto;padding:24px;align-items:start}.sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.main{display:flex;flex-direction:column;gap:20px;min-width:0}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;background:linear-gradient(120deg,#1e293b,#312e81 55%,#4f46e5);color:#fff;box-shadow:var(--shadow)}.app-header__brand{display:flex;align-items:center;gap:14px}.app-header__logo{width:46px;height:46px;display:grid;place-items:center;font-size:24px;background:#ffffff24;border-radius:12px}.app-header__title{font-size:22px;font-weight:700;letter-spacing:.02em}.app-header__subtitle{font-size:13px;opacity:.82}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;background:#ffffff29;color:#fff;white-space:nowrap}.status-pill__dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1}.status-idle .status-pill__dot{background:#cbd5e1}.status-analyzing .status-pill__dot{background:#38bdf8;animation:pulse 1s ease-in-out infinite}.status-completed .status-pill__dot{background:#4ade80}.status-high{background:#ef4444e6}.status-high .status-pill__dot{background:#fff;animation:pulse 1s ease-in-out infinite}.status-error{background:#ef4444d9}.status-error .status-pill__dot{background:#fff}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.panel__title{font-size:15px;font-weight:700;margin-bottom:12px;color:var(--text)}.panel__hint{font-size:12.5px;color:var(--text-muted);margin-bottom:12px}.steps-hint{list-style:none;counter-reset:step;padding:0;margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.steps-hint li{counter-increment:step;position:relative;padding-left:26px;font-size:12.5px;color:var(--text-muted)}.steps-hint li:before{content:counter(step);position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:11px;display:grid;place-items:center}.download-list{display:flex;flex-direction:column;gap:8px}.download-link{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;text-decoration:none;border:1px solid var(--border);color:var(--text);background:var(--surface-2);transition:transform .12s ease,box-shadow .12s ease}.download-link:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.download-link__icon{font-size:14px}.download-low{border-left:4px solid var(--risk-low)}.download-medium{border-left:4px solid var(--risk-medium)}.download-high{border-left:4px solid var(--risk-high)}.dropzone{border:2px dashed #cbd5e1;border-radius:var(--radius-sm);padding:22px 14px;text-align:center;background:var(--surface-2);transition:border-color .15s ease,background .15s ease;outline:none}.dropzone--over{border-color:var(--primary);background:var(--primary-soft)}.dropzone--disabled{opacity:.6;cursor:not-allowed}.dropzone__icon{font-size:30px;margin-bottom:6px}.dropzone__prompt{font-size:13px;color:var(--text-muted)}.dropzone__file{display:flex;flex-direction:column;gap:2px}.dropzone__filename{font-weight:700;font-size:13.5px;word-break:break-all}.dropzone__filesize{font-size:12px;color:var(--text-muted)}.uploader-note{font-size:11.5px;color:var(--text-muted);margin:10px 0 12px}.btn{border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 14px;font-size:13.5px;font-weight:600;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn-block{width:100%}.btn-primary{background:var(--primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--primary-dark);box-shadow:var(--shadow)}.btn-outline{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-outline:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.btn-drive{background:#0b57d0;color:#fff}.btn-drive:not(:disabled):hover{background:#0842a0;box-shadow:var(--shadow)}.sample-buttons{display:flex;flex-direction:column;gap:8px}.sample-low{border-left:4px solid var(--risk-low)}.sample-medium{border-left:4px solid var(--risk-medium)}.sample-high{border-left:4px solid var(--risk-high)}.history-list{list-style:none;padding:0 4px 0 0;display:flex;flex-direction:column;gap:6px;max-height:304px;overflow-y:auto;overscroll-behavior:contain}.history-list::-webkit-scrollbar{width:8px}.history-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.history-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}.history-item:hover{background:var(--surface-2)}.history-item--active{border-color:var(--primary);background:var(--primary-soft)}.history-item__body{display:flex;flex-direction:column;min-width:0}.history-item__type{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item__time{font-size:11px;color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card__title{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.card__badge{font-size:12px;font-weight:600;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.timeline{list-style:none;padding:0;display:flex;flex-direction:column}.timeline__item{display:flex;align-items:center;gap:12px;padding:7px 0;position:relative;font-size:14px;color:var(--text-muted)}.timeline__item:not(:last-child):after{content:"";position:absolute;left:13px;top:30px;bottom:-7px;width:2px;background:var(--border)}.timeline__marker{width:28px;height:28px;min-width:28px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;border:2px solid var(--border);background:var(--surface);color:var(--text-muted);z-index:1}.timeline__item--running{color:var(--text);font-weight:600}.timeline__item--running .timeline__marker{border-color:var(--primary);background:var(--primary-soft)}.timeline__item--completed{color:var(--text)}.timeline__item--completed .timeline__marker{border-color:var(--risk-low);background:var(--risk-low);color:#fff}.spinner{width:18px;height:18px;border:2.5px solid rgba(79,70,229,.25);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner--sm{width:12px;height:12px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.overall-card{border-top:5px solid var(--border)}.overall-card.overall-high{border-top-color:var(--risk-high)}.overall-card.overall-medium{border-top-color:var(--risk-medium)}.overall-card.overall-low{border-top-color:var(--risk-low)}.overall-card__main{display:flex;gap:22px;align-items:center}.overall-gauge{width:108px;height:108px;min-width:108px;border-radius:50%;display:grid;place-items:center;text-align:center;border:6px solid var(--border)}.overall-gauge__level{font-size:40px;font-weight:800;line-height:1}.overall-gauge__caption{font-size:12px;color:var(--text-muted);margin-top:2px}.overall-gauge--high{border-color:var(--risk-high);background:var(--risk-high-bg);color:var(--risk-high)}.overall-gauge--medium{border-color:var(--risk-medium);background:var(--risk-medium-bg);color:var(--risk-medium)}.overall-gauge--low{border-color:var(--risk-low);background:var(--risk-low-bg);color:var(--risk-low)}.overall-gauge--high .overall-gauge__caption,.overall-gauge--medium .overall-gauge__caption,.overall-gauge--low .overall-gauge__caption{color:inherit;opacity:.85}.overall-card__info{min-width:0}.overall-card__doctype{font-size:18px;font-weight:700;margin-bottom:4px}.overall-card__summary{font-size:14px;color:#334155;margin-bottom:12px}.overall-card__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.approval-chip{font-size:13px;font-weight:700;padding:6px 14px;border-radius:999px;border:1px solid transparent}.approval-chip.approval-high{background:var(--risk-high-bg);color:var(--risk-high);border-color:var(--risk-high-border)}.approval-chip.approval-medium{background:var(--risk-medium-bg);color:var(--risk-medium);border-color:var(--risk-medium-border)}.approval-chip.approval-low{background:var(--risk-low-bg);color:var(--risk-low);border-color:var(--risk-low-border)}.overall-card__time{font-size:12px;color:var(--text-muted)}.risk-counts{display:flex;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.risk-count{flex:1;text-align:center;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border)}.risk-count__num{display:block;font-size:26px;font-weight:800;line-height:1}.risk-count__label{font-size:12px;color:var(--text-muted)}.risk-count--high{background:var(--risk-high-bg)}.risk-count--high .risk-count__num{color:var(--risk-high)}.risk-count--medium{background:var(--risk-medium-bg)}.risk-count--medium .risk-count__num{color:var(--risk-medium)}.risk-count--low{background:var(--risk-low-bg)}.risk-count--low .risk-count__num{color:var(--risk-low)}.risk-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;border-radius:999px;padding:3px 11px;border:1px solid transparent;white-space:nowrap}.risk-sm{font-size:12px;padding:2px 9px}.risk-md{font-size:13px}.risk-lg{font-size:15px;padding:5px 14px}.risk-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.risk-high{background:var(--risk-high-bg);color:var(--risk-high);border-color:var(--risk-high-border)}.risk-medium{background:var(--risk-medium-bg);color:var(--risk-medium);border-color:var(--risk-medium-border)}.risk-low{background:var(--risk-low-bg);color:var(--risk-low);border-color:var(--risk-low-border)}.risk-table-wrap{overflow-x:auto}.risk-table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}.risk-table th{text-align:left;font-size:12px;color:var(--text-muted);font-weight:700;padding:10px 12px;border-bottom:2px solid var(--border);white-space:nowrap}.risk-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top}.risk-table tbody tr:last-child td{border-bottom:none}.risk-table__item{font-weight:700;white-space:nowrap}.risk-table__quote{color:#475569;min-width:200px}.risk-table__rule{color:var(--text-muted);font-size:12px}.revision-list{display:flex;flex-direction:column;gap:16px}.revision{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;background:var(--surface-2)}.revision__title{font-size:14.5px;font-weight:700;margin-bottom:12px}.revision__diff{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch}.revision__col{border-radius:var(--radius-sm);padding:12px;font-size:13px;border:1px solid var(--border);background:var(--surface)}.revision__col--before{border-color:var(--risk-high-border);background:var(--risk-high-bg)}.revision__col--after{border-color:var(--risk-low-border);background:var(--risk-low-bg)}.revision__tag{display:inline-block;font-size:11px;font-weight:700;margin-bottom:6px;opacity:.75}.revision__arrow{display:grid;place-items:center;font-size:22px;color:var(--text-muted)}.revision__reason{font-size:12.5px;color:#475569;margin-top:12px}.approval-banner{border-radius:var(--radius-sm);padding:16px;text-align:center;margin-bottom:16px;border:1px solid transparent}.approval-banner.approval-high{background:var(--risk-high-bg);border-color:var(--risk-high-border)}.approval-banner.approval-medium{background:var(--risk-medium-bg);border-color:var(--risk-medium-border)}.approval-banner.approval-low{background:var(--risk-low-bg);border-color:var(--risk-low-border)}.approval-banner__label{font-size:20px;font-weight:800}.approval-high .approval-banner__label{color:var(--risk-high)}.approval-medium .approval-banner__label{color:var(--risk-medium)}.approval-low .approval-banner__label{color:var(--risk-low)}.approval-details{display:flex;flex-direction:column;gap:10px}.approval-details__row{display:grid;grid-template-columns:96px 1fr;gap:12px;font-size:13.5px}.approval-details__row dt{font-weight:700;color:var(--text-muted)}.approval-details__row dd{color:var(--text)}.rules-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.rules-list__item{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.rules-list__check{color:var(--risk-low);font-weight:800}.empty-state{text-align:center;padding:48px 24px}.empty-state__icon{font-size:52px;margin-bottom:12px}.empty-state__title{font-size:20px;font-weight:700;margin-bottom:8px}.empty-state__text{color:var(--text-muted);font-size:14px;margin-bottom:24px}.empty-state__steps{list-style:none;padding:0;display:inline-flex;flex-direction:column;gap:10px;text-align:left}.empty-state__steps li{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600}.empty-state__num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.error-card{display:flex;align-items:flex-start;gap:16px;border-left:5px solid var(--risk-high)}.error-card__icon{font-size:28px}.error-card__title{font-size:17px;font-weight:700;margin-bottom:4px;color:var(--risk-high)}.error-card__text{font-size:14px;color:#475569}.loading-toast{position:fixed;right:24px;bottom:24px;display:flex;align-items:center;gap:12px;background:#1e293b;color:#fff;padding:14px 20px;border-radius:999px;box-shadow:0 10px 30px #0f172a59;z-index:50;font-size:13.5px;font-weight:600}.loading-toast .spinner{border-color:#ffffff4d;border-top-color:#fff}.disclaimer{font-size:12px;color:var(--text-muted);text-align:center;padding:14px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-sm)}@media (max-width: 980px){.layout{grid-template-columns:1fr;padding:16px;gap:16px}.sidebar{position:static}.app-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px 20px}}@media (max-width: 560px){.overall-card__main{flex-direction:column;text-align:center}.revision__diff{grid-template-columns:1fr}.revision__arrow{transform:rotate(90deg)}}.risk-table__col-item{width:22%}.risk-table__col-level{width:9%}.risk-table__col-excerpt,.risk-table__col-reason{width:27%}.risk-table__col-action{width:15%}.risk-table__reason{min-width:260px}.panel__error{font-size:12.5px;color:var(--risk-high);background:var(--risk-high-bg);border:1px solid var(--risk-high-border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:10px}.saved-notice{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;color:var(--risk-low);background:var(--risk-low-bg);border:1px solid var(--risk-low-border);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700}.revision__heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.revision__heading .revision__title{margin-bottom:0}.revision__reason--top{margin-top:0;margin-bottom:12px}.approval-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.approval-actions__button{min-width:120px}
