:root{
  --gf-primary:#673ab7;
  --gf-primary-light:#f0ebf8;
  --gf-text:#202124;
  --gf-subtext:#5f6368;
  --gf-border:#dadce0;
  --gf-card:#ffffff;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:'Roboto','Google Sans',Arial,sans-serif;
  background:var(--gf-primary-light);
  color:var(--gf-text);
}

.topbar{
  height:64px;
  background:#fff;
  border-bottom:1px solid #e0e0e0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 20px;
  position:sticky;
  top:0;
  z-index:20;
}

.brand{font-family:'Google Sans',Roboto,Arial,sans-serif;text-decoration:none;color:#3c4043;font-weight:500}
.logo-dot{width:12px;height:12px;border-radius:50%;background:var(--gf-primary);margin-right:10px}
.topbar-left{display:flex;align-items:center}

.icon-btn{
  border:0;
  background:#fff;
  color:#5f6368;
  padding:8px;
  border-radius:50%;
  cursor:pointer;
}
.icon-btn:hover{background:rgba(103,58,183,.08);color:var(--gf-primary)}
.icon-btn .style-icon-svg{width:16px;height:16px;display:block;fill:currentColor}

.app-shell{max-width:900px;margin:24px auto;padding:0 16px}

.form-header-card,
.question-card{
  background:var(--gf-card);
  border-radius:12px;
  box-shadow:0 1px 2px rgba(60,64,67,.3),0 1px 3px rgba(60,64,67,.15);
  margin-bottom:16px;
  border:1px solid #e8eaed;
}

.form-accent{
  height:10px;
  background:var(--gf-primary);
  border-radius:12px 12px 0 0;
}

.title-input,.desc-input,.q-title{
  width:100%;
  border:0;
  padding:14px 16px;
  font-size:15px;
  outline:none;
  color:var(--gf-text);
}

.title-input{font-size:32px;line-height:1.2;font-family:'Google Sans',Roboto,Arial,sans-serif}
.desc-input{color:var(--gf-subtext)}

input:focus,textarea:focus{
  box-shadow:inset 0 -2px 0 var(--gf-primary);
}

.custom-select{position:relative}
.select-trigger{
  background:#fff;
  border:1px solid var(--gf-border);
  border-radius:8px;
  padding:10px 12px;
  cursor:pointer;
}
.select-trigger:hover{border-color:var(--gf-primary)}

.select-menu{
  position:absolute;
  right:0;
  left:auto;
  top:44px;
  background:#fff;
  border:1px solid var(--gf-border);
  border-radius:8px;
  min-width:220px;
  box-shadow:0 4px 12px rgba(60,64,67,.3);
  z-index:50;
}
.select-menu button{
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:#fff;
  padding:10px 12px;
  cursor:pointer;
}
.select-menu button:hover{background:rgba(103,58,183,.08);color:var(--gf-primary)}

.modal{position:fixed;inset:0;z-index:100}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.modal-panel{
  position:absolute;
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(720px,92vw);
  background:#fff;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.modal-head,.modal-foot{padding:12px 16px;border-bottom:1px solid #eee}
.modal-foot{border-top:1px solid #eee;border-bottom:0;text-align:right}

.modal-tabs{display:flex;gap:8px;padding:10px 16px}
.tab{
  border:1px solid var(--gf-border);
  background:#fff;
  border-radius:20px;
  padding:6px 12px;
  cursor:pointer;
}
.tab.active{border-color:var(--gf-primary);color:var(--gf-primary);background:rgba(103,58,183,.08)}

.modal-body{padding:16px}
.tab-pane{display:none}
.tab-pane.active{display:block}

.btn-primary{
  background:var(--gf-primary);
  color:#fff;
  border:0;
  padding:10px 14px;
  border-radius:4px;
  cursor:pointer;
}
.btn-primary:hover{box-shadow:0 1px 3px rgba(103,58,183,.35)}

.auth-page {
  min-height: 100vh;
}

.auth-wrap {
  min-height: calc(100vh - 64px);
  display: grid;
  place-items: center;
  padding: 24px 16px;
}

.auth-card {
  width: 100%;
  max-width: 520px;
  background: var(--gf-card);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(60,64,67,.3),0 1px 3px rgba(60,64,67,.15);
  border: 1px solid #e8eaed;
  overflow: hidden;
}

.auth-content {
  padding: 22px;
}

.auth-title {
  margin: 0 0 8px;
  font-family: 'Google Sans',Roboto,Arial,sans-serif;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: .2px;
}

.auth-subtitle {
  margin: 0 0 18px;
  color: var(--gf-subtext);
  font-size: 14px;
}

.auth-form {
  display: grid;
  gap: 0;
}

.auth-field {
  display: block;
  margin-bottom: 14px;
}

.auth-label {
  display: block;
  font-size: 13px;
  color: var(--gf-subtext);
  margin-bottom: 6px;
}

.auth-input {
  width: 100%;
  border: 1px solid var(--gf-border);
  border-radius: 4px;
  padding: 12px 12px;
  font-size: 15px;
  outline: none;
  background: #fff;
  color: var(--gf-text);
  transition: border-color .15s ease, box-shadow .15s ease;
}

.auth-input:focus {
  border-color: var(--gf-primary);
  box-shadow: 0 0 0 2px rgba(103,58,183,.18);
}

.auth-error {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 4px;
  background: #fdecee;
  color: #b00020;
  font-size: 14px;
  border-left: 4px solid #b00020;
}

.auth-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}

.auth-link {
  font-size: 14px;
  color: var(--gf-primary);
  text-decoration: none;
}

.auth-link:hover {
  text-decoration: underline;
}

.auth-submit {
  min-width: 92px;
  border-radius: 4px;
  font-weight: 500;
  padding: 10px 16px;
}

.forms-like {
  background: #ede7f6;
}

.auth-shell {
  min-height: calc(100vh - 64px);
  display: grid;
  place-items: center;
  padding: 32px 16px;
}

.forms-card {
  max-width: 640px;
  border-radius: 8px;
  border: 1px solid #dadce0;
  box-shadow: 0 1px 2px rgba(60,64,67,.15);
}

.auth-accent {
  height: 10px;
  background: #673ab7;
}
