*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1E2D27;--surface: #3D5A4E;--border: #4A6355;--text: #F5F6F5;--text-muted: #A0AFAA;--accent: #D4AF37;--accent-hover: #BF9D2F;--error: #f87171;--vault: #D4AF37;--vault-dim: rgba(212, 175, 55, .12);--vault-bg: #F8F9FA;--vault-text: #2C3E36;--vault-surface: #EAEDE8;--vault-text-muted: #5A6B64;--font-heading: "Space Grotesk", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", monospace;--font: var(--font-body)}html,body{height:100%;width:100%}#root{height:100dvh;width:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;-webkit-font-smoothing:antialiased}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:24px;background:radial-gradient(ellipse at 50% -5%,#2e4f40,#1e2d27 60%)}.login-card{background:#eaede8;padding:40px 32px 32px;border-radius:20px;box-shadow:0 12px 60px #00000073,0 2px 8px #0003;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center}.login-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}.login-title--p{color:var(--accent)}.login-title--base{color:#708090}.login-tagline{font-size:14px;color:#708090;margin-bottom:28px;text-align:center}.login-form{width:100%;display:flex;flex-direction:column;gap:12px}.login-password-wrap{position:relative;display:flex;align-items:center}.login-password-wrap input{flex:1;padding-right:48px}.login-form .login-pw-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%);width:48px;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:0 10px 10px 0;color:var(--text-muted);cursor:pointer;padding:0}.login-form .login-pw-toggle:hover{color:var(--text)}.login-form .login-pw-toggle svg{width:20px;height:20px}.login-form input{width:100%;padding:14px 16px;background:#fff;border:2px solid #D4DBD8;border-radius:10px;color:#2c3e36;font-size:16px;font-family:var(--font-body);outline:none;transition:border-color .2s,background .2s,box-shadow .2s,transform .15s;-webkit-appearance:none}.login-form input:hover{border-color:#b8c8c2;background:#edf0ef;transform:translateY(-1px)}.login-form input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #d4af3726;transform:translateY(-1px)}.login-form input::placeholder{color:#9aaba5}.login-form button{width:100%;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .15s;background:var(--accent);color:#1e2d27}.login-form button:hover:not(:disabled){background:var(--accent-hover)}.login-form button:disabled{opacity:.5;cursor:not-allowed}.login-form .btn-secondary{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.login-form .btn-secondary:hover:not(:disabled){background:var(--border);color:var(--text)}.error-msg{color:var(--error);font-size:14px;text-align:center}.login-switch{margin-top:20px;font-size:14px;color:#708090;text-align:center}.login-brand{align-self:flex-end;margin-top:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:#708090}.login-footer{margin-top:20px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#f5f6f559;text-align:center}.btn-link{background:none;border:none;color:var(--accent);font-size:inherit;cursor:pointer;padding:0;text-decoration:underline}.app-shell{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0003;flex-shrink:0;position:relative;z-index:10}.app-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.app-title--p{color:var(--accent)}.app-title--base{color:#c8d4d0}.app-shell--vault-open .app-header{border-bottom-color:var(--accent);border-bottom-width:2px}.vault-status-bar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--accent);color:#1e2d27;font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.app-header__actions{display:flex;align-items:center;gap:8px}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:var(--bg);border-top:1px solid var(--border);flex-shrink:0}.app-footer__feedback{font-size:12px;color:#708090;text-decoration:none;letter-spacing:.03em;transition:color .15s ease}.app-footer__feedback:hover{color:var(--accent)}.app-footer__brand{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}.app-footer__o{color:var(--accent)}.app-footer__rest{color:#c8d4d0}.feedback-page{display:flex;flex-direction:column;height:100dvh;background:#eaede8}.feedback-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;background:var(--bg);flex-shrink:0;box-shadow:0 2px 8px #0003}.feedback-back{color:#c8d4d0;font-size:14px;text-decoration:none;min-width:56px;transition:color .15s ease}.feedback-back:hover{color:var(--accent)}.feedback-title{font-family:var(--font-heading);font-size:16px;font-weight:600;color:#f0f4f0;letter-spacing:-.01em}.feedback-submit-btn{background:var(--accent);color:#1e2d27;border:none;border-radius:8px;font-family:var(--font-body);font-size:13px;font-weight:600;padding:7px 16px;cursor:pointer;min-width:56px;transition:background .15s ease,opacity .15s ease}.feedback-submit-btn:hover:not(:disabled){background:#e0c35a}.feedback-submit-btn:disabled{opacity:.45;cursor:default}.feedback-messages{flex:1;overflow-y:auto;padding:20px 16px 12px;display:flex;flex-direction:column;gap:12px}.fb-msg-user{align-self:flex-end;background:#fff;border:1px solid #D4DBD8;border-radius:16px 16px 4px;padding:8px 12px;font-size:15px;color:#0f1f18;max-width:80%;line-height:1.5}.fb-msg-ai{align-self:flex-start;color:#0f1f18;font-size:16px;line-height:1.65;max-width:100%}.fb-thinking{display:flex;gap:5px;align-items:center;padding:4px 0}.fb-dot{width:7px;height:7px;border-radius:50%;background:#708090;animation:fb-bounce 1.2s infinite ease-in-out}.fb-dot:nth-child(2){animation-delay:.2s}.fb-dot:nth-child(3){animation-delay:.4s}@keyframes fb-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.fb-error{color:#c0392b;font-size:13px;align-self:center;margin:4px 0}.feedback-input-row{display:flex;align-items:flex-end;gap:8px;padding:12px 16px 16px;background:#eaede8;flex-shrink:0;border-top:1px solid #D4DBD8}.feedback-input{flex:1;resize:none;border:1.5px solid #D4DBD8;border-radius:12px;padding:10px 14px;font-family:var(--font-body);font-size:16px;color:#0f1f18;background:#fff;line-height:1.5;transition:border-color .15s ease,box-shadow .15s ease}.feedback-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #d4af3726}.feedback-input::placeholder{color:#a0aab0}.feedback-send-btn{width:42px;height:42px;border-radius:50%;background:var(--accent);color:#1e2d27;border:none;font-size:18px;font-weight:700;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s ease,opacity .15s ease}.feedback-send-btn:hover:not(:disabled){background:#e0c35a}.feedback-send-btn:disabled{opacity:.4;cursor:default}.feedback-thankyou{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px}.feedback-thankyou-card{background:#fff;border:1px solid #D4DBD8;border-radius:16px;padding:40px 32px;text-align:center;max-width:360px;width:100%;box-shadow:0 2px 12px #2c3e3614}.feedback-thankyou-icon{width:52px;height:52px;background:var(--accent);color:#1e2d27;border-radius:50%;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.feedback-thankyou-card h2{font-family:var(--font-heading);font-size:22px;font-weight:700;color:#1e2d27;margin-bottom:10px}.feedback-thankyou-card p{font-size:15px;color:#708090;line-height:1.6;margin-bottom:28px;max-width:none}.feedback-done-btn{display:inline-block;background:var(--accent);color:#1e2d27;text-decoration:none;font-weight:600;font-size:14px;padding:10px 28px;border-radius:8px;transition:background .15s ease}.feedback-done-btn:hover{background:#e0c35a}.btn-vault-header{width:38px;height:38px;border-radius:50%;border:none;background:#d4af3726;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-vault-header:hover{background:#d4af3740}.btn-vault-header--open{background:#d4af374d}.app-header__user{font-size:1rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}.btn-signout{background:none;border:1px solid var(--border);color:var(--text-muted);padding:8px 14px;border-radius:8px;font-size:14px;cursor:pointer}.btn-signout:hover{color:var(--text);border-color:var(--text-muted)}.chat{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch;background:#eaede8;transition:background .2s}.chat--vault-open .chat-messages{background:var(--vault-bg);color:var(--vault-text);--text-muted: var(--vault-text-muted)}.chat--vault-open .chat-bubble--ai{background:none;color:#0f1f18}.chat--vault-open .chat-bubble--user{background:#fff;color:var(--vault-text);border-color:#d4af3766}.chat--vault-open .chat-bubble--ai th{background:#0000000d}.chat--vault-open .chat-bubble--ai code,.chat--vault-open .chat-bubble--ai pre{background:#0000000f}.chat-empty{color:#708090;font-size:15px;text-align:center;margin-top:40px}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.5;word-break:break-word}.chat-bubble--user{background:#fff;color:#2c3e36;border:1px solid #C8D4CF;align-self:flex-end;border-radius:14px 14px 4px;padding:7px 14px;font-size:14px;max-width:75%;box-shadow:0 1px 2px #2c3e3612}.chat-bubble--ai{background:none;color:#0f1f18;font-size:16px;line-height:1.65;align-self:stretch;max-width:100%;padding:2px 4px;box-shadow:none;border-bottom-left-radius:0}.chat-bubble--ai p{margin:0 0 .5em}.chat-bubble--ai p:last-child{margin-bottom:0}.chat-bubble--ai table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:.85rem}.chat-bubble--ai th,.chat-bubble--ai td{border:1px solid var(--border);padding:5px 10px;text-align:left}.chat-bubble--ai th{background:#0000000d;font-weight:600}.chat-bubble--ai code{background:#0000000f;border-radius:3px;padding:1px 4px;font-size:.85em}.chat-bubble--ai pre{background:#0000000f;border-radius:6px;padding:10px 12px;overflow-x:auto;margin:.5em 0}.chat-bubble--ai pre code{background:none;padding:0}.chat-bubble--ai ul,.chat-bubble--ai ol{margin:.25em 0 .5em 1.2em;padding:0}.chat-bubble--ai li{margin-bottom:.2em}.chat-bubble--loading{display:flex;gap:5px;align-items:center;padding:8px 4px;background:none;max-width:100%;align-self:stretch}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:pulse 1.2s ease-in-out infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.chat-error{color:var(--error);font-size:14px;text-align:center;padding:4px 0}.chat-input-bar{display:flex;flex-direction:column;gap:4px;padding:6px 16px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:#eaede8;border-top:1px solid #C8D4CF;flex-shrink:0}.chat-action-row{display:flex;align-items:center;gap:4px}.chat-input-row{display:flex;align-items:center;gap:10px}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.file-chip-row{display:flex;padding:0 2px}.file-chip{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--accent);border-radius:8px;padding:5px 10px;max-width:100%;min-width:0}.file-chip-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.file-chip-size{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.file-chip-remove{background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 0 0 2px;flex-shrink:0;-webkit-tap-highlight-color:transparent}.file-chip-remove:hover{color:var(--text)}.upload-progress{display:flex;flex-direction:column;gap:6px;width:140px}.upload-progress-label{font-size:12px;color:var(--text-muted)}.upload-progress-track{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.upload-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .15s ease}.chat-input{flex:1;padding:12px 16px;background:#fff;border:1px solid #C8D4CF;border-radius:22px;color:#2c3e36;font-size:16px;font-family:var(--font-body);outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none}.chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d4af3726}.chat-input::placeholder{color:#9aaba5}.chat-send{width:42px;height:42px;border-radius:50%;border:none;background:var(--accent);color:#1e2d27;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s}.chat-send:hover:not(:disabled){background:var(--accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.chat-input-bar--vault-open{background:var(--vault-surface);border-top:2px solid var(--vault)}.chat-input-bar--vault-open .chat-input{background:#fff;border-color:var(--vault);color:var(--vault-text)}.chat-input-bar--vault-open .chat-input::placeholder{color:var(--vault-text-muted)}.chat-input-bar--vault-open .chat-send{background:var(--vault);color:var(--vault-text)}.btn-vault{width:44px;height:44px;border-radius:50%;border:none;background:#d4af371f;color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-left:auto;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent}.btn-vault--open{background:#d4af3740;color:var(--accent)}.btn-attach{width:42px;height:42px;border-radius:50%;border:none;background:transparent;color:#5a7a6e;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent}.btn-attach:disabled{opacity:.35;cursor:not-allowed}.btn-attach--active{background:#d4af371a}.btn-camera{width:42px;height:42px;border-radius:50%;border:none;background:transparent;color:#5a7a6e;font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent}.btn-camera:disabled{opacity:.35;cursor:not-allowed}.btn-mic{position:relative;width:42px;height:42px;border-radius:50%;border:none;background:transparent;color:#5a7a6e;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.btn-mic--recording{background:#ef44441f;animation:mic-pulse 1s ease-in-out infinite}.btn-mic--processing{background:#d4af371a;opacity:.7}.btn-mic:disabled{opacity:.35;cursor:not-allowed}.btn-mic--denied{opacity:.5;cursor:pointer}.btn-mic--denied:after{content:"";position:absolute;top:50%;left:50%;width:130%;height:2px;background:#ef4444;transform:translate(-50%,-50%) rotate(-45deg);border-radius:1px;pointer-events:none}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.mic-timer{position:absolute;bottom:-14px;left:50%;transform:translate(-50%);font-size:.6rem;color:#ef4444;white-space:nowrap;pointer-events:none}.btn-pause{width:42px;height:42px;border-radius:50%;border:none;background:#d4af3714;color:var(--text);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.btn-pause--paused{border-color:var(--vault);background:#d4af371a}.btn-tts{position:relative;width:42px;height:42px;border-radius:50%;border:none;background:transparent;color:#5a7a6e;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s,background .15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.btn-tts--on{background:#d4af3714;color:var(--accent)}.btn-tts--speaking{animation:tts-speak 1.2s ease-in-out infinite}@keyframes tts-speak{0%,to{box-shadow:0 0 #d4af3766}50%{box-shadow:0 0 0 5px #6366f100}}.btn-tts--vault-muted{border-color:var(--vault);background:#d4af371a;animation:none}.tts-vault-badge{position:absolute;top:-5px;right:-5px;font-size:.65rem;line-height:1;pointer-events:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.5))}.mic-perm-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#ef444414;border-top:1px solid rgba(239,68,68,.25);color:#fca5a5;font-size:13px;flex-shrink:0}.mic-perm-banner span{flex:1}.mic-perm-banner-dismiss{background:none;border:none;color:#fca5a5;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px;flex-shrink:0;-webkit-tap-highlight-color:transparent}.vault-lock-notification{background:var(--vault-surface);border-top:1px solid var(--vault);color:var(--vault-text);font-size:13px;text-align:center;padding:8px 16px;flex-shrink:0}.vault-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;display:flex;align-items:flex-end}.vault-sheet{width:100%;background:var(--surface);border-top:1px solid var(--border);border-radius:20px 20px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.vault-sheet-header{display:flex;align-items:center;justify-content:space-between}.vault-sheet-title{font-size:16px;font-weight:600}.vault-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;line-height:1}.vault-checking{color:var(--text-muted);font-size:15px;text-align:center;padding:12px 0}.vault-hint{font-size:13px;color:var(--text-muted);line-height:1.5}.vault-form{display:flex;flex-direction:column;gap:12px}.vault-input{width:100%;padding:13px 16px;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:16px;outline:none;-webkit-appearance:none}.vault-input:focus{border-color:var(--vault)}.vault-error{color:var(--error);font-size:13px}.vault-btn{width:100%;padding:14px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s}.vault-btn:disabled{opacity:.5;cursor:not-allowed}.vault-btn--primary{background:var(--vault);color:#000}.vault-btn--primary:hover:not(:disabled){opacity:.9}.vault-btn--download{background:var(--surface);color:var(--vault);border:1px solid var(--vault)}.vault-btn--secondary{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.vault-grant-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.vault-recovery-step{display:flex;flex-direction:column;gap:14px}.vault-recovery-warning{font-size:13px;color:var(--vault);font-weight:600;line-height:1.5}.vault-recovery-key{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px;font-family:monospace;font-size:12px;word-break:break-all;color:var(--text);line-height:1.6;-webkit-user-select:all;user-select:all}.chat-bubble--vault{padding:12px 14px;max-width:92%}.vault-item-display{display:flex;flex-direction:column;gap:10px;width:100%}.vault-item-header{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.vault-item-name{font-weight:600;font-size:14px}.vault-item-type{font-size:11px;color:var(--text-muted);background:var(--bg);padding:2px 7px;border-radius:4px}.vault-field{display:flex;flex-direction:column;gap:3px}.vault-field-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.vault-field-value-row{display:flex;align-items:center;gap:6px}.vault-field-value{flex:1;font-size:13px;font-family:monospace;word-break:break-all;color:var(--text)}.vault-field-btn{flex-shrink:0;background:var(--bg);border:1px solid var(--border);color:var(--text-muted);padding:3px 9px;border-radius:5px;font-size:11px;cursor:pointer;-webkit-tap-highlight-color:transparent}.vault-field-btn:active{background:var(--border);color:var(--text)}.chat--vault-open .vault-field-value{color:var(--vault-text)}.chat--vault-open .vault-item-type{color:var(--vault-text-muted);background:var(--vault-bg)}.chat--vault-open .vault-item-header{border-bottom-color:#2c3e3633}.chat--vault-open .vault-field-btn{background:var(--vault-bg);border-color:#2c3e3640;color:var(--vault-text)}.chat--vault-open .vault-field-btn:active{background:#2c3e361a;color:var(--vault-text)}.store-confirm-row{display:flex;gap:10px;padding:4px 2px}.store-confirm-save{flex:1;min-height:44px;background:var(--accent);color:var(--bg);border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.store-confirm-save:hover:not(:disabled){background:var(--accent-hover)}.store-confirm-save:disabled{opacity:.5;cursor:not-allowed}.store-confirm-cancel{flex:1;min-height:44px;background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:8px;font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent}.store-confirm-cancel:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}.store-confirm-cancel:disabled{opacity:.5;cursor:not-allowed}.photo-confirm-row{display:flex;align-items:center;justify-content:space-between;padding:0 2px;font-size:13px}.photo-confirm-label{color:var(--text-muted)}.photo-confirm-cancel{background:none;border:1px solid var(--border);color:var(--text-muted);font-size:12px;padding:3px 10px;border-radius:6px;cursor:pointer;-webkit-tap-highlight-color:transparent}.photo-confirm-cancel:hover{color:var(--text);border-color:var(--text-muted)}.page-ref-card{margin-top:8px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.page-ref-doc{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-ref-page{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.page-ref-types{display:flex;gap:4px;flex-wrap:wrap}.page-ref-type-chip{font-size:10px;color:var(--accent);background:#d4af371a;border-radius:4px;padding:2px 6px}.page-ref-desc{font-size:12px;color:var(--text-muted);line-height:1.4;margin-top:2px}.chat-image-error{display:block;margin-top:8px;font-size:12px;color:var(--text-muted);font-style:italic}.chat-image{display:block;width:100%;max-width:280px;border-radius:10px;margin-top:8px;cursor:pointer;object-fit:cover}.pdf-page-thumb{display:block;width:100%;max-width:280px;margin-top:8px;border-radius:8px;opacity:0;transition:opacity .2s ease;cursor:pointer}.pdf-page-thumb--ready{opacity:1}.pdf-page-thumb--loading{display:flex;align-items:center;justify-content:center;height:120px;background:#ffffff0f;border-radius:8px;opacity:1;cursor:default}.pdf-page-thumb__spinner{display:inline-block;width:28px;height:28px;border:3px solid rgba(255,255,255,.2);border-top-color:#ffffffbf;border-radius:50%;animation:pdf-thumb-spin .7s linear infinite}@keyframes pdf-thumb-spin{to{transform:rotate(360deg)}}.pdf-page-thumb--error{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#ffffff0f;border-radius:8px;opacity:1;cursor:default}.pdf-page-thumb__error-msg{font-size:.8rem;color:#ffffff8c}.pdf-page-thumb__retry{font-size:.75rem;padding:4px 12px;border:1px solid rgba(255,255,255,.25);border-radius:4px;background:transparent;color:#ffffffb3;cursor:pointer}.pdf-page-thumb__retry:hover{background:#ffffff1a}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000}.lightbox-img{max-width:92vw;max-height:88vh;border-radius:10px;object-fit:contain}.lightbox-close{position:absolute;top:16px;right:16px;background:#ffffff26;border:none;color:#fff;font-size:28px;line-height:1;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.admin-nav-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--text-muted);text-decoration:none;flex-shrink:0;-webkit-tap-highlight-color:transparent}.admin-nav-link:hover{color:var(--text);background:#ffffff0f}.admin-page{display:flex;flex-direction:column;height:100dvh;background:#eaede8;color:#1e2d27;font-family:var(--font-body);overflow:hidden}.admin-header{display:flex;align-items:center;gap:14px;padding:14px 20px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0003;flex-shrink:0;position:relative;z-index:10}.admin-back{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;-webkit-tap-highlight-color:transparent}.admin-back:hover{color:var(--accent-hover)}.admin-title{font-size:1rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.admin-filters{flex-shrink:0;padding:12px 16px;border-bottom:1px solid #C8D4CF;display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:45vh;background:#eaede8}.admin-filter-group{display:flex;flex-direction:column;gap:6px}.admin-filter-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#708090}.admin-filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{min-height:36px;padding:0 12px;border:1px solid #C8D4CF;border-radius:16px;background:#fff;color:#5a7a6e;font-size:12px;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:background .1s,color .1s,border-color .1s}.filter-chip:hover{border-color:#5a7a6e;color:#2c3e36}.filter-chip--active{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}.filter-chip--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg)}.admin-asset-search{width:100%;max-width:240px;padding:7px 12px;background:#fff;border:1px solid #C8D4CF;border-radius:8px;color:#2c3e36;font-size:13px;outline:none;-webkit-appearance:none}.admin-asset-search:focus{border-color:var(--accent)}.admin-asset-search::placeholder{color:var(--text-muted)}.admin-clear-filters{align-self:flex-start;background:none;border:1px solid var(--border);color:var(--text-muted);font-size:12px;padding:5px 12px;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.admin-clear-filters:hover{color:var(--text);border-color:var(--text-muted)}.admin-item-count{color:#708090;flex-shrink:0;padding:8px 16px;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border)}.admin-items-list{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.admin-empty{padding:24px 0;text-align:center;font-size:14px;color:var(--text-muted)}.admin-empty--error{color:var(--error)}.admin-item-card{background:#fff;border:1px solid #D4DBD8;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;box-shadow:0 1px 3px #2c3e360f}.admin-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-item-primary{font-size:14px;color:#0f1f18;line-height:1.4;word-break:break-word}.admin-item-secondary{font-size:12px;color:#708090;line-height:1.4;word-break:break-word}.admin-item-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.admin-item-date{font-size:11px;color:#9aaba5;white-space:nowrap;flex-shrink:0}.source-badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;background:#d4af371f;color:var(--accent);flex-shrink:0}.source-badge--vault{background:#d4af3714;color:var(--accent)}.source-badge--document{background:#a0afaa1f;color:var(--text-muted)}.dim-chip{display:inline-block;font-size:10px;color:#708090;background:#f0f3f1;border:1px solid #C8D4CF;border-radius:4px;padding:2px 6px;white-space:nowrap}.dim-chip--asset{color:var(--accent);background:#d4af3714;border-color:#d4af3733}.dim-chip--tag{color:var(--text-muted);font-style:italic}.dim-chip--linked{color:var(--accent);background:#d4af3714;border-color:#d4af3733}.admin-header__right{margin-left:auto;display:flex;align-items:center;gap:12px}.admin-nav{display:flex;gap:4px}.admin-nav-tab{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-muted);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .1s,background .1s}.admin-nav-tab:hover{color:var(--text);background:#ffffff0f}.admin-nav-tab--active{background:#d4af371f;color:var(--accent);font-weight:600}.source-badge--asset{background:#d4af371f;color:var(--accent)}.admin-asset-card{background:#fff;border:1px solid #D4DBD8;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 3px #2c3e360f;transition:border-color .12s,box-shadow .12s}.admin-asset-card:hover{border-color:#5a7a6e;box-shadow:0 2px 8px #2c3e361a}.admin-detail-card{gap:8px}.admin-detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-detail-title{font-size:18px;font-weight:700;color:#0f1f18;line-height:1.3;margin:0}.admin-detail-aliases{display:flex;flex-direction:column;gap:6px;margin-top:4px}.admin-edit-form{display:flex;flex-direction:column;gap:14px}.admin-edit-field{display:flex;flex-direction:column;gap:6px}.admin-required{color:var(--error)}.admin-input{width:100%;padding:8px 12px;background:#fff;border:1px solid #C8D4CF;border-radius:8px;color:#2c3e36;font-size:14px;font-family:var(--font-body);outline:none;box-sizing:border-box;-webkit-appearance:none;transition:border-color .15s}.admin-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d4af3726}.admin-input::placeholder{color:#9aaba5}.admin-select{cursor:pointer}.alias-chip-list{display:flex;flex-wrap:wrap;gap:6px}.alias-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#f0f3f1;border:1px solid #C8D4CF;border-radius:4px;font-size:12px;color:#708090}.alias-chip__remove{background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted);font-size:15px;line-height:1;-webkit-tap-highlight-color:transparent}.alias-chip__remove:hover{color:var(--error)}.admin-add-alias{display:flex;gap:8px;align-items:center}.admin-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:none;font-family:var(--font);-webkit-tap-highlight-color:transparent;transition:background .1s,color .1s,border-color .1s;white-space:nowrap}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn--primary{background:var(--accent);color:var(--bg)}.admin-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.admin-btn--secondary{background:none;border:1px solid var(--border);color:var(--text-muted)}.admin-btn--secondary:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}.admin-btn--sm{padding:7px 12px;font-size:12px;flex-shrink:0}.admin-edit-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-linked-group{background:#fff;border:1px solid #D4DBD8;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 3px #2c3e360f}.admin-linked-item{display:flex;flex-direction:column;gap:3px;padding:6px 0;border-top:1px solid #EEF1EF}.admin-linked-item:first-of-type{border-top:none;padding-top:0}.admin-linked-name{font-size:13px;color:#0f1f18;line-height:1.4;word-break:break-word}.admin-chunk-count{padding-top:2px}.admin-btn--danger{background:none;border:1px solid var(--error);color:var(--error)}.admin-btn--danger:hover:not(:disabled){background:#f871711f}.admin-ops-section{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid #D4DBD8;margin-top:4px}.admin-ops-buttons{display:flex;flex-wrap:wrap;gap:10px}.admin-confirm-panel{background:#fef9e7;border:1px solid #E8D88A;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.admin-confirm-text{font-size:14px;color:#0f1f18;line-height:1.5}.admin-progress{font-size:13px;color:#708090;font-style:italic}.admin-back--disabled,.admin-nav-tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.merge-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:flex-end;justify-content:center;z-index:300;padding:env(safe-area-inset-bottom,0)}@media(min-height:600px){.merge-modal-overlay{align-items:center}}.merge-modal{background:#fff;border:1px solid #D4DBD8;border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@media(min-height:600px){.merge-modal{border-radius:16px}}.merge-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid #D4DBD8;flex-shrink:0}.merge-modal-title{font-size:15px;font-weight:600;color:#0f1f18;margin:0;word-break:break-word}.merge-modal-close{background:none;border:none;color:#708090;font-size:22px;line-height:1;cursor:pointer;padding:4px 8px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;-webkit-tap-highlight-color:transparent}.merge-modal-close:hover:not(:disabled){color:#2c3e36;background:#f0f3f1}.merge-picker-search{margin:12px 12px 0;flex-shrink:0}.merge-picker-list{flex:1;overflow-y:auto;padding:8px 8px 0;display:flex;flex-direction:column;gap:4px}.merge-picker-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border-radius:8px;background:none;border:1px solid transparent;cursor:pointer;text-align:left;font-family:var(--font);-webkit-tap-highlight-color:transparent;transition:background .1s,border-color .1s}.merge-picker-item:hover:not(:disabled){background:#f0f3f1;border-color:#c8d4cf}.merge-picker-item--selected{background:#d4af371a;border-color:var(--accent)}.merge-picker-item:disabled{opacity:.5;cursor:not-allowed}.merge-picker-name{font-size:14px;color:#0f1f18;font-weight:500}.merge-modal-footer{display:flex;gap:10px;flex-wrap:wrap;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #D4DBD8;flex-shrink:0}.admin-dims-body{flex:1;overflow-y:auto;padding:16px 16px calc(32px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:24px}.admin-dims-title-row{display:flex;align-items:center;gap:12px}.dim-saving-indicator{font-size:12px;color:#9aaba5}.admin-error{font-size:13px;color:var(--error);margin:4px 0 0}.admin-error--banner{padding:10px 14px;background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:8px;margin:0}.dim-section{background:#fff;border:1px solid #D4DBD8;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #2c3e360f}.dim-section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid #D4DBD8}.dim-section-title{font-size:14px;font-weight:700;color:#2c3e36;letter-spacing:.02em;text-transform:uppercase}.dim-add-form{padding:14px 16px;border-bottom:1px solid #D4DBD8;display:flex;flex-direction:column;gap:12px}.dim-value-input{color:#708090;font-family:var(--font-mono);font-size:12px}.dim-value-hint{display:block;font-size:11px;color:#9aaba5;margin-top:4px}.dim-list{display:flex;flex-direction:column}.dim-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid #EEF1EF}.dim-item:last-child{border-bottom:none}.dim-item--retired{opacity:.55}.dim-item-labels{display:flex;flex-direction:column;gap:2px;min-width:0}.dim-item-label{font-size:14px;color:var(--text);font-weight:500}.dim-item--retired .dim-item-label{color:var(--text-muted)}.dim-item-value{font-size:11px;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;word-break:break-all}.dim-item-actions{flex-shrink:0}.dim-retire-btn{color:var(--text-muted)}.dim-retired-group{border-top:1px solid var(--border)}.dim-retired-group-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:10px 16px 4px}.dim-confirm-body{padding:16px 20px}
