:root{--ink:#26263d;--muted:#89899d;--purple:#8658ed;--purple2:#b181fa;--border:#eeeef8;--white:#fff;--shadow:0 18px 60px rgba(69,58,112,.07);--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8f9ff;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1{font-size:clamp(27px,3vw,38px);line-height:1.27;letter-spacing:-1.4px;margin:7px 0 10px}h2{font-size:18px;letter-spacing:-.5px;margin:5px 0 12px}h3{font-size:16px}p{line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}input,textarea{outline:none}textarea{resize:vertical}label{display:block;font-weight:700;font-size:13px}label input,label textarea{display:block;width:100%;margin-top:10px;border:1px solid #e9e8f5;background:#fcfcff;padding:15px 17px;border-radius:14px;color:var(--ink);transition:.2s;line-height:1.6}label input:focus,label textarea:focus,.reply-form textarea:focus{border-color:#bca8f9;box-shadow:0 0 0 4px #915ce912;background:white}input::placeholder,textarea::placeholder{color:#a4a4b6}.muted{color:var(--muted)}.tiny{font-size:12px}.center{text-align:center}.accent{color:var(--purple)}.eyebrow{color:#9182c5;font-size:10px;letter-spacing:2.2px;font-weight:800}.stack{display:flex;flex-direction:column;gap:20px}.btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:12px 19px;border-radius:14px;font-weight:800;white-space:nowrap;transition:transform .2s,box-shadow .2s,background .2s;font-size:13px}.btn:hover{transform:translateY(-2px)}.btn.primary{background:linear-gradient(112deg,#a27af6,#7852e9);color:white;box-shadow:0 10px 22px #8758ed30}.btn.primary:hover{box-shadow:0 12px 28px #8758ed50}.btn.soft{background:#f1ebff;color:#805cda}.btn.ghost{background:white;color:#716b87;border:1px solid var(--border)}.btn.full{width:100%}.btn.white-btn{background:#fff;color:#7856ce}.brand{font-size:19px;font-weight:800;letter-spacing:-.85px;display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.brand-mark{width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#ac8bff,#704ee6);color:white;border-radius:12px;font-size:25px;box-shadow:0 8px 15px #8e66f33a}.brand-center{justify-content:center}.app-layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:244px;height:100dvh;background:white;border-right:1px solid #eeedf7;padding:29px 18px;display:flex;flex-direction:column;z-index:30}.sidebar>.brand{margin:0 8px 49px}.nav-label{color:#b5b1c5;font-size:10px;font-weight:800;letter-spacing:1.5px;margin:0 15px 15px}.side-nav{display:flex;flex-direction:column;gap:7px}.side-nav a{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:13px;font-weight:700;color:#77768b}.side-nav a span{font-size:21px;width:22px;text-align:center;font-weight:400}.side-nav a:hover,.side-nav a.active{background:#f1edff;color:#805be0}.side-bottom{margin-top:auto}.sidebar-tip{background:linear-gradient(138deg,#f3efff,#f1f8ff);border-radius:17px;padding:18px;margin-bottom:19px}.sidebar-tip span{font-weight:800;color:#8067cf;font-size:11px}.sidebar-tip p{color:#84809c;font-size:12px;margin-bottom:0}.user-tile{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:19px}.user-avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:12px;background:#ddd2ff;color:#7251cf;font-weight:800}.user-tile div{min-width:0;flex:1}.user-tile strong,.user-tile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-tile small{color:#9995aa;font-size:11px;margin-top:3px}.logout-btn{border:0;background:#f5f2ff;color:#8064d0;border-radius:9px;font-size:20px;padding:5px 9px}.main-wrap{margin-left:244px;width:calc(100% - 244px);min-width:0}.topbar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 42px;border-bottom:1px solid #eeedf7}.breadcrumb{color:#8e8ba0;font-weight:700;font-size:12px}.breadcrumb span{color:#c4c1d2;padding:0 8px}.topbar-right{color:#aa9abf;font-weight:700;font-size:12px}.app-main{padding:35px 42px 90px;max-width:1580px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-heading p{margin-bottom:0}.page-heading>.btn{flex-shrink:0}.welcome-banner{min-height:265px;overflow:hidden;background:linear-gradient(105deg,#a18bf1 0%,#b6a4fa 47%,#b1ddf2 100%);border-radius:26px;padding:30px 37px;display:flex;justify-content:space-between;position:relative;color:white;margin-bottom:24px}.welcome-banner .badge{font-size:10px;font-weight:800;letter-spacing:1.5px;display:inline-block;background:#ffffff31;border:1px solid #ffffff58;padding:7px 12px;border-radius:30px}.welcome-banner h2{font-size:clamp(26px,3vw,38px);line-height:1.2;margin:16px 0 5px}.welcome-banner em{font-style:normal;color:#fff3b5}.welcome-banner p{color:#f9f4ff;margin:0 0 17px}.banner-art{width:300px;position:relative;display:grid;place-items:center}.orb{width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 30% 23%,#fff8 0%,#fff0 35%),radial-gradient(circle at 76% 74%,#e9acff,#8aafff 43%,#c2efff 64%,#b494ff 84%);box-shadow:inset -16px -14px 30px #5b63ad40,0 20px 50px #6e67b65c;animation:float 6s ease-in-out infinite}.floating-note{position:absolute;top:52px;right:0;transform:rotate(11deg);background:#fffffff2;color:#986cdd;border-radius:15px;padding:14px 23px;box-shadow:var(--shadow);font-size:26px;text-align:center}.floating-note small{font-size:10px;display:block}.art-spark{position:absolute;left:10px;bottom:23px;font-size:50px;color:#fff5}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.stat-card{background:white;border:1px solid #f1f0f8;border-radius:21px;padding:22px;box-shadow:var(--shadow)}.stat-icon{height:39px;width:39px;display:grid;place-items:center;font-size:23px;border-radius:13px;margin-bottom:17px}.lavender{background:#eee6ff;color:#956be9}.mint{background:#e0faf0;color:#40bd89}.peach{background:#fff0e7;color:#eb9a70}.blue{background:#e4f3ff;color:#62a8e6}.stat-label{color:#8f8ba3;font-weight:700;font-size:12px;display:block}.stat-card strong{display:block;font:800 34px Manrope;margin:7px 0}.stat-card small{color:#aba7b8;font-size:11px}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.panel{border-radius:23px;background:white;border:1px solid #efedf8;padding:25px;box-shadow:var(--shadow);min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:15px}.panel-header h2{margin-bottom:0}.text-link{font-weight:800;color:#8768e1;font-size:12px}.link-row{display:flex;align-items:center;gap:13px;padding:14px 2px;border-top:1px solid #f2f1f8}.list-avatar{background:#f1ecff;color:#9b75ed;width:45px;height:45px;border-radius:14px;display:grid;place-items:center;font-size:24px;flex-shrink:0}.row-content{flex:1;min-width:0}.row-content strong,.row-content small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-content strong{font-size:13px}.row-content small{color:#a4a0b6;font-size:11px;margin-top:5px}.row-meta{color:#9c98ae;font-size:11px;white-space:nowrap}.row-meta b{color:#8f69ee;font-size:18px;margin-left:8px}.activity-row{display:flex;gap:12px;border-top:1px solid #f2f1f8;padding:14px 0}.activity-dot{background:#fff0f5;color:#e68aa9;border-radius:12px;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0}.activity-row strong{font-size:12px}.activity-row p{margin:4px 0;color:#777489;font-size:12px;overflow-wrap:anywhere}.activity-row small{color:#bbb5c8;font-size:10px}.empty-inline{padding:42px 12px;text-align:center;color:#a4a1b6}.link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px}.qr-item{background:white;border:1px solid var(--border);padding:25px;border-radius:24px;box-shadow:var(--shadow);min-height:276px;display:flex;flex-direction:column}.qr-item-top{display:flex;justify-content:space-between;align-items:center}.item-symbol{font-size:25px;width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#d9d8ff,#eee6ff);color:#856ce1;display:grid;place-items:center}.status{border-radius:30px;padding:7px 11px;font-size:10px;font-weight:800;white-space:nowrap}.status.active{background:#e8faf1;color:#40ab82}.status.inactive{background:#fff1e8;color:#bb895b}.qr-item h2{margin-top:22px}.qr-item p{color:#9a97a9;line-height:1.6;margin:0 0 15px;flex:1;overflow-wrap:anywhere}.item-stats{display:flex;gap:17px;color:#9e91b8;font-size:11px;margin-bottom:20px}.add-item{align-items:center;justify-content:center;background:#f6f2ff;border:1px dashed #c3b0f0;text-align:center;color:#7e61c9}.add-circle{font-size:30px;border-radius:50%;background:white;width:62px;height:62px;display:grid;place-items:center}.add-item h2{margin:17px 0 5px}.add-item p{flex:0}.editor-grid,.manage-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:22px;align-items:start}.panel-top{display:flex;align-items:center;gap:12px}.step{background:#ede7ff;color:#8b6bd7;width:38px;height:38px;border-radius:13px;display:grid;place-items:center;font-weight:800}.panel-top h2{margin:0}.help{display:block;font-size:11px;font-weight:400;color:#a4a0b3;margin:4px 0}.hint-card{padding:16px;border-radius:14px;background:#f5f1ff;color:#8b77b0;line-height:1.8;font-size:12px}.alert{padding:14px 18px;border-radius:13px;background:#e7f8ee;color:#34855c;margin-bottom:18px;font-weight:700}.alert.error{background:#fff0f0;color:#b54c5d}.tab-row{display:flex;gap:6px;border-bottom:1px solid #e9e7f5;margin:24px 0}.tab{padding:14px 18px;color:#8b89a2;font-weight:800;border-bottom:3px solid transparent}.tab.selected{color:#8459df;border-color:#9768e9}.current-quote{margin:21px 0;color:#4b426f;font:600 clamp(16px,2vw,22px)/1.8 Manrope;padding:15px 22px;border-left:4px solid #ae91f4;background:linear-gradient(90deg,#f8f4ff,white);border-radius:0 14px 14px 0;white-space:normal;overflow-wrap:anywhere}.qr-share-panel{text-align:center}.qr-canvas{width:214px;height:214px;background:white;border:11px solid #f5f1ff;margin:18px auto;border-radius:20px;display:grid;place-items:center;overflow:hidden}.qr-canvas span{font-size:45px;color:#a27be8}.qr-canvas img,.qr-canvas canvas{max-width:100%;max-height:100%}.qr-share-panel .btn{margin-top:10px}.share-url{font-size:11px;color:#817995;background:#f8f7fe;border:1px solid #ebe8f7;border-radius:10px;padding:11px;margin:13px 0;overflow-wrap:anywhere}.quick-count{display:flex;align-items:center;gap:15px;margin:10px 0 22px}.quick-count strong{font:800 44px Manrope;color:#8a6de2}.quick-count span{color:#8f8ba3}.toggle-row{display:flex;gap:12px;align-items:center}.toggle-row input{width:18px;height:18px;margin:0;accent-color:#8868ed}.history-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:22px;align-items:start}.history-list{margin-top:18px}.history-item{display:flex;align-items:center;gap:12px;border-radius:14px;padding:15px 9px;margin-bottom:7px}.history-item:hover,.history-item.selected{background:#f6f2ff}.history-index{width:35px;height:35px;background:#eee7ff;display:grid;place-items:center;border-radius:11px;color:#9269e6;flex-shrink:0}.history-item div{min-width:0;flex:1}.history-item strong,.history-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item strong{font-size:12px}.history-item small{color:#aaa2b9;margin-top:6px;font-size:11px}.live-dot{font-size:10px;color:#39aa77;font-weight:800}.panel-divider{border-top:1px solid var(--border);margin:26px 0}.count{background:#eee8ff;color:#946ae9;font-size:11px;border-radius:10px;padding:5px 9px;vertical-align:middle}.owner-messages{display:flex;flex-direction:column;gap:12px;margin-top:24px;max-height:640px;overflow:auto}.owner-reply{background:#f7f4ff;padding:12px 17px;border-radius:16px;max-width:92%;align-self:flex-start;overflow-wrap:anywhere}.owner-reply p{margin:0 0 6px;white-space:normal}.owner-reply small{font-size:10px;color:#9a89b6}.mobile-nav,.menu-toggle,.sidebar-overlay{display:none}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:32px;background:radial-gradient(ellipse at 24% 14%,#d9eaff 0%,transparent 48%),radial-gradient(ellipse at 83% 78%,#eadcff 0%,transparent 43%),#faf9ff}.auth-card{width:min(100%,445px);border-radius:31px;background:#ffffffdc;border:1px solid #ffffffee;padding:41px;box-shadow:0 30px 85px #7465a020;text-align:center;backdrop-filter:blur(15px)}.auth-card .eyebrow{margin-top:28px}.auth-card h1{font-size:36px}.auth-card .stack{text-align:left;margin-top:28px}.auth-card .stack .btn{margin-top:5px}.auth-card .tiny{margin:22px 0 0}.auth-orb{margin:28px auto -5px;width:112px;height:112px}.receiver-page{min-height:100vh;background:radial-gradient(ellipse at 80% 8%,#d6edff 0%,transparent 40%),radial-gradient(ellipse at 10% 36%,#eee2ff 0%,transparent 42%),#fcfbff}.receiver-shell{max-width:720px;margin:auto;padding:24px 23px 30px}.receiver-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.private-pill{background:#ffffffa6;border:1px solid #ffffffef;border-radius:30px;padding:10px 13px;color:#8c8ba3;font-size:11px;font-weight:700}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#81d7ba;margin-right:5px}.quote-stage{text-align:center;position:relative;padding:55px 0 35px}.quote-stage .eyebrow{position:relative;z-index:1}.quote-stage h1{font-size:clamp(28px,5vw,40px);margin:18px 0 28px;position:relative;z-index:1}.quote-stage h1 em{font-style:normal;color:#9470e5}.halo{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.halo-one{width:105px;height:105px;top:20px;left:7%;background:radial-gradient(circle at 25% 23%,#fff9,#acb9fa 52%,#d9baff);opacity:.48;animation:float 8s ease-in-out infinite}.halo-two{width:80px;height:80px;top:75px;right:7%;background:radial-gradient(circle at 25% 23%,#fff9,#b6e7ff 52%,#bdadff);opacity:.65;animation:float 7s ease-in-out -2s infinite}.quote-spark{font-size:55px;color:#b5a0f0;line-height:1;position:relative;z-index:1}.quote-card{text-align:left;background:linear-gradient(145deg,#ffffffed,#ffffffc9);border:1px solid white;border-radius:28px;padding:33px 36px;position:relative;box-shadow:0 25px 75px #8a83ba17;backdrop-filter:blur(16px);animation:appear .65s ease-out}.quote-glyph{font:800 74px Georgia,serif;color:#c6b5f7;height:53px}.quote-card>p{font:600 clamp(19px,3.5vw,26px)/1.75 Manrope,sans-serif;letter-spacing:-.65px;color:#47415f;margin:8px 0 32px;overflow-wrap:anywhere}.quote-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #efecf8;padding-top:15px;color:#b0a6c4;font-size:11px;font-weight:700}.quote-stamp{font-size:25px;color:#a98af0}.quote-hint{color:#a4a0b5;font-size:12px;margin-top:25px}.conversation{border-radius:28px;background:#ffffffdc;box-shadow:0 20px 70px #7870ae13;border:1px solid white;padding:26px;backdrop-filter:blur(12px)}.conversation-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0edf7;padding-bottom:16px}.conversation-header h2{margin:6px 0 0}.chat-icon{height:44px;width:44px;border-radius:15px;background:#f1ecff;display:grid;place-items:center;color:#9170e4;font-size:23px}.messages{display:flex;flex-direction:column;align-items:flex-end;gap:13px;min-height:160px;max-height:350px;overflow-y:auto;padding:22px 4px}.bubble{max-width:88%;background:linear-gradient(110deg,#a382f6,#8968eb);color:white;border-radius:19px 19px 5px 19px;padding:13px 17px;box-shadow:0 7px 16px #8b70d02c;animation:appear .35s ease-out;overflow-wrap:anywhere}.bubble p{margin:0;white-space:normal;line-height:1.6}.bubble small{display:block;color:#eee7ff;text-align:right;font-size:9px;margin-top:6px}.no-messages{text-align:center;color:#ada8c0;align-self:stretch;margin:auto}.no-messages div{font-size:32px}.no-messages p{margin:3px 0;font-size:13px}.no-messages small{font-size:11px}.reply-form{background:#faf9ff;border:1px solid #eae6fa;border-radius:20px;padding:14px}.reply-form textarea{display:block;border:0;background:transparent;resize:vertical;min-height:60px;width:100%;padding:5px 6px;color:var(--ink);line-height:1.6}.reply-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.reply-actions>span{color:#aaa4bd;font-size:11px;padding-left:5px}.form-error{color:#d15a78;font-size:12px;margin:8px 0 0;min-height:10px}.receiver-footer{text-align:center;color:#aaa4bb;font-size:11px;padding:30px 0}.receiver-footer span{color:#ae93f6;margin:0 5px}.modal-backdrop{position:fixed;inset:0;background:#38304875;backdrop-filter:blur(10px);z-index:100;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.thank-modal{text-align:center;background:radial-gradient(circle at top right,#e5dcff,#fff 56%);width:min(100%,420px);border-radius:32px;padding:35px 32px 30px;box-shadow:0 30px 100px #3126464d;animation:pop .4s cubic-bezier(.2,1.6,.3,1);position:relative}.modal-star{position:absolute;top:25px;right:30px;color:#b38df4;font-size:33px}.modal-orb{width:115px;height:115px;margin:0 auto 17px;border-radius:50%;display:grid;place-items:center;font-size:48px;background:radial-gradient(circle at 20% 20%,#ffffff,#d6d9ff 48%,#d3b5ff);box-shadow:inset -10px -9px 22px #aaa0ed80,0 13px 30px #9892d93b}.thank-modal h2{font-size:24px}.thank-modal #modalMessage{white-space:pre-wrap;overflow-wrap:anywhere;color:#79728e;margin:15px 0 28px}.public-empty{min-height:100vh;display:grid;place-content:center;text-align:center;padding:25px}.public-empty .empty-icon{font-size:60px;color:#9a77ec}@keyframes float{50%{transform:translateY(-13px) rotate(4deg)}}@keyframes appear{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{from{opacity:0;transform:translateY(22px) scale(.91)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1190px){.link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.app-main{padding:32px 26px 90px}.topbar{padding:0 26px}}@media(max-width:850px){.sidebar{transform:translateX(-105%);transition:transform .3s}.sidebar.open{transform:translateX(0)}.sidebar-overlay.open{display:block;position:fixed;inset:0;background:#27213c70;z-index:25}.main-wrap{margin-left:0;width:100%}.menu-toggle{display:block;border:0;background:#f4f0ff;color:#8765df;border-radius:10px;padding:9px 13px;font-size:18px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#fffffff5;backdrop-filter:blur(15px);border-top:1px solid #eee9fa;height:70px;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a,.mobile-nav button{font-size:23px;color:#856be0;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:50px}.mobile-nav small{font-size:10px;font-weight:700;color:#9e98b3}.topbar-right{display:none}.manage-grid,.editor-grid,.history-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar{height:60px;padding:0 17px}.app-main{padding:24px 15px 100px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px}.page-heading h1{font-size:27px}.welcome-banner{padding:24px;min-height:250px}.welcome-banner h2{font-size:27px}.banner-art{position:absolute;right:-95px;bottom:0;opacity:.35}.banner-art .orb{width:160px;height:160px}.floating-note{display:none}.welcome-banner>div:first-child{position:relative;z-index:1}.stat-grid{gap:10px}.stat-card{padding:15px;border-radius:16px}.stat-card strong{font-size:27px}.stat-card small{font-size:10px}.dashboard-columns,.link-grid{grid-template-columns:1fr;gap:15px}.panel{padding:19px;border-radius:19px}.qr-item{min-height:230px}.auth-wrap{padding:15px}.auth-card{padding:28px 21px;border-radius:24px}.receiver-shell{padding:19px 14px}.receiver-top .brand{font-size:15px}.receiver-top .brand-mark{width:31px;height:31px}.private-pill{font-size:9px;padding:9px}.quote-stage{padding-top:48px}.quote-stage h1{font-size:29px}.quote-card{padding:26px 24px;border-radius:23px}.quote-card>p{font-size:20px}.conversation{padding:19px 15px;border-radius:22px}.bubble{max-width:95%}.tab{font-size:12px;padding:12px 10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Multi-user platform administration */
.admin-shortcut{display:block;transition:transform .2s,box-shadow .2s}.admin-shortcut:hover{transform:translateY(-4px);box-shadow:0 22px 60px #8062d024}.admin-shortcut p{max-width:460px}.table-scroll{overflow-x:auto;max-width:100%}.admin-table{width:100%;border-collapse:collapse;text-align:left;min-width:610px}.admin-table th{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#a19bb6;padding:14px 12px;background:#faf9ff}.admin-table td{padding:17px 12px;border-bottom:1px solid #f1eff8;font-size:12px;color:#77738d}.admin-table td strong{color:#413753}.admin-table .btn{min-height:34px;padding:8px 12px;font-size:11px}.btn.danger{background:#fff0f1;color:#c85771}.role-label{display:block;margin-top:5px;color:#aaa1b7;font-size:10px}.admin-layout .sidebar>.brand{margin-bottom:40px}
@media(max-width:850px){.admin-layout{display:block}.admin-layout .sidebar{position:relative;transform:none;width:100%;height:auto;padding:15px 18px;display:block;border-right:0;border-bottom:1px solid #ebe8f7}.admin-layout .sidebar>.brand{margin:0 0 15px}.admin-layout .nav-label,.admin-layout .side-bottom{display:none}.admin-layout .side-nav{flex-direction:row;gap:5px;overflow-x:auto}.admin-layout .side-nav a{padding:9px 12px;white-space:nowrap;font-size:12px}.admin-layout .side-nav a span{font-size:16px;width:auto}.admin-layout .main-wrap{margin:0;width:100%}.admin-layout .topbar{display:none}}
.admin-nav-logout{display:none}.admin-nav-logout button{border:0;background:#fff0f1;color:#b85170;border-radius:12px;padding:12px;font-weight:700;white-space:nowrap}
@media(max-width:850px){.admin-layout .admin-nav-logout{display:block}.admin-layout .admin-nav-logout button{padding:9px 12px;font-size:12px}}
/* Public welcome / login-or-register chooser */
.welcome-page{min-height:100vh;background:radial-gradient(ellipse at 75% 12%,#dcefff 0%,transparent 40%),radial-gradient(ellipse at 20% 79%,#eae2ff 0%,transparent 43%),#fbfaff}.welcome-shell{max-width:1220px;margin:auto;min-height:100vh;display:flex;flex-direction:column;padding:27px 30px}.welcome-header{display:flex;justify-content:space-between;align-items:center}.welcome-content{flex:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:40px;padding:45px 0}.welcome-copy h1{font-size:clamp(37px,5.3vw,70px);line-height:1.17;letter-spacing:-3px;margin:17px 0 25px}.welcome-copy h1 em{font-style:normal;background:linear-gradient(110deg,#9d7cec,#648ecc);color:transparent;background-clip:text}.welcome-copy>p{font-size:16px;color:#8e899e;max-width:540px}.welcome-buttons{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0 17px}.welcome-buttons .btn{min-height:53px;padding:14px 23px}.welcome-visual{min-height:390px;position:relative;display:grid;place-items:center}.welcome-visual-orb{position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle at 24% 20%,#fff9,#a7dcfd 43%,#c0a7f8 77%,#ddd4ff);filter:blur(1px);box-shadow:0 30px 90px #8c8ec048;animation:float 7s ease-in-out infinite}.mini-letter{position:relative;z-index:1;width:min(100%,360px);background:#ffffffed;padding:30px;border:1px solid white;border-radius:25px;box-shadow:0 24px 75px #645b8a2c;transform:rotate(-4deg)}.mini-letter>span{color:#9b87c2;font-size:13px;font-weight:800}.mini-letter blockquote{font:700 23px/1.6 Manrope;color:#4c4064;margin:27px 0}.mini-letter>div{border-top:1px solid #eeeaf6;padding-top:16px;color:#a69dba;font-size:12px}.welcome-floating-heart{position:absolute;top:18px;right:5px;font-size:80px;color:#ac98f3}.welcome-bottom{text-align:center;color:#b0a8bb;padding:20px;font-size:12px}.setup-hint{max-width:530px;margin-top:19px}
@media(max-width:780px){.welcome-content{grid-template-columns:1fr;text-align:center;gap:10px;padding:50px 0 18px}.welcome-copy h1{letter-spacing:-1.6px}.welcome-copy>p,.setup-hint{margin-left:auto;margin-right:auto}.welcome-buttons{justify-content:center}.welcome-visual{min-height:250px}.welcome-visual-orb{width:220px;height:220px}.mini-letter{max-width:300px;padding:23px;transform:rotate(-2deg)}.mini-letter blockquote{font-size:18px}.welcome-floating-heart{right:12%;font-size:45px}}
@media(max-width:480px){.welcome-shell{padding:18px 16px}.welcome-header .brand{font-size:16px}.welcome-header .btn{padding:9px 12px;font-size:11px;min-height:38px}.welcome-content{padding-top:43px}.welcome-copy h1{font-size:38px}.welcome-copy>p{font-size:13px}.welcome-buttons{flex-direction:column}.welcome-buttons .btn{width:100%}.welcome-visual{min-height:210px}.welcome-visual-orb{width:180px;height:180px}.mini-letter{max-width:255px;padding:18px}.mini-letter blockquote{font-size:15px;margin:15px 0}.welcome-bottom{font-size:10px}}
/* QR Messager: mobile-first chat application */
.messenger-body{background:#edf1fa;min-height:100dvh}.messenger-app{min-height:100dvh;max-width:610px;background:#fbfaff;margin:auto;box-shadow:0 10px 70px #29224412;position:relative}.messenger-bar{position:sticky;top:0;z-index:15;background:#ffffffeb;backdrop-filter:blur(20px);min-height:76px;display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #eeebf7}.messenger-bar-left{display:flex;gap:14px;align-items:center;min-width:0}.messenger-bar-left>div{min-width:0}.messenger-bar h1{font-size:20px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.6px}.messenger-bar small{display:block;color:#a19cb4;font-size:10px;margin-top:3px}.messenger-logo{height:41px;width:41px;border-radius:15px;display:grid;place-items:center;font-size:26px;background:linear-gradient(130deg,#bfa8ff,#8460ef);color:#fff}.messenger-back{font-size:33px;line-height:1;color:#815de2;width:29px;display:block}.messenger-profile{position:relative;margin-left:12px;flex-shrink:0}.messenger-profile summary{list-style:none;height:39px;width:39px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(130deg,#a189f3,#8062e0);cursor:pointer}.messenger-profile summary::-webkit-details-marker{display:none}.profile-dropdown{position:absolute;right:0;top:49px;width:210px;background:white;border:1px solid #eee9f7;box-shadow:0 16px 40px #50457523;border-radius:16px;padding:15px;display:flex;flex-direction:column;gap:9px;z-index:30}.profile-dropdown strong,.profile-dropdown small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown small{color:#aba5bb;font-size:11px}.profile-dropdown a,.profile-dropdown button{display:block;font-size:12px;font-weight:700;color:#8064d9;padding:10px;border:0;border-radius:8px;background:#f7f4ff;text-align:left;width:100%}.messenger-content{min-height:calc(100dvh - 76px)}.chat-home{padding:22px 0 120px}.chat-welcome{margin:0 17px 19px;padding:22px;background:linear-gradient(128deg,#f0eaff,#eaf6ff);border-radius:20px}.chat-welcome h2{font-size:22px;margin:8px 0 5px}.chat-welcome h2 span{color:#9972de}.chat-welcome p{color:#9791aa;font-size:12px;margin:0}.chat-search-wrap{margin:0 18px 22px;border:1px solid #eeecf7;background:#fff;border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 14px}.chat-search-wrap span{font-size:25px;color:#a88ced}.chat-search-wrap input{border:0;background:transparent;outline:0;height:46px;width:100%;color:#42394f}.chat-list-label{font-weight:800;font-size:11px;letter-spacing:1.3px;color:#9488b0;margin:0 22px 9px}.chat-list-label span{background:#eee8ff;color:#8968d9;padding:3px 8px;border-radius:10px;margin-left:6px}.chat-list{background:white;border-top:1px solid #f3effb;border-bottom:1px solid #f3effb}.chat-list-item{display:flex;align-items:center;gap:13px;padding:16px 20px;min-height:88px;border-bottom:1px solid #f2eff9;transition:background .15s}.chat-list-item:last-child{border-bottom:0}.chat-list-item:hover{background:#f9f6ff}.chat-list-item[hidden]{display:none}.chat-avatar{height:55px;width:55px;flex-shrink:0;border-radius:19px;background:linear-gradient(145deg,#bbddfa,#ad92f2);color:white;font:800 25px Manrope;display:grid;place-items:center}.chat-list-item:nth-child(3n+1) .chat-avatar{background:linear-gradient(145deg,#ffd9e4,#b9a4fb)}.chat-list-item:nth-child(3n+2) .chat-avatar{background:linear-gradient(145deg,#bdece7,#92bffa)}.chat-details{min-width:0;flex:1;display:flex;flex-direction:column;gap:7px}.chat-name{font:800 14px Manrope;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-preview{font-size:12px;color:#aaa4b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list-meta{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;color:#aaa5b6;font-size:10px;white-space:nowrap}.chat-reply-count{background:#8f69e6;border-radius:50%;color:white;font-size:10px;min-width:21px;height:21px;display:grid;place-items:center;font-weight:800}.chat-chevron{font-size:20px}.chat-fab{position:fixed;bottom:28px;right:max(22px,calc((100vw - 610px)/2 + 20px));width:54px;height:54px;border-radius:19px;background:linear-gradient(145deg,#aa8af6,#7853e5);color:white;font-size:35px;line-height:1;display:grid;place-items:center;box-shadow:0 12px 25px #7552da60;z-index:12;transition:transform .2s}.chat-fab:hover{transform:translateY(-3px)}.chat-empty{text-align:center;padding:65px 20px;color:#aaa2b8}.chat-empty>div{font-size:44px}.chat-empty h3{color:#584b75}.chat-no-results{text-align:center;color:#aaa2b8;padding:22px}.chat-no-results[hidden]{display:none}.conversation-screen{min-height:calc(100dvh - 76px);background:radial-gradient(ellipse at 6% 30%,#e8e0fd,transparent 42%),radial-gradient(ellipse at 97% 72%,#e7f5ff,transparent 40%),#faf9ff;padding-bottom:25px}.conversation-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:65px;padding:10px 19px;border-bottom:1px solid #ebe7f5;color:#9790aa;font-size:12px;background:#ffffff66}.conversation-online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6dc9aa;margin-right:8px}.conversation-toolbar-buttons{display:flex;gap:9px}.chat-action-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:white;border:1px solid #ece8f9;color:#9072d8;font-size:23px;box-shadow:0 4px 12px #9282b016}.change-quote-icon{background:#8e6be8;color:white;border-color:#8e6be8}.chat-thread{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:23px 17px;min-height:300px;max-height:65dvh;overflow-y:auto}.thread-date{align-self:center;background:#ebe6fa;color:#9384b2;border-radius:12px;padding:6px 13px;font-size:10px;font-weight:800;letter-spacing:1px}.chat-message{border-radius:18px;padding:15px 18px;max-width:90%;box-shadow:0 4px 14px #63558413;overflow-wrap:anywhere}.chat-message small{font-size:10px;font-weight:800;color:#a18dbb}.chat-message p{margin:8px 0 9px;white-space:normal;line-height:1.75;font-size:14px}.chat-message time{display:block;font-size:9px;color:#b0a7bb;text-align:right}.quote-message{background:white;border-bottom-left-radius:5px}.visitor-message{align-self:flex-end;background:#e8ddff;border-bottom-right-radius:5px}.visitor-message small{color:#8b6acd}.visitor-message time{color:#9b89b4}.thread-empty{align-self:center;text-align:center;color:#a6a0b8;margin:28px 0}.thread-empty p{font-size:12px}.conversation-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px;background:#ffffffb8;color:#9c93aa;font-size:11px}.conversation-bottom a{color:#8767d8;font-weight:800}.chat-settings{margin:16px;border:1px solid #eeeaf6;border-radius:16px;background:#fff;padding:18px}.chat-settings summary{font-weight:800;color:#8571aa;cursor:pointer}.chat-settings form{margin-top:17px}.chat-flash{margin:15px 17px;background:#e6f9ef;color:#379970;border-radius:12px;padding:12px;font-size:12px}.chat-dialog{border:1px solid #f4effc;border-radius:24px;width:min(92vw,460px);padding:25px;box-shadow:0 25px 75px #49395d45;color:#413751}.chat-dialog::backdrop{background:#29213f8c;backdrop-filter:blur(7px)}.chat-dialog .dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:8px}.chat-dialog h2{margin:3px 0}.dialog-close{border:0;background:#f1edff;color:#8969d5;width:35px;height:35px;border-radius:12px;font-size:24px}.chat-dialog .share-url{margin-top:14px}.chat-dialog .btn{margin-top:10px}.messenger-body .app-main{padding:24px 18px 80px}.messenger-body .editor-grid{grid-template-columns:1fr}.messenger-body .page-heading{display:none}.messenger-body .panel{padding:21px}.messenger-body .stack{gap:15px}
@media(max-width:530px){.messenger-body{background:#fbfaff}.messenger-app{box-shadow:none}.messenger-bar{padding:14px 16px}.chat-home{padding-top:18px}.chat-fab{bottom:calc(20px + env(safe-area-inset-bottom));right:20px}.chat-thread{max-height:66dvh}.conversation-bottom{align-items:flex-start;flex-direction:column}}
/* Receiver: a single clean reply field and send icon */
.receiver-page .conversation.minimal-reply{padding:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none;border-radius:0;margin:0 0 26px}.receiver-page .minimal-reply .messages{min-height:0;max-height:340px;padding:10px 3px 16px;gap:10px}.receiver-page .minimal-reply .messages:empty{display:none}.receiver-page .minimal-reply .reply-form{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #eae4f7;box-shadow:0 7px 24px #8874ba12;border-radius:22px;padding:7px 8px 7px 18px;min-height:62px}.receiver-page .minimal-reply .reply-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#4a4260;padding:10px 0;font-size:14px}.receiver-page .minimal-reply .reply-form input::placeholder{color:#ada5c0}.receiver-page .minimal-reply .reply-form input:focus{box-shadow:none}.reply-send-icon{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;background:linear-gradient(135deg,#a987f6,#7855e9);border:0;border-radius:15px;color:white;font-size:20px;box-shadow:0 7px 15px #8d6dde36;transition:transform .2s}.reply-send-icon:hover{transform:translateY(-2px)}.reply-send-icon:disabled{opacity:.6;cursor:wait}.receiver-page .minimal-reply .form-error{padding-left:12px;margin:5px 0 0}.receiver-page .minimal-reply .form-error:empty{display:none}
/* Popup displays ONLY the creator's exact custom message, plus a close control. */
.thank-modal.simple-popup{width:min(90vw,400px);padding:48px 28px 32px;border-radius:24px;background:#fff;box-shadow:0 22px 65px #251d3e40;min-height:0}.simple-popup #modalMessage{margin:0;color:#48405d;font:600 clamp(15px,3.8vw,19px)/1.8 'DM Sans',sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;text-align:center}.simple-popup-close{position:absolute;top:9px;right:12px;width:32px;height:32px;display:grid;place-items:center;background:transparent;border:0;color:#968da7;font-size:26px;font-weight:400;border-radius:50%}.simple-popup-close:hover{background:#f1ecfc;color:#7854d9}
/* Receiver viewport-fit: no unnecessary introduction or page scrollbar. */
html:has(body.receiver-page){height:100%;overflow:hidden}
body.receiver-page{height:100dvh;overflow:hidden}
.receiver-page .receiver-shell{height:100dvh;max-height:100dvh;min-height:0;display:flex;flex-direction:column;gap:0;padding:18px 16px 22px;overflow:hidden}
.receiver-page .receiver-top{flex:0 0 auto}
.receiver-page .quote-stage{flex:1 1 auto;min-height:0;padding:18px 0;display:flex;align-items:center;justify-content:center;text-align:left}
.receiver-page .quote-stage .quote-card{width:100%;max-height:100%;overflow-y:auto;padding:27px 25px;border-radius:24px}
.receiver-page .quote-stage .quote-card>p{font-size:clamp(18px,4.5vw,25px);line-height:1.65;margin:0}
.receiver-page .conversation.minimal-reply{flex:0 0 auto;margin:0}
.receiver-page .minimal-reply .messages{max-height:min(25dvh,190px);overflow-y:auto}
.receiver-page .quote-card,.receiver-page .messages{scrollbar-width:none}
.receiver-page .quote-card::-webkit-scrollbar,.receiver-page .messages::-webkit-scrollbar{display:none}
@media(max-height:560px){.receiver-page .receiver-shell{padding-top:10px;padding-bottom:10px}.receiver-page .quote-stage{padding:10px 0}.receiver-page .quote-stage .quote-card{padding:18px}.receiver-page .minimal-reply .messages{max-height:18dvh}}
/* Place replies immediately below the quote, with the composer at the bottom. */
.receiver-page .receiver-shell{gap:0}
.receiver-page .quote-stage{flex:0 0 auto;min-height:0;max-height:42dvh;display:block;padding:28px 0 10px}
.receiver-page .quote-stage .quote-card{max-height:calc(42dvh - 38px)}
.receiver-page .conversation.minimal-reply{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.receiver-page .minimal-reply .messages{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;padding:10px 3px 14px;align-items:flex-end;justify-content:flex-start}
.receiver-page .minimal-reply .messages:empty{display:block}
.receiver-page .minimal-reply .reply-form{flex-shrink:0;margin-top:auto}
.receiver-page .minimal-reply .form-error:not(:empty){flex-shrink:0}
@media(max-width:560px){.receiver-page .quote-stage{padding-top:23px;padding-bottom:8px}}
@media(max-height:560px){.receiver-page .quote-stage{padding-top:10px;padding-bottom:6px;max-height:40dvh}.receiver-page .quote-stage .quote-card{max-height:calc(40dvh - 16px)}.receiver-page .minimal-reply .messages{max-height:none}}
/* Creator conversation: compact, full-height chat layout */
html:has(body.messenger-body .conversation-screen){height:100%;overflow:hidden}
body.messenger-body:has(.conversation-screen){height:100dvh;overflow:hidden}
.messenger-body:has(.conversation-screen) .messenger-app{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.messenger-body:has(.conversation-screen) .messenger-bar{flex:0 0 auto;min-height:69px;padding:11px 17px}
.messenger-body:has(.conversation-screen) .messenger-bar h1{font-size:18px}
.messenger-body:has(.conversation-screen) .messenger-content{flex:1;min-height:0;height:auto;overflow:hidden}
.messenger-body .conversation-screen{height:100%;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden;background:radial-gradient(ellipse at 10% 25%,#eee8ff 0%,transparent 44%),radial-gradient(ellipse at 90% 75%,#e7f4ff 0%,transparent 48%),#faf9ff}
.messenger-body .conversation-toolbar{flex:0 0 auto;min-height:55px;padding:8px 18px;background:#ffffffb3;border-bottom:1px solid #f1edf8}
.messenger-body .chat-action-icon{width:37px;height:37px;border-radius:12px;font-size:19px}
.messenger-body .conversation-online-dot{width:7px;height:7px}
.messenger-body .chat-thread{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;scrollbar-width:none;padding:20px 17px 25px;gap:12px;align-items:flex-start}
.messenger-body .chat-thread::-webkit-scrollbar{display:none}
.messenger-body .thread-date{font-size:10px;letter-spacing:.4px;font-weight:700;padding:6px 12px;background:#f1edfa;color:#9585b4}
.messenger-body .chat-message{max-width:84%;padding:12px 15px;border-radius:17px;box-shadow:0 4px 12px #6758880d}
.messenger-body .chat-message p{font-size:14px;line-height:1.65;margin:0 0 5px;color:#453956}
.messenger-body .chat-message time{font-size:10px;color:#a398b7}
.messenger-body .quote-message{min-width:50%;background:white;border-radius:16px 16px 16px 5px;border:1px solid #f3eff9}
.messenger-body .visitor-message{align-self:flex-end;background:#e9ddff;border-radius:16px 16px 5px 16px}
.messenger-body .visitor-message time{color:#9982b9}
.messenger-body .thread-empty{font-size:12px;color:#aaa1ba;margin:25px auto;align-self:center}
.messenger-body .conversation-bottom{flex:0 0 auto;display:flex;flex-direction:row;justify-content:space-between;align-items:center;background:#fff;border-top:1px solid #f0ecfa;padding:12px 19px 14px;min-height:57px;font-size:12px;color:#a295b6}
.conversation-bottom-actions{display:flex;align-items:center;gap:17px}
.conversation-bottom-actions a{font-size:12px;color:#8767d8;font-weight:800}
.conversation-bottom-actions button{border:0;background:#f2edff;color:#8564d3;border-radius:10px;width:31px;height:31px;font-size:17px}
.messenger-body .chat-dialog{max-height:min(85dvh,700px);overflow-y:auto}
.messenger-body .owner-view-status{font-size:12px;font-weight:700;color:#7860ba;background:#f5f0ff;padding:7px 18px;text-align:center;border-bottom:1px solid #ece6fa}
/* Owner conversation: the Seen strip and chat share the available viewport.
   Keep the bottom reply counter/settings in view on narrow mobile screens. */
.messenger-body:has(.conversation-screen) .messenger-content{display:flex;flex-direction:column;min-width:0;min-height:0}
.messenger-body:has(.conversation-screen) .owner-view-status{flex:0 0 auto;padding:6px 12px;font-size:11px}
.messenger-body:has(.conversation-screen) .conversation-screen{flex:1 1 auto;height:auto;min-height:0;min-width:0}
.messenger-body:has(.conversation-screen) .conversation-bottom{flex-shrink:0;min-width:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:8px}
.messenger-body:has(.conversation-screen) .conversation-bottom>span{min-width:0;overflow-wrap:anywhere}
.messenger-body:has(.conversation-screen) .conversation-toolbar{gap:8px;min-width:0}
.messenger-body:has(.conversation-screen) .conversation-toolbar>div:first-child{min-width:0;overflow-wrap:anywhere;line-height:1.4}
.messenger-body:has(.conversation-screen) .conversation-toolbar-buttons{flex:0 0 auto}
.messenger-body:has(.conversation-screen) .chat-thread{min-width:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.messenger-body .quote-message .quote-seen-status{display:block;margin-top:4px;text-align:right;font-size:10px;line-height:1.4;font-weight:700;color:#9171ce;white-space:nowrap}
@media(max-width:380px){.messenger-body:has(.conversation-screen) .conversation-toolbar{padding:7px 11px;font-size:11px}.messenger-body:has(.conversation-screen) .chat-action-icon{width:34px;height:34px}.messenger-body:has(.conversation-screen) .conversation-bottom{padding-left:12px;padding-right:12px}}
@media(max-width:530px){.messenger-body .chat-thread{padding:16px 14px 23px}.messenger-body .chat-message{max-width:87%}.messenger-body .conversation-bottom{flex-direction:row;padding:11px 15px}.messenger-body:has(.conversation-screen) .messenger-bar{padding:11px 15px}}
