:root{--bg:#f4f6fb;--surface:#fff;--border:#e4e8f0;--text:#172033;--muted:#6b7489;--primary:#4f46e5;--primary-soft:#eef0ff;color:var(--text);font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,p{margin:0}.header{background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex}.brand-logo{height:40px;display:block}.user{align-items:center;gap:8px;font-weight:500;display:flex}.user-avatar{background:var(--primary-soft);width:32px;height:32px;color:var(--primary);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.page{max-width:1120px;margin:0 auto;padding:28px 20px 48px}.page-title h1{font-size:24px;font-weight:700}.page-title{margin-bottom:20px}.page-title p{color:var(--muted);margin-top:4px}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:20px;padding:22px;box-shadow:0 1px 2px #1720330a,0 4px 16px #1720330d}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.card-header h2{font-size:16px;font-weight:600}.card-header p{margin-top:2px}.card-footer{justify-content:flex-end;margin-top:16px;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;padding:9px 18px;font-weight:600}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.92)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-outline{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:#fafbfe;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:36px 20px;transition:border-color .15s,background .15s;display:flex}.dropzone:hover,.dropzone.dragging{border-color:var(--primary);background:var(--primary-soft)}.dropzone.has-file{border-style:solid;border-color:var(--primary)}.dropzone-icon{margin-bottom:4px;font-size:32px}.small{font-size:12px}.search{font:inherit;border:1px solid var(--border);border-radius:10px;outline:none;width:260px;max-width:100%;padding:9px 12px}.search:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);background:#f8f9fc;padding:10px 12px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfe}.empty{text-align:center;color:var(--muted);padding:28px}.person{align-items:center;gap:12px;display:flex}.person-name{font-weight:600}.person-avatar{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.btn-small{padding:6px 12px;font-size:13px}a{color:var(--primary);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}.auth-page{--auth-blue:#0a66f5;--auth-blue-dark:#0052cc;background:#e9edf3;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--surface);border-radius:16px;width:100%;max-width:400px;overflow:hidden;box-shadow:0 10px 40px #1720331f}.auth-card:before{content:"";background:linear-gradient(90deg,#a8c60f,#f0901e 50%,#0a66f5);height:5px;display:block}.auth-card-header{text-align:center;border-bottom:1px solid var(--border);padding:22px 34px 17px}.auth-logo{height:50px;margin:0 auto 8px;display:block}.auth-card-header h1{color:#111827;font-size:21px;font-weight:700}.auth-card-body{flex-direction:column;gap:16px;padding:24px 34px 26px;display:flex}.auth-intro{color:#4b5563;font-size:15px}.auth-text{color:var(--muted);margin-top:-10px}.btn-auth{background:var(--auth-blue);width:100%;font:inherit;text-align:center;cursor:pointer;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700;display:block;color:#fff!important;text-decoration:none!important}.btn-auth:hover{background:var(--auth-blue-dark)}a.btn{text-align:center;text-decoration:none;display:block}.toast{--toast-color:#e5484d;z-index:100;background:var(--surface);border-radius:10px;width:380px;max-width:calc(100vw - 40px);animation:.25s ease-out toast-in;position:fixed;top:20px;right:20px;overflow:hidden;box-shadow:0 8px 30px #1720332e}.toast-success{--toast-color:#22a35a}.toast-body{align-items:flex-start;gap:14px;padding:22px 18px 22px 20px;display:flex}.toast-icon{background:var(--toast-color);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:15px;font-weight:800;display:grid}.toast-text{color:#6b7280;white-space:pre-line;flex:1;margin-top:3px;font-size:15px}.toast-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}.toast-close:hover{color:#374151}.toast-timer{background:var(--toast-color);transform-origin:0;height:5px;animation:linear forwards toast-timer}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}}
