:root{--bg:#f9f7f4;--surface:#ffffff;--surface-soft:#f4f1ec;--surface-raised:#ebe6df;--text:#1c1814;--text-muted:#7a6e63;--text-faint:#b5aca3;--accent:#8b2635;--accent-strong:#a63042;--accent-dim:#6b1c29;--wine:#8b2635;--gold:#c49a50;--danger:#c83232;--border:#e5e0d7;--border-gold:rgba(139,38,53,0.12);--shadow-sm:0 1px 4px rgba(28,24,20,0.06),0 1px 2px rgba(28,24,20,0.04);--shadow-md:0 4px 20px rgba(28,24,20,0.07),0 2px 8px rgba(28,24,20,0.04);--shadow-lg:0 16px 48px rgba(28,24,20,0.1),0 4px 16px rgba(28,24,20,0.05)}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,sans-serif;font-weight:400;color:var(--text);background:radial-gradient(ellipse 100% 35% at 50% -5%,rgba(139,38,53,.04) 0,transparent 70%),var(--bg);min-height:100dvh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,h4{font-family:Playfair Display,serif;letter-spacing:-.01em}.container{width:min(1120px,92vw);margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);position:relative}.field{display:grid;grid-gap:.5rem;gap:.5rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.field input,.field select,.field textarea{border:1.5px solid var(--border);border-radius:10px;padding:.75rem 1rem;background:var(--surface);color:var(--text);width:100%;min-width:0;font-size:.95rem;font-weight:400;font-family:DM Sans,sans-serif;text-transform:none;letter-spacing:0;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(139,38,53,.08)}.field input[type=file]{padding:.5rem 1rem;color:var(--text-muted);cursor:pointer}.field input[type=file]::-webkit-file-upload-button{background:var(--surface-raised);border:1px solid var(--border);color:var(--accent);padding:.3rem .8rem;border-radius:6px;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.02em;margin-right:.75rem;-webkit-transition:background .2s;transition:background .2s}.field input[type=file]::-webkit-file-upload-button:hover{background:rgba(139,38,53,.06)}.field textarea{min-height:120px;resize:vertical;line-height:1.65}.field select option{background:var(--surface);color:var(--text)}.actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn{border:0;border-radius:10px;padding:.65rem 1.25rem;cursor:pointer;font-weight:500;font-size:.875rem;letter-spacing:.01em;transition:background .2s ease,box-shadow .2s ease,transform .15s ease,color .2s ease,border-color .2s ease;display:inline-flex;align-items:center;gap:.35rem;font-family:DM Sans,sans-serif;white-space:nowrap}.btn-primary{background:var(--accent);color:#ffffff;font-weight:600;box-shadow:0 2px 12px rgba(139,38,53,.22),inset 0 1px 0 rgba(255,255,255,.1)}.btn-primary:hover{background:var(--accent-strong);box-shadow:0 4px 20px rgba(139,38,53,.3);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--text-muted)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(139,38,53,.04)}.btn-danger{background:transparent;border:1.5px solid rgba(200,50,50,.22);color:var(--danger)}.btn-danger:hover{background:rgba(200,50,50,.06);border-color:var(--danger)}.page-title{font-family:Playfair Display,serif;font-size:clamp(1.8rem,1rem + 2.5vw,2.6rem);font-weight:700;margin:0;letter-spacing:-.02em;line-height:1.1;color:var(--text)}.dashboard-header{padding:1.6rem 2rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.filters-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr}@media (min-width:600px){.filters-grid{grid-template-columns:repeat(2,1fr)}}.note-card{overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.note-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.note-img-banner{position:relative;width:100%;height:260px;background:var(--surface-soft)}.note-img-thumb{display:none}.note-body{padding:1.25rem 1.5rem}.note-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.note-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.note-tag{background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;padding:.2rem .65rem;font-size:.72rem;font-weight:500;color:var(--text-muted);letter-spacing:.02em}@media (min-width:540px){.note-img-banner{display:none}.note-img-thumb{display:block}.note-card{display:flex;gap:0}.note-img-thumb{padding:1.25rem 0 1.25rem 1.25rem;flex-shrink:0}.note-body{flex:1 1;min-width:0}}@keyframes skeleton-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{border-radius:6px;background:linear-gradient(90deg,var(--surface-soft) 25%,var(--surface-raised) 50%,var(--surface-soft) 75%);background-size:1200px 100%;animation:skeleton-shimmer 1.6s ease-in-out infinite}.grid{display:grid;grid-gap:1.25rem;gap:1.25rem}.grid>*{min-width:0}@media (min-width:900px){.grid-2{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start}}.desktop-only{display:flex}@media (max-width:767px){.desktop-only{display:none!important}}.bottom-nav{display:none}@media (max-width:767px){body:has(.bottom-nav){padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px))}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:200;height:64px;padding:0 1.5rem env(safe-area-inset-bottom,0);background:rgba(255,255,255,.92);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);border-top:1px solid var(--border);align-items:center;justify-content:space-between;gap:.5rem;overflow:visible}}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.5rem 1.25rem;color:var(--text-faint);transition:color .2s ease,transform .15s ease;font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-family:DM Sans,sans-serif;flex:1 1;text-align:center}.bottom-nav-item svg{width:22px;height:22px;stroke-width:1.5;transition:inherit}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-active{color:var(--accent)}@keyframes fab-glow-pulse{0%,to{box-shadow:0 0 0 5px rgba(249,247,244,.98),0 0 0 7px rgba(139,38,53,.18),0 8px 28px rgba(139,38,53,.32),inset 0 1px 0 rgba(255,255,255,.2)}50%{box-shadow:0 0 0 5px rgba(249,247,244,.98),0 0 0 10px rgba(139,38,53,.08),0 12px 36px rgba(139,38,53,.48),inset 0 1px 0 rgba(255,255,255,.2)}}.bottom-nav-fab-wrap{flex:1 1}.bottom-nav-fab,.bottom-nav-fab-wrap{display:flex;align-items:center;justify-content:center}.bottom-nav-fab{width:60px;height:60px;background:linear-gradient(145deg,var(--accent-strong) 0,var(--accent) 45%,var(--accent-dim) 100%);border-radius:50%;color:#ffffff;transform:translateY(-14px);box-shadow:0 0 0 5px rgba(249,247,244,.98),0 0 0 7px rgba(139,38,53,.18),0 8px 28px rgba(139,38,53,.32),inset 0 1px 0 rgba(255,255,255,.2);animation:fab-glow-pulse 3s ease-in-out infinite;transition:transform .2s ease,box-shadow .15s ease}.bottom-nav-fab svg{width:26px;height:26px;stroke:currentColor;stroke-width:2.5}.bottom-nav-fab:hover{transform:translateY(-16px) scale(1.05)}.bottom-nav-fab:active{transform:translateY(-12px) scale(.95);animation:none;box-shadow:0 0 0 5px rgba(249,247,244,.98),0 0 0 7px rgba(139,38,53,.1),0 4px 14px rgba(139,38,53,.22),inset 0 1px 0 rgba(255,255,255,.15)}.bottom-nav-fab-active{animation:none;box-shadow:0 0 0 5px rgba(249,247,244,.98),0 0 0 9px rgba(139,38,53,.28),0 10px 32px rgba(139,38,53,.45),inset 0 1px 0 rgba(255,255,255,.2)}.profile-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--surface-soft) 0,var(--surface-raised) 100%);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:Playfair Display,serif;font-size:1.6rem;font-weight:700;color:var(--accent);flex-shrink:0;box-shadow:var(--shadow-sm)}