#authGate { position:fixed; inset:0; z-index:10000; background:#f8f9fa; display:flex; align-items:center; justify-content:center; padding:24px; }
#authGate[hidden], #officeApp[hidden], [hidden] { display:none !important; }
.login-card { box-sizing:border-box; width:min(460px,100%); background:white; padding:32px; max-width:460px; border:1px solid #dadce0; border-radius:12px; box-shadow:0 6px 30px #20212412; }
.login-card h1 { font-size:26px; margin:0 0 20px; }
.login-card p { line-height:1.8; white-space:pre-line; }
.login-card form { display:grid; gap:10px; min-width:min(360px,78vw); }
.login-card label { color:#3c4043; font-size:14px; font-weight:600; }
.login-card input { box-sizing:border-box; width:100%; height:44px; padding:0 12px; border:1px solid #dadce0; border-radius:6px; font:inherit; }
.login-card input:focus { outline:2px solid #1a73e8; outline-offset:1px; border-color:#1a73e8; }
.login-card button, #sessionBar button { padding:10px 18px; border:0; border-radius:6px; cursor:pointer; background:#1a73e8; color:white; }
.login-card button:disabled { opacity:.55; cursor:wait; }
#sessionBar { display:flex; align-items:center; justify-content:flex-end; gap:16px; padding:12px 24px; }
#sessionBar #accountManager { background:#5f6368; }
.account-modal { width:min(900px,94vw); max-height:88vh; }
.account-modal h4 { margin:0 0 8px; font-size:24px; }
.account-modal h5 { margin:8px 0 14px; font-size:17px; }
.account-help { color:#5f6368; margin:0 0 20px; }
.account-layout { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr); gap:28px; }
.account-list { display:grid; gap:8px; max-height:430px; overflow:auto; }
.account-list button { display:flex; justify-content:space-between; gap:12px; width:100%; padding:12px; border:1px solid #dadce0; border-radius:6px; background:#fff; color:#202124; cursor:pointer; text-align:left; }
.account-list button:hover, .account-list button.selected { background:#e8f0fe; border-color:#8ab4f8; }
.account-list small { color:#5f6368; white-space:nowrap; }
#accountForm { display:grid; gap:8px; }
#accountForm label:not(.account-active) { color:#3c4043; font-size:13px; font-weight:600; }
#accountForm input[type=text], #accountForm input[type=password] { box-sizing:border-box; width:100%; height:42px; margin:0 0 6px; padding:0 10px; border:1px solid #dadce0; border-radius:5px; box-shadow:none; }
#accountForm select { margin-bottom:6px; }
.account-active { margin:6px 0; }
#accountStatus { min-height:22px; color:#5f6368; }
#accountStatus.error { color:#d93025; }
#accountStatus.success { color:#137333; }
.account-actions { display:flex; justify-content:flex-end; gap:10px; }
.excel-panel { margin:0 0 24px; padding:18px; border:1px solid #d2e3fc; border-radius:10px; background:#f8fbff; }
.excel-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:14px; }
.excel-panel-heading h5, .excel-panel-heading h6 { margin:0 0 6px; color:#202124; font-weight:600; }
.excel-panel-heading p { margin:0; color:#5f6368; line-height:1.55; }
.excel-outline-button { border:1px solid #1a73e8 !important; border-radius:5px !important; color:#1a73e8 !important; white-space:nowrap; }
.excel-upload-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.excel-upload-row label.btn { cursor:pointer; }
#batchInboundFileName { flex:1; min-width:180px; color:#5f6368; overflow-wrap:anywhere; }
.excel-status { margin-top:14px; min-height:22px; color:#5f6368; line-height:1.55; }
.excel-status.success { color:#137333; font-weight:600; }
.excel-status.error { color:#d93025; font-weight:600; }
.excel-preview { margin-top:14px; overflow:auto; max-height:360px; border:1px solid #dadce0; border-radius:6px; background:#fff; }
.excel-preview table { min-width:720px; }
.excel-preview td, .excel-preview th { padding:9px 10px; text-align:left; font-size:13px; }
.export-card h5 { margin:0; }
.export-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:14px; }
.export-filter-grid label { color:#3c4043; font-size:12px; font-weight:600; }
.export-filter-grid input, .export-filter-grid select { box-sizing:border-box !important; width:100% !important; height:42px !important; margin:6px 0 0 !important; padding:0 10px !important; border:1px solid #dadce0 !important; border-radius:5px !important; box-shadow:none !important; background:#fff; }
.export-option-block { margin-top:20px; padding-top:16px; border-top:1px solid #e8eaed; }
.export-option-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.export-option-title { margin-bottom:10px; color:#3c4043; font-size:13px; font-weight:600; }
.export-check-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px 12px; }
.export-check-grid.fields { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); }
.export-check { display:flex; align-items:center; gap:7px; min-height:32px; color:#3c4043; font-size:13px; }
.export-check input { position:static !important; opacity:1 !important; pointer-events:auto !important; width:16px; height:16px; margin:0; }
.export-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:22px; }
.export-preview { max-height:520px; }
.export-preview table { min-width:max-content; }
@media(max-width:760px) { #authGate { padding:16px; } .login-card { padding:24px 20px; } .login-card form { min-width:0; } .login-card button { min-height:44px; } .container { flex-direction:column; } .sidebar { width:100%; } .main-content { width:100%; min-width:0; } #sessionBar { gap:8px; padding:10px 12px; } .account-layout { grid-template-columns:1fr; } }
@media(max-width:1100px) { .export-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .excel-panel-heading { display:block; } .excel-panel-heading button { margin-top:12px; } .excel-upload-row > * { width:100%; } .export-filter-grid { grid-template-columns:1fr; } .export-option-heading { display:block; } .export-actions { display:grid; } }
.option-manager-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.option-manager-heading h5 { margin:0 0 8px; }
.option-manager-heading p,.option-category-card p { margin:0; color:#5f6368; line-height:1.5; }
.option-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.option-category-card { min-width:0; padding:18px; border:1px solid #dadce0; border-radius:10px; background:#fff; }
.option-category-card h6 { margin:0 0 5px; color:#202124; font-weight:600; }
.option-category-card > p { min-height:42px; font-size:13px; }
.option-item-list { display:grid; gap:8px; margin-top:14px; }
.option-item-row { display:grid; grid-template-columns:minmax(0,1fr) 38px 38px 58px; align-items:center; gap:6px; }
.option-item-row.protected { grid-template-columns:minmax(0,1fr) auto 38px 38px; }
.option-item-row input,.option-add-row input { box-sizing:border-box !important; height:38px !important; margin:0 !important; padding:0 10px !important; border:1px solid #dadce0 !important; border-radius:6px !important; box-shadow:none !important; background:#fff !important; }
.option-item-row input:focus,.option-add-row input:focus { border-color:#1a73e8 !important; box-shadow:0 0 0 2px rgba(26,115,232,.12) !important; }
.option-item-row input[readonly] { color:#5f6368; background:#f8f9fa !important; }
.option-protected-badge { padding:4px 7px; border-radius:999px; background:#e8f0fe; color:#1a73e8; font-size:11px; white-space:nowrap; }
.option-icon-button,.option-remove-button { min-width:0; height:36px; padding:0 7px; line-height:36px; }
.option-remove-button { color:#d93025; }
.option-add-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:12px; }
.option-manager-actions { display:flex; justify-content:flex-end; margin-top:22px; }
@media(max-width:900px) { .option-category-grid { grid-template-columns:1fr; } }
@media(max-width:760px) { .option-manager-heading { display:block; } .option-manager-heading button { margin-top:12px; } .option-category-card { padding:14px; } .option-item-row { grid-template-columns:minmax(0,1fr) 36px 36px; } .option-item-row .option-remove-button { grid-column:1 / -1; border:1px solid #f4c7c3; } .option-item-row.protected { grid-template-columns:minmax(0,1fr) auto 36px 36px; } }
