@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Poppins:wght@600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
  --rf-dark:#2B2420;
  --rf-dark2:#221C18;
  --rf-card-top:#3D342C;
  --rf-off:#FAF6F0;
  --rf-cta:#C1633B;
  --rf-cta-deep:#A84F2E;
  --rf-sage:#8FA890;
  --rf-sage-deep:#6F8A73;
  --rf-slate:#A0907E;
  --rf-warm:#CBBFAF;
  --rf-line:rgba(250,246,240,.09);
  --rf-line-light:#E4D9C8;
  --rf-muted:#6B6055;
  --rf-danger:#C1633B;
  --sidebar-w:236px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Inter',sans-serif;
  background:var(--rf-off);
  color:var(--rf-dark);
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit;font-size:14px}
a{color:inherit}

/* ============ APP SHELL ============ */
#app{display:flex;min-height:100vh}

/* Sidebar */
#sidebar{
  width:var(--sidebar-w);
  flex-shrink:0;
  background:var(--rf-dark);
  color:var(--rf-off);
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
#sidebar .brand{
  display:flex;align-items:center;gap:8px;
  padding:20px 18px 14px;
  border-bottom:1px solid var(--rf-line);
}
#sidebar .brand .logo-mark{
  width:30px;height:30px;border-radius:9px;
  background:linear-gradient(135deg,var(--rf-cta),var(--rf-cta-deep));
  display:flex;align-items:center;justify-content:center;
  font-family:'Poppins',sans-serif;font-weight:800;font-size:15px;color:#fff;
  flex-shrink:0;
}
#sidebar .brand .name{font-family:'Poppins',sans-serif;font-weight:700;font-size:16px}
#sidebar .brand .name b{color:var(--rf-cta)}
#sidebar .brand .ver{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--rf-slate);margin-top:1px}

#sidebar nav{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:2px}
#sidebar .nav-group-label{
  font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;
  color:var(--rf-slate);text-transform:uppercase;padding:14px 10px 6px;
}
#sidebar .nav-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:9px;
  font-size:13px;font-weight:500;color:var(--rf-warm);
  text-align:left;width:100%;transition:background .15s ease,color .15s ease;
}
#sidebar .nav-item .ic{width:17px;height:17px;flex-shrink:0;opacity:.85}
#sidebar .nav-item:hover{background:rgba(250,246,240,.06);color:var(--rf-off)}
#sidebar .nav-item.active{background:var(--rf-cta);color:#fff}
#sidebar .nav-item.active .ic{opacity:1}
#sidebar .nav-item .badge-soon{
  margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;
  color:var(--rf-slate);background:rgba(250,246,240,.08);border-radius:5px;padding:2px 5px;
}

#sidebar .sidebar-bottom{padding:10px;border-top:1px solid var(--rf-line);display:flex;flex-direction:column;gap:2px}

/* Main content */
#main{flex:1;display:flex;min-width:0}
#panel-left{
  flex:1 1 55%;min-width:0;
  padding:28px 32px 60px;
  overflow-y:auto;
  max-height:100vh;
}
#panel-right{
  flex:1 1 45%;min-width:360px;max-width:520px;
  background:var(--rf-dark2);
  color:var(--rf-off);
  padding:28px 26px 40px;
  overflow-y:auto;
  max-height:100vh;
  border-left:1px solid var(--rf-line);
}

.topbar{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:22px;flex-wrap:wrap;gap:10px;
}
.topbar h1{font-family:'Poppins',sans-serif;font-size:22px;font-weight:700}
.topbar .sub{font-size:13px;color:var(--rf-muted);margin-top:3px}
.topbar-actions{display:flex;gap:8px}

.btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border-radius:10px;font-size:13px;font-weight:700;
  transition:transform .12s ease,opacity .12s ease;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--rf-cta);color:#fff}
.btn-primary:hover{background:var(--rf-cta-deep)}
.btn-secondary{background:rgba(43,36,32,.06);color:var(--rf-dark);border:1px solid var(--rf-line-light)}
.btn-secondary:hover{background:rgba(43,36,32,.1)}
.btn-ghost-light{background:rgba(250,246,240,.08);color:var(--rf-off);border:1px solid rgba(250,246,240,.14)}
.btn-ghost-light:hover{background:rgba(250,246,240,.14)}
.btn-sage{background:var(--rf-sage);color:#fff}
.btn-sage:hover{background:var(--rf-sage-deep)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-block{width:100%;justify-content:center}

/* Form sections */
.card-section{
  background:#fff;border:1px solid var(--rf-line-light);border-radius:16px;
  padding:20px 22px;margin-bottom:16px;
}
.card-section h3{
  font-family:'Poppins',sans-serif;font-size:14px;font-weight:700;
  display:flex;align-items:center;gap:8px;margin-bottom:14px;
}
.card-section h3 .step-badge{
  width:22px;height:22px;border-radius:7px;background:rgba(193,99,59,.1);color:var(--rf-cta);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;
}
.field{margin-bottom:14px}
.field:last-child{margin-bottom:0}
.field label{
  display:block;font-size:12px;font-weight:600;color:var(--rf-dark);margin-bottom:5px;
}
.field label .opt{font-weight:400;color:var(--rf-muted)}
.field label .req{color:var(--rf-cta)}
.field input[type=text],.field textarea,.field select{
  width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--rf-line-light);
  background:var(--rf-off);color:var(--rf-dark);font-size:13.5px;
}
.field input[type=text]:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--rf-cta);background:#fff;
}
.field textarea{resize:vertical;min-height:64px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.hint{font-size:11px;color:var(--rf-muted);margin-top:5px}

.tag-input{
  display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-radius:9px;
  border:1px solid var(--rf-line-light);background:var(--rf-off);min-height:44px;
}
.tag-chip{
  display:inline-flex;align-items:center;gap:5px;background:rgba(143,168,144,.14);color:var(--rf-sage-deep);
  border-radius:99px;padding:4px 8px 4px 10px;font-size:12px;font-weight:600;
}
.tag-chip button{color:var(--rf-sage-deep);opacity:.6;font-size:14px;line-height:1}
.tag-chip button:hover{opacity:1}
.tag-input input{border:none;background:none;flex:1;min-width:100px;font-size:13px;padding:4px}
.tag-input input:focus{outline:none}

/* Output / prompt terminal panel */
.output-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.output-head .otitle{display:flex;align-items:center;gap:10px}
.output-head .oicon{
  width:34px;height:34px;border-radius:9px;background:rgba(250,246,240,.08);
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.output-head h3{font-family:'Poppins',sans-serif;font-size:14px;font-weight:700}
.output-head .osub{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--rf-slate);margin-top:1px}

.terminal{
  background:rgba(0,0,0,.22);border:1px solid rgba(250,246,240,.1);border-radius:12px;
  padding:16px 16px;font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:1.7;
  color:var(--rf-warm);min-height:180px;max-height:420px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;
}
.terminal .tl-idle{color:var(--rf-slate)}
.terminal .tl-key{color:var(--rf-sage)}
.terminal .tl-val{color:#EFA97A}
.terminal .cursor{display:inline-block;width:7px;height:13px;background:var(--rf-sage);animation:blink 1s step-end infinite;vertical-align:text-bottom}
@keyframes blink{50%{opacity:0}}

.output-meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:11px;color:var(--rf-slate)}
.output-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}

.result-image-wrap{margin-top:14px;border-radius:12px;overflow:hidden;border:1px solid rgba(250,246,240,.14);background:rgba(0,0,0,.15)}
.result-image-wrap img{width:100%;display:block}
.gen-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--rf-warm);margin-top:10px}
.gen-status .dot{width:7px;height:7px;border-radius:50%;background:var(--rf-sage);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

.divider-note{
  display:flex;gap:10px;align-items:flex-start;background:rgba(250,246,240,.06);border:1px solid rgba(250,246,240,.1);
  border-radius:10px;padding:10px 12px;font-size:11.5px;color:var(--rf-warm);margin-top:14px;line-height:1.5;
}

footer.appfoot{
  position:fixed;bottom:0;left:var(--sidebar-w);right:0;
  background:var(--rf-dark);color:var(--rf-slate);
  font-family:'JetBrains Mono',monospace;font-size:10px;
  padding:7px 20px;display:flex;justify-content:space-between;
  border-top:1px solid var(--rf-line);z-index:5;
}

/* Settings modal */
.modal-overlay{
  position:fixed;inset:0;background:rgba(34,28,24,.6);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;
}
.modal-overlay.hidden{display:none}
.modal-box{
  background:#fff;border-radius:18px;max-width:560px;width:100%;max-height:86vh;overflow-y:auto;
  padding:28px 28px 24px;
}
.modal-box h2{font-family:'Poppins',sans-serif;font-size:18px;margin-bottom:4px}
.modal-box .modal-sub{font-size:12.5px;color:var(--rf-muted);margin-bottom:20px}
.modal-close{position:absolute;top:20px;right:20px}
.modal-box{position:relative}

.settings-block{border:1px solid var(--rf-line-light);border-radius:14px;padding:16px 18px;margin-bottom:14px}
.settings-block h4{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.settings-block .pill{
  font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:800;letter-spacing:.06em;
  padding:3px 8px;border-radius:99px;
}
.pill-paid{background:rgba(193,99,59,.12);color:var(--rf-cta)}
.pill-free{background:rgba(143,168,144,.16);color:var(--rf-sage-deep)}
.settings-block p{font-size:12.5px;color:var(--rf-muted);line-height:1.6;margin-bottom:10px}
.settings-block ol{font-size:12.5px;color:var(--rf-dark);line-height:1.8;padding-left:18px;margin-bottom:10px}
.key-status{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:8px;font-weight:600}
.key-status .sdot{width:7px;height:7px;border-radius:50%}
.key-status.on .sdot{background:var(--rf-sage)}
.key-status.off .sdot{background:var(--rf-slate)}
.key-status.on{color:var(--rf-sage-deep)}
.key-status.off{color:var(--rf-muted)}

/* Demo picker modal (industry autofill) */
.industry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.industry-item{
  border:1px solid var(--rf-line-light);border-radius:11px;padding:10px 8px;text-align:center;
  font-size:11.5px;font-weight:600;transition:background .12s ease,border-color .12s ease;
}
.industry-item:hover{background:rgba(193,99,59,.06);border-color:var(--rf-cta)}

/* Toast */
#toast{
  position:fixed;bottom:44px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--rf-dark);color:var(--rf-off);padding:11px 20px;border-radius:99px;
  font-size:12.5px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25);
  opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:100;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Mockup preview box */
.mockup-box{
  background:linear-gradient(160deg,rgba(143,168,144,.35),rgba(193,99,59,.25));
  border-radius:16px;padding:18px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.mockup-frame{
  background:rgba(250,246,240,.94);border-radius:12px;
  display:flex;flex-direction:column;gap:8px;padding:14px;position:relative;
}
.mockup-frame .mline{height:6px;border-radius:4px;background:rgba(43,36,32,.14)}
.mockup-frame .mline.w60{width:60%}
.mockup-frame .mline.w40{width:40%}
.mockup-meta-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.mockup-meta{
  flex:1;min-width:90px;background:rgba(250,246,240,.06);border:1px solid rgba(250,246,240,.1);
  border-radius:10px;padding:9px 12px;
}
.mockup-meta .mlabel{font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.08em;color:var(--rf-slate);text-transform:uppercase}
.mockup-meta .mval{font-size:12.5px;font-weight:700;color:var(--rf-off);margin-top:2px}

/* Template gallery (Menu F&B style) */
.template-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;margin-top:10px}
.template-card{
  flex:0 0 130px;border:1px solid var(--rf-line-light);border-radius:12px;overflow:hidden;
  cursor:pointer;transition:border-color .12s ease;
}
.template-card:hover{border-color:var(--rf-cta)}
.template-card .tthumb{height:90px;background:linear-gradient(135deg,var(--rf-sage),var(--rf-cta));opacity:.55}
.template-card .tinfo{padding:8px 9px}
.template-card .tname{font-size:11.5px;font-weight:700}
.template-card .tmeta{font-size:10px;color:var(--rf-muted)}

.empty-note{font-size:12px;color:var(--rf-slate);text-align:center;padding:30px 10px}

@media(max-width:980px){
  #main{flex-direction:column}
  #panel-right{max-width:none;border-left:none;border-top:1px solid var(--rf-line);max-height:none}
  #panel-left{max-height:none}
  footer.appfoot{left:0}
}
@media(max-width:720px){
  #sidebar{position:fixed;left:-260px;z-index:40;transition:left .2s ease;box-shadow:0 0 40px rgba(0,0,0,.3)}
  #sidebar.open{left:0}
  .field-row,.field-row3{grid-template-columns:1fr}
}
