@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--ink:#20243a;--muted:#81879a;--line:#e9eaf2;--purple:#6558e8;--purple-dark:#5043d2;--wash:#f7f7fc;--white:#fff;--green:#198568;--red:#b83245}
*{box-sizing:border-box}
body{margin:0;background:#f7f8fc;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}
button,input,textarea{font:inherit}
.logo{height:40px;}
a{color:inherit;text-decoration:none}
.app-shell{min-height:100vh}
.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1180px)/2))}
.brand,.top-actions,.card-heading,.feed-toolbar,.feed-toolbar>div,.post-head,.post-actions{display:flex;align-items:center}
.brand{gap:11px;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;letter-spacing:-.5px}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:white;background:linear-gradient(135deg,#8173ff,#5545d8);font-size:13px;font-weight:800;box-shadow:0 5px 12px #6558e833}
.top-actions{gap:12px}.inline-form{margin:0}.admin-pill{border-radius:30px;padding:8px 11px;background:#e8f7f1;color:#187b5f;font-size:12px;font-weight:700}
.button{border:0;border-radius:10px;min-height:40px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;cursor:pointer;transition:transform .15s,background .15s}
.button:hover{transform:translateY(-1px)}.button-light{background:#f4f4fa;color:#4d5267}.primary{background:var(--purple);color:#fff}.primary:hover{background:var(--purple-dark)}.full{width:100%}
.main{max-width:1180px;margin:0 auto;padding:36px 24px 20px}
.welcome{position:relative;overflow:hidden;border-radius:20px;background:linear-gradient(110deg,#26254d,#443c86 70%,#6659b8);color:white;padding:32px 36px;display:flex;justify-content:space-between;align-items:center;min-height:178px;margin-bottom:28px}
.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#c9c5ff;margin:0 0 10px}
.welcome h1{font-family:Manrope,sans-serif;font-size:29px;line-height:1.2;letter-spacing:-1px;margin:0 0 9px}.welcome-copy{color:#d8d6f5;margin:0}
.welcome-art{position:relative;width:150px;height:110px;flex:none;opacity:.9}.welcome-art span{position:absolute;right:44px;top:4px;font-size:78px;color:#c5bdff}.welcome-art i{position:absolute;right:0;bottom:6px;font-style:normal;font-size:50px;color:#f6c5d8}.welcome-art b{position:absolute;right:63px;bottom:0;border:1px solid #ffffff65;border-radius:12px;padding:10px 14px;font-size:22px;background:#ffffff16}
.content-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:25px;align-items:start}
.compose-column{display:flex;flex-direction:column;gap:15px}.card{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px #2c315009}.compose-card{padding:22px}
.card-heading{gap:11px;margin-bottom:20px}.card-heading h2,.sign-in-card h2{font-size:16px;margin:0 0 4px;font-family:Manrope,sans-serif}.card-heading p{margin:0;color:var(--muted);font-size:12px}
.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;font-size:19px;font-weight:700;flex:none}.avatar-purple{background:#eeebff;color:#6558e8}
label{display:block;font-size:12px;font-weight:700;color:#464b60;margin:15px 0 7px}label span{color:#e25e79}
input,textarea{width:100%;border:1px solid #e4e5ee;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);outline:none;transition:border .15s,box-shadow .15s}
input:focus,textarea:focus{border-color:#8c82f2;box-shadow:0 0 0 3px #6558e815}textarea{resize:vertical;min-height:105px;line-height:1.55}
input::placeholder,textarea::placeholder{color:#a8adbd}.field-hint{font-size:11px;line-height:1.5;color:var(--muted);margin:6px 0 2px}
#publishButton{margin-top:20px;min-height:44px}.sign-in-card{padding:24px}.sign-in-card h2{margin-top:15px}.sign-in-card p{color:var(--muted);line-height:1.7;margin:9px 0 18px}
.privacy-note{display:flex;gap:10px;padding:13px 15px;color:#716f98;background:#efeffb;border-radius:12px}.privacy-note>span{font-size:20px}.privacy-note p{font-size:11px;line-height:1.65;margin:0}.privacy-note strong{font-size:12px;color:#46416f}
.feed-column{min-width:0}.feed-toolbar{justify-content:space-between;gap:15px;margin:0 0 17px}.feed-toolbar>div:first-child{display:block}.feed-toolbar h2{font-family:Manrope,sans-serif;font-size:19px;margin:0 0 5px}.muted{color:var(--muted);font-size:12px;margin:0}
.search-box{position:relative;width:min(300px,55%)}.search-box>span{position:absolute;left:12px;top:8px;font-size:25px;line-height:20px;color:#9297aa;pointer-events:none}.search-box input{padding-left:39px;height:42px;border-radius:11px;background:#fff}
.suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #1d23401c;overflow:hidden;z-index:20}.suggestion{display:block;width:100%;border:0;border-bottom:1px solid #f1f1f6;background:white;text-align:left;padding:12px 14px;cursor:pointer;color:var(--ink)}.suggestion:last-child{border-bottom:0}.suggestion:hover,.suggestion:focus{background:#f6f4ff;outline:none}.suggestion-title{font-weight:700;font-size:13px;display:block;overflow-wrap:anywhere}.suggestion-slug{display:block;font-size:11px;color:#8a8da1;margin-top:4px;overflow-wrap:anywhere}
.feed-list{display:flex;flex-direction:column;gap:14px}.post-card{padding:20px 21px;background:white;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 18px #252b4007;min-width:0}.post-head{justify-content:space-between;gap:12px;align-items:flex-start}.post-author{display:flex;align-items:center;gap:10px;min-width:0}.post-avatar{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:12px;background:#f0edff;color:#6458dd;font-weight:800;font-size:12px}.post-byline{min-width:0}.post-byline strong{font-size:13px;display:block}.post-date{display:block;color:#969bad;font-size:11px;margin-top:4px}.post-title{font-family:Manrope,sans-serif;font-size:18px;line-height:1.4;letter-spacing:-.35px;margin:17px 0 7px;overflow-wrap:anywhere}.post-description{font-size:13px;line-height:1.75;color:#666c80;margin:0;overflow-wrap:anywhere;white-space:normal}
.post-slug{display:none;color:#675be1;background:#f5f3ff;border-radius:6px;padding:5px 8px;margin-top:12px;font-size:11px;overflow-wrap:anywhere;max-width:100%}.post-actions{gap:9px;flex-wrap:wrap;border-top:1px solid #f0f0f5;padding-top:14px;margin-top:16px}.view-link{font-weight:700;font-size:12px;color:#5e53d7}.delete-button{margin-left:auto;background:#fff1f2;color:#b73b4d;border:0;border-radius:8px;padding:8px 11px;font-size:11px;font-weight:700;cursor:pointer}.delete-button:hover{background:#ffe2e6}.empty-state,.loading-card{padding:45px 20px;background:#fff;border:1px solid var(--line);border-radius:15px;text-align:center;color:var(--muted);line-height:1.7}.empty-icon{font-size:30px;margin-bottom:8px}.feed-footer{text-align:center;font-size:11px;color:#a0a4b4;padding:18px 0}
.notice{margin-bottom:17px;padding:12px 15px;border-radius:10px;font-size:13px}.notice.success{background:#e8f7f1;color:#167658}.notice.error{background:#fff0f2;color:#ad3044}
.footer{max-width:1180px;margin:15px auto 0;padding:20px 24px 30px;text-align:center;color:#a0a4b4;font-size:11px}.footer span{padding:0 5px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#f5f4ff,#f8f9fc)}.login-card{width:min(420px,100%);background:white;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 15px 50px #252b4010}.login-card>.brand-mark{margin-bottom:18px}.login-card h1{font-family:Manrope,sans-serif;font-size:24px;margin:0 0 8px}.login-card>.muted{line-height:1.6;margin-bottom:20px}.login-card .button{margin-top:22px}.back-link{display:block;margin-top:20px;text-align:center;font-size:12px;color:#6659d9}
@media(max-width:850px){.content-grid{grid-template-columns:1fr}.compose-column{order:2}.feed-column{order:1}.welcome{padding:28px}.welcome-art{transform:scale(.8);transform-origin:right center;margin-left:-20px}.main{padding-top:24px}}
@media(max-width:540px){.topbar{height:65px;padding:0 16px}.brand{font-size:16px}.brand-mark{width:34px;height:34px}.admin-pill{display:none}.main{padding:20px 13px}.welcome{padding:23px 21px;min-height:155px;border-radius:15px}.welcome h1{font-size:24px}.welcome-copy{font-size:12px;max-width:240px;line-height:1.6}.welcome-art{position:absolute;right:8px;bottom:3px;opacity:.28;transform:scale(.75)}.feed-toolbar{align-items:stretch;flex-direction:column}.search-box{width:100%}.post-card{padding:16px}.post-title{font-size:17px}.compose-card{padding:18px}.footer{padding-bottom:20px}}
/* Multi-user profiles and keyword links */
.nav-profile{display:flex;align-items:center;gap:8px;max-width:210px}.nav-avatar{width:34px;height:34px;object-fit:cover;border-radius:50%;border:1px solid #e5e3f5}.nav-avatar-fallback{display:grid;place-items:center;background:#eeebff;color:#5d50d6;font-weight:800}.nav-user-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:125px}.admin-login-link{font-size:12px;color:#817d99}.post-avatar-img{width:38px;height:38px;object-fit:cover;flex:none;border-radius:50%;border:1px solid #e7e6f2}.post-username{display:block;font-size:10px;color:#8d91a4;margin-top:3px}.keyword-link{color:#5d50d6;font-weight:700;text-decoration:underline;text-decoration-color:#c9c3ff;text-underline-offset:3px}.keyword-link:hover{color:#4032c5;text-decoration-color:currentColor}.link-fields{margin-top:20px;padding:14px 12px 12px;border:1px solid #e7e4fa;border-radius:11px;background:#faf9ff}.field-section-title{font-size:12px;font-weight:800;color:#5147a8;margin:0 0 8px}.optional{font-weight:500;color:#9290aa;font-size:10px}
.account-switch{text-align:center;font-size:12px;color:#7d8295;margin:20px 0 0; display:none;}.account-switch a{color:#6558e8;font-weight:700}.login-card .brand{margin-bottom:22px}.login-card form input[type=file]{padding:9px;font-size:12px}.login-card .back-link{margin-top:18px}

/* Rich-text editor (CKEditor-style toolbar, powered by Quill) */
.rich-editor{background:#fff;border:1px solid #e4e5ee;border-radius:9px;overflow:hidden;color:var(--ink)}
.rich-editor:focus-within{border-color:#8c82f2;box-shadow:0 0 0 3px #6558e815}
.rich-editor .ql-toolbar.ql-snow{border:0;border-bottom:1px solid #e8e8f0;background:#fafaff;padding:8px 7px}
.rich-editor .ql-container.ql-snow{border:0;font-family:'DM Sans',Arial,sans-serif;font-size:14px;min-height:150px}
.rich-editor .ql-editor{min-height:150px;line-height:1.65;padding:12px}
.rich-editor .ql-editor.ql-blank::before{font-style:normal;color:#a8adbd;left:12px;right:12px}
.rich-editor .ql-snow .ql-picker{color:#555a6d}
.post-description p{margin:0 0 9px}.post-description p:last-child{margin-bottom:0}.post-description ul,.post-description ol{padding-left:22px;margin:8px 0}.post-description blockquote{border-left:3px solid #c9c3ff;padding-left:12px;margin:10px 0;color:#73758b}.post-description h2,.post-description h3,.post-description h4{font-family:Manrope,sans-serif;line-height:1.4;margin:12px 0 7px}
.post-description a{color:#5e53d7;text-decoration:underline;text-underline-offset:2px; font-weight:700;}.post-description strong{font-weight:700}.post-description em{font-style:italic}
