/* Srivofy portal: signed-in pages. Matches srivofy.com (white/paper surfaces,
   navy text, one primary blue, IBM Plex). Class names are used by the PHP pages. */
:root{--white:#fff;--paper:#f4f5f7;--paper-2:#eceef2;--navy:#101d36;--navy-2:#182a4d;--blue:#2455d6;--blue-700:#1c43ad;--blue-50:#ebf0fc;--blue-100:#d6e0f8;
--ink:#171a21;--muted:#626b78;--line:#dde1e7;--line-strong:#c5cbd5;--success:#137a46;--warning:#a65408;--danger:#c0352d;--wa:#1f9d55;
--font:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.55 var(--font);background:var(--paper);color:var(--ink);min-height:100vh;display:flex;flex-direction:column}
::selection{background:var(--blue-100);color:var(--navy)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}
a{color:var(--blue);text-underline-offset:3px}a:hover{color:var(--blue-700)}
h1,h2,h3{color:var(--navy);text-wrap:balance}

/* Header */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top-in{max-width:1240px;margin:0 auto;padding:0 24px;min-height:64px;display:flex;align-items:center;gap:28px}
.brand{flex-shrink:0;text-decoration:none;display:flex;align-items:center}
.lockup{display:inline-flex;align-items:center;gap:10px}.lockup img{display:block;width:30px;height:30px}
.lockup span{font-size:20px;font-weight:600;letter-spacing:-.035em;color:var(--navy);text-transform:lowercase;line-height:1}
.logo-img:not(.lockup){display:block;height:30px;width:auto}
.menu{display:flex;align-items:stretch;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;align-self:stretch}.menu::-webkit-scrollbar{display:none}
.menu a{position:relative;display:flex;align-items:center;padding:0 11px;white-space:nowrap;color:var(--muted);text-decoration:none;font-size:14px;transition:color .16s}
.menu a::after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ease)}
.menu a:hover{color:var(--navy)}.menu a:hover::after{transform:scaleX(1)}
.menu a.on{color:var(--navy);font-weight:500}.menu a.on::after{transform:scaleX(1)}
.acct{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0;font-size:13px}
.acct a{color:var(--muted);text-decoration:none}.acct a:hover{color:var(--navy)}
.who{color:var(--muted);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct .link{color:var(--navy);font-weight:500}
@media(max-width:900px){.top-in{flex-wrap:wrap;gap:0 16px;padding:0 16px}.brand{min-height:60px}.menu{order:3;flex-basis:100%;border-top:1px solid var(--line);margin:0 -16px;padding:0 6px}.menu a{min-height:46px}.who{display:none}}

/* Page */
main{width:100%;max-width:1240px;margin:0 auto;padding:36px 24px 56px;flex:1}
@media(max-width:600px){main{padding:24px 16px 40px}}
h1{font-size:clamp(24px,2.4vw,30px);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0 0 22px}
h2{font-size:17px;font-weight:600;margin:0 0 10px;letter-spacing:-.01em}
h3{font-size:15px;font-weight:600;margin:0 0 8px}
p{margin:0 0 12px}

/* Cards and grids */
.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:22px;margin-bottom:18px}
.card>:last-child{margin-bottom:0}
.narrow{max-width:460px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.grid>.card{margin-bottom:0}
.builder{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start}
@media(max-width:900px){.builder,.row3{grid-template-columns:1fr}}

/* Forms */
label{display:block;margin:0 0 14px;font-weight:500;font-size:13px;color:var(--navy)}
input,select,textarea{display:block;width:100%;margin-top:6px;padding:9px 12px;min-height:42px;border:1px solid var(--line-strong);border-radius:6px;font:inherit;font-size:15px;color:var(--ink);background:var(--white);transition:border-color .16s,box-shadow .16s}
textarea{min-height:0;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:#9aa3b2}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-100)}
input[type=checkbox],input[type=radio]{display:inline-block;width:auto;min-height:0;margin:0 8px 0 0;vertical-align:-2px;accent-color:var(--blue)}
input[type=file]{padding:7px;background:var(--paper)}
.check{font-weight:400}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row input,.row select{width:auto;flex:1;margin:0}
.row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 18px;border:1px solid transparent;border-radius:6px;background:var(--blue);color:#fff;font:inherit;font-size:14px;font-weight:500;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s}
.btn:hover{background:var(--blue-700);color:#fff}
.btn.secondary{background:var(--white);border-color:var(--line-strong);color:var(--navy)}.btn.secondary:hover{border-color:var(--navy);background:var(--white);color:var(--navy)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.small-btn{min-height:32px;padding:0 12px;font-size:13px}
.link{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}.link:hover{color:var(--blue-700);text-decoration:underline}
form.inline{display:inline}

/* Tables */
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child>td{border-bottom:0}
th{background:var(--paper);font:500 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
tr:hover>td{background:#fafbfc}
.actions{white-space:nowrap}.actions>*{margin-right:10px}
@media(max-width:800px){main table{display:block;overflow-x:auto;white-space:nowrap}}

/* Status */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.6;background:var(--paper-2);color:var(--navy)}
.ok{background:#e3f3ea;color:var(--success)}.warn{background:#fdf0e2;color:var(--warning)}.bad{background:#fbe7e5;color:var(--danger)}
.muted{color:var(--muted)}.badge.muted{background:var(--paper-2)}
.flash{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:12px 16px;border-radius:8px;margin-bottom:16px;border:1px solid transparent;font-size:14px}
.flash.ok{background:#eef8f2;border-color:#bfe3cd;color:#0f5e36}.flash.bad{background:#fdf1f0;border-color:#f1c4bf;color:#9b2a23}
.flash.warn{background:#fdf5ec;border-color:#f0d2ae;color:#8a4606}.flash.info{background:var(--blue-50);border-color:var(--blue-100);color:var(--blue-700)}
.flash a{color:inherit;font-weight:600;margin-left:4px}
.small{font-size:13px}.bad-text{color:var(--danger)}
code{font-family:var(--mono);font-size:.88em;background:var(--paper-2);padding:1px 6px;border-radius:4px;word-break:break-all}
.progress{background:var(--paper-2);border-radius:999px;height:10px;overflow:hidden;margin:10px 0}.progress>div{background:var(--blue);height:100%;transition:width .3s}

/* Template builder */
.btnrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:10px}.btnrow input,.btnrow select{width:auto;flex:1;min-width:140px;margin:0}
/* The preview keeps WhatsApp's own colours so it looks like the real message. */
.phone{background:#efeae2;border-radius:10px;padding:16px;min-height:220px;border:1px solid var(--line)}
.bubble{background:#fff;border-radius:8px;border-top-left-radius:2px;padding:10px 12px;max-width:300px;box-shadow:0 1px 1px rgba(0,0,0,.12);word-wrap:break-word;font-size:14px}
.bubble mark{background:var(--blue-50);color:var(--blue-700);padding:0 2px;border-radius:2px}.ft{color:#8a949e;font-size:12px;margin-top:6px}
.pvbtn{background:#fff;color:#0a7cc2;text-align:center;border-radius:8px;padding:8px;margin-top:4px;max-width:300px;box-shadow:0 1px 1px rgba(0,0,0,.12);font-weight:500;font-size:14px}
.pvmedia{background:#d9dee3;border-radius:6px;padding:28px 0;text-align:center;margin-bottom:6px;color:#4b5563;font-weight:500}.pvimg{width:100%;border-radius:6px;margin-bottom:6px;display:block}

/* Footer */
.foot{border-top:1px solid var(--line);background:var(--white)}
.foot-in{max-width:1240px;margin:0 auto;padding:18px 24px;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;font-size:13px;color:var(--muted)}
.foot a{color:var(--muted);text-decoration:none}.foot a:hover{color:var(--navy)}
@media print{.top,.foot{display:none}body{background:#fff}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
