:root{--brand-50: #eef8f4;--brand-100: #d5efe4;--brand-200: #aadfcb;--brand-300: #74c9ad;--brand-400: #3dab8b;--brand-500: #1d8f6e;--brand-600: #16835f;--brand-700: #116b50;--brand-800: #0f5641;--brand-900: #0c4535;--neutral-0: #fff;--neutral-25: #fafcfb;--neutral-50: #f4f7f6;--neutral-100: #edf1ef;--neutral-200: #e0e7e4;--neutral-300: #ccd7d2;--neutral-400: #a3b0aa;--neutral-500: #78867f;--neutral-600: #5a6a63;--neutral-700: #43524b;--neutral-800: #2c3934;--neutral-900: #1c2622;--danger-50: #fdeeed;--danger-100: #f9d9d6;--danger-500: #c0443a;--danger-600: #a9342b;--danger-700: #8c2a23;--color-canvas: var(--neutral-50);--color-surface: var(--neutral-0);--color-border: var(--neutral-200);--color-border-strong: var(--neutral-300);--color-text: var(--neutral-900);--color-text-secondary: var(--neutral-700);--color-text-muted: var(--neutral-600);--color-text-subtle: var(--neutral-500);--color-primary: var(--brand-600);--color-primary-hover: var(--brand-700);--color-primary-soft: var(--brand-50);--color-primary-border: var(--brand-200);--color-danger: var(--danger-600);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgb(28 55 45 / 6%);--shadow-sm: 0 2px 8px rgb(28 55 45 / 8%);--shadow-md: 0 8px 24px rgb(28 55 45 / 10%);--shadow-lg: 0 20px 48px rgb(28 55 45 / 16%);--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--duration-fast: .12s;--duration: .18s;--ease: cubic-bezier(.2, .8, .3, 1);--focus-ring: 0 0 0 3px rgb(22 131 95 / 22%);font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;color:var(--color-text);background:var(--color-canvas);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}html.page-scroll,body.page-scroll{height:auto;min-height:100%;overflow-x:auto;overflow-y:auto}body{min-width:360px}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease),opacity var(--duration-fast) var(--ease)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.auth-view{display:grid;width:100vw;height:100vh;place-items:center;background:radial-gradient(circle at 18% 16%,rgb(22 131 95 / 12%),transparent 30%),#f3f7f5}.auth-card{width:390px;padding:34px;border:1px solid #dfe7e3;border-radius:16px;background:#fff;box-shadow:0 22px 55px #1a362b1f}.auth-brand,.small-brand{display:grid;place-items:center;border-radius:10px;color:#fff;font-weight:800;background:linear-gradient(145deg,#21a576,#08714f)}.auth-brand{width:42px;height:42px;margin-bottom:16px;font-size:20px}.auth-card h1{margin:0;font-size:25px}.auth-card>p{margin:6px 0 24px;color:#75817c;font-size:13px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:20px;padding:3px;border-radius:8px;background:#f0f3f2}.auth-tabs button{height:32px;border:0;border-radius:6px;color:#68746f;background:transparent;cursor:pointer}.auth-tabs button.active{color:#175f48;background:#fff;box-shadow:0 2px 8px #1e372e14;font-weight:650}.auth-card form{display:grid;gap:14px}.auth-card label{display:grid;gap:6px;color:#45524d;font-size:12px}.auth-card input,.field input,.field select,.invite-form input,.invite-form select{width:100%;height:40px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);outline:none;color:var(--color-text);background:var(--color-surface)}.auth-card input::placeholder,.field input::placeholder{color:var(--neutral-400)}.auth-card input:focus,.field input:focus,.field select:focus,.invite-form input:focus,.invite-form select:focus{border-color:var(--brand-400);box-shadow:var(--focus-ring)}.field{display:grid;gap:var(--space-2)}.field-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600}.field-hint{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6}.auth-card small{color:var(--color-text-muted)}.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:500;white-space:nowrap}.primary-button{color:#fff;background:var(--color-primary);box-shadow:var(--shadow-xs)}.primary-button:hover:not(:disabled){background:var(--color-primary-hover)}.ghost-button{border-color:transparent;color:var(--color-text-secondary);background:transparent}.ghost-button:hover{color:var(--color-text);background:var(--neutral-100)}.primary-button:disabled{color:#ffffffd9;background:var(--brand-300);cursor:progress}.create-trigger svg{width:16px;height:16px;fill:none;stroke:currentcolor;stroke-width:1.8;stroke-linecap:round}.form-error{min-height:18px;margin-top:var(--space-2);color:var(--danger-600);font-size:var(--text-sm);line-height:1.5}.social-auth{display:grid;gap:12px;margin-top:18px}.social-auth[hidden]{display:none}.social-auth>span{display:flex;align-items:center;gap:10px;color:#9aa39f;font-size:11px}.social-auth>span:before,.social-auth>span:after{flex:1;height:1px;background:#e4e9e7;content:""}.wechat-login{display:flex;align-items:center;justify-content:center;gap:8px;height:38px;border:1px solid #cdd8d3;border-radius:7px;color:#34433d;background:#fff;text-decoration:none}.wechat-login:hover{border-color:#07c160;background:#f5fcf8}.wechat-login svg{width:21px;height:21px;fill:#07c160}.files-view{min-height:100vh;background:var(--color-canvas)}.files-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;gap:var(--space-4);height:60px;padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:#ffffffe0;-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px)}.brand-block{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-lg);letter-spacing:.01em}.small-brand{width:30px;height:30px;border-radius:var(--radius-md);font-size:var(--text-md);box-shadow:var(--shadow-sm)}.account-block{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;min-width:0}.account-avatar{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:var(--radius-full);color:var(--brand-800);background:var(--brand-100);font-size:var(--text-base);font-weight:700}.account-text{display:grid;min-width:0;margin-right:var(--space-2);text-align:right;line-height:1.35}.account-text strong{font-size:var(--text-base);font-weight:600}.account-text small{overflow:hidden;max-width:220px;color:var(--color-text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.account-block .ghost-button,.plain-button{height:32px;padding:0 var(--space-3);font-size:var(--text-base)}.plugin-status{display:flex;align-items:center;gap:6px}.plugin-status-chip{max-width:240px;overflow:hidden;color:#52615b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.logistics-trigger{height:24px;padding:0 9px;border:1px solid #bfd6cd;border-radius:6px;background:#f4faf7;cursor:pointer}.logistics-trigger:hover{border-color:#72ad96;color:#0e694b;background:#e8f5ef}.logistics-trigger.active{border-color:#16835f;color:#fff;background:#16835f}.logistics-panel{width:min(420px,calc(100vw - 32px))}.logistics-content{display:grid;gap:14px;padding-top:14px}.logistics-row-summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.logistics-row-summary span,.logistics-empty{color:#75817c;font-size:12px}.logistics-fields{display:grid;gap:8px;margin:0}.logistics-field-group{margin-top:14px}.logistics-field-group h3{margin:0 0 7px;color:#567168;font-size:11px;font-weight:700;letter-spacing:.08em}.logistics-fields>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;padding:9px 11px;border-radius:7px;background:#f5f8f7}.logistics-fields dt{color:#75817c;font-size:12px}.logistics-fields dd{margin:0;overflow-wrap:anywhere;color:#2f3d38;font-size:12px;font-weight:600}.logistics-empty{margin:0;padding:18px;border:1px dashed #cfd9d5;border-radius:9px;line-height:1.7;text-align:center}.logistics-actions{display:grid;gap:8px}.logistics-actions a,.logistics-actions>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;width:100%;padding:11px 12px;border:1px solid #dfe7e3;border-radius:8px;color:#31463e;background:#fff;font:inherit;text-align:left;text-decoration:none}.logistics-actions a:hover,.logistics-actions>button:not(:disabled):hover{border-color:#83b7a4;background:#f5fbf8}.logistics-actions>button{cursor:pointer}.logistics-actions>button:disabled{color:#8b9692;background:#f5f7f6;cursor:not-allowed}.logistics-actions strong{font-size:13px}.logistics-actions small{grid-column:1;overflow:hidden;color:#7a8581;text-overflow:ellipsis;white-space:nowrap}.logistics-actions span{grid-row:1 / 3;grid-column:2;align-self:center;color:#16835f;font-size:18px}.logistics-action-message{margin:0;padding:9px 11px;border-radius:7px;color:#315f4e;background:#edf7f2;font-size:12px}.logistics-candidates{display:grid;gap:6px;padding:10px;border:1px solid #d8e4df;border-radius:8px;background:#f8fbfa}.logistics-candidates>strong{margin-bottom:2px;font-size:12px}.logistics-candidates button{display:grid;gap:2px;padding:8px 10px;border:1px solid #dfe7e3;border-radius:6px;color:#31463e;background:#fff;cursor:pointer;text-align:left}.logistics-candidates button:hover{border-color:#83b7a4}.logistics-candidates small{color:#7a8581}.logistics-generated-files{display:grid;gap:7px;padding:10px;border:1px solid #d8e4df;border-radius:8px}.logistics-generated-files>strong{font-size:12px}.logistics-generated-files>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:5px}.logistics-generated-files span{overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.logistics-generated-files button{padding:4px 7px;border:1px solid #cddbd5;border-radius:5px;color:#28614c;background:#f4faf7;cursor:pointer;font-size:11px}.logistics-generated-files>small{color:#7a8581;font-size:11px;line-height:1.5}.plugin-panel{width:min(560px,calc(100vw - 32px))}.plugin-list{display:grid;gap:10px}.plugin-card{display:flex;align-items:center;gap:18px;min-height:72px;padding:14px 16px;border:1px solid #dfe7e3;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.plugin-card:hover{border-color:#a8d8c6;background:#f8fcfa;box-shadow:0 2px 10px #16835f14}.plugin-card:has(input:focus-visible){outline:2px solid rgb(22 131 95 / 24%);outline-offset:2px}.plugin-card.is-readonly{cursor:default}.plugin-card.is-readonly:hover{border-color:#dfe7e3;background:#fff;box-shadow:none}.plugin-card.is-saving{cursor:wait;opacity:.72}.plugin-card-copy{display:grid;flex:1;gap:4px;min-width:0}.plugin-card-copy small{color:#75817c;line-height:1.5}.plugin-toggle{position:relative;flex:0 0 auto;width:38px;height:22px}.plugin-toggle input{position:absolute;width:1px;height:1px;margin:0;opacity:0}.plugin-toggle-track{position:absolute;inset:0;border:1px solid #aeb8b4;border-radius:999px;background:#cfd6d3;transition:border-color .16s ease,background .16s ease}.plugin-toggle-track:after{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #14282047;content:"";transition:transform .16s ease}.plugin-toggle input:checked+.plugin-toggle-track{border-color:#16835f;background:#16835f}.plugin-toggle input:checked+.plugin-toggle-track:after{transform:translate(16px)}.plugin-toggle input:disabled+.plugin-toggle-track{border-color:#d6ddda;background:#e5e9e7;box-shadow:inset 0 0 0 1px #ffffff73}.plugin-toggle input:disabled:checked+.plugin-toggle-track{border-color:#94b8aa;background:#94b8aa}.files-content{width:min(1160px,calc(100% - 2 * var(--space-6)));margin:0 auto;padding:var(--space-10) 0 var(--space-12)}.admin-view{min-height:100vh;background:radial-gradient(circle at 85% 5%,rgb(22 131 95 / 9%),transparent 28%),#f4f7f5}.admin-content{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:42px 0 72px}.admin-hero,.admin-section{margin-bottom:24px}.admin-header{position:sticky;z-index:20;top:0;box-shadow:0 1px #1e372e0d}.admin-back{padding:0 var(--space-3);border-color:var(--color-border);background:var(--color-surface)}.admin-back:hover{border-color:var(--color-border-strong);background:var(--neutral-50)}.admin-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;border-radius:18px;color:#fff;background:linear-gradient(118deg,#0b5740f5,#16835fe0),#0e694b;box-shadow:0 18px 40px #13533e29}.admin-eyebrow{color:#bfe5d6;font-size:10px;font-weight:800;letter-spacing:.16em}.admin-hero h1,.admin-section h2{margin:5px 0 6px}.admin-hero h1{font-size:28px}.admin-hero p{margin:0;color:#d8eee6}.admin-summary{display:flex;gap:10px}.admin-summary article{display:grid;min-width:100px;padding:13px 16px;border:1px solid rgb(255 255 255 / 18%);border-radius:12px;background:#ffffff1a}.admin-summary strong{font-size:22px}.admin-summary span{color:#d8eee6;font-size:11px}.admin-notice{position:sticky;z-index:10;top:66px;margin:0 0 18px;padding:11px 14px;border-radius:9px;font-size:13px;box-shadow:0 8px 24px #18342a1a}.admin-notice[data-state=success]{border:1px solid #a9d7c5;color:#0f684b;background:#ecf9f3}.admin-notice[data-state=error]{border:1px solid #edbaba;color:#a83232;background:#fff1f1}.admin-section{padding:26px;border:1px solid #dfe6e2;border-radius:16px;background:#fff;box-shadow:0 8px 28px #1c3a2f0f}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #edf1ef}.admin-section-heading>div{display:flex;align-items:center;gap:12px}.admin-section-heading>div>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;color:#127252;background:#e7f5ef;font-size:11px;font-weight:800}.admin-section-heading h2{font-size:18px}.admin-section-heading p,.admin-section-heading small{margin:0;color:#7a8782;font-size:11px}.dictionary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.dictionary-card{display:grid;gap:10px;padding:15px;border:1px solid #e3e9e6;border-radius:12px;background:#fbfcfc;transition:border-color .16s ease,box-shadow .16s ease}.dictionary-card:focus-within{border-color:#79b9a1;box-shadow:0 0 0 3px #16835f14}.dictionary-card label{display:block}.dictionary-card-heading{display:flex;align-items:center;justify-content:space-between}.dictionary-card-heading span{padding:3px 7px;border-radius:999px;color:#60726b;background:#edf2f0;font-size:10px}.dictionary-card textarea{width:100%;resize:vertical;padding:10px;border:1px solid #ccd6d1;border-radius:8px;outline:none;background:#fff;font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.dictionary-card textarea:focus{border-color:#4ca987}.dictionary-card .primary-button{justify-self:end;height:32px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.user-admin{overflow-x:auto;border:1px solid #e3e9e6;border-radius:10px}.user-admin table{width:100%;border-collapse:collapse}.user-admin th,.user-admin td{padding:12px 14px;border-bottom:1px solid #e8ecea;text-align:left}.user-admin th{color:#697670;background:#f6f8f7;font-size:11px;font-weight:700}.user-admin tbody tr:last-child td{border-bottom:0}.user-admin tbody tr:hover{background:#fbfdfc}.user-identity{display:flex;align-items:center;gap:9px;white-space:nowrap}.user-identity i{display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border-radius:50%;color:#126849;background:#e3f2ec;font-style:normal;font-size:11px}.user-admin select,.user-admin button{height:32px;border:1px solid #d4ddd9;border-radius:7px;background:#fff}.user-admin select{min-width:110px;padding:0 9px}.user-admin button{padding:0 11px;color:#146e50;cursor:pointer}@media(max-width:760px){.admin-content{width:min(100% - 24px,1180px);padding-top:20px}.admin-hero,.admin-section-heading{align-items:flex-start;flex-direction:column}.admin-hero{padding:24px}.admin-summary{width:100%}.admin-summary article{flex:1}.admin-section{padding:18px}}.files-title{display:flex;align-items:center;gap:var(--space-6)}.files-title h1{margin:0;font-size:var(--text-2xl);font-weight:600;letter-spacing:-.01em}.files-subtitle{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-base)}.files-title .create-trigger{flex:0 0 auto;margin-left:auto;padding:0 var(--space-5);height:40px;box-shadow:var(--shadow-sm)}.files-title .create-trigger:hover{box-shadow:var(--shadow-md)}.files-browser{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--space-6);align-items:start;margin-top:var(--space-6)}.files-folders{position:sticky;top:84px;display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.files-folder-row{display:flex;align-items:center;gap:2px;min-width:0}.files-folder{display:flex;align-items:center;gap:var(--space-2);width:100%;min-width:0;min-height:36px;padding:0 var(--space-2);border:0;border-radius:var(--radius-md);color:var(--color-text-secondary);background:transparent;font:inherit;text-align:left;cursor:pointer}.files-folder svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linejoin:round}.files-folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-folder-count{margin-left:auto;color:var(--color-text-subtle);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.files-folder:hover{background:var(--neutral-50)}.files-folder.active{color:var(--brand-800);background:var(--brand-50);font-weight:600}.files-folder.active .files-folder-count{color:var(--brand-700)}.files-folder-delete{display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border:0;border-radius:var(--radius-md);color:var(--neutral-500);background:transparent;font-size:16px;line-height:1;cursor:pointer}.files-folder-delete:hover{color:var(--danger-600);background:var(--danger-50)}.files-folder-create{display:flex;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.files-folder-create input{min-width:0;flex:1;height:32px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;font:inherit}.files-folder-create button{height:32px;padding:0 var(--space-3)}.files-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:var(--space-4);margin-top:0}.file-move{flex:1 1 100%;min-width:0;margin:0 var(--space-1) 0 52px}.file-move select{width:100%;max-width:none;height:28px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);background:#fff;font-size:var(--text-xs)}.file-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-width:0;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease)}.file-card:hover{border-color:var(--color-primary-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.file-card:focus-within{border-color:var(--brand-300)}.file-card-open{display:flex;min-width:0;flex:1;align-items:center;gap:var(--space-3);padding:var(--space-1);border-radius:var(--radius-md);color:inherit;text-decoration:none}.file-icon{display:grid;width:40px;height:46px;flex:0 0 auto;place-items:center;border-radius:var(--radius-sm);color:#fff;background:linear-gradient(150deg,var(--brand-500),var(--brand-700));font-size:var(--text-lg);font-weight:800;box-shadow:var(--shadow-xs)}.file-card-body{min-width:0}.file-card h3{margin:0;overflow:hidden;font-size:var(--text-md);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.file-card p{margin:var(--space-1) 0 0;overflow:hidden;color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.file-role{flex:0 0 auto;margin-left:auto;padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--neutral-100);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.file-role[data-role=owner]{color:var(--brand-800);background:var(--brand-50)}.file-role[data-role=viewer]{color:var(--neutral-500);background:transparent;box-shadow:inset 0 0 0 1px var(--color-border)}.file-delete{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:0;border-radius:var(--radius-md);color:var(--neutral-500);background:transparent;cursor:pointer}.file-delete svg{width:18px;height:18px;fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linecap:round}.file-delete:hover{color:var(--danger-600);background:var(--danger-50)}.files-empty{display:grid;grid-column:1 / -1;justify-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);color:var(--color-text-muted);text-align:center;background:var(--color-surface)}.files-empty-icon{width:44px;height:44px;margin-bottom:var(--space-2);border-radius:var(--radius-lg);background:var(--color-primary-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316835f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h4'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:24px 24px}.files-empty strong{color:var(--color-text);font-size:var(--text-lg);font-weight:600}.files-empty p{margin:0 0 var(--space-3);max-width:42ch;font-size:var(--text-base);line-height:1.6;text-wrap:balance}.app-shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:34px minmax(0,1fr);width:100vw;min-width:900px;height:100vh}.persistence-bar{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:0 12px;border-bottom:1px solid #dfe4e2;background:#f8faf9;font-size:11px}.persistence-spacer{flex:1}.save-status{display:flex;align-items:center;gap:7px;max-width:520px;color:#63706b}.save-status i{width:7px;height:7px;border-radius:50%;background:#a1aaa6}.save-status[data-state=saved] i{background:#18a36f}.save-status[data-state=saving] i,.save-status[data-state=pending] i{background:#e0a51b}.save-status[data-state=error]{color:#b23535}.save-status[data-state=error] i{background:#d84040}.database-name{color:#7a8681}.permission-label{padding:3px 7px;border-radius:5px;color:#17664b;background:#e8f5ef;font-size:10px}.history-button{height:25px;padding:0 10px;border:1px solid #cbd5d1;border-radius:6px;color:#385149;background:#fff;cursor:pointer}.history-button:hover{border-color:#83b7a4;background:#f1f8f5}.sheet-host{position:relative;grid-row:2;grid-column:1;min-width:0;min-height:0;padding:0 7px 7px;background:#fff}.app-dialog{position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:var(--space-5);opacity:0;transition:opacity var(--duration) var(--ease)}.app-dialog.is-open{opacity:1}.app-dialog-backdrop{position:absolute;inset:0;background:#101e196b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-dialog-panel{position:relative;display:grid;grid-template-rows:auto 1fr;width:min(440px,100%);overflow:hidden;border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-lg);transform:translateY(10px) scale(.98);transition:transform var(--duration) var(--ease)}.app-dialog.is-open .app-dialog-panel{transform:none}.app-dialog-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-4)}.app-dialog-header h2{margin:0;font-size:var(--text-lg);font-weight:600}.app-dialog-close{display:grid;width:30px;height:30px;margin-left:auto;place-items:center;border:0;border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--neutral-100);cursor:pointer;font-size:20px;line-height:1}.app-dialog-close:hover{color:var(--color-text);background:var(--neutral-200)}.app-dialog-body{display:grid;gap:var(--space-4);padding:0 var(--space-5) var(--space-5)}.app-dialog-body .form-error{margin:0}.app-dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);margin-top:var(--space-1)}.app-dialog-footer .ghost-button{border-color:var(--color-border)}.app-dialog-footer .ghost-button:hover{background:var(--neutral-100)}@media(max-width:900px){.files-title{align-items:stretch;flex-direction:column;gap:var(--space-4)}.files-title .create-trigger{margin-left:0}.files-header{padding:0 var(--space-4)}.account-text{display:none}}@media(max-width:760px){.files-browser{grid-template-columns:1fr}.files-folders{position:static}}@media(max-width:560px){.files-content{width:calc(100% - 2 * var(--space-4));padding-top:var(--space-6)}.files-list{grid-template-columns:1fr}}#sheetnext-root{width:100%;height:100%}.loading{position:absolute;z-index:20;inset:0;display:grid;place-items:center;color:#51605b;background:#fff;font-size:13px}.loading:before{width:22px;height:22px;margin-right:10px;border:2px solid #d4e5de;border-top-color:#16835f;border-radius:50%;content:"";animation:spin .7s linear infinite}.loading.error{color:#a22d2d;background:#fff7f7}.loading.error:before{display:none}.history-dialog{position:fixed;z-index:1000;inset:0;background:#141e1a42}.history-dialog[hidden]{display:none}.history-panel{position:absolute;top:0;right:0;width:360px;height:100%;padding:0 18px 18px;overflow-y:auto;background:#fff;box-shadow:-12px 0 36px #14282029}.history-panel>header{position:sticky;z-index:2;top:0;display:flex;align-items:center;padding:18px 0 14px;border-bottom:1px solid #e6ebe9;background:#fff}.history-panel h2{margin:0;font-size:17px}.history-panel header p{margin:4px 0 0;color:#77827e;font-size:11px}.history-panel header button{width:30px;height:30px;margin-left:auto;border:0;border-radius:50%;color:#53605b;background:#f1f4f3;cursor:pointer;font-size:20px}.history-list{padding-top:12px}.history-item{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding:12px;border:1px solid #e0e6e3;border-radius:9px}.history-item.current{border-color:#a9d7c5;background:#f0f8f5}.history-item>div{min-width:0;flex:1}.history-item strong{margin-right:8px;font-size:13px}.history-item time{color:#7b8682;font-size:10px}.history-item p{margin:5px 0 0;overflow:hidden;color:#65716c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.history-item button{padding:5px 9px;border:1px solid #9cc9b8;border-radius:5px;color:#146347;background:#fff;cursor:pointer}.current-badge{color:#16835f;font-size:11px}.collaborators{max-width:360px;overflow:hidden;color:#51605b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.history-loading,.history-empty,.history-error{padding:30px 10px;color:#75817c;text-align:center;font-size:12px}.history-error{color:#b23535}.invite-form{display:grid;grid-template-columns:1fr 88px auto;gap:7px;padding:14px 0 2px}.invite-form input,.invite-form select{width:100%;height:34px;min-width:0}.invite-form .primary-button{height:34px}.member-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf0ef}.member-avatar{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;color:#fff;background:#4d7666;font-size:11px;font-weight:700}.member-item>div{min-width:0;flex:1}.member-item strong{font-size:12px}.member-item p{margin:3px 0 0;overflow:hidden;color:#7a8581;font-size:10px;text-overflow:ellipsis}.member-role{color:#5f6c67;font-size:10px}.member-item button{border:0;color:#a34b4b;background:transparent;cursor:pointer;font-size:10px}.empty-state,.error-state{padding:28px 8px;color:#7a8581;text-align:center;font-size:12px}.error-state{color:#b23535}@keyframes spin{to{transform:rotate(360deg)}}.app-confirm-overlay{position:fixed;inset:0;z-index:2400;display:grid;place-items:center;padding:20px;background:#12201c00;opacity:0;transition:background .18s ease,opacity .18s ease}.app-confirm-overlay.is-open{background:#12201c61;opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-confirm-overlay.is-closing{opacity:0}.app-confirm-dialog{width:min(400px,92vw);padding:20px;border:1px solid #e7eeeb;border-radius:14px;background:#fff;box-shadow:0 18px 48px #10241e2e,0 2px 8px #10241e14;transform:translateY(8px) scale(.98);transition:transform .18s ease}.app-confirm-overlay.is-open .app-confirm-dialog{transform:none}.app-confirm-header{display:flex;gap:12px;align-items:flex-start}.app-confirm-icon{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:#e7f5ef;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23147a58' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5'/%3E%3Ccircle cx='12' cy='16' r='1' fill='%23147a58' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:22px 22px}.app-confirm-overlay.is-danger .app-confirm-icon{background-color:#fdeceb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c45b4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 21 20H3L12 3.5z'/%3E%3Cpath d='M12 10v4'/%3E%3Ccircle cx='12' cy='16.5' r='1' fill='%23c45b4a' stroke='none'/%3E%3C/svg%3E")}.app-confirm-header h2{margin:2px 0 8px;font-size:16px;line-height:1.35;color:#15241f}.app-confirm-message{margin:0;color:#4b5c56;font-size:14px;line-height:1.55}.app-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.app-confirm-cancel,.app-confirm-ok{min-width:76px;height:34px;padding:0 16px;border-radius:8px;border:1px solid #d5e0db;background:#fff;color:#3f514a;cursor:pointer;font-size:13px;font-weight:500}.app-confirm-cancel:hover{background:#f3f7f5}.app-confirm-ok{border-color:transparent;background:#16835f;color:#fff}.app-confirm-ok:hover{background:#0f6d4d}.app-confirm-ok.is-danger{background:#c45b4a}.app-confirm-ok.is-danger:hover{background:#b04e3e}
