*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue-dark: #1E3A5F;--blue-mid: #2E6DA4;--blue-light: #D6E4F0;--accent: #E8873A;--gray-100: #F5F7FA;--gray-200: #E8ECF0;--gray-400: #9BA8B5;--gray-700: #4A5568;--gray-900: #1A202C;--white: #FFFFFF;--green: #1A7A4A;--radius: 6px;--shadow: 0 1px 4px rgba(0,0,0,.1);--header-h: 64px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;color:var(--gray-900);background:var(--gray-100)}.header{height:var(--header-h);background:var(--blue-dark);color:var(--white);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0003}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{width:36px;height:36px;border-radius:4px;object-fit:contain}.header-name{font-size:16px;font-weight:700}.header-nav{display:flex;align-items:center;gap:4px}.header-nav a{color:#ffffffbf;text-decoration:none;padding:6px 14px;border-radius:var(--radius);font-size:13px;font-weight:500;transition:background .15s,color .15s}.header-nav a:hover,.header-nav a.active{background:#ffffff1f;color:#fff}.header-user{display:flex;align-items:center;gap:10px;font-size:13px;color:#fffc}.container{max-width:1100px;margin:0 auto;padding:24px 16px}.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--gray-200);box-shadow:var(--shadow)}.browser{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:calc(100vh - var(--header-h) - 48px)}.sidebar-tree{background:var(--white);border-right:1px solid var(--gray-200);padding:16px 0;overflow-y:auto}.tree-item{display:flex;align-items:center;gap:8px;padding:7px 16px;cursor:pointer;font-size:13px;color:var(--gray-700);transition:background .12s;border-left:3px solid transparent;text-decoration:none}.tree-item:hover{background:var(--gray-100)}.tree-item.active{background:var(--blue-light);border-left-color:var(--blue-mid);color:var(--blue-dark);font-weight:600}.tree-item.indent-1{padding-left:32px}.tree-item.indent-2{padding-left:48px}.file-pane{padding:20px;overflow-y:auto}.file-pane-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.pane-title{font-size:15px;font-weight:700;color:var(--blue-dark)}.file-list{display:flex;flex-direction:column;gap:8px}.file-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);transition:box-shadow .15s}.file-row:hover{box-shadow:0 2px 8px #00000014}.file-icon{font-size:22px;flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{font-weight:500;truncate:true;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:12px;color:var(--gray-400);margin-top:2px}.file-actions{display:flex;gap:8px;flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:16px;flex-wrap:wrap}.breadcrumb-item{color:var(--blue-mid);cursor:pointer;text-decoration:underline}.breadcrumb-sep{color:var(--gray-400)}.breadcrumb-cur{color:var(--gray-700)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;border:none;text-decoration:none;transition:opacity .15s,box-shadow .15s}.btn:hover{opacity:.88}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--blue-mid);color:#fff}.btn-outline{background:#fff;color:var(--blue-mid);border:1px solid var(--blue-mid)}.btn-ghost{background:transparent;color:var(--gray-700);border:1px solid var(--gray-200)}.btn-success{background:var(--green);color:#fff}.btn-sm{padding:5px 10px;font-size:12px}.download-bar{position:fixed;bottom:0;left:0;right:0;background:var(--blue-dark);color:#fff;padding:12px 24px;z-index:200;display:flex;align-items:center;gap:16px}.progress-track{flex:1;height:6px;background:#fff3;border-radius:3px}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.form-group{margin-bottom:16px}label{display:block;font-size:12px;font-weight:600;color:var(--gray-700);margin-bottom:4px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:13px;background:var(--white);color:var(--gray-900)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 3px #2e6da426}textarea{resize:vertical;min-height:100px}.alert{padding:12px 16px;border-radius:var(--radius);font-size:13px;margin-bottom:16px}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #F5C6CB}.alert-success{background:#d4edda;color:#155724;border:1px solid #C3E6CB}.alert-info{background:#d1ecf1;color:#0c5460;border:1px solid #BEE5EB}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue-dark) 0%,#2a5298 100%)}.login-card{background:#fff;border-radius:10px;padding:40px;width:380px;box-shadow:0 16px 64px #0000004d;text-align:center}.login-logo{width:72px;height:72px;margin:0 auto 16px;display:block;border-radius:8px}.login-title{font-size:22px;font-weight:700;color:var(--blue-dark);margin-bottom:6px}.login-sub{font-size:13px;color:var(--gray-400);margin-bottom:28px;line-height:1.5}.empty-state{text-align:center;padding:48px 24px;color:var(--gray-400)}.empty-icon{font-size:40px;margin-bottom:12px}.text-muted{color:var(--gray-400)}.text-sm{font-size:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.spinner{animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.guide{max-width:720px;margin:0 auto}.guide h2{font-size:18px;color:var(--blue-dark);margin:28px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--blue-light)}.guide h3{font-size:14px;font-weight:700;color:var(--gray-700);margin:16px 0 6px}.guide p{line-height:1.7;color:var(--gray-700);margin-bottom:10px}.guide ol,.guide ul{padding-left:20px;line-height:1.8;color:var(--gray-700);margin-bottom:10px}.guide .tip{background:var(--blue-light);border-left:4px solid var(--blue-mid);padding:10px 14px;border-radius:0 4px 4px 0;margin:12px 0;font-size:13px}
