:root{--color-bg:#f6f5f4;--color-surface:#ffffff;--color-border:#e5e2df;--color-text:#292524;--color-text-muted:#78716c;--color-accent:#d0491d;--color-accent-hover:#b53d17;--color-error:#b91c1c;--radius:10px;--shadow:0 1px 2px rgba(41,37,36,0.06),0 1px 8px rgba(41,37,36,0.04)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--color-bg);color:var(--color-text)}main{padding:2.5rem 1.5rem;max-width:640px;margin:0 auto}.site-header{margin-bottom:2rem}.site-title{margin:0;font-size:1.75rem;font-weight:800;color:var(--color-accent)}.site-tagline{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.9rem}.post-form{display:flex;flex-direction:column;gap:.65rem;margin-bottom:2rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.post-form input,.post-form textarea{font:inherit;padding:.6rem .7rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text)}.post-form input:focus,.post-form textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px}.post-form textarea{resize:vertical}.post-form button{align-self:flex-start;padding:.55rem 1.25rem;border:none;border-radius:6px;background:var(--color-accent);color:white;font:inherit;font-weight:600;cursor:pointer}.post-form button:hover:not(:disabled){background:var(--color-accent-hover)}.post-form button:disabled{opacity:.6;cursor:not-allowed}.post-form-file{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--color-text-muted)}.post-form-preview{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.post-form-preview img{max-width:100%;max-height:220px;border-radius:var(--radius);border:1px solid var(--color-border);object-fit:cover}.post-form-preview button{padding:.35rem .75rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.8rem;cursor:pointer}.post-form-error{color:var(--color-error);margin:0;font-size:.9rem}.post-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.post-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.85rem 1rem}.post-item p{margin:0}.post-item-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.post-item-author{font-weight:700;font-size:.875rem;color:var(--color-accent)}.post-item-time{font-size:.75rem;color:var(--color-text-muted)}.post-item-image{display:block;max-width:100%;max-height:400px;margin-top:.5rem;border-radius:var(--radius);object-fit:cover}.vote-icon{width:22px;height:22px;display:inline-block}.vote-outline{stroke:var(--color-text-muted);stroke-width:2px;fill:none;stroke-linejoin:round}.vote-up-filled{fill:var(--color-accent);stroke:var(--color-accent);stroke-width:2px;stroke-linejoin:round}.vote-down-filled{fill:#3b82f6;stroke:#3b82f6;stroke-width:2px;stroke-linejoin:round}.vote-number-up{color:var(--color-accent);font-weight:600}.vote-number-down{color:#3b82f6;font-weight:600}.vote-wrapper{gap:.35rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.error-backdrop,.vote-wrapper{display:flex;align-items:center}.error-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);justify-content:center;z-index:1000;pointer-events:auto}.error-modal{background:#fff;padding:1.5rem 2rem;border-radius:10px;position:relative;max-width:400px;width:90%;box-shadow:0 4px 20px rgba(0,0,0,.3)}.error-close{position:absolute;top:8px;right:10px;background:transparent;border:none;font-size:1.5rem;line-height:1;cursor:pointer}.auth-panel{margin-bottom:1.5rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.auth-actions{display:flex;gap:.5rem}.auth-notice{margin:0 0 .75rem;font-size:.9rem;color:var(--color-text-muted)}.auth-tabs{display:flex;gap:.25rem;margin-bottom:.65rem}.auth-tab{padding:.35rem .9rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:.9rem;cursor:pointer}.auth-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:white;font-weight:600}.auth-form{display:flex;flex-direction:column;gap:.55rem;margin-top:.65rem}.auth-form input{font:inherit;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text)}.auth-form button[type=submit]{align-self:flex-start;padding:.5rem 1.15rem;border:none;border-radius:6px;background:var(--color-accent);color:white;font:inherit;font-weight:600;cursor:pointer}.auth-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-hint{margin:0;font-size:.8rem;color:var(--color-text-muted)}.auth-success p{margin:.75rem 0 .5rem}.button-secondary{padding:.35rem .8rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.85rem;cursor:pointer}.button-secondary:hover:not(:disabled){border-color:var(--color-accent)}.button-secondary:disabled{opacity:.6;cursor:not-allowed}.login-required{margin:0 0 1.25rem;padding:.75rem 1rem;border:1px dashed var(--color-border);border-radius:var(--radius);font-size:.9rem}.live-status,.login-required{color:var(--color-text-muted)}.live-status{margin:0 0 .5rem;font-size:.8rem}.live-status-live{color:#15803d}.post-form-check{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-muted)}.post-item-private{border-style:dashed;background:#fbfaf9}.post-item-you{font-weight:400;color:var(--color-text-muted)}.post-item-content{white-space:pre-wrap;overflow-wrap:anywhere}.post-item-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.badge{margin-left:.5rem;padding:.05rem .45rem;border-radius:999px;background:var(--color-text-muted);color:white;font-size:.7rem;font-weight:600;vertical-align:middle}.votes{display:flex;gap:1rem}button.vote-wrapper{padding:0;border:none;background:none;font:inherit;color:inherit}button.vote-wrapper:disabled{cursor:not-allowed;opacity:.55}.post-item-title{overflow-wrap:anywhere}