/* MX RISE — app.css */
:root {
  --bg:        #F7F6F2;
  --surface:   #FFFFFF;
  --border:    rgba(0,0,0,0.1);
  --border-md: rgba(0,0,0,0.18);
  --text:      #1A1A1A;
  --text-muted:#6B6B68;
  --accent:    #1A1A1A;
  --green:     #1D9E75;
  --green-bg:  #E1F5EE;
  --amber:     #BA7517;
  --amber-bg:  #FAEEDA;
  --red:       #A32D2D;
  --red-bg:    #FCEBEB;
  --blue:      #185FA5;
  --blue-bg:   #E6F1FB;
  --sidebar-w: 220px;
  --radius:    10px;
  --radius-sm: 6px;
  --font:      'DM Sans', sans-serif;
  --font-mono: 'DM Mono', monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none}

/* Layout */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:0.5px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}
.sidebar-logo{padding:20px 18px 16px;display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;border-bottom:0.5px solid var(--border)}
.sidebar-logo i{font-size:20px}
.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500;transition:all 0.15s}
.nav-item:hover{background:var(--bg);color:var(--text)}
.nav-item.active{background:var(--text);color:#fff}
.nav-item i{font-size:17px;flex-shrink:0}
.sidebar-footer{padding:12px 14px;border-top:0.5px solid var(--border);display:flex;align-items:center;gap:10px}
.user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--blue-bg);color:var(--blue);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.avatar-lg{width:42px;height:42px;font-size:14px}
.user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:11px;color:var(--text-muted)}
.btn-logout{color:var(--text-muted);padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center}
.btn-logout:hover{background:var(--red-bg);color:var(--red)}

/* Main */
.main-content{flex:1;min-width:0;display:flex;flex-direction:column}
.page-header{padding:24px 28px 0;border-bottom:0.5px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding-bottom:18px}
.page-header h1{font-size:20px;font-weight:600}
.page-header .header-actions{display:flex;gap:8px}
.page-body{padding:24px 28px;flex:1}

/* Cards */
.card{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px}
.card-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted);margin-bottom:16px}

/* Metrics */
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.metric{background:var(--bg);border-radius:var(--radius-sm);padding:14px 16px}
.metric-label{font-size:12px;color:var(--text-muted);margin-bottom:5px;display:flex;align-items:center;gap:5px}
.metric-value{font-size:24px;font-weight:600}
.metric-sub{font-size:11px;color:var(--text-muted);margin-top:2px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;font-family:var(--font);border-radius:var(--radius-sm);border:0.5px solid var(--border-md);background:transparent;color:var(--text);cursor:pointer;transition:all 0.15s;white-space:nowrap}
.btn:hover{background:var(--bg)}
.btn-primary{background:var(--text);color:#fff;border-color:transparent}
.btn-primary:hover{opacity:0.85;background:var(--text)}
.btn-sm{padding:5px 12px;font-size:12px}
.btn-danger{color:var(--red);border-color:var(--red-bg)}
.btn-danger:hover{background:var(--red-bg)}
.btn-block{width:100%;justify-content:center}

/* Forms */
.form-group{margin-bottom:14px}
.form-row{display:grid;gap:12px;margin-bottom:14px}
.form-row.cols2{grid-template-columns:1fr 1fr}
.form-row.cols3{grid-template-columns:1fr 1fr 1fr}
label{font-size:12px;font-weight:500;color:var(--text-muted);display:block;margin-bottom:5px}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;padding:9px 11px;font-size:13px;font-family:var(--font);border:0.5px solid var(--border-md);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);outline:none;transition:border-color 0.15s}
input:focus,select:focus,textarea:focus{border-color:var(--text)}
textarea{resize:vertical;min-height:120px}
textarea.code{font-family:var(--font-mono);font-size:12px}
.input-hint{font-size:11px;color:var(--text-muted);margin-top:4px}

/* Table */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em;padding:0 10px 10px 0;border-bottom:0.5px solid var(--border);white-space:nowrap}
td{padding:11px 10px 11px 0;border-bottom:0.5px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg)}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 9px;border-radius:20px;font-weight:500;white-space:nowrap}
.pill-green{background:var(--green-bg);color:var(--green)}
.pill-amber{background:var(--amber-bg);color:var(--amber)}
.pill-red{background:var(--red-bg);color:var(--red)}
.pill-blue{background:var(--blue-bg);color:var(--blue)}
.pill-gray{background:var(--bg);color:var(--text-muted);border:0.5px solid var(--border)}

/* Progress */
.quota-wrap{display:flex;align-items:center;gap:8px}
.progress-track{background:var(--bg);border-radius:20px;height:6px;width:90px;overflow:hidden;flex-shrink:0}
.progress-fill{height:6px;border-radius:20px;background:var(--green)}
.progress-fill.warn{background:var(--amber)}
.progress-fill.full{background:var(--red)}
.quota-label{font-size:12px;color:var(--text-muted);white-space:nowrap}

/* Alerts */
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px;display:flex;align-items:flex-start;gap:8px}
.alert-success{background:var(--green-bg);color:var(--green)}
.alert-error{background:var(--red-bg);color:var(--red)}
.alert-warning{background:var(--amber-bg);color:var(--amber)}
.alert-info{background:var(--blue-bg);color:var(--blue)}

/* Stepper */
.stepper{display:flex;align-items:center;gap:0;margin-bottom:24px}
.step-item{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-muted)}
.step-item.active{color:var(--text)}
.step-item.done{color:var(--green)}
.step-num{width:22px;height:22px;border-radius:50%;border:0.5px solid var(--border-md);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.step-item.active .step-num{background:var(--text);color:#fff;border-color:transparent}
.step-item.done .step-num{background:var(--green-bg);border-color:transparent;color:var(--green)}
.step-line{flex:1;height:0.5px;background:var(--border);min-width:20px}

/* Template selector */
.template-list{display:grid;gap:8px;margin-bottom:16px}
.template-opt{border:0.5px solid var(--border-md);border-radius:var(--radius-sm);padding:13px 15px;cursor:pointer;transition:all 0.15s;display:flex;align-items:center;justify-content:space-between;gap:10px}
.template-opt:hover{border-color:var(--text);background:var(--bg)}
.template-opt.selected{border-width:1.5px;border-color:var(--text);background:var(--bg)}
.template-opt-name{font-size:13px;font-weight:500;margin-bottom:2px}
.template-opt-sub{font-size:12px;color:var(--text-muted)}

/* Upload area */
.upload-area{border:1.5px dashed var(--border-md);border-radius:var(--radius);padding:28px;text-align:center;cursor:pointer;transition:all 0.15s;margin-bottom:14px}
.upload-area:hover,.upload-area.drag{border-color:var(--text);background:var(--bg)}
.upload-area i{font-size:30px;color:var(--text-muted);display:block;margin-bottom:8px}
.upload-area p{font-size:13px;color:var(--text-muted)}
.upload-area .link{color:var(--blue);text-decoration:underline}

/* Preview box */
.preview-box{background:var(--bg);border-left:3px solid var(--border-md);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:14px 16px;font-size:12px;line-height:1.8;color:var(--text-muted);margin-bottom:14px}
.preview-box strong{color:var(--text)}

/* Var tags */
.var-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.var-tag{font-size:11px;padding:2px 8px;border-radius:4px;background:var(--bg);border:0.5px solid var(--border-md);color:var(--text-muted);font-family:var(--font-mono);cursor:pointer}
.var-tag:hover{background:var(--blue-bg);color:var(--blue)}

/* Divider */
hr{border:none;border-top:0.5px solid var(--border);margin:18px 0}

/* Login page */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.login-card{background:var(--surface);border:0.5px solid var(--border);border-radius:var(--radius);padding:36px 32px;width:100%;max-width:380px}
.login-logo{text-align:center;margin-bottom:24px}
.login-logo i{font-size:32px;display:block;margin-bottom:8px}
.login-logo h1{font-size:16px;font-weight:600}
.login-logo p{font-size:12px;color:var(--text-muted);margin-top:4px}

/* Info rows */
.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:0.5px solid var(--border);font-size:13px}
.info-row:last-child{border-bottom:none}
.info-row .label{color:var(--text-muted)}

/* Responsive */
@media(max-width:700px){
  .sidebar{display:none}
  .form-row.cols2,.form-row.cols3{grid-template-columns:1fr}
}
