:root{--bg:#F7F7F8;--surface:#FFFFFF;--surface-2:#FAFAFA;--text:#171717;--text-2:#737373;--text-3:#A3A3A3;--border:#E7E7E7;--border-strong:#D4D4D4;--accent:#111111;--accent-hover:#2A2A2A;--success:#1F7A48;--success-bg:#EEF7F1;--success-br:#CFE9DA;--warning:#B3620E;--warning-bg:#FBF4E8;--warning-br:#F0DFC2;--error:#C2453B;--error-bg:#FBEFEE;--error-br:#F1CFCC;--info:#52525B;--info-bg:#F4F4F5;--info-br:#E4E4E7;--r-sm:8px;--r-md:12px;--r-lg:16px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 16px rgba(0,0,0,.06);--shadow-lg:0 16px 40px rgba(0,0,0,.12);--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.47;-webkit-font-smoothing:antialiased}::placeholder{color:var(--text-3)}a{color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-size:15px;font-weight:550;border-radius:var(--r-sm);border:1px solid transparent;height:40px;padding:0 16px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.45;cursor:default;pointer-events:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text)}.btn-ghost:hover{background:rgba(17,17,17,.05)}.btn-danger{background:var(--surface);color:var(--error);border-color:var(--border)}.btn-danger:hover{background:var(--error-bg);border-color:var(--error-br)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;padding:0 22px;font-size:16px;border-radius:10px}.btn-block{width:100%}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite;flex:none}.spinner-dark{border-color:rgba(17,17,17,.15);border-top-color:var(--text)}@keyframes spin{to{transform:rotate(1turn)}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:550}.field .hint{font-size:13px;color:var(--text-2)}.field .err-text{font-size:13px;color:var(--error)}.input,.select{font-family:var(--font);font-size:15px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);height:40px;padding:0 12px;width:100%;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.input{height:auto;padding:10px 12px;resize:vertical;min-height:80px;line-height:1.47}.input:hover,.select:hover{border-color:var(--border-strong)}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(17,17,17,.08)}.input.is-error{border-color:var(--error)}.input.is-error:focus{box-shadow:0 0 0 3px rgba(194,69,59,.1)}.input:disabled,.select:disabled{background:var(--surface-2);color:var(--text-3)}.select-wrap{position:relative}.select-wrap:after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:1.5px solid var(--text-2);border-bottom:1.5px solid var(--text-2);transform:rotate(45deg);pointer-events:none}.select{padding-right:36px}.check,.radio{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:15px}.check input,.radio input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;flex:none;margin-top:2px;border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:all .15s ease}.check input{border-radius:5px}.radio input{border-radius:50%}.check input:checked,.radio input:checked{border-color:var(--accent);background:var(--accent)}.check input:checked{background:var(--accent) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path d="M2.5 6.2 5 8.7l4.5-5" fill="none" stroke="white" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/12px no-repeat}.radio input:checked{box-shadow:inset 0 0 0 4px var(--accent);background:#fff;border-color:var(--accent)}.check span small,.radio span small{display:block;color:var(--text-2);font-size:13px;margin-top:2px}.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:550;line-height:1;padding:4px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.badge-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:550;line-height:1;padding:5px 10px;border-radius:999px;border:1px solid}.chip i{width:6px;height:6px;border-radius:50%;flex:none}.chip-success{color:var(--success);background:var(--success-bg);border-color:var(--success-br)}.chip-success i{background:var(--success)}.chip-warning{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-br)}.chip-warning i{background:var(--warning)}.chip-error{color:var(--error);background:var(--error-bg);border-color:var(--error-br)}.chip-error i{background:var(--error)}.chip-info{color:var(--info);background:var(--info-bg);border-color:var(--info-br)}.chip-info i{background:var(--info)}.fchip{font-family:var(--font);font-size:14px;font-weight:550;padding:9px 16px;border-radius:999px;cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--text-2);transition:all .15s ease}.fchip:hover{border-color:var(--border-strong);color:var(--text)}.fchip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px}.toast-zone{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{display:flex;align-items:center;gap:10px;background:var(--text);color:#fff;font-size:14px;font-weight:500;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-md);animation:pop .2s ease-out;max-width:340px}.toast i{width:8px;height:8px;border-radius:50%;flex:none}.toast .t-ok{background:#4ADE80}.toast .t-err{background:#F87171}.toast .t-info{background:#A1A1AA}@keyframes pop{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:none}}@media(max-width:640px){.toast-zone{left:16px;right:16px;bottom:16px}.toast{max-width:none}}.progress{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:24px 16px 48px}.auth-logo{font-size:16px;font-weight:650;letter-spacing:-.01em;padding:16px 0 32px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:32px;width:100%;max-width:480px}.auth-card h1{font-size:24px;line-height:1.25;font-weight:650;letter-spacing:-.01em;margin-bottom:6px}.auth-card .sub{color:var(--text-2);margin-bottom:24px}.auth-form{display:flex;flex-direction:column;gap:16px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:13px;margin:4px 0}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.auth-foot{text-align:center;font-size:14px;color:var(--text-2);margin-top:20px}.auth-foot a{color:var(--text);font-weight:550;text-decoration:none}.auth-foot a:hover{text-decoration:underline}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.steps-head{width:100%;max-width:480px;padding-bottom:16px}.steps-head .steps-label{display:flex;justify-content:space-between;font-size:13px;color:var(--text-2);margin-bottom:8px}.steps-head .steps-label b{color:var(--text);font-weight:550}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.social-item{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.social-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.social-head:hover{background:var(--surface-2)}.social-head .s-name{font-weight:550;flex:1 1}.social-head .s-meta{font-size:13px;color:var(--text-2)}.social-body{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border);padding:14px 16px 16px}.social-toggle{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border-strong);flex:none;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.social-item.is-open .social-toggle{background:var(--accent);border-color:var(--accent)}@media(max-width:640px){.btn{min-height:44px}.btn-sm{min-height:32px}.auth-card{padding:24px 20px}.form-grid-2{grid-template-columns:1fr}}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:15px;min-width:640px}.tbl thead th{font-size:13px;font-weight:550;color:var(--text-2);text-align:left;background:var(--surface-2);padding:10px 16px;white-space:nowrap}.tbl tbody td,.tbl thead th{border-bottom:1px solid var(--border)}.tbl tbody td{padding:12px 16px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .15s ease;cursor:pointer}.tbl tbody tr:hover{background:var(--surface-2)}.td-money{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:550;white-space:nowrap}.money-plus{color:var(--success)}.overlay{position:fixed;inset:0;background:rgba(23,23,23,.4);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);max-width:440px;width:100%;padding:24px;animation:pop .2s ease-out}.modal h3{font-size:17px;font-weight:600;margin-bottom:6px}.modal p{color:var(--text-2);font-size:15px}.modal .actions{gap:8px;margin-top:20px}.drawer-overlay,.modal .actions{display:flex;justify-content:flex-end}.drawer-overlay{position:fixed;inset:0;background:rgba(23,23,23,.4);z-index:50}.drawer{background:var(--surface);width:480px;max-width:100%;height:100%;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .25s ease-out}@keyframes slide{0%{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}.drawer .d-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);flex:none}.drawer .d-head h3{font-size:17px;font-weight:600}.drawer .d-body{padding:20px;overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:16px}.drawer .d-foot{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:8px;flex:none;flex-wrap:wrap}.x-btn{width:32px;height:32px;border-radius:8px;border:none;background:none;cursor:pointer;color:var(--text-2);font-size:18px;line-height:1}.x-btn:hover{background:var(--surface-2);color:var(--text)}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}@media(max-width:1024px){.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr);gap:10px}}.stat .s-label{font-size:13px;color:var(--text-2);font-weight:500}.stat .s-value{font-size:26px;font-weight:650;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:6px}.stat .s-meta{font-size:13px;color:var(--text-2);margin-top:6px}.avatar{border-radius:50%;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;font-weight:550;flex:none;overflow:hidden}.av-32{width:32px;height:32px;font-size:12px}.av-40{width:40px;height:40px;font-size:14px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px;gap:6px}.empty h3{font-size:17px;font-weight:600}.empty p{color:var(--text-2);max-width:320px;font-size:15px}.sk{background:#EDEDEE;border-radius:6px;position:relative;overflow:hidden}.sk:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmer 1.6s infinite}@keyframes shimmer{to{transform:translateX(100%)}}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.topnav{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:30}.wordmark{font-size:16px;font-weight:650;letter-spacing:-.01em;text-decoration:none}.topnav .right{display:flex;align-items:center;gap:14px}.app-body{display:flex;flex:1 1;min-height:0}.sidebar{width:232px;flex:none;background:var(--bg);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:56px;height:calc(100dvh - 56px);overflow-y:auto}.sb-group{font-size:12px;font-weight:550;color:var(--text-3);padding:14px 10px 6px}.sb-item{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--text-2);padding:9px 10px;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none}.sb-item:hover{color:var(--text);background:rgba(17,17,17,.04)}.sb-item.is-active{background:var(--surface);border-color:var(--border);color:var(--text);font-weight:550}.sb-item .badge{margin-left:auto}.app-content{flex:1 1;padding:24px;min-width:0;max-width:1100px}.page-title{font-size:24px;line-height:1.25;font-weight:650;letter-spacing:-.01em}.page-sub{color:var(--text-2);font-size:14px;margin-top:4px}.section-title{font-size:17px;font-weight:600;margin:28px 0 12px}.money-big{font-size:32px;font-weight:650;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bottomnav{display:none}@media(max-width:900px){.sidebar{display:none}.app-content{padding:16px 16px 80px}.bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(10px + env(safe-area-inset-bottom));z-index:30}.bn-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:550;color:var(--text-3);background:none;border:none;cursor:pointer;font-family:var(--font);padding:4px 0;text-decoration:none}.bn-item.is-active{color:var(--text)}.bn-item svg{width:22px;height:22px}}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-md);padding:24px;text-align:center;color:var(--text-2);font-size:15px;background:var(--surface);cursor:pointer;font-family:var(--font);transition:border-color .15s ease,background .15s ease}.dropzone:hover{border-color:var(--text-3);background:var(--surface-2)}.dropzone b{color:var(--text);font-weight:550;display:block}.dropzone .sub{font-size:13px;color:var(--text-3);margin-top:4px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}.tab{font-family:var(--font);font-size:15px;font-weight:500;color:var(--text-2);background:none;border:none;padding:10px 14px;cursor:pointer;position:relative;white-space:nowrap}.tab.is-active,.tab:hover{color:var(--text)}.tab.is-active{font-weight:550}.tab.is-active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.tab .badge{margin-left:6px}.task-card{display:flex;flex-direction:column;gap:12px}.task-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.task-card h3{font-size:16px;font-weight:600;margin-bottom:2px}.task-card .meta{font-size:13px;color:var(--text-2)}.task-card .reward{font-size:17px;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.task-card .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:2px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.mobile-only{display:none}@media(max-width:640px){.desktop-only{display:none!important}.mobile-only{display:block}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--text);color:#fff;text-align:center;font-size:13px;font-weight:550;padding:8px 16px}.contract-body{font-size:14px;line-height:1.6}.contract-body h1{font-size:20px;font-weight:650;letter-spacing:-.01em;margin-bottom:12px}.contract-body h2{font-size:15px;font-weight:600;margin:18px 0 6px}.contract-body p{margin-bottom:10px}.contract-body table{border-collapse:collapse}.print-only{display:none}@media print{body{background:#fff}.no-print,.toast-zone{display:none!important}.print-only{display:block}.auth-wrap{padding:0;min-height:0}.contract-body{font-size:12pt;max-width:100%}}