.tool-main { padding-top: 28px; }
.tool-notice { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 22px; padding: 15px 17px; color: #496176; background: #fffaf1; border: 1px solid #ead7ae; border-radius: 14px; font-size: .88rem; line-height: 1.45; }
.tool-notice strong { color: #79551f; }
.tool-notice-icon { display: grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px; color: white; background: #c79035; border-radius: 50%; font-size: .75rem; font-weight: 850; }
.privacy-warning { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px; padding: 18px 19px; color: #6f2525; background: #fff4f2; border: 2px solid #c95a56; border-left-width: 6px; border-radius: 14px; box-shadow: 0 10px 24px rgba(148,63,63,.09); }
.privacy-warning strong { display: block; margin-bottom: 5px; color: #8e2929; font-size: .92rem; letter-spacing: .035em; text-transform: uppercase; }
.privacy-warning p { margin: 0; font-size: .82rem; line-height: 1.52; }
.privacy-warning-icon { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; color: white; background: #a93636; border-radius: 9px; font-size: .93rem; font-weight: 900; }
.privacy-confirm { display: flex !important; gap: 9px; align-items: flex-start; margin: 11px 0 0 !important; color: #762b2b !important; font-size: .79rem !important; font-weight: 800 !important; line-height: 1.4 !important; }
.privacy-confirm input { width: 17px !important; height: 17px !important; flex: 0 0 auto; margin: 1px 0 0 !important; accent-color: #a93636; }
.tool-panel { margin-bottom: 20px; background: white; border: 1px solid #d9e3ed; border-radius: 18px; box-shadow: 0 15px 38px rgba(16,37,63,.07); }
.tool-heading { display: flex; gap: 12px; align-items: flex-start; padding: 22px 24px 0; }
.tool-heading h2 { margin: 0; color: #10253f; font-size: 1.28rem; }
.tool-heading p { margin: 4px 0 0; color: #607286; font-size: .85rem; line-height: 1.4; }
.tool-mark { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; color: white; background: #10253f; border-radius: 10px; font-size: .77rem; font-weight: 850; }
.upload-area { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: end; padding: 20px 24px 0; }
.upload-drop { position: relative; display: flex; min-height: 78px; flex-direction: column; justify-content: center; padding: 13px 15px; background: #f7fbfd; border: 1px dashed #b8cedb; border-radius: 11px; cursor: pointer; }
.upload-drop:hover, .upload-drop:focus-within { background: #eef7fb; border-color: #2e6fae; }
.upload-drop strong { color: #10253f; font-size: .85rem; }
.upload-drop span { margin-top: 4px; overflow: hidden; color: #6a7e8d; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.upload-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.tool-button { min-height: 40px; padding: 9px 13px; color: #204f75; background: white; border: 1px solid #c9dce7; border-radius: 9px; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 800; }
.tool-button:hover, .tool-button:focus-visible { color: white; background: #2e6fae; border-color: #2e6fae; }
.tool-button.primary { color: white; background: #10253f; border-color: #10253f; }
.tool-button.primary:hover, .tool-button.primary:focus-visible { background: #2e6fae; border-color: #2e6fae; }
.tool-button:disabled { color: #8c999f; background: #edf1f3; border-color: #d8e0e4; cursor: not-allowed; }
.tool-help, .tool-status { margin-left: 24px; margin-right: 24px; color: #718395; font-size: .76rem; line-height: 1.45; }
.tool-help { margin-top: 10px; margin-bottom: 0; }
.tool-status { min-height: 20px; margin-top: 13px; margin-bottom: 0; font-weight: 650; }
.tool-status.error { color: #a14d4d; font-weight: 800; }
.tool-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 18px 24px 0; }
.tool-results { margin: 16px 24px 22px; padding: 16px; color: #496176; background: #f5f9fb; border: 1px solid #dbe8ef; border-radius: 11px; font-size: .82rem; line-height: 1.46; }
.tool-results h3 { margin: 0 0 9px; color: #10253f; font-size: 1rem; }
.tool-results p { margin: 8px 0 0; }
.result-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 12px; }
.result-card { padding: 11px 12px; background: white; border: 1px solid #dce9ef; border-radius: 9px; }
.result-card strong { display: block; margin-bottom: 5px; color: #10253f; font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; }
.result-card span { color: #607286; font-size: .76rem; }
.editable-table { overflow-x: auto; margin-top: 13px; }
.editable-table table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: .76rem; }
.editable-table th, .editable-table td { padding: 8px; border: 1px solid #dce9ef; vertical-align: top; text-align: left; }
.editable-table th { color: #607286; background: #eef5f8; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.editable-table textarea, .editable-table input, .editable-table select { width: 100%; min-height: 38px; padding: 7px 8px; color: #1d2a38; background: #fbfdff; border: 1px solid #ccd9e4; border-radius: 7px; outline: none; font: inherit; font-size: .76rem; resize: vertical; }
.editable-table textarea:focus, .editable-table input:focus, .editable-table select:focus { border-color: #2e6fae; box-shadow: 0 0 0 3px rgba(46,111,174,.13); }
.editable-table .delete-row { padding: 5px 7px; color: #8e4a4a; background: white; border: 1px solid #e7cccc; border-radius: 7px; cursor: pointer; font-size: .7rem; font-weight: 800; }
.editable-table .delete-row:hover { color: white; background: #a95656; }
.tool-footnote { margin: 17px 2px 0; color: #718395; font-size: .76rem; line-height: 1.45; }
.finding-list { display: grid; gap: 8px; margin-top: 12px; }
.finding { display: flex; gap: 9px; align-items: flex-start; padding: 10px 11px; background: white; border: 1px solid #dce9ef; border-radius: 8px; }
.finding-badge { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 23px; padding: 3px 7px; border-radius: 6px; font-size: .67rem; font-weight: 850; text-transform: uppercase; }
.finding-badge.ok { color: #286347; background: #e5f4ea; }
.finding-badge.review { color: #934747; background: #fbe8e8; }
.finding-badge.warn { color: #87621e; background: #fff3d5; }
.finding p { margin: 2px 0 0; color: #52677a; font-size: .78rem; line-height: 1.4; }
.period-toolbar { display: flex; flex-wrap: wrap; gap: 8px; padding: 20px 24px 0; }
.period-table { padding: 0 24px; }
.period-table table { width: 100%; min-width: 740px; margin-top: 13px; border-collapse: collapse; font-size: .76rem; }
.period-table th, .period-table td { padding: 8px; border: 1px solid #dce9ef; vertical-align: top; text-align: left; }
.period-table th { color: #607286; background: #eef5f8; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.period-table input { width: 100%; min-width: 82px; padding: 7px 8px; color: #1d2a38; background: #fbfdff; border: 1px solid #ccd9e4; border-radius: 7px; font: inherit; font-size: .76rem; }
.period-total { color: #10253f; font-weight: 850; white-space: nowrap; }
.period-summary { display: flex; justify-content: flex-end; padding: 13px 24px 0; color: #10253f; font-size: .94rem; font-weight: 850; }
.period-summary span { margin-left: 7px; color: #2e6fae; }
.audit-section { margin-top: 13px; padding: 12px; background: white; border: 1px solid #dce9ef; border-radius: 9px; }
.audit-section h4 { margin: 0 0 6px; color: #10253f; font-size: .78rem; }
.audit-section p { margin: 0; color: #607286; font-size: .76rem; }
@media (max-width: 760px) {
  .upload-area { grid-template-columns: 1fr; }
  .result-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .tool-main { padding-top: 23px; }
  .privacy-warning { padding: 15px; }
  .tool-heading { padding-left: 18px; padding-right: 18px; }
  .upload-area, .period-table { padding-left: 18px; padding-right: 18px; }
  .tool-help, .tool-status { margin-left: 18px; margin-right: 18px; }
  .tool-results { margin-left: 18px; margin-right: 18px; }
  .tool-actions, .period-toolbar { padding-left: 18px; padding-right: 18px; }
  .period-summary { padding-left: 18px; padding-right: 18px; }
}
