:root{--tc-amber:#ffb65c;--tc-amber-soft:#ffe2ac;--tc-amber-glow:#ffc97a8c;--tc-ink:#2e3450;--tc-ink-2:#565d78;--tc-ink-3:#9aa1bf;--tc-mist-a:#dfeaff;--tc-mist-b:#fff3e2;--tc-night:#1e2340;--tc-night-deep:#12152a;--tc-ok:#7bc89c;--tc-warn:#f2b37b;--tc-danger:#e88a8a;--tc-bg:#f6f5f1;--tc-surface:#ffffffb8;--tc-surface-sd:#fff;--tc-border:#2e34501a;--tc-text:var(--tc-ink);--tc-text-2:var(--tc-ink-2);--tc-r-s:10px;--tc-r-m:16px;--tc-r-l:22px;--tc-r-xl:28px;--tc-shadow:0 6px 24px #2e34501a;--tc-shadow-lift:0 10px 32px #2e345029;--tc-glow:0 0 0 4px #ffb65c2e, 0 4px 18px #ffb65c73;--tc-jelly:cubic-bezier(.34, 1.56, .64, 1);--tc-ease:cubic-bezier(.22, .61, .36, 1);--tc-fast:.16s;--tc-slow:.42s;--tc-font:"PingFang TC", "Noto Sans TC", -apple-system, sans-serif;--tc-font-notice:"Songti TC", "Noto Serif TC", serif}:root[data-theme=dark]{--tc-bg:#14172b;--tc-surface:#1b1f3abd;--tc-surface-sd:#1b1f3a;--tc-border:#e7eaf61a;--tc-text:#e7eaf6;--tc-text-2:#9aa1bf;--tc-shadow:0 6px 24px #00000059;--tc-shadow-lift:0 10px 32px #00000073}:root[data-theme=light]{--tc-bg:#f6f5f1;--tc-surface:#ffffffb8;--tc-surface-sd:#fff;--tc-border:#2e34501a;--tc-text:#2e3450;--tc-text-2:#6a7086;--tc-shadow:0 6px 24px #2e34501a;--tc-shadow-lift:0 10px 32px #2e345029}.tc-app{background:var(--tc-bg);color:var(--tc-text);font-family:var(--tc-font);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.7}:root[data-text=large] .tc-app{font-size:18.5px}:root[data-text=large] .tc-btn{padding:15px 24px;font-size:17px}.tc-btn,.tc-input{min-height:46px}.tc-card{background:var(--tc-surface);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border:1px solid var(--tc-border);border-radius:var(--tc-r-l);box-shadow:var(--tc-shadow);padding:18px 20px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tc-card{background:var(--tc-surface-sd)}}.tc-card--float{transition:transform var(--tc-slow) var(--tc-jelly), box-shadow var(--tc-slow) var(--tc-ease)}.tc-card--float:hover{box-shadow:var(--tc-shadow-lift);transform:translateY(-3px)}.tc-mist-bg{background:linear-gradient(160deg, var(--tc-mist-a) 0%, var(--tc-mist-b) 100%)}.tc-btn{font:600 15px/1 var(--tc-font);letter-spacing:.06em;border-radius:var(--tc-r-m);cursor:pointer;color:var(--tc-text);background:var(--tc-surface);border:none;border:1px solid var(--tc-border);transition:transform var(--tc-fast) var(--tc-jelly), box-shadow var(--tc-fast) var(--tc-ease), filter var(--tc-fast);padding:13px 22px}.tc-btn:hover{filter:brightness(1.03)}.tc-btn:active{transform:scale(.96)}.tc-btn:focus-visible{outline:2px solid var(--tc-amber);outline-offset:2px}.tc-btn--primary{background:linear-gradient(180deg, var(--tc-amber-soft), var(--tc-amber));color:#4a3418;box-shadow:var(--tc-glow);border:none}.tc-btn--primary:active{transform:scale(.95)}.tc-btn--big{border-radius:var(--tc-r-l);width:100%;padding:17px;font-size:17px}.tc-btn--ghost{border:1.5px solid var(--tc-border);background:0 0}.tc-pill{font:500 12px/1 var(--tc-font);letter-spacing:.05em;background:color-mix(in srgb, var(--tc-ink-3) 16%, transparent);color:var(--tc-text-2);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.tc-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.tc-pill--pending{background:color-mix(in srgb, var(--tc-warn) 22%, transparent);color:#9a6b2f}.tc-pill--published{background:color-mix(in srgb, var(--tc-ok) 22%, transparent);color:#3e7d59}.tc-pill--urgent{background:color-mix(in srgb, var(--tc-danger) 20%, transparent);color:#a44a4a}.tc-pill--signed{background:color-mix(in srgb, var(--tc-amber) 26%, transparent);color:#8a5a1e}.tc-unread{background:linear-gradient(180deg, var(--tc-amber-soft), var(--tc-amber));width:11px;height:11px;box-shadow:0 0 8px 2px var(--tc-amber-glow);animation:tc-breathe 2.4s var(--tc-ease) infinite;border-radius:3.5px;display:inline-block}.tc-photo{border-radius:var(--tc-r-m);aspect-ratio:4/5;background:linear-gradient(160deg, var(--tc-mist-a), var(--tc-mist-b));transition:transform var(--tc-slow) var(--tc-jelly), box-shadow var(--tc-slow) var(--tc-ease);position:relative;overflow:hidden}.tc-photo:hover{box-shadow:var(--tc-shadow-lift);transform:scale(1.025)}.tc-photo--mine:after{content:"";border:2.5px solid var(--tc-amber);border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 14px #ffb65c59}.tc-notice-paper{color:#23283d;font-family:var(--tc-font-notice);box-shadow:var(--tc-shadow);background:#fdfcf8;border:1px solid #e8e4d8;border-radius:6px;padding:34px 38px;font-size:15px;line-height:2.05}.tc-notice-paper .no{color:#8a8672;letter-spacing:.1em;font-size:12.5px}.tc-notice-paper h3{text-align:center;letter-spacing:.12em;margin:10px 0 16px;font-size:18px;font-weight:600}.tc-notice-paper .sign{text-align:right;margin-top:18px;line-height:1.9}.tc-weather-card{background:radial-gradient(130% 140% at 50% -20%, #2b3158 0%, var(--tc-night) 58%, var(--tc-night-deep) 100%);color:#e7eaf6;border-radius:var(--tc-r-xl);padding:26px 24px 22px;box-shadow:0 14px 44px #0a0c1e80}.tc-weather-card .signal{letter-spacing:.2em;color:#aeb4ce;font-size:13px}.tc-weather-card h3{letter-spacing:.04em;margin:8px 0 4px;font-size:21px;font-weight:600}.tc-weather-card .preview{border-radius:var(--tc-r-m);color:#c3c9e2;background:#e7eaf614;border:1px solid #e7eaf624;margin:14px 0 18px;padding:12px 14px;font-size:13.5px;line-height:1.8}.tc-input{font:400 15px/1.4 var(--tc-font);color:var(--tc-text);background:var(--tc-surface);border:1.5px solid var(--tc-border);border-radius:var(--tc-r-m);box-sizing:border-box;width:100%;transition:border-color var(--tc-fast), box-shadow var(--tc-fast);padding:12px 15px}.tc-input:focus{border-color:var(--tc-amber);outline:none;box-shadow:0 0 0 4px #ffb65c2e}.tc-input::placeholder{color:var(--tc-ink-3)}@keyframes tc-breathe{0%,to{box-shadow:0 0 8px 2px var(--tc-amber-glow)}50%{box-shadow:0 0 16px 5px var(--tc-amber-glow)}}@keyframes tc-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.tc-pop{animation:tc-pop var(--tc-slow) var(--tc-jelly) both}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*{box-sizing:border-box}body{margin:0}.shell{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.page{flex-direction:column;flex:1;gap:14px;padding:18px 16px 96px;display:flex}.topbar{align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.topbar h1{letter-spacing:.06em;flex:1;margin:0;font-size:20px;font-weight:600}.tabbar{background:var(--tc-surface);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-top:1px solid var(--tc-border);width:100%;max-width:480px;padding:8px 0 max(10px, env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{text-align:center;color:var(--tc-ink-3);letter-spacing:.08em;flex-direction:column;flex:1;align-items:center;gap:3px;font-size:12px;text-decoration:none;display:flex}.tabbar a .ico{line-height:0;display:flex}.tabbar a.active{color:var(--tc-ink);font-weight:600}.tabbar .pane{transition:fill var(--tc-fast), stroke var(--tc-fast)}.tabbar a.active .pane{fill:var(--tc-amber);stroke:var(--tc-amber);filter:drop-shadow(0 0 3px var(--tc-amber-glow))}.row{align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.grid3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.muted{color:var(--tc-text-2);font-size:13px}.section-title{letter-spacing:.08em;color:var(--tc-text-2);margin:6px 0 0;font-size:15px;font-weight:600}.persona{letter-spacing:.1em;color:var(--tc-ink-3);border:1px solid var(--tc-border);background:var(--tc-surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:11.5px}.stamp{background:color-mix(in srgb, var(--tc-amber) 22%, transparent);color:#8a5a1e;letter-spacing:.1em;border-radius:var(--tc-r-m);align-items:center;gap:8px;padding:12px 18px;font-weight:600;display:inline-flex}@keyframes tc-locate{0%,to{box-shadow:0 0 #0000}30%{box-shadow:0 0 0 3px color-mix(in srgb, var(--tc-amber) 55%, transparent), 0 0 22px var(--tc-amber-glow,#ffb65c73)}}.tc-locate{animation:1.2s ease-out 2 tc-locate}@media (prefers-reduced-motion:reduce){.tc-locate{outline:2px solid var(--tc-amber);outline-offset:2px;animation:none}}
