/* Simertech CRM — vanilla CSS */
:root{
  /* Same purple/lavender language as the mobile app's theme.dart — same hex
     values, validated via the dataviz skill's palette checker against this
     --bg during that session, reused here rather than re-derived. */
  --ink:#15252b; --ink-soft:#41565e; --line:#dbe4e6; --bg:#f5f2f7; --card:#ffffff;
  --primary:#5b3fa6; --primary-dark:#4a3390; --primary-soft:#ece6f7;
  --amber:#fab219; --amber-bg:#fef2de; --red:#d03b3b; --red-bg:#fbe3e3;
  --green:#0ca30c; --green-bg:#e1f5e1; --blue:#2a78d6; --blue-bg:#e3edfa; --gray-bg:#e8ecec;
  --radius:14px; font-size:15px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
a{color:var(--primary);text-decoration:none} a:hover{text-decoration:underline}
h1{font-size:1.5rem;margin-bottom:1rem;letter-spacing:-.01em}
h2{font-size:1.1rem;margin:1.2rem 0 .6rem}

.brand-icon{display:block;border-radius:22%;flex-shrink:0}

/* utilities */
.text-center{text-align:center}
.checkbox-row{display:flex;gap:.4rem;align-items:center;font-weight:400}
.checkbox-row input{width:auto}
.btn-block{width:100%}
.hidden{display:none}

/* cards & stats */
.card{background:var(--card);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem;box-shadow:0 1px 3px rgba(21,37,43,.08)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.25rem}
.stat{background:var(--card);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:0 1px 3px rgba(21,37,43,.08);display:flex;align-items:center;gap:.85rem}
.stat-icon{width:40px;height:40px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-icon .ico{width:20px;height:20px;opacity:1}
.stat .num{font-size:1.5rem;font-weight:700;line-height:1.15;color:var(--primary)}
.stat .lbl{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin-top:.1rem}
.stat.warn .stat-icon{background:var(--amber-bg);color:var(--amber)}
.stat.warn .num{color:var(--amber)}
.stat.bad .stat-icon{background:var(--red-bg);color:var(--red)}
.stat.bad .num{color:var(--red)}
.stat.good .stat-icon{background:var(--green-bg);color:var(--green)}
.stat.good .num{color:var(--green)}

/* pipeline strip */
.pipeline{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin-bottom:1.25rem}
.stage{background:var(--card);border-radius:var(--radius);padding:.6rem;text-align:center;box-shadow:0 1px 3px rgba(21,37,43,.08)}
.stage .cnt{font-size:1.3rem;font-weight:700}
.stage .nm{font-size:.78rem;color:var(--ink-soft);text-transform:capitalize}
.stage.hot{background:var(--primary-soft)}

/* tables */
table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px rgba(21,37,43,.08)}
th,td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem}
th{background:#f7fafa;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafcfc}
td.num,th.num{text-align:right}

/* badges */
.badge{display:inline-block;padding:.12rem .55rem;border-radius:99px;font-size:.75rem;font-weight:600;text-transform:capitalize}
.badge-blue{background:var(--blue-bg);color:var(--blue)} .badge-amber{background:var(--amber-bg);color:var(--amber)}
.badge-green{background:var(--green-bg);color:var(--green)} .badge-red{background:var(--red-bg);color:var(--red)}
.badge-gray{background:var(--gray-bg);color:var(--ink-soft)}

/* forms */
form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin-bottom:.8rem}
label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-soft);margin-bottom:.2rem}
input,select,textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}
textarea{min-height:70px;resize:vertical}

/* buttons */
.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:6px;background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--primary-dark);text-decoration:none}
.btn-sm{padding:.25rem .6rem;font-size:.82rem}
.btn-outline{background:transparent;border:1px solid var(--line);color:inherit}
.btn-outline:hover{background:rgba(255,255,255,.08)}
.btn-light{background:var(--gray-bg);color:var(--ink)} .btn-light:hover{background:#d8dede}
.btn-danger{background:var(--red)} .btn-danger:hover{background:#7e1622}
.actions{display:flex;gap:.4rem;flex-wrap:wrap}

/* flash */
.flash{padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.92rem}
.flash-ok{background:var(--green-bg);color:var(--green)} .flash-err{background:var(--red-bg);color:var(--red)}

/* toolbar */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.filters{display:flex;gap:.35rem;flex-wrap:wrap}
.filters a{padding:.3rem .7rem;border-radius:99px;font-size:.85rem;border:1px solid var(--line);background:var(--card);color:var(--ink-soft)}
.filters a.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.filters a:hover{text-decoration:none;border-color:var(--primary)}

/* line-item editor */
.items-table input{padding:.35rem .5rem}
.items-table .line-total{text-align:right;font-weight:600;white-space:nowrap}
.totals-box{margin-left:auto;max-width:320px;margin-top:1rem}
.totals-box .tr{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid var(--line)}
.totals-box .grand{font-size:1.15rem;font-weight:700;border-bottom:none}

/* login / forgot / reset password */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-dark),var(--primary))}
.login-card{background:#fff;border-radius:12px;padding:2.2rem;width:min(380px,92vw)}
.login-card h1{text-align:center}
.login-card .brand-icon{margin:0 auto .6rem}
.login-tagline{color:var(--ink-soft);margin:.4rem 0 1.2rem}
.login-logo{max-height:48px;display:block;margin:0 auto .4rem}
.app-footer a{color:var(--ink-soft);text-decoration:underline}

/* invoice / quote document view */
.doc{background:#fff;border-radius:0;padding:25mm;width:210mm;max-width:100%;min-height:297mm;margin:1.5rem auto;box-shadow:0 2px 14px rgba(0,0,0,.14)}
.doc-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.6rem;flex-wrap:wrap}
.doc-title{font-size:1.8rem;font-weight:800;letter-spacing:.02em;color:var(--primary)}
.doc-meta{font-size:.9rem;color:var(--ink-soft)}
.doc table{border:none} .doc th{background:var(--ink);color:#fff}

@media print{
  .no-print,.flash,.app-footer{display:none!important}
  .doc{padding:0;max-width:none;width:100%;min-height:0;margin:0;box-shadow:none}
  @page{size:210mm 297mm;margin:25mm}
}
@media(max-width:720px){ .pipeline{grid-template-columns:repeat(3,1fr)} }

/* ===== Laravel sidebar layout ===== */
.shell{display:flex;min-height:100vh}
.sidebar{width:230px;flex-shrink:0;background:var(--ink);color:#c7d4d8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side-brand{padding:1.1rem 1.2rem;font-weight:700;color:#fff;letter-spacing:.02em;border-bottom:1px solid #243a42}
.side-logo{max-height:34px;max-width:100%;display:block}
.side-brand-name{display:block;color:#fff;font-size:.95rem;margin-top:.4rem}
.settings-logo-preview{max-height:60px;display:block;border:1px solid var(--line);border-radius:6px;padding:.3rem}
.doc-logo{max-height:52px;margin-bottom:.5rem}
.side-nav{flex:1;padding:.8rem .6rem;display:flex;flex-direction:column;gap:.15rem;overflow-y:auto}
.side-nav a{color:#c7d4d8;padding:.55rem .8rem;border-radius:6px;font-size:.93rem;display:flex;gap:.6rem;align-items:center;border-left:3px solid transparent}
.side-nav a:hover{background:#243a42;color:#fff;text-decoration:none}
.side-nav a.active{background:var(--primary);color:#fff;border-left-color:#b39ddb}
.side-nav .ico{width:19px;height:19px;flex-shrink:0;opacity:.95}
.side-sep{margin:.9rem .8rem .3rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#6e848c}
.side-user{padding:1rem 1.2rem;border-top:1px solid #243a42;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.88rem;color:#c7d4d8}
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh}
.content{padding:1.5rem 1.75rem;flex:1;display:flex;flex-direction:column}
.app-footer{margin-top:auto;text-align:center;color:var(--ink-soft);font-size:.82rem;padding:1.5rem 0 .5rem}
.mobilebar{display:none;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.txt-red{color:var(--red)} .txt-green{color:var(--green)} .muted{color:var(--ink-soft)}
.mt1{margin-top:1rem} .mb1{margin-bottom:1rem} .mt-half{margin-top:.6rem}
.span2{grid-column:span 2}
.mini{width:auto;padding:.2rem .4rem;font-size:.85rem}
.mini-input{width:170px;padding:.25rem .5rem}
.inline-search{display:flex;gap:.4rem} .inline-search input{width:220px}
.inline-manage{display:inline-flex;gap:.3rem;align-items:center}
.inline-block{display:inline-block}
.w-qty{width:90px} .w-price{width:140px} .w-del{width:40px}
.doc-company{text-align:right} .doc-billto{margin-bottom:1.2rem} .doc-width{max-width:800px;margin:1.25rem auto}
td form{display:inline}
.pagination{display:flex;gap:.3rem;margin-top:1rem;flex-wrap:wrap;list-style:none}
.pagination a,.pagination span{padding:.3rem .7rem;border:1px solid var(--line);border-radius:6px;background:var(--card);font-size:.88rem}
.pagination .active span{background:var(--primary);color:#fff;border-color:var(--primary)}
nav[role=navigation] p{font-size:.85rem;color:var(--ink-soft)}

@media(max-width:860px){
  .shell{flex-direction:column}
  .sidebar{position:fixed;left:-240px;transition:left .2s;z-index:50}
  .sidebar.open{left:0}
  .mobilebar{display:block}
  .two-col{grid-template-columns:1fr}
  .span2{grid-column:span 1}
  .content{padding:1.1rem 1rem}
  .stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}
@media(max-width:480px){
  .stat-grid{grid-template-columns:1fr 1fr}
  .stat{padding:.8rem}
  .content{padding:1rem .85rem}
  h1{font-size:1.3rem}
}
@media print{.sidebar,.mobilebar,.app-footer{display:none!important}.content{margin:0;max-width:none}}

/* pagination refinement */
.pager{margin-top:1rem}
.pagination li{list-style:none;display:inline-block}
.pagination .disabled span{opacity:.4}
.pagination a:hover{border-color:var(--primary);text-decoration:none}

/* permission matrix */
.perm-matrix th:first-child,.perm-matrix td:first-child{width:180px;text-align:left}
.perm-matrix th,.perm-matrix td{text-align:center}
.perm-matrix td:first-child{text-align:left}
