:root{--color-primary: #8b2252;--color-primary-hover: #6e1a41;--color-primary-light: #f5eef1;--color-error: #d32f2f;--color-bg: #faf6f0;--color-text: #3d2b1f;--color-text-light: #7a6a5e;--color-white: #fff;--color-border: #e0d5c8;--font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--font-size-base: 16px;--line-height-base: 1.6;--tap-target-min: 44px;--breakpoint-desktop: 768px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base)}body{font-family:var(--font-family);font-size:1rem;line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-bg);-webkit-text-size-adjust:100%}h1,h2,h3,h4,h5,h6{line-height:1.3;margin-bottom:.5em}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}p{margin-bottom:1em}button,a,input[type=submit],input[type=button],[role=button]{min-height:var(--tap-target-min);min-width:var(--tap-target-min)}button{padding:.5rem 1rem;border:none;border-radius:6px;background-color:var(--color-primary);color:var(--color-white);font-size:1rem;font-family:inherit;cursor:pointer;line-height:1.4}button:hover{background-color:var(--color-primary-hover)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}a{color:var(--color-primary);text-decoration:none;display:inline-flex;align-items:center}a:hover{text-decoration:underline}input,select,textarea{font-family:inherit;font-size:1rem;min-height:var(--tap-target-min);padding:.5rem;border:1px solid var(--color-border);border-radius:6px}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}img{max-width:100%;height:auto}.container{width:100%;max-width:960px;margin:0 auto;padding:0 1rem}.no-print{display:block}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:768px){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.container{padding:0 2rem}}@media print{@page{size:A4;margin:15mm}nav,footer,.no-print,.app-header,button,[role=navigation],[role=banner]{display:none!important}.article-detail-header{display:block!important}.article-detail-bookmark{display:none!important}body{background:#fff;color:#000;font-size:12pt;line-height:1.6}h1{font-size:18pt;margin-bottom:.3em}h2{font-size:15pt}h3{font-size:13pt}img{max-width:100%;height:auto;page-break-inside:avoid}table{page-break-inside:avoid}a[href]:after{content:" (" attr(href) ")";font-size:9pt;color:#555}a[href^="#"]:after,a[href^=javascript]:after{content:""}h1,h2,h3{page-break-after:avoid}p,li{orphans:3;widows:3}.qr-code-section{display:block!important;page-break-before:auto;text-align:center;margin-top:2em}.qr-code-section .no-print,.bulletin-print-mode .markdown-body{display:none!important}.bulletin-print-mode .article-detail-actions{border-top:none!important;padding-top:0!important}.bulletin-print-mode .article-detail-actions,.bulletin-print-mode .qr-code-wrapper{display:block!important}.bulletin-print-mode .qr-code-section,.bulletin-print-mode .qr-code-section.qr-code-section--hidden{display:block!important;border:none;margin-top:3em}.bulletin-print-mode .qr-code-section svg{min-width:200px;min-height:200px;width:200px;height:200px}}.login-form-container{max-width:400px;margin:0 auto;padding:2rem 1.5rem}.login-form-title{text-align:center;font-size:1.5rem;margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-form-field{display:flex;flex-direction:column;gap:.5rem}.login-form-field label{font-size:1rem;font-weight:600}.login-form-field input{font-size:1rem;padding:.75rem;border:1px solid var(--color-border, #e0d5c8);border-radius:6px;min-height:44px;box-sizing:border-box}.login-form-field input:focus{outline:2px solid var(--color-primary, #8b2252);outline-offset:1px;border-color:var(--color-primary, #8b2252)}.login-form-field input:disabled{opacity:.6;cursor:not-allowed}.login-form-error{color:#d32f2f;font-size:.95rem;margin:0;padding:.5rem 0}.login-form-submit{min-height:48px;font-size:1.1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.login-form-submit:disabled{opacity:.6;cursor:not-allowed}.login-form-hint{color:#d32f2f;font-size:.85rem;margin:0}.password-setup-container{max-width:400px;margin:0 auto;padding:2rem 1.5rem}.password-setup-title{text-align:center;font-size:1.5rem;margin-bottom:.5rem}.password-setup-description{text-align:center;font-size:1rem;color:var(--color-text-light, #7a6a5e);margin-bottom:1.5rem}.password-setup-form{display:flex;flex-direction:column;gap:1.25rem}.password-setup-field{display:flex;flex-direction:column;gap:.5rem}.password-setup-field label{font-size:1rem;font-weight:600}.password-setup-field input{font-size:1rem;padding:.75rem;border:1px solid var(--color-border, #e0d5c8);border-radius:6px;min-height:44px;box-sizing:border-box}.password-setup-field input:focus{outline:2px solid var(--color-primary, #8b2252);outline-offset:1px;border-color:var(--color-primary, #8b2252)}.password-setup-field input:disabled{opacity:.6;cursor:not-allowed}.password-setup-policy{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.password-setup-policy li{font-size:.95rem;display:flex;align-items:center;gap:.4rem}.policy-icon{display:inline-flex;width:1.2em;justify-content:center}.policy-met{color:#2e7d32}.policy-unmet{color:#888}.password-setup-mismatch{color:#d32f2f;font-size:.9rem;margin:0}.password-setup-error{color:#d32f2f;font-size:.95rem;margin:0;padding:.5rem 0}.password-setup-submit{min-height:48px;font-size:1.1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.password-setup-submit:disabled{opacity:.6;cursor:not-allowed}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dialog{background:var(--color-white);border-radius:10px;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 24px #00000026}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.dialog-title{font-size:1.25rem;font-weight:600;margin:0}.dialog-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;color:var(--color-text-light);font-size:1.5rem;line-height:1;border-radius:50%}.dialog-close:hover{background-color:var(--color-primary-light, #f5eef1);color:var(--color-text)}.dialog-body{padding:1rem 1.5rem;overflow-y:auto;flex:1}.dialog-empty{text-align:center;padding:2rem 0;color:var(--color-text-light);font-size:1rem}.dialog-article-list{list-style:none;padding:0;margin:0}.dialog-article-item{border-bottom:1px solid #eee}.dialog-article-item:last-child{border-bottom:none}.dialog-article-link{display:flex;flex-direction:column;gap:.25rem;width:100%;padding:.75rem .25rem;background:none;border:none;text-align:left;cursor:pointer;color:var(--color-text);font-size:1rem;min-height:var(--tap-target-min);border-radius:4px}.dialog-article-link:hover{background-color:var(--color-primary-light, #f5eef1)}.dialog-article-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.dialog-article-date{font-size:.875rem;color:var(--color-text-light)}.dialog-article-title{color:var(--color-primary)}.dialog-article-link:hover .dialog-article-title{text-decoration:underline}.dialog-footer{padding:1rem 1.5rem;border-top:1px solid var(--color-border);text-align:center}.dialog-footer-close{width:100%;font-size:1rem;font-weight:600;min-height:48px}.dialog-article-meta{display:flex;align-items:center;gap:.4rem}.dialog-article-item--unread .dialog-article-title{font-weight:600}.accordion{border:1px solid var(--color-border);border-radius:6px;margin-bottom:.5rem;background:var(--color-white)}.accordion-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;min-height:var(--tap-target-min);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;font-weight:600;color:var(--color-text);background:transparent;border:none;width:100%}.accordion-header:hover{background-color:var(--color-primary-light, #f5eef1)}.accordion-header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:6px}.accordion-title{flex:1}.accordion-icon{font-size:.75rem;margin-left:.5rem;color:var(--color-text-light)}.accordion-panel{padding:0 1rem .75rem}.article-list{padding:1rem 0}.search-results-count{font-size:.9rem;color:var(--color-text-light, #555);margin-bottom:.75rem}.article-list-status{text-align:center;padding:2rem 1rem;color:var(--color-text-light)}.article-list-status button{margin-top:1rem}.article-list-empty{text-align:center;padding:2rem 1rem;color:var(--color-text-light)}.year-tabs{display:flex;gap:.25rem;margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.year-tab{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:6px 6px 0 0;background:var(--color-white);color:var(--color-text-light);font-size:1rem;cursor:pointer;white-space:nowrap}.year-tab:hover{background-color:var(--color-primary-light, #f5eef1)}.year-tab--active{background-color:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.year-tab--active:hover{background-color:var(--color-primary-hover)}.month-accordions{display:flex;flex-direction:column}.article-items{list-style:none;padding:0;margin:0}.article-item{border-bottom:1px solid #eee}.article-item:last-child{border-bottom:none}.article-link{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem .25rem;background:none;border:none;text-align:left;cursor:pointer;color:var(--color-text);font-size:1rem;min-height:var(--tap-target-min);border-radius:4px}.article-link:hover{background-color:var(--color-primary-light, #f5eef1)}.article-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.article-date-calendar{flex-shrink:0;display:flex;flex-direction:column;align-items:center;width:3rem;border-radius:6px;overflow:hidden;border:1px solid var(--color-border, #ddd);background:var(--color-white, #fff);line-height:1}.calendar-month{display:block;width:100%;text-align:center;background:var(--color-primary, #3b82f6);color:var(--color-white, #fff);font-size:.65rem;font-weight:600;padding:2px 0}.calendar-day{display:block;width:100%;text-align:center;font-size:1.1rem;font-weight:700;color:var(--color-text, #333);padding:2px 0 3px}.article-title{color:var(--color-primary)}.article-link:hover .article-title{text-decoration:underline}.unread-badge{color:var(--color-primary);font-size:.6rem;flex-shrink:0;line-height:1}.article-item--unread .article-title{font-weight:600}.markdown-body{font-size:1rem;line-height:1.8;word-break:break-word}.markdown-body h1{font-size:1.5rem;margin-top:1.5em}.markdown-body h2{font-size:1.3rem;margin-top:1.3em}.markdown-body h3{font-size:1.15rem;margin-top:1.2em}.markdown-body p{margin-bottom:1em}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin-bottom:1em}.markdown-body li{margin-bottom:.3em}.markdown-body img{display:block;max-width:100%;height:auto;margin:1em 0;border-radius:4px}.markdown-body table{width:100%;border-collapse:collapse;margin-bottom:1em;font-size:.95rem}.markdown-body th,.markdown-body td{border:1px solid var(--color-border);padding:.5rem .75rem;text-align:left}.markdown-body th{background-color:var(--color-bg, #faf6f0);font-weight:600}.markdown-body blockquote{border-left:4px solid var(--color-primary);padding:.5rem 1rem;margin:1em 0;color:var(--color-text-light);background:#faf6f0;border-radius:0 4px 4px 0}.markdown-body code{background:#f0f0f0;padding:.15em .4em;border-radius:3px;font-size:.9em}.markdown-body pre{background:#f0f0f0;padding:1rem;border-radius:6px;overflow-x:auto;margin-bottom:1em}.markdown-body pre code{background:none;padding:0}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:1.5em 0}.markdown-parse-error{color:var(--color-error);font-weight:600;margin-bottom:1em}.markdown-raw{white-space:pre-wrap;background:#faf6f0;padding:1rem;border-radius:6px;border:1px solid var(--color-border);font-size:.95rem}.print-button{display:inline-flex;align-items:center;gap:.3rem;background:var(--color-white);color:var(--color-primary);border:1px solid var(--color-border);font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.print-button:hover{background-color:var(--color-primary-light, #f5eef1)}.bulletin-print-button{display:inline-flex;align-items:center;gap:.3rem;background:var(--color-white);color:var(--color-primary);border:1px solid var(--color-border);font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.bulletin-print-button:hover{background-color:#f0f4fa}.qr-code-toggle{display:inline-flex;align-items:center;gap:.3rem;background:var(--color-white);color:var(--color-primary);border:1px solid var(--color-border);font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.qr-code-toggle:hover{background-color:var(--color-primary-light, #f5eef1)}.qr-code-section{margin-top:1rem;text-align:center;padding:1.25rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-white);width:100%}.qr-code-section--hidden{display:none}.qr-code-section svg{min-width:113px;min-height:113px}.qr-code-title{margin-top:.75rem;font-weight:600;font-size:.95rem}.qr-code-url{margin-top:.25rem;font-size:.85rem;color:var(--color-text-light);word-break:break-all}.poll-chart{margin-top:1rem}.poll-chart-total{font-size:.95rem;color:var(--color-text-light);margin-bottom:.75rem}.poll-chart-empty{font-size:1rem;color:var(--color-text-light);text-align:center;padding:1rem 0}.poll-chart-bars{display:flex;flex-direction:column;gap:.5rem}.poll-chart-row{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:6px}.poll-chart-row--mine{background-color:var(--color-primary-light)}.poll-chart-label{font-size:1rem;color:var(--color-text);display:flex;align-items:center;gap:.3rem;word-break:break-word}.poll-chart-mine-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.75rem;background-color:var(--color-primary);color:var(--color-white);border-radius:50%;flex-shrink:0}.poll-chart-bar-track{height:24px;background-color:var(--color-border);border-radius:4px;overflow:hidden}.poll-chart-bar-fill{height:100%;background-color:var(--color-primary);border-radius:4px;min-width:0;transition:width .3s ease}.poll-chart-stat{font-size:.9rem;color:var(--color-text);white-space:nowrap;min-width:80px;text-align:right}@media(max-width:480px){.poll-chart-row{grid-template-columns:1fr auto;grid-template-rows:auto auto}.poll-chart-label{grid-column:1 / -1}.poll-chart-bar-track{grid-column:1}.poll-chart-stat{min-width:auto}}.poll-section{margin-top:2rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-white)}.poll-section-title{font-size:1.25rem;margin-bottom:.75rem;color:var(--color-text)}.poll-section-question{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.poll-section-deadline{font-size:.95rem;color:var(--color-text-light);margin-bottom:1.25rem}.poll-section-loading{text-align:center;padding:1.5rem 0;color:var(--color-text-light)}.poll-vote-form{margin-bottom:1.25rem}.poll-vote-form-message{font-size:.95rem;padding:.5rem .75rem;border-radius:6px;margin-bottom:.75rem}.poll-vote-form-message--auth{background-color:#fff3e0;color:#e65100}.poll-vote-form-message--deadline{background-color:#fce4ec;color:#c62828}.poll-vote-form-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.poll-vote-form-option{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:2px solid var(--color-border);border-radius:8px;cursor:pointer;min-height:var(--tap-target-min);transition:border-color .15s,background-color .15s}.poll-vote-form-option:hover:not(:has(input:disabled)){border-color:var(--color-primary);background-color:var(--color-primary-light)}.poll-vote-form-option--selected{border-color:var(--color-primary);background-color:var(--color-primary-light)}.poll-vote-form-option--voted{border-color:var(--color-primary);background-color:var(--color-primary-light);font-weight:600}.poll-vote-form-radio{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0;min-height:20px;min-width:20px}.poll-vote-form-option-text{font-size:1rem;color:var(--color-text)}.poll-vote-form-submit{min-height:var(--tap-target-min);padding:.75rem 2rem;font-size:1rem;font-weight:600;border-radius:8px;width:100%}.poll-vote-form-submit:disabled{background-color:var(--color-border);color:var(--color-text-light);cursor:not-allowed}@media(min-width:768px){.poll-section{padding:2rem}.poll-vote-form-submit{width:auto}}.article-detail{padding:.5rem 0}.article-detail-nav{margin-bottom:1rem}.article-detail-back{background:var(--color-white);color:var(--color-primary);border:1px solid var(--color-border);font-size:1rem;padding:.5rem 1.25rem;border-radius:6px}.article-detail-back:hover{background-color:var(--color-primary-light, #f5eef1)}.article-detail-content{background:var(--color-white);border-radius:8px;padding:1.5rem;box-shadow:0 1px 4px #0000000f}.article-detail-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.article-detail-title{font-size:1.4rem;margin-bottom:.4rem}.article-detail-title-row{display:flex;align-items:flex-start;gap:.5rem}.article-detail-bookmark{flex-shrink:0;background:none;border:2px solid var(--color-border, #e0d5c8);font-size:1.3rem;line-height:1;cursor:pointer;color:var(--color-border, #e0d5c8);padding:0;width:40px;height:40px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color .15s,border-color .15s,background-color .15s}.article-detail-bookmark:hover,.article-detail-bookmark--active{color:#f9a825;border-color:#f9a825;background:#fff8e1}.article-detail-bookmark--active:hover{color:#f57f17;border-color:#f57f17;background:#fff3c4}.article-detail-date{display:block;font-size:.95rem;color:var(--color-text-light)}.article-detail-status{text-align:center;padding:2rem 0;color:var(--color-text-light)}.article-detail-error{text-align:center;padding:2rem 0;color:var(--color-error)}.article-detail-error button{margin-top:1rem}@media(min-width:768px){.article-detail-content{padding:2rem}.article-detail-title{font-size:1.6rem}}.article-detail-actions{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.bookmark-toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:1000;background:#333;color:#fff;font-size:.95rem;padding:.5rem 1.25rem;border-radius:20px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0003;animation:bookmark-toast-in .3s ease,bookmark-toast-out .3s ease 1.2s forwards}@keyframes bookmark-toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes bookmark-toast-out{0%{opacity:1}to{opacity:0}}.article-detail-delete{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.article-detail-delete-btn{background:var(--color-white);color:var(--color-error, #d32f2f);border:1px solid var(--color-error, #d32f2f);font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;cursor:pointer;min-height:44px}.article-detail-delete-btn:hover{background:#fff5f5}.article-detail-delete-confirm{background:#fff5f5;border:1px solid var(--color-error, #d32f2f);border-radius:8px;padding:1.25rem}.article-detail-delete-warning{color:var(--color-error, #d32f2f);font-size:.95rem;margin-bottom:1rem}.article-detail-delete-actions{display:flex;gap:.75rem}.article-detail-delete-execute{background:var(--color-error, #d32f2f);color:var(--color-white);border:none;font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;cursor:pointer;min-height:44px}.article-detail-delete-execute:hover:not(:disabled){opacity:.9}.article-detail-delete-execute:disabled{opacity:.6;cursor:not-allowed}.article-detail-delete-cancel{background:var(--color-white);color:var(--color-text);border:1px solid var(--color-border);font-size:1rem;padding:.6rem 1.25rem;border-radius:6px;cursor:pointer;min-height:44px}.article-detail-delete-cancel:hover{background:#f5f5f5}.markdown-preview{padding:.5rem 0}.markdown-preview-meta{background:var(--color-white);border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;gap:1rem}.markdown-preview-field{display:flex;flex-direction:column;gap:.4rem}.markdown-preview-field label{font-size:.95rem;font-weight:600;color:var(--color-text)}.markdown-preview-text-input,.markdown-preview-date-input{padding:.6rem .75rem;border:1px solid var(--color-border, #ccc);border-radius:6px;font-size:1rem;min-height:44px;width:100%;box-sizing:border-box}.markdown-preview-text-input:focus,.markdown-preview-date-input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.markdown-preview-text-input--readonly{background:#f5f5f5;color:var(--color-text);cursor:default}.markdown-preview-upload{background:var(--color-white);border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 4px #0000000f}.markdown-preview-label{display:inline-block;background:var(--color-primary);color:var(--color-white);padding:.6rem 1.25rem;border-radius:6px;cursor:pointer;font-size:1rem;min-height:44px;line-height:1.6}.markdown-preview-label:hover{opacity:.9}.markdown-preview-label--secondary{background:#6c757d}.markdown-preview-input{display:none}.markdown-preview-file-info{display:flex;align-items:center;gap:.75rem;margin-top:.75rem}.markdown-preview-file-name{font-size:.95rem;color:var(--color-text-light)}.markdown-preview-image-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.markdown-preview-image-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:#f8f9fa;border-radius:4px}.markdown-preview-remove-image{background:none;border:none;color:var(--color-error);font-size:1rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.markdown-preview-image-hint{font-size:.85rem;color:var(--color-text-light);margin-top:.25rem}.markdown-preview-image-hint code{background:#f0f0f0;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.markdown-preview-actions{display:flex;gap:.75rem;margin-bottom:1rem}.markdown-preview-upload-btn{background:#28a745;color:var(--color-white);border:none;padding:.7rem 1.5rem;border-radius:6px;font-size:1rem;cursor:pointer;min-height:44px;flex:1}.markdown-preview-upload-btn:hover:not(:disabled){background:#218838}.markdown-preview-upload-btn:disabled{opacity:.6;cursor:not-allowed}.markdown-preview-clear{background:var(--color-white);color:var(--color-error);border:1px solid var(--color-error);font-size:.9rem;padding:.3rem .75rem;border-radius:4px;min-height:44px;cursor:pointer}.markdown-preview-clear:hover{background:#fff5f5}.markdown-preview-section{margin-top:.5rem}.markdown-preview-section-title{font-size:1rem;font-weight:600;color:var(--color-text-light);margin-bottom:.5rem;padding-left:.25rem}.markdown-preview-success{background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;padding:2rem 1.5rem;text-align:center;color:#155724}.markdown-preview-success p{font-size:1.1rem;margin-bottom:1rem}.markdown-preview-new{background:var(--color-primary);color:var(--color-white);border:none;padding:.6rem 1.25rem;border-radius:6px;font-size:1rem;cursor:pointer;min-height:44px}.markdown-preview-new:hover{opacity:.9}.markdown-preview-error{background:#fff5f5;border:1px solid var(--color-error);border-radius:8px;padding:1rem 1.5rem;margin-bottom:1rem;color:var(--color-error)}.markdown-preview-empty,.markdown-preview-denied{background:var(--color-white);border-radius:8px;padding:3rem 1.5rem;text-align:center;color:var(--color-text-light);box-shadow:0 1px 4px #0000000f}@media(min-width:768px){.markdown-preview-meta,.markdown-preview-upload{padding:2rem}}.bookmark-list{padding:.5rem 0}.bookmark-list-nav{margin-bottom:1rem}.bookmark-list-back{background:var(--color-white, #fff);color:var(--color-primary, #1a73e8);border:1px solid var(--color-border, #e0e0e0);font-size:1rem;padding:.5rem 1.25rem;border-radius:6px;min-height:var(--tap-target-min, 44px);cursor:pointer}.bookmark-list-back:hover{background-color:var(--color-primary-light, #f5eef1)}.bookmark-list-heading{font-size:1.25rem;margin-bottom:1rem;color:var(--color-text, #333)}.bookmark-list-empty{text-align:center;padding:2rem 1rem;color:var(--color-text-light, #555);line-height:1.8}.bookmark-items{list-style:none;padding:0;margin:0}.bookmark-item{display:flex;align-items:center;border-bottom:1px solid #eee}.bookmark-item:last-child{border-bottom:none}.bookmark-article-link{flex:1;display:flex;align-items:baseline;gap:.75rem;padding:.75rem .25rem;background:none;border:none;text-align:left;cursor:pointer;color:var(--color-text, #333);font-size:1rem;min-height:var(--tap-target-min, 44px);border-radius:4px}.bookmark-article-link:hover{background-color:var(--color-primary-light, #f5eef1)}.bookmark-article-link:focus-visible{outline:2px solid var(--color-primary, #1a73e8);outline-offset:1px}.bookmark-article-date{flex-shrink:0;font-size:.875rem;color:var(--color-text-light, #555);min-width:6em}.bookmark-article-title{color:var(--color-primary, #1a73e8)}.bookmark-article-link:hover .bookmark-article-title{text-decoration:underline}.bookmark-remove-btn{flex-shrink:0;background:none;border:none;font-size:1.1rem;color:var(--color-text-light, #555);cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}.bookmark-remove-btn:hover{background:#fce4ec;color:#d32f2f}.app{max-width:800px;margin:0 auto;padding:1rem;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:2px solid var(--color-border, #e0d5c8);margin-bottom:1rem}.app-header h1{font-size:1.25rem;margin:0}.app-header-user{font-size:.9rem;color:var(--color-text-light, #7a6a5e)}.app-signout{min-height:44px;padding:.5rem 1rem;font-size:.95rem;cursor:pointer;border:1px solid #d32f2f;border-radius:6px;background:#fff;color:#d32f2f}.app-signout:hover{background:#d32f2f;color:#fff}.app-admin-actions{margin-bottom:1rem}.app-preview-btn{background:var(--color-white, #fff);color:var(--color-primary, #1a73e8);border:1px solid var(--color-primary, #1a73e8);font-size:1rem;padding:.5rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.app-preview-btn:hover{background:var(--color-primary-light, #f5eef1)}.app-preview-nav{margin-bottom:1rem}.app-preview-back{background:var(--color-white, #fff);color:var(--color-primary, #1a73e8);border:1px solid var(--color-border, #e0e0e0);font-size:1rem;padding:.5rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.app-preview-back:hover{background:var(--color-primary-light, #f5eef1)}.app-nav-actions{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.app-bookmark-btn{flex-shrink:0;background:var(--color-white, #fff);color:#f57f17;border:1px solid #f9a825;font-size:1rem;padding:.5rem 1.25rem;border-radius:6px;min-height:44px;cursor:pointer}.app-bookmark-btn:hover{background:#fff8e1}.app-search-field{flex:1;display:flex;align-items:center;border:1px solid var(--color-border, #e0e0e0);border-radius:8px;background:var(--color-white, #fff);padding:0 .75rem;min-height:44px}.app-search-field:focus-within{border-color:var(--color-primary, #8b2252);box-shadow:0 0 0 2px #8b225226}.app-search-icon{flex-shrink:0;font-size:1rem;margin-right:.5rem}.app-search-input{flex:1;border:none;outline:none;font-size:1rem;padding:.5rem 0;background:transparent;min-width:0}.app-search-input::placeholder{color:#b5a99a}.app-search-clear{flex-shrink:0;background:none;border:none;font-size:1.1rem;color:var(--color-text-light, #555);cursor:pointer;padding:.25rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}.app-search-clear:hover{background:var(--color-primary-light, #f5eef1)}
