:root{--hc-primary: #0a5b8c;--hc-primary-dark: #074669;--hc-accent: #17a2b8;--hc-bg: #f4f6f9;--hc-sidebar: #0c3c5c;--hc-border: #e2e8f0;--hc-text: #1a2733;--hc-muted: #6b7a89;--hc-danger: #d9534f}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--hc-bg);color:var(--hc-text)}button{cursor:pointer;font-family:inherit}a{color:var(--hc-primary)}.center-screen{display:flex;height:100vh;align-items:center;justify-content:center;color:var(--hc-muted)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a5b8c,#0c3c5c);padding:20px}.login-card{background:#fff;padding:40px;border-radius:14px;width:100%;max-width:400px;box-shadow:0 18px 50px #00000040;display:flex;flex-direction:column}.login-logo{display:flex;align-items:center;gap:10px}.login-logo h1{font-size:24px;margin:0;color:var(--hc-primary-dark);letter-spacing:1px}.login-logo h1 span{color:var(--hc-accent);font-weight:400}.cloud-icon{font-size:34px;color:var(--hc-accent)}.login-sub{color:var(--hc-muted);font-size:13px;margin:6px 0 20px}.login-card label{font-size:13px;font-weight:600;margin:12px 0 4px;color:#33475b}.login-card input{padding:11px 12px;border:1px solid var(--hc-border);border-radius:8px;font-size:14px}.login-card button{margin-top:22px;padding:12px;background:var(--hc-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600}.login-card button:hover{background:var(--hc-primary-dark)}.login-foot{text-align:center;font-size:11px;color:var(--hc-muted);margin:18px 0 0}.alert{background:#fdecea;color:var(--hc-danger);padding:10px;border-radius:8px;font-size:13px}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;background:var(--hc-sidebar);color:#cfe0ec;display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:18px 20px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand .cloud-icon{font-size:24px}.sidebar-brand b{color:#fff;letter-spacing:1px;font-size:16px}.sidebar-brand b span{color:var(--hc-accent);font-weight:400}.nav{padding:12px 0;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;color:#cfe0ec;font-size:14px;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:#17a2b840;color:#fff;border-left:3px solid var(--hc-accent)}.nav-new{margin:12px 20px;padding:10px;background:var(--hc-accent);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px}.sidebar-user{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);font-size:13px}.sidebar-user .u-name{color:#fff;font-weight:600}.sidebar-user .u-logout{background:none;border:none;color:#9db8ca;font-size:12px;padding:4px 0}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--hc-border);display:flex;align-items:center;padding:0 20px;gap:16px;flex-shrink:0}.search-box{flex:1;max-width:560px;position:relative}.search-box input{width:100%;padding:9px 12px 9px 36px;border:1px solid var(--hc-border);border-radius:20px;font-size:14px;background:#f6f8fa}.search-box .s-icon{position:absolute;left:12px;top:8px;color:var(--hc-muted)}.topbar .user-chip{display:flex;align-items:center;gap:8px;font-size:14px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--hc-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}.content{flex:1;overflow-y:auto;padding:20px 28px}.content-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.breadcrumb{font-size:15px;color:var(--hc-muted)}.breadcrumb b{color:var(--hc-text);font-size:20px;font-weight:700}.breadcrumb .crumb{background:none;border:none;color:var(--hc-primary);font-size:14px;padding:0 2px}.view-toggle button{border:1px solid var(--hc-border);background:#fff;padding:7px 10px}.view-toggle button.active{background:var(--hc-primary);color:#fff;border-color:var(--hc-primary)}.view-toggle button:first-child{border-radius:7px 0 0 7px}.view-toggle button:last-child{border-radius:0 7px 7px 0}.dropzone{border:2px dashed var(--hc-border);border-radius:12px;padding:22px;text-align:center;color:var(--hc-muted);margin-bottom:20px;background:#fff;font-size:14px;transition:.15s}.dropzone.drag{border-color:var(--hc-accent);background:#ecfbfd;color:var(--hc-primary-dark)}.dropzone b{color:var(--hc-primary)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.card{background:#fff;border:1px solid var(--hc-border);border-radius:10px;padding:16px 12px;text-align:center;cursor:pointer;position:relative;transition:.12s}.card:hover{box-shadow:0 6px 18px #0a5b8c1f;transform:translateY(-1px)}.card .ic{font-size:40px}.card .fname{font-size:13px;margin-top:8px;word-break:break-word;line-height:1.3}.card .fmeta{font-size:11px;color:var(--hc-muted);margin-top:4px}.card .star{position:absolute;top:6px;right:8px;color:#f0ad4e;font-size:14px}table.list{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden}table.list th,table.list td{text-align:left;padding:11px 14px;font-size:13px;border-bottom:1px solid var(--hc-border)}table.list th{color:var(--hc-muted);font-weight:600;background:#fafbfc}table.list tr:hover td{background:#f6f9fb;cursor:pointer}.row-name{display:flex;align-items:center;gap:10px}.row-actions button{background:none;border:none;font-size:15px;padding:2px 5px;color:var(--hc-muted)}.row-actions button:hover{color:var(--hc-primary)}.empty{text-align:center;color:var(--hc-muted);padding:50px;font-size:14px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1e2c8c;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal.large{max-width:900px;height:90vh;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--hc-border)}.modal-head h3{margin:0;font-size:16px}.modal-head .close{background:none;border:none;font-size:22px;color:var(--hc-muted)}.modal-body{padding:20px}.modal-body.preview{flex:1;padding:0;background:#33475b;display:flex;align-items:center;justify-content:center;overflow:auto}.modal-body.preview iframe,.modal-body.preview img{width:100%;height:100%;border:none;object-fit:contain}.preview-bar{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--hc-border);flex-wrap:wrap}.btn{padding:8px 14px;border-radius:7px;border:1px solid var(--hc-border);background:#fff;font-size:13px}.btn.primary{background:var(--hc-primary);color:#fff;border-color:var(--hc-primary)}.btn.danger{color:var(--hc-danger);border-color:#f0c5c3}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.field input,.field select{width:100%;padding:9px 11px;border:1px solid var(--hc-border);border-radius:7px;font-size:14px}.history-row{display:flex;justify-content:space-between;font-size:12px;padding:6px 0;border-bottom:1px solid #f0f3f6;color:var(--hc-muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--hc-border);border-radius:10px;padding:18px}.stat .n{font-size:26px;font-weight:700;color:var(--hc-primary-dark)}.stat .l{font-size:12px;color:var(--hc-muted);text-transform:uppercase;letter-spacing:.5px}.tag{display:inline-block;background:#e8f2f8;color:var(--hc-primary-dark);font-size:11px;padding:2px 8px;border-radius:10px}.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.filters select,.filters input{padding:7px 10px;border:1px solid var(--hc-border);border-radius:7px;font-size:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--hc-primary-dark);color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;box-shadow:0 8px 24px #00000040;z-index:100;max-width:90%}
