@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.p.0l2qk94b1u89y.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.01rdcbu-77uoy.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.0sn2213rkw2e_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.p.0p40-daftjh_g.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35fd19aef91b293-s.07en.a1_ufzzv.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8f46d218c8f79e34-s.p.0xhl7b6zs4.~j.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ffc259da9d23054-s.p.0b_.2~bprftx..woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e486ba39c38fb8a-s.0qxf2_hlpbci0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6f42e0a3b0519c4d-s.p.0czffigx~77c..woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.be_vietnam_pro_d92e88c8-module__N3gV4G__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_d92e88c8-module__N3gV4G__variable{--font-sans:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1e219c03c996efbd-s.p.0vlx5hthn2t7i.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0fu677rwbv-.g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/03bda585a99c6450-s.p.0zzh68k1~whtc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1e219c03c996efbd-s.p.0vlx5hthn2t7i.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0fu677rwbv-.g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/03bda585a99c6450-s.p.0zzh68k1~whtc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_4613e456-module__0duCXa__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_4613e456-module__0duCXa__variable{--font-serif:"Fraunces", "Fraunces Fallback"}
:root{--paper:#faf6f0;--card:#fff;--line:#e7decf;--ink:#1c1815;--muted:#6e655b;--green:#2f6b4f;--green-dark:#245540;--green-tint:#f1f7f3;--brick:#b23a2e;--amber-bg:#f8ecd3;--amber-text:#8a5e12;--blue-bg:#e6eef7;--blue-text:#2b5f9e;--radius:12px;--radius-sm:9px;--shadow:0 1px 2px #1c18150a, 0 4px 14px #1c18150d;--shadow-soft:0 1px 2px #1c18150a;--font-display:var(--font-serif), Georgia, serif;--font-body:var(--font-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg:var(--card);--bg-muted:var(--paper);--text:var(--ink);--text-muted:var(--muted);--primary:var(--green);--approve:var(--green);--reject:var(--brick);--border:var(--line);--badge-bg:var(--green-tint);--persona-hailua-bg:#eaf2ec;--persona-hailua-text:#2f6b4f;--persona-university-bg:#e6eef7;--persona-university-text:#2b5f9e;--persona-advocate-bg:#f6e9df;--persona-advocate-text:#b23a2e}*{box-sizing:border-box;margin:0;padding:0}html{background:#efe9df}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;max-width:480px;margin:0 auto;font-size:17px;line-height:1.5}a{color:inherit}.hidden{display:none!important}.app-header{background:var(--paper);border-bottom:1px solid var(--line);z-index:100;justify-content:space-between;align-items:center;gap:8px;padding:14px;display:flex;position:sticky;top:0}.app-header h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:24px;font-weight:700}.btn-logout{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:14px}.header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.header-link{color:var(--green);background:var(--green-tint);white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:14px;font-weight:600;text-decoration:none}.header-back{color:var(--ink);font-size:22px;line-height:1;text-decoration:none}.header-spacer{flex-shrink:0;width:24px}main{padding:0 0 calc(32px + env(safe-area-inset-bottom,0px))}.page{padding:20px 16px 44px}.status-tabs{background:var(--paper);border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.status-tab{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;padding:13px 16px;font-size:15px;text-decoration:none}.status-tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.post-list{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.post-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow);padding:16px;text-decoration:none;display:block}.post-card:active{border-color:var(--green)}.post-card-topic{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:17px;font-weight:700;display:flex}.post-card-topic-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.post-card-topic .badge{flex-shrink:0}.post-card-snippet{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px;font-size:14.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.post-card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.post-card-config{color:var(--muted)}.post-card-cost{color:var(--muted);font-variant-numeric:tabular-nums}.detail-config{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.badge{letter-spacing:.01em;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700;display:inline-block}.badge-pending{background:var(--amber-bg);color:var(--amber-text);border:1px solid #eddcb6}.badge-approved{background:var(--green-tint);color:var(--green)}.badge-rejected{color:var(--brick);background:#f6e2df}.badge-published{background:var(--blue-bg);color:var(--blue-text)}.badge-persona-hailua{background:var(--persona-hailua-bg);color:var(--persona-hailua-text)}.badge-persona-university{background:var(--persona-university-bg);color:var(--persona-university-text)}.badge-persona-advocate{background:var(--persona-advocate-bg);color:var(--persona-advocate-text)}.empty-state{text-align:center;color:var(--muted);padding:56px 24px;font-size:17px;line-height:1.6}.slabel,.section-label{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:14px;font-weight:600}.slabel{margin:26px 2px 10px}.section-label{margin-bottom:10px}.hint{color:var(--muted);margin:8px 4px 0;font-size:13.5px;line-height:1.45}.btn{border-radius:var(--radius);cursor:pointer;letter-spacing:.01em;text-align:center;-webkit-appearance:none;border:none;justify-content:center;align-items:center;width:100%;height:52px;padding:0 14px;font-size:17.5px;font-weight:700;line-height:1;text-decoration:none;display:flex}.btn-primary,.btn-approve{background:var(--green);color:#fff;box-shadow:0 2px 6px #2f6b4f47,0 6px 18px #2f6b4f24}.btn-primary:active,.btn-approve:active{background:var(--green-dark)}.btn-reject{background:var(--brick);color:#fff;box-shadow:0 2px 6px #b23a2e42,0 6px 18px #b23a2e21}.btn-secondary{background:var(--card);color:var(--ink);box-shadow:var(--shadow-soft);border:1px solid #dcd2c0;font-size:16px;font-weight:600}.btn:disabled{opacity:.6}.btn-pair{gap:10px;display:flex}.btn-pair .btn{flex:1}.btn-row{flex-direction:column;gap:10px;display:flex}.btn-ghost{height:44px;font-size:16px;font-weight:600}.seg{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);gap:4px;padding:4px;display:flex}.seg-btn{border-radius:var(--radius-sm);cursor:pointer;height:44px;color:var(--muted);background:0 0;border:none;flex:1;justify-content:center;align-items:center;font-family:inherit;font-size:15.5px;font-weight:600;display:flex}.seg-btn.on{background:var(--green);color:#fff;box-shadow:0 1px 3px #2f6b4f4d}.opt{text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);color:var(--ink);align-items:flex-start;gap:13px;margin-bottom:10px;padding:14px 16px;font-family:inherit;display:flex}.opt .emo{background:#f6f1e7;border-radius:11px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.opt .name{font-size:17px;font-weight:700;line-height:1.3;display:block}.opt .note{color:var(--muted);margin-top:2px;font-size:14px;line-height:1.4;display:block}.opt.selected{border:1.5px solid var(--green);background:var(--green-tint);box-shadow:0 1px 2px #2f6b4f0f,0 4px 14px #2f6b4f14}.opt.selected .emo{background:#e4efe7}.opt .mix{margin-top:10px;display:block}.opt .mix-bar{background:var(--blue-bg);border-radius:999px;height:6px;display:block;overflow:hidden}.opt .mix-fill{background:var(--green);height:100%;display:block}.opt .mix-label{color:var(--muted);margin-top:5px;font-size:12.5px;display:block}.form-card{padding:16px}.topic-add-hint{color:var(--muted);margin:4px 2px 0;font-size:14px;line-height:1.5}.success-msg{color:var(--green);margin-top:10px;font-size:14px;display:block}.topic-group-label{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;margin:26px 2px 10px;font-size:14px;font-weight:600}.qrow{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex}.qrow .t{font-size:16px;font-weight:600;line-height:1.4}.qrow .m{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:13.5px;display:flex}.qrow .badge{flex:none;align-self:flex-start;margin-left:auto}.qrow-main{flex:auto;min-width:0}.qrow-action{flex:none;align-items:center;display:flex}.rowbtn{cursor:pointer;white-space:nowrap;border:none;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-family:inherit;font-size:15px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.rowbtn:disabled{opacity:.6}.rowbtn-go{background:var(--green);color:#fff;box-shadow:0 1px 3px #2f6b4f4d}.rowbtn-go:active{background:var(--green-dark)}.rowbtn-retry{background:var(--card);color:var(--brick);border:1px solid #e3c7c2}.rowbtn-view{background:var(--green-tint);color:var(--green)}.qrow-status{margin-top:7px}.qrow-status:empty{display:none}.rs{align-items:center;gap:8px;font-size:13.5px;font-weight:600;line-height:1.4;display:inline-flex}.rs-wait{color:var(--amber-text)}.rs-go,.rs-done{color:var(--green)}.rs-fail{color:var(--brick)}.rs-hint{color:var(--muted);font-weight:500}.spinner{border:2px solid var(--line);border-top-color:var(--muted);border-radius:999px;flex:none;width:14px;height:14px;animation:.8s linear infinite rowspin}@keyframes rowspin{to{transform:rotate(360deg)}}.progress{background:var(--green-tint);border-radius:999px;flex:none;width:64px;height:4px;display:inline-block;position:relative;overflow:hidden}.progress:after{content:"";background:var(--green);border-radius:999px;width:40%;animation:1.1s ease-in-out infinite rowprogress;position:absolute;top:0;bottom:0}@keyframes rowprogress{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:var(--line);animation:none}.progress:after{opacity:.5;width:100%;animation:none;left:0}}.post,.fb-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.fb-card-hero,.post-hero{aspect-ratio:1.91;object-fit:cover;width:100%;display:block}.fb-card-hero-placeholder{aspect-ratio:1.91;background:var(--paper);width:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.post-head{align-items:center;gap:11px;padding:14px 16px 0;display:flex}.avatar{background:#eaf2ec;border:1px solid #d7e4da;border-radius:999px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:flex}.page-name,.fb-card-page{font-size:16px;font-weight:700;line-height:1.25}.post-meta,.fb-card-time{color:var(--muted);align-items:center;gap:6px;margin-top:2px;font-size:14px;display:flex}.dot{background:var(--green);border-radius:999px;width:8px;height:8px}.fb-card-header{padding:12px 16px 4px}.post-body,.fb-card-body{padding:12px 16px 18px;font-size:18px;line-height:1.7}.headline{font-family:var(--font-display);letter-spacing:-.005em;margin-bottom:10px;font-size:22px;font-weight:700;line-height:1.35}.post-body p,.fb-card-body p{margin-bottom:14px}.post-body p:last-child,.fb-card-body p:last-child{margin-bottom:0}.fb-card-body .hashtag,.post-body .hashtag{color:var(--green);font-weight:600}.sources-section{margin-bottom:0}.sources-toggle{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;width:100%;color:var(--ink);box-shadow:var(--shadow-soft);padding:15px 16px;font-size:16px;font-weight:600}.sources-list{padding:8px 0}.source-item{padding:7px 4px;font-size:14px;line-height:1.4}.source-item a{color:var(--green);text-decoration:none}.status-badge{border-radius:999px;padding:7px 16px;font-size:15px;font-weight:700;display:inline-block}.status-badge.approved{background:var(--green-tint);color:var(--green)}.status-badge.rejected{color:var(--brick);background:#f6e2df}.status-badge.published{background:var(--blue-bg);color:var(--blue-text)}.status-badge.pending{background:var(--amber-bg);color:var(--amber-text)}.status-pill{color:var(--amber-text);background:var(--amber-bg);white-space:nowrap;border:1px solid #eddcb6;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700}.detail-section{padding:16px}.detail-section+.detail-section{padding-top:0}.actionbar{z-index:20;background:var(--paper);border-top:1px solid var(--line);padding:12px 16px calc(10px + env(safe-area-inset-bottom,0px));position:sticky;bottom:0}.actionbar .row{gap:10px;display:flex}.actionbar .row+.row{margin-top:10px}.gallery{gap:8px;padding:4px 0;display:flex;overflow-x:auto}.gallery-thumb{object-fit:cover;border:1px solid var(--line);border-radius:8px;flex-shrink:0;width:84px;height:84px}.gallery-note{color:var(--muted);font-size:13px}input[type=text],input[type=password],textarea{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);-webkit-appearance:none;background:#fcfaf6;padding:14px;font-family:inherit;font-size:17px;line-height:1.55}input:focus,textarea:focus{border-color:var(--green);background:var(--card);outline:none}textarea{resize:vertical}.error-msg{color:var(--brick);margin-top:8px;font-size:14px;display:block}.login-wrap{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow);text-align:center;padding:36px 24px}.login-card h1{font-family:var(--font-display);margin-bottom:8px;font-size:26px}.login-card p{color:var(--muted);margin-bottom:24px;line-height:1.5}.reject-form{margin-top:10px}.reject-form textarea{min-height:84px;margin-bottom:10px}.edit-wrap{padding:16px}.edit-wrap textarea{min-height:60vh;font-size:17px;line-height:1.65}@media (display-mode:standalone){.app-header{padding-top:calc(14px + env(safe-area-inset-top,0px))}main{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))}}
