:root{--ink: #101720;--ink-muted: #5b6774;--paper: #f4f6f8;--surface: #ffffff;--line: #dce1e7;--link: #1f6feb;--flow: #0e9f6e;--warn: #b45309;--halt: #b42318;--idle: #98a2b3;--link-wash: #e8f0fe;--flow-wash: #e6f6ef;--warn-wash: #fdf3e7;--halt-wash: #fdeceb;--idle-wash: #f2f4f7;--font-ui: "IBM Plex Sans", "IBM Plex Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-data: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--s8: 64px;--radius: 6px;--radius-sm: 4px;--radius-lg: 10px;--shadow-pop: 0 4px 12px rgb(16 23 32 / 8%), 0 1px 3px rgb(16 23 32 / 6%);--shadow-modal: 0 16px 48px rgb(16 23 32 / 18%);--header-height: 56px;--sidebar-width: 220px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ink: #e6edf3;--ink-muted: #8b98a5;--paper: #0b0f14;--surface: #131a22;--line: #222c38;--link: #4b8ffa;--flow: #2fbf8a;--warn: #d18b2c;--halt: #e5544b;--idle: #6b7684;--link-wash: #14243c;--flow-wash: #0f2a22;--warn-wash: #2c2113;--halt-wash: #2e1715;--idle-wash: #1a212a;--shadow-pop: 0 4px 12px rgb(0 0 0 / 40%), 0 1px 3px rgb(0 0 0 / 30%);--shadow-modal: 0 16px 48px rgb(0 0 0 / 55%);color-scheme:dark}}:root[data-theme=dark]{--ink: #e6edf3;--ink-muted: #8b98a5;--paper: #0b0f14;--surface: #131a22;--line: #222c38;--link: #4b8ffa;--flow: #2fbf8a;--warn: #d18b2c;--halt: #e5544b;--idle: #6b7684;--link-wash: #14243c;--flow-wash: #0f2a22;--warn-wash: #2c2113;--halt-wash: #2e1715;--idle-wash: #1a212a;--shadow-pop: 0 4px 12px rgb(0 0 0 / 40%), 0 1px 3px rgb(0 0 0 / 30%);--shadow-modal: 0 16px 48px rgb(0 0 0 / 55%);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}.num,code,kbd,samp,pre{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.boot{min-height:100dvh;background:var(--paper);display:grid;place-items:center}.boot:after{content:"";width:28px;height:28px;border:2px solid var(--line);border-top-color:var(--link);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100dvh;display:flex;flex-direction:column}.shell__header{display:flex;align-items:center;gap:var(--s4);height:var(--header-height);padding:0 var(--s4);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.shell__brand{font-weight:600;letter-spacing:-.01em}.shell__nav{display:flex;gap:var(--s4);margin-left:auto}.shell__nav a{color:var(--ink-muted);padding:var(--s2) 0;border-bottom:2px solid transparent}.shell__nav a:hover{color:var(--ink);text-decoration:none}.shell__nav a.active{color:var(--ink);border-bottom-color:var(--link)}.shell__logout{background:none;border:0;color:var(--ink-muted);cursor:pointer;padding:var(--s2)}.shell__main{flex:1}.page{max-width:640px;margin:0 auto;padding:var(--s5) var(--s4) var(--s8);display:flex;flex-direction:column;gap:var(--s4)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s5)}.card h2{margin:0 0 var(--s3);font-size:var(--text-sm);font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.quota{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s5)}.quota__headline{display:flex;align-items:baseline;gap:var(--s2)}.quota__remaining{font-size:var(--text-3xl);font-weight:600;letter-spacing:-.02em;line-height:1.1}.quota__caption{color:var(--ink-muted);font-size:var(--text-sm)}.quota__track{margin-top:var(--s4);height:6px;background:var(--idle-wash);border-radius:3px;overflow:hidden}.quota__fill{height:100%;border-radius:3px;transition:width .24s ease-out}.quota__legend{margin-top:var(--s2);display:flex;gap:var(--s2);color:var(--ink-muted);font-size:var(--text-sm)}.quota__legend-sep{color:var(--line)}.quota__split{display:flex;gap:var(--s6);margin:var(--s4) 0 0}.quota__split dt{font-size:var(--text-xs);color:var(--ink-muted)}.quota__split dd{margin:2px 0 0;font-size:var(--text-lg)}.expiry{display:flex;align-items:center;gap:var(--s3);margin:0}.expiry__date{font-size:var(--text-xl)}.subline{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.subline__url{flex:1;min-width:0;overflow-wrap:anywhere;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s2);font-size:var(--text-sm)}.plans{display:grid;gap:var(--s4)}.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}.plan__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.plan__head h2{margin:0;font-size:var(--text-lg)}.plan__traffic{margin:0;font-size:var(--text-2xl);color:var(--flow)}.plan__periods{display:flex;gap:var(--s2);flex-wrap:wrap}.chip{display:flex;flex-direction:column;gap:2px;padding:var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm)}.chip--on{border-color:var(--link);background:var(--link-wash);color:var(--link)}.plan__coupon{padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;font-size:var(--text-sm)}.table th,.table td{padding:var(--s3);text-align:left;border-bottom:1px solid var(--line)}.table th{font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.table tr:last-child td{border-bottom:0}.right{text-align:right}.login{min-height:100dvh;display:grid;place-items:center;padding:var(--s4)}.login__card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s4)}.login__card h1{margin:0;font-size:var(--text-xl);text-align:center}.login__card label{display:flex;flex-direction:column;gap:var(--s1);font-size:var(--text-sm);color:var(--ink-muted)}.login__card input{padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.login__message{margin:0;font-size:var(--text-sm);color:var(--warn)}button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:var(--s2) var(--s3);cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--link);border-color:var(--link);color:#fff;font-weight:500;padding:var(--s3)}button.danger{color:var(--halt);border-color:var(--halt);background:transparent;align-self:flex-start}button.link-button{border:0;background:none;color:var(--link);padding:0}.badge{display:inline-flex;align-items:center;padding:2px var(--s2);border-radius:999px;font-size:var(--text-xs);font-weight:500;white-space:nowrap}.kv{margin:0;display:grid;gap:var(--s3)}.kv div{display:flex;justify-content:space-between;gap:var(--s3)}.kv dt{color:var(--ink-muted);font-size:var(--text-sm)}.kv dd{margin:0}.muted{color:var(--ink-muted)}.small{font-size:var(--text-sm)}.error{color:var(--halt)}.skeleton{display:block;background:linear-gradient(90deg,var(--idle-wash) 25%,var(--line) 50%,var(--idle-wash) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.invite-url{display:block;margin:var(--s3) 0;padding:var(--s3);border-radius:var(--radius);background:var(--surface-sunk, var(--surface));font-family:var(--font-data);font-size:var(--text-sm);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}
