@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{min-height:100vh;margin:0}:root{--bg:#06080f;--bg2:#0d1220;--bg3:#131a2e;--gold:#d4a853;--gold-bright:#e8c878;--gold-dim:#8a7240;--text:#d4d8e0;--text2:#7a8290;--text3:#4a5060;--danger:#c65555;--border:#d4a8530f;--border-active:#d4a85333;--radius:14px;--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.4}#root{z-index:1;flex-direction:column;height:100vh;display:flex;position:relative}.starfield{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.starfield .dust{opacity:0;width:1px;height:1px;animation:twinkle var(--dur,4s) ease-in-out infinite var(--delay,0s);background:#fff;border-radius:50%;position:absolute}@keyframes twinkle{0%,to{opacity:0}50%{opacity:var(--max,.4)}}.starfield .nebula{filter:blur(80px);opacity:.08;pointer-events:none;border-radius:50%;position:absolute}.app{z-index:2;flex-direction:column;flex:1;height:100vh;display:flex;position:relative}.header{z-index:100;-webkit-backdrop-filter:blur(12px);padding:14px 20px;padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--border);background:#06080fd9;align-items:center;gap:8px;display:flex;position:sticky;top:0}.header .app-title{font-family:var(--serif);letter-spacing:.02em;color:var(--gold);font-size:20px;font-weight:400}.content-area{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;position:relative;overflow-y:auto}.tab-bar{-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:10px 0 calc(28px + env(safe-area-inset-bottom));z-index:100;background:#0d1220e6;display:flex;position:sticky;bottom:0}.tab-item{color:var(--text3);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px 0;font-size:10px;font-weight:500;transition:color .2s;display:flex}.tab-item.active{color:var(--gold)}.tab-icon{font-size:20px;line-height:1}.tab-label{font-size:10px;line-height:1;font-family:var(--serif);letter-spacing:.05em}.lib-search-wrap{padding:10px 16px 6px}.search-input{border:1px solid var(--border);width:100%;color:var(--text);font-size:15px;font-family:var(--sans);background:#0d122080;border-radius:12px;padding:11px 16px}.search-input::placeholder{color:var(--text3)}.search-input:focus{border-color:var(--border-active);outline:none}.item-list{-webkit-overflow-scrolling:touch;flex:1;padding:8px 16px 80px;overflow-y:auto}.card{border:1px solid var(--border);border-radius:var(--radius);cursor:default;background:#0d122073;align-items:flex-start;gap:10px;margin-bottom:8px;padding:14px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.card:active{border-color:var(--border-active);box-shadow:0 0 12px #d4a8530f}.card-main{flex:1;min-width:0}.card-title{font-family:var(--serif);word-wrap:break-word;color:#e8eaf0;font-size:17px;font-weight:500}.card-sub{color:var(--text2);margin-top:3px;font-size:13px}.card-desc{color:var(--text2);word-wrap:break-word;margin-top:5px;font-size:13px;line-height:1.5}.card-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.card-actions{flex-shrink:0;gap:4px;display:flex}.card-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#d4a8530a;border-radius:8px;justify-content:center;align-items:center;padding:6px 10px;font-size:16px;text-decoration:none;transition:all .15s;display:flex}.card-btn:active{color:var(--gold);background:#d4a8531a}.card-btn-danger{color:var(--danger)}.card-btn-danger:active{background:#c655551f}.badge{color:var(--gold-dim);background:#d4a8530f;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.badge-tag{color:var(--gold);background:#d4a8531a}.badge-muted{opacity:.4;background:0 0;font-size:10px}.fab{right:20px;bottom:calc(72px + env(safe-area-inset-bottom));background:var(--gold);color:#06080f;cursor:pointer;z-index:50;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;transition:transform .15s;display:flex;position:fixed;box-shadow:0 4px 20px #d4a85340}.fab:active{transform:scale(.92)}.fab:disabled{opacity:.5}.fab-left{color:var(--gold);border:1px solid var(--border-active);background:#0d1220cc;font-size:20px;left:20px;right:auto}.fab-group{right:20px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:50;position:fixed}.fab-group .fab{position:relative;bottom:auto;right:auto}.fab-group .fab-left{margin-right:8px;position:relative;bottom:auto;left:auto}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:200;background:#06080fb3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg2);border:1px solid var(--border);width:100%;max-width:500px;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:90vh;overflow-y:auto}.modal h2{font-family:var(--serif);text-align:center;color:var(--gold);margin-bottom:20px;font-size:20px;font-weight:400}.field{margin-bottom:16px}.field label{color:var(--text2);font-size:13px;font-family:var(--serif);letter-spacing:.02em;margin-bottom:6px;display:block}.field input,.field textarea,.field select{border:1px solid var(--border);width:100%;color:var(--text);font-size:15px;font-family:var(--sans);resize:vertical;background:#06080f99;border-radius:10px;padding:11px 14px}.field textarea{min-height:60px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--border-active);outline:none}.modal-actions{gap:10px;margin-top:20px;display:flex}.btn{cursor:pointer;border:none;border-radius:12px;flex:1;padding:13px;font-size:15px;font-weight:600;transition:opacity .15s}.btn-primary{background:var(--gold);color:#06080f}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#d4a8530f}.btn-danger{color:var(--danger);background:#c655551a}.btn:active{opacity:.8}.empty{text-align:center;color:var(--text3);padding:80px 20px}.empty .icon{opacity:.2;margin-bottom:16px;font-size:48px}.empty p{font-family:var(--serif);font-size:16px}.breadcrumbs{flex-wrap:wrap;align-items:center;padding:6px 16px 10px;font-size:13px;display:flex}.crumb{color:var(--gold-dim);cursor:pointer;padding:2px 4px;transition:color .15s}.crumb:active{color:var(--gold)}.crumb-sep{color:var(--text3);margin:0 2px}.note-viewer{-webkit-overflow-scrolling:touch;flex:1;padding:8px 16px 80px;overflow-y:auto}.note-back{color:var(--gold-dim);cursor:pointer;margin-bottom:16px;font-size:15px;font-weight:500;transition:color .15s}.note-back:active{color:var(--gold)}.note-title{font-family:var(--serif);color:#e8eaf0;margin-bottom:10px;font-size:24px;font-weight:400}.note-tags{flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.note-body{border:1px solid var(--border);background:#0d122066;border-radius:14px;padding:20px;font-size:15px;line-height:1.7}.note-body h1{font-family:var(--serif);color:var(--gold);margin-bottom:14px;font-size:22px}.note-body h2{font-family:var(--serif);color:#e8eaf0;margin:18px 0 10px;font-size:18px}.note-body h3{color:var(--text2);margin:14px 0 8px;font-size:15px}.note-body p{margin-bottom:12px}.note-body ul{margin-bottom:12px;padding-left:20px}.note-body li{margin-bottom:5px}.note-body pre{border:1px solid var(--border);background:#06080f80;border-radius:10px;margin:12px 0;padding:14px;overflow-x:auto}.note-body code{font-family:SF Mono,Fira Code,monospace;font-size:13px}.note-body strong{color:#e8eaf0;font-weight:600}.note-body .task-item{padding:3px 0}.note-body .task-item.done{opacity:.5;text-decoration:line-through}.note-body a{color:var(--gold);text-decoration:none}.note-actions{gap:10px;margin-top:20px;display:flex}@media (width>=500px){.fab{right:calc(50% - 230px)}.fab-left{left:calc(50% - 230px)}.fab-group{right:calc(50% - 230px)}}
