:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#ff0;--accent-bg:#ffff001f;--accent-border:#ff09;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}p{margin:0}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:2px 6px;font-size:13px}.dashboard{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.dashboard-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:10px;display:flex}.header-brand{cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:0;transition:opacity .15s;display:flex}.logo-icon{object-fit:contain;flex-shrink:0;width:28px;height:28px}.app-title{color:var(--text-h);letter-spacing:-.2px;font-size:16px;font-weight:600}.header-right{align-items:center;gap:10px;display:flex}.name-btn{background:var(--accent);color:#000;cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;transition:opacity .15s;display:flex}.name-btn:hover{opacity:.85}.avatar{color:#ff0;background:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.name-input{border:1px solid var(--accent-border);background:var(--bg);color:var(--text-h);font-size:13px;font-family:var(--sans);box-shadow:0 0 0 3px var(--accent-bg);border-radius:8px;outline:none;padding:6px 12px}.upload-btn{background:var(--accent);color:#000;font-size:13px;font-weight:500;font-family:var(--sans);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;transition:opacity .15s,transform .1s;display:inline-flex}.upload-btn:hover{opacity:.88}.upload-btn:active{transform:scale(.97)}.upload-btn svg{width:15px;height:15px}.dashboard-main{box-sizing:border-box;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:28px 32px}.stats-row{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px;display:grid}.stat-card{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:18px 22px;display:flex}.stat-value{color:var(--text-h);letter-spacing:-.5px;font-size:30px;font-weight:600;line-height:1}.stat-label{color:var(--text);font-size:12px}.table-wrapper{border:1px solid var(--border);border-radius:12px;overflow:hidden}.reports-table{border-collapse:collapse;width:100%;font-size:14px}.reports-table thead{background:var(--code-bg)}.reports-table th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--text);border-bottom:1px solid var(--border);padding:11px 16px;font-size:11px;font-weight:600}.reports-table td{border-bottom:1px solid var(--border);color:var(--text-h);vertical-align:middle;padding:13px 16px}.reports-table tbody tr:last-child td{border-bottom:none}.row-clickable{cursor:pointer}.row-clickable:hover td,.row-clickable.row-expanded td{background:var(--accent-bg)}.row-chevron{width:14px;height:14px;color:var(--text);flex-shrink:0;transition:transform .15s}.row-chevron-open{transform:rotate(90deg)}.expanded-row td{border-bottom:1px solid var(--border);background:var(--code-bg);padding:0}.link-panel{align-items:center;gap:12px;padding:12px 16px;display:flex}.link-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text);white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.link-box{background:var(--bg);border:1px solid var(--border);border-radius:7px;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 10px;display:flex}.link-url{min-width:0;font-size:12px;font-family:var(--mono,monospace);color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:all;user-select:all;flex:1;text-decoration:none;overflow:hidden}.copy-btn{background:var(--accent);color:#000;font-size:12px;font-weight:500;font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;transition:opacity .15s;display:inline-flex}.copy-btn:hover{opacity:.85}.copy-btn svg{width:12px;height:12px}.name-cell{align-items:center;gap:10px;font-weight:500;display:flex}.file-icon{object-fit:contain;flex-shrink:0;width:17px;height:17px}.muted-cell{color:var(--text);font-size:13px}.badge{letter-spacing:.4px;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.badge-pdf{color:#dc2626;background:#ef44441a}.badge-html{color:#2563eb;background:#3b82f61a}.actions-cell{justify-content:flex-end;align-items:center;gap:6px;display:flex}.action-btn{background:var(--accent);color:#000;cursor:pointer;font-size:12px;font-family:var(--sans);border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:5px 10px;transition:opacity .15s;display:inline-flex}.action-btn:hover{opacity:.85}.action-btn svg{width:13px;height:13px}.delete-btn{padding:5px 8px}@media (prefers-color-scheme:dark){.badge-pdf{color:#f87171;background:#f8717126}.badge-html{color:#60a5fa;background:#60a5fa26}}.toast-container{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:72px;right:24px}.toast{color:#fff;border-radius:10px;align-items:center;gap:10px;max-width:320px;padding:12px 16px;font-size:13px;font-weight:500;animation:.25s toast-in,.3s 2.7s forwards toast-out;display:flex;box-shadow:0 4px 12px #00000026}.toast svg{flex-shrink:0;width:15px;height:15px}.toast-success{background:#16a34a}.toast-error{background:#dc2626}@keyframes toast-in{0%{opacity:0;transform:translate(calc(100% + 24px))}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}.pagination{justify-content:center;align-items:center;gap:4px;margin-top:16px;display:flex}.page-btn{border:1px solid var(--border);background:var(--bg);min-width:32px;height:32px;color:var(--text-h);font-size:13px;font-family:var(--sans);cursor:pointer;border-radius:6px;padding:0 8px;transition:background .15s,border-color .15s}.page-btn:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.page-btn:disabled{opacity:.35;cursor:default}.page-btn-active{background:var(--accent);color:#000;border-color:#0000;font-weight:600}.page-btn-active:hover:not(:disabled){background:var(--accent);opacity:.85}.page-ellipsis{min-width:32px;height:32px;color:var(--text);justify-content:center;align-items:center;font-size:13px;display:inline-flex}@media (width<=640px){.dashboard-main{padding:16px}.stats-row{gap:10px}.stat-card{padding:14px 16px}.stat-value{font-size:24px}.reports-table th:nth-child(3),.reports-table td:nth-child(3){display:none}}.nav-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font-size:13px;font-family:var(--sans);cursor:pointer;border-radius:8px;padding:7px 14px;transition:border-color .15s,background .15s}.nav-btn:hover{border-color:var(--accent-border);background:var(--accent-bg)}.logout-btn{border:1px solid var(--border);color:var(--text);font-size:13px;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;transition:border-color .15s,color .15s}.logout-btn:hover{color:#dc2626;border-color:#dc2626}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--bg);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:16px;padding:32px}.login-logo{align-items:center;gap:10px;margin-bottom:28px;display:flex}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-h);font-size:13px;font-weight:500}.form-input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font-size:14px;font-family:var(--sans);border-radius:8px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}.form-error{color:#dc2626;margin:0;font-size:13px}.login-btn{background:var(--accent);color:#000;font-size:14px;font-weight:600;font-family:var(--sans);cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:10px 16px;transition:opacity .15s}.login-btn:hover{opacity:.88}.login-btn:disabled{opacity:.5;cursor:default}.admin-panel{width:100%}.admin-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.admin-title{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.you-badge{background:var(--accent-bg);color:var(--text);letter-spacing:.3px;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.badge-role-Viewer{color:#6b6375;background:#6b63751a}.badge-role-Uploader{color:#2563eb;background:#3b82f61a}.badge-role-Admin{color:#c2410c;background:#ea580c1a}@media (prefers-color-scheme:dark){.badge-role-Viewer{color:#9ca3af;background:#9ca3af26}.badge-role-Uploader{color:#60a5fa;background:#60a5fa26}.badge-role-Admin{color:#fb923c;background:#fb923c26}}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.modal-header{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.modal-title{color:var(--text-h);font-size:15px;font-weight:600}.modal-close{cursor:pointer;width:28px;height:28px;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s;display:flex}.modal-close:hover{background:var(--code-bg)}.modal-close svg{width:14px;height:14px}.modal-body{flex-direction:column;gap:14px;padding:16px 20px 20px;display:flex}.modal-footer{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-cancel-btn{border:1px solid var(--border);color:var(--text-h);font-size:13px;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:8px;padding:9px 16px;transition:background .15s}.modal-cancel-btn:hover{background:var(--code-bg)}.modal-danger-btn{color:#fff;font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:9px 16px;transition:opacity .15s}.modal-danger-btn:hover{opacity:.88}.modal-confirm-text{color:var(--text-h);margin:0;font-size:14px;line-height:1.5}
