*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Arial,sans-serif;background:#f4f3fa;min-height:100vh;padding:2rem 1rem;color:#222}
.hidden{display:none!important}
.wrap{max-width:660px;margin:0 auto}
.auth-wrap{padding-top:8vh}
.header{background:linear-gradient(135deg,#4C3193 0%,#706297 100%);border-radius:14px;padding:1.6rem 2rem;margin-bottom:1.5rem;color:#fff;display:flex;align-items:center;gap:1rem}
.header-logo{width:48px;height:48px;background:rgba(255,255,255,.15);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.header-logo .ti{font-size:26px}
.header h1{font-size:18px;font-weight:600;margin-bottom:3px;letter-spacing:0}
.header p{font-size:12px;opacity:.8;line-height:1.5}
.tab-row{display:flex;gap:6px;margin-bottom:1.25rem;flex-wrap:wrap}
.tab{padding:7px 14px;border-radius:8px;font-size:13px;cursor:pointer;border:1px solid #d0cce8;background:#fff;color:#706297;font-weight:500;transition:all .15s;min-height:36px}
.tab:hover{background:#EEEDFE}
.tab.active-tab{background:#4C3193;color:#fff;border-color:#4C3193}
.tab-admin{border-color:#c8b8f0}
.tab-admin:hover{background:#f0eeff}
.tab-logout{margin-left:auto;color:#777}
.lock-icon{font-size:11px;opacity:.6}
.progress-bar{height:5px;background:#e0ddf0;border-radius:3px;margin-bottom:.5rem;overflow:hidden}
.progress-fill{height:100%;width:14%;background:#4C3193;border-radius:3px;transition:width .35s}
.step-label{font-size:12px;color:#706297;margin-bottom:1.25rem;font-weight:500}
.card{background:#fff;border:1px solid #e5e1f5;border-radius:12px;padding:1.3rem 1.5rem;margin-bottom:1rem;box-shadow:0 1px 4px rgba(76,49,147,.05)}
.auth-card{max-width:420px;margin:0 auto}
.card label.field-label{display:block;font-size:14px;font-weight:600;color:#2d2050;margin-bottom:.6rem}
.hint{font-size:12px;color:#888;margin-bottom:.75rem;margin-top:-4px;line-height:1.5}
select,input[type=text],input[type=password],textarea{width:100%;font-size:14px;padding:9px 12px;border:1px solid #d0cce8;border-radius:8px;background:#faf9ff;color:#222;outline:none;transition:border .15s}
select:focus,input[type=text]:focus,input[type=password]:focus,textarea:focus{border-color:#4C3193;box-shadow:0 0 0 3px rgba(76,49,147,.12)}
textarea{resize:vertical;min-height:90px;line-height:1.6}
.radio-group{display:flex;flex-direction:column;gap:8px}
.radio-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #e5e1f5;border-radius:9px;cursor:pointer;transition:all .15s}
.radio-row:hover{background:#f5f3ff;border-color:#b8b0e0}
.radio-row.selected{background:#EEEDFE;border-color:#706297}
.radio-row input[type=radio]{accent-color:#4C3193;width:16px;height:16px;flex:0 0 16px}
.radio-row span{font-size:14px;color:#333;line-height:1.4}
.rating-line{display:flex;align-items:center;gap:8px}
.star-row{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.star{font-size:32px;cursor:pointer;color:#ddd;transition:color .1s;user-select:none;line-height:1}
.star.lit{color:#F5A623}
.star-val{font-size:13px;color:#888;align-self:center;white-space:nowrap}
.btn-row{display:flex;gap:10px;justify-content:flex-end;margin-top:1.25rem;flex-wrap:wrap}
button{padding:9px 18px;border-radius:8px;font-size:14px;cursor:pointer;border:1px solid #d0cce8;background:#fff;color:#4C3193;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;gap:6px;justify-content:center}
button:hover{background:#f0eeff;border-color:#b8b0e0}
button:disabled{opacity:.65;cursor:not-allowed}
.btn-primary{background:#4C3193;color:#fff;border-color:#4C3193}
.btn-primary:hover{background:#3a2470;border-color:#3a2470}
.btn-danger{background:#fff0f0;color:#b33;border-color:#f5c5c5}
.btn-danger:hover{background:#ffe0e0}
.btn-success{background:#e6f4ea;color:#2d6a3f;border-color:#a8d5b5}
.full-btn{width:100%}
.step{display:none}
.step.active{display:block}
.result-card{background:#fff;border:1px solid #e5e1f5;border-radius:12px;padding:1.5rem;box-shadow:0 1px 4px rgba(76,49,147,.05)}
.result-title{font-weight:700;font-size:15px;color:#2d2050;margin-bottom:1rem}
.result-row{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f0eeff;font-size:13px;gap:1rem}
.result-row:last-child{border-bottom:none}
.result-label{color:#888;flex-shrink:0}
.result-val{font-weight:600;color:#2d2050;text-align:right;overflow-wrap:anywhere}
.star-summary{color:#F5A623}
.comment-summary{max-width:320px;font-size:12px;font-weight:400}
.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}
.badge-yes{background:#e6f4ea;color:#2d6a3f}
.badge-no{background:#fff0f0;color:#b33}
.badge-warn{background:#fff8e1;color:#8a6000}
.badge-purple{background:#EEEDFE;color:#3C3489}
.err{font-size:12px;color:#cc3333;margin-top:6px;display:none;font-weight:500}
.err.show{display:block}
.log-wrap{margin-top:.5rem}
.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}
.log-header h2{font-size:15px;font-weight:600;color:#2d2050}
.log-actions,.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:.75rem}
.log-entry{background:#fff;border:1px solid #e5e1f5;border-radius:10px;padding:1rem 1.25rem;margin-bottom:.75rem;box-shadow:0 1px 3px rgba(76,49,147,.04)}
.log-entry-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:1rem}
.log-entry-name{font-size:14px;font-weight:600;color:#2d2050;overflow-wrap:anywhere}
.log-entry-meta{font-size:11px;color:#aaa;white-space:nowrap}
.log-project{font-size:12px;color:#706297;margin-bottom:8px;font-weight:500}
.log-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:11px;padding:3px 10px;border-radius:12px;background:#f5f3ff;border:1px solid #e0ddf0;color:#555}
.log-comment{font-size:12px;color:#777;margin-top:8px;font-style:italic;line-height:1.5;border-left:3px solid #e0ddf0;padding-left:10px;overflow-wrap:anywhere}
.empty-log{text-align:center;color:#aaa;font-size:14px;padding:2rem 0}
.status-msg{font-size:13px;padding:8px 14px;border-radius:8px;margin-top:10px;display:none}
.status-msg.ok{background:#e6f4ea;color:#2d6a3f;display:block}
.status-msg.err-msg{background:#fff0f0;color:#b33;display:block}
.status-msg.info{background:#EEEDFE;color:#3C3489;display:block}
.success-wrap{background:#fff;border-radius:14px;padding:2.5rem;text-align:center;border:1px solid #e5e1f5}
.success-wrap h2{font-size:18px;font-weight:600;color:#2d2050;margin-bottom:.5rem}
.success-wrap p{font-size:14px;color:#888;line-height:1.6}
.success-icon{width:54px;height:54px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e6f4ea;color:#2d6a3f;font-size:34px;margin-bottom:1rem}
.success-meta{margin-top:1rem;font-size:12px!important;color:#aaa!important}
.submit-row{margin-top:1rem}
.config-note{background:#faf9ff;border:1px dashed #b8b0e0;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}
.config-note p{font-size:12px;color:#706297;line-height:1.6}
.logout-link{font-size:12px;color:#aaa;cursor:pointer;display:inline-flex;align-items:center;gap:4px;margin-top:1rem}
.logout-link:hover{color:#4C3193}
.counter{font-size:12px;background:#EEEDFE;color:#4C3193;padding:2px 10px;border-radius:12px}
.admin-overlay{display:none;position:fixed;inset:0;background:rgba(30,20,60,.6);backdrop-filter:blur(3px);z-index:1000;align-items:center;justify-content:center;padding:1rem}
.admin-overlay.visible{display:flex}
.admin-box{background:#fff;border-radius:16px;padding:2rem;width:300px;text-align:center;box-shadow:0 8px 40px rgba(76,49,147,.2)}
.admin-box .lock{font-size:38px;color:#4C3193;margin-bottom:.75rem}
.admin-box h2{font-size:16px;font-weight:700;color:#2d2050;margin-bottom:.25rem}
.admin-box p{font-size:12px;color:#aaa;margin-bottom:1.25rem;line-height:1.5}
.admin-box input{text-align:center;letter-spacing:2px;font-size:15px;margin-bottom:.5rem}
.admin-err{font-size:12px;color:#b33;margin-bottom:.75rem;min-height:16px}
.cancel-link{font-size:12px;color:#aaa;cursor:pointer;margin-top:.75rem;display:inline-block}
.cancel-link:hover{color:#4C3193}
@media (max-width:640px){
  body{padding:1rem}
  .header{padding:1.25rem;align-items:flex-start}
  .tab-logout{margin-left:0}
  .log-header{align-items:flex-start;flex-direction:column}
  .result-row{flex-direction:column;gap:.35rem}
  .result-val{text-align:left}
  .rating-line{align-items:flex-start;flex-direction:column}
}
