:root{--dp-green:#2fde8a;--dp-green-600:#15b673;--ink:#0e1a24;--ink-soft:#5b6b75;--line:#e3e9e7;--card:#fff;--bg1:#f5f9f7;--bg2:#e7f1ec;--wordmark:#aeb6be;--amber:#b4791f}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--ink);background:radial-gradient(1100px 600px at 15% -10%, #fff 0%, var(--bg1) 45%, var(--bg2) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;font-family:Poppins,Segoe UI,system-ui,-apple-system,Arial,sans-serif;line-height:1.55;display:flex;position:relative;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(420px 420px at 82% 12%,#2fde8a29,#0000 70%),radial-gradient(520px 520px at 8% 92%,#2fde8a1f,#0000 70%);position:fixed;inset:0}.stage{z-index:1;flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.dp-logo{-webkit-user-select:none;user-select:none;align-items:center;gap:14px;display:flex}.dp-logo svg{flex:none;width:auto;height:52px}.dp-logo img.dp-mark{flex:none;width:auto;height:56px;display:block}.dp-word{letter-spacing:.16em;color:#0000;-webkit-text-stroke:1.4px var(--wordmark);text-stroke:1.4px var(--wordmark);font-size:30px;font-weight:600;line-height:1}.login-card{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:20px;width:100%;max-width:440px;margin-top:26px;padding:38px 34px 34px;box-shadow:0 24px 60px #0e1a241a}.login-card .eyebrow{letter-spacing:.18em;color:var(--dp-green-600);text-transform:uppercase;background:#2fde8a1f;border-radius:999px;margin-bottom:16px;padding:5px 12px;font-size:11px;font-weight:600;display:inline-block}.login-card h1{letter-spacing:-.01em;margin-bottom:6px;font-size:26px;font-weight:700}.login-card .sub{color:var(--ink-soft);margin-bottom:28px;font-size:14px}.logo-badge{background:var(--ink);border-radius:24px;justify-content:center;align-items:center;width:92px;height:92px;margin:0 auto 20px;display:flex;box-shadow:0 12px 28px #0e1a2438}.logo-badge img{object-fit:contain;width:60px;height:60px;display:block}.pin{justify-content:center;gap:11px;margin-bottom:10px;display:flex}.pin input{text-align:center;width:50px;height:62px;color:var(--ink);background:#fff;border:2.5px solid #8c99a2;border-radius:14px;font-family:inherit;font-size:28px;font-weight:800;transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:inset 0 -3px #0e1a240f}.pin input:focus{border-color:var(--dp-green-600);background:#fff;outline:none;box-shadow:0 0 0 4px #2fde8a38}.field{margin-bottom:12px}.field input{width:100%;height:50px;color:var(--ink);background:#fff;border:2px solid #c4cdd3;border-radius:12px;padding:0 16px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--dp-green-600);outline:none;box-shadow:0 0 0 4px #2fde8a2e}.pin.error input{border-color:var(--amber)}.msg{min-height:20px;color:var(--amber);margin:6px 0 20px;font-size:13px}.msg.ok{color:var(--dp-green-600)}button.btn{background:var(--dp-green);color:var(--ink);cursor:pointer;letter-spacing:.01em;border:none;border-radius:14px;width:100%;padding:15px 30px;font-family:inherit;font-size:15.5px;font-weight:700;transition:background .15s,color .15s,transform 50ms,box-shadow .15s;box-shadow:0 8px 20px #2fde8a47}button.btn:hover:not(:disabled){background:var(--dp-green-600);color:#fff;box-shadow:0 10px 24px #15b67352}button.btn:active:not(:disabled){transform:translateY(1px)}button.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.admin-link{color:var(--ink-soft);border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:12px;margin-top:16px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.admin-link:hover{color:var(--ink);border-color:var(--ink-soft);background:#f3f6f5}.foot{color:var(--ink-soft);opacity:.85;margin-top:22px;font-size:11.5px}body.app{justify-content:flex-start;align-items:stretch;padding:0}.appbar{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffdb;align-items:center;gap:14px;padding:13px 26px;display:flex;position:sticky;top:0}.appbar .bar-logo{width:auto;height:34px;display:block}.appbar .bar-title{letter-spacing:-.01em;font-size:18px;font-weight:700}.appbar .signout{margin-left:auto}.content{width:100%;max-width:920px;margin:0 auto;padding:40px 26px 64px}.content-h{font-size:24px;font-weight:700}.content-sub{color:var(--ink-soft);margin:4px 0 26px;font-size:14px}.assess-list{flex-wrap:wrap;gap:22px;display:flex}.abox{background:var(--card);border:1.5px solid var(--line);width:300px;color:var(--ink);cursor:pointer;border-radius:20px;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;box-shadow:0 14px 34px #0e1a2412}.abox:hover{border-color:var(--dp-green);transform:translateY(-4px);box-shadow:0 22px 46px #2fde8a38}.abox-logo{background:#fcf8ee;border:1px solid #ece3d0;border-radius:14px;justify-content:center;align-items:center;width:100%;height:96px;padding:16px 22px;display:flex}.abox-logo img{width:auto;max-width:100%;height:auto;max-height:100%;display:block}.abox-name{font-size:19px;font-weight:700}.abox-meta{color:var(--ink-soft);margin-top:-4px;font-size:12.5px}.abox-cta{color:var(--dp-green-600);letter-spacing:.02em;margin-top:6px;font-size:13px;font-weight:600}.signout{color:var(--ink-soft);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;font-family:inherit;font-size:12.5px;text-decoration:underline}.signout:hover{color:var(--ink)}.toolbar{align-items:center;gap:14px;margin-bottom:16px;display:flex}.toolbar .count{color:var(--ink-soft);font-size:13px}.btn-sm{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600}.btn-sm:hover{background:#1c2c38}.btn-sm.alt{background:var(--dp-green);color:var(--ink)}.btn-sm.alt:hover{background:var(--dp-green-600);color:#fff}.btn-sm:disabled{opacity:.45;cursor:not-allowed}.table-wrap{border:1px solid var(--line);background:var(--card);border-radius:14px;overflow-x:auto;box-shadow:0 14px 34px #0e1a240f}table.resp{border-collapse:collapse;width:100%;min-width:820px;font-size:13px}table.resp th{text-align:left;color:var(--ink);border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#eef4f1;padding:12px 14px;font-weight:600;position:sticky;top:0}table.resp th:hover{color:var(--dp-green-600)}table.resp th .arr{color:var(--dp-green-600);margin-left:5px;font-size:10px}table.resp td{border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle;padding:11px 14px}table.resp tr:last-child td{border-bottom:none}table.resp tbody tr:hover td{background:#fafcfb}.num{text-align:right;font-variant-numeric:tabular-nums}.muted-cell{color:var(--ink-soft)}.view-btn{background:var(--dp-green);color:var(--ink);cursor:pointer;border:none;border-radius:9px;padding:6px 13px;font-family:inherit;font-size:12px;font-weight:700}.view-btn:hover{background:var(--dp-green-600);color:#fff}.dl-btn{color:var(--ink);border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:9px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600}.dl-btn:hover{border-color:var(--ink);background:#f3f6f5}.empty{text-align:center;color:var(--ink-soft);padding:48px 20px}.modal{z-index:50;background:#0e1a2480;justify-content:center;align-items:flex-start;padding:44px 16px;display:none;position:fixed;inset:0;overflow:auto}.modal.open{display:flex}.modal-card{background:var(--card);border-radius:18px;width:100%;max-width:720px;padding:26px 28px 30px;box-shadow:0 30px 70px #0e1a2459}.modal-close{float:right;cursor:pointer;color:var(--ink-soft);background:0 0;border:none;font-size:24px;line-height:1}.modal-close:hover{color:var(--ink)}.modal-card h2{margin-bottom:2px;font-size:21px}.modal-card .muted{color:var(--ink-soft);margin-bottom:6px;font-size:13px}.modal-card h3{letter-spacing:.14em;color:var(--dp-green-600);margin:20px 0 8px;font-size:11.5px;font-weight:600}.modal-card .row-item{margin-bottom:6px;font-size:13.5px}.modal-card .row-item b{font-weight:600}.modal-card .sysdetail{border:1px solid var(--line);background:#f7faf9;border-radius:10px;margin-bottom:10px;padding:12px 14px}.modal-card .sysdetail .line{color:var(--ink-soft);margin-bottom:4px;font-size:13px}.modal-card .sysdetail .line b{color:var(--ink)}
