:root{--bg: #05070c;--ink: #e8eef6;--muted: #8b9bb0;--line: #1c2838;--panel: rgba(10, 14, 22, .86);--accent: #39c9ff;--accent-ink: #04141c;--warm: #ff7a9c;--good: #52d6a0;--bad: #ff8d7a;--radius: 14px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}.app{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh}.cloud{position:absolute;top:0;right:0;bottom:0;left:0}.cloud canvas{display:block}.cloud-hidden{display:none}.rank{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain;padding:92px 16px calc(28px + env(safe-area-inset-bottom));background:radial-gradient(120% 80% at 50% 0%,#0a1020 0%,var(--bg) 62%)}.rank-list{list-style:none;margin:0 auto;padding:0;max-width:720px;display:flex;flex-direction:column;gap:8px}.rank-row{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;background:#0e131db8;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rank-bar{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#ff7a9c33,#ff7a9c0a);pointer-events:none}.rank-row.is-voted{border-color:#52d6a08c}.rank-row.is-mine{border-color:#39c9ff8c}.rank-place{position:relative;flex:0 0 2.2ch;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}.rank-body{position:relative;flex:1 1 auto;min-width:0}.rank-text{margin:0;font-size:15px;line-height:1.45;overflow-wrap:anywhere}.rank-meta{display:flex;align-items:center;gap:8px;margin:5px 0 0;font-size:12px;color:var(--muted)}.tag{padding:1px 7px;border-radius:999px;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.tag-mine{background:#39c9ff29;color:var(--accent)}.rank-action{position:relative;flex:0 0 auto}.votebtn{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:52px;padding:7px 9px;background:#ffffff0d;border:1px solid var(--line);color:var(--ink)}.votebtn:hover:not(:disabled){background:#ffffff1a;border-color:var(--muted)}.votebtn.on{background:#52d6a029;border-color:var(--good);color:var(--good)}.votebtn:disabled{opacity:.55}.votebtn-mark{font-size:10px;line-height:1}.votebtn-count{font-size:14px;font-weight:650;font-variant-numeric:tabular-nums}.viewtoggle{display:flex;flex:0 0 auto;padding:3px;background:#00000059;border:1px solid var(--line);border-radius:999px}.viewtoggle button{padding:5px 13px;background:none;border:none;border-radius:999px;color:var(--muted);font-size:12px;letter-spacing:.03em}.viewtoggle button:hover{color:var(--ink)}.viewtoggle button.on{background:#ffffff1a;color:var(--ink);font-weight:650}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(180deg,#05070ceb,#05070c00);transition:opacity .25s ease}.topbar.faded,.hint-bar.faded{opacity:.18;pointer-events:none}.brand{display:flex;align-items:center;gap:9px;flex:0 0 auto}.brand-mark{width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px 2px #39c9ff8c}.brand-name{font-weight:650;letter-spacing:.015em}.account{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}.pill{padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;color:var(--muted);white-space:nowrap}.daypicker{display:flex;align-items:center;gap:6px;margin:0 auto;padding:4px 6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.daypicker-middle{display:flex;flex-direction:column;align-items:center;min-width:164px;line-height:1.25}.daypicker-date{position:relative;display:block;cursor:pointer}.daypicker-label{font-size:13px;font-weight:600;white-space:nowrap}.daypicker-date input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;min-width:0;border:0;padding:0}.daypicker-count{font-size:11px;color:var(--muted)}.today{font-size:11px!important;padding:4px 9px!important}button{font:inherit;cursor:pointer;border-radius:10px;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,opacity .15s ease}button:disabled{opacity:.42;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-ink);border:none;padding:10px 16px;font-weight:650}.primary:hover:not(:disabled){background:#5fd6ff}.primary.small{padding:7px 13px;font-size:13px}.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);padding:6px 11px;font-size:15px;line-height:1}.ghost:hover:not(:disabled){background:#ffffff0f}.link{background:none;border:none;color:var(--muted);padding:6px 4px;font-size:13px;text-decoration:underline;text-decoration-color:#8b9bb066}.link:hover{color:var(--ink)}.voted{background:#52d6a024;border:1px solid var(--good);color:var(--good);padding:10px 16px;font-weight:600;width:100%}.dock{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:center;pointer-events:none}.dock>*{pointer-events:auto}.postcard,.composer{position:relative;width:100%;max-width:460px;padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 50px #0000008c}.postcard-text{margin:4px 30px 12px 0;font-size:17px;line-height:1.45;overflow-wrap:anywhere}.postcard-meta{display:flex;gap:12px;align-items:baseline;margin-bottom:14px;font-size:13px;color:var(--muted)}.handle{color:var(--accent)}.votes{margin-left:auto}.postcard .primary,.postcard .voted{width:100%}.composer-head{display:flex;align-items:center;margin-bottom:10px}.composer-head h3{margin:0;font-size:15px;font-weight:650}.composer textarea{width:100%;padding:12px;background:#00000059;border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;line-height:1.5;resize:none}.composer textarea:focus{outline:none;border-color:var(--accent)}.composer-foot{display:flex;align-items:center;gap:10px;margin-top:10px}.counter{font-size:12px;color:var(--muted);margin-right:auto;font-variant-numeric:tabular-nums}.counter.low{color:var(--warm)}.counter.over{color:var(--bad);font-weight:650}.confirm{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--warm)}.composer blockquote{margin:0 0 10px;padding:12px 14px;background:#0000004d;border-left:2px solid var(--accent);border-radius:0 10px 10px 0;font-size:16px;overflow-wrap:anywhere}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#030509b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20}.sheet{position:relative;width:100%;max-width:400px;padding:26px;background:#0a0e16;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px #0009;max-height:calc(100dvh - 40px);overflow-y:auto}.sheet h2{margin:0 0 6px;font-size:22px}.sheet-close{position:absolute;top:10px;right:10px;width:32px;height:32px;background:none;border:none;color:var(--muted);font-size:22px;line-height:1}.sheet-close:hover{color:var(--ink)}.sheet form{margin-top:18px;display:grid;gap:14px}label{display:grid;gap:6px;font-size:12px;color:var(--muted);text-transform:lowercase;letter-spacing:.03em}input[type=email],input[type=password],input[type=text]{padding:11px 12px;background:#0006;border:1px solid var(--line);border-radius:10px;color:var(--ink);font:15px/1.4 inherit;text-transform:none;letter-spacing:normal}input:focus{outline:none;border-color:var(--accent)}.sheet .primary{width:100%;padding:12px}.sheet-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.muted{color:var(--muted);margin:0;font-size:13px}.hint{color:var(--muted);font-size:12px;margin:10px 0 0}.hint-warn{color:var(--warm)}.error{color:var(--bad);font-size:13px;margin:0}.notice{color:var(--good);font-size:13px;margin:0}.empty,.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--muted);pointer-events:none}.empty{pointer-events:auto}.empty p{margin:0 0 14px}.toast{position:absolute;top:70px;left:50%;transform:translate(-50%);max-width:min(420px,calc(100vw - 32px));padding:11px 16px;background:#2a1218;border:1px solid var(--bad);border-radius:10px;color:#ffd9d2;font-size:13px;cursor:pointer;z-index:30}.hint-bar{position:absolute;bottom:18px;left:50%;transform:translate(-50%);margin:0;font-size:11px;letter-spacing:.06em;color:#8b9bb0a6;pointer-events:none;transition:opacity .25s ease;white-space:nowrap}@media(max-width:720px){.topbar{flex-wrap:wrap;gap:8px;padding:10px 12px}.viewtoggle{order:2}.daypicker{order:3;flex:1 1 auto;margin:0;justify-content:center}.daypicker-middle{min-width:0;flex:1 1 auto}.brand-name{font-size:14px}.pill{display:none}.dock{left:10px;right:10px;bottom:10px}.hint-bar{display:none}.postcard-text{font-size:16px}.rank{padding:118px 12px calc(24px + env(safe-area-inset-bottom))}.rank-row{gap:10px;padding:12px}.rank-text{font-size:14px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
