:root { color-scheme:dark; --bg:#0d0f12; --surface:#15181d; --raised:#1b1f25; --text:#f3f5f7; --muted:#9299a4; --line:#292e36; --accent:#b8f24c; --accent-ink:#101508; --danger:#ff7c7c; --radius:18px; }
* { box-sizing:border-box; }
html { min-width:320px; background:var(--bg); }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 50% -10%,rgba(184,242,76,.08),transparent 32rem),var(--bg); color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.5; }
a { color:inherit; } button,input,textarea { font:inherit; } button,a { -webkit-tap-highlight-color:transparent; } svg { width:1.15rem; height:1.15rem; flex:none; } h1,h2,p { margin-top:0; } h1 { margin-bottom:.45rem; font-size:clamp(2rem,7vw,3.6rem); line-height:.98; letter-spacing:-.055em; } h2 { margin-bottom:.55rem; font-size:1.16rem; line-height:1.3; letter-spacing:-.02em; }
.topbar { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; min-height:68px; padding:.75rem max(1rem,calc((100vw - 1060px)/2)); border-bottom:1px solid rgba(255,255,255,.06); background:rgba(13,15,18,.86); backdrop-filter:blur(18px); }
.brand { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; font-weight:700; } .brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--accent); color:var(--accent-ink); }
.login-shell,.app-shell,.editor-shell { width:min(100% - 2rem,1060px); margin-inline:auto; } .login-shell { min-height:100vh; display:grid; place-items:center; padding-block:2rem; } .login-card { width:min(100%,430px); padding:clamp(1.5rem,6vw,2.4rem); border:1px solid var(--line); border-radius:26px; background:rgba(21,24,29,.9); box-shadow:0 28px 70px rgba(0,0,0,.3); }
.lock-mark { display:grid; place-items:center; width:48px; height:48px; margin-bottom:2.2rem; border:1px solid #3a422d; border-radius:14px; background:rgba(184,242,76,.08); color:var(--accent); } .lock-mark svg { width:1.35rem; height:1.35rem; } .login-card h1 { font-size:clamp(2rem,8vw,2.8rem); } .eyebrow { margin-bottom:.75rem; color:var(--accent); font-size:.75rem; font-weight:800; letter-spacing:.14em; } .muted { color:var(--muted); }
.stack { display:grid; gap:.65rem; margin-top:2rem; } label { color:#c7ccd3; font-size:.9rem; font-weight:650; } input,textarea { width:100%; border:1px solid var(--line); border-radius:12px; outline:none; background:#0f1216; color:var(--text); } input { min-height:48px; padding:.7rem .85rem; } textarea { resize:vertical; min-height:250px; padding:.9rem; line-height:1.65; } input:focus,textarea:focus { border-color:#6f8c39; box-shadow:0 0 0 3px rgba(184,242,76,.09); }
.primary-button,.secondary-button,.ghost-button,.icon-button { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:0; cursor:pointer; text-decoration:none; } .primary-button { min-height:48px; padding:.75rem 1rem; border-radius:12px; background:var(--accent); color:var(--accent-ink); font-weight:800; } .primary-button:hover { background:#c6fa62; } .primary-button.inline { width:fit-content; } .secondary-button { min-height:48px; padding:.75rem 1rem; border:1px solid var(--line); border-radius:12px; background:transparent; color:var(--text); font-weight:700; } .ghost-button { min-height:42px; padding:.5rem .7rem; border-radius:10px; background:transparent; color:var(--muted); } .ghost-button:hover,.icon-button:hover { background:var(--raised); color:var(--text); }
.app-shell { padding-block:clamp(2.4rem,7vw,5rem); } .page-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin-bottom:2.2rem; } .page-heading h1 { margin-bottom:.6rem; } .page-heading p:last-child { margin-bottom:0; } .notes-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.note-card { display:flex; flex-direction:column; min-height:250px; padding:1.3rem; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,var(--raised),var(--surface)); transition:transform .18s ease,border-color .18s ease; } .note-card:hover { transform:translateY(-2px); border-color:#3b424d; } .note-main { flex:1; min-width:0; } .note-content { display:-webkit-box; overflow:hidden; color:#bdc2ca; white-space:pre-wrap; overflow-wrap:anywhere; -webkit-line-clamp:6; -webkit-box-orient:vertical; } .note-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1.2rem; border-top:1px solid var(--line); } .note-footer time { color:var(--muted); font-size:.78rem; } .note-actions { display:flex; gap:.25rem; } .note-actions form { display:contents; } .icon-button { width:40px; height:40px; border-radius:10px; background:transparent; color:var(--muted); } .icon-button.danger:hover { background:rgba(255,124,124,.09); color:var(--danger); }
.empty-state { grid-column:1/-1; display:grid; justify-items:center; padding:clamp(3rem,12vw,7rem) 1rem; border:1px dashed #333943; border-radius:var(--radius); text-align:center; } .empty-state p { max-width:30rem; color:var(--muted); } .empty-glyph { margin-bottom:1rem; color:var(--accent); font-size:2rem; } .flash,.alert { padding:.75rem .9rem; border-radius:10px; } .flash { margin:-1rem 0 1.2rem; border:1px solid #3a4a2c; background:rgba(184,242,76,.07); color:#d7f9a0; } .alert { margin:1.2rem 0; border:1px solid #613838; background:rgba(255,124,124,.08); color:#ffc0c0; }
.editor-shell { width:min(100% - 2rem,760px); padding-block:clamp(2rem,7vw,4.5rem); } .back-link { display:inline-flex; align-items:center; gap:.3rem; margin-bottom:1.5rem; color:var(--muted); text-decoration:none; } .back-link:hover { color:var(--text); } .editor-card { padding:clamp(1.25rem,5vw,2.25rem); border:1px solid var(--line); border-radius:22px; background:var(--surface); } .editor-card h1 { font-size:clamp(2rem,7vw,3rem); } .editor-form { display:grid; gap:.6rem; margin-top:2rem; } .editor-form label:not(:first-of-type) { margin-top:.65rem; } .form-actions { display:flex; justify-content:flex-end; gap:.75rem; margin-top:1rem; }
@media (max-width:680px) { .topbar { min-height:60px; } .ghost-button span { display:none; } .app-shell { padding-top:2.2rem; } .page-heading { align-items:flex-start; } .page-heading .primary-button { min-width:48px; padding-inline:.75rem; font-size:0; } .page-heading .primary-button svg { width:1.25rem; height:1.25rem; } .notes-grid { grid-template-columns:1fr; } .note-card { min-height:220px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
