:root{
  --tool-card:#ffffff;
  --tool-border:#e2e8f0;
  --tool-text:#0f172a;
  --tool-text-soft:#334155;
  --tool-primary:#0f172a;
  --tool-primary-hover:#1e293b;
  --tool-soft:#f8fafc;
}

textarea::-webkit-scrollbar{
  width:10px;
}

textarea::-webkit-scrollbar-track{
  background:transparent;
}

textarea::-webkit-scrollbar-thumb{
  background:#cbd5e1;
  border-radius:999px;
}

textarea::-webkit-scrollbar-thumb:hover{
  background:#94a3b8;
}

.tool-page-head{
  margin-bottom:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

@media (min-width:640px){
  .tool-page-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
}

.tool-page-title-wrap{
  display:flex;
  align-items:center;
  gap:12px;
}

.tool-format-text{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:13px;
  font-weight:600;
  color:var(--tool-text-soft);
  line-height:1.4;
}

.tool-format-text span{
  color:var(--tool-text);
}

.tool-card{
  border:1px solid var(--tool-border);
  background:var(--tool-card);
  border-radius:24px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}

.tool-card-body{
  padding:16px;
}

@media (min-width:640px){
  .tool-card-body{
    padding:20px;
  }
}

.tool-main-flow{
  border:1px solid var(--tool-border);
  border-radius:22px;
  background:#ffffff;
  padding:14px;
}

@media (min-width:640px){
  .tool-main-flow{
    padding:16px;
  }
}

.tool-row{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.tool-row-head{
  display:flex;
  flex-direction:column;
  gap:10px;
}

@media (min-width:640px){
  .tool-row-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
}

.tool-row-result{
  gap:8px;
}

.tool-divider{
  height:1px;
  background:var(--tool-border);
  margin:12px 0;
}

.tool-title{
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  color:var(--tool-text);
}

.tool-subtitle{
  margin-top:2px;
  font-size:13px;
  line-height:1.4;
  color:var(--tool-text-soft);
}

.tool-upload-row{
  display:flex;
  flex-direction:column;
  gap:8px;
}

@media (min-width:640px){
  .tool-upload-row{
    flex-direction:row;
    align-items:center;
  }
}

.tool-file-name{
  font-size:14px;
  color:var(--tool-text-soft);
  word-break:break-all;
}

.tool-result-top{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.tool-result-text{
  font-size:13px;
  color:var(--tool-text-soft);
  line-height:1.4;
}

.tool-download-row{
  margin-top:2px;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

@media (min-width:640px){
  .tool-download-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.tool-assist{
  margin-top:10px;
  border:1px solid #e8edf3;
  border-radius:20px;
  background:var(--tool-soft);
  padding:10px;
}

.tool-assist-head{
  display:flex;
  flex-direction:column;
  gap:6px;
}

@media (min-width:640px){
  .tool-assist-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
}

.tool-assist-title{
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  color:var(--tool-text);
}

.tool-toggle{
  border:none;
  background:transparent;
  padding:0;
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  color:var(--tool-text-soft);
  line-height:1.35;
  text-align:left;
}

.tool-toggle:focus{
  outline:none;
}

.tool-extra{
  margin-top:8px;
}

.tool-button-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}

@media (min-width:640px){
  .tool-button-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

.tool-panels{
  margin-top:8px;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

@media (min-width:1024px){
  .tool-panels{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.tool-panel{
  border:1px solid var(--tool-border);
  background:#ffffff;
  border-radius:18px;
  padding:10px;
  display:flex;
  flex-direction:column;
  min-height:236px;
}

.tool-panel-head{
  margin-bottom:8px;
  min-height:34px;
  display:flex;
  align-items:center;
}

.tool-panel-head-between{
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}

.tool-textarea{
  width:100%;
  flex:1;
  min-height:180px;
  height:180px;
  resize:none;
  border:1px solid var(--tool-border);
  background:#ffffff;
  color:var(--tool-text);
  border-radius:16px;
  padding:12px;
  font-size:14px;
  line-height:1.55;
  transition:border-color .15s ease, box-shadow .15s ease;
}

.tool-textarea::placeholder{
  color:#64748b;
}

.tool-textarea:focus{
  outline:none;
  border-color:#94a3b8;
  box-shadow:0 0 0 4px rgba(148,163,184,.12);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border-radius:16px;
  padding:0 14px;
  font-size:14px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  transition:background-color .15s ease, border-color .15s ease,
             color .15s ease, transform .05s ease, box-shadow .15s ease;
}

.btn:active{
  transform:scale(.99);
}

.btn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(148,163,184,.12);
}

.btn-primary{
  border:1px solid var(--tool-primary);
  background:var(--tool-primary);
  color:#ffffff;
}

.btn-primary:hover{
  background:var(--tool-primary-hover);
  border-color:var(--tool-primary-hover);
}

.btn-primary-file{
  position:relative;
  overflow:hidden;
  cursor:pointer;
  border:1px solid var(--tool-primary);
  background:var(--tool-primary);
  color:#ffffff;
}

.btn-primary-file:hover{
  background:var(--tool-primary-hover);
  border-color:var(--tool-primary-hover);
}

.btn-secondary{
  border:1px solid var(--tool-border);
  background:#ffffff;
  color:var(--tool-text);
}

.btn-secondary:hover{
  background:#f8fafc;
}

.btn-tool{
  min-height:34px;
  border:1px solid #d7dee7;
  background:#ffffff;
  color:var(--tool-text);
  font-size:12px;
  border-radius:13px;
  padding:0 10px;
}

.btn-tool:hover{
  background:#f8fafc;
}

.btn-small{
  min-height:34px;
  padding:0 12px;
  border-radius:14px;
  font-size:13px;
}

.btn:disabled{
  cursor:not-allowed;
  border-color:var(--tool-border);
  background:#f1f5f9;
  color:#94a3b8;
  box-shadow:none;
}