@charset "UTF-8";
:root{--ink:#1b3039;--muted:#7a888e;--line:#e4e9e7;--paper:#f4f6f3;--teal:#24665e;--mint:#a7e1cf;--accent:#8be0cb;--screen-bg:#101f2a;--screen-text:#f4f4ec;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #69bca5;outline-offset:3px}input:focus,textarea:focus,select:focus{border-color:#3b8b78;outline:3px solid #3b8b7814}input,textarea,select{max-width:100%;min-width:0;border:1px solid #dce3de;background:white;border-radius:9px;padding:12px 14px;color:var(--ink)}input[type=checkbox]{accent-color:var(--teal);width:17px;height:17px;vertical-align:middle}input[type=color]{padding:5px;width:100%;height:45px}textarea{resize:vertical;line-height:1.7}select{cursor:pointer}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:15px}p{line-height:1.7}small{font-size:12px}[hidden]{display:none!important}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;color:#7c9990;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid #dbe3de;background:#fff;border-radius:9px;padding:12px 19px;min-height:44px;font-size:13px;font-weight:550;white-space:nowrap;transition:background .18s,transform .18s}.button:hover{background:#f0f5ef;transform:translateY(-1px)}.button.primary{color:#fff;background:var(--teal);border-color:var(--teal)}.button.primary:hover{background:#174e47}.button.mint{color:#183b35;background:#b1e9d7;border-color:transparent}.button.ghost{background:transparent;border-color:#ffffff38;color:#e5eee8}.button.ghost:hover{background:#ffffff12}.button.small{font-size:12px;padding:9px 12px;min-height:36px}.button.subtle{border-color:transparent;color:#397267;background:#eaf4ec}.button.dashed{border-style:dashed;color:#507669;background:transparent}.button.danger,.danger{color:#ae3b43}.full{width:100%}.block{display:block}.center{text-align:center}.text-button{border:0;background:transparent;color:#52766b;padding:8px 4px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.text-button:hover,.text-link:hover{color:#143d32}.text-link{font-size:12px;color:#507267;line-height:1.5}.small-note{font-size:11px;color:#86928d;line-height:1.8}.brand{display:inline-flex;gap:9px;align-items:center;font-size:34px;color:#326e5f;font-weight:500}.brand span{font-size:22px;font-weight:650;letter-spacing:3px;display:flex;align-items:center;gap:12px}.brand small{font-size:9px;font-weight:500;letter-spacing:2px;color:#8a9e95}.surface{border:1px solid var(--line);border-radius:14px;background:#fff}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:19px;min-width:0}.field label{font-size:12px;color:#53645d;font-weight:500}.field input:not([type=checkbox]),.field select,.field textarea{width:100%;font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.inline-error{color:#b24646;font-size:12px;margin:8px 0 16px}.required{color:#c25858}.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translateX(-50%);padding:14px 24px;color:#fff;background:#244e43;box-shadow:0 8px 40px #15332a28;border-radius:12px;max-width:calc(100% - 32px);font-size:13px}.toast.error{background:#9b4148}.info-box{background:#f0f6f1;border:1px solid #e3eee6;border-radius:10px;padding:14px 16px;font-size:12px;line-height:1.9;color:#6a8278}
/* Entrance and password gate */
.entrance{min-height:100svh;background:radial-gradient(ellipse at 90% 0%,#d7e4d4,transparent 55%),#f0f3ec;display:grid;place-items:center;padding:30px}.entrance-card{width:min(900px,100%);padding:70px 10px}.entrance-card .brand{margin-bottom:65px}.entrance-card h1{font-size:clamp(36px,6vw,76px);line-height:1.35;margin:20px 0;font-weight:550;letter-spacing:-2px}.entrance-card h1 span{color:#3c8e75}.entrance-card>p{color:#7e8d81;font-size:16px}.entrance-actions{display:flex;align-items:center;gap:14px;margin-top:40px;flex-wrap:wrap}.entrance-foot{font-size:11px;letter-spacing:4px;color:#8b9c8b;margin-top:90px}.login-screen{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;background:#f6f7f2}.login-card{width:min(430px,100%);margin:auto;padding:50px 35px}.login-card .brand{margin-bottom:64px}.login-card .eyebrow{display:block;margin-bottom:15px}.login-card h1{font-size:30px;line-height:1.5;margin-bottom:16px}.login-card>.muted{font-size:13px}.login-card form{margin:34px 0 22px}.login-card>.small-note{margin-bottom:22px}.login-decoration{background:#18382f;position:relative;overflow:hidden;color:#eaf3df;padding:12%;display:flex;flex-direction:column;justify-content:center}.login-decoration p{font-size:clamp(30px,4vw,62px);font-weight:300;letter-spacing:4px;line-height:1.7;z-index:1}.login-decoration p span{font-size:10px;letter-spacing:3px;display:block;margin-top:35px;color:#b5c5ad}.decor-ring{position:absolute;width:600px;height:600px;border:1px solid #6d967c44;border-radius:50%;top:-180px;right:-200px}.decor-ring.ring-two{top:auto;bottom:-260px;right:80px;width:700px;height:700px}.decor-star{font-size:170px;line-height:1;color:#b9d59e;margin-bottom:50px}
/* Management */
.admin-body{background:var(--paper)}.admin-app{display:flex;min-height:100vh}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:#fbfcf8;border-right:1px solid var(--line);padding:33px 20px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{margin-left:15px}.sidebar .brand span{gap:0}.sidebar .brand small{display:none}.sidebar-label{color:#98a397;font-size:10px;letter-spacing:2px;margin:50px 17px 17px}.nav-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 17px;border:0;background:transparent;border-radius:8px;text-align:left;color:#7a897d;font-size:13px;margin-bottom:6px}.nav-item .icon{width:18px;height:18px}.nav-item.active{background:#e6eee2;color:#315e47;font-weight:600}.nav-item:hover{background:#edf2e9}.sidebar-bottom{margin-top:auto;padding:25px 15px 0}.sidebar-note{color:#8d9b89;font-size:10px;margin-bottom:25px}.status-dot{display:inline-block;width:6px;height:6px;background:#73a985;border-radius:50%;margin-right:7px}.admin-main{margin-left:224px;width:calc(100% - 224px);min-width:0}.admin-topbar{height:76px;background:#ffffff66;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:11px;color:#95a092;display:flex;gap:13px}.breadcrumb b{font-weight:500;color:#60715f}.topbar-actions{display:flex;align-items:center;gap:16px}.admin-badge{font-size:10px;border:1px solid #dde6d9;border-radius:20px;padding:7px 14px;color:#6b7d62;background:#f7f9f3}#mobile-logout{display:none}.admin-content{max-width:1550px;margin:auto;padding:36px 40px 70px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.page-heading h1{margin:9px 0 9px;font-size:28px}.page-heading .muted{font-size:12px}.heading-actions{display:flex;gap:10px;align-items:center}.heading-actions select{max-width:200px;font-size:12px;padding:10px}.local-banner{padding:11px 15px;background:#fcf5df;border:1px solid #eee3bf;color:#8b7950;border-radius:9px;font-size:11px;line-height:1.8;margin-bottom:20px}.overview-hero{padding:34px 40px;background:#15382e;border-radius:16px;display:flex;justify-content:space-between;min-height:255px;color:#f2f3e5;overflow:hidden;position:relative}.hero-copy{z-index:1;max-width:75%}.hero-label{display:flex;gap:14px;align-items:center;color:#96b69c;font-size:10px;letter-spacing:2px}.hero-copy h2{font-size:30px;font-weight:500;letter-spacing:1px;margin:19px 0 8px;overflow-wrap:anywhere}.hero-copy>p{font-size:12px;color:#b5c8b2}.hero-meta{font-size:10px;color:#88a991;margin-top:12px}.hero-actions{display:flex;gap:12px;margin-top:25px}.hero-actions .button{font-size:12px;min-height:40px}.hero-art{width:220px;flex-shrink:0;position:relative;display:grid;place-items:center}.hero-art>span{font-size:170px;color:#bad69d;line-height:1;z-index:1}.art-orbit{position:absolute;width:290px;height:290px;top:-90px;left:0;border:1px solid #81a68b40;border-radius:50%}.art-orbit.second{width:340px;height:340px;top:70px;left:80px}.art-stamp{position:absolute;font-size:8px;letter-spacing:3px;line-height:1.9;color:#a6bd9c;bottom:-4px;right:-2px;text-align:right}.status-badge{display:inline-flex;gap:6px;align-items:center;font-size:10px;letter-spacing:0;white-space:nowrap;background:#f0f2ec;border:1px solid #dfe7da;color:#7c8c71;border-radius:20px;padding:6px 11px}.status-badge i{display:block;width:5px;height:5px;border-radius:50%;background:currentColor}.status-badge.open{color:#4a9265;background:#edf6ed;border-color:#d2e7d3}.status-badge.paused{color:#a5823b;background:#fbf5df;border-color:#eee4c3}.status-badge.ended{color:#8a8b89;background:#f0f1ee}.overview-hero .status-badge{background:#ffffff10;color:#c3ddb0;border-color:#7a9c7440}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:22px 0}.stat-card{padding:22px 25px;position:relative}.stat-icon{position:absolute;right:24px;top:24px;color:#6d9178;background:#eef3e8;border-radius:11px;padding:10px}.stat-card>span{font-size:11px;color:#87937d}.stat-card>strong{display:block;font-weight:550;font-size:36px;line-height:1.5;margin:8px 0 3px;color:#2d4233;letter-spacing:-1px}.stat-card small{font-size:11px;font-weight:400;color:#96a18e;letter-spacing:0;margin-left:8px}.stat-card>p{font-size:10px;color:#a1aa9b}.panel{padding:24px 26px;margin-bottom:22px}.panel-heading{display:flex;justify-content:space-between;margin-bottom:22px}.panel-heading h2{font-size:15px;color:#425542}.panel-heading p{font-size:10px;color:#97a18f;margin-top:7px}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px}.preview-frame{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#101f2a;border:1px solid #ffffff0a}.preview-frame iframe{width:400%;height:400%;border:0;transform:scale(.25);transform-origin:top left;position:absolute;left:0;top:0}.panel-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px}.panel-bottom>span{font-size:9px;color:#a1aa9a}.admin-qr{text-align:center;margin:5px auto 17px}.admin-qr img{display:block;width:150px;height:150px;margin:auto}.admin-qr span{font-size:10px;color:#8c9b86;display:block;margin-top:9px}.qr-panel .text-link{margin-top:13px}.recent-list{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px}.recent-person{display:flex;gap:10px;align-items:center;flex:1;min-width:180px;max-width:300px;padding:12px 0}.person-avatar{display:grid;place-items:center;background:#eaf1e5;color:#7b9770;border-radius:50%;width:32px;height:32px;font-size:13px;flex-shrink:0}.recent-person b{font-size:11px;font-weight:500;max-width:100px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-person small{font-size:9px;display:block;color:#a1aa9b;margin-top:6px}.recent-person img{object-fit:contain;width:65px;height:40px;margin-left:auto}.empty-inline{text-align:center;color:#98a38e;font-size:12px;padding:42px 15px;width:100%}.admin-footer{padding:0 40px 25px;display:flex;justify-content:space-between;color:#aab29e;font-size:9px;letter-spacing:2px}.save-bar{padding:17px 22px;background:#ffffffeb;border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between;align-items:center;margin:5px 0 24px;position:sticky;bottom:12px;z-index:5;box-shadow:0 5px 20px #2c4c2910}.save-bar>span{font-size:11px;color:#8d9984}.field-editor{border:1px solid #e2e9df;border-radius:10px;padding:12px 20px;margin-bottom:15px;background:#fcfdf9}.field-editor-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.field-id{font-size:9px;color:#a3b19b;letter-spacing:1px}.field-checks{display:flex;align-items:center;gap:20px;font-size:12px;padding-top:16px;margin-bottom:19px}.field-checks label{display:flex;align-items:center;gap:8px}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mode-option{position:relative}.mode-option>input{position:absolute;right:16px;top:18px;accent-color:var(--teal)}.mode-option>span{display:flex;flex-direction:column;border:1px solid #e0e6da;border-radius:11px;padding:21px 17px;cursor:pointer;min-height:144px;gap:10px}.mode-option>input:checked+span{border-color:#86b294;background:#f0f6ed}.mode-option .icon{color:#6b9374;width:24px;height:24px}.mode-option b{font-size:12px;font-weight:550}.mode-option small{font-size:10px;color:#8fa083;line-height:1.7}.theme-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}.theme-option{border:1px solid #e4e9df;background:white;border-radius:9px;padding:6px 6px 10px;font-size:10px;color:#7b8c71}.theme-option.selected{border-color:#7eaa83;box-shadow:0 0 0 1px #7eaa83}.theme-option>i{display:block;border-radius:5px;height:55px;margin-bottom:9px;padding:13px}.theme-option>i>span{height:100%;width:50%;display:block;border-radius:3px;opacity:.7}.design-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.design-preview{position:sticky;top:20px;align-self:start}.preview-label{font-size:11px;color:#8a9c7a;margin:4px 0 16px}.design-preview .small-note{margin:12px 0 20px}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid #f0f2ec;font-size:12px;position:relative;cursor:pointer}.toggle-row small{display:block;color:#8f9e83;font-size:10px;margin-top:5px}.toggle-row>input{position:absolute;right:5px;opacity:0}.toggle{width:35px;height:20px;border-radius:20px;background:#dbe3d6;transition:background .2s}.toggle:after{content:"";display:block;width:14px;height:14px;border-radius:50%;background:white;margin:3px;transition:transform .2s}.toggle-row input:checked+.toggle{background:#5b8b69}.toggle-row input:checked+.toggle:after{transform:translateX(15px)}.toggle-row input:focus-visible+.toggle{outline:3px solid #90b89d}.upload-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf1e8}.upload-row>div{margin-right:auto}.upload-row b{font-size:12px;font-weight:500}.upload-row p{font-size:10px;margin-top:5px}.upload-label{cursor:pointer}.upload-label.busy{opacity:.5;pointer-events:none}.status-control{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.button-row{display:flex;gap:12px;flex-wrap:wrap}.export-box{display:flex;gap:18px;align-items:center;margin-bottom:18px}.export-icon{padding:15px;border-radius:12px;color:#618769;background:#edf4e7}.export-icon .icon{width:27px;height:27px}.export-box>div:nth-child(2){flex:1}.export-box h3{font-size:13px;margin-bottom:8px}.export-box p{font-size:10px;color:#93a184}.records-toolbar{display:flex;gap:10px;margin-bottom:17px}.records-toolbar input{flex:1;width:100%;font-size:12px}.records-summary{font-size:11px;color:#98a48b;margin:16px 0}.table-scroll{overflow-x:auto}.records-table{border-collapse:collapse;width:100%;font-size:11px;text-align:left;min-width:600px}.records-table th{font-size:10px;font-weight:500;color:#97a38a;padding:14px 10px;background:#f6f8f0;border-bottom:1px solid #e7eddf}.records-table td{padding:13px 10px;border-bottom:1px solid #eff2e9;color:#687d5e;max-width:220px;overflow-wrap:anywhere}.records-table b{font-weight:550}.records-table small{display:block;font-size:9px;color:#9ba78d;margin-top:6px}.record-signature{width:125px;height:55px;object-fit:contain}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:12px;color:#77886b}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:25px}dialog{border:1px solid #dde5d6;border-radius:16px;padding:30px;width:min(460px,calc(100% - 30px));box-shadow:0 20px 100px #1932252b}dialog::backdrop{background:#152f2b66;backdrop-filter:blur(3px)}dialog h2{font-size:20px;margin-bottom:24px}dialog p{font-size:13px}
/* Large-screen experience */
.display-body{background:var(--screen-bg);color:var(--screen-text);width:100%;height:100svh;overflow:hidden}.screen{position:relative;height:100svh;display:flex;flex-direction:column;padding:clamp(22px,3vw,64px);gap:clamp(18px,2.5vh,36px);isolation:isolate}.screen:before{content:"";position:absolute;width:50vw;height:50vw;right:-15vw;top:-32vw;border:1px solid color-mix(in srgb,var(--accent) 15%,transparent);border-radius:50%;z-index:-1;box-shadow:0 0 0 9vw color-mix(in srgb,var(--accent) 2%,transparent),0 0 0 9.05vw color-mix(in srgb,var(--accent) 7%,transparent);pointer-events:none}.screen-background{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;opacity:.25;pointer-events:none}.screen-header{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.screen-organizer{color:var(--accent);font-size:clamp(10px,1vw,18px);letter-spacing:3px;margin-bottom:14px}.screen-header h1{font-weight:500;font-size:clamp(24px,var(--title-size),6vw);letter-spacing:1px;line-height:1.35;overflow-wrap:anywhere}.screen-header p{font-size:clamp(10px,1.2vw,21px);opacity:.48;margin-top:12px;letter-spacing:2px}.screen-top-right{display:flex;align-items:center;gap:25px;flex-shrink:0}.screen-count{text-align:right;border-left:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding:5px 0 5px 30px}.screen-count strong{font-size:clamp(30px,4vw,64px);color:var(--accent);font-weight:350;line-height:1.2;letter-spacing:-2px}.screen-count span{display:block;font-size:11px;letter-spacing:2px;opacity:.5;margin-top:8px}#screen-logo{max-width:140px;max-height:75px;object-fit:contain}.screen-content{display:flex;gap:clamp(20px,2.5vw,45px);flex:1;min-height:0}.wall-area{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.signature-wall{display:grid;grid-template-columns:repeat(var(--columns,5),minmax(0,1fr));gap:clamp(9px,1.1vw,20px);height:100%;min-height:0;flex:1}.signature-card{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:0;overflow:hidden;border-radius:clamp(8px,1vw,15px);background:rgb(255 255 255 / var(--card-opacity,.96));padding:clamp(8px,1vw,20px);box-shadow:0 5px 20px #0000000a;animation:arrive .45s ease both;animation-delay:var(--delay,0ms)}.signature-card img{width:100%;flex:1;min-height:0;object-fit:contain}.card-number{position:absolute;top:10px;left:13px;font-size:9px;color:#97a9a3;letter-spacing:1px}.signature-name{color:#4c6c62;max-width:100%;font-size:clamp(10px,1vw,17px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-top:3px}.signature-card time{font-size:9px;color:#97a8a0;margin-top:5px}.screen-qr{flex-shrink:0;align-self:center;width:calc(var(--qr-size,180px) + 32px);padding:30px 16px;text-align:center;border-top:1px solid color-mix(in srgb,var(--accent) 23%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 23%,transparent)}.tiny-label{font-size:9px;letter-spacing:4px;color:var(--accent)}.screen-qr h2{font-size:23px;font-weight:400;letter-spacing:4px;margin:14px 0 25px}.qr-image{background:white;padding:6px;border-radius:12px;width:var(--qr-size,180px);height:var(--qr-size,180px);margin:auto}.qr-image img{width:100%;height:100%;display:block}.screen-qr>p{font-size:12px;line-height:2;letter-spacing:2px;opacity:.5;margin-top:22px}.screen-status{display:inline-block;font-size:9px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:20px;padding:6px 12px;margin-top:20px;letter-spacing:1px}.screen-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:clamp(9px,.75vw,13px);letter-spacing:2px;opacity:.5;min-height:17px}.screen-pagination{display:flex;gap:8px;align-items:center}.screen-pagination>span{font-size:10px;margin-right:8px}.screen-pagination i{width:4px;height:4px;background:currentColor;border-radius:50%;opacity:.3}.screen-pagination i.active{opacity:1;width:15px;border-radius:4px;background:var(--accent)}.connection{font-size:9px;letter-spacing:1px;white-space:nowrap}.connection:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:7px}.connection.offline{color:#eac08a}.screen-controls{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px;opacity:0;transition:opacity .2s;z-index:10;padding:12px}.display-body:hover .screen-controls,.screen-controls:focus-within{opacity:1}.screen-controls .button{background:#ffffffee;color:#344d43;font-size:11px}.wall-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed color-mix(in srgb,var(--accent) 18%,transparent);border-radius:18px;margin:0 0 12px}.empty-mark{font-size:80px;color:var(--accent);opacity:.65;margin-bottom:15px}.wall-empty h2{font-weight:350;font-size:24px;letter-spacing:5px;opacity:.75}.wall-empty p{font-size:12px;letter-spacing:2px;opacity:.35;margin-top:17px}.event-hero{padding:5px 0 25px;flex-shrink:0}.event-hero .eyebrow{color:var(--accent);font-size:9px}.event-hero h2{font-size:clamp(22px,3vw,44px);font-weight:300;margin:10px 0}.event-hero p{font-size:11px;opacity:.5}.event-mode .signature-wall{grid-template-rows:repeat(2,minmax(0,1fr))!important}.event-mode .event-hero{max-height:28vh}.embedded .screen-controls{display:none}.embedded .connection{display:none}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/* Phone signature */
.sign-body{min-height:100svh;background:radial-gradient(ellipse at 90% 0%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 60%),#f4f6f2;color:#233d36}.sign-shell{max-width:640px;margin:auto;padding:30px 24px 25px}.sign-brand{display:flex;align-items:center;gap:8px;color:#6e9880;font-size:25px}.sign-brand>span{font-size:10px;letter-spacing:2px;color:#92a08e}.sign-header{padding:40px 0 28px}.sign-header h1{font-size:30px;line-height:1.5;font-weight:600;margin:12px 0 11px;letter-spacing:0;overflow-wrap:anywhere}.sign-header>p{font-size:12px;color:#7d9283}.sign-header #sign-meta{font-size:10px;margin-top:10px}.sign-form{padding:28px 25px}.sign-form .field{margin-bottom:23px}.sign-form .field input{height:48px;font-size:15px}.signature-label{display:flex;align-items:center;gap:10px;margin:7px 0 13px}.signature-label>label{font-size:12px;color:#53695d;margin-right:auto}.signature-label .text-button{font-size:11px}.signature-pad{position:relative;border:1px dashed #cbd8cc;border-radius:10px;background:#fdfefa;overflow:hidden}.signature-pad canvas{display:block;width:100%;aspect-ratio:1000/420;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}.signature-pad>span{position:absolute;pointer-events:none}.signature-pad #pad-placeholder{top:43%;left:0;right:0;text-align:center;font-size:16px;letter-spacing:3px;color:#bec9ba}.pad-caption{bottom:12px;right:14px;font-size:8px;letter-spacing:2px;color:#c8d1c2}.sign-form>#sign-notice{margin:16px 0 24px}.submit-sign{justify-content:space-between;padding:15px 20px;font-size:14px;background:#265f4e!important;border-color:#265f4e!important}.sign-form>.center{margin-top:16px;font-size:10px}.sign-footer{font-size:10px;color:#a8b39e;letter-spacing:2px;text-align:center;margin:30px 0 10px}.success-panel,.closed-panel{text-align:center;padding:40px 28px}.success-symbol{color:#629d75;background:#edf5e7;width:66px;height:66px;display:grid;place-items:center;border-radius:50%;font-size:30px;margin:0 auto 25px}.success-panel h2,.closed-panel h2{font-size:22px;font-weight:550;line-height:1.5}.success-panel>p,.closed-panel>p{font-size:12px;color:#8ea082;margin:15px 0 28px}.success-panel .button{margin-bottom:12px;white-space:normal}.success-panel>.small-note{font-size:10px;margin:10px 0 0}
@media(min-width:1600px){.admin-content{padding-top:44px}.overview-hero{min-height:280px}.hero-copy h2{font-size:35px}}
@media(max-width:1250px){.sidebar{width:190px;padding-left:14px;padding-right:14px}.admin-main{margin-left:190px;width:calc(100% - 190px)}.admin-content{padding:28px 26px 55px}.admin-topbar{padding:0 26px}.design-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.overview-grid{grid-template-columns:minmax(0,1fr) 230px}.overview-hero{padding:30px}.hero-art{width:150px}.hero-art>span{font-size:130px}.hero-copy h2{font-size:25px}.panel{padding:22px}.stat-card{padding:20px}.stat-icon{right:18px;top:20px}.page-heading{align-items:flex-start}.heading-actions{flex-direction:column;align-items:flex-end}.screen-header h1{font-size:min(var(--title-size),4.5vw)}}
@media(max-width:1000px){.design-layout{display:flex;flex-direction:column-reverse}.design-preview{position:static;max-width:100%}.design-preview .preview-frame{max-width:600px}.design-preview .button{max-width:250px;margin-bottom:20px}.overview-grid{grid-template-columns:1fr}.qr-panel{display:grid;grid-template-columns:1fr 180px;gap:10px 24px}.qr-panel .panel-heading{grid-column:1}.qr-panel .admin-qr{grid-column:2;grid-row:1/4;margin:0;align-self:center}.qr-panel>.button,.qr-panel>.text-link{grid-column:1;align-self:start}.stats-grid{gap:12px}.stat-icon{display:none}.hero-art{position:absolute;right:25px;bottom:25px;width:150px;opacity:.7}.hero-copy{max-width:100%}.hero-actions{position:relative;z-index:2}.hero-copy h2{max-width:85%}.export-box{flex-wrap:wrap}.export-box>.button{width:100%}.screen-qr{padding:20px 12px;width:calc(var(--qr-size) + 24px)}.screen-content{gap:20px}.screen-qr h2{font-size:19px}.screen-header p{font-size:12px}}
@media(max-width:760px){.admin-app{display:block}.sidebar{position:sticky;top:0;inset:auto;width:100%;height:auto;display:block;padding:12px 16px 0;border-right:0;border-bottom:1px solid var(--line);background:#fbfcf8f5;backdrop-filter:blur(15px)}.sidebar .brand{font-size:22px;margin:0 8px}.sidebar .brand span{font-size:17px;letter-spacing:2px}.sidebar-label,.sidebar-bottom{display:none}#main-nav{display:flex;justify-content:space-between;gap:2px;margin-top:10px}.nav-item{flex-direction:column;gap:5px;padding:10px 5px;margin-bottom:0;font-size:10px;border-radius:7px 7px 0 0;white-space:nowrap}.nav-item .icon{width:16px;height:16px}.admin-main{width:100%;margin:0}.admin-topbar{height:44px;padding:0 19px}.admin-badge{font-size:9px;padding:5px 9px}.breadcrumb{font-size:10px}.admin-content{padding:24px 18px 40px}.page-heading{display:block;margin-bottom:22px}.page-heading h1{font-size:25px}.page-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.heading-actions{flex-direction:row;align-items:center;justify-content:space-between;margin-top:20px}.heading-actions select{flex:1;max-width:calc(100% - 112px);padding:11px}.heading-actions .button{min-height:40px;font-size:11px}.overview-hero{padding:27px 23px;min-height:255px;border-radius:13px}.hero-copy h2{font-size:24px;max-width:100%;position:relative;z-index:1;margin-top:23px}.hero-copy>p{font-size:11px;max-width:90%;position:relative;z-index:1}.hero-art{right:-28px;bottom:20px;opacity:.3}.hero-art>span{font-size:150px}.hero-meta{max-width:90%;font-size:9px}.hero-actions{gap:8px;flex-wrap:wrap}.hero-actions .button{font-size:11px;padding:11px 13px}.hero-actions .icon{width:16px}.art-stamp{display:none}.stats-grid{gap:9px;margin:16px 0}.stat-card{padding:17px 13px;border-radius:10px}.stat-card>span{font-size:10px}.stat-card strong{font-size:28px;margin:6px 0}.stat-card small{font-size:8px;display:block;margin-left:0;margin-top:2px}.stat-card p{display:none}.panel{padding:21px 18px;margin-bottom:16px;border-radius:11px}.panel-heading{margin-bottom:19px}.panel-heading h2{font-size:14px}.panel-heading p{font-size:10px;line-height:1.8}.overview-grid{gap:0}.panel-bottom{flex-wrap:wrap}.panel-bottom>span{font-size:8px}.qr-panel{grid-template-columns:1fr 130px;gap:8px 15px}.admin-qr img{width:125px;height:125px}.qr-panel .button{padding:9px;font-size:10px;gap:6px;white-space:normal;min-height:36px}.qr-panel .button .icon{width:14px}.qr-panel .text-link{font-size:10px}.recent-list{gap:2px}.recent-person{min-width:100%;max-width:none;border-bottom:1px solid #f0f2e9}.recent-person img{width:90px}.admin-footer{padding:0 19px 25px;font-size:8px;letter-spacing:1px}.form-grid{gap:0 12px}.form-grid.three{gap:0 10px}.field{margin-bottom:19px}.field label{font-size:11px}.field input:not([type=checkbox]),.field select,.field textarea{font-size:14px;padding:11px}.field-editor{padding:12px}.field-editor .form-grid{grid-template-columns:1fr}.field-checks{margin-top:-8px;padding-top:0;font-size:12px}.field-id{font-size:9px}.field-editor-top .text-button{font-size:11px}.mode-options{gap:10px}.mode-option>span{padding:17px 12px;min-height:165px}.mode-option small{font-size:9px}.mode-option>input{top:16px;right:12px}.theme-options{gap:8px}.theme-option>i{height:45px;padding:12px}.theme-option{font-size:9px}.save-bar{padding:12px 14px;bottom:12px}.save-bar>span{font-size:10px}.save-bar>.button{font-size:12px;padding:11px 15px}.design-layout{gap:0}.design-preview .button{margin-bottom:18px}.upload-row{gap:9px}.upload-row b{font-size:11px}.upload-row .button{font-size:10px;padding:8px}.status-control{flex-wrap:wrap;gap:17px}.button-row{gap:8px}.button-row .button{padding:10px 13px;font-size:11px}.records-toolbar{flex-wrap:wrap}.records-toolbar>input{flex:auto;min-width:100%}.records-toolbar .button{font-size:11px;padding:10px 13px}.records-table td{font-size:10px}.table-scroll{margin-left:-4px;margin-right:-4px}.export-box{gap:12px}.export-box h3{font-size:12px}.export-box p{font-size:9px}.export-icon{padding:10px}.export-box>div:nth-child(2){min-width:180px}.login-screen{display:block}.login-decoration{display:none}.login-card{padding-top:55px}.login-card h1{font-size:28px}#mobile-logout{display:block}.screen-qr{--qr-size:120px;width:144px}.screen{padding:24px;gap:18px}.screen-count{padding-left:15px}.screen-count span{font-size:8px;letter-spacing:0}.screen-organizer{font-size:9px}.screen-header h1{font-size:28px}.screen-header p{font-size:10px;letter-spacing:1px}.signature-wall{gap:8px}.signature-name{font-size:9px}.card-number{font-size:7px;left:6px;top:5px}.screen-qr>p{font-size:9px}.screen-qr h2{font-size:18px}.screen-footer{font-size:8px}.connection{display:none}.wall-empty h2{font-size:17px}.wall-empty p{font-size:9px}.screen-status{font-size:8px}.sign-shell{padding:24px 20px}.sign-form{padding:25px 20px}.sign-header{padding-top:35px}.sign-header h1{font-size:28px}.sign-brand{font-size:22px}}
.event-mode .signature-wall{grid-template-rows:var(--wall-rows)!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
