@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
    --bg: #F4F6F9; --bg-card: #FFF; --bg-sidebar: #1B2A4A; --bg-sidebar-hover: #243658;
    --bg-sidebar-active: #2E4270; --text: #1B2A4A; --text-sec: #5A6A85; --text-muted: #8B95A8;
    --text-sidebar: #B8C4D8; --text-sidebar-active: #FFFFFF;
    --accent: #C0392B; --accent-light: #FDEDEC; --accent-hover: #A93226;
    --border: #E7E5E4; --border-light: #F5F5F4;
    --success: #15803D; --success-bg: #F0FDF4; --danger: #DC2626; --danger-bg: #FEF2F2;
    --warning: #D97706; --warning-bg: #FFFBEB; --info: #2563EB; --info-bg: #EFF6FF;
    --shadow-sm: 0 1px 2px rgba(28,25,23,.05); --shadow-md: 0 4px 12px rgba(28,25,23,.08);
    --shadow-lg: 0 8px 30px rgba(28,25,23,.12); --radius: 8px; --radius-lg: 12px;
    --transition: 200ms cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}

.app-layout{display:flex;min-height:100vh}
.sidebar{width:260px;background:var(--bg-sidebar);color:var(--text-sidebar);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}
.sidebar-brand{padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:12px}
.sidebar-brand-icon{width:36px;height:36px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:700}
.sidebar-brand h1{font-size:16px;font-weight:600;color:var(--text-sidebar-active);letter-spacing:-.02em}
.sidebar-brand small{font-size:11px;color:var(--text-muted);display:block;margin-top:2px}
.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}
.sidebar-section{margin-bottom:24px}
.sidebar-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 8px;margin-bottom:8px;font-weight:600}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;color:var(--text-sidebar);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition);margin-bottom:2px}
.sidebar-link:hover{background:var(--bg-sidebar-hover);color:var(--text-sidebar-active);text-decoration:none}
.sidebar-link.active{background:var(--bg-sidebar-active);color:var(--text-sidebar-active)}
.sidebar-link .icon{width:20px;text-align:center;font-size:16px;opacity:.7}
.sidebar-link.active .icon{opacity:1}
.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.08)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px}
.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:13px}
.sidebar-user-info .name{font-size:13px;font-weight:600;color:var(--text-sidebar-active)}
.sidebar-user-info .role{font-size:11px;color:var(--text-muted)}

.main-content{margin-left:260px;flex:1;min-height:100vh;display:flex;flex-direction:column}
.content-header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:20px 32px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
.content-header h2{font-size:20px;font-weight:700;letter-spacing:-.02em}
.content-header p{font-size:13px;color:var(--text-sec);margin-top:2px}
.content-body{padding:28px 32px;flex:1}

.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.card-header{padding:16px 20px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}
.card-header h3{font-size:15px;font-weight:600}
.card-body{padding:20px}

.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px}
.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;display:flex;align-items:flex-start;gap:14px;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition)}
.stat-card:hover{box-shadow:var(--shadow-md)}
.stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.stat-icon.blue{background:var(--info-bg);color:var(--info)}
.stat-icon.green{background:var(--success-bg);color:var(--success)}
.stat-icon.amber{background:var(--warning-bg);color:var(--warning)}
.stat-icon.red{background:var(--danger-bg);color:var(--danger)}
.stat-content .stat-value{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:4px}
.stat-content .stat-label{font-size:13px;color:var(--text-sec)}

.table-wrapper{overflow-x:auto}
table{width:100%;border-collapse:collapse}
table th{text-align:left;padding:10px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-sec);background:var(--bg);border-bottom:1px solid var(--border)}
table td{padding:12px 16px;font-size:14px;border-bottom:1px solid var(--border-light);vertical-align:middle}
table tbody tr{transition:background var(--transition)} table tbody tr:hover{background:#FAFAF9}

.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;font-family:inherit;border:none;cursor:pointer;text-decoration:none;transition:all var(--transition);line-height:1.4}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:#fff} .btn-primary:hover{background:var(--accent-hover)}
.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)} .btn-secondary:hover{background:var(--border-light)}
.btn-danger{background:var(--danger-bg);color:var(--danger)} .btn-danger:hover{background:#FEE2E2}
.btn-success{background:var(--success-bg);color:var(--success)} .btn-success:hover{background:#DCFCE7}
.btn-sm{padding:5px 10px;font-size:12px}

.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text)}
.form-control{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;background:var(--bg-card);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}
.form-control:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2378716C' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
textarea.form-control{resize:vertical;min-height:80px}
.form-check{display:flex;align-items:center;gap:8px;font-size:14px}
.form-check input[type="checkbox"]{width:16px;height:16px;accent-color:var(--accent)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:600;letter-spacing:.02em}
.badge-success{background:var(--success-bg);color:var(--success)}
.badge-danger{background:var(--danger-bg);color:var(--danger)}
.badge-warning{background:var(--warning-bg);color:var(--warning)}
.badge-info{background:var(--info-bg);color:var(--info)}
.badge-neutral{background:var(--border-light);color:var(--text-sec)}

.alert{padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-size:14px;display:flex;align-items:center;gap:8px}
.alert-success{background:var(--success-bg);color:var(--success);border:1px solid #BBF7D0}
.alert-danger{background:var(--danger-bg);color:var(--danger);border:1px solid #FECACA}

.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.doc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all var(--transition);position:relative}
.doc-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}
.doc-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.doc-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--border-light);flex-shrink:0}
.doc-title{font-size:14px;font-weight:600;line-height:1.4;word-break:break-word}
.doc-meta{font-size:12px;color:var(--text-sec);margin-top:2px}
.doc-description{font-size:13px;color:var(--text-sec);margin-bottom:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border-light)}
.doc-footer .doc-size{font-size:12px;color:var(--text-muted);font-family:'JetBrains Mono',monospace}

.search-bar{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}
.search-input-wrapper{position:relative;flex:1;min-width:240px}
.search-input-wrapper::before{content:"🔍";position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px}
.search-input-wrapper .form-control{padding-left:36px}
.filter-chips{display:flex;gap:6px;flex-wrap:wrap}
.filter-chip{padding:6px 14px;border-radius:99px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--bg-card);color:var(--text-sec);text-decoration:none;transition:all var(--transition);cursor:pointer}
.filter-chip:hover,.filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none}

.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0F1A30,#1B2A4A 50%,#2E4270);padding:20px}
.login-card{background:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:440px;overflow:hidden}
.login-header{padding:36px 36px 24px;text-align:center}
.login-logo{width:56px;height:56px;background:var(--accent);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:26px;color:#fff;font-weight:800;margin-bottom:16px}
.login-header h1{font-size:22px;font-weight:700;letter-spacing:-.03em;margin-bottom:4px}
.login-header p{font-size:14px;color:var(--text-sec)}
.login-body{padding:0 36px 36px}
.login-body .btn-primary{width:100%;padding:11px;font-size:14px;justify-content:center}

.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:40px;text-align:center;transition:all var(--transition);cursor:pointer;background:var(--bg)}
.upload-zone:hover{border-color:var(--accent);background:var(--accent-light)}
.upload-zone .upload-icon{font-size:40px;margin-bottom:12px}
.upload-zone p{font-size:14px;color:var(--text-sec)}
.upload-zone .upload-hint{font-size:12px;color:var(--text-muted);margin-top:4px}

.user-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.user-checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition)}
.user-checkbox-item:hover{border-color:var(--accent);background:var(--accent-light)}

.empty-state{text-align:center;padding:60px 20px;color:var(--text-sec)}
.empty-state .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}
.empty-state h3{font-size:18px;font-weight:600;color:var(--text);margin-bottom:6px}

.mobile-toggle{display:none;background:none;border:none;font-size:24px;cursor:pointer;padding:4px}
@media(max-width:768px){
    .sidebar{transform:translateX(-100%)} .sidebar.open{transform:translateX(0)}
    .main-content{margin-left:0} .mobile-toggle{display:block}
    .content-header{padding:16px 20px} .content-body{padding:20px}
    .form-row{grid-template-columns:1fr} .stats-grid{grid-template-columns:repeat(2,1fr)}
}

.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}
.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.text-sm{font-size:13px}.text-muted{color:var(--text-sec)}
.text-mono{font-family:'JetBrains Mono',monospace}.font-semibold{font-weight:600}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
