:root{--red:#BB0000;--gray:#666666;--cream:#DDDEC6;--brown:#453831;--black:#000;--white:#fff;--paper:#f8f7f2;--line:#ddd9cf;--text:#171717;--muted:#666;--ok:#2d7650;--danger:#a30000;--shadow:0 12px 34px rgba(0,0,0,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font:15px/1.5 Inter,Segoe UI,Arial,sans-serif;min-height:100vh}a{color:inherit}button,input,select{font:inherit}.site-header,.topbar{position:sticky;top:0;z-index:30;background:rgba(248,247,242,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.site-header{height:78px;display:flex;align-items:stretch;justify-content:space-between}.site-brand{display:flex;align-items:center;gap:11px;background:var(--red);color:#fff;text-decoration:none;padding:0 28px;min-width:250px}.site-brand img,.footer-brand img{width:42px;height:42px;border-radius:10px}.site-brand strong{display:block;font-size:22px;line-height:1}.site-brand small,.footer-brand small{display:block;font-size:10px;letter-spacing:.08em;margin-top:4px}.desktop-nav{display:flex;align-items:center;gap:34px}.desktop-nav a{text-decoration:none;font-weight:650;font-size:14px;padding:29px 0 23px;border-bottom:3px solid transparent}.desktop-nav a:hover,.desktop-nav a.active{color:var(--red);border-bottom-color:var(--red)}.header-actions{display:flex;align-items:center;gap:10px;padding-right:22px}.header-login,.primary-cta{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--red),#970000);color:#fff;text-decoration:none;border-radius:9px;padding:12px 17px;font-weight:800;box-shadow:0 8px 18px rgba(187,0,0,.18)}.header-login{background:#272321}.header-login b,.primary-cta b{font-size:20px}.mobile-menu{display:none;border:0;background:transparent;font-size:27px}.mobile-drawer{display:none}.lang-switch{display:flex;gap:4px;align-items:center}.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:8px;border:1px solid #c8c5bb;border-radius:8px;text-decoration:none;font-weight:800;font-size:12px;color:var(--gray)}.lang-switch a.active{background:var(--cream);color:var(--black);border-color:#c0c1a9}.landing-hero{min-height:500px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;max-width:1260px;margin:auto;padding:56px 54px 46px;background:radial-gradient(circle at 75% 35%,#fff 0,#f6f4ef 37%,#efede6 100%)}.hero-copy{max-width:620px;border-left:4px solid var(--red);padding-left:28px}.hero-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--gray);font-weight:800}.hero-copy h1{font-size:54px;line-height:1.03;margin:9px 0 12px;letter-spacing:-.03em}.hero-copy h1 span{color:var(--red)}.hero-copy h2{font-size:21px;margin:0 0 15px}.hero-copy>p{font-size:17px;max-width:560px;color:#393939}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.outline-cta{display:inline-flex;align-items:center;text-decoration:none;border:1px solid #c7c2b7;background:#fff;padding:12px 17px;border-radius:9px;font-weight:750}.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.trust-row div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.trust-row span{grid-row:1/3;font-size:28px}.trust-row b{font-size:13px}.trust-row small{color:var(--muted);font-size:11px}.key-visual{position:relative;height:420px;overflow:hidden}.shield-shape{position:absolute;width:300px;height:340px;left:52%;top:43%;transform:translate(-50%,-50%);border:3px solid rgba(102,102,102,.1);border-radius:42% 42% 48% 48%}.key-tag{position:absolute;left:57%;top:45%;width:145px;height:260px;background:linear-gradient(160deg,#d91b16,var(--red) 58%,#850000);border-radius:62px 62px 28px 28px;transform:rotate(-25deg);box-shadow:var(--shadow);border:1px solid #7d0000}.key-tag span{position:absolute;top:55px;left:49px;width:48px;height:48px;border-radius:50%;background:#eee;color:#aaa;font-size:0}.key-tag span:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--red);left:15px;top:15px}.key-tag i{position:absolute;left:65px;top:100px;width:17px;height:90px;background:#eee}.key-tag i:before,.key-tag i:after{content:"";position:absolute;width:30px;height:15px;background:#eee;left:-2px}.key-tag i:before{top:52px}.key-tag i:after{top:70px;width:23px}.metal-key{position:absolute;font-size:210px;color:#b6aa98;text-shadow:0 7px 10px rgba(0,0,0,.18);font-family:Georgia,serif}.key-one{left:20%;top:24%;transform:rotate(31deg)}.key-two{left:30%;top:35%;transform:rotate(48deg);color:#d2b080}.key-ring{position:absolute;left:46%;top:15%;font-size:190px;line-height:1;color:#8a8177;transform:scaleX(.7);text-shadow:0 4px 8px rgba(0,0,0,.2)}.feature-section{background:linear-gradient(135deg,#26211f,var(--brown));color:#fff;padding:36px 5vw 48px}.section-title{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:20px}.section-title h2{font-size:28px;margin:0}.section-title span{width:26px;height:2px;background:var(--red)}.feature-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.feature-grid article{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);border-radius:14px;text-align:center;padding:22px 15px;min-height:190px}.feature-grid h3{margin:12px 0 5px}.feature-grid p{font-size:13px;color:#ddd;margin:0}.feature-icon{width:58px;height:58px;margin:auto;border-radius:50%;display:grid;place-items:center;font-size:27px}.feature-icon.red{background:var(--red)}.feature-icon.gray{background:var(--gray)}.feature-icon.cream{background:var(--cream);color:#111}.feature-icon.brown{background:#604b40}.feature-icon.black{background:#111}.benefit-strip{display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px;margin:auto;padding:31px 20px}.benefit-strip div{text-align:center;border-right:1px solid var(--line)}.benefit-strip div:last-child{border-right:0}.benefit-strip b{display:block;font-size:29px}.benefit-strip span{font-size:12px;color:var(--muted)}.mobile-app-note{max-width:1000px;margin:20px auto 45px;background:var(--cream);border-radius:18px;padding:22px;display:flex;align-items:center;gap:20px}.mobile-app-note img{width:72px;height:72px;border-radius:17px}.mobile-app-note h2{margin:0 0 5px}.mobile-app-note p{margin:0;color:#464646}.site-footer{background:#26211f;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:22px 5vw}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand span{display:grid}.site-footer p{color:#bbb}.notice{padding:12px 15px;border-radius:10px;background:#e8f3ec;border:1px solid #b9dbc8;color:#234d36}.notice.error{background:#f8e5e5;border-color:#deb5b5;color:#790000}
/* authenticated app */.topbar{display:flex;justify-content:space-between;align-items:center;padding:13px 4vw;background:#f8f7f2}.brand{font-size:22px;font-weight:900;color:var(--red)}.sub,.section-head span,small{display:block;color:var(--muted)}.user-actions{display:flex;align-items:center;gap:14px}.userbox{display:flex;gap:10px;align-items:center;text-align:right}.userbox img{width:42px;height:42px;border-radius:50%}.wrap{max-width:1200px;margin:25px auto;padding:0 16px 80px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:16px 0;box-shadow:0 8px 28px rgba(69,56,49,.08)}.toolbar,.section-head,.hero{display:flex;justify-content:space-between;gap:16px;align-items:end}.profile-select{display:grid;gap:6px;min-width:min(520px,70vw)}select,input{width:100%;border:1px solid #c9c5bc;background:#fff;color:var(--text);padding:11px 12px;border-radius:10px;outline:none}input:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(187,0,0,.08)}.btn,.mini{border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:800;padding:11px 15px;cursor:pointer}.secondary{background:var(--gray);color:#fff}.hero{padding:14px 18px;align-items:center;background:linear-gradient(135deg,var(--cream),#f4f4e7);border-radius:16px}.hero h1{font-size:32px;margin:0}.hero p{color:#555;margin:5px 0}.stats{display:flex;gap:10px}.stats div{min-width:92px;text-align:center;background:#fff;border:1px solid #cfcfbb;border-radius:13px;padding:10px}.stats b{font-size:23px;display:block}.stats span{color:var(--muted);font-size:12px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.formgrid label{display:grid;gap:5px}.wide{grid-column:1/-1}.grid3{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.tablewrap{overflow:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:12px 10px;border-bottom:1px solid #e6e3dc;text-align:left;vertical-align:middle}th{font-size:12px;color:#676767;text-transform:uppercase;background:#f4f2eb}.open-row{background:#fff1f1}.badge{display:inline-block;padding:5px 9px;border-radius:20px;font-weight:700}.badge.danger{background:#f6dcdc;color:#900}.badge.ok{background:#dcefe5;color:#275f43}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{margin:0}.mini{padding:7px 9px;font-size:12px}.success{background:var(--ok)}.danger-btn{background:#7d0000;color:#fff}.search{max-width:330px}.empty{text-align:center;color:var(--muted);padding:30px}.danger-zone{border-color:#dec5c5}.hidden{display:none!important}.token-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #c7b9b0;background:var(--brown);border-radius:12px;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap}.token-pill span{font-size:11px;color:#e7dbd4;font-weight:600}.token-pill.static{cursor:default}.token-note{color:var(--muted);margin-top:-4px}.token-hero{display:flex;justify-content:space-between;align-items:center;gap:30px;background:linear-gradient(135deg,var(--cream),#f4f4e7)}.eyebrow{font-size:11px;letter-spacing:.15em;color:var(--muted);font-weight:800}.big-balance{font-size:58px;line-height:1;font-weight:900;color:var(--red);margin-top:8px}.token-hero p{color:var(--muted);margin:4px 0}.token-rules{display:grid;grid-template-columns:auto 1fr;gap:8px 13px;max-width:480px}.token-rules span{color:var(--muted)}.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.package{background:#f7f5ef;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}.package-count{font-size:28px;font-weight:900}.package-count small{display:inline;color:var(--muted);font-size:13px}.package-price{font-size:16px;color:var(--brown);margin:8px 0 16px;font-weight:800}.package .btn{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.plus{color:var(--ok)}.minus{color:var(--red)}.badge.pending{background:#eee7d1;color:#695515}code{background:#eeeae3;padding:2px 5px;border-radius:5px}.mobile-bottom-nav{display:none}
@media(max-width:900px){.desktop-nav{display:none}.site-brand{min-width:210px}.feature-grid{grid-template-columns:repeat(2,1fr)}.key-visual{height:340px}.landing-hero{grid-template-columns:1fr 1fr;padding:42px 28px}.hero-copy h1{font-size:44px}.header-login{display:none}.mobile-menu{display:block}.mobile-drawer{position:fixed;z-index:25;top:78px;right:0;width:min(320px,86vw);background:#fff;box-shadow:var(--shadow);padding:18px;transform:translateX(105%);transition:.2s;display:grid;gap:4px}.mobile-drawer>a{padding:13px;border-bottom:1px solid #eee;text-decoration:none;font-weight:700}.mobile-drawer .lang-switch{padding:12px}.menu-open .mobile-drawer{transform:translateX(0)}}
@media(max-width:700px){body{font-size:14px}.site-header{height:68px}.site-brand{min-width:auto;padding:0 16px}.site-brand img{width:38px;height:38px}.site-brand strong{font-size:19px}.site-brand small{font-size:8px}.header-actions{padding-right:10px}.header-actions>.lang-switch{display:none}.mobile-drawer{top:68px}.landing-hero{display:block;min-height:auto;padding:26px 18px 20px}.hero-copy{border-left:3px solid var(--red);padding-left:16px}.hero-copy h1{font-size:38px}.hero-copy h2{font-size:17px}.hero-copy>p{font-size:15px}.hero-buttons{display:grid}.hero-buttons a{justify-content:center}.trust-row{grid-template-columns:1fr;margin-top:22px}.key-visual{display:none}.feature-section{padding:28px 14px 35px}.section-title h2{font-size:23px}.feature-grid{grid-template-columns:1fr;gap:8px}.feature-grid article{min-height:0;text-align:left;display:grid;grid-template-columns:52px 1fr;column-gap:12px;padding:14px}.feature-icon{grid-row:1/3;width:48px;height:48px;margin:0;font-size:21px}.feature-grid h3{margin:3px 0}.feature-grid p{grid-column:2}.benefit-strip{grid-template-columns:repeat(2,1fr);gap:18px}.benefit-strip div{border-right:0}.benefit-strip b{font-size:25px}.mobile-app-note{margin:10px 14px 32px}.site-footer{flex-direction:column;gap:12px;text-align:center}.topbar{align-items:flex-start;padding:11px 14px}.brand{font-size:19px}.sub,.userbox img{display:none}.userbox{font-size:12px}.toolbar,.section-head,.hero{align-items:stretch;flex-direction:column}.profile-select{min-width:100%}.stats{width:100%}.stats div{flex:1;min-width:0}.formgrid,.grid3{grid-template-columns:1fr}.wide{grid-column:auto}.search{max-width:none}.hero h1{font-size:27px}.user-actions{align-items:flex-end;flex-direction:column;gap:7px}.user-actions .userbox{display:none}.token-hero{align-items:stretch;flex-direction:column}.packages{grid-template-columns:1fr}.big-balance{font-size:46px}.wrap{margin-top:12px;padding:0 10px 78px}.card{padding:14px;margin:10px 0;border-radius:13px}.tablewrap{margin:0 -14px;padding:0 14px}table{min-width:760px}.mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(3,1fr);left:0;right:0;bottom:0;z-index:40;background:#211d1b;color:#fff;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -7px 24px rgba(0,0,0,.18)}.mobile-bottom-nav a{text-align:center;text-decoration:none;font-size:11px;padding:4px}.mobile-bottom-nav b{display:block;font-size:20px;line-height:1}.mobile-bottom-nav a.active{color:#ff3939}}
/* PNG assets are served through asset.php for hosting compatibility. */
.site-brand img,.footer-brand img,.mobile-app-note img{object-fit:contain;display:block}

.key-cell .key-number{display:block;font-weight:700;line-height:1.25}
.key-cell .key-description{display:block;margin-top:4px;font-size:.86rem;line-height:1.25;color:#666;font-weight:400;white-space:normal}

/* Issued column: show notes below date/time */
.issued-cell .issued-time{display:block;font-weight:600;}
.issued-cell .key-notes{display:block;margin-top:4px;line-height:1.25;white-space:normal;overflow-wrap:anywhere;color:var(--muted,#666);}

/* Shared register / read-only access */
.readonly-notice{border-left:4px solid var(--gray);background:#f0efe9;border-color:#d1cec4;color:#333}
.registry-switcher form{display:grid;gap:6px;max-width:620px}
.viewers-card{border-top:4px solid var(--brown)}
.viewer-add{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end;margin-top:14px}
.viewer-add label{display:grid;gap:5px}
.viewer-list{margin-top:16px;border-top:1px solid var(--line)}
.viewer-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px;border-bottom:1px solid var(--line)}
.viewer-row b{overflow-wrap:anywhere}.viewer-row small{margin-top:2px}.viewer-row form{margin:0;flex:0 0 auto}
.viewer-help,.empty-viewers{color:var(--muted);font-size:13px;margin:14px 0 0}.empty-viewers{padding:10px 0}
@media(max-width:700px){.viewer-add{grid-template-columns:1fr}.viewer-add .btn{width:100%}.viewer-row{align-items:flex-start;flex-direction:column}.viewer-row form,.viewer-row .mini{width:100%}.registry-switcher{padding:12px}.readonly-notice{font-size:13px}}
/* Profile-specific sharing */
.viewer-add select{width:100%;min-height:44px}
.viewer-add label{min-width:0}
@media(max-width:700px){.viewer-add{grid-template-columns:1fr!important}.viewer-add .btn{width:100%}}

/* Profile-grouped read-only access */
.profile-viewer-groups{display:grid;gap:14px;margin-top:18px}
.profile-viewer-group{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(221,222,198,.16)}
.profile-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.profile-viewer-head b{display:block;font-size:16px}.profile-viewer-head small{display:block;margin-top:3px;color:var(--muted)}
.viewer-count{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:var(--red);color:#fff;font-weight:700}
.viewer-remove-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin:0}
.viewer-remove-form label{display:grid;gap:5px;min-width:0}.viewer-remove-form select{width:100%;min-height:44px}
@media(max-width:700px){.profile-viewer-group{padding:12px}.viewer-remove-form{grid-template-columns:1fr}.viewer-remove-form .btn{width:100%}}
