:root{--bg: #0f0f11;--panel: #141417;--raised: #1b1b20;--inset: #121215;--line: #26262c;--line-strong: #35353d;--text: #eceae4;--text-2: #a8a69e;--text-3: #7c7a72;--brass: #d9a441;--brass-hi: #e8ba5e;--brass-ink: #221604;--brass-dim: rgba(217, 164, 65, .14);--ok: #82c78c;--danger: #e5484d;--danger-dim: rgba(229, 72, 77, .12);--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--radius: 6px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button{cursor:pointer;padding:7px 14px;border-radius:var(--radius);border:1px solid var(--line-strong);background:transparent;color:var(--text-2);font-size:13px;font-family:inherit;transition:color .12s,border-color .12s,background .12s}button:hover{color:var(--text);border-color:var(--text-3);background:var(--raised)}button.primary{background:var(--brass);border-color:var(--brass);color:var(--brass-ink);font-weight:600}button.primary:hover{background:var(--brass-hi);border-color:var(--brass-hi);color:var(--brass-ink)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}button.danger:hover{background:#ef5a5f;border-color:#ef5a5f;color:#fff}button.danger-outline{background:transparent;border-color:var(--line-strong);color:var(--text-3)}button.danger-outline:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-dim)}button.ghost,button.back{background:transparent;border-color:transparent;color:var(--text-2)}button.ghost:hover,button.back:hover{color:var(--text);background:var(--raised);border-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:2px solid var(--brass);outline-offset:2px}input,textarea,select{padding:9px 12px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--inset);color:var(--text);width:100%;font-size:14px;font-family:inherit}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-dim)}a{color:var(--brass);text-decoration:none}a:hover{color:var(--brass-hi);text-decoration:underline}kbd{font-family:var(--mono);font-size:10px;padding:2px 5px;border-radius:4px;background:var(--raised);border:1px solid var(--line-strong);border-bottom-width:2px;color:var(--text-2)}.plate,.detail-row>label,.form-group>label,.auth-field>label{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px}.auth-column{width:100%;max-width:400px}.auth-wordmark{display:flex;align-items:center;gap:10px;margin-bottom:28px;font-family:var(--mono);font-size:14px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--text)}.auth-wordmark:before{content:"";width:9px;height:9px;background:var(--brass);border-radius:2px;flex-shrink:0}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px;position:relative;overflow:hidden}.auth-card:before,.recovery-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--brass) 18%,var(--brass) 82%,transparent)}.auth-card h2{margin:0 0 4px;font-size:17px;font-weight:600}.auth-sub{margin:0 0 20px;font-size:13px;color:var(--text-2)}.auth-sub strong{color:var(--text);font-family:var(--mono);font-size:12px;font-weight:500}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth-actions{display:flex;align-items:center;gap:10px;margin-top:20px}.auth-actions .primary{flex:1;padding:10px 16px;font-size:14px}.auth-footer{margin-top:14px;text-align:center}.auth-error{margin:0 0 16px;padding:10px 12px;border-radius:var(--radius);border:1px solid rgba(229,72,77,.4);background:var(--danger-dim);color:#f1878b;font-size:13px}.auth-restoring{color:var(--text-2);font-size:13px;margin:0 0 16px}.auth-status{margin:14px 0 0;font-family:var(--mono);font-size:12px;color:var(--text-2);animation:fadeIn .15s ease}.auth-status:before{content:"▸ ";color:var(--brass)}.auth-option{display:block;width:100%;text-align:left;padding:14px 16px;margin-bottom:10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--inset);cursor:pointer;transition:border-color .12s,background .12s}.auth-option:hover{border-color:var(--brass);background:var(--raised)}.auth-option strong{display:block;font-size:14px;color:var(--text);margin-bottom:3px}.auth-option p{margin:0;font-size:12.5px;color:var(--text-2);line-height:1.5}.auth-method{border:1px solid var(--line);border-radius:var(--radius);background:var(--inset);padding:16px;margin-bottom:10px}.auth-method-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.auth-method-head strong{font-size:14px;color:var(--text)}.auth-method p{margin:0 0 12px;font-size:12.5px;color:var(--text-2);line-height:1.5}.auth-method input{font-family:var(--mono);font-size:13px}.auth-method .primary{width:100%;margin-top:12px;padding:10px 16px;font-size:14px}.recovery-scrim{position:fixed;inset:0;z-index:900;background:#08080ad1;display:flex;align-items:center;justify-content:center;padding:24px}.recovery-card{position:relative;overflow:hidden;width:100%;max-width:520px;background:var(--panel);border:1px solid var(--line-strong);border-radius:10px;padding:28px}.recovery-card h2{margin:0 0 6px;font-size:18px;font-weight:600}.recovery-card>p{margin:0 0 18px;font-size:13px;color:var(--text-2);line-height:1.55}.recovery-key{font-family:var(--mono);font-size:17px;line-height:1.8;letter-spacing:.04em;white-space:pre-wrap;word-break:break-word;color:var(--brass-hi);background:var(--inset);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:0 0 18px;user-select:all}.recovery-actions{display:flex;gap:10px;flex-wrap:wrap}.recovery-actions .primary{flex:1}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:16px;padding:0 20px;height:52px;border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0}.app-logo{margin:0;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--text);display:flex;align-items:center;gap:9px}.app-logo:before{content:"";width:8px;height:8px;background:var(--brass);border-radius:2px}.app-nav{display:flex;align-items:center;gap:8px;margin-left:auto}.app-nav button{border-color:transparent}.app-nav button.active{background:var(--raised);border-color:var(--line-strong);color:var(--text)}.app-warning{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;border-bottom:1px solid var(--line);background:#d9a44114;color:var(--text-2);font-size:13px}.app-warning button{flex:none;background:none;border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text-2);padding:4px 10px;font-size:12px;cursor:pointer}.app-warning button:hover{color:var(--text);border-color:var(--brass)}.app-copy-feedback{font-size:12px;font-family:var(--mono);color:var(--ok);animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app-main-master-detail{flex:1;display:flex;min-height:0}.master-detail-master{width:300px;min-width:260px;flex-shrink:0;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}.master-detail-detail{flex:1;min-width:0;overflow-y:auto;padding:28px 32px;background:var(--bg)}.detail-empty{height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-2);font-size:14px}.detail-empty:before{content:"";width:34px;height:34px;border:2px solid var(--line-strong);border-radius:8px;margin-bottom:8px;background:radial-gradient(circle at 50% 42%,var(--line-strong) 4px,transparent 5px),linear-gradient(var(--line-strong),var(--line-strong)) 50% 62% / 3px 8px no-repeat}.detail-empty p{margin:0}.entry-list{display:flex;flex-direction:column;flex:1;min-height:0}.entry-list-header{display:flex;gap:8px;align-items:center;padding:14px 14px 12px}.entry-list-search{flex:1;min-width:0;font-size:13px;padding:8px 10px}.entry-list-add{flex-shrink:0;white-space:nowrap}.entry-list-empty{padding:40px 20px;text-align:center;color:var(--text-2);font-size:13px}.entry-list-empty p{margin:0 0 16px}.entry-list-items{list-style:none;padding:4px 8px;margin:0;display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;min-height:0}.entry-list-item{padding:10px 12px;border-radius:var(--radius);border-left:2px solid transparent;cursor:pointer;transition:background .1s}.entry-list-item:hover{background:var(--raised)}.entry-list-item.selected{background:var(--raised);border-left-color:var(--brass)}.entry-list-item-title{display:block;font-weight:500;font-size:13.5px;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-list-item-meta{display:block;font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-list-shortcuts{margin:auto 0 0;padding:10px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden}.entry-detail{max-width:640px;display:flex;flex-direction:column;gap:22px}.entry-detail-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line)}.entry-detail-title{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;flex:1;min-width:0}.entry-detail-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.entry-detail-body{display:flex;flex-direction:column;gap:20px}.detail-row{display:flex;flex-direction:column;gap:6px}.detail-row-value{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.detail-value{font-family:var(--mono);font-size:14px;word-break:break-all;min-width:0}.detail-value[data-masked=true]{letter-spacing:.14em;color:var(--text-3)}.detail-actions{display:flex;gap:6px;flex-shrink:0}.detail-actions button{padding:3px 9px;font-size:12px;border-color:transparent;color:var(--text-3)}.detail-actions button:hover{color:var(--brass);background:var(--brass-dim);border-color:transparent}.detail-actions button.danger-outline:hover{color:var(--danger);background:var(--danger-dim)}.detail-link{word-break:break-all;font-family:var(--mono);font-size:13px}.detail-notes{margin:0;padding:12px 14px;background:var(--panel);border-radius:var(--radius);border:1px solid var(--line);font-size:13px;color:var(--text-2);white-space:pre-wrap;font-family:inherit;line-height:1.55}.detail-row-otp .otp-line{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.detail-row-otp .otp-code{font-family:var(--mono);font-size:26px;letter-spacing:.18em;font-weight:600;color:var(--brass-hi);font-variant-numeric:tabular-nums}.otp-meter{width:120px;height:3px;border-radius:2px;background:var(--line);overflow:hidden;align-self:center}.otp-meter>span{display:block;height:100%;background:var(--brass);transition:width .9s linear}.detail-row-otp .otp-countdown{font-family:var(--mono);font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.detail-fields{display:flex;flex-direction:column;gap:10px}.detail-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.detail-field-name{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);min-width:100px}.detail-field-value{flex:1;font-family:var(--mono);font-size:13px;word-break:break-all}.confirm-label{font-size:13px;color:var(--text-2)}.entry-detail-shortcuts{margin:4px 0 0;font-size:11px;color:var(--text-3)}.entry-form{max-width:560px;display:flex;flex-direction:column;gap:22px}.entry-form-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.entry-form-header h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.entry-form-actions{display:flex;gap:8px}.entry-form-body{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-row{display:flex;gap:10px;flex-wrap:wrap}.form-row input{flex:1;min-width:130px}.vault-settings{max-width:640px;display:flex;flex-direction:column;gap:22px}.vault-settings-header{display:flex;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line)}.vault-settings-header h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.vault-settings-body{display:flex;flex-direction:column;gap:26px}.vault-settings-section h3{margin:0 0 12px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.vault-settings-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 24px;font-size:13px;align-items:baseline}.vault-settings-dl dt{color:var(--text-2)}.vault-settings-dl dd{margin:0;color:var(--text);word-break:break-all}.vault-room-id{font-family:var(--mono);font-size:12px;background:var(--panel);border:1px solid var(--line);padding:3px 8px;border-radius:4px;color:var(--text-2)}.vault-settings-hint{margin:0 0 12px;font-size:13px;color:var(--text-2);line-height:1.55}.vault-invite-form{display:flex;gap:10px;flex-wrap:wrap}.vault-invite-form input{flex:1;min-width:200px}.status.ok{color:var(--ok);margin:8px 0 0;font-size:13px}.status.error{color:var(--danger);margin:8px 0 0;font-size:13px}.large-type-overlay{position:fixed;inset:0;background:#08080aeb;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer}.large-type-content{cursor:default;text-align:center;padding:48px;max-width:90vw}.large-type-text{font-size:clamp(32px,8vw,72px);font-weight:600;font-family:var(--mono);letter-spacing:.05em;color:var(--brass-hi);word-break:break-all;line-height:1.3}.large-type-hint{margin:20px 0 0;font-size:13px;color:var(--text-2)}@media (max-width: 720px){.app-main-master-detail{flex-direction:column}.master-detail-master{width:100%;min-width:0;border-right:none;border-bottom:1px solid var(--line);max-height:45vh}.master-detail-detail{padding:20px 16px}}
