:root{--pink: #ff8fab;--pink-light: #ffb6d9;--pink-pale: #ffd6e5;--cream: #fff4e6;--cream-light: #fffaf3;--yellow: #ffe5a0;--yellow-light: #fff3c4;--mint: #b5ead7;--mint-light: #d4f3e8;--purple: #c7ceea;--purple-light: #e0e3f5;--text-dark: #5a4a5e;--text-medium: #8b7a8f;--text-light: #b0a3b4;--white: #ffffff;--shadow-pink: rgba(255, 143, 171, .25);--shadow-dark: rgba(90, 74, 94, .12);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Nunito,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text-dark);background:linear-gradient(135deg,#ffd6e5,#fff4e6,#ffe5a0);min-height:100vh}h1,h2,h3{font-family:ZCOOL KuaiLe,Nunito,sans-serif;font-weight:400}#root{min-height:100vh}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:var(--text-medium)}.candy-spinner{width:40px;height:40px;border:4px solid var(--pink-pale);border-top-color:var(--pink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.logo-icon{width:64px;height:64px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--pink) 0%,#ff6b95 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px var(--shadow-pink),0 2px 4px #ff8fab4d}.logo-icon.small{width:44px;height:44px;border-radius:var(--radius-sm)}.logo-emoji{font-family:ZCOOL KuaiLe,sans-serif;font-size:28px;color:var(--white);letter-spacing:-1px}.logo-icon.small .logo-emoji{font-size:20px}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-card{background:var(--white);border-radius:var(--radius-xl);padding:48px 40px;width:100%;max-width:420px;box-shadow:0 20px 60px var(--shadow-pink),0 8px 24px var(--shadow-dark),0 2px 8px #5a4a5e0f;border:2px solid var(--white);position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:-60px;right:-60px;width:180px;height:180px;background:radial-gradient(circle,var(--pink-pale) 0%,transparent 70%);border-radius:50%}.login-header{text-align:center;margin-bottom:32px;position:relative}.login-header .logo-icon{margin:0 auto 16px}.login-title{font-size:32px;color:var(--text-dark);margin-bottom:4px}.login-subtitle{font-size:14px;color:var(--text-light);letter-spacing:1px}.login-form{display:flex;flex-direction:column;gap:20px;position:relative}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:700;color:var(--text-medium);padding-left:4px}.form-input{padding:14px 18px;border:2px solid var(--pink-pale);border-radius:var(--radius-md);font-size:15px;font-family:inherit;color:var(--text-dark);background:var(--cream-light);transition:all .2s ease;outline:none}.form-input:focus{border-color:var(--pink);background:var(--white);box-shadow:0 0 0 4px var(--shadow-pink)}.form-input::placeholder{color:var(--text-light)}.error-message{background:#fff0f3;color:#d6336c;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;border:1px solid #ffd0dd}.candy-btn{padding:14px 28px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;user-select:none}.candy-btn:disabled{opacity:.6;cursor:not-allowed}.candy-btn-primary{background:linear-gradient(135deg,var(--pink) 0%,#ff6b95 100%);color:var(--white);box-shadow:0 4px #d9537a,0 8px 16px var(--shadow-pink)}.candy-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px #d9537a,0 10px 20px var(--shadow-pink)}.candy-btn-primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #d9537a,0 3px 8px var(--shadow-pink)}.candy-btn-secondary{background:var(--white);color:var(--text-dark);box-shadow:0 4px #e8d5dd,0 6px 12px var(--shadow-dark);border:2px solid var(--pink-pale)}.candy-btn-secondary:hover:not(:disabled){background:var(--cream-light);transform:translateY(-1px);box-shadow:0 5px #e8d5dd,0 8px 16px var(--shadow-dark)}.candy-btn-secondary:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #e8d5dd,0 2px 6px var(--shadow-dark)}.candy-btn-danger{background:linear-gradient(135deg,#ff8a80,#ff5252);color:var(--white);box-shadow:0 4px #d83838,0 8px 16px #ff52524d}.candy-btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px #d83838,0 10px 20px #ff52524d}.candy-btn-danger:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #d83838,0 3px 8px #ff52524d}.login-btn{width:100%;margin-top:8px;padding:16px;font-size:16px}.login-footer{display:flex;justify-content:center;gap:12px;margin-top:32px}.candy-dot{width:12px;height:12px;border-radius:50%}.candy-dot.pink{background:var(--pink)}.candy-dot.yellow{background:var(--yellow)}.candy-dot.green{background:var(--mint)}.candy-dot.purple{background:var(--purple)}.dashboard-page{min-height:100vh;display:flex;flex-direction:column}.dashboard-header{background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px var(--shadow-dark);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:12px}.header-title{font-size:22px;color:var(--text-dark);line-height:1.2}.header-subtitle{font-size:12px;color:var(--text-light)}.storage-monitor{display:flex;align-items:center;gap:12px;background:var(--white);padding:6px 18px 6px 6px;border-radius:var(--radius-xl);box-shadow:0 2px 8px var(--shadow-dark);border:2px solid var(--pink-pale)}.storage-ring{flex-shrink:0}.storage-ring .ring-bg{stroke:var(--cream)}.storage-ring .ring-progress{transition:stroke-dashoffset .6s ease}.storage-ring .ring-text{font-size:13px;font-weight:700;fill:var(--text-dark);font-family:Nunito,sans-serif}.storage-info{display:flex;flex-direction:column;gap:2px}.storage-label{font-size:11px;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.storage-value{font-size:13px;font-weight:700;color:var(--text-dark);white-space:nowrap}.dashboard-main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:32px 24px;display:flex;flex-direction:column;gap:32px}.section-title{font-size:20px;color:var(--text-dark);margin-bottom:16px;padding-left:12px;border-left:4px solid var(--pink)}.upload-section,.files-section{background:#ffffffb3;border-radius:var(--radius-lg);padding:28px;box-shadow:0 8px 24px var(--shadow-dark),0 2px 8px #5a4a5e0d;border:1px solid rgba(255,255,255,.8)}.upload-zone{display:flex;flex-direction:column;gap:20px}.drop-area{border:3px dashed var(--pink-light);border-radius:var(--radius-lg);padding:40px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--cream-light);display:flex;flex-direction:column;align-items:center;gap:8px}.drop-area:hover,.drop-area.dragging{border-color:var(--pink);background:var(--pink-pale);transform:scale(1.01)}.drop-icon{color:var(--pink);margin-bottom:4px}.drop-text{font-size:16px;font-weight:700;color:var(--text-dark)}.drop-hint{font-size:13px;color:var(--text-light)}.upload-tasks{display:flex;flex-direction:column;gap:12px}.upload-tasks-header{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;color:var(--text-medium)}.text-btn{background:none;border:none;color:var(--pink);font-size:13px;cursor:pointer;font-family:inherit;font-weight:600;padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s}.text-btn:hover{background:var(--pink-pale)}.upload-task{background:var(--white);border-radius:var(--radius-md);padding:14px 16px;box-shadow:0 2px 8px var(--shadow-dark);display:flex;flex-direction:column;gap:8px}.task-info{display:flex;justify-content:space-between;align-items:center;gap:12px}.task-name{font-size:14px;font-weight:600;color:var(--text-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-size{font-size:12px;color:var(--text-light);flex-shrink:0}.task-progress-bar{height:8px;background:var(--cream);border-radius:4px;overflow:hidden}.task-progress-fill{height:100%;border-radius:4px;transition:width .3s ease;background:linear-gradient(90deg,var(--pink) 0%,var(--pink-light) 100%)}.task-progress-fill.done{background:linear-gradient(90deg,var(--mint) 0%,#8edab0 100%)}.task-progress-fill.error{background:linear-gradient(90deg,#ff8a80,#ff5252)}.task-status{display:flex;justify-content:space-between;font-size:12px}.task-message{color:var(--text-medium)}.upload-task.error .task-message{color:#d6336c}.task-percent{font-weight:700;color:var(--pink)}.upload-task.done .task-percent{color:#5faf7a}.search-bar-wrapper{display:flex;justify-content:center;margin-bottom:20px}.search-bar{display:flex;align-items:center;gap:10px;background:var(--white);border-radius:var(--radius-xl);padding:10px 20px;width:100%;max-width:480px;box-shadow:0 4px 12px var(--shadow-dark);border:2px solid var(--pink-pale);transition:border-color .2s}.search-bar:focus-within{border-color:var(--pink)}.search-icon{color:var(--text-light);flex-shrink:0}.search-input{border:none;outline:none;background:none;font-size:15px;font-family:inherit;color:var(--text-dark);width:100%}.search-input::placeholder{color:var(--text-light)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-light)}.empty-icon{color:var(--pink-pale);margin-bottom:16px}.empty-state p{font-size:15px}.file-table-wrapper{overflow-x:auto;border-radius:var(--radius-md)}.file-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 8px var(--shadow-dark)}.file-table thead{background:linear-gradient(135deg,var(--pink-pale) 0%,var(--cream) 100%)}.file-table th{padding:14px 16px;text-align:left;font-size:13px;font-weight:700;color:var(--text-medium);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.file-table td{padding:14px 16px;border-top:1px solid var(--cream);font-size:14px;vertical-align:middle}.file-table tbody tr{transition:background .15s}.file-table tbody tr:hover{background:var(--cream-light)}.col-size,.col-time,.col-downloads,.col-status,.col-actions{white-space:nowrap}.cell-name{display:flex;align-items:center;gap:10px;min-width:180px}.file-icon-small{color:var(--pink);flex-shrink:0;display:flex;align-items:center}.file-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text-dark)}.cell-size,.cell-time,.cell-downloads{color:var(--text-medium);font-size:13px}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700}.status-shared{background:var(--mint-light);color:#4a9d6f}.status-private{background:var(--cream);color:var(--text-light)}.action-buttons{display:flex;gap:6px;flex-wrap:wrap}.action-btn{padding:6px 12px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.action-share{background:var(--pink-pale);color:#d9537a}.action-share:hover{background:var(--pink);color:var(--white)}.action-copy{background:var(--purple-light);color:#6b7ab8}.action-copy:hover{background:var(--purple);color:var(--white)}.action-cancel{background:var(--yellow-light);color:#b8860b}.action-cancel:hover{background:var(--yellow);color:var(--text-dark)}.action-delete{background:#fff0f3;color:#d6336c}.action-delete:hover{background:#ff5252;color:var(--white)}.modal-overlay{position:fixed;inset:0;background:#5a4a5e66;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--white);border-radius:var(--radius-lg);padding:32px;max-width:420px;width:100%;box-shadow:0 20px 60px #5a4a5e4d;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{font-size:22px;color:var(--text-dark);margin-bottom:12px}.modal-text{font-size:15px;color:var(--text-dark);margin-bottom:8px;line-height:1.6}.modal-warning{font-size:13px;color:var(--text-light);line-height:1.6;margin-bottom:24px}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.loading-state{text-align:center;padding:40px;color:var(--text-light)}.dashboard-footer{text-align:center;padding:20px;color:var(--text-light);font-size:13px}.download-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.download-card{background:var(--white);border-radius:var(--radius-xl);padding:48px 40px;width:100%;max-width:480px;text-align:center;box-shadow:0 20px 60px var(--shadow-pink),0 8px 24px var(--shadow-dark);display:flex;flex-direction:column;align-items:center;gap:16px}.download-file-icon{color:var(--pink);width:80px;height:80px;background:var(--pink-pale);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.download-image-preview{width:100%;max-width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--cream);box-shadow:0 4px 16px var(--shadow-dark);display:flex;align-items:center;justify-content:center}.download-image-preview img{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:var(--radius-lg)}.download-error-icon{color:#ff5252;width:80px;height:80px;background:#fff0f3;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.download-title{font-size:20px;color:var(--text-dark);word-break:break-all;line-height:1.4}.download-error-text{color:#d6336c;font-size:15px;margin-bottom:4px}.download-hint{font-size:13px;color:var(--text-light)}.download-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding:16px 0;width:100%}.meta-item{display:flex;flex-direction:column;gap:4px;align-items:center;min-width:80px}.meta-label{font-size:11px;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.meta-value{font-size:14px;font-weight:700;color:var(--text-dark)}.download-btn{width:100%;padding:16px;font-size:16px;margin-top:8px}.download-powered{font-size:12px;color:var(--text-light);margin-top:8px}@media (max-width: 768px){.dashboard-header{padding:12px 16px}.header-title{font-size:18px}.header-subtitle{display:none}.storage-monitor{padding:4px 12px 4px 4px;gap:8px}.storage-ring{width:44px;height:44px}.storage-ring .ring-text{font-size:10px}.storage-label{display:none}.storage-value{font-size:11px}.dashboard-main{padding:16px;gap:20px}.upload-section,.files-section{padding:18px}.section-title{font-size:18px}.drop-area{padding:28px 16px}.login-card{padding:32px 24px}.login-title{font-size:26px}.file-table th,.file-table td{padding:10px;font-size:13px}.col-time,.col-downloads{display:none}.cell-name{min-width:120px}.action-btn{padding:5px 10px;font-size:11px}.download-card{padding:32px 24px}.meta-item{min-width:70px}}@media (max-width: 480px){.col-status{display:none}.action-buttons{flex-direction:column;gap:4px}.action-btn{width:100%;text-align:center}}
