:root{--rotary-blue:#174d7d;--rotary-gold:#e3ae39;--ink:#233648;--muted:#687b8c;--line:#e3e9ef;--bs-primary:#174d7d;--bs-primary-rgb:23,77,125}
body{font-family:system-ui,-apple-system,"Segoe UI","Microsoft JhengHei",sans-serif;background:#f5f7fa;color:var(--ink);font-size:15px;line-height:1.65}a{color:var(--rotary-blue);text-decoration:none}a:hover{text-decoration:underline}.site-header{background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:750;color:var(--rotary-blue)}.brand:hover{text-decoration:none}.brand small{display:block;font-size:.7rem;font-weight:400;color:var(--muted);letter-spacing:.06em}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border:3px solid var(--rotary-gold);border-radius:50%;font-size:1.7rem;line-height:1}.nav-link{padding:.5rem .7rem;border-radius:6px;color:var(--muted)}.nav-link.active{background:#edf3f9;color:var(--rotary-blue)}.btn-primary{--bs-btn-bg:#174d7d;--bs-btn-border-color:#174d7d;--bs-btn-hover-bg:#123e64;--bs-btn-hover-border-color:#123e64}.btn-outline-primary{--bs-btn-color:#174d7d;--bs-btn-border-color:#174d7d;--bs-btn-hover-bg:#174d7d;--bs-btn-hover-border-color:#174d7d}.btn{font-size:.9rem}.access-notice{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 16px;border-left:3px solid var(--rotary-gold);background:#fff9e9;color:#715921;font-size:.8rem}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px}.eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.16em;color:var(--muted);margin-bottom:5px}h1{font-size:1.8rem;font-weight:750;margin-bottom:8px}h2{font-size:1.08rem;font-weight:700;margin-bottom:20px}.panel,.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 2px 6px #23364803}.metric-card{padding:20px}.metric-card p{font-size:.82rem;color:var(--muted);margin-bottom:8px}.metric-card strong{font-size:2rem;line-height:1.1;font-weight:700}.table>:not(caption)>*>*{padding:14px 10px;border-bottom-color:var(--line)}.table thead th{font-size:.75rem;color:var(--muted);font-weight:600;background:#f9fafc;white-space:nowrap}.table tbody td{font-size:.88rem}.empty-state{padding:26px;text-align:center;color:var(--muted);background:#fafbfd;border-radius:8px;font-size:.9rem}.category-list a{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:.9rem}.category-list a:last-child{border-bottom:0}.cost{font-variant-numeric:tabular-nums;font-weight:600}.status-badge{display:inline-block;padding:3px 10px;border-radius:30px;background:#edf0f3;color:#5c6d7c;font-size:.75rem;white-space:nowrap}.status-badge[data-status="登入成功"]{background:#e4f4ec;color:#23784a}.status-badge[data-status="需要 MFA"]{background:#fff1cd;color:#916819}.status-badge[data-status="登入失敗"],.status-badge[data-status="需要復原"]{background:#fde7e6;color:#ab3b35}.section-number{display:inline-grid;place-items:center;width:29px;height:29px;background:#edf3f9;color:var(--rotary-blue);border-radius:7px;font-size:.72rem;margin-right:9px}.form-label{font-size:.85rem;font-weight:600}.form-control,.form-select{border-color:#d7dfe7;font-size:.9rem;padding:.6rem .75rem}.form-control:focus,.form-select:focus{border-color:#789dbc;box-shadow:0 0 0 .2rem #174d7d15}.form-text{font-size:.75rem}.save-bar{display:flex;justify-content:flex-end;gap:12px;padding:16px 0 24px}.secret-input{-webkit-text-security:disc}dt{font-size:.75rem;color:var(--muted);font-weight:500;margin-bottom:5px}dd{font-size:.9rem;margin-bottom:0;white-space:pre-wrap;overflow-wrap:anywhere}.secret-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.secret-info{min-width:0}.secret-info strong{display:block;font-size:.78rem;font-weight:500;color:var(--muted);margin-bottom:3px}.secret-value{font-family:ui-monospace,monospace;font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}.secret-toggle{flex-shrink:0}.upload-box{padding:18px;background:#f8fafc;border:1px dashed #c7d5e0;border-radius:8px}.attachment-card{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:12px;overflow-wrap:anywhere}summary{cursor:pointer;color:var(--rotary-blue)}.subscription-price{font-size:1.6rem;font-weight:700;margin-bottom:24px}.subscription-price small{display:block;font-size:.8rem;font-weight:400;color:var(--muted)}.danger-panel{border-color:#edd3d1}.danger-panel h2{color:#a44039}footer{font-size:.72rem!important}@media(max-width:767px){.panel{padding:18px}.metric-card{padding:16px}h1{font-size:1.5rem}.brand{font-size:1rem}.page-heading{align-items:flex-start}.site-header nav{width:100%;justify-content:flex-end}.access-notice{font-size:.75rem}footer span{float:none!important;display:block}}
.auth-container{display:flex;justify-content:center;padding:48px 0 72px}.auth-panel{width:100%;max-width:460px;padding:32px}.auth-panel h1{font-size:1.5rem}.member-form{max-width:800px}.site-header nav .small{max-width:240px;overflow-wrap:anywhere}@media(max-width:767px){.auth-container{padding:20px 0 40px}.auth-panel{padding:24px}.site-header nav{justify-content:flex-start}}
/* App shell: persistent desktop navigation, collapsible mobile navigation. */
.app-sidebar{--bs-offcanvas-width:264px;width:264px;background:#fff!important;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1045}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:28px 20px 24px;border-bottom:1px solid var(--line)}.sidebar-brand .brand{font-size:1.06rem;gap:10px;white-space:nowrap}.sidebar-brand .brand small{font-size:.63rem}.sidebar-brand .brand-mark{width:37px;height:37px;font-size:1.45rem;flex-shrink:0}.sidebar-body{padding:26px 16px;flex:1;overflow-y:auto}.sidebar-caption{font-size:.7rem;font-weight:600;letter-spacing:.12em;color:#8b99a6;margin:0 12px 12px}.sidebar-nav{display:flex;flex-direction:column;gap:7px}.sidebar-nav .nav-link{display:flex;align-items:center;gap:13px;padding:12px 14px;font-size:.92rem;border-radius:8px;font-weight:500}.sidebar-nav .nav-link:hover{background:#f3f6f9;text-decoration:none}.sidebar-nav .nav-link.active{background:#eaf1f8;color:#174d7d;font-weight:700;box-shadow:inset 3px 0 0 #174d7d}.sidebar-nav .nav-link>span{width:20px;text-align:center;font-size:1.25rem;line-height:1}.sidebar-account{border-top:1px solid var(--line);padding:20px;margin-top:auto}.account-link{display:flex;align-items:center;gap:11px;padding:6px;border-radius:8px;color:var(--ink)}.account-link:hover,.account-link.active{background:#edf3f9;text-decoration:none}.account-avatar{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#edf3f9;color:#174d7d;font-weight:700}.account-info{min-width:0}.account-info strong{display:block;font-size:.85rem}.account-info small{display:block;font-size:.7rem;color:var(--muted);overflow-wrap:anywhere}.search-topbar{background:#fff;border-bottom:1px solid var(--line);padding:19px 12px;position:sticky;top:0;z-index:1020}.global-search{display:flex;align-items:center;gap:10px;width:100%;max-width:690px;background:#f5f7fa;border:1px solid var(--line);border-radius:9px;padding:6px 7px 6px 14px}.global-search:focus-within{border-color:#789dbc;box-shadow:0 0 0 3px #174d7d0c}.global-search input{background:transparent;border:0;outline:0;min-width:0;flex:1;font-size:.85rem;color:var(--ink);padding:4px}.global-search .btn{flex-shrink:0;padding:5px 17px}.search-icon{font-size:1.45rem;color:#8194a5;line-height:1}.app-workspace>main,.app-workspace>footer{padding-left:32px;padding-right:32px}.sidebar-toggle{padding:6px 10px;font-size:1.1rem;flex-shrink:0}@media(min-width:992px){.app-sidebar{position:fixed;top:0;bottom:0;left:0;height:100dvh}.app-workspace{margin-left:264px;min-height:100vh}.app-sidebar.offcanvas-lg{display:flex!important}.search-topbar{padding-left:20px;padding-right:20px}}@media(max-width:991.98px){.app-sidebar{height:100dvh}.sidebar-brand{padding:24px 18px}.app-workspace>main,.app-workspace>footer{padding-left:18px;padding-right:18px}.search-topbar{padding:12px 6px}.global-search{gap:5px;padding-left:9px}.global-search input{font-size:.8rem}.global-search .btn{padding:5px 11px}.search-icon{display:none}}
