<style>
        .container { max-width: 1400px; margin: 0 auto; padding: 20px; }
        
        .nav {
            background: var(--bg-secondary);
            border-bottom: 1px solid var(--border);
            padding: 10px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
        }
        .nav-brand { color: var(--accent); font-weight: bold; font-size: 1.1em; text-decoration: none; }
        .nav-links { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
        .nav-links a { color: var(--text-secondary); font-size: 0.9em; }
        .nav-links a:hover, .nav-links a.active { color: var(--accent); }
        
        .theme-btn {
            background: none;
            border: 1px solid var(--border);
            color: var(--text-secondary);
            padding: 4px 8px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 1em;
        }
        .theme-btn:hover { border-color: var(--accent); color: var(--accent); }
        
        @media (max-width: 600px) {
            .nav { padding: 8px 12px; }
            .nav-brand { font-size: 1em; }
            .nav-links { gap: 8px; }
            .nav-links a { font-size: 0.8em; }
        }
        
        .header {
            background: linear-gradient(135deg, var(--bg-secondary), var(--bg-primary));
            padding: 24px;
            border-radius: 16px;
            border: 1px solid var(--border);
            margin-bottom: 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 16px;
        }
        .header h1 { color: var(--accent); font-size: 1.4em; }
        .header-actions { display: flex; gap: 8px; flex-wrap: wrap; }
        
        .grid { display: grid; grid-template-columns: 280px 1fr; gap: 16px; }
        @media (max-width: 900px) {
            .grid { grid-template-columns: 1fr; }
            .sidebar { order: 2; }
            .main-panel { order: 1; }
        }
        @media (max-width: 600px) {
            .container { padding: 10px; }
            .header { padding: 12px; flex-direction: column; gap: 12px; }
            .header h1 { font-size: 1.2em; }
            .header-actions { width: 100%; justify-content: center; }
            .card { padding: 12px; border-radius: 12px; }
            .card h2 { font-size: 1em; flex-wrap: wrap; gap: 6px; }
            .btn { padding: 8px 14px; font-size: 0.9em; }
            .btn-sm { padding: 5px 10px; font-size: 0.8em; }
            .user-info { padding: 12px 0; }
            .user-info .avatar { font-size: 2em; }
            .user-info .username { font-size: 1.1em; }
            .stats-row { justify-content: center; }
            .upload-zone { padding: 24px 12px; }
            .upload-zone div:first-child { font-size: 1.5em; }
            .file-list { max-height: 300px; }
            .file-item { padding: 10px 8px; flex-wrap: wrap; gap: 8px; }
            .file-name { font-size: 0.9em; min-width: 0; flex: 1 1 60%; }
            .file-meta { width: 100%; order: 2; padding-left: 28px; gap: 8px; }
            .file-actions { flex-wrap: wrap; gap: 4px; }
            .file-actions .btn-sm { padding: 4px 8px; font-size: 0.75em; }
            .breadcrumb { padding: 10px; font-size: 0.85em; overflow-x: auto; flex-wrap: nowrap; }
            .preview-frame { height: 250px; }
            .clipboard-bar { flex-wrap: wrap; font-size: 0.85em; }
            .editor-header { padding: 12px; }
            .editor-title { font-size: 0.9em; }
            .editor-body textarea { padding: 12px; font-size: 13px; }
            .editor-footer { padding: 12px; flex-wrap: wrap; }
            .context-menu { min-width: 140px; }
            .context-menu-item { padding: 8px 12px; font-size: 0.9em; }
            .log-item { flex-wrap: wrap; font-size: 0.8em; }
            .log-time { width: 100%; margin-bottom: 4px; }
        }
        
        .sidebar {
            background: var(--bg-secondary);
            border-radius: 16px;
            border: 1px solid var(--border);
            padding: 16px;
        }

        /* Hamburger button for mobile sidebar drawer */
        .hamburger-btn {
            display: none;
            background: none;
            border: none;
            color: var(--text-primary);
            font-size: 1.5em;
            cursor: pointer;
            padding: 4px 8px;
            border-radius: 6px;
            transition: background 0.2s;
            align-items: center;
            justify-content: center;
            line-height: 1;
        }
        .hamburger-btn:hover { background: var(--bg-tertiary); }

        /* Sidebar overlay backdrop */
        .sidebar-overlay {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.6);
            z-index: 998;
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
        }
        .sidebar-overlay.open {
            display: block;
            opacity: 1;
            pointer-events: auto;
        }

        /* Mobile sidebar drawer (<768px) */
        @media (max-width: 768px) {
            .hamburger-btn { display: inline-flex; }
            .sidebar {
                position: fixed;
                top: 0;
                left: 0;
                width: 280px;
                max-width: 85vw;
                height: 100vh;
                z-index: 999;
                overflow-y: auto;
                transform: translateX(-100%);
                transition: transform 0.3s ease;
                border-radius: 0;
                border-left: none;
                border-top: none;
                border-bottom: none;
                padding-top: 20px;
                padding-bottom: 20px;
            }
            .sidebar.mobile-open { transform: translateX(0); }
            body.sidebar-open { overflow: hidden; }
        }

        .user-info { text-align: center; padding: 16px 0; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
        .user-info .avatar { font-size: 2.5em; margin-bottom: 8px; }
        .user-info .username { color: var(--accent); font-size: 1.2em; font-weight: bold; }
        .user-info .space-url { color: var(--text-secondary); font-size: 0.8em; margin-top: 6px; word-break: break-all; }
        
        .main-panel { display: flex; flex-direction: column; gap: 20px; }
        
        .card {
            background: var(--bg-secondary);
            border-radius: 16px;
            border: 1px solid var(--border);
            padding: 20px;
        }
        .card h2 { color: var(--accent); font-size: 1em; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
        
        .upload-zone {
            border: 2px dashed var(--border);
            border-radius: 12px;
            padding: 40px 20px;
            text-align: center;
            cursor: pointer;
            transition: all 0.3s;
            background: var(--bg-primary);
        }
        .upload-zone:hover, .upload-zone.dragover {
            border-color: var(--accent);
            background: var(--bg-tertiary);
        }
        .upload-zone.dragover { transform: scale(1.01); }
        
        .file-list { max-height: 400px; overflow-y: auto; }
        .file-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px;
            background: var(--bg-tertiary);
            border-radius: 8px;
            margin-bottom: 8px;
        }
        .file-item:hover { background: var(--border); }
        .file-name { display: flex; align-items: center; gap: 8px; flex: 1; cursor: pointer; min-width: 0; color: var(--text-primary); }
        .file-name:hover { color: var(--accent); }
        .file-name span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .file-icon { font-size: 1.1em; flex-shrink: 0; }
        .file-actions { display: flex; gap: 4px; flex-shrink: 0; }
        .file-meta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; font-size: 0.8em; color: var(--text-secondary); }
        .file-size { color: var(--accent); font-family: monospace; font-size: 0.85em; }
        .file-date { color: var(--text-secondary); font-size: 0.85em; }

        .file-toolbar { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
        .file-search-input {
            flex: 1; min-width: 120px;
            padding: 8px 12px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            border-radius: 8px;
            color: var(--text-primary);
            font-size: 0.85em;
            outline: none;
        }
        .file-search-input:focus { border-color: var(--accent); }
        .file-sort-btns { display: flex; gap: 4px; flex-shrink: 0; }
        .sort-btn {
            padding: 4px 10px; border-radius: 6px;
            font-size: 0.78em; cursor: pointer;
            background: var(--bg-tertiary); color: var(--text-secondary);
            border: 1px solid transparent;
        }
        .sort-btn:hover { color: var(--accent); border-color: var(--border); }
        .sort-btn.active { color: var(--accent); border-color: var(--accent); background: rgba(0,255,136,0.08); }

        .breadcrumb {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 12px;
            background: var(--bg-tertiary);
            border-radius: 8px;
            margin-bottom: 12px;
            flex-wrap: wrap;
        }
        .breadcrumb-item { color: var(--text-secondary); cursor: pointer; }
        .breadcrumb-item:hover { color: var(--accent); }
        .breadcrumb-item.current { color: var(--accent); font-weight: bold; }
        .breadcrumb-sep { color: var(--border); }

        .editor-modal {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.95);
            z-index: 1000;
            display: none;
            flex-direction: column;
        }
        .editor-modal.open { display: flex; }
        .editor-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 16px 20px;
            background: var(--bg-secondary);
            border-bottom: 1px solid var(--border);
        }
        .editor-title { color: var(--accent); font-weight: bold; }
        .editor-body { flex: 1; display: flex; flex-direction: column; }
        .editor-body textarea {
            flex: 1;
            background: var(--bg-primary);
            color: var(--text-primary);
            border: none;
            padding: 16px;
            font-family: 'Monaco', 'Menlo', monospace;
            font-size: 14px;
            resize: none;
            outline: none;
        }
        .editor-footer {
            display: flex;
            gap: 10px;
            padding: 16px 20px;
            background: var(--bg-secondary);
            border-top: 1px solid var(--border);
        }
        
        .context-menu {
            position: fixed;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: 8px 0;
            min-width: 160px;
            z-index: 1001;
            display: none;
        }
        .context-menu.open { display: block; }
        .context-menu-item {
            padding: 10px 16px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 10px;
            color: var(--text-primary);
        }
        .context-menu-item:hover { background: var(--border); color: var(--accent); }
        .context-menu-item.danger:hover { color: #ff4444; }
        
        .file-menu {
            position: fixed;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            border-radius: 12px;
            padding: 8px 0;
            min-width: 180px;
            z-index: 1002;
            display: none;
            box-shadow: 0 4px 20px rgba(0,0,0,0.5);
        }
        .file-menu.open { display: block; }
        .file-menu-header {
            padding: 10px 16px;
            color: var(--accent);
            font-weight: bold;
            border-bottom: 1px solid var(--border);
            margin-bottom: 6px;
        }
        .file-menu-item {
            padding: 10px 16px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 10px;
            color: var(--text-primary);
        }
        .file-menu-item:hover { background: var(--border); color: var(--accent); }
        .file-menu-item.danger:hover { color: #ff4444; }
        
        @media (max-width: 500px) {
            .file-menu {
                position: fixed;
                left: 10px !important;
                right: 10px !important;
                width: auto !important;
                bottom: 10px;
                top: auto !important;
                border-radius: 16px;
            }
            .file-menu-header { display: none; }
            .file-menu-item { padding: 14px 16px; justify-content: center; }
        }
        
        .clipboard-bar {
            background: var(--bg-tertiary);
            border-radius: 8px;
            padding: 10px 16px;
            margin-bottom: 12px;
            display: none;
            align-items: center;
            gap: 12px;
        }
        .clipboard-bar.active { display: flex; }
        .clipboard-info { color: var(--text-secondary); flex: 1; }
        .clipboard-info span { color: var(--accent); }
        
        .btn {
            padding: 10px 20px;
            border: none;
            border-radius: 8px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }
        .btn-primary { background: var(--accent); color: #000; }
        .btn-primary:hover { opacity: 0.9; }
        .btn-secondary { background: var(--bg-tertiary); color: var(--text-primary); border: 1px solid var(--border); }
        .btn-secondary:hover { background: var(--border); }
        .btn-danger { background: #ff4444; color: #fff; }
        .btn-danger:hover { background: #cc3333; }
        .btn-sm { padding: 6px 12px; font-size: 0.85em; }
        
        .preview-frame {
            width: 100%;
            height: 400px;
            border: 1px solid var(--border);
            border-radius: 12px;
            background: var(--bg-primary);
        }
        
        .progress-bar {
            height: 4px;
            background: var(--border);
            border-radius: 2px;
            overflow: hidden;
            margin-top: 10px;
        }
        .progress-fill {
            height: 100%;
            background: var(--accent);
            transition: width 0.3s;
        }
        
        .login-form { max-width: 400px; margin: 100px auto; }
        .login-form input {
            width: 100%;
            padding: 14px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            border-radius: 8px;
            color: var(--text-primary);
            font-size: 1em;
            margin-bottom: 12px;
        }
        .login-form input:focus { outline: none; border-color: var(--accent); }
        
        .hidden { display: none !important; }
        
        .stats-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
        .stat { background: var(--bg-tertiary); padding: 12px 16px; border-radius: 8px; }
        .stat-value { color: var(--accent); font-size: 1.3em; font-weight: bold; }
        .stat-label { color: var(--text-secondary); font-size: 0.8em; }
        
        .logs-panel { display: none; }
        .logs-panel.open { display: block; }
        
        /* Activity chart */
        .activity-chart {
            background: var(--bg-tertiary);
            border-radius: 8px;
            padding: 12px;
            margin-bottom: 12px;
        }
        .activity-chart-title {
            color: var(--text-secondary);
            font-size: 0.8em;
            margin-bottom: 8px;
            display: flex;
            justify-content: space-between;
        }
        .activity-chart-title span { color: var(--accent); font-size: 0.9em; }
        .activity-bars {
            display: flex;
            align-items: flex-end;
            gap: 4px;
            height: 50px;
        }
        .activity-bar-wrap {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 3px;
            position: relative;
        }
        .activity-bar-wrap:hover .activity-bar-count {
            opacity: 1;
            transform: translateY(0);
        }
        .activity-bar {
            width: 100%;
            border-radius: 3px 3px 0 0;
            min-height: 2px;
            background: var(--accent);
            opacity: 0.75;
            transition: opacity 0.2s, height 0.3s ease;
        }
        .activity-bar:hover { opacity: 1; }
        .activity-bar-count {
            position: absolute;
            bottom: 100%;
            background: var(--accent);
            color: #000;
            font-size: 0.6em;
            font-weight: bold;
            padding: 2px 5px;
            border-radius: 3px;
            white-space: nowrap;
            opacity: 0;
            transform: translateY(4px);
            transition: opacity 0.15s, transform 0.15s;
            pointer-events: none;
            z-index: 2;
        }
        .activity-bar-label {
            font-size: 0.6em;
            color: var(--text-secondary);
            white-space: nowrap;
        }
        .activity-zero .activity-bar {
            opacity: 0.15;
            background: var(--text-secondary);
        }
        .activity-zero .activity-bar-count { display: none; }
        
        .log-list { max-height: 300px; overflow-y: auto; }
        .log-item {
            display: flex;
            gap: 12px;
            padding: 10px 12px;
            background: var(--bg-tertiary);
            border-radius: 6px;
            margin-bottom: 6px;
            font-size: 0.85em;
            align-items: flex-start;
        }
        .log-time { color: var(--text-secondary); font-family: monospace; flex-shrink: 0; }
        .log-action { flex-shrink: 0; }
        .log-action.upload { color: var(--accent); }
        .log-action.delete { color: #ff4444; }
        .log-action.edit { color: #00bfff; }
        .log-action.create { color: #ffaa00; }
        .log-action.login { color: #aa88ff; }
        .log-action.logout { color: var(--text-secondary); }
        .log-action.folder { color: #ff88aa; }
        .log-detail { color: var(--text-secondary); flex: 1; word-break: break-all; }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        body { background: var(--bg-primary); color: var(--text-primary); }

        .notice-banner {
            background: #111;
            border: 1px solid #ffc107;
            border-radius: 12px;
            padding: 14px 20px;
            margin-bottom: 25px;
            text-align: center;
            font-size: 0.9rem;
            line-height: 1.6;
            color: #e5e7eb;
        }
        .notice-banner a { color: #818cf8; font-weight: 600; }
        .notice-contact { display: block; margin-top: 5px; }

        /* Batch action bar */
        .batch-bar {
            display: none;
            align-items: center;
            gap: 10px;
            padding: 12px 16px;
            background: var(--bg-tertiary);
            border: 1px solid var(--accent);
            border-radius: 8px;
            margin-top: 10px;
            flex-wrap: wrap;
        }
        .batch-bar.active { display: flex; }
        .batch-bar span { color: var(--text-secondary); font-size: 0.85em; }
        .batch-bar .btn-sm { padding: 5px 12px; font-size: 0.8em; }

        /* Select mode */
        .file-checkbox {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: var(--accent);
            flex-shrink: 0;
            margin-right: 8px;
        }
        .file-item.selected {
            border: 1px solid var(--accent) !important;
            background: rgba(0,255,136,0.08) !important;
        }
    </style>