@font-face{font-family:Inter;src:url(/fonts/Inter.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-024F,U+2000-206F,U+20A0-20BF,U+2190-21FF,U+2212,U+2215,U+2018-201F,U+2026,U+2122,U+25A0-25FF,U+2713,U+26A0,U+FFFD}:root{--c-bg: #fbfbfd;--c-surface: #ffffff;--c-surface-2: #f4f5f7;--c-surface-3: #eceef1;--c-text: #14161a;--c-text-2: #545a63;--c-text-3: #868d97;--c-border: #e2e5ea;--c-border-strong: #cbd0d8;--c-accent: #3557d8;--c-accent-hover: #2b46b3;--c-accent-soft: #eef1fd;--c-accent-text: #ffffff;--c-danger: #c0342c;--c-danger-soft: #fdeeed;--c-warn: #96631a;--c-warn-soft: #fdf5e4;--c-ok: #1f7a4d;--c-ok-soft: #eaf6ef;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--r-sm: 6px;--r-md: 9px;--r-lg: 14px;--r-full: 999px;--sh-sm: 0 1px 2px rgb(16 20 28 / .05);--sh-md: 0 2px 4px rgb(16 20 28 / .05), 0 4px 12px rgb(16 20 28 / .06);--sh-lg: 0 8px 24px rgb(16 20 28 / .1), 0 2px 6px rgb(16 20 28 / .05);--ring: 0 0 0 3px color-mix(in srgb, var(--c-accent) 28%, transparent);--t-fast: .12s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme: dark){:root{--c-bg: #0d0f13;--c-surface: #161920;--c-surface-2: #1d212a;--c-surface-3: #262b36;--c-text: #eef0f4;--c-text-2: #a3abb8;--c-text-3: #737b88;--c-border: #272c36;--c-border-strong: #39404d;--c-accent: #7b96f5;--c-accent-hover: #93a9f8;--c-accent-soft: #1a2140;--c-accent-text: #0d0f13;--c-danger: #f08a83;--c-danger-soft: #2c1917;--c-warn: #e0b464;--c-warn-soft: #2a2214;--c-ok: #6dc494;--c-ok-soft: #14261d;--sh-sm: 0 1px 2px rgb(0 0 0 / .3);--sh-md: 0 2px 4px rgb(0 0 0 / .3), 0 4px 12px rgb(0 0 0 / .35);--sh-lg: 0 8px 24px rgb(0 0 0 / .45), 0 2px 6px rgb(0 0 0 / .3)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font);font-size:var(--fs-base);line-height:1.55;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1,"liga" 1,"calt" 1}h1,h2,h3{margin:0;font-weight:620;letter-spacing:-.014em;line-height:1.25}h1{font-size:var(--fs-lg)}h2{font-size:var(--fs-xl)}p{margin:0}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:color-mix(in srgb,var(--c-accent) 22%,transparent)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:var(--s-4);top:var(--s-4);z-index:100;padding:var(--s-2) var(--s-4);background:var(--c-accent);color:var(--c-accent-text);border-radius:var(--r-md);box-shadow:var(--sh-lg)}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-5);background:color-mix(in srgb,var(--c-surface) 88%,transparent);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--c-border)}.brand{display:flex;align-items:center;gap:var(--s-2);font-weight:640;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:linear-gradient(140deg,var(--c-accent),#7a5cf0);color:#fff;font-size:14px;box-shadow:var(--sh-sm)}.header-tools{display:flex;align-items:center;gap:var(--s-3);margin-left:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.lang-picker select{padding:.25rem 1.5rem .25rem .5rem;font:inherit;font-size:var(--fs-xs);color:var(--c-text-2);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-md);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.lang-picker select:hover{color:var(--c-text);border-color:var(--c-border-strong)}.lang-picker select:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}main{padding:var(--s-6) var(--s-5) var(--s-7);max-width:1180px;margin:0 auto}section[data-view]{max-width:27rem;margin:0 auto}section[data-view=vault]{max-width:none}.app-footer{max-width:1180px;margin:var(--s-6) auto 0;padding:var(--s-5);border-top:1px solid var(--c-border);font-size:var(--fs-xs);color:var(--c-text-3);line-height:1.6}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-6);box-shadow:var(--sh-md)}.card-head{margin-bottom:var(--s-5)}.card-head p{margin-top:var(--s-2);color:var(--c-text-2);font-size:var(--fs-sm)}.field{display:block;margin-bottom:var(--s-4)}.field>span{display:block;margin-bottom:var(--s-2);font-size:var(--fs-sm);font-weight:520;color:var(--c-text-2)}input,select,textarea{font:inherit;color:var(--c-text)}.field input,.field select,input[type=text],input[type=email],input[type=password],select{display:block;width:100%;padding:.5rem .75rem;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.field input:hover,select:hover{border-color:color-mix(in srgb,var(--c-accent) 40%,var(--c-border-strong))}.field input:focus,select:focus{outline:none;border-color:var(--c-accent);box-shadow:var(--ring)}.field input:read-only{background:var(--c-surface-2);color:var(--c-text-2);cursor:progress}button{font:inherit;font-weight:520;color:var(--c-text);padding:.4375rem .875rem;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}button:hover:not(:disabled){background:var(--c-surface-2);border-color:var(--c-border-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button[type=submit],.btn-primary{width:100%;padding:.5625rem 1rem;background:var(--c-accent);color:var(--c-accent-text);border-color:transparent;box-shadow:var(--sh-sm)}button[type=submit]:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--c-accent-hover);box-shadow:var(--sh-md)}.btn-link{display:inline-block;margin-top:var(--s-4);padding:0;width:auto;border:none;background:none;color:var(--c-accent);font-weight:520;font-size:var(--fs-sm)}.btn-link:hover:not(:disabled){background:none;text-decoration:underline}form[aria-busy=true] button[type=submit]{position:relative;color:transparent}form[aria-busy=true] button[type=submit]:after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;border:2px solid color-mix(in srgb,var(--c-accent-text) 35%,transparent);border-top-color:var(--c-accent-text);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hint{font-size:var(--fs-sm);color:var(--c-text-2);line-height:1.55}.callout{display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4);margin:var(--s-4) 0;border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.55;border:1px solid transparent}.callout:before{flex:none;font-size:1rem;line-height:1.4}.callout-warn{background:var(--c-warn-soft);border-color:color-mix(in srgb,var(--c-warn) 32%,transparent);color:var(--c-text)}.callout-warn:before{content:"⚠";color:var(--c-warn)}.callout-info{background:var(--c-accent-soft);border-color:color-mix(in srgb,var(--c-accent) 26%,transparent)}.callout-info:before{content:"🔒"}.error{display:block;min-height:1.25em;margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--c-danger)}.error:not(:empty){padding:var(--s-2) var(--s-3);background:var(--c-danger-soft);border-radius:var(--r-sm);border:1px solid color-mix(in srgb,var(--c-danger) 28%,transparent)}#notice{position:fixed;left:50%;bottom:var(--s-5);transform:translate(-50%);z-index:60;max-width:min(34rem,calc(100vw - 2rem));padding:var(--s-3) var(--s-4);background:var(--c-surface);border:1px solid var(--c-border-strong);border-left:3px solid var(--c-accent);border-radius:var(--r-md);box-shadow:var(--sh-lg);font-size:var(--fs-sm);animation:notice-in .2s cubic-bezier(.2,.8,.3,1)}#notice[data-error=true]{border-left-color:var(--c-danger);color:var(--c-danger)}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,8px)}}#status{display:inline-flex;align-items:center;gap:var(--s-2);padding:.25rem .6875rem;font-size:var(--fs-xs);font-weight:520;color:var(--c-text-2);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-full)}#status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}#status[data-status=idle],#status[data-status=saved]{color:var(--c-ok);background:var(--c-ok-soft);border-color:color-mix(in srgb,var(--c-ok) 25%,transparent)}#status[data-status=saving],#status[data-status=syncing],#status[data-status=conflict]{color:var(--c-warn);background:var(--c-warn-soft);border-color:color-mix(in srgb,var(--c-warn) 28%,transparent)}#status[data-status=syncing]:before,#status[data-status=saving]:before{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}#status[data-status=error],#status[data-status=offline]{color:var(--c-danger);background:var(--c-danger-soft);border-color:color-mix(in srgb,var(--c-danger) 28%,transparent)}.recovery-key{display:block;padding:var(--s-5) var(--s-4);margin:var(--s-4) 0;font-family:var(--font-mono);font-size:1.0625rem;font-weight:500;letter-spacing:.06em;text-align:center;word-break:break-all;user-select:all;color:var(--c-text);background:var(--c-surface-2);border:1px dashed var(--c-border-strong);border-radius:var(--r-md)}#copy-recovery{margin-bottom:var(--s-5)}.recovery-inputs{display:flex;gap:var(--s-2);flex-wrap:wrap;margin:var(--s-3) 0 var(--s-5)}.recovery-inputs label{display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--fs-xs);color:var(--c-text-2)}.recovery-inputs input{width:5.5rem;padding:.4375rem .5rem;font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.08em;text-align:center;text-transform:uppercase;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-sm)}.recovery-inputs input:focus{outline:none;border-color:var(--c-accent);box-shadow:var(--ring)}.toolbar{display:flex;gap:var(--s-2);align-items:center;padding:var(--s-2) var(--s-3);margin-bottom:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.toolbar button{flex:none;padding:.4375rem .75rem;font-size:var(--fs-sm)}.toolbar .btn-quiet{color:var(--c-text-2);background:transparent;border-color:transparent}.toolbar .btn-quiet:hover:not(:disabled){background:var(--c-surface-2);color:var(--c-text)}.toolbar-sep{width:1px;height:22px;background:var(--c-border);margin:0 var(--s-1)}.toolbar-spacer{flex:1 1 auto}.search-wrap{position:relative;flex:1 1 15rem;min-width:11rem}.search-wrap:before{content:"⌕";position:absolute;left:.6875rem;top:50%;transform:translateY(-50%);font-size:1.0625rem;color:var(--c-text-3);pointer-events:none}.toolbar input[type=search]{width:100%;padding:.4375rem .75rem .4375rem 2rem;background:var(--c-surface-2);border:1px solid transparent;border-radius:var(--r-md);transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}.toolbar input[type=search]:focus{outline:none;background:var(--c-surface);border-color:var(--c-accent);box-shadow:var(--ring)}.toolbar input[type=file]{display:none!important}.counts{margin:0 0 var(--s-3) var(--s-1);font-size:var(--fs-xs);color:var(--c-text-3)}.tree-container{min-height:8rem;max-height:62vh;overflow:auto;padding:var(--s-2);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);scrollbar-width:thin}.tree-container:focus-visible{border-color:var(--c-accent);box-shadow:var(--ring);outline:none}ul.tree,ul.tree ul{list-style:none;margin:0;padding:0}.tree-row{display:flex;align-items:center;gap:var(--s-2);min-width:0;padding:.25rem var(--s-2);border-radius:var(--r-sm);cursor:default;transition:background var(--t-fast)}ul.tree ul{margin-left:1.0625rem;border-left:1px solid var(--c-border)}.tree-row:hover{background:var(--c-surface-2)}.tree-row.selected{background:var(--c-accent-soft);box-shadow:inset 2px 0 0 var(--c-accent)}.tree-row.dragging{opacity:.4}.twisty{flex:none;width:18px;height:18px;padding:0;display:grid;place-items:center;font-size:9px;color:var(--c-text-3);background:none;border:none;border-radius:var(--r-sm);transition:transform var(--t-fast),background var(--t-fast)}.twisty:hover:not(:disabled){background:var(--c-surface-3);color:var(--c-text)}.icon{flex:none;display:grid;place-items:center;width:20px;height:20px;font-size:13px;border-radius:var(--r-sm)}.icon svg{display:block}.icon-folder{color:#d09a2c;background:transparent}.icon-bookmark{background:transparent}.title{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}.tree-row .title:only-of-type,.folder-row .title{font-weight:520}.url{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);color:var(--c-text-3)}.warning{flex:none;padding:.0625rem .375rem;font-size:var(--fs-xs);font-weight:520;color:var(--c-danger);background:var(--c-danger-soft);border-radius:var(--r-full);white-space:nowrap}.tree-row.drop-before{box-shadow:inset 0 2px 0 0 var(--c-accent)}.tree-row.drop-after{box-shadow:inset 0 -2px 0 0 var(--c-accent)}.tree-row.drop-inside{background:var(--c-accent-soft);outline:2px dashed var(--c-accent);outline-offset:-2px}.tree-row.drop-forbidden{background:var(--c-danger-soft);outline:2px dashed var(--c-danger);outline-offset:-2px;cursor:not-allowed}.tree-empty{padding:var(--s-7) var(--s-4);text-align:center;color:var(--c-text-3)}.tree-empty strong{display:block;margin-bottom:var(--s-1);color:var(--c-text-2);font-weight:560}.help{margin-top:var(--s-4);font-size:var(--fs-sm)}.help summary{cursor:pointer;color:var(--c-text-2);padding:var(--s-2) 0;font-weight:520;list-style:none}.help summary::-webkit-details-marker{display:none}.help summary:before{content:"▸ ";color:var(--c-text-3)}.help[open] summary:before{content:"▾ "}.help summary:hover{color:var(--c-text)}.help dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--s-2) var(--s-5);margin:var(--s-2) 0 0;padding:var(--s-4);background:var(--c-surface-2);border-radius:var(--r-md)}.help dt{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text-2)}.help dd{margin:0;font-size:var(--fs-sm);color:var(--c-text-2)}@media (max-width: 860px){main{padding:var(--s-4) var(--s-3) var(--s-6)}.card{padding:var(--s-5) var(--s-4)}.url{display:none}.toolbar{flex-wrap:wrap;gap:var(--s-1)}.toolbar-sep,.toolbar-spacer{display:none}.search-wrap{flex:1 1 100%;order:-1;margin-bottom:var(--s-1)}.toolbar button{flex:1 1 auto;min-width:0;font-size:var(--fs-sm)}#notice{left:var(--s-3);right:var(--s-3);transform:none;max-width:none}@keyframes notice-in{0%{opacity:0;transform:translateY(8px)}}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: more){:root{--c-border: var(--c-text-3);--c-border-strong: var(--c-text-2)}}.btn-danger-quiet{color:var(--c-danger);background:transparent;border:1px solid transparent}.btn-danger-quiet:hover{background:var(--c-danger-soft);border-color:color-mix(in srgb,var(--c-danger) 28%,transparent)}.danger-box{padding:var(--s-5);margin-bottom:var(--s-5);background:var(--c-danger-soft);border:1px solid color-mix(in srgb,var(--c-danger) 28%,transparent);border-radius:var(--r-lg)}.danger-box p{font-size:var(--fs-sm);line-height:1.65}.danger-box p+p{margin-top:var(--s-3)}.btn-danger{width:100%;color:#fff;background:var(--c-danger);border:1px solid transparent}.btn-danger:hover{background:color-mix(in srgb,var(--c-danger) 85%,black)}[data-view=cancel-deletion] [data-status=ok]{color:var(--c-success, var(--c-text))}[data-view=cancel-deletion] [data-status=error]{color:var(--c-danger)}
