:root{--bg: #ece1cc;--panel: #fbf6ec;--panel-2: #f3ebda;--border: #ded0b6;--text: #33302a;--muted: #8a806c;--accent: #a4703c;--accent-soft: #a4703c22;--gold: #e0a92e;--danger: #c9524d;--radius: 14px;--shadow: 0 6px 20px rgba(103, 84, 51, .14)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 20% -10%,#f6eeddff 0%,var(--bg) 55%);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:1000px;margin:0 auto;padding:24px 20px 80px}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.auth-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-lang{position:absolute;top:20px;right:20px}.auth-card{width:100%;max-width:400px;padding:28px}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand h1{margin:8px 0 4px;font-size:24px;letter-spacing:-.02em}.auth-brand p{margin:0}.auth-banner{background:var(--accent-soft);color:var(--accent);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.4;margin-bottom:16px}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:600}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-error{background:#f0dede;color:#b3524d;border-radius:8px;padding:8px 11px;font-size:13px}.auth-notice{background:#d9ecdf;color:#2f7d47;border-radius:8px;padding:8px 11px;font-size:13px}.auth-switch{text-align:center;margin-top:16px;font-size:13.5px;color:var(--muted)}.linkbtn{background:none;border:0;color:var(--accent);font-weight:700;cursor:pointer;font-size:13.5px;padding:0}.linkbtn:hover{text-decoration:underline}.club-title{display:flex;align-items:center;gap:8px}.edit-name{background:none;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:6px;line-height:1}.edit-name:hover{color:var(--accent);background:var(--accent-soft)}.club-title-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.club-title-edit input{width:auto;min-width:180px;font-size:18px;font-weight:700}.next-meeting{display:flex;gap:16px;align-items:center;margin-bottom:8px;border-color:var(--accent);transition:transform .12s}.next-meeting:hover{transform:translateY(-2px)}.next-meeting .cal{width:58px;height:62px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.next-meeting .cal .m{font-size:11px;text-transform:uppercase;color:var(--accent);font-weight:800;letter-spacing:.05em}.next-meeting .cal .d{font-size:22px;font-weight:800}.next-meeting .body{flex:1;min-width:0}.next-meeting .body .title{font-weight:700}.next-meeting .body .sub{color:var(--muted);font-size:13px;margin-top:3px}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:48px;padding-top:20px;border-top:1px solid var(--border)}.app-footer .muted{font-size:12.5px}.subtabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--border);margin-bottom:20px}.subtab{border:0;background:transparent;color:var(--muted);padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.12s}.subtab:hover{color:var(--text)}.subtab.active{color:var(--accent);border-bottom-color:var(--accent)}.thread{padding-bottom:12px}.message{display:flex;gap:12px;align-items:flex-start}.message.reply{padding-top:12px}.message-body{flex:1;min-width:0}.message-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.message-head .name{font-weight:700;font-size:14px}.message-head .date{color:var(--muted);font-size:12px}.message-text{white-space:pre-wrap;line-height:1.6;margin-top:3px}.message-actions{display:flex;gap:12px;margin-top:6px}.message-actions .linkbtn{font-size:12px;font-weight:600}.danger-link{color:var(--danger)}.reaction-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.reaction{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:999px;padding:3px 9px;font-size:13px;cursor:pointer;line-height:1.5;transition:.12s}.reaction:hover{border-color:var(--accent)}.reaction.mine{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.reaction.add{color:var(--muted);font-size:12px}.reaction-picker{display:inline-flex;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:3px;flex-wrap:wrap}.thread-foot{margin-top:10px;padding-left:38px}.thread-foot .linkbtn{font-size:13px}.thread-replies{margin-top:8px;margin-left:38px;padding-left:14px;border-left:2px solid var(--border)}.reply-composer{margin-top:12px}.guide-intro{display:flex;align-items:center;gap:16px}.guide-intro-icon{font-size:34px;flex:0 0 auto}.guide-section h3{margin:0;font-size:16px}.guide-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.guide-icon{font-size:22px}.guide-steps{margin:0;padding-left:22px}.guide-steps li{margin:7px 0;line-height:1.6;font-size:14px}.footer-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);text-align:center}.stat-icon{font-size:20px}.stat-value{font-size:26px;font-weight:800;line-height:1.1}.stat-label{font-size:11.5px;color:var(--muted)}@media (max-width: 420px){.stat-value{font-size:22px}.stat-label{font-size:10.5px}}.wish-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.wish-item:last-child{border-bottom:0}.wish-cover{width:36px;height:54px;flex:0 0 auto;border-radius:4px;overflow:hidden;background:var(--panel-2);display:flex;align-items:center;justify-content:center}.wish-cover img{width:100%;height:100%;object-fit:contain}.wish-info{flex:1;min-width:0}.wish-title{font-weight:600;font-size:14px}.note-text{white-space:pre-wrap;line-height:1.55}.visibility-row{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);margin:0;cursor:pointer}.visibility-row input{width:auto;margin:0}.club-row{display:flex;align-items:center;gap:14px}.club-avatar{width:46px;height:46px;flex:0 0 auto;border-radius:12px;border:1px solid var(--border);background:var(--panel-2);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;cursor:pointer;padding:0}.club-avatar img{width:100%;height:100%;object-fit:cover;display:block}.club-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.club-row-name{font-weight:700;font-size:15px}.club-row-meta{color:var(--muted);font-size:12px}.avatar.club-icon{border-radius:10px}.home-menu{display:flex;flex-direction:column;gap:14px}.home-tile{display:flex;align-items:center;gap:16px;width:100%;text-align:left;cursor:pointer;transition:transform .12s,border-color .12s;font:inherit;color:inherit}.home-tile:hover{transform:translateY(-2px);border-color:var(--accent)}.home-icon{font-size:28px;width:54px;height:54px;border-radius:14px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.home-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.home-title{font-weight:700;font-size:16px}.home-desc{color:var(--muted);font-size:13px}.home-arrow{color:var(--accent);font-size:20px;font-weight:700;flex:0 0 auto}.map-preview{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel-2)}.map-preview iframe{display:block;width:100%;height:180px;border:0}.map-preview.small{margin-top:8px;max-width:380px}.map-preview.small iframe{height:120px}.club-switch{width:auto;min-width:120px;max-width:200px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer}.invite-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--accent);background:var(--accent-soft)}.invite-banner span{font-size:14px;font-weight:600}.role-badge{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border);vertical-align:middle}.role-badge.current{background:var(--accent-soft);color:var(--accent);border-color:transparent}.member-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.member-row:last-child{border-bottom:0}.member-info{flex:1}.member-name{font-weight:600}.member-row .avatar{width:34px;height:34px;font-size:14px}.add-member{border-top:1px solid var(--border);margin-top:8px;padding-top:16px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:16px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand .logo{font-size:30px}.club-logo-img{width:42px;height:42px;border-radius:11px;object-fit:cover;display:block}.icon-uploader{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.icon-preview{width:52px;height:52px;border-radius:13px;overflow:hidden;background:var(--panel-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 auto}.icon-preview img{width:100%;height:100%;object-fit:cover}.brand h1{font-size:22px;margin:0;letter-spacing:-.02em}.brand p{margin:2px 0 0;color:var(--muted);font-size:13px}.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tabs{display:flex;flex-wrap:wrap;gap:6px;background:var(--panel);padding:6px;border-radius:999px;border:1px solid var(--border)}.lang-toggle{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:4px}.lang-btn{border:0;background:transparent;color:var(--muted);padding:6px 12px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:700;transition:.15s}.lang-btn:hover{color:var(--text)}.lang-btn.active{background:var(--accent);color:#fff}.tab{border:0;background:transparent;color:var(--muted);padding:9px 18px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;transition:.15s}.tab:hover{color:var(--text)}.tab.active{background:var(--accent);color:#fff}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:28px 0 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.book-card{cursor:pointer;transition:transform .12s,border-color .12s;display:flex;flex-direction:column;gap:12px}.book-card:hover{transform:translateY(-3px);border-color:var(--accent)}.book-cover{width:100%;max-width:150px;margin:0 auto;aspect-ratio:2 / 3;border-radius:10px;display:flex;align-items:flex-end;justify-content:center;padding:12px;color:#0e1017;font-weight:800;font-size:15px;line-height:1.2}.book-cover img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit}.cover-loading{font-size:12px;font-weight:600;opacity:.85}.book-meta .t{font-weight:700;font-size:15px}.book-meta .a{color:var(--muted);font-size:13px;margin-top:2px}.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.badge.current{background:var(--accent-soft);color:var(--accent)}.badge.upcoming{background:#f2a65a22;color:#f2a65a}.badge.finished{background:#7bc47f22;color:#7bc47f}.hero{display:flex;gap:20px;align-items:stretch}.hero .book-cover{width:130px;max-width:none;margin:0;flex-shrink:0}.hero .info{display:flex;flex-direction:column;gap:8px}.hero h2{margin:0;font-size:24px;letter-spacing:-.02em}.hero .a{color:var(--muted)}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:9px 14px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;transition:.15s}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:transparent;background:transparent;padding:6px 8px}.btn.danger:hover{background:#e5646e18}.btn.small{padding:6px 10px;font-size:13px}input,textarea,select{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical;min-height:70px}label{font-size:13px;color:var(--muted);display:block;margin-bottom:6px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.stars{display:inline-flex;gap:2px;font-size:16px;line-height:1}.stars .s{color:#d8cbb0}.stars .s.on{color:var(--gold)}.stars.input .s{cursor:pointer}.back{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:0;margin-bottom:16px}.back:hover{color:var(--text)}.detail-head{display:flex;gap:20px;margin-bottom:8px}.detail-head .book-cover{width:120px;max-width:none;margin:0;flex-shrink:0}.comment,.review{border-top:1px solid var(--border);padding:14px 0}.comment:first-child,.review:first-child{border-top:0}.who{display:flex;align-items:center;gap:8px;margin-bottom:4px}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;overflow:hidden;flex:0 0 auto}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar.avatar-lg{width:52px;height:52px;font-size:20px}.who .name{font-weight:700;font-size:14px}.who .date{color:var(--muted);font-size:12px}.qlist{margin:0;padding-left:18px}.qlist li{margin:8px 0;color:var(--text)}.meeting{display:flex;gap:16px;align-items:center}.meeting .cal{width:58px;height:62px;border-radius:10px;background:var(--panel-2);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.meeting .cal .m{font-size:11px;text-transform:uppercase;color:var(--accent);font-weight:800;letter-spacing:.05em}.meeting .cal .d{font-size:22px;font-weight:800}.meeting .body{flex:1}.meeting .body .title{font-weight:700}.meeting .body .sub{color:var(--muted);font-size:13px;margin-top:3px}.cal-picker{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--panel);max-width:360px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-month{font-weight:700;font-size:14px}.cal-nav{border:1px solid var(--border);background:var(--panel-2);color:var(--text);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1}.cal-nav:hover{border-color:var(--accent);color:var(--accent)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-wd{text-align:center;font-size:11px;color:var(--muted);font-weight:700;padding-bottom:4px}.cal-day{position:relative;aspect-ratio:1;border:1px solid transparent;background:var(--panel-2);color:var(--text);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:.12s}.cal-day:hover:not(:disabled){border-color:var(--accent)}.cal-day:disabled{opacity:.3;cursor:default}.cal-day.today{border-color:var(--muted)}.cal-day.on{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-badge{position:absolute;top:-4px;right:-4px;background:var(--text);color:var(--panel);font-size:9px;font-weight:800;min-width:15px;height:15px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 3px}.slot-list{display:flex;flex-direction:column;gap:8px}.slot-day{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid var(--border);border-radius:10px;padding:8px 12px;background:var(--panel-2)}.slot-date{font-size:13px;font-weight:700;min-width:110px}.slot-times{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.slot-chip{display:inline-flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:2px 4px 2px 8px}.slot-chip input{width:auto;border:0;background:transparent;padding:2px 0;font-size:13px;font-weight:600}.slot-chip button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:11px;padding:2px 5px;border-radius:999px}.slot-chip button:hover{background:#e5646e22;color:var(--danger)}.date-chip .tm{font-size:12px;font-weight:700;color:var(--accent);margin-top:2px}.date-summary{display:flex;gap:10px;overflow-x:auto;padding:14px 2px 4px}.date-chip{position:relative;min-width:84px;text-align:center;border:1px solid var(--border);background:var(--panel-2);border-radius:12px;padding:12px 10px 10px;flex-shrink:0}.date-chip.best{border-color:var(--accent);background:var(--accent-soft)}.date-chip .wd{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.date-chip .dd{font-size:22px;font-weight:800;line-height:1.1}.date-chip .mo{font-size:11px;color:var(--muted)}.date-chip .cnt{margin-top:6px;font-size:12px;font-weight:700}.best-badge{position:absolute;top:-9px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px}.avail-matrix{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.avail-matrix table{border-collapse:collapse;width:100%;font-size:13px}.avail-matrix th,.avail-matrix td{padding:7px 12px;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}.avail-matrix tr:last-child td{border-bottom:0}.avail-matrix th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.avail-matrix th:first-child,.avail-matrix td:first-child{text-align:left;font-weight:600;position:sticky;left:0;background:var(--panel)}.avail-matrix .best-col{background:var(--accent-soft)}.mark{font-weight:800}.mark.yes{color:#3f9d5a}.mark.maybe{color:#b98a1e}.mark.no{color:var(--muted)}.poll-respond{border:1px dashed var(--border);border-radius:12px;padding:14px}.avail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.tri{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;flex-shrink:0}.tri-btn{border:0;border-left:1px solid var(--border);background:transparent;color:var(--muted);padding:6px 11px;cursor:pointer;font-size:12.5px;font-weight:600;transition:.12s}.tri-btn:first-child{border-left:0}.tri-btn.on.yes{background:#d9ecdf;color:#2f7d47}.tri-btn.on.maybe{background:#f6eccf;color:#8a6d1a}.tri-btn.on.no{background:#f0dede;color:#b3524d}.date-pill{display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:5px 6px 5px 12px;font-size:13px}.date-pill button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:999px}.date-pill button:hover{background:#e5646e22;color:var(--danger)}.search-results{display:flex;flex-direction:column;gap:2px;max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:6px}.search-result{display:flex;gap:12px;align-items:center;text-align:left;width:100%;background:transparent;border:0;border-radius:8px;padding:8px;cursor:pointer;transition:background .12s}.search-result:hover{background:var(--panel-2)}.sr-cover{width:38px;height:54px;flex:0 0 auto;border-radius:4px;overflow:hidden;background:var(--panel-2);display:flex;align-items:center;justify-content:center}.sr-cover img{width:100%;height:100%;object-fit:contain}.sr-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sr-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-meta{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-book{display:flex;gap:14px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px}.sel-cover{width:64px;height:92px;flex:0 0 auto;border-radius:6px;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center}.sel-cover img{width:100%;height:100%;object-fit:contain}a{color:var(--accent);text-decoration-color:var(--border);text-underline-offset:2px}a:hover{text-decoration-color:var(--accent)}.muted{color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:40px 0}.stack{display:flex;flex-direction:column;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}hr.sep{border:0;border-top:1px solid var(--border);margin:20px 0}@media (max-width: 640px){.hero{flex-direction:column}.hero .book-cover{width:130px;margin:0 auto}.header{justify-content:center}.header-right{width:100%}.tabs{flex-wrap:nowrap;width:100%;gap:2px;padding:4px}.tab{flex:1 1 0;min-width:0;padding:8px 4px;font-size:12.5px;white-space:nowrap}.subtabs{overflow-x:visible;gap:0}.subtab{flex:1 1 0;min-width:0;padding:10px 2px;font-size:12px;text-align:center}}
