:root{--navy:#093765;--blue:#155fc0;--ink:#172d47;--muted:#536981;--line:#dce5ed;--bg:#f4f7fb;--surface:#fff;--soft:#edf4fc;--red:#aa3029;--green:#1b7253;--radius:14px;--shadow:0 8px 28px #15365309;font-family:Inter,system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:var(--ink);font-size:15px}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);line-height:1.65}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #367bc9}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.35;letter-spacing:-.025em;margin-bottom:12px}h2{font-size:18px;line-height:1.45;margin-bottom:0}h3{font-size:17px;margin-bottom:8px}.muted,.hint,.help{color:var(--muted)}.hint{font-size:13px;margin:12px 0}.eyebrow{font-size:13px;font-weight:650;letter-spacing:.06em;color:var(--blue);margin-bottom:12px}.primary,.quiet,.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:9px 17px;border-radius:9px;font-weight:650;border:1px solid transparent;text-decoration:none!important}.primary{background:var(--blue);color:white}.primary:hover{background:#104da0}.quiet{background:var(--surface);border-color:var(--line);color:var(--ink)}.quiet:hover{background:var(--soft)}.danger{color:var(--red)}.full{width:100%;justify-content:space-between}.text-button{border:0;background:none;color:var(--blue);font-weight:600;padding:8px}.badge{display:inline-flex;background:var(--soft);color:var(--navy);border-radius:7px;padding:5px 10px;font-size:13px;white-space:nowrap}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);font-size:19px;font-weight:750;text-decoration:none!important}.brand img{height:48px;width:48px;object-fit:contain;border-radius:9px;background:white}.brand small{display:block;font-size:10px;letter-spacing:.13em;font-weight:550;margin-top:1px}label{display:block;font-size:14px;font-weight:600;margin:17px 0 7px}input:not([type=checkbox]),select,textarea{display:block;width:100%;min-width:0;background:white;color:var(--ink);border:1px solid #bbcbdc;border-radius:8px;padding:10px 12px;min-height:44px}input::placeholder,textarea::placeholder{color:#63748a;font-size:14px}textarea{resize:vertical}fieldset{border:1px solid var(--line);border-radius:9px;margin:20px 0 0;padding:12px 14px}legend{font-size:14px;font-weight:600}.checks .check,.check{display:flex;align-items:center;gap:9px;font-weight:400;margin:8px 0}.check input{width:18px;height:18px;flex:none;accent-color:var(--blue)}.form-error{color:var(--red);font-size:14px;margin:12px 0;min-height:20px}.notice{margin:16px 32px 0;padding:12px 16px;border:1px solid #bdd9c9;border-radius:9px;color:#174c37;background:#eff9f2;overflow-wrap:anywhere}.notice.error{color:var(--red);border-color:#ecc6c3;background:#fff5f4}.skip{position:absolute;left:12px;top:-100px;background:white;padding:12px;z-index:100}.skip:focus{top:12px}.boot{display:grid;min-height:100vh;place-content:center;color:var(--muted)}
.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{padding:48px 8vw;display:flex;flex-direction:column;background:linear-gradient(145deg,#eaf3ff,#f5f8fc 70%);border-right:1px solid var(--line)}.story-copy{margin:auto 0;padding:80px 0}.story-copy h1{font-size:clamp(30px,3.1vw,45px);line-height:1.45;color:var(--navy);margin-bottom:22px}.story-copy>p:not(.eyebrow){max-width:410px;font-size:16px;line-height:1.9;color:var(--muted)}.topic-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.topic-pills span{padding:6px 12px;background:#fff9;border:1px solid #d6e4f4;border-radius:7px;font-size:13px;color:#355572}.story-foot{font-size:13px;color:var(--muted);margin-bottom:0}.login-form-panel{display:grid;place-content:center;padding:48px;background:white}.login-card{width:360px;max-width:100%}.login-card h2{font-size:28px;margin:18px 0 12px;color:var(--navy)}.login-card .help{font-size:13px;line-height:1.8;margin:24px 0}.login-card input{min-height:49px}.login-card .primary{min-height:49px}.password-field{position:relative}.password-field input{padding-right:66px}.password-field button{position:absolute;right:8px;top:5px}.login-links{display:flex;gap:22px;font-size:13px;padding-top:20px;border-top:1px solid var(--line)}
.topbar{min-height:86px;padding:16px 32px;border-bottom:1px solid var(--line);background:white;display:flex;gap:32px;align-items:center}.topbar nav{display:flex;gap:24px;margin-left:20px}.topbar nav a{color:var(--muted);font-size:14px;font-weight:600}.topbar nav a.active{color:var(--blue)}.user-menu{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.user-menu>span{max-width:150px;overflow-wrap:anywhere}.user-menu button{font-size:13px}.content{max-width:1320px;margin:auto;padding:34px 32px 60px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.page-heading p:last-child{margin-bottom:0}.vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.vault-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.vault-symbol{width:43px;height:43px;display:grid;place-items:center;background:var(--soft);border-radius:10px;color:var(--blue);font-size:21px;margin-bottom:22px}.vault-card .muted{font-size:13px;overflow-wrap:anywhere}.vault-card .primary{width:100%;margin-top:14px;justify-content:space-between}.footnote{font-size:13px;color:var(--muted);margin-top:24px}.empty{padding:48px 20px;text-align:center;color:var(--muted);background:white;border:1px dashed var(--line);border-radius:var(--radius)}.workspace-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.workspace-toolbar>a{margin-left:auto}.workspace-toolbar strong{overflow-wrap:anywhere}#workspace-frame{width:100%;height:calc(100vh - 190px);min-height:520px;border:1px solid var(--line);border-radius:12px;background:#202020}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{padding:18px 22px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;color:var(--navy);margin-top:5px}.stat strong.stat-text{font-size:19px;padding-top:8px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}.tabs button{padding:12px 18px;border:0;border-bottom:3px solid transparent;background:none;white-space:nowrap;color:var(--muted);font-weight:650}.tabs button.selected{color:var(--blue);border-bottom-color:var(--blue)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}.panel-heading a{font-size:13px}.panel-body{padding:22px}.panel-body>label:first-child{margin-top:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.inline-form{display:flex;align-items:center;gap:10px}.inline-form input{flex:1}.inline-form button{flex:none}.list-row{padding:17px 0;border-bottom:1px solid var(--line);display:flex;gap:20px;align-items:center;justify-content:space-between}.list-row:last-child{border-bottom:0}.list-row .meta{color:var(--muted);font-size:13px;overflow-wrap:anywhere;word-break:break-word}.list-row strong{overflow-wrap:anywhere}.list-row .actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}.list-row button{font-size:13px}.spaced{margin-top:22px}.search{max-width:300px}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.panel-heading .button-row{margin-top:0}.pagination{display:flex;justify-content:center;gap:18px;align-items:center;padding:16px;border-top:1px solid var(--line);font-size:13px}#tools-frame{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:1350px;background:white}.prose{max-width:900px}.prose code{font-family:ui-monospace,Consolas,monospace;font-size:13px;background:var(--soft);padding:4px 8px;border-radius:5px;overflow-wrap:anywhere}.prose>.button{margin-top:14px}dialog{border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 90px #082c4a30;padding:28px;width:560px;max-width:calc(100vw - 32px);max-height:90vh;color:var(--ink);overflow:auto}dialog::backdrop{background:#102c4866;backdrop-filter:blur(3px)}.dialog-head{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:14px}#credential-list{max-height:320px;overflow:auto;margin-bottom:22px}#credential-list code{display:block;overflow-wrap:anywhere;background:var(--soft);padding:8px;border-radius:7px;margin-top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar nav #admin-link{border:1px solid var(--line);border-radius:8px;padding:5px 12px;margin-top:-5px;margin-bottom:-5px}
/* Use the same approved brand asset for every vault, in either access mode. */
.vault-logo{display:block;width:48px;height:48px;object-fit:contain;background:var(--surface);border-radius:10px;margin-bottom:22px}
/* The portal keeps its branded layout; opened vaults are edge-to-edge. */
:root{--workspace-bar-height:40px;--workspace-surface:#f6f6f6;--workspace-text:#373737;--workspace-muted:#626262;--workspace-border:#dcdcdc;--workspace-hover:#e8e8e8;--workspace-link:#155fc0}
body[data-workspace-theme=dark]{--workspace-surface:#202020;--workspace-text:#dedede;--workspace-muted:#b8b8b8;--workspace-border:#3c3c3c;--workspace-hover:#353535;--workspace-link:#a1c7ff}
#tools-frame{height:calc(100dvh - 32px);min-height:420px;max-height:1100px}
body.is-workspace{height:100vh;height:100dvh;overflow:hidden;background:var(--workspace-surface)}
body.is-workspace #app-view{height:100%;width:100%;overflow:hidden}
body.is-workspace .topbar{display:none}
body.is-workspace #content{height:100%;width:100%;max-width:none;margin:0;padding:0}
body.is-workspace #workspace-view{display:grid;grid-template-rows:var(--workspace-bar-height) minmax(0,1fr);height:100%;width:100%;min-width:0;min-height:0;position:relative}
body.is-workspace .workspace-toolbar{height:var(--workspace-bar-height);margin:0;padding:0 8px;display:flex;flex-wrap:nowrap;gap:12px;background:var(--workspace-surface);color:var(--workspace-text);border-bottom:1px solid var(--workspace-border);font-size:13px;position:relative;z-index:20}
.workspace-identity{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.workspace-actions{display:flex;align-items:center;gap:4px;flex:none}
.workspace-logo{height:24px;width:24px;object-fit:contain;border-radius:4px;background:white;flex:none}
#workspace-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;font-weight:600}
.workspace-status{font-size:12px;line-height:1.3;color:var(--workspace-muted);border:1px solid var(--workspace-border);border-radius:4px;padding:3px 6px;flex:none;white-space:nowrap}
.workspace-control,.workspace-menu>summary{font:inherit;color:var(--workspace-text);background:transparent;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;text-decoration:none!important;min-height:32px;padding:4px 8px;border-radius:5px;cursor:pointer;font-size:13px;line-height:1.3}
.workspace-control:hover,.workspace-menu>summary:hover,.workspace-menu[open]>summary{background:var(--workspace-hover)}
.workspace-control:focus-visible,.workspace-menu>summary:focus-visible{outline:2px solid var(--workspace-link);outline-offset:1px}
.workspace-control svg,.workspace-menu svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
#workspace-admin{color:var(--workspace-link)}
.mobile-label{display:none}
.workspace-menu{position:relative}
.workspace-menu>summary{list-style:none;padding:5px 8px}
.workspace-menu>summary::-webkit-details-marker{display:none}
.workspace-menu-panel{position:absolute;right:0;top:calc(100% + 5px);width:220px;max-width:calc(100vw - 16px);border:1px solid var(--workspace-border);border-radius:8px;background:var(--workspace-surface);box-shadow:0 6px 24px #0002;padding:5px;color:var(--workspace-text)}
.workspace-menu-user{padding:8px 10px;border-bottom:1px solid var(--workspace-border);margin-bottom:4px;overflow-wrap:anywhere}
.workspace-menu-user strong,.workspace-menu-user span{display:block}.workspace-menu-user span{font-size:12px;color:var(--workspace-muted)}
.workspace-menu-panel>a,.workspace-menu-panel>button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;border-radius:4px;color:var(--workspace-text);background:transparent;font-size:13px;font-weight:400;text-decoration:none;line-height:1.4}
.workspace-menu-panel>a:hover,.workspace-menu-panel>button:hover{background:var(--workspace-hover)}
body.is-workspace #workspace-frame{grid-row:2;width:100%;height:100%;min-height:0;display:block;border:0;border-radius:0;background:var(--workspace-surface)}
body.is-workspace #workspace-frame.is-loading{visibility:hidden}
body.is-workspace #workspace-loading{position:absolute;inset:var(--workspace-bar-height) 0 0;display:grid;place-content:center;margin:0;border:0;border-radius:0;color:var(--workspace-muted);background:var(--workspace-surface);pointer-events:none}
body.is-workspace .notice{position:fixed;top:48px;right:12px;max-width:420px;width:calc(100% - 24px);margin:0;z-index:50;box-shadow:var(--shadow)}
body.is-immersive #workspace-view{grid-template-rows:0 minmax(0,1fr)}
body.is-immersive .workspace-toolbar{display:none}
#restore-toolbar{position:fixed;right:48px;top:5px;z-index:30;border-color:var(--workspace-border);background:var(--workspace-surface);box-shadow:0 2px 8px #0001;font-size:12px;min-height:29px;padding:4px 7px}
.detail-save{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.detail-save .hint{margin:0}.detail-save button{flex:none}
.destructive{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 17px;background:var(--red);color:white;border:1px solid var(--red);border-radius:9px;font-weight:650}.destructive:hover{background:#87231e}
#delete-expected{overflow-wrap:anywhere}#personal-api-download{margin-top:16px}
#personal-api-dialog .prose>code{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere}
#personal-api-dialog{width:680px;background:var(--surface)}#personal-api-dialog .eyebrow{margin-bottom:4px}.api-vaults{display:flex;flex-wrap:wrap;gap:8px}.api-secret{padding:18px;background:var(--soft);border:1px solid var(--line);border-radius:10px}.api-secret .hint{margin-bottom:12px}.api-secret button{margin-top:12px}#personal-api-token{font-family:ui-monospace,Consolas,monospace;font-size:13px}#personal-api-list .list-row{gap:12px}#personal-api-list .list-row>div{min-width:0}#personal-api-list button{flex:none}
@media(max-width:640px){:root{--workspace-bar-height:44px}body.is-workspace .workspace-toolbar{padding:0 4px;gap:4px}.workspace-identity{gap:5px}.workspace-actions{gap:1px}.workspace-control,.workspace-menu>summary{min-height:36px;padding:4px 6px}.workspace-logo{display:block;width:20px;height:20px}body.is-workspace .desktop-label{display:none}body.is-workspace .mobile-label{display:inline}#workspace-admin{display:none}#restore-toolbar span{display:none}#restore-toolbar{right:44px;min-height:32px;padding:5px 7px}.workspace-menu-panel>a,.workspace-menu-panel>button{min-height:44px;padding:12px 10px}.detail-save{align-items:stretch;flex-direction:column;gap:12px}}
@media(max-width:1000px){.topbar{gap:18px;padding:14px 22px;flex-wrap:wrap}.topbar nav{margin-left:0}.content{padding:28px 22px}.two-col{grid-template-columns:1fr}.login-story{padding:36px 5vw}.login-form-panel{padding:36px}.stat-grid{gap:12px}.stat{padding:16px}}
@media(max-width:640px){.login-layout{display:block}.login-story{padding:22px 24px;border-right:0;border-bottom:1px solid var(--line)}.story-copy{padding:26px 0 6px}.story-copy h1{font-size:27px;margin-bottom:12px}.story-copy>p:not(.eyebrow),.topic-pills,.story-foot{display:none}.story-copy .eyebrow{font-size:12px;margin-bottom:8px}.login-form-panel{display:block;padding:30px 24px 42px}.login-card{width:100%}.login-card h2{font-size:24px}.brand{font-size:17px}.brand img{width:42px;height:42px}.topbar{padding:12px 16px;gap:12px}.topbar nav{order:3;width:100%;gap:20px}.user-menu{gap:8px}.user-menu>span{max-width:90px}.user-menu button{padding:6px 10px;min-height:38px}.content{padding:24px 16px 40px}.page-heading{display:block;margin-bottom:22px}.page-heading>.badge,.page-heading>.quiet{margin-top:16px}h1{font-size:23px}.stat-grid{grid-template-columns:1fr 1fr}.stat strong{font-size:25px}.stat strong.stat-text{font-size:17px}.panel-heading,.panel-body{padding:16px}.list-row{display:block}.list-row .actions{margin-top:12px}.panel-heading .search{max-width:none;width:100%}.form-row{grid-template-columns:1fr}.inline-form{align-items:stretch}.inline-form button{padding:8px 12px}.workspace-toolbar{gap:10px}.workspace-toolbar strong{flex:1}.workspace-toolbar>a{margin-left:0}#workspace-frame{min-height:460px;height:calc(100dvh - 245px)}.notice{margin:12px 16px 0}.tabs button{padding:11px 13px;font-size:14px}.panel-heading .button-row{width:100%}.panel-heading .button-row input{flex:1}.pagination{gap:12px}.dialog-head h2{font-size:17px}dialog{padding:20px}}
