:root{--color-bg: #fbf9f5;--color-surface: #ffffff;--color-ink: #2b2620;--color-ink-soft: #5c554c;--color-border: #e3ddd0;--color-accent: #7a4a2f;--color-accent-hover: #5f3a24;--color-danger: #a3382c;--font-serif: Georgia, "Iowan Old Style", "Palatino Linotype", serif;--font-sans: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);line-height:1.5}a{color:var(--color-accent)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;max-width:960px;width:100%;margin:0 auto;padding:2rem 1.5rem}.navbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.navbar-brand{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;text-decoration:none;color:var(--color-ink)}.navbar-links{display:flex;align-items:center;gap:1.25rem}.navbar-cta{background:var(--color-accent);color:#fff;padding:.4rem .9rem;border-radius:4px;text-decoration:none}.link-button{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:0;font:inherit}.footer{text-align:center;padding:1.5rem;color:var(--color-ink-soft);font-size:.9rem}.verification-banner{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.6rem 1rem;background:#fbe9d0;color:#6b4a1c;font-size:.9rem;text-align:center}.verification-banner .link-button{color:#6b4a1c;text-decoration:underline}.hero{text-align:center;padding:3rem 1rem}.hero h1{font-family:var(--font-serif);font-size:3rem;margin-bottom:.25rem}.hero-tagline{font-family:var(--font-serif);letter-spacing:.3em;color:var(--color-accent);margin:0 0 .5rem}.hero-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.button-primary,.button-secondary,.button-danger,button[type=submit]{display:inline-block;padding:.6rem 1.2rem;border-radius:4px;border:none;font-size:1rem;cursor:pointer;text-decoration:none}.button-primary,button[type=submit]{background:var(--color-accent);color:#fff}.button-primary:hover,button[type=submit]:hover{background:var(--color-accent-hover)}.button-secondary{background:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-accent)}.button-danger{background:var(--color-surface);color:var(--color-danger);border:1px solid var(--color-danger)}.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;margin-top:1rem}.story-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1.25rem}.story-card h3{margin:0 0 .4rem}.story-card-meta,.story-card-stats{font-size:.85rem;color:var(--color-ink-soft)}.story-card-summary{margin:.5rem 0}.story-card-tags{font-size:.85rem;color:var(--color-accent)}.story-card-cover{width:100%;height:160px;object-fit:cover;border-radius:4px;margin-bottom:.75rem}.story-page-cover{width:100%;max-height:360px;object-fit:cover;border-radius:6px;margin-bottom:1rem}.cover-upload-label{cursor:pointer}.browse-filters{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}.browse-filters input,.browse-filters select{padding:.5rem;border:1px solid var(--color-border);border-radius:4px}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem}.pagination button{padding:.5rem 1rem;border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;cursor:pointer}.pagination button:disabled{opacity:.4;cursor:default}.pagination-status{color:var(--color-ink-soft);font-size:.9rem}.auth-page,.story-form-page,.chapter-form-page{max-width:500px;margin:0 auto}.chapter-form-page{max-width:720px}.auth-form,.story-form,.chapter-form{display:flex;flex-direction:column;gap:1rem}.auth-form label,.story-form label,.chapter-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.auth-form input,.auth-form textarea,.story-form input,.story-form textarea,.story-form select,.chapter-form input,.chapter-form textarea{padding:.6rem;border:1px solid var(--color-border);border-radius:4px;font:inherit}.form-error{color:var(--color-danger)}.form-hint{color:var(--color-ink-soft);font-size:.9rem}.story-page-meta,.story-page-tags{color:var(--color-ink-soft)}.story-page-summary{font-size:1.05rem;margin:1rem 0}.author-tools{display:flex;gap:1rem;align-items:center;margin:1rem 0;padding:.75rem;background:#f3ede1;border-radius:4px}.rating-widget{display:flex;align-items:center;gap:.75rem;margin:1rem 0}.rating-stars .star{background:none;border:none;font-size:1.5rem;color:#ccc;cursor:pointer}.rating-stars .star:disabled{cursor:default}.rating-stars .star-filled{color:#d9a441}.rating-summary,.rating-hint{font-size:.9rem;color:var(--color-ink-soft)}.chapter-list{padding-left:1.5rem}.chapter-list li{margin-bottom:.4rem}.chapter-locked{color:var(--color-ink-soft);font-size:.85rem}.chapter-reader h1{font-family:var(--font-serif)}.chapter-content{font-family:var(--font-serif);font-size:1.15rem;line-height:1.8;margin:1.5rem 0}.chapter-nav{display:flex;justify-content:space-between;margin:1.5rem 0}.chapter-locked-notice{background:var(--color-surface);border:1px dashed var(--color-accent);border-radius:6px;padding:2rem;text-align:center}.comment-section{margin-top:2.5rem;border-top:1px solid var(--color-border);padding-top:1.5rem}.comment-list{list-style:none;padding:0}.comment-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:.75rem 1rem;margin-bottom:.75rem}.comment-author{font-weight:600;margin:0 0 .25rem}.comment-text{margin:0}.comment-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.comment-form textarea{padding:.6rem;border:1px solid var(--color-border);border-radius:4px;font:inherit}.profile-bio{color:var(--color-ink-soft);max-width:600px}.page-loading{text-align:center;padding:2rem}.planning-page{max-width:900px;margin:0 auto}.planning-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;flex-wrap:wrap}.planning-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.6rem .9rem;font:inherit;cursor:pointer;color:var(--color-ink-soft)}.planning-tab-active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.planning-panel{display:flex;flex-direction:column;gap:1rem}.planning-form{display:flex;flex-direction:column;gap:.85rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1.25rem}.planning-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.planning-form input,.planning-form textarea,.planning-form select{padding:.5rem;border:1px solid var(--color-border);border-radius:4px;font:inherit}.planning-form-actions{display:flex;gap:.75rem}.planning-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.planning-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1rem}.planning-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.planning-card-header h3{margin:0 0 .4rem}.planning-card p{margin:.4rem 0;font-size:.95rem}.planning-note-body{white-space:pre-wrap}.planning-card-actions{display:flex;gap:1rem;margin-top:.75rem}.visibility-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.visibility-private{background:#f3ede1;color:var(--color-ink-soft)}.visibility-collaborators{background:#e4efe6;color:#2f6a3f}.collaborator-form{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.collaborator-form input,.collaborator-form select{padding:.5rem;border:1px solid var(--color-border);border-radius:4px}.collaborator-list{list-style:none;padding:0}.collaborator-item{display:flex;align-items:center;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--color-border)}.collaborator-item select{padding:.3rem;border:1px solid var(--color-border);border-radius:4px}.navbar-messages-link{position:relative}.navbar-badge{background:var(--color-danger);color:#fff;font-size:.7rem;padding:.05rem .4rem;border-radius:999px;margin-left:.35rem}.friend-button-group{display:flex;gap:.75rem;margin:.75rem 0}.friend-search{display:flex;gap:.75rem;margin-bottom:1.5rem}.friend-search input{flex:1;padding:.5rem;border:1px solid var(--color-border);border-radius:4px}.friend-list{list-style:none;padding:0}.friend-list-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.friend-list-actions{display:flex;align-items:center;gap:.75rem}.messages-page{display:grid;grid-template-columns:260px 1fr;gap:1.5rem;height:calc(100vh - 220px);min-height:400px}.conversation-list{border-right:1px solid var(--color-border);padding-right:1rem;overflow-y:auto}.conversation-list ul{list-style:none;padding:0}.conversation-item{display:flex;flex-direction:column;gap:.15rem;padding:.6rem;border-radius:6px;text-decoration:none;color:var(--color-ink);position:relative}.conversation-item:hover{background:var(--color-surface)}.conversation-item-active{background:#f3ede1}.conversation-username{font-weight:600}.conversation-preview{font-size:.85rem;color:var(--color-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-unread{position:absolute;top:.6rem;right:.6rem;background:var(--color-danger);color:#fff;font-size:.7rem;padding:.05rem .4rem;border-radius:999px}.conversation-active{display:flex;flex-direction:column;min-width:0}.message-thread{display:flex;flex-direction:column;height:100%}.message-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.message-bubble{max-width:70%;padding:.5rem .85rem;border-radius:12px}.message-bubble p{margin:0}.message-mine{align-self:flex-end;background:var(--color-accent);color:#fff}.message-theirs{align-self:flex-start;background:var(--color-surface);border:1px solid var(--color-border)}.message-compose{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.message-compose input{flex:1;padding:.6rem;border:1px solid var(--color-border);border-radius:4px}.activity-list{list-style:none;padding:0}.activity-item{padding:.85rem 0;border-bottom:1px solid var(--color-border)}.activity-item p{margin:0 0 .25rem}.activity-time{font-size:.8rem;color:var(--color-ink-soft)}.forum-page{max-width:800px;margin:0 auto}.forum-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;margin-top:1rem}.forum-category-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1.25rem;text-decoration:none;color:var(--color-ink)}.forum-category-card h2{margin:0 0 .4rem;font-family:var(--font-serif)}.forum-category-card p{margin:0 0 .75rem;color:var(--color-ink-soft);font-size:.9rem}.forum-category-count{font-size:.85rem;color:var(--color-accent)}.forum-thread-list-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.forum-thread-list{list-style:none;padding:0;margin-top:1rem}.forum-thread-row{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 0;border-bottom:1px solid var(--color-border)}.forum-thread-title{font-weight:600}.forum-thread-meta{font-size:.85rem;color:var(--color-ink-soft)}.forum-post-list{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0}.forum-post{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1rem 1.25rem}.forum-post-author{font-weight:600;margin:0 0 .5rem}.forum-post-edited{font-weight:400;color:var(--color-ink-soft);font-size:.85rem}.forum-post-body{white-space:pre-wrap;margin:0}.forum-edit-form textarea{width:100%;padding:.6rem;border:1px solid var(--color-border);border-radius:4px;font:inherit}.forum-reply-form{display:flex;flex-direction:column;gap:.75rem}.forum-reply-form textarea{padding:.6rem;border:1px solid var(--color-border);border-radius:4px;font:inherit}.chapter-tag-list{display:inline-flex;gap:.35rem;margin-left:.5rem;flex-wrap:wrap}.chapter-tag-badge{background:#f3ede1;color:var(--color-ink-soft);font-size:.75rem;padding:.1rem .5rem;border-radius:999px;white-space:nowrap}.chapter-number-fields{display:flex;gap:1rem}.chapter-number-fields label{flex:1}.chapter-number-fields input{width:100%}.content-mode-toggle{display:flex;gap:.75rem}.content-upload{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}
