.page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 20px}
.page-header .eyebrow{margin:0}
.page-header h1{margin:4px 0 0;font-size:30px;line-height:1.3}
.page-header .muted{margin:6px 0 0}
.login-card>p.muted{display:none}
.eyebrow{font-size:12px;color:var(--muted)}
i.me-1,i.me-2{display:inline-flex;width:1.25rem;justify-content:center;vertical-align:middle}
.app-btn{min-height:44px;border:1px solid transparent;border-radius:8px;padding:9px 14px;cursor:pointer}
.app-btn-primary{background:#0d6efd;border-color:#0d6efd;color:#fff}
.app-btn-primary:hover,.app-btn-primary:focus-visible{background:#0b5ed7;border-color:#0a58ca;color:#fff}
.app-btn-secondary{background:#eef0f2;border-color:#d8dde2;color:#27323d}
.app-btn-secondary:hover,.app-btn-secondary:focus-visible{background:#dde2e7;border-color:#c7cdd4;color:#1d2730}
.app-btn-success{background:#2f7148;border-color:#2f7148;color:#fff}
.app-btn-success:hover,.app-btn-success:focus-visible{background:#245a39;border-color:#245a39;color:#fff}
.app-btn-resume{background:#16806d;border-color:#16806d;color:#fff}
.app-btn-resume:hover,.app-btn-resume:focus-visible{background:#10675a;border-color:#10675a;color:#fff}
.app-btn-warning{background:#8a5a12;border-color:#8a5a12;color:#fff}
.app-btn-warning:hover,.app-btn-warning:focus-visible{background:#6f480e;border-color:#6f480e;color:#fff}
.app-btn-return{background:#46586d;border-color:#46586d;color:#fff}
.app-btn-return:hover,.app-btn-return:focus-visible{background:#354456;border-color:#354456;color:#fff}
.app-btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.app-btn-danger:hover,.app-btn-danger:focus-visible{background:#82322f;border-color:#82322f;color:#fff}
.app-btn-report{background:#a96d12;border-color:#a96d12;color:#fff}
.app-btn-report:hover,.app-btn-report:focus-visible{background:#87570e;border-color:#87570e;color:#fff}
.app-btn-verify{background:#5964a8;border-color:#5964a8;color:#fff}
.app-btn-verify:hover,.app-btn-verify:focus-visible{background:#454f8d;border-color:#454f8d;color:#fff}
.app-btn-update{background:#157a6e;border-color:#157a6e;color:#fff}
.app-btn-update:hover,.app-btn-update:focus-visible{background:#106258;border-color:#106258;color:#fff}
.app-btn-submit-review{background:#8a5aa3;border-color:#8a5aa3;color:#fff}
.app-btn-submit-review:hover,.app-btn-submit-review:focus-visible{background:#704886;border-color:#704886;color:#fff}
.app-btn-create{background:#0d6efd;border-color:#0d6efd;color:#fff}
.app-btn-create:hover,.app-btn-create:focus-visible{background:#0b5ed7;border-color:#0a58ca;color:#fff}
.app-btn-edit{background:#256fa7;border-color:#256fa7;color:#fff}
.app-btn-edit:hover,.app-btn-edit:focus-visible{background:#1d5885;border-color:#1d5885;color:#fff}
.app-btn-view{background:#3f5368;border-color:#3f5368;color:#fff}
.app-btn-view:hover,.app-btn-view:focus-visible{background:#304152;border-color:#304152;color:#fff}
.app-btn-export{background:#2f7148;border-color:#2f7148;color:#fff}
.app-btn-export:hover,.app-btn-export:focus-visible{background:#245a39;border-color:#245a39;color:#fff}
.app-btn-upload{background:#157a6e;border-color:#157a6e;color:#fff}
.app-btn-upload:hover,.app-btn-upload:focus-visible{background:#106258;border-color:#106258;color:#fff}
.app-btn-activate{background:#238052;border-color:#238052;color:#fff}
.app-btn-activate:hover,.app-btn-activate:focus-visible{background:#1b643f;border-color:#1b643f;color:#fff}
.app-btn-unlock{background:#16758c;border-color:#16758c;color:#fff}
.app-btn-unlock:hover,.app-btn-unlock:focus-visible{background:#115c6e;border-color:#115c6e;color:#fff}
.app-btn-reset{background:#6b4b95;border-color:#6b4b95;color:#fff}
.app-btn-reset:hover,.app-btn-reset:focus-visible{background:#563c78;border-color:#563c78;color:#fff}
.grid{display:grid;gap:16px}
.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.metric{font-size:28px;font-weight:400;color:var(--primary);margin-top:8px}
.cards .card:nth-child(2) .metric{color:var(--emphasis)}
.cards .card:nth-child(3) .metric{color:var(--info)}
.cards .card:nth-child(4) .metric{color:var(--success)}
.status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 auto;border-radius:99px;padding:4px 8px;font-size:12px;text-align:center}
.status.info{background:#eceefa;color:var(--info)}
.status.warning{background:#fff3dd;color:var(--warning)}
.status.danger{background:#fbe9e6;color:var(--danger)}
.status.success{background:#e7f3e9;color:var(--success)}
.table-wrap{overflow:auto}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
.table th{color:var(--table-heading);background:var(--table)}
.filterbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.field{border:1px solid var(--border);border-radius:8px;min-height:44px;padding:9px;background:var(--surface);color:var(--ink)}
.field:focus{outline:0;border-color:var(--content-accent);box-shadow:0 0 0 3px #157a6e26}
textarea.no-resize{resize:none}
.searchable-select-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.searchable-select-wrapper{position:relative;min-width:180px;flex:1}
.searchable-select-input{width:100%;padding-right:38px}
.searchable-select-wrapper::after{content:'\f078';position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);font:900 12px 'Font Awesome 6 Free';pointer-events:none}
.searchable-select-wrapper.active::after{content:'\f077';color:var(--primary)}
.searchable-select-dropdown{position:absolute;z-index:1060;top:calc(100% + 6px);left:0;right:0;max-height:220px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:none}
.searchable-select-wrapper.active .searchable-select-dropdown{display:block}
.searchable-select-wrapper.opens-up .searchable-select-dropdown{top:auto;bottom:calc(100% + 6px)}
.searchable-option{width:100%;border:0;background:transparent;color:var(--ink);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;text-align:left;font:inherit;cursor:pointer}
.searchable-option:hover,.searchable-option.selected{background:#ebf6f4;color:var(--primary)}
.searchable-option:focus-visible{outline:3px solid var(--content-accent);outline-offset:-3px;background:#ebf6f4;color:var(--primary)}
.searchable-option.no-result{color:var(--muted);justify-content:center;cursor:default}
.identity-modal{width:min(560px,calc(100% - 32px));padding:22px;border:0;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.identity-modal::backdrop{background:#27322d88}
.identity-modal-header{display:flex;align-items:start;justify-content:space-between;gap:16px}
.identity-modal-header h2{margin:2px 0 0}
.modal-icon-close{display:inline-grid;place-items:center;flex:0 0 auto;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:18px;cursor:pointer}
.modal-icon-close:hover,.modal-icon-close:focus-visible{background:#eef0f2;color:var(--ink)}
.modal-icon-close:focus-visible{outline:2px solid var(--content-accent);outline-offset:2px}
.identity-role-list{display:grid;gap:10px;margin-top:16px}
.identity-role{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;text-align:left;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--ink);padding:13px 14px;font:inherit;cursor:pointer}
.identity-role-name{grid-column:1;grid-row:1}
.identity-role [data-identity-role-description]{grid-column:1;grid-row:2;color:var(--muted);font-size:13px}
.identity-role:hover{border-color:var(--primary);background:#ebf6f4}
.identity-role:disabled{cursor:default;border-color:var(--primary);background:#ebf6f4;color:var(--primary)}
.identity-role:disabled [data-identity-role-description]{color:var(--primary)}
.identity-role [data-current-identity]{grid-column:2;grid-row:1;align-self:center;color:var(--primary);font-size:12px}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;overflow:auto}
.kanban-col{background:#f0f2ed;border-radius:10px;padding:12px;min-height:340px}
.task-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;margin:10px 0;font-size:14px}
dialog{border:0;border-radius:var(--radius);box-shadow:var(--shadow);max-width:520px;width:calc(100% - 32px)}
dialog::backdrop{background:#27322d88}
dialog.modal-scroll-layout{box-sizing:border-box;max-height:min(680px,calc(100dvh - 64px),80dvh);padding:0;overflow:hidden}
dialog.modal-scroll-layout[open]{display:flex;flex-direction:column}
.modal-scroll-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:0 0 auto;padding:24px 24px 0}
.modal-scroll-body{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 24px}
.modal-scroll-body>*{margin-top:0!important;margin-bottom:0!important}
.modal-scroll-footer{flex:0 0 auto;padding:0 24px 24px}
/* Modal 功能列依系統規範統一靠右；右上角 X 已承擔關閉，不再加入重複取消按鈕。 */
.modal-scroll-footer.modal-actions,.modal-scroll-footer.confirmation-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:0}
/* 清單頁共用搜尋與篩選列：帳號管理、專案檢視採用同一版型。 */
.list-toolbar-panel{padding:14px 18px}.list-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-search{position:relative;display:flex;align-items:center;flex:1 1 320px;min-width:240px}.list-search>i{position:absolute;z-index:1;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.list-search .field{width:100%;padding-left:40px}.list-toolbar select{flex:0 1 168px;min-width:150px}@media(max-width:760px){.list-toolbar>*{width:100%;flex-basis:100%}.list-toolbar select{min-width:0}}
.list-empty-state{margin:0;padding:18px 16px;color:var(--muted);font-size:14px;line-height:1.6;text-align:center}.list-empty-state td{padding:20px 16px;color:var(--muted);font-size:14px;line-height:1.6;text-align:center}
