:root{--primary:#5b5ce2;--dark:#172033;--muted:#768098;--bg:#f5f7fb;--red:#e5484d}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--dark)}a{text-decoration:none;color:inherit}.topbar{height:68px;background:#fff;border-bottom:1px solid #e8ebf2;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1200px)/2));position:sticky;top:0;z-index:5}.brand{font-size:20px;font-weight:800;color:var(--primary)}nav{display:flex;gap:22px;align-items:center}nav a:hover{color:var(--primary)}nav span{padding-left:20px;border-left:1px solid #ddd}.container{max-width:1200px;margin:0 auto;padding:34px 22px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.page-head h1{margin:0;font-size:30px}.page-head p{color:var(--muted);margin:7px 0}.actions{display:flex;gap:10px}.btn{display:inline-block;border:1px solid #dfe3ed;background:#fff;color:var(--dark);padding:10px 16px;border-radius:9px;cursor:pointer;font-weight:600}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.small{padding:7px 10px;font-size:13px}.btn.wide{width:100%;margin-top:10px}.stats{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;margin-bottom:24px}.stat,.card{background:#fff;border:1px solid #e7eaf1;border-radius:14px;padding:22px;box-shadow:0 4px 18px rgba(31,40,74,.04)}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:25px;margin:8px 0}.progress{height:7px;border-radius:6px;background:#eceefa;margin-top:14px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,#5b5ce2,#8c6ff7)}.toolbar{display:flex;align-items:center;gap:15px;margin:24px 0}.toolbar form{flex:1}.search{width:100%;padding:12px 16px;border:1px solid #dde2ed;border-radius:10px;background:#fff;font-size:15px}.toolbar>span{color:var(--muted)}.file-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.file-card{background:#fff;border:1px solid #e4e7ef;border-radius:13px;overflow:hidden;min-width:0}.file-card:hover{box-shadow:0 8px 24px rgba(31,40,74,.09);transform:translateY(-1px)}.file-main{display:flex;flex-direction:column;padding:20px;min-width:0}.file-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:12px}.file-main small{color:var(--muted);margin-top:7px}.icon{font-size:36px}.card-actions{border-top:1px solid #edf0f5;padding:10px;display:flex;gap:10px}.card-actions button,.card-actions a{border:0;background:none;font-size:12px;color:#59647a;cursor:pointer;padding:3px}.card-actions .red{color:var(--red)}.empty{grid-column:1/-1;text-align:center;padding:70px;color:var(--muted)}.empty span{font-size:60px}.empty h3{color:var(--dark)}.alert{padding:13px 16px;border-radius:9px;margin:15px 0}.alert.success{background:#e7f8ed;color:#18753c}.alert.danger{background:#ffebec;color:#a82429}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px;border-bottom:1px solid #edf0f5}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{padding:5px 9px;border-radius:20px;font-size:12px}.badge.ok{background:#e7f8ed;color:#18753c}.badge.off{background:#eee;color:#666}dialog{border:0;border-radius:15px;padding:0;box-shadow:0 30px 80px #17203355;width:min(460px,92vw)}dialog::backdrop{background:#17203388}.modal-form{padding:25px;display:grid;gap:16px}.modal-form h2{margin:0}.modal-form label:not(.check){display:grid;gap:7px;font-weight:600}.modal-form input{padding:11px;border:1px solid #dce1eb;border-radius:8px;font-size:15px}.drop{padding:28px;border:2px dashed #c9cfea;border-radius:10px;text-align:center}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#8586f1,transparent 35%),linear-gradient(145deg,#eef0ff,#f9faff)}.login-card{width:min(420px,92vw);background:#fff;padding:38px;border-radius:20px;box-shadow:0 20px 60px #34357b22}.login-card h1{text-align:center;margin:8px}.login-card>p{text-align:center;color:var(--muted);margin-bottom:25px}.login-card label{display:grid;gap:8px;margin:16px 0;font-weight:600}.login-card input{padding:13px;border:1px solid #dce1eb;border-radius:9px}.brand-mark{text-align:center;font-size:48px;color:var(--primary)}@media(max-width:850px){.file-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.page-head{align-items:flex-start;gap:15px;flex-direction:column}.topbar nav span{display:none}}@media(max-width:520px){.file-grid{grid-template-columns:1fr}.topbar{padding:0 12px}.topbar nav{gap:10px;font-size:13px}.brand{font-size:0}.brand:first-letter{font-size:24px}.actions{width:100%}.actions .btn{flex:1}.container{padding:24px 14px}}

