:root{--bg: #fbf1f2;--bg-soft: #fdf6f6;--card: #ffffff;--ink: #4f3d40;--muted: #9a8488;--faint: #c2afb2;--line: #efdcde;--line-soft: #f6e9eb;--accent: #b27f86;--accent-strong: #9c6a72;--accent-soft: #fceef0;--deep: #6e565a;--danger: #c25d6e;--danger-soft: #fceef0;--radius: 18px;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--script: "Great Vibes", cursive}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{min-height:100%}.container{max-width:680px;margin:0 auto;padding:32px 16px 96px}.header{margin-bottom:28px}.brand{display:flex;align-items:center;gap:12px}.brand-badge{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent);border-radius:999px;color:#fff;flex:none;box-shadow:0 3px 10px #b27f8661}.brand-title{font-family:var(--script);font-size:34px;font-weight:400;line-height:1;letter-spacing:.5px;color:var(--accent);margin:0}.brand-sub{font-family:var(--mono);font-size:11px;color:var(--muted);margin:4px 0 0;letter-spacing:.12em}.tabs{margin-top:24px;display:inline-flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px}.tab{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);font-family:var(--sans);font-size:14px;font-weight:500;padding:7px 16px;border-radius:10px;cursor:pointer;transition:background .15s,color .15s}.tab:hover{color:var(--ink)}.tab.active{background:var(--accent);color:#fff}.notice{margin-bottom:20px;border:1px solid #f0cdd2;background:var(--accent-soft);color:var(--accent-strong);border-radius:12px;padding:12px 16px;font-size:14px;line-height:1.5}.field-label{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px}.field-label .opt{font-weight:400;color:var(--faint)}.input,.textarea{width:100%;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;min-height:56px;border-radius:10px}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b27f8629}.input.error,.textarea.error{border-color:#e6a3ac}.input.error:focus{box-shadow:0 0 0 3px #c25d6e29}.spacer-md{margin-bottom:20px}.dropzone{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--card);border:2px dashed #e2c4c8;border-radius:var(--radius);padding:56px 24px;text-align:center;cursor:pointer;color:var(--muted);transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone:disabled{opacity:.6;cursor:default}.dropzone .dz-title{font-size:14px;font-weight:500;color:var(--ink)}.dropzone .dz-hint{font-size:12px;color:var(--faint)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.stack>*+*{margin-top:12px}.img-wrap{position:relative;background:#faf2f3}.img-wrap img{display:block;width:100%;max-height:300px;object-fit:contain}.exhibit{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.06em;color:#fff;background:var(--deep);padding:3px 8px;border-radius:6px}.exhibit.accent{background:var(--accent)}.img-tag{position:absolute;top:12px;left:12px}.icon-x{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:#4f3d408c;color:#fff;cursor:pointer}.icon-x:hover{background:#4f3d40c7}.card-pad{padding:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--sans);font-size:14px;font-weight:600;border:1px solid transparent;border-radius:12px;padding:12px 18px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn:disabled{opacity:.55;cursor:default}.btn-block{width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-dark{background:var(--deep);color:#fff}.btn-dark:hover:not(:disabled){background:#5b464a}.btn-dashed{width:100%;background:var(--card);border:1px dashed #e2c4c8;color:var(--muted);font-weight:500}.btn-dashed:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.success{background:var(--card);border:1px solid #f0cdd2;border-radius:var(--radius);padding:36px 24px;text-align:center}.success-icon{width:48px;height:48px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.success h2{font-size:18px;margin:0 0 4px;color:var(--ink)}.success p{color:var(--muted);font-size:14px;margin:0 0 20px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.toolbar-count{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}.toolbar-count .mono{font-family:var(--mono)}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12px;font-weight:500;background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:8px 12px;cursor:pointer;transition:background .15s,border-color .15s}.chip:hover:not(:disabled){background:var(--bg-soft)}.chip:disabled{opacity:.5;cursor:default}.chip.danger{border-color:#e8b9c0;color:var(--danger)}.chip.danger:hover:not(:disabled){background:var(--danger-soft)}.entry-stack>*+*{margin-top:16px}.entry{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.entry-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fdf5f6;border-bottom:1px solid var(--line-soft)}.entry-del{border:0;background:transparent;color:var(--faint);cursor:pointer;padding:2px}.entry-del:hover{color:var(--danger)}.entry-img-btn{display:block;width:100%;border:0;padding:0;background:#faf2f3;cursor:zoom-in}.entry-img-btn img{display:block;width:100%;max-height:320px;object-fit:contain}.entry-body{padding:12px 16px 14px}.entry-meta{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:6px}.entry-meta .who{font-weight:600;color:var(--ink)}.entry-meta .dot{color:var(--faint)}.entry-comment{font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap;margin:0}.entry-comment.empty{font-style:italic;color:var(--faint)}.empty{background:var(--card);border:1px dashed #e2c4c8;border-radius:var(--radius);padding:72px 24px;text-align:center}.empty p{margin:0}.empty .empty-title{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:4px}.empty .empty-hint{font-size:12px;color:var(--faint)}.loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:80px 0;color:var(--muted);font-size:14px}.login{max-width:360px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;text-align:center}.login-icon{width:48px;height:48px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.login h2{font-size:16px;margin:0 0 4px;color:var(--ink)}.login p{font-size:14px;color:var(--muted);margin:0 0 16px}.login .input{text-align:center;margin-bottom:12px}.login .err{color:var(--danger);font-size:12px;margin:-4px 0 12px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#3c2c2fdb;padding:16px}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}.lightbox-close{position:absolute;top:16px;right:16px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:#ffffff2e;color:#fff;cursor:pointer}.lightbox-close:hover{background:#ffffff47}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important}.spin{animation:none}}.search-wrap{position:relative;margin-bottom:16px}.search-wrap .search-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}.search-input{width:100%;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 40px;outline:none;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b27f8629}.sub-stack>*+*{margin-top:10px}.sub-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.sub-card:hover{border-color:var(--accent);box-shadow:0 4px 14px #b27f8621}.sub-cover{position:relative;width:64px;height:64px;flex:none;border-radius:10px;overflow:hidden;background:#faf2f3;display:flex;align-items:center;justify-content:center;color:#dcc8cb}.sub-cover img{width:100%;height:100%;object-fit:cover}.sub-count{position:absolute;right:4px;bottom:4px;font-family:var(--mono);font-size:10px;font-weight:600;color:#fff;background:#4f3d40b8;border-radius:6px;padding:1px 5px}.sub-info{flex:1;min-width:0}.sub-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub-date{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:2px}.sub-chevron{color:var(--faint);flex:none}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}.pager-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--sans);font-size:13px;font-weight:500;background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:8px 12px;cursor:pointer}.pager-btn:hover:not(:disabled){background:var(--bg-soft)}.pager-btn:disabled{opacity:.4;cursor:default}.pager-info{font-family:var(--mono);font-size:12px;color:var(--muted)}.back-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--accent);font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;padding:4px 0;margin-bottom:14px}.back-btn:hover{color:var(--accent-strong)}.detail-head{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}.detail-name{font-size:18px;font-weight:700;color:var(--ink);margin:0}.detail-meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin:4px 0 14px}.detail-actions{display:flex;flex-wrap:wrap;gap:8px}.date-divider{position:sticky;top:0;z-index:2;background:var(--bg);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--accent-strong);padding:8px 2px 6px;margin-top:18px;border-bottom:1px solid var(--line)}.sub-stack>.date-divider:first-child{margin-top:0}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.filter-chip{font-family:var(--sans);font-size:13px;font-weight:500;background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.filter-chip:hover{color:var(--ink)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-date{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:13px;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}.filter-date.active{border-color:var(--accent);color:var(--accent)}.filter-date input{border:0;background:transparent;font:inherit;color:inherit;outline:none;cursor:pointer;padding:0;min-width:0}.date-count{color:var(--muted);font-weight:600}.cap-note{font-size:12px;color:var(--muted);text-align:center;margin-top:18px}.brand-logo{height:54px;width:auto;display:block}.help{background:var(--accent-soft);border:1px solid #f0cdd2;border-radius:14px;margin-bottom:18px;overflow:hidden}.help-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:0;cursor:pointer;padding:12px 14px;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--accent-strong)}.help-toggle>span{display:inline-flex;align-items:center;gap:8px}.help-toggle svg{transition:transform .18s;flex:none}.help-toggle .rot{transform:rotate(180deg)}.help-body{padding:0 16px 14px;color:var(--ink);font-size:13.5px;line-height:1.55}.help-body p{margin:0 0 8px}.help-body ol,.help-body ul{margin:0 0 10px;padding-left:20px}.help-body li{margin-bottom:4px}.help-tips-title{font-weight:600;margin-top:4px}.help-contact{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:6px}.header{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line);text-align:center}.brand{justify-content:center}.brand-logo{height:78px}.tabs{margin:16px auto 0}.site-footer{margin-top:44px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}.footer-name{font-family:var(--script);font-size:30px;color:var(--accent);line-height:1;margin-bottom:4px}.footer-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--faint);margin:-6px 0 8px}.footer-row{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);text-decoration:none;transition:color .15s}.footer-row svg{color:var(--accent);flex:none}.footer-row:hover{color:var(--ink)}
