:root{--bg: #f0ebf8;--card: #ffffff;--line: #dadce0;--ink: #202124;--muted: #5f6368;--accent: #673ab7;--accent-dk: #5b2ca8;--accent-sf: #f3edfd;--danger: #d93025;--ok: #188038;--radius: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Roboto,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent)}.page{max-width:760px;margin:0 auto;padding:24px 14px 96px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px 32px;margin-bottom:18px;box-shadow:0 1px 2px #3c40430d;transition:box-shadow .2s}.card:hover{box-shadow:0 1px 4px #3c40431a}@media (max-width: 600px){.card{padding:22px 20px}}.card-head{border-top:10px solid var(--accent);padding-top:28px;padding-bottom:32px}.card-head h1{margin:0 0 12px;font-size:32px;font-weight:400;line-height:1.3;color:var(--ink)}.card-head p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.sect-title{margin:26px 0 12px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.q-label{font-size:17px;line-height:1.5;color:var(--ink);margin-bottom:8px;font-weight:400;text-wrap:pretty}.req{color:var(--danger);margin-left:4px;font-weight:400}.q-hint{font-size:13px;color:#70757a;margin-bottom:16px;line-height:1.4}.q-err{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--danger);font-size:13px}.q-err:before{content:"!";width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.inp{width:100%;max-width:480px;border:none;border-bottom:1px solid #dadce0;background:transparent;padding:10px 4px;font:inherit;font-size:16px;color:var(--ink);border-radius:0;transition:border-color .2s ease}.inp:hover{border-bottom-color:#bdc1c6}.inp:focus{outline:none;border-bottom:2px solid var(--accent);padding-bottom:9px}.inp.bad{border-bottom-color:var(--danger)}.inp::placeholder{color:#9aa0a6;opacity:1}.inp-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.inp-row .sfx{font-size:14px;color:var(--muted)}.inp.small{max-width:150px}select.inp{border:1px solid #dadce0;border-radius:4px;padding:12px 14px;max-width:100%;background:#fff;cursor:pointer;font-size:15px}select.inp:hover{border-color:#bdc1c6}select.inp:focus{border:2px solid var(--accent);box-shadow:none;padding:11px 13px}select.inp:disabled{background:#f8f9fa;color:#9aa0a6;cursor:not-allowed;border-color:#e8eaed}.opts{display:flex;flex-direction:column;gap:0;margin-top:12px}.opt{display:flex;align-items:flex-start;gap:14px;padding:12px 8px;border-radius:4px;cursor:pointer;font-size:15px;line-height:1.5;color:var(--ink)}.opt:hover{background:#f1f3f4}.opt input{position:absolute;opacity:0;width:0;height:0}.opt .box{width:20px;height:20px;flex:none;margin-top:1px;border:2px solid #5f6368;background:#fff;display:grid;place-items:center;transition:border-color .15s,background .15s}.opt .box.circle{border-radius:50%}.opt .box.square{border-radius:2px}.opt input:focus-visible+.box{box-shadow:0 0 0 3px var(--accent-sf)}.opt input:checked+.box.circle{border-color:var(--accent)}.opt input:checked+.box.circle:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent)}.opt input:checked+.box.square{border-color:var(--accent);background:var(--accent)}.opt input:checked+.box.square:after{content:"";width:11px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}.opt input:checked~span{color:var(--ink)}.btn{border:none;border-radius:4px;cursor:pointer;background:var(--accent);color:#fff;padding:11px 26px;font-size:15px;font-weight:500;font-family:inherit;transition:background .15s,box-shadow .15s}.btn:hover{background:var(--accent-dk);box-shadow:0 1px 3px #3c40434d}.btn:disabled{background:#bdc1c6;cursor:not-allowed;box-shadow:none}.btn-text{background:transparent;color:var(--accent);padding:11px 14px;font-weight:500}.btn-text:hover{background:var(--accent-sf);box-shadow:none}.btn-wide{width:100%}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}.actions .note{font-size:13px;color:var(--muted)}.gate{max-width:560px;margin:40px auto 0}.gate h1{margin:0 0 8px;font-size:27px;font-weight:500}.gate p.sub{margin:0 0 24px;color:var(--muted);font-size:14.5px}.gate .fld{margin-bottom:20px}.gate .fld>label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}.locked .q-hint{color:var(--muted)}.locked .inp{color:var(--muted);background:transparent}.alert{border-radius:var(--radius);padding:13px 16px;margin-bottom:14px;font-size:14px;border:1px solid;background:#fce8e6;border-color:#f5c6c2;color:#b3261e}.done{text-align:center;padding:46px 26px}.done .tick{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:#e6f4ea;color:var(--ok);display:grid;place-items:center;font-size:30px;font-weight:700}.done h2{margin:0 0 8px;font-size:22px;font-weight:500}.done p{margin:0 0 24px;color:var(--muted);font-size:15px}.done .reg{display:inline-block;padding:10px 20px;margin-bottom:24px;background:var(--accent-sf);border-radius:6px;font-size:18px;font-weight:500;color:var(--accent-dk)}.progress{margin-bottom:14px}.progress .bar{height:6px;background:#dcd5ea;border-radius:3px;overflow:hidden}.progress .bar>i{display:block;height:100%;background:var(--accent);transition:width .3s ease}.progress .txt{font-size:13px;color:var(--muted);margin-top:6px}.wrap-wide{max-width:1400px;margin:0 auto;padding:20px 16px 60px}.topbar{background:var(--accent);color:#fff;padding:18px 16px}.topbar-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.topbar h1{margin:0;font-size:20px;font-weight:500}.topbar p{margin:3px 0 0;opacity:.85;font-size:13px}.topbar a{color:#fff;font-size:14px}.login-box{max-width:400px;margin:70px auto}.login-box h2{margin:0 0 6px;font-size:21px;font-weight:500}.login-box p.sub{margin:0 0 22px;color:var(--muted);font-size:14px}.login-box .fld{margin-bottom:18px}.login-box .fld>label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}.cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.stat{flex:1 1 180px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px}.stat .n{font-size:26px;font-weight:500;color:var(--accent-dk);line-height:1.15}.stat .l{font-size:13px;color:var(--muted);margin-top:3px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .inp{flex:1 1 260px;max-width:none;border:1px solid var(--line);border-radius:4px;padding:10px 12px;background:#fff}.toolbar .inp:focus{border:1px solid var(--accent);padding-bottom:10px}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;max-height:66vh}table{border-collapse:collapse;width:100%;font-size:14px}thead th{position:sticky;top:0;z-index:2;background:var(--accent-sf);color:var(--accent-dk);text-align:left;padding:11px 13px;font-weight:500;white-space:nowrap;border-bottom:1px solid var(--line)}tbody td{padding:10px 13px;border-bottom:1px solid #eceff1;vertical-align:top}tbody tr:hover{background:#faf8fe}.mono{font-family:Roboto Mono,Consolas,monospace;font-size:13px}.empty{padding:40px;text-align:center;color:var(--muted)}.pager{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:14px;font-size:13px;color:var(--muted)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#2021248c;display:flex;align-items:flex-start;justify-content:center;padding:34px 14px;overflow:auto;z-index:50}.modal{background:#fff;border-radius:var(--radius);max-width:820px;width:100%;overflow:hidden}.modal header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;background:var(--accent-sf);border-bottom:1px solid var(--line)}.modal header h3{margin:0;font-size:16px;font-weight:500;color:var(--accent-dk)}.modal .body{padding:10px 20px 22px}.modal h4{margin:18px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kv{display:flex;gap:14px;padding:7px 0;border-bottom:1px solid #f1f3f4;font-size:14px}.kv .k{flex:0 0 52%;color:var(--muted)}.kv .v{flex:1;font-weight:500}@media print{.topbar,.toolbar,.actions,.progress{display:none}body{background:#fff}}
