:root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--fs-hero:44px;--fs-title1:28px;--fs-title2:21px;--fs-title3:17px;--fs-body:14px;--fs-caption:12px;--fs-micro:11px;--gap-icon:5px;--gap-chip:7px;--gap-kv:16px;--radius-card:12px;--radius-field:8px;--radius-pill:999px;--field-h:38px;--bg:#f5f5f7;--bg-elevated:#fff;--bg-sidebar:#f6f6f8d9;--bg-hover:#0000000a;--bg-active:#00000012;--card:#fff;--field:#fff;--text:#1d1d1f;--text-2:#6e6e73;--text-3:#a1a1a6;--hairline:#0000001f;--hairline-soft:#00000012;--accent:#0071e3;--accent-hover:#0077ed;--on-accent:#fff;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--purple:#af52de;--teal:#30b0c7;--pink:#ff2d55;--shadow-card:0 1px 3px #0000000f;--shadow-pop:0 8px 40px #0000002e}:root[data-theme=dark]{--bg:#161617;--bg-elevated:#1d1d1f;--bg-sidebar:#161617d9;--bg-hover:#ffffff0f;--bg-active:#ffffff1a;--card:#232325;--field:#2c2c2e;--text:#f5f5f7;--text-2:#a1a1a6;--text-3:#6e6e73;--hairline:#ffffff29;--hairline-soft:#ffffff14;--accent:#0a84ff;--accent-hover:#2b93ff;--on-accent:#fff;--green:#30d158;--orange:#ff9f0a;--red:#ff453a;--purple:#bf5af2;--teal:#40c8e0;--pink:#ff375f;--shadow-card:0 1px 3px #0006;--shadow-pop:0 8px 40px #0009}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.sf{vertical-align:-.15em;background-color:currentColor;flex:none;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=search],input[type=url],input[type=date],input[type=month],textarea,select,.sel-btn{appearance:none;width:100%;height:var(--field-h);background:var(--field);border:1px solid var(--hairline);border-radius:var(--radius-field);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);outline:none;padding:0 12px;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;height:auto;min-height:80px;padding:9px 12px}select,select.sel-btn{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238e8e93' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:10px 6px;padding-right:32px}input:focus,textarea:focus,select:focus,.sel-btn:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}input::placeholder,textarea::placeholder{color:var(--text-3)}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true],button[aria-invalid=true]{border-color:var(--red)}input[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus,select[aria-invalid=true]:focus,button[aria-invalid=true]:focus-visible{border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb, var(--red) 22%, transparent)}.field-error{color:var(--red);font-size:var(--fs-caption);align-items:flex-start;gap:5px;margin:0;line-height:1.35;display:flex}.field-error .sf{flex:none;margin-top:1px}.field-error button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.field-error button:hover{text-decoration:underline}input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--field) inset;box-shadow:0 0 0 1000px var(--field) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--field) inset;box-shadow:0 0 0 1000px var(--field) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--field) inset;box-shadow:0 0 0 1000px var(--field) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}textarea:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--field) inset;box-shadow:0 0 0 1000px var(--field) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}select:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--field) inset;box-shadow:0 0 0 1000px var(--field) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}input[type=search][data-form-type=other]::-webkit-search-decoration{-webkit-appearance:none;display:none}input[type=search][data-form-type=other]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.field{flex-direction:column;gap:6px;display:flex}.field>label{font-size:var(--fs-caption);color:var(--text);font-weight:600}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pw-field{position:relative}.pw-field input{padding-right:44px}.pw-reveal{background:var(--field);width:30px;height:30px;color:var(--text-2);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;transition:color .12s,background .12s;display:inline-flex;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.pw-reveal:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, var(--field))}.pw-reveal:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.btn{justify-content:center;align-items:center;gap:var(--gap-icon);height:var(--field-h);border-radius:var(--radius-field);font-family:var(--font-sans);font-size:var(--fs-body);cursor:pointer;white-space:nowrap;border:none;padding:0 16px;font-weight:500;text-decoration:none;transition:background .12s,opacity .12s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--hairline)}.btn-secondary:hover{background:var(--bg-hover)}.btn-plain{color:var(--accent);background:0 0;padding:0 8px}.btn-plain:hover{background:var(--bg-hover)}.btn:disabled{opacity:.45;cursor:default}.btn-lg{height:44px;font-size:var(--fs-title3);border-radius:10px;padding:0 22px}.icon-btn{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--text-2);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.card{background:var(--card);border:1px solid var(--hairline-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.card-pad{padding:20px}.kv-card{flex-direction:column;display:flex}.kv-row{gap:var(--gap-kv);border-bottom:1px solid var(--hairline-soft);grid-template-columns:140px 1fr;align-items:baseline;padding:10px 16px;display:grid}.kv-row:last-child{border-bottom:none}.kv-row>dt{font-size:var(--fs-caption);color:var(--text-2);font-weight:600}.kv-row>dd{color:var(--text);overflow-wrap:anywhere}.tint{align-items:center;gap:var(--gap-icon);border-radius:var(--radius-pill);height:22px;font-size:var(--fs-caption);padding:0 9px;font-weight:600;display:inline-flex}.tint-blue{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent)}.tint-green{color:var(--green);background:color-mix(in srgb, var(--green) 16%, transparent)}.tint-orange{color:var(--orange);background:color-mix(in srgb, var(--orange) 16%, transparent)}.tint-purple{color:var(--purple);background:color-mix(in srgb, var(--purple) 16%, transparent)}.tint-teal{color:var(--teal);background:color-mix(in srgb, var(--teal) 16%, transparent)}.tint-red{color:var(--red);background:color-mix(in srgb, var(--red) 16%, transparent)}.tint-gray{color:var(--text-2);background:var(--bg-hover)}.tbl-wrap{border-radius:var(--radius-card);overflow-x:auto}table.tbl{border-collapse:collapse;table-layout:fixed;width:100%}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--hairline-soft);text-overflow:ellipsis;white-space:nowrap;padding:9px 12px;overflow:hidden}.tbl th{font-size:var(--fs-caption);color:var(--text);-webkit-user-select:none;user-select:none;font-weight:600}.tbl th .th-btn{align-items:center;gap:var(--gap-icon);max-width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;margin:-3px -6px;padding:3px 6px;display:inline-flex}.tbl th .th-btn:hover,.tbl tbody tr:hover{background:var(--bg-hover)}.tbl tbody tr:last-child td{border-bottom:none}.menu{z-index:1000;background:var(--bg-elevated);border:1px solid var(--hairline);min-width:220px;box-shadow:var(--shadow-pop);border-radius:10px;padding:6px;position:fixed}.menu-item{align-items:center;gap:var(--gap-icon);width:100%;color:var(--text);font:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 9px;display:flex}.menu-item:hover{background:var(--bg-hover)}.menu-item[data-on=true]{color:var(--accent)}.menu-sep{background:var(--hairline-soft);height:1px;margin:5px 8px}.menu input{width:calc(100% - 16px);height:28px;font-size:var(--fs-caption);margin:4px 8px 6px}.menu-title{font-size:var(--fs-micro);color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;padding:5px 9px 3px;font-weight:600}.sheet-backdrop{z-index:900;background:#00000059;justify-content:center;align-items:flex-start;padding:8vh 20px 20px;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elevated);border:1px solid var(--hairline-soft);width:100%;max-width:520px;max-height:84vh;box-shadow:var(--shadow-pop);border-radius:14px;overflow-y:auto}.sheet-head{border-bottom:1px solid var(--hairline-soft);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.sheet-head h2{font-size:var(--fs-title3);font-weight:600}.sheet-body{flex-direction:column;gap:14px;padding:20px;display:flex}.sheet-foot{border-top:1px solid var(--hairline-soft);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.tbl-row-muted>td{opacity:.5}.tbl-row-editing>td{background:var(--bg-hover)}.tbl-row-muted:hover>td{opacity:.72}.icon-btn{border:1px solid var(--hairline-soft);width:36px;height:36px;color:var(--text-2);cursor:pointer;background:0 0;border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.icon-btn:disabled{opacity:.5;cursor:default}.icon-btn-danger{color:var(--red);border-color:color-mix(in srgb, var(--red) 26%, transparent)}.icon-btn-danger:hover{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red)}.toast-stack{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--hairline-soft);box-shadow:var(--shadow-pop);font-size:var(--fs-subhead);border-radius:12px;align-items:center;gap:14px;max-width:min(92vw,460px);padding:11px 12px 11px 16px;animation:.18s ease-out toast-in;display:flex}.toast-msg{color:var(--text-1)}.toast-action{color:var(--accent);font-weight:600;font-size:var(--fs-subhead);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 6px}.toast-action:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.toast-close{color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.toast-close:hover{background:var(--hairline-soft);color:var(--text-1)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.row{align-items:center;display:flex}.muted{color:var(--text-2)}.small{font-size:var(--fs-caption)}h1.page-title{font-size:var(--fs-title1);letter-spacing:-.3px;font-weight:700}.page-sub{color:var(--text-2);margin-top:3px}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}.md{max-width:720px}.md h1{font-size:var(--fs-title1);letter-spacing:-.3px;margin:0 0 14px;font-weight:700}.md h2{font-size:var(--fs-title3);margin:26px 0 10px;font-weight:600}.md h3{font-size:var(--fs-body);margin:18px 0 8px;font-weight:600}.md p{margin:0 0 12px}.md ul,.md ol{margin:0 0 12px;padding-left:22px}.md li{margin-bottom:5px}.md blockquote{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-2);border-radius:0 8px 8px 0;margin:0 0 12px;padding:10px 14px}.md table{border-collapse:collapse;width:100%;margin:0 0 14px}.md th,.md td{text-align:left;border-bottom:1px solid var(--hairline-soft);padding:8px 12px}.md th{font-size:var(--fs-caption);color:var(--text-2);font-weight:600}.md strong{font-weight:600}.md code{background:var(--bg-hover);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.crop-body{flex-direction:column;align-items:center;gap:16px;padding:20px;display:flex}.crop-view{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--bg-hover);border-radius:50%;position:relative;overflow:hidden}.crop-view:active{cursor:grabbing}.crop-img{pointer-events:none;max-width:none;position:absolute;top:0;left:0}.crop-ring{pointer-events:none;border:1px solid #ffffff8c;border-radius:50%;position:absolute;inset:0}.crop-zoom{align-items:center;gap:10px;width:260px;display:flex}.crop-zoom input[type=range]{accent-color:var(--accent);flex:1}.avatar-control{align-items:center;gap:14px;display:flex}.avatar-thumb{border-radius:var(--radius-pill);object-fit:cover;background:var(--bg-hover);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;width:56px;height:56px;padding:0;display:inline-flex;overflow:hidden}.avatar-thumb:hover{opacity:.9}
