*{box-sizing:border-box}:root{--ui-bg: #f5f7fb;--ui-surface: #ffffff;--ui-border: #e2e8f0;--ui-text: #334155;--ui-primary-soft: #eff6ff;--ui-shadow: 0 10px 26px rgba(15, 23, 42, .08)}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ui-text);background:radial-gradient(circle at top right,#eef4ff 0,var(--ui-bg) 45%)}button,input,select{font:inherit}button{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease}button:disabled{cursor:not-allowed}.loading,.login-shell{height:100vh;display:grid;place-items:center}.login-card{width:360px;padding:24px;background:#fff;border-radius:12px;display:flex;flex-direction:column;gap:10px;border:1px solid #dbe1ea}.error{color:#b91c1c;margin:0}.forgot-link{font-size:14px;color:#2563eb;text-decoration:none}.forgot-link:hover{text-decoration:underline}.app-shell{min-height:100vh;animation:fade-in .36s ease}.topbar{height:58px;border-bottom:1px solid #e2e8f0;background:#ffffffd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:space-between;padding:0 12px;position:sticky;top:0;z-index:30}.tabs{display:flex;gap:6px}.brand-block{display:flex;align-items:center;gap:8px;min-width:210px}.brand-icon{width:24px;height:24px;border-radius:8px;background:#2563eb;color:#fff;display:grid;place-items:center;font-size:12px}.brand-text{font-weight:600;color:#0f172a}.top-center-tabs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:2px}.top-nav-tab{border-radius:6px;border:none;font-size:12px;padding:7px 12px;background:transparent;color:#64748b}.profile-menu-wrap{position:relative}.profile-icon{width:34px;height:34px;border-radius:999px;border:1px solid #cbd5e1;background:#2563eb;color:#1e3a8a;color:#fff;font-weight:600}.profile-menu{position:absolute;top:42px;right:0;width:170px;background:#fff;border:1px solid #dbe1ea;border-radius:8px;box-shadow:0 8px 20px #0f172a14;padding:6px;z-index:10;display:flex;flex-direction:column;gap:4px}.profile-menu button{text-align:left;background:#fff;border:1px solid transparent;border-radius:6px;padding:6px 8px}.profile-menu button:hover{background:#f8fafc;border-color:#e2e8f0}.tab{padding:7px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.tab.active{background:var(--ui-primary-soft);border-color:#bfdbfe;color:#1d4ed8;box-shadow:0 4px 14px #2563eb26}.layout{display:grid;grid-template-columns:185px 1fr;gap:10px;padding:8px;height:calc(100vh - 58px)}.profile-layout{padding:8px;height:calc(100vh - 58px)}.profile-content{height:100%}.profile-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.profile-tabs{gap:8px}.sidebar{background:transparent;border:none;border-radius:0;padding:0;overflow:auto;display:flex;flex-direction:column;gap:8px}.filter-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 18px #0f172a0d;transition:transform .18s ease,box-shadow .18s ease}.filter-card:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow)}.filter-card h4{margin:0 0 4px;font-size:12px;color:#0f172a}.filter-card label{font-size:12px}.column-list{display:flex;flex-direction:column;gap:4px;max-height:210px;overflow:auto;padding-right:2px}.column-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#334155}.column-item input{accent-color:#2563eb}.sheet-list{display:flex;flex-direction:column;gap:4px}.content{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px;overflow:auto;box-shadow:var(--ui-shadow);animation:rise-in .34s ease}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.content-title{margin:0;font-size:18px;color:#0f172a}.content-subtitle{margin:2px 0 0;font-size:12px;color:#64748b}.profile-panel{margin-bottom:10px;padding:10px;border:1px solid #e2e8f0;border-radius:8px;background:linear-gradient(180deg,#f8fbff,#f8fafc);box-shadow:0 6px 16px #0f172a0d;animation:rise-in .32s ease}.profile-action-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:7px 12px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;text-decoration:none;font-size:12px;font-weight:500;cursor:pointer}.profile-action-btn:hover{background:#dbeafe;transform:translateY(-1px)}.toast-region{position:fixed;right:14px;bottom:14px;display:flex;flex-direction:column;gap:8px;z-index:120;pointer-events:none}.toast{min-width:280px;max-width:420px;padding:10px 12px;border-radius:10px;border:1px solid var(--ui-border);background:#fffffff2;box-shadow:var(--ui-shadow);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:13px;animation:toast-in .25s ease;pointer-events:auto}.toast-success{border-color:#86efac;background:#f0fdf4}.toast-error{border-color:#fca5a5;background:#fff1f2}.toast-warning{border-color:#fcd34d;background:#fffbeb}.toast-info{border-color:#93c5fd;background:#eff6ff}.toast-close{border:none;background:transparent;color:#64748b;font-size:18px;line-height:1;padding:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.resolve-modal-backdrop{position:fixed;inset:0;background:#0f172a59;display:grid;place-items:center;z-index:70}.resolve-modal{width:min(780px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:hidden;background:#fff;border:1px solid #dbe1ea;border-radius:10px;display:flex;flex-direction:column}.resolve-modal-body{padding:14px;overflow:auto;display:flex;flex-direction:column;gap:10px}.resolve-modal h4{margin:0}.resolve-section{border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#f8fafc}.resolve-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.resolve-item{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#334155}.resolve-item-error{flex-direction:column;gap:2px;padding:6px;border:1px solid #fecaca;border-radius:6px;background:#fff1f2}.resolve-actions{display:flex;gap:8px;flex-wrap:wrap}.resolve-actions-footer{border-top:1px solid #e2e8f0;padding:10px 14px;background:#fff}.resolve-guide{border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#f8fafc}.resolve-guide-modal{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:hidden;background:#fff;border:1px solid #dbe1ea;border-radius:10px;display:flex;flex-direction:column}.resolve-guide-modal h4{margin:0;padding:14px 14px 0}.resolve-guide-modal .resolve-guide{margin:10px 14px 0;overflow:auto}.resolve-guide ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}.table-wrap{width:100%;max-height:74vh;overflow:auto;border:1px solid #e2e8f0;border-radius:8px;position:relative}.data-table{border-collapse:separate;border-spacing:0;min-width:100%}.data-table th,.data-table td{border:1px solid #edf2f7;padding:7px 10px;white-space:nowrap;font-size:12px}.reorderable-header{cursor:grab}.reorderable-header:active{cursor:grabbing}.data-table th{position:sticky;top:0;z-index:4;background:#f8fafc;text-align:left}.data-table tbody tr:hover td{background:#f8fafc}.sticky-col{position:sticky;left:0;z-index:5;background:#f8fafc;min-width:150px;width:150px;max-width:150px}.data-table td.sticky-col{background:#fff;z-index:3}.sticky-col-2{position:sticky;left:150px;z-index:4;background:#f8fafc}.pinned-header{z-index:6}.pinned-cell{background:#fff;z-index:2}.data-table th.sticky-col,.data-table th.sticky-col-2{top:0}.data-table td.sticky-col,.data-table td.sticky-col-2,.data-table th.sticky-col,.data-table th.sticky-col-2{background-clip:padding-box}.cell-input{min-width:80px;border:1px solid #cbd5e1;border-radius:6px;padding:3px 6px}.upload-form,.inspect-box,.aliases,.save-row{display:flex;flex-direction:column;gap:8px}.export-row,.save-row{display:flex;gap:8px}.export-row button{border:1px solid #dbe1ea;border-radius:8px;background:#fff;padding:6px 12px;font-size:12px}.checkline{display:block}.sheet-box,.direction-box{border:1px solid #e2e8f0;border-radius:8px;padding:8px;margin-bottom:8px;background:#fff}.sheet-box>summary,.direction-box>summary{cursor:pointer;color:#0f172a;font-size:13px}.small-label{display:block;margin:8px 0 4px;font-size:12px;color:#64748b}.no-margin{margin:0}.multi-select{width:100%;min-height:120px;border:1px solid #cbd5e1;border-radius:8px;padding:6px;background:#fff}.group-map-block{margin-top:10px;padding-top:8px;border-top:1px solid #e2e8f0}.group-header-row{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.plus-btn{width:24px;height:24px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#1d4ed8;font-weight:700}.group-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}.group-item{border:1px solid #e2e8f0;border-radius:8px;padding:6px;background:#f8fafc}.group-item>summary{cursor:pointer;font-size:12px;color:#0f172a;display:flex;align-items:center;justify-content:space-between}.group-column-item{margin-left:8px}.small-plus{width:20px;height:20px;font-size:12px;padding:0}.nested-groups{margin-left:14px;margin-top:6px;display:flex;flex-direction:column;gap:6px}.nested-group-top{margin-top:6px}.nested-columns-block{margin-top:8px}.filter-group-item{border:1px solid #e2e8f0;border-radius:8px;padding:6px;background:#fff}.filter-group-item>summary{cursor:pointer}.filter-group-content{margin-left:8px;margin-top:6px;display:flex;flex-direction:column;gap:4px}.filter-ungrouped-block{border-top:1px solid #e2e8f0;padding-top:8px;margin-top:4px}.group-map-row{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;align-items:center;margin-bottom:6px}.group-map-row span{font-size:12px;color:#334155}.group-map-row input{border:1px solid #cbd5e1;border-radius:6px;padding:6px 8px;font-size:12px}.my-files{display:flex;flex-direction:column;gap:6px}.file-btn{text-align:left}.editor-block{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:12px}.editor-mode-tabs{display:flex;gap:8px;margin-bottom:10px}.file-editor-layout{display:grid;grid-template-columns:220px 1fr;gap:10px;min-height:520px}.column-editor-wrap{display:flex;flex-direction:column;gap:10px}.column-editor-top{display:grid;grid-template-columns:repeat(2,minmax(220px,320px));gap:12px}.column-editor-top label{display:flex;flex-direction:column;gap:6px;font-size:12px}.column-editor-top select{border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;background:#fff}.column-editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:10px}.edit-sheet{margin-bottom:16px}
