@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#18211d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#176b49;--green-dark:#11563a;--green-soft:#e8f4ee;--border:#dfe8e3;--muted:#68766f;--danger:#c63d45;background:#f4f7f5;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}.admin-shell{grid-template-columns:270px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:radial-gradient(circle at 15% 5%,#52bc894d,#0000 28%),#102b20;flex-direction:column;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0}.sidebar nav{flex:1}.sidebar-footer{border-top:1px solid #a9c3b733;padding-top:12px}.sidebar-api-url{color:#789989;text-overflow:ellipsis;white-space:nowrap;margin:8px 12px 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;overflow:hidden}.brand{align-items:center;gap:12px;margin-bottom:46px;display:flex}.brand-mark{color:#113d2a;background:#79d9a9;border-radius:13px;place-items:center;width:42px;height:42px;font-family:Manrope,sans-serif;font-size:21px;font-weight:800;display:grid}.brand strong,.brand span{display:block}.brand strong{font-family:Manrope,sans-serif;font-size:16px}.brand span{color:#a9c3b7;margin-top:2px;font-size:12px}.nav-label{color:#789989;letter-spacing:.12em;text-transform:uppercase;margin:0 12px 10px;font-size:11px;font-weight:700}.nav-item{color:#a9c3b7;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.nav-item.active{color:#fff;background:#79d9a926}.nav-item svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:22px}.nav-item span,.nav-item strong,.nav-item small{display:block}.nav-item strong{font-size:14px}.nav-item small{color:#789989;margin-top:2px;font-size:11px}.main-content{min-width:0;padding:48px clamp(24px,5vw,72px)}.page-header{justify-content:space-between;align-items:flex-end;gap:32px;max-width:1280px;margin:0 auto 28px;display:flex}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px;font-size:12px;font-weight:700}.page-header h1{letter-spacing:-.04em;margin:0 0 7px;font-family:Manrope,sans-serif;font-size:clamp(30px,4vw,42px)}.page-header>div>p:last-child{color:var(--muted);margin:0}.header-actions{align-items:stretch;gap:12px;display:flex}.admin-account{border:1px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;align-items:flex-start;min-width:210px;padding:12px 16px;display:flex}.admin-account span{color:var(--muted);font-size:11px}.admin-account strong{color:#293a32;margin:3px 0 7px;font-size:12px}.admin-account button{color:var(--danger);background:0 0;border:0;padding:0;font-size:11px;font-weight:700}.total-badge{border:1px solid var(--border);min-width:130px;color:var(--muted);background:#fff;border-radius:14px;padding:14px 18px;font-size:12px;box-shadow:0 7px 24px #13422d0d}.total-badge span{color:#1b2c24;margin-bottom:3px;font-family:Manrope,sans-serif;font-size:24px;font-weight:800;display:block}.content-card{border:1px solid var(--border);background:#fff;border-radius:18px;max-width:1280px;margin:0 auto;overflow:hidden;box-shadow:0 16px 40px #16432f0f}.toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding:22px 24px;display:flex}.filter-form label{color:#526159;margin-bottom:7px;font-size:12px;font-weight:700;display:block}.filter-controls{gap:8px;display:flex}.filter-controls input{color:#1b2c24;background:#fbfdfc;border:1px solid #cad7d0;border-radius:9px;outline:none;width:min(320px,45vw);padding:10px 12px}.filter-controls input:focus{border-color:#4a9d78;box-shadow:0 0 0 3px #4a9d781f}.button{border:1px solid #0000;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700}.button-primary{color:#fff;background:var(--green)}.button-primary:hover{background:var(--green-dark)}.button-secondary{color:#415048;background:#fff;border-color:#d6e1db}.button-secondary:hover:not(:disabled){background:#f4f8f6}.button-danger{color:#fff;background:var(--danger)}.alert{border-radius:9px;justify-content:space-between;gap:20px;margin:16px 24px 0;padding:11px 14px;font-size:13px;display:flex}.alert-success{color:#176342;background:#e8f7ef}.alert-error{color:#9e2c34;background:#fff0f1}.alert button{color:inherit;background:0 0;border:0;padding:0;font-size:12px;font-weight:700}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th{color:#74827b;letter-spacing:.07em;text-transform:uppercase;background:#f8faf9;padding:13px 24px;font-size:11px;font-weight:700}td{color:#526159;border-top:1px solid #edf1ef;padding:15px 24px;font-size:13px}.image-cell{color:var(--green);align-items:center;gap:12px;font-weight:700;text-decoration:none;display:flex}.image-cell img,.modal-image img{object-fit:cover;background:#edf1ef}.image-cell img{border-radius:10px;width:58px;height:58px}.device-id{color:#293a32;text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;display:inline-block;overflow:hidden}.purchase-details-value{color:#33453c;overflow-wrap:anywhere;white-space:pre-wrap;width:min(680px,55vw);max-height:240px;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55;overflow:auto}.purchase-date{min-width:170px}.score{min-width:34px;height:30px;color:var(--green-dark);background:var(--green-soft);border-radius:8px;place-items:center;font-weight:800;display:inline-grid}.actions-heading,.actions-cell{text-align:right}.delete-button{color:#ae343c;background:#fff7f8;border:1px solid #f0cbd0;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700}.delete-button:hover{background:#ffedef;border-color:#e9aeb5}.empty-state{color:#7d8b84;text-align:center;height:220px}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.pagination p{color:var(--muted);margin:0;font-size:13px}.pagination>div{gap:8px;display:flex}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#091b13a3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:17px;width:min(440px,100%);padding:28px;box-shadow:0 24px 70px #03140c4d}.warning-icon{color:#b62e37;background:#ffeaec;border-radius:50%;place-items:center;width:42px;height:42px;font-size:22px;font-weight:800;display:grid}.modal h2{margin:17px 0 8px;font-family:Manrope,sans-serif;font-size:22px}.modal-body>p{color:var(--muted);margin:0;line-height:1.55}.modal-image{color:#405048;background:#f4f7f5;border-radius:11px;align-items:center;gap:12px;margin-top:18px;padding:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;display:flex;overflow:hidden}.modal-image img{border-radius:8px;flex:none;width:48px;height:48px}.modal-image span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.modal-actions{justify-content:flex-end;gap:9px;margin-top:25px;display:flex}.login-page{background:radial-gradient(circle at 20% 15%,#79d9a938,#0000 30%),radial-gradient(circle at 85% 85%,#176b4926,#0000 28%),#f2f7f4;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--border);background:#fff;border-radius:22px;width:min(430px,100%);padding:42px;box-shadow:0 24px 70px #0f422b1f}.login-brand-mark{color:#fff;background:var(--green);border-radius:14px;place-items:center;width:48px;height:48px;margin-bottom:26px;font-family:Manrope,sans-serif;font-size:23px;font-weight:800;display:grid}.login-card h1{letter-spacing:-.04em;margin:0 0 9px;font-family:Manrope,sans-serif;font-size:32px}.login-intro{color:var(--muted);margin:0 0 28px;font-size:14px}.login-form{flex-direction:column;display:flex}.login-form label{color:#415048;margin:15px 0 7px;font-size:12px;font-weight:700}.login-form input{color:#1b2c24;background:#fbfdfc;border:1px solid #cad7d0;border-radius:10px;outline:none;width:100%;padding:12px 13px}.login-form input:focus{border-color:#4a9d78;box-shadow:0 0 0 3px #4a9d781f}.login-button{width:100%;margin-top:24px;padding:12px 16px}.login-error{color:#9e2c34;background:#fff0f1;border-radius:9px;padding:11px 13px;font-size:13px}.login-card{position:relative}.login-settings-button{border:1px solid var(--border);width:38px;height:38px;color:var(--muted);background:#fff;border-radius:10px;place-items:center;display:grid;position:absolute;top:20px;right:20px}.login-settings-button:hover{color:var(--green);background:#f4f8f6}.login-settings-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:19px;height:19px}.settings-form{flex-direction:column;margin-top:18px;display:flex}.settings-form label{color:#415048;margin-bottom:7px;font-size:12px;font-weight:700}.settings-form input{color:#1b2c24;background:#fbfdfc;border:1px solid #cad7d0;border-radius:10px;outline:none;width:100%;padding:11px 13px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.settings-form input:focus{border-color:#4a9d78;box-shadow:0 0 0 3px #4a9d781f}.settings-hint{color:var(--muted);margin:9px 0 0;font-size:12px;line-height:1.5}.settings-form .login-error{margin-top:12px}@media (width<=800px){.admin-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:16px 20px;position:static}.brand{margin-bottom:14px}.nav-label,.nav-item small,.sidebar-api-url{display:none}.nav-item{width:auto;display:inline-flex}.main-content{padding:28px 16px}.page-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:space-between}.toolbar{flex-direction:column;align-items:stretch}.filter-controls input{width:100%}.refresh-button{align-self:flex-start}}@media (width<=520px){.total-badge{min-width:110px}.admin-account{flex:1;min-width:0}.login-card{padding:30px 24px}.filter-controls{flex-wrap:wrap}.filter-controls input{flex-basis:100%}.pagination{flex-direction:column;align-items:flex-start;gap:14px}}
