:root{--sidebar-width:210px;--color-sidebar-bg:#1a1a1a;--color-sidebar-text:#e6e6e6;--color-sidebar-text-dim:#9a9a9a;--color-sidebar-active-bg:#2c2c2c;--color-sidebar-border:#333;--color-bg:#efefef;--color-surface:#fff;--color-border:#e0e0e0;--color-table-header-bg:#f2f2f2;--color-table-row-hover:#fafafa;--color-text:#1a1a1a;--color-text-secondary:#6b6b6b;--color-text-muted:#9a9a9a;--color-primary:#1a1a1a;--color-primary-text:#fff;--color-tag-bg:#1a1a1a;--color-tag-text:#fff;--color-link:#1a1a1a;--font-sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "Apple SD Gothic Neo", "Segoe UI", sans-serif;--radius-sm:4px;--radius-md:6px;--shadow-card:0 1px 2px #0000000a;--color-tone-blue:#2f6fed;--color-tone-orange:#f5952b;--color-tone-orange-bg:#fdecd9;--color-tone-orange-border:#f0a94f;--color-tone-red:#ef5555;--color-tone-green:#22c55e;--color-tone-gray:#5b6270;--color-row-strikethrough-bg:#f2f2f2;--color-row-strikethrough-text:#9aa0a6}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}table{border-collapse:collapse;width:100%}.app-layout{background:var(--color-surface);flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.app-header-title{color:var(--color-text);font-size:20px;font-weight:700}.app-header-user{position:relative}.app-header-user-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:50%;width:32px;height:32px;font-size:15px}.app-header-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:10;min-width:120px;position:absolute;top:40px;right:0}.app-header-menu button{text-align:left;cursor:pointer;width:100%;color:var(--color-text);background:0 0;border:none;padding:10px 14px;font-size:13px}.app-header-menu button:hover{background:var(--color-table-row-hover)}.app-content{flex:1;min-width:0;padding:24px 32px 48px}.login-page{background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-brand{color:var(--color-text);letter-spacing:.5px;margin-bottom:28px;font-size:24px;font-weight:800}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:320px;max-width:100%;box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:24px;display:flex}.login-card-title{margin:0 0 4px;font-size:16px;font-weight:700}.login-field{flex-direction:column;gap:6px;display:flex}.login-field-label{color:var(--color-text-secondary);font-size:12px}.login-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:10px 12px;font-size:14px}.login-field input:focus{border-color:var(--color-text-muted);outline:none}.login-checkbox-row{gap:20px;margin-top:-4px;display:flex}.login-checkbox{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.login-checkbox input{cursor:pointer}.login-error{color:#e24b4a;margin:-6px 0 0;font-size:13px}.login-submit{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-text);cursor:pointer;border:none;margin-top:4px;padding:12px;font-size:14px;font-weight:700}.login-submit:disabled{cursor:default;background:#9a9a9a}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover{opacity:.85}.btn-ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover{background:var(--color-table-row-hover)}.btn:disabled{opacity:.4;cursor:default}.btn-tone-blue{background:var(--color-tone-blue);color:#fff;border-color:var(--color-tone-blue)}.btn-tone-orange{background:var(--color-tone-orange);color:#fff;border-color:var(--color-tone-orange)}.btn-tone-red{background:var(--color-tone-red);color:#fff;border-color:var(--color-tone-red)}.btn-tone-green{background:var(--color-tone-green);color:#fff;border-color:var(--color-tone-green)}.btn-tone-gray{background:var(--color-tone-gray);color:#fff;border-color:var(--color-tone-gray)}.btn-tone-blue:disabled,.btn-tone-orange:disabled,.btn-tone-red:disabled,.btn-tone-green:disabled,.btn-tone-gray:disabled{background:var(--color-table-header-bg);color:var(--color-text-muted);border-color:var(--color-border);opacity:1}.btn-ghost.btn-tone-blue,.btn-ghost.btn-tone-orange,.btn-ghost.btn-tone-red,.btn-ghost.btn-tone-green,.btn-ghost.btn-tone-gray{background:var(--color-surface)}.btn-ghost.btn-tone-blue{color:var(--color-tone-blue)}.btn-ghost.btn-tone-orange{color:var(--color-tone-orange)}.btn-ghost.btn-tone-red{color:var(--color-tone-red)}.btn-ghost.btn-tone-green{color:var(--color-tone-green)}.btn-ghost.btn-tone-gray{color:var(--color-tone-gray)}.pagination{color:var(--color-text-secondary);justify-content:flex-end;align-items:center;gap:16px;padding:12px 20px;font-size:13px;display:flex}.pagination-size{align-items:center;gap:6px;display:flex}.pagination-size select{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 6px;font-size:13px}.pagination-arrow{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;font-size:15px;line-height:1}.pagination-arrow:disabled{opacity:.35;cursor:default}.income-modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.income-modal-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;width:100%;max-width:1080px;height:88vh;padding:24px 28px;display:flex;overflow:hidden}.income-modal-header{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.income-modal-header h2{margin:0;font-size:20px;font-weight:700}.income-modal-close{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;font-size:24px;line-height:1}.income-modal-notice{background:var(--color-tone-orange-bg);border:1px solid var(--color-tone-orange-border);border-radius:var(--radius-sm);color:var(--color-text);margin-bottom:30px;padding:12px 16px;font-size:13px;line-height:1.6}.income-modal-body{flex:1;min-height:0;overflow-y:auto}.income-modal-center{flex-direction:column;justify-content:center;min-height:100%;display:flex}.income-modal-footer{border-top:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;margin-top:16px;padding-top:16px;display:flex}.income-modal-footer-link{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.income-modal-footer .btn:last-child{margin-left:auto}.income-main-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.income-main-col h3{text-align:center;margin:0 0 12px;font-size:16px;font-weight:700}.income-main-list{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.income-main-row{cursor:pointer;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:18px;font-size:17px;line-height:1.8;display:flex}.income-main-row:last-child{border-bottom:none}.income-main-row:hover{background:var(--color-table-row-hover)}.income-main-row-selected{background:var(--color-tone-orange-bg);font-weight:700}.income-main-desc-btn{color:var(--color-tone-blue);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:15px;font-weight:700}.income-compare-grid{grid-template-columns:2fr 1fr 1fr 1fr 1fr;align-items:stretch;gap:20px;display:grid}.income-compare-header h3{text-align:center;margin:0 0 8px;font-size:15px;font-weight:700}.income-compare-desc-row{justify-content:space-between;align-items:flex-end;gap:8px;min-height:36px;margin-bottom:4px;display:flex}.income-compare-desc{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.6}.income-compare-example-btn{color:var(--color-tone-blue);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;font-size:13px;font-weight:700}.income-compare-example-list{border-radius:var(--radius-sm);color:var(--color-text-secondary);background:#dff6f5;border:1px solid #9edcda;margin:0 0 10px;padding:12px 16px 12px 30px;font-size:13px;line-height:1.7}.income-compare-card{border:1px solid var(--color-tone-red);border-radius:var(--radius-sm);cursor:pointer;padding:16px 18px}.income-compare-card:hover{background:var(--color-table-row-hover)}.income-compare-card-title{text-align:center;margin-bottom:12px;font-size:16px;font-weight:700}.income-compare-card-attrs{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.income-compare-card-attrs li{align-items:center;gap:8px;font-size:14px;display:flex}.income-compare-attr-label{color:var(--color-text-secondary);flex:1}.income-attr-o{color:var(--color-tone-blue);font-weight:700}.income-attr-x{color:var(--color-tone-red);font-weight:700}.income-compare-card-desc-link{color:var(--color-tone-blue);font-size:14px;font-weight:700}.income-detail-title{margin:0 0 12px;font-size:20px;font-weight:700}.income-detail-divider{border:none;border-top:1px solid var(--color-border);margin:0 0 16px}.income-detail-content{color:var(--color-text);font-size:13px;line-height:1.7}.income-detail-content .alert{border-radius:var(--radius-sm);border:1px solid #0000;margin:0 0 14px;padding:12px 16px}.income-detail-content .alert-danger{color:#a12622;background:#fdecea;border-color:#f5c6cb}.income-detail-content .alert-warning{color:#7a5c00;background:#fff8e1;border-color:#ffe08a}.income-detail-content .alert-success{color:#1e6b3c;background:#e8f7ee;border-color:#b6e6c9}.income-detail-content .alert-info{color:#1a4f80;background:#e8f2fd;border-color:#b9d9f7}.income-detail-content .alert-primary{color:#1d3f9e;background:#eaf0ff;border-color:#c3d4fb}.income-detail-content .alert-secondary{background:var(--color-table-header-bg);border-color:var(--color-border);color:var(--color-text-secondary)}.income-detail-content table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:13px}.income-detail-content table.table-bordered th,.income-detail-content table.table-bordered td{border:1px solid var(--color-border);padding:8px 10px}.income-detail-content thead.table-light th{background:var(--color-table-header-bg)}.income-detail-content th{text-align:left;background:var(--color-table-header-bg);font-weight:600}.income-detail-content .text-center{text-align:center}.income-detail-content .text-muted{color:var(--color-text-muted);font-weight:400}.income-detail-content .text-danger{color:var(--color-tone-red)}.income-detail-content .card{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:0 0 14px;overflow:hidden}.income-detail-content .card.border-warning{border-color:#ffe08a}.income-detail-content .card.border-primary{border-color:#c3d4fb}.income-detail-content .card-header{border-bottom:1px solid var(--color-border);padding:10px 14px;font-size:13px}.income-detail-content .card-header.bg-warning{background:#fff8e1}.income-detail-content .card-body{padding:12px 14px;font-size:13px;line-height:1.7}.income-detail-content ul,.income-detail-content ol{margin:0 0 14px;padding-left:20px;line-height:1.7}.income-detail-content ul:last-child,.income-detail-content ol:last-child,.income-detail-content .mb-0{margin-bottom:0}.income-detail-content li{margin-bottom:4px}.income-detail-content h4,.income-detail-content h5{margin:18px 0 10px;font-size:15px;font-weight:700}.income-detail-content h4:first-child,.income-detail-content h5:first-child{margin-top:0}.income-detail-content p{margin:0 0 10px}.income-detail-content .mt-2{margin-top:8px}.income-detail-content .mt-3{margin-top:14px}.income-detail-content .mt-4{margin-top:18px}.income-detail-content .mb-2{margin-bottom:8px}.income-detail-content .mb-3{margin-bottom:14px}.income-detail-content .my-2{margin-top:8px;margin-bottom:8px}.income-detail-content hr{border:none;border-top:1px solid var(--color-border)}.income-detail-content small{font-size:12px}@media (width<=900px){.income-main-grid,.income-compare-grid{grid-template-columns:1fr}.income-compare-header,.income-compare-card{grid-column:1!important}}.submit-method-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.submit-method-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;gap:14px;width:100%;max-width:420px;padding:24px;display:flex}.submit-method-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.submit-method-header h2{margin:0;font-size:17px;font-weight:700}.submit-method-close{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;font-size:20px;line-height:1}.submit-method-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;text-align:left;border:none;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;display:flex}.submit-method-btn strong{font-size:14px;font-weight:700}.submit-method-btn span{opacity:.9;font-size:12px}.submit-method-btn:disabled{opacity:.5;cursor:default;text-decoration:line-through}.submit-method-btn-blue{background:var(--color-tone-blue)}.submit-method-btn-green{background:var(--color-tone-green)}.submit-method-btn-gray{background:var(--color-tone-gray)}.main-list-table{border-collapse:collapse;width:100%;font-size:13px}.main-list-table thead th{background:var(--color-table-header-bg);border:1px solid var(--color-border);white-space:nowrap;text-align:center;padding:8px 6px;font-weight:600}.main-list-table-group-row th{font-size:13px}.main-list-table-group-basic{border-right:2px solid var(--color-border)}.main-list-table-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.main-list-table-sortable:hover{background:var(--color-table-row-hover)}.main-list-table td{border:1px solid var(--color-border);text-align:center;white-space:nowrap;padding:6px}.main-list-table-checkbox-col{width:32px}.main-list-table-row td input{border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;width:100%;min-width:60px;padding:4px 6px;font-size:13px}.main-list-table-row td input.main-list-table-input-invalid{border-color:var(--color-tone-red);background-color:#ffe5e5}.main-list-table-input-wrap{flex-direction:column;align-items:stretch;gap:2px;display:flex}.main-list-table-input-error-msg{color:var(--color-tone-red);white-space:normal;text-align:left;font-size:11px;line-height:1.3}.main-list-table-income-cell{line-height:1.4}.main-list-table-income-sub{color:var(--color-text-secondary);font-size:11px}.main-list-table-row-editing{background:var(--color-tone-orange-bg)}.main-list-table-row-editing td{border-color:var(--color-tone-orange-border)}.main-list-table-row-history{background:var(--color-row-strikethrough-bg);color:var(--color-row-strikethrough-text);text-decoration:line-through}.main-list-table-empty{color:var(--color-text-muted);padding:40px 0}.main-list-page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.main-list-page-toolbar-left,.main-list-page-toolbar-right{align-items:center;gap:8px;display:flex}.main-list-page-status-badge{border:1px solid var(--color-tone-orange);color:var(--color-tone-orange);background:var(--color-surface);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.main-list-page-status-badge.is-initial,.main-list-page-status-badge.is-unknown{border-color:var(--color-tone-gray);color:var(--color-tone-gray)}.main-list-page-status-badge.is-review{border-color:var(--color-tone-blue);color:var(--color-tone-blue)}.main-list-page-status-badge.is-rejected{border-color:var(--color-tone-red);color:var(--color-tone-red)}.main-list-page-status-badge.is-done{border-color:var(--color-tone-green);color:var(--color-tone-green)}.main-list-page-opinion{color:var(--color-tone-red);text-align:right;margin:-4px 0 12px;font-size:13px}.main-list-page-error{color:var(--color-tone-red);margin:0 0 12px;font-size:13px}.main-list-page-loading{text-align:center;color:var(--color-text-muted);padding:40px 0}.main-list-page-status-line{text-align:center;color:var(--color-text-secondary);margin-top:24px;font-size:13px}.history-grouped-table{border-collapse:collapse;width:100%;margin-bottom:32px;font-size:13px}.history-grouped-table thead th{background:var(--color-table-header-bg);border:1px solid var(--color-border);white-space:nowrap;text-align:center;padding:8px 6px;font-weight:600}.history-grouped-table-group-basic{border-right:2px solid var(--color-border)}.history-grouped-table td{border:1px solid var(--color-border);text-align:center;white-space:nowrap;padding:6px}.history-grouped-table-submit-o{color:var(--color-tone-blue);font-weight:700}.history-grouped-table-submit-x{color:var(--color-text-muted)}.history-grouped-table-empty{color:var(--color-text-muted);padding:40px 0}.history-page-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.history-page-header h1{margin:0;font-size:20px;font-weight:700}.history-page-close{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;font-size:14px}.history-page-toolbar{justify-content:flex-end;margin-bottom:16px;display:flex}.history-page-error{color:var(--color-tone-red);font-size:13px}.history-page-loading{text-align:center;color:var(--color-text-muted);padding:40px 0}.access-key-entry-page{background:var(--color-bg);min-height:100vh;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}
