:root{--blush: #f6c9de;--blush-soft: #fbe7f1;--lav: #d9c7f0;--lav-soft: #ece3fa;--mint: #bfe3d6;--mint-soft: #ddf1ea;--peach: #ffd9c7;--cream: #fffaf6;--card: #ffffff;--ink: #574561;--ink-soft: #8a7a92;--line: #f0e6ee;--shadow: 0 10px 30px rgba(150, 110, 150, .12);--shadow-sm: 0 4px 14px rgba(150, 110, 150, .1);--radius: 22px;--grad: linear-gradient(135deg, #f6c9de 0%, #d9c7f0 55%, #bfe3d6 100%)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--cream);color:var(--ink);font-family:Quicksand,system-ui,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500}input,textarea,button{font-family:inherit}button{cursor:pointer;border:none;background:none;color:inherit}.btn-primary{background:var(--grad);color:#4a3553;font-weight:600;padding:12px 20px;border-radius:999px;box-shadow:var(--shadow-sm);transition:transform .12s ease,filter .12s ease}.btn-primary:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:#fff;color:var(--ink);font-weight:600;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);box-shadow:var(--shadow-sm)}.btn-ghost:hover{border-color:var(--blush)}.btn-text{color:var(--ink-soft);font-weight:600;padding:6px 8px;font-size:.9rem}.btn-text:hover{color:var(--ink)}.splash{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--grad)}.splash-mark{font-family:Fraunces,serif;font-size:2rem;color:#fff;letter-spacing:.5px}.splash-dots{display:flex;gap:8px}.splash-dots span{width:10px;height:10px;border-radius:50%;background:#fff;opacity:.7;animation:bob 1s infinite ease-in-out}.splash-dots span:nth-child(2){animation-delay:.15s}.splash-dots span:nth-child(3){animation-delay:.3s}@keyframes bob{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-7px);opacity:1}}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--lav-soft),transparent),radial-gradient(800px 500px at 10% 110%,var(--mint-soft),transparent),var(--cream)}.auth-card{position:relative;overflow:hidden;width:100%;max-width:380px;background:var(--card);border-radius:28px;padding:38px 30px 30px;box-shadow:var(--shadow)}.auth-bloom{position:absolute;inset:-60% 30% auto -30%;height:220px;background:var(--grad);filter:blur(50px);opacity:.35;pointer-events:none}.brand{text-align:center;margin-bottom:26px;position:relative}.brand-leaf{font-size:2.4rem}.brand h1{margin:6px 0 2px;font-size:1.7rem;color:var(--ink)}.brand-sub{margin:0;color:var(--ink-soft);letter-spacing:2px;font-size:.72rem;text-transform:uppercase}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{font-weight:600;font-size:.9rem;color:var(--ink);margin-left:4px}.auth-form input{padding:14px 16px;border-radius:16px;border:1.5px solid var(--line);background:#fdf8fb;font-size:1.05rem;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--lav);box-shadow:0 0 0 4px var(--lav-soft)}.auth-form .btn-primary{margin-top:4px;padding:14px;font-size:1rem}.auth-hint{color:var(--ink-soft);font-size:.8rem;text-align:center;margin:6px 2px 0;line-height:1.4}.auth-error{margin-top:14px;padding:10px 14px;border-radius:14px;background:#fdeaf1;color:#a85878;font-size:.85rem;text-align:center}.auth-foot{margin-top:22px;color:var(--ink-soft);font-size:.72rem;letter-spacing:.5px}.app{max-width:760px;margin:0 auto;padding:18px 16px 60px;min-height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 18px;gap:10px;flex-wrap:wrap}.app-brand{display:flex;align-items:center;gap:12px}.app-bloom{font-size:1.6rem;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:var(--grad);box-shadow:var(--shadow-sm)}.app-title{font-family:Fraunces,serif;font-size:1.2rem;color:var(--ink);line-height:1.1}.app-greeting{font-size:.78rem;color:var(--ink-soft)}.header-actions{display:flex;gap:8px;flex-shrink:0}.btn-small{padding:8px 14px;font-size:.82rem}.app-foot{margin-top:18px;padding:12px 16px;text-align:center;color:var(--ink-soft);font-size:.74rem;line-height:1.4}.tabbar{display:flex;gap:6px;padding:6px;margin-bottom:18px;background:#fff;border-radius:999px;box-shadow:var(--shadow-sm)}.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 6px;border-radius:999px;font-weight:600;color:var(--ink-soft);font-size:.88rem;transition:all .15s ease;white-space:nowrap}.tab-icon{font-size:.95rem}.tab-active{background:var(--grad);color:#4a3553;box-shadow:var(--shadow-sm)}.panel{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.panel-head{margin-bottom:16px}.panel-head-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}.panel-head-row .btn-primary{flex-shrink:0}.panel-head-row .search{flex:1;min-width:160px}.search{position:relative;display:flex;align-items:center;margin-bottom:22px}.search-icon{position:absolute;left:16px;font-size:1.15rem;font-weight:700;color:#b07fc7;pointer-events:none}.search-input{width:100%;padding:12px 40px 12px 42px;border-radius:999px;border:1.5px solid #ecd9ee;background:#fff;font-size:.95rem;color:var(--ink);outline:none;box-shadow:0 3px 12px #966e961a;transition:border-color .15s,box-shadow .15s}.search-input::placeholder{color:#b9a6c2}.search-input:focus{border-color:var(--lav);box-shadow:0 0 0 4px var(--lav-soft)}.search-clear{position:absolute;right:8px;width:26px;height:26px;border-radius:50%;font-size:1.2rem;line-height:1;color:var(--ink-soft);display:grid;place-items:center}.search-clear:hover{background:#fdeaf1;color:#a85878}.panel-head-row .search{margin-bottom:0}.empty{text-align:center;color:var(--ink-soft);padding:34px 10px;font-size:.95rem}.add-row{display:flex;gap:10px;margin-bottom:18px}.add-row input{flex:1;padding:13px 16px;border-radius:14px;border:1.5px solid var(--line);background:#fdf8fb;font-size:1rem;color:var(--ink);outline:none}.add-row input:focus{border-color:var(--blush);box-shadow:0 0 0 4px var(--blush-soft)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.list-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;background:#fdf8fb;border:1.5px solid var(--line);transition:background .15s}.list-item:hover{background:var(--blush-soft)}.list-item.is-done{opacity:.62}.list-item.is-done .list-text{text-decoration:line-through}.list-text{flex:1;line-height:1.35}.check{width:24px;height:24px;border-radius:50%;border:2px solid var(--lav);flex-shrink:0;display:grid;place-items:center;color:#fff;font-size:.8rem;transition:all .15s}.check:hover{background:var(--lav-soft)}.check.checked{background:var(--grad);border-color:transparent}.del{width:26px;height:26px;border-radius:50%;color:var(--ink-soft);font-size:1.3rem;line-height:1;flex-shrink:0;display:grid;place-items:center;transition:all .15s}.del:hover{background:#fdeaf1;color:#a85878}.list-divider{margin:18px 4px 8px;color:var(--ink-soft);font-size:.8rem;font-weight:600}.note-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.note-card{position:relative;cursor:pointer;padding:16px;border-radius:18px;background:linear-gradient(160deg,#fff,var(--blush-soft));border:1.5px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .12s ease;min-height:110px;overflow:hidden}.note-card:nth-child(3n+2){background:linear-gradient(160deg,#fff,var(--lav-soft))}.note-card:nth-child(3n){background:linear-gradient(160deg,#fff,var(--mint-soft))}.note-card:hover{transform:translateY(-2px)}.note-card h3{margin:0 0 6px;font-size:1.02rem;color:var(--ink);padding-right:44px}.note-card p{margin:0;font-size:.85rem;color:var(--ink-soft);line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.note-pinned{position:absolute;top:10px;left:12px;font-size:.8rem;opacity:.9}.note-card-tools{position:absolute;top:7px;right:7px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.note-card:hover .note-card-tools{opacity:1}.mini{width:26px;height:26px;border-radius:50%;font-size:.85rem;line-height:1;display:grid;place-items:center;color:var(--ink-soft);background:#fff9}.mini:hover{background:#fff}.mini.mini-on{filter:none;opacity:1}.mini[aria-label=Delete]{font-size:1.2rem}.mini[aria-label=Delete]:hover{background:#fdeaf1;color:#a85878}@media (hover: none){.note-card-tools{opacity:1}}.note-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:4px 2px}.swatches{display:flex;gap:8px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--line);transition:transform .12s}.swatch:hover{transform:scale(1.1)}.swatch-on{box-shadow:0 0 0 2.5px var(--lav);transform:scale(1.12)}.pin-toggle{padding:8px 14px;border-radius:999px;font-size:.82rem;font-weight:600;background:#fff;border:1.5px solid var(--line);color:var(--ink-soft)}.pin-toggle.pin-on{background:var(--lav-soft);border-color:var(--lav);color:var(--ink)}.note-editor{display:flex;flex-direction:column;gap:12px}.note-title-input{padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:#fdf8fb;font-size:1.15rem;font-family:Fraunces,serif;color:var(--ink);outline:none}.note-body-input{min-height:240px;padding:14px;border-radius:16px;border:1.5px solid var(--line);background:#fdf8fb;font-size:1rem;color:var(--ink);outline:none;resize:vertical;line-height:1.5}.note-title-input:focus,.note-body-input:focus{border-color:var(--lav);box-shadow:0 0 0 4px var(--lav-soft)}.editor-actions{display:flex;justify-content:flex-end;gap:10px}.vault-list{display:flex;flex-direction:column;gap:12px}.vault-card{padding:16px;border-radius:18px;background:#fdf8fb;border:1.5px solid var(--line)}.vault-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.vault-card-head h3{margin:0;font-size:1.1rem;color:var(--ink)}.vault-card-actions{display:flex;align-items:center;gap:4px}.vault-field{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px dashed var(--line)}.vault-label{width:42px;font-size:.72rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px}.vault-value{flex:1;word-break:break-all;font-size:.95rem}.vault-value.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:1px}.muted{color:var(--ink-soft)}.chip{padding:5px 12px;border-radius:999px;font-size:.76rem;font-weight:600;background:#fff;border:1.5px solid var(--line);color:var(--ink-soft);transition:all .15s}.chip:hover{border-color:var(--lav);color:var(--ink)}.vault-link{display:inline-block;margin-top:8px;color:#9a6fb0;font-size:.85rem;font-weight:600;text-decoration:none}.vault-link:hover{text-decoration:underline}.vault-notes{margin:8px 0 0;font-size:.85rem;color:var(--ink-soft);line-height:1.4;white-space:pre-wrap}.vault-editor{display:flex;flex-direction:column;gap:6px}.vault-editor label{font-weight:600;font-size:.85rem;color:var(--ink);margin:8px 4px 2px}.vault-editor .req{color:var(--blush)}.vault-editor input,.vault-editor textarea{padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:#fdf8fb;font-size:1rem;color:var(--ink);outline:none}.vault-editor textarea{min-height:80px;resize:vertical;line-height:1.5}.vault-editor input:focus,.vault-editor textarea:focus{border-color:var(--lav);box-shadow:0 0 0 4px var(--lav-soft)}.vault-editor .editor-actions{margin-top:14px}.contact-card{padding:16px;border-radius:18px;background:#fdf8fb;border:1.5px solid var(--line)}.contact-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}.contact-top h3{margin:0;flex:1;font-size:1.08rem;color:var(--ink)}.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--grad);color:#4a3553;font-weight:700;font-size:.85rem;box-shadow:var(--shadow-sm)}.vault-value.link{color:#9a6fb0;text-decoration:none}.vault-value.link:hover{text-decoration:underline}@media (max-width: 480px){.tab-icon{display:none}.tab{font-size:.82rem;padding:11px 4px}.app-title{font-size:1.05rem}.app-greeting{display:none}.btn-small{padding:7px 11px;font-size:.78rem}}
