:root{--tn-wine:#7b1231;--tn-wine-2:#5a0d24;--tn-soft:#fff7f9;--tn-border:#ead8df;--tn-text:#21151a;--tn-muted:#77646b;--tn-bg:#f7f3f4;--tn-card:#fff;--tn-radius:18px;--tn-radius-sm:12px}.tn-auth-wrap,.tn-dashboard,.tn-register-app{font-family:inherit;color:var(--tn-text);box-sizing:border-box}.tn-auth-wrap{min-height:76vh;display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:center;background:linear-gradient(135deg,#fff,var(--tn-soft));border-radius:0;padding:28px;margin:0}.tn-auth-brand{padding:24px}.tn-logo{width:58px;height:58px;border-radius:16px;background:var(--tn-wine);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;overflow:hidden}.tn-logo.img{background:#fff;border:1px solid var(--tn-border)}.tn-logo img{width:100%;height:100%;object-fit:contain}.tn-logo.small{width:34px;height:34px;border-radius:10px;font-size:13px}.tn-auth-brand h1{font-size:44px;line-height:1.05;margin:20px 0 12px}.tn-auth-brand p{font-size:17px;color:var(--tn-muted);max-width:520px}.tn-auth-card,.tn-card,.tn-hero-card{background:var(--tn-card);border:1px solid var(--tn-border);border-radius:var(--tn-radius);box-shadow:0 18px 55px rgba(55,26,38,.08)}.tn-auth-card{padding:24px}.tn-auth-card h2,.tn-card h2{margin:0 0 18px;font-size:24px}.tn-auth-card label,.tn-card label{display:block;font-weight:700;font-size:13px;margin:13px 0 7px}.tn-auth-card input,.tn-auth-card select,.tn-card input,.tn-card select{width:100%;box-sizing:border-box;border:1px solid var(--tn-border);background:#fff;border-radius:var(--tn-radius-sm);padding:13px 14px;font-size:15px;outline:none;color:var(--tn-text);height:auto;min-height:46px}.tn-auth-card input:focus,.tn-auth-card select:focus,.tn-card input:focus{border-color:var(--tn-wine);box-shadow:0 0 0 4px rgba(123,18,49,.1)}.tn-check{display:flex!important;gap:9px;align-items:flex-start;font-weight:500!important;line-height:1.45}.tn-check input{width:auto!important;min-height:0;margin-top:3px}.tn-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--tn-wine);color:#fff!important;text-decoration:none!important;padding:12px 18px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(123,18,49,.2);min-height:44px}.tn-btn:hover{background:var(--tn-wine-2);color:#fff}.tn-btn-full{width:100%;margin-top:15px}.tn-muted,.tn-hint{color:var(--tn-muted);font-size:14px}.tn-muted a{color:var(--tn-wine);font-weight:800}.tn-alert{padding:12px 14px;border-radius:var(--tn-radius-sm);margin-bottom:14px;font-weight:700}.tn-alert-success{background:#edf8f0;color:#17622a;border:1px solid #cfead6}.tn-alert-error{background:#fff0f2;color:#9b1639;border:1px solid #f0c6d0}.tn-dashboard{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:72vh;background:var(--tn-bg);border-radius:0;overflow:hidden;border:1px solid var(--tn-border);margin:0}.tn-dashboard.tn-single{display:block}.tn-sidebar{background:#fff;padding:18px;border-right:1px solid var(--tn-border)}.tn-logo-line{display:flex;align-items:center;gap:10px;margin-bottom:24px}.tn-sidebar a{display:block;text-decoration:none;color:var(--tn-text);padding:12px 13px;border-radius:var(--tn-radius-sm);font-weight:700;margin-bottom:6px}.tn-sidebar a.active,.tn-sidebar a:hover{background:var(--tn-soft);color:var(--tn-wine)}.tn-main{padding:22px;min-width:0}.tn-hero-card{padding:24px;margin-bottom:18px;background:radial-gradient(circle at top right,#ffe2eb,#fff 45%)}.tn-hero-card h1{margin:10px 0 8px;font-size:32px}.tn-hero-card p{color:var(--tn-muted);max-width:760px}.tn-pill{display:inline-flex;background:var(--tn-wine);color:#fff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}.tn-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tn-card{padding:20px}.tn-role-box{border:1px dashed var(--tn-border);border-radius:var(--tn-radius-sm);padding:14px;background:var(--tn-soft);margin-bottom:14px}.tn-list{padding-left:19px;color:var(--tn-muted)}.tn-list li{margin:8px 0}.tn-pending{margin-top:14px;padding:13px 14px;border-radius:var(--tn-radius-sm);border:1px solid #f0c56e;background:#fff8e4;color:#7a5200;font-weight:800}.tn-register-app{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px;background:linear-gradient(135deg,#fff,#fff7f9);border:1px solid var(--tn-border);border-radius:0;padding:18px;margin:0}.tn-step-panel{position:relative;background:radial-gradient(circle at top right,#ffe0ea,#fff 42%);border:1px solid var(--tn-border);border-radius:var(--tn-radius);padding:24px;min-height:560px;display:flex;flex-direction:column;justify-content:center}.tn-panel-logo{position:absolute;top:18px;left:18px}.tn-step-panel h1{font-size:40px;line-height:1.05;margin:18px 0 10px}.tn-step-panel p{color:var(--tn-muted);font-size:16px}.tn-step-list{display:grid;gap:10px;margin-top:22px}.tn-step-list span{padding:11px 13px;border-radius:var(--tn-radius-sm);background:#fff;border:1px solid var(--tn-border);color:var(--tn-muted);font-weight:800}.tn-step-list span.active{background:var(--tn-wine);border-color:var(--tn-wine);color:#fff}.tn-step-card{background:#fff;border:1px solid var(--tn-border);border-radius:var(--tn-radius);padding:24px;box-shadow:0 18px 55px rgba(55,26,38,.08)}.tn-step{display:none}.tn-step.active{display:block}.tn-step h2{font-size:28px;margin:0 0 18px}.tn-role-grid,.tn-plan-grid{display:grid;grid-template-columns:1fr;gap:12px}.tn-role-choice,.tn-plan{display:block!important;border:1px solid var(--tn-border);border-radius:var(--tn-radius-sm);padding:16px!important;margin:0!important;cursor:pointer;background:#fff}.tn-role-choice:has(input:checked),.tn-plan:has(input:checked){border-color:var(--tn-wine);background:var(--tn-soft);box-shadow:0 0 0 4px rgba(123,18,49,.08)}.tn-role-choice input,.tn-plan input{width:auto!important;margin-right:8px;min-height:0}.tn-role-choice strong,.tn-plan strong{display:inline-block;font-size:17px}.tn-plan b{display:block;font-size:20px;color:var(--tn-wine);margin:8px 0}.tn-role-choice small,.tn-plan small{display:block;color:var(--tn-muted);margin-top:7px;line-height:1.45}.tn-step-card label{display:block;font-weight:800;font-size:13px;margin:13px 0 7px}.tn-step-card input,.tn-step-card select{width:100%;box-sizing:border-box;border:1px solid var(--tn-border);background:#fff;border-radius:var(--tn-radius-sm);padding:13px 14px;font-size:15px;outline:none;color:var(--tn-text);height:auto;min-height:46px;line-height:1.3}.tn-step-card select option{color:var(--tn-text);background:#fff}.tn-step-card input:focus,.tn-step-card select:focus{border-color:var(--tn-wine);box-shadow:0 0 0 4px rgba(123,18,49,.1)}.tn-duration-box{margin-top:14px;padding:14px;border:1px solid var(--tn-border);border-radius:var(--tn-radius-sm);background:#fff}.tn-price-total{margin-top:10px;padding:12px 14px;border-radius:var(--tn-radius-sm);background:var(--tn-soft);font-weight:900;color:var(--tn-wine)}.tn-step-actions{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.tn-btn-ghost{background:#fff!important;color:var(--tn-wine)!important;border:1px solid var(--tn-border)!important;box-shadow:none!important}.tn-qr-box{display:none;margin-top:14px;padding:14px;border:1px dashed var(--tn-border);border-radius:var(--tn-radius-sm);background:#fff}.tn-qr-box.show{display:block}.tn-qr-box img{max-width:220px;width:100%;height:auto;display:block;border-radius:var(--tn-radius-sm);border:1px solid var(--tn-border)}.tn-confirm-box{background:var(--tn-soft);border:1px solid var(--tn-border);border-radius:var(--tn-radius-sm);padding:16px}.tn-confirm-box strong{font-size:18px;color:var(--tn-wine)}@media(max-width:850px){.tn-auth-wrap,.tn-dashboard,.tn-register-app{grid-template-columns:1fr;border-radius:0}.tn-auth-wrap{padding:14px}.tn-auth-brand{padding:12px}.tn-auth-brand h1{font-size:34px}.tn-sidebar{border-right:0;border-bottom:1px solid var(--tn-border)}.tn-grid{grid-template-columns:1fr}.tn-main{padding:14px}.tn-register-app{padding:12px}.tn-step-panel{min-height:auto;padding:76px 18px 18px}.tn-step-panel h1{font-size:32px}.tn-step-card{padding:18px}.tn-step h2{font-size:24px}}.tn-success-text{color:#137333!important;font-weight:800}.tn-error-text{color:#b3261e!important;font-weight:800}
/* v1.0.7 refinements */
.tn-logo-link{display:inline-flex;align-items:center;text-decoration:none!important;color:inherit!important}
.tn-auth-top{display:flex;align-items:center;justify-content:flex-start;margin-bottom:12px}
.tn-panel-actions{position:absolute;top:18px;right:18px}
.tn-mini-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;color:var(--tn-wine)!important;background:#fff;border:1px solid var(--tn-border);border-radius:999px;padding:9px 13px;font-weight:800;font-size:13px}
.tn-mini-link:hover{background:var(--tn-soft)}
.tn-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:18px;box-sizing:border-box}
.tn-modal.show{display:flex}
.tn-modal-backdrop{position:absolute;inset:0;background:rgba(20,8,14,.48);backdrop-filter:blur(3px)}
.tn-modal-box{position:relative;z-index:1;width:min(760px,100%);max-height:min(88vh,860px);overflow:auto;background:#fff;border:1px solid var(--tn-border);border-radius:var(--tn-radius);box-shadow:0 28px 90px rgba(20,8,14,.28);padding:24px;box-sizing:border-box}
.tn-modal-box h2{margin:0 42px 8px 0;font-size:28px;line-height:1.15}
.tn-modal-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border:1px solid var(--tn-border);background:#fff;color:var(--tn-text);border-radius:999px;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.tn-modal-close:hover{background:var(--tn-soft);color:var(--tn-wine)}
.tn-modal-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:18px;flex-wrap:wrap}
body.tn-modal-open{overflow:hidden}
.tn-modal .tn-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.tn-modal .tn-qr-box img{margin-top:8px}
@media(max-width:850px){.tn-panel-actions{position:static;margin:0 0 16px 44px}.tn-modal{padding:10px;align-items:flex-end}.tn-modal-box{max-height:92vh;border-radius:18px 18px 0 0;padding:18px}.tn-modal .tn-plan-grid{grid-template-columns:1fr}.tn-modal-actions{justify-content:stretch}.tn-modal-actions .tn-btn{width:100%}}
