:root{color:#20231f;font-synthesis:none;text-rendering:optimizelegibility;--green-900:#124a31;--green-800:#175f3c;--green-700:#24764b;--green-100:#e8f0e9;--green-50:#f3f7f3;--ink:#20231f;--muted:#70756f;--line:#dedfd9;--surface:#fffefa;--canvas:#fbfaf6;--danger:#a54039;background:#fbfaf6;font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{-webkit-font-smoothing:antialiased;min-height:100vh}button,input,textarea,select{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}.auth-page{background:var(--canvas);place-items:center;min-height:100vh;padding:32px;display:grid}.auth-shell{background:var(--surface);border:1px solid var(--line);border-radius:18px;grid-template-columns:42% 58%;width:min(980px,100%);min-height:620px;display:grid;overflow:hidden;box-shadow:0 24px 70px #1a322217}.auth-aside{color:#f9fff9;background:#174e35;flex-direction:column;justify-content:space-between;padding:42px;display:flex}.auth-aside h1{letter-spacing:-.04em;max-width:360px;margin:16px 0 14px;font-size:40px;line-height:1.2}.auth-aside p{color:#d5e5d9;margin:0;font-size:16px;line-height:1.8}.auth-eyebrow,.modal-eyebrow{color:#84ac91;letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:700}.auth-proof{color:#d5e5d9;align-items:center;gap:10px;font-size:13px;display:flex}.auth-proof svg{color:#8ec9a3;font-size:20px}.auth-card{align-items:center;padding:64px 78px;display:grid}.auth-form{gap:18px;display:grid}.auth-form h2{letter-spacing:-.025em;margin:0;font-size:28px}.auth-form .muted{margin:-8px 0 8px}.muted{color:var(--muted);line-height:1.65}.centered{text-align:center}.brand{white-space:nowrap;align-items:center;gap:12px;height:48px;display:flex}.brand svg{width:38px;height:38px;color:var(--green-700)}.brand strong{letter-spacing:.08em;font-family:Noto Serif CJK SC,Songti SC,serif;font-size:28px}.auth-aside .brand svg,.auth-aside .brand strong{color:#fff}.field{gap:8px;font-size:14px;font-weight:600;display:grid}.field input,.field textarea,.field select{width:100%;color:var(--ink);background:#fff;border:1px solid #cfd2cc;border-radius:9px;outline:none;padding:12px 14px;transition:border-color .16s,box-shadow .16s}.field textarea{resize:vertical;line-height:1.6}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green-700);box-shadow:0 0 0 3px #24764b1f}.primary,.secondary,.create-button{cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-weight:650;display:inline-flex}.primary{color:#fff;background:var(--green-800);border:1px solid var(--green-800)}.primary:hover{background:var(--green-900)}.secondary{color:#30342f;background:#fff;border:1px solid #d5d7d1}.secondary:hover{background:#fafbf8;border-color:#aeb5ae}.primary:disabled,.secondary:disabled{opacity:.55;cursor:wait}.wide{width:100%}.text-button{color:var(--green-700);cursor:pointer;background:0 0;border:0;padding:6px}.inline-error,.warning-note{color:#8f342f;background:#fff2ef;border:1px solid #f2d2cd;border-radius:8px;padding:11px 13px;font-size:13px;line-height:1.55}.warning-note{color:#705221;background:#fff9e8;border-color:#eee0b9}.qr-code{border:1px solid var(--line);border-radius:10px;width:190px;height:190px;margin:0 auto}.totp-auto-hint{color:var(--muted);margin:-9px 0 0;font-size:12px;line-height:1.55}.recovery-grid{border:1px solid var(--line);background:#f5f6f3;border-radius:10px;grid-template-columns:1fr 1fr;gap:10px;padding:18px;display:grid}.recovery-grid code{text-align:center;letter-spacing:.05em;font-size:14px}.unlock-icon{background:var(--green-100);width:64px;height:64px;color:var(--green-800);border-radius:50%;place-items:center;margin:0 auto;display:grid}.unlock-icon svg{font-size:30px}.trusted-device-option{cursor:pointer;background:#f7faf7;border:1px solid #d9dfd8;border-radius:9px;grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:12px 13px;display:grid}.trusted-device-option input{width:16px;height:16px;accent-color:var(--green-700);margin:3px 0 0}.trusted-device-option span{gap:3px;display:grid}.trusted-device-option strong{font-size:13px}.trusted-device-option small{color:var(--muted);font-size:11px;line-height:1.5}.trusted-unlock{color:var(--green-900);background:#f1f8f2;border-color:#a9c6b0}.auth-divider{color:#8b908a;place-items:center;height:18px;font-size:12px;display:grid;position:relative}.auth-divider:before{content:"";border-top:1px solid var(--line);position:absolute;top:50%;left:0;right:0}.auth-divider span{background:var(--surface);padding:0 10px;position:relative}.loading-mark{color:var(--muted);justify-items:center;gap:14px;display:grid}.loading-mark svg{color:var(--green-700);font-size:50px}.vault-app{background:var(--surface);grid-template-columns:164px 365px minmax(495px,1fr);width:100%;height:100vh;min-height:720px;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#faf9f5;flex-direction:column;padding:18px 8px 14px;display:flex}.sidebar>.brand{gap:8px;height:74px;padding:0 10px 18px}.sidebar>.brand svg{width:31px;height:31px}.sidebar>.brand strong{font-size:24px}.vault-switcher{background:#eff0ec;border-radius:8px;grid-template-columns:1fr 1fr;gap:3px;margin:2px 0 14px;padding:3px;display:grid}.vault-switcher button{color:#72766f;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:0;height:34px;font-size:12px;display:flex}.vault-switcher button.active{color:var(--green-900);background:#fff;box-shadow:0 1px 3px #212b2314}.sidebar nav{gap:4px;display:grid}.sidebar nav button,.sidebar-bottom button{color:#343833;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;width:100%;height:42px;padding:0 8px;font-size:13px;display:grid}.sidebar nav button svg,.sidebar-bottom svg{color:#5b615b;font-size:18px}.sidebar nav button.active{color:var(--green-900);background:var(--green-100)}.sidebar nav button.active svg{color:var(--green-800)}.sidebar nav small{color:#8b8e89}.sidebar-bottom{gap:2px;margin-top:auto;display:grid}.sidebar-bottom button{grid-template-columns:22px 1fr}.sidebar-bottom .logout-action{color:var(--danger);border-top:1px solid var(--line);border-radius:0;margin-top:5px}.sidebar-bottom .logout-action svg{color:var(--danger)}.item-pane{border-right:1px solid var(--line);background:var(--surface);min-width:0}.top-status{border-bottom:1px solid var(--line);height:94px;color:var(--green-900);justify-content:space-between;align-items:center;padding:0 18px;display:flex}.top-status>span{align-items:center;gap:10px;font-size:16px;display:flex}.top-status>span svg{font-size:20px}.top-status button{cursor:pointer;background:#fff;border:1px solid #d7d8d3;border-radius:7px;align-items:center;gap:8px;padding:9px 12px;display:none}.create-button{color:#fff;background:var(--green-800);border:0;justify-content:flex-start;width:calc(100% - 36px);min-height:40px;margin:20px 18px 16px;font-size:14px}.create-button svg:last-child{border-left:1px solid #fff3;width:34px;margin-left:auto;padding-left:14px}.search-box{color:#7e837d;background:#fff;border:1px solid #d3d6d0;border-radius:8px;align-items:center;gap:9px;height:42px;margin:0 18px 16px;padding:0 11px;display:flex}.search-box:focus-within{border-color:var(--green-700);box-shadow:0 0 0 3px #24764b1a}.search-box svg{font-size:21px}.search-box input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:13px}.search-box kbd{color:#999d98;font-family:inherit;font-size:12px}.items-scroll{height:calc(100vh - 228px);padding:0 18px 28px;overflow:auto}.item-group{margin-bottom:16px}.group-title{color:#313530;justify-content:space-between;align-items:center;height:34px;font-size:13px;display:flex}.group-title span{align-items:center;gap:7px;font-weight:700;display:flex}.group-title svg{font-size:14px}.group-title b{font-size:13px}.group-list{border:1px solid #dadcd6;border-radius:9px;overflow:hidden}.group-list>button{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #e1e2dd;grid-template-columns:38px 1fr 20px;align-items:center;gap:10px;width:100%;min-height:61px;padding:8px 10px;display:grid}.group-list>button:last-child{border-bottom:0}.group-list>button:hover{background:#f8faf7}.group-list>button.selected{outline-offset:-1px;background:#edf4ee;outline:1px solid #97bda1}.item-copy{gap:3px;min-width:0;display:grid}.item-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.item-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;overflow:hidden}.group-list>button>svg{color:#777c76;font-size:20px}.favorite-on{color:#d3a73c!important}.service-icon{border:1px solid #00000014;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.service-icon svg{width:22px;height:22px}.service-icon.large{width:62px;height:62px}.service-icon.large svg{width:39px;height:39px}.service-icon.dark{color:#fff;background:#252724}.service-icon.mint{color:#165e3a;background:#ddefe1}.service-icon.blue{color:#1b65b7;background:#e5f0fb}.service-icon.gold{color:#77591e;background:#f8e394}.list-state{color:var(--muted);text-align:center;padding:16px}.empty-state{min-height:280px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:10px;display:grid}.empty-state svg{color:#86a88f;font-size:52px}.empty-state strong{color:var(--ink)}.detail-pane{background:var(--surface);min-width:0;padding:94px 20px 0;position:relative;overflow:auto}.detail-pane:before{content:"";border-bottom:1px solid var(--line);background:#fffefa;height:94px;position:absolute;top:0;left:0;right:0}.detail-pane:after{content:"10 分钟后锁定";color:#4c514b;background:#fff;border:1px solid #d8d9d4;border-radius:7px;align-items:center;padding:10px 14px 10px 36px;font-size:14px;display:inline-flex;position:absolute;top:24px;left:325px}.detail-header{border-bottom:1px solid var(--line);align-items:center;gap:20px;min-height:130px;padding:20px 10px;display:flex}.detail-header,.detail-fields,.detail-actions,.encryption-note{width:455px;max-width:100%}.detail-header h1{letter-spacing:-.03em;margin:0 0 12px;font-size:clamp(24px,1.8vw,28px)}.tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tags span,.tag-add{color:#386047;background:#f0f5ef;border:1px solid #dfe4dc;border-radius:6px;align-items:center;min-height:30px;padding:3px 11px;font-size:13px;display:inline-flex}.tag-add{background:#fff}.header-actions{align-self:flex-start;gap:8px;margin-left:auto;padding-top:20px;display:flex}.header-actions button,.row-actions button,.row-actions a,.modal header>button{color:#394039;cursor:pointer;background:#fff;border:1px solid #dedfd9;border-radius:7px;place-items:center;width:36px;height:36px;text-decoration:none;display:grid}.header-actions svg,.row-actions svg{font-size:19px}.detail-fields{padding:2px 10px 0}.detail-row{border-bottom:1px solid var(--line);grid-template-columns:80px minmax(120px,1fr) auto;align-items:center;gap:10px;min-height:76px;display:grid}.detail-row.multiline{align-items:start;min-height:104px;padding:24px 0}.detail-label{color:#353a35;font-weight:600}.detail-row>span:nth-child(2){white-space:pre-line;font-size:14px;line-height:1.75}.detail-row .link{color:var(--green-800)}.mono{letter-spacing:.04em;font-family:SFMono-Regular,Consolas,monospace}.row-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.row-actions .tags{justify-content:flex-end}.detail-actions{gap:12px;padding:18px 10px;display:flex}.encryption-note{border-top:1px solid var(--line);grid-template-columns:50px 1fr auto;align-items:center;gap:14px;min-height:92px;margin:8px 10px 24px;padding-top:16px;display:grid}.encryption-note>svg{width:42px;height:42px;color:var(--green-700)}.encryption-note div{gap:5px;display:grid}.encryption-note strong{color:var(--green-800);font-size:14px}.encryption-note span{color:var(--muted);font-size:12px}.encryption-note button{color:var(--green-700);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;display:flex}.detail-empty{min-height:70vh;color:var(--muted);text-align:center;align-content:center;place-items:center;display:grid}.detail-empty svg{color:#a5b9aa;font-size:76px}.detail-empty h2{color:var(--ink);margin-bottom:0}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#181f1a61;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid #d8dad4;border-radius:14px;width:min(600px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 80px #121c1438}.modal>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:92px;padding:20px 26px;display:flex}.modal h2{margin:5px 0 0;font-size:24px}.modal form{grid-template-columns:1fr 1fr;gap:16px;padding:24px 26px 28px;display:grid}.modal form .field:first-child,.modal form .field:nth-child(2),.modal form .field:last-of-type{grid-column:1/-1}.modal-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.encryption-help-layer{z-index:70}.encryption-help-modal{width:min(680px,100%)}.encryption-help-content{gap:20px;padding:24px 26px 28px;display:grid}.encryption-help-lead{background:#f0f7f2;border:1px solid #b9d3c0;border-radius:11px;grid-template-columns:48px 1fr;align-items:center;gap:14px;padding:16px;display:grid}.encryption-help-lead>svg{width:42px;height:42px;color:var(--green-700)}.encryption-help-lead div,.encryption-help-grid article div,.encryption-help-warning{gap:5px;display:grid}.encryption-help-lead span,.encryption-help-grid span,.encryption-help-warning span{color:var(--muted);font-size:13px;line-height:1.65}.encryption-help-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.encryption-help-grid article{border:1px solid var(--line);background:#fffefa;border-radius:10px;align-content:start;gap:12px;min-height:184px;padding:16px;display:grid}.encryption-help-grid article>svg{width:30px;height:30px;color:var(--green-700)}.encryption-help-warning{background:#fff7e8;border-left:4px solid #b47b20;border-radius:7px;padding:14px 16px}.encryption-help-actions{justify-content:flex-end;display:flex}.settings-modal{width:min(820px,100%)}.settings-modal section{border-bottom:1px solid var(--line);padding:24px 28px}.settings-modal section:last-child{border-bottom:0}.settings-modal h3{margin:0 0 6px}.member-list{border-top:1px solid var(--line);margin-top:18px;display:grid}.member-list>div{border-bottom:1px solid var(--line);grid-template-columns:40px minmax(130px,1fr) minmax(180px,auto);align-items:center;gap:12px;min-height:76px;display:grid}.member-avatar{width:36px;height:36px;color:var(--green-900);background:var(--green-100);border-radius:50%;place-items:center;font-weight:700;display:grid}.member-list div div{gap:4px;display:grid}.member-list small{color:var(--muted)}.danger-text{color:var(--danger);cursor:pointer;background:0 0;border:0}.member-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px!important;display:flex!important}.member-actions button{white-space:nowrap;font-size:12px}.fingerprint,.member-fingerprint{overflow-wrap:anywhere;color:var(--green-900);letter-spacing:.04em;font-size:12px;display:inline-block}.member-fingerprint{color:var(--muted);margin-top:2px}.audit-list{border:1px solid var(--line);border-radius:10px;max-height:260px;margin-top:12px;display:grid;overflow:auto}.audit-list>div{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(160px,1fr) minmax(180px,1fr);gap:10px;padding:9px 12px;font-size:12px;display:grid}.audit-list>div:last-child{border-bottom:0}.audit-list small{color:var(--muted)}.step-up-layer{z-index:80}.step-up-modal{width:min(520px,100vw - 32px)}.step-up-modal form{gap:14px;padding:22px;display:grid}.member-account-form{border:1px solid var(--line);background:#f8faf7;border-radius:10px;margin-top:14px;padding:18px!important}.member-account-form .inline-error,.member-account-form .member-form-title{grid-column:1/-1}.member-form-title{gap:4px;display:grid}.member-form-title span{color:var(--muted);font-size:13px}.totp-provision{text-align:center;background:#f1f8f2;border:1px solid #bad2c0;border-radius:10px;justify-items:center;gap:14px;margin-top:14px;padding:18px;display:grid}.totp-provision>div{gap:5px;display:grid}.totp-provision span{color:var(--muted);font-size:13px}.totp-provision code{background:#e5efe7;border-radius:6px;padding:5px 10px}.settings-actions{flex-wrap:wrap;gap:10px;display:flex}.flip-icon{transform:rotate(180deg)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.toast{z-index:60;color:#fff;background:#1d4f35;border-radius:9px;align-items:center;gap:8px;padding:12px 16px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #14301f3d}@media (width<=1023px){.vault-app{grid-template-columns:180px 360px minmax(460px,1fr)}.detail-row{grid-template-columns:92px minmax(120px,1fr) auto}.detail-pane:after{left:auto;right:20px}}@media (width<=900px){.auth-shell{grid-template-columns:1fr}.auth-aside{min-height:260px}.auth-card{padding:42px}.vault-app{grid-template-columns:88px 360px 1fr}.sidebar .brand strong,.sidebar nav span,.sidebar nav small,.sidebar-bottom span,.vault-switcher span{display:none}.sidebar>.brand{justify-content:center;padding-inline:0}.vault-switcher,.encryption-help-grid{grid-template-columns:1fr}.encryption-help-grid article{min-height:0}.sidebar nav button,.sidebar-bottom button{justify-content:center;padding:0;display:flex}.detail-pane{padding-inline:20px}}@media (width<=700px){.auth-page{padding:0}.auth-shell{border:0;border-radius:0;min-height:100vh}.auth-aside{display:none}.auth-card{padding:30px 24px}.vault-app{grid-template-columns:72px minmax(248px,1fr)}.detail-pane{display:none}.item-pane{border-right:0}.member-list>div{grid-template-columns:40px 1fr;padding:10px 0}.member-actions{grid-column:1/-1;justify-content:flex-start;padding-left:50px}.member-account-form{grid-template-columns:1fr!important}.member-account-form .field,.member-account-form .modal-actions{grid-column:1!important}}
