.header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;position:relative;padding:12px var(--page-padding);min-height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.header-left{display:flex;align-items:center}.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--color-text);min-height:44px;-webkit-tap-highlight-color:transparent}.logo-icon{font-size:18px;color:var(--color-accent)}.logo-text{font-size:12px;font-weight:800;letter-spacing:.5px}.header-nav{display:none;gap:32px}.nav-link{text-decoration:none;color:var(--color-text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;transition:color .2s;padding:8px 0;min-height:44px;display:flex;align-items:center}.nav-link:hover{color:var(--color-text)}.nav-link-errors{color:#f44336}.nav-link-errors:hover{color:#ff6659}.header-right{display:flex;align-items:center;justify-content:center;justify-self:center;gap:8px}.header-right .btn-outline{display:none}.header-right .btn-primary{padding:10px 16px;font-size:12px}.header-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:14px;font-weight:800;text-decoration:none;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:opacity .2s;position:absolute;left:50%;transform:translate(-50%)}.header-avatar:hover{opacity:.85}.hamburger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;color:var(--color-text);font-size:20px;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0}.mobile-menu{position:fixed;top:var(--header-height);left:0;right:0;background:var(--color-surface);border-bottom:2px solid var(--color-border);z-index:999;display:flex;flex-direction:column}.mobile-nav-link{text-decoration:none;color:var(--color-text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;padding:18px var(--page-padding);border-bottom:1px solid var(--color-border);transition:color .2s,background .2s;-webkit-tap-highlight-color:transparent}.mobile-nav-link:hover,.mobile-nav-link:active{color:var(--color-text);background:var(--color-border)}.mobile-nav-link-errors{color:#f44336}@media (min-width: 768px){.header{grid-template-columns:auto 1fr auto;padding:16px var(--page-padding)}.logo-icon{font-size:20px}.logo-text{font-size:14px}.header-nav{display:flex;justify-content:center;gap:32px}.header-right{gap:12px}.header-avatar{position:static;transform:none}.header-nav{grid-column:2}.header-right{grid-column:3;justify-self:end}.header-right .btn-outline{display:inline-flex}.header-right .btn-primary{padding:10px 20px;font-size:13px}.hamburger,.mobile-menu{display:none}}.footer{position:fixed;bottom:0;left:0;right:0;height:var(--footer-height);background:var(--color-surface);padding:8px var(--page-padding);display:flex;justify-content:center;align-items:center;border-top:1px solid var(--color-border);z-index:100}.footer-nav{display:flex;gap:8px;width:100%;max-width:400px;justify-content:space-around}.footer-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--color-text-muted);font-size:10px;font-weight:600;letter-spacing:.5px;transition:color .2s;background:none;border:none;cursor:pointer;font-family:inherit;padding:8px 12px;min-height:56px;min-width:60px;-webkit-tap-highlight-color:transparent}.footer-link:hover,.footer-link.active{color:var(--color-primary)}.footer-link svg{width:22px;height:22px}@media (min-width: 768px){.footer-nav{gap:48px;width:auto;max-width:none;justify-content:center}.footer-link{min-width:auto;padding:8px 16px}}.apps-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:101}.apps-menu{position:fixed;bottom:calc(var(--footer-height) + 12px);left:50%;transform:translate(-50%) translateY(10px);background:var(--color-surface-elevated);border:1px solid var(--color-border);padding:40px 16px 16px;z-index:102;box-shadow:0 -4px 24px #00000040;visibility:hidden;opacity:0;transition:opacity .2s ease,transform .2s ease,visibility .2s}.apps-menu.open{visibility:visible;opacity:1;transform:translate(-50%) translateY(0)}.menu-close-btn{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:color .2s;z-index:1}.menu-close-btn:hover{color:var(--color-text)}.apps-menu-header{display:none}.apps-menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.apps-menu-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;background:transparent;text-decoration:none;color:var(--color-text);transition:background .2s;width:80px}.apps-menu-item:hover{background:var(--color-bg-secondary)}.apps-menu-icon{width:48px;height:48px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.apps-menu-icon svg{color:var(--color-white)}.apps-menu-item:nth-child(1) .apps-menu-icon{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-dark) 100%)}.apps-menu-item:nth-child(2) .apps-menu-icon{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%)}.apps-menu-item:nth-child(3) .apps-menu-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.apps-menu-item:nth-child(4) .apps-menu-icon{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-midnight) 100%)}.apps-menu-name{font-size:10px;font-weight:600;text-align:center;line-height:1.2;color:var(--color-text-secondary)}.apps-menu-badge{display:none}@media (max-width: 500px){.apps-menu{left:var(--page-padding);right:var(--page-padding);transform:translate(0) translateY(10px)}.apps-menu.open{transform:translate(0) translateY(0)}.apps-menu-grid{grid-template-columns:repeat(4,1fr);gap:4px}.apps-menu-item{width:auto;padding:10px 4px}.apps-menu-icon{width:44px;height:44px}.apps-menu-icon svg{width:20px;height:20px}}.footer-copyright{display:none}.apps-menu-icon.logout-icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.apps-menu-icon.feedback-icon{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-primary) 100%)}.apps-menu-item:has(.apps-menu-icon:not(.logout-icon):not(.feedback-icon)) .apps-menu-icon{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}button.apps-menu-item{border:none;cursor:pointer;font-family:inherit}.email-verification-banner{background:linear-gradient(135deg,#fbbf2426,#f59e0b1a);border:1px solid rgba(251,191,36,.3);border-radius:12px;padding:20px 24px;margin-bottom:24px}.verification-content{display:flex;align-items:flex-start;gap:16px}.verification-icon{font-size:32px;flex-shrink:0}.verification-text{flex:1}.verification-text h3{font-size:16px;font-weight:700;color:#fbbf24;margin:0 0 6px}.verification-text p{font-size:14px;color:#94a3b8;margin:0;line-height:1.5}.verification-text strong{color:#e2e8f0}.verification-error{color:#f87171!important;margin-top:8px!important}.verification-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.btn-resend{padding:10px 18px;background:#fbbf2433;border:1px solid rgba(251,191,36,.4);border-radius:8px;color:#fbbf24;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-resend:hover:not(:disabled){background:#fbbf244d;border-color:#fbbf2499}.btn-resend:disabled{opacity:.6;cursor:not-allowed}.btn-dismiss{padding:8px 16px;background:transparent;border:none;color:#64748b;font-size:12px;cursor:pointer;transition:color .2s}.btn-dismiss:hover{color:#94a3b8}.resent-message{color:#4ade80;font-size:13px;font-weight:600;padding:10px 0}@media (max-width: 640px){.verification-content{flex-direction:column;text-align:center}.verification-actions{width:100%;flex-direction:row;justify-content:center}}.floating-ticket-container{position:fixed;bottom:24px;right:24px;z-index:1000;display:none;flex-direction:column;align-items:flex-end;gap:12px}@media (min-width: 768px){.floating-ticket-container{display:flex}}.floating-ticket-button{width:56px;height:56px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 12px #00000026}.floating-ticket-button:hover{background:var(--color-primary);border-color:var(--color-primary);transform:scale(1.05)}.floating-ticket-button.expanded{background:var(--color-surface-elevated);transform:rotate(90deg)}.floating-ticket-icon{line-height:1}.ticket-options{display:flex;flex-direction:column;gap:8px;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ticket-option{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all .15s ease;white-space:nowrap;font-size:.875rem;font-weight:500}.ticket-option:hover{background:var(--color-surface-elevated);border-color:var(--color-primary);transform:translate(-4px)}.ticket-option-icon{font-size:1.1rem}.ticket-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1001;padding:16px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ticket-modal{width:100%;max-width:480px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.ticket-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated)}.ticket-modal-header h2{font-size:1.1rem;font-weight:600;margin:0}.ticket-modal-close{width:32px;height:32px;border-radius:6px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.ticket-modal-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.ticket-form{padding:20px;display:flex;flex-direction:column;gap:16px}.ticket-form-group{display:flex;flex-direction:column;gap:6px}.ticket-form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.ticket-form-group input,.ticket-form-group textarea{padding:10px 12px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:.9375rem;transition:border-color .15s ease}.ticket-form-group input:focus,.ticket-form-group textarea:focus{outline:none;border-color:var(--color-primary)}.ticket-form-group input::placeholder,.ticket-form-group textarea::placeholder{color:var(--color-text-muted)}.ticket-form-group textarea{resize:vertical;min-height:100px}.ticket-info{font-size:.8125rem;color:var(--color-text-muted);padding:10px 12px;background:var(--color-bg-secondary);border-radius:6px;margin:0}.ticket-message{padding:10px 12px;border-radius:6px;font-size:.875rem;font-weight:500;text-align:center}.ticket-message.success{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.ticket-message.error{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.ticket-modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:8px}.ticket-modal-actions .btn{padding:10px 20px;font-size:.875rem}.ticket-modal-actions .btn-secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.ticket-modal-actions .btn-secondary:hover{background:var(--color-bg-secondary);color:var(--color-text)}@media (max-width: 480px){.floating-ticket-container{bottom:16px;right:16px}.floating-ticket-button{width:48px;height:48px;font-size:1.25rem}.ticket-modal{border-radius:8px}.ticket-modal-header{padding:14px 16px}.ticket-form{padding:16px}}.hero{margin-bottom:24px}.hero-title{font-size:48px;font-weight:900;line-height:.95;letter-spacing:-1px;color:var(--color-text);margin-bottom:16px;background:linear-gradient(135deg,var(--color-text) 0%,var(--color-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:14px;color:var(--color-text-secondary);max-width:480px;line-height:1.6}@media (min-width: 768px){.hero{margin-bottom:48px}.hero-title{font-size:clamp(64px,10vw,96px);letter-spacing:-2px;margin-bottom:24px}.hero-subtitle{font-size:16px}}.bento-grid{display:grid;grid-template-columns:1fr;gap:var(--gap)}.card{border-radius:var(--radius);padding:20px;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}@media (hover: hover){a.card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026}}a.card:active{transform:scale(.98)}@media (min-width: 600px){.bento-grid{grid-template-columns:repeat(2,1fr)}.card{padding:24px}}@media (min-width: 1024px){.bento-grid{grid-template-columns:repeat(12,1fr)}}.card-label{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:.7}.card-icon{width:56px;height:56px;background:#ffffff26;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.card-content{margin-top:auto}.card-title{font-size:24px;font-weight:800;line-height:1;margin-bottom:8px}.card-description{font-size:13px;line-height:1.5;opacity:.85;margin:0}.card-badge{position:absolute;top:16px;right:16px;background:#fff3;padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1px}.card-library{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-dark) 100%);color:var(--color-white);min-height:160px}.card-library .card-icon{background:#fff3}.card-library .card-title{font-size:28px}.card-pools{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%);color:var(--color-white);min-height:160px}.card-pools .card-icon{background:#fff3}.card-beach-house{background:linear-gradient(to bottom,#0000001a,#0009),url(https://images.unsplash.com/photo-1507525428034-b723cf961d3e?w=600&q=80);background-size:cover;background-position:center;color:var(--color-white);min-height:160px}@media (min-width: 600px){.card-library,.card-pools,.card-beach-house{min-height:200px}.card-library .card-title{font-size:32px}}@media (min-width: 1024px){.card-library{grid-column:span 6;grid-row:span 2;min-height:320px}.card-pools,.card-beach-house{grid-column:span 3;grid-row:span 2;min-height:320px}}.card-beach-house .card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.7) 100%)}.card-beach-house .card-content{position:relative;z-index:1}.card-beach-house .card-label{position:absolute;top:24px;left:24px;background:#0000004d;padding:6px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card-sports{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-midnight) 100%);color:var(--color-white);min-height:140px}.card-sports .card-icon{background:#ffffff1a}.card-sports .card-title{font-size:20px}.card-about{background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);color:var(--color-text);min-height:140px}@media (prefers-color-scheme: dark){.card-about{background:#152238cc}}@media (min-width: 1024px){.card-sports,.card-about,.card-changelog{grid-column:span 4;min-height:180px}}.card-about .card-label{color:var(--color-text-muted)}.about-text{margin-top:12px;font-size:14px;line-height:1.6;color:var(--color-text-secondary)}.tech-stack{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.tech-tag{background:var(--color-frost);color:var(--color-primary-dark);padding:4px 10px;font-size:11px;font-weight:600}.card-changelog{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-midnight) 100%);color:var(--color-white);min-height:140px}.card-changelog .card-label{color:var(--color-gray-400)}.changelog-content{margin-top:12px;flex:1}.changelog-version{display:flex;align-items:center;gap:12px;margin-bottom:12px}.version-tag{background:var(--color-primary);padding:4px 10px;font-size:12px;font-weight:700}.version-date{font-size:12px;color:var(--color-gray-400)}.changelog-list{list-style:none;padding:0;margin:0;font-size:13px;color:var(--color-gray-400);line-height:1.6}.changelog-list li:before{content:"•";margin-right:8px;color:var(--color-accent)}.changelog-link{font-size:12px;font-weight:600;color:var(--color-primary-light);margin-top:auto}.resume-page{padding:24px 16px 100px}.resume-container{max-width:800px;margin:0 auto}.resume-header{margin-bottom:40px}.resume-header-content{display:flex;flex-direction:column;gap:24px;margin-bottom:24px}.resume-intro{order:2}.resume-name{font-size:32px;font-weight:800;color:var(--color-text);margin-bottom:8px}.resume-title{font-size:16px;font-weight:500;color:var(--color-text-secondary);margin-bottom:20px}.resume-contact{display:flex;flex-wrap:wrap;gap:12px}.contact-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;text-decoration:none;color:var(--color-text);font-size:14px;font-weight:500;transition:all .2s}.contact-chip:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.contact-icon{font-size:16px}.resume-photo{order:1;width:120px;height:120px;overflow:hidden;border-radius:0;border:2px solid var(--color-border)}.resume-photo img{width:100%;height:100%;object-fit:cover}.resume-summary{display:flex;flex-direction:column;gap:16px}.resume-summary p{color:var(--color-text);line-height:1.7;font-size:15px}.resume-summary .currently-building{color:var(--color-text-muted);font-style:italic}.resume-section{margin-bottom:40px}.section-title{font-size:20px;font-weight:700;color:var(--color-text);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--color-primary)}.resume-section p{color:var(--color-text);line-height:1.7;font-size:15px;margin-bottom:16px}.resume-section p:last-child{margin-bottom:0}.resume-list{list-style:none;padding:0;margin:0}.resume-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--color-text);line-height:1.6;font-size:15px}.resume-list li:before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;background:var(--color-primary)}.expertise-grid{display:flex;flex-direction:column;gap:24px}.expertise-category{background:var(--color-surface);border:1px solid var(--color-border);padding:20px}.expertise-title{font-size:16px;font-weight:600;color:var(--color-text);margin-bottom:12px}.expertise-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.expertise-list li{padding:6px 12px;background:var(--color-bg);border:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary)}@media (min-width: 600px){.resume-page{padding:40px 24px 120px}.resume-header-content{flex-direction:row;align-items:flex-start;justify-content:space-between}.resume-intro{order:1;flex:1}.resume-photo{order:2;width:180px;height:180px;flex-shrink:0}.resume-name{font-size:40px}.resume-title{font-size:18px}.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.expertise-grid .expertise-category:last-child{grid-column:span 2}}@media (min-width: 900px){.resume-page{padding:60px 32px 140px}.resume-photo{width:220px;height:220px}.resume-name{font-size:48px}.expertise-grid{grid-template-columns:repeat(3,1fr)}.expertise-grid .expertise-category:last-child{grid-column:span 1}}.login-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:48px 16px}.login-card{background:var(--color-surface);border-radius:var(--radius);padding:48px;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #0000001a}.login-title{font-size:28px;font-weight:800;margin-bottom:8px;color:var(--color-text)}.login-subtitle{color:var(--color-text-secondary);margin-bottom:32px}.login-error{background:#dc26261a;color:#ef4444;padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:600;color:var(--color-text)}.form-group input{padding:12px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;background:var(--color-bg);color:var(--color-text);transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e933}.login-btn{margin-top:8px;padding:14px 24px;font-size:16px}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:16px;margin:32px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-divider span{font-size:13px;color:var(--color-text-muted)}.oauth-buttons{display:flex;gap:12px}.btn-oauth{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--color-text);cursor:pointer;transition:background .2s}.btn-oauth:hover:not(:disabled){background:var(--color-bg-secondary)}.btn-oauth:disabled{opacity:.5;cursor:not-allowed}.oauth-loading{display:flex;justify-content:center;margin-top:24px}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.login-register-link{text-align:center;font-size:14px;color:var(--color-text-secondary);margin-top:24px}.login-register-link a{color:var(--color-primary);text-decoration:none;font-weight:600}.login-register-link a:hover{color:var(--color-primary-light)}.login-password-label-row{display:flex;justify-content:space-between;align-items:center}.login-forgot-link{font-size:13px;color:var(--color-primary);text-decoration:none;font-weight:500}.login-forgot-link:hover{text-decoration:underline}.register-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:48px 16px}.register-card{background:linear-gradient(180deg,#0d1b2a,#0a1628);border:1px solid rgba(56,189,248,.1);border-radius:16px;padding:40px;width:100%;max-width:800px;box-shadow:0 4px 6px -1px #0000004d,0 0 40px #0ea5e90d}.register-form{display:flex;flex-direction:column;gap:32px}.form-section{display:flex;flex-direction:column;gap:20px}.section-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:#64748b;margin-bottom:4px}.section-icon{font-size:16px}.form-row{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 640px){.form-row{grid-template-columns:1fr 1fr;gap:20px}}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8}.form-group input{padding:14px 16px;border:1px solid rgba(56,189,248,.15);border-radius:8px;font-size:15px;font-family:inherit;background:#0f172acc;color:#e2e8f0;transition:border-color .2s,box-shadow .2s,background .2s}.form-group input::placeholder{color:#475569}.form-group input:focus{outline:none;border-color:#0ea5e980;background:#0f172a;box-shadow:0 0 0 3px #0ea5e91a}.form-group input.input-error{border-color:#ef444480}.form-group input.input-error:focus{border-color:#ef4444b3;box-shadow:0 0 0 3px #ef44441a}.field-error{font-size:12px;color:#f87171;margin-top:4px}.field-success{font-size:12px;color:#4ade80;margin-top:4px}.password-requirements{background:#0f172a80;border:1px solid rgba(56,189,248,.1);border-radius:8px;padding:14px 18px;margin-top:4px}.requirements-label{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.requirements-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:10px;list-style:none}.requirements-list li{font-size:13px;transition:color .2s}.requirements-list li.unmet{color:#64748b}.requirements-list li.met{color:#4ade80}.app-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.app-grid{grid-template-columns:1fr 1fr;gap:16px}}.app-card-wrapper{display:flex;flex-direction:column;gap:8px}.app-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#0f172a99;border:1px solid rgba(56,189,248,.1);border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%;position:relative;color:inherit;font-family:inherit}.app-card:hover{background:#0f172ae6;border-color:#38bdf840}.app-card.selected{background:#0ea5e91a;border-color:#0ea5e966}.app-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;font-size:24px}.app-name{font-size:15px;font-weight:700;color:#e2e8f0;text-transform:uppercase;letter-spacing:.5px}.app-description{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.app-check{position:absolute;top:12px;right:12px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:50%;font-size:12px;color:#fff;font-weight:700}.access-code-field{padding-left:4px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.access-code-input{width:100%;padding:12px 14px;border:1px solid rgba(251,191,36,.3);border-radius:8px;font-size:14px;font-family:inherit;background:#fbbf240d;color:#fbbf24;transition:border-color .2s,box-shadow .2s}.access-code-input::placeholder{color:#fbbf2480}.access-code-input:focus{outline:none;border-color:#fbbf2499;box-shadow:0 0 0 3px #fbbf241a}.register-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171;padding:14px 18px;border-radius:8px;font-size:14px}.register-btn{width:100%;padding:18px 32px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #0ea5e959}.register-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0ea5e973}.register-btn:active{transform:translateY(0)}.register-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.register-terms{text-align:center;font-size:12px;color:#64748b;line-height:1.6}.register-terms a{color:#94a3b8;text-decoration:none;transition:color .2s}.register-terms a:hover{color:#0ea5e9}.register-divider{display:flex;align-items:center;gap:16px;margin:28px 0}.register-divider:before,.register-divider:after{content:"";flex:1;height:1px;background:#38bdf81a}.register-divider span{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.register-page .oauth-buttons{display:flex;gap:12px}.register-page .btn-oauth{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:#0f172a99;border:1px solid rgba(56,189,248,.15);border-radius:10px;font-size:14px;font-weight:600;color:#e2e8f0;cursor:pointer;transition:all .2s ease}.register-page .btn-oauth:hover{background:#0f172ae6;border-color:#38bdf84d}.register-page .btn-oauth:disabled{opacity:.7;cursor:not-allowed}.register-page .btn-oauth .spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#0ea5e9;animation:spin 1s ease-in-out infinite}.register-login-link{text-align:center;font-size:14px;color:#64748b;margin-top:20px}.register-login-link a{color:#0ea5e9;text-decoration:none;font-weight:600;transition:color .2s}.register-login-link a:hover{color:#38bdf8}@media (max-width: 639px){.register-card{padding:28px 20px}.section-title{font-size:12px}.app-card{padding:14px 16px}.app-icon{width:38px;height:38px;font-size:18px}.app-name{font-size:14px}.register-btn{padding:16px 24px;font-size:14px}}.verify-email-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:48px 16px}.verify-card{background:linear-gradient(180deg,#0d1b2a,#0a1628);border:1px solid rgba(56,189,248,.1);border-radius:16px;padding:48px;width:100%;max-width:480px;text-align:center}.verify-icon{font-size:64px;margin-bottom:24px}.verify-icon.spinning{animation:spin 2s linear infinite}.verify-icon.success{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:#4ade8026;border:2px solid #4ade80;border-radius:50%;color:#4ade80;font-size:40px}.verify-icon.error{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:#f8717126;border:2px solid #f87171;border-radius:50%;color:#f87171;font-size:40px}.verify-card h1{font-size:24px;font-weight:700;color:#e2e8f0;margin:0 0 12px}.verify-card p{color:#94a3b8;font-size:15px;line-height:1.6;margin:0 0 24px}.verify-card .error-message{color:#f87171;background:#f871711a;padding:12px 16px;border-radius:8px;margin-bottom:16px}.verify-card .btn{display:inline-block;padding:14px 32px;border-radius:8px;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s}.verify-card .btn-primary{background:linear-gradient(135deg,#0ea5e9,#06b6d4);color:#fff;border:none}.verify-card .btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0ea5e959}.verify-card .btn-secondary{background:transparent;color:#94a3b8;border:1px solid rgba(56,189,248,.2)}.verify-card .btn-secondary:hover{border-color:#38bdf866;color:#e2e8f0}.forgot-password-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:48px 16px}.forgot-password-card{background:var(--color-surface);border-radius:var(--radius);padding:48px;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #0000001a;text-align:left}.forgot-password-title{font-size:28px;font-weight:800;margin-bottom:8px;color:var(--color-text)}.forgot-password-subtitle{color:var(--color-text-secondary);margin-bottom:32px}.forgot-password-error{background:#dc26261a;color:#ef4444;padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px}.forgot-password-form{display:flex;flex-direction:column;gap:20px}.forgot-password-btn{margin-top:8px;padding:14px 24px;font-size:16px;width:100%}.forgot-password-btn:disabled{opacity:.7;cursor:not-allowed}.forgot-password-back-link{margin-top:24px;text-align:center;font-size:14px;color:var(--color-text-secondary)}.forgot-password-back-link a{color:var(--color-primary);text-decoration:none;font-weight:600}.forgot-password-back-link a:hover{text-decoration:underline}.forgot-password-success-icon{font-size:48px;margin-bottom:16px}.forgot-password-text{color:var(--color-text-secondary);font-size:15px;line-height:1.6;margin-bottom:16px}.forgot-password-text strong{color:var(--color-text)}.forgot-password-text--small{font-size:13px;margin-bottom:32px}.reset-password-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:48px 16px}.reset-password-card{background:var(--color-surface);border-radius:var(--radius);padding:48px;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #0000001a}.reset-password-title{font-size:28px;font-weight:800;margin-bottom:8px;color:var(--color-text)}.reset-password-subtitle{color:var(--color-text-secondary);margin-bottom:32px}.reset-password-error{background:#dc26261a;color:#ef4444;padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px}.reset-password-form{display:flex;flex-direction:column;gap:20px}.reset-password-requirements{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.reset-password-requirements li{font-size:13px;color:var(--color-text-secondary);padding-left:20px;position:relative}.reset-password-requirements li:before{content:"○";position:absolute;left:0;color:var(--color-text-secondary)}.reset-password-requirements li.met{color:#22c55e}.reset-password-requirements li.met:before{content:"●";color:#22c55e}.reset-password-btn{padding:14px 24px;font-size:16px;width:100%}.reset-password-btn:disabled{opacity:.7;cursor:not-allowed}.reset-password-back-link{margin-top:24px;text-align:center;font-size:14px}.reset-password-back-link a{color:var(--color-primary);text-decoration:none;font-weight:600}.reset-password-back-link a:hover{text-decoration:underline}.reset-password-success-icon{font-size:48px;margin-bottom:16px}.reset-password-text{color:var(--color-text-secondary);font-size:15px;line-height:1.6;margin-bottom:32px}.complete-registration-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.complete-registration-card{width:100%;max-width:700px;background:var(--bg-card);border-radius:16px;padding:2.5rem;border:1px solid var(--border-color);box-shadow:0 25px 50px -12px #0006}.welcome-header{text-align:center;margin-bottom:2rem}.welcome-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.welcome-subtitle{color:var(--text-secondary);font-size:1rem}.complete-registration-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{display:flex;flex-direction:column;gap:1rem}.section-title{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.section-description{color:var(--text-secondary);font-size:.9rem;margin:0}.app-card-wrapper{display:flex;flex-direction:column;gap:.5rem}.app-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%;color:inherit;font-family:inherit}.app-card:hover{border-color:var(--primary-color);background:var(--bg-tertiary)}.app-card.selected{border-color:var(--primary-color);background:#6366f11a}.app-card.selected .app-icon{box-shadow:0 4px 12px #0000004d}.app-info{display:flex;flex-direction:column;gap:.125rem;flex:1}.app-name{font-weight:600;color:var(--text-primary);font-size:1rem}.app-description{font-size:.8rem;color:var(--text-secondary)}.app-check{color:var(--primary-color);font-weight:700;font-size:1.25rem}.access-code-field{padding:0 .5rem}.access-code-input{width:100%;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.9rem;transition:border-color .2s}.access-code-input:focus{outline:none;border-color:var(--primary-color)}.access-code-input::placeholder{color:var(--text-tertiary)}.register-error{padding:.75rem 1rem;background:#ef44441a;border:1px solid var(--error-color);border-radius:8px;color:var(--error-color);font-size:.9rem;text-align:center}.action-buttons{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.submit-btn{width:100%;padding:1rem;font-size:1rem;font-weight:600}.skip-btn{width:100%;padding:.75rem;font-size:.9rem;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.skip-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}@media (max-width: 640px){.complete-registration-page{padding:1rem}.complete-registration-card{padding:1.5rem}.welcome-title{font-size:1.5rem}.app-grid{grid-template-columns:1fr}}.profile-page{min-height:calc(100vh - 200px);padding:2rem 1rem}.profile-container{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.profile-header{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#0ea5e9,#06b6d4);display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;color:#fff;flex-shrink:0}.profile-info h1{font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:.25rem}.profile-email{color:var(--color-text-secondary);margin-bottom:.5rem}.verified-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#22c55e26;color:#4ade80;font-size:.75rem;font-weight:600;border-radius:4px}.unverified-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#fbbf2426;color:#fbbf24;font-size:.75rem;font-weight:600;border-radius:4px}.success-message{padding:1rem;background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#4ade80;border-radius:8px;text-align:center}.error-message{padding:.75rem 1rem;background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171;border-radius:8px;font-size:.9rem}.profile-section{padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}.profile-section h2{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}.section-icon{font-size:1.25rem}.section-description{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1rem}.empty-apps{text-align:center;padding:2rem;color:var(--color-text-secondary)}.empty-apps-hint{font-size:.9rem;opacity:.8}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.app-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:12px;position:relative;transition:all .2s;text-align:left;width:100%;cursor:default;color:inherit;font-family:inherit}.app-card.active{border-color:#22c55e4d;background:#22c55e0d}.app-card.request{cursor:pointer;border-style:dashed}.app-card.request:hover{border-color:var(--color-primary);background:#0ea5e90d}.app-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;font-size:1.5rem;flex-shrink:0}.app-icon.teal{background:linear-gradient(135deg,#0d9488,#14b8a6)}.app-icon.orange{background:linear-gradient(135deg,#ea580c,#f97316)}.app-icon.sky{background:linear-gradient(135deg,#0284c7,#38bdf8)}.app-info{display:flex;flex-direction:column;gap:2px;flex:1}.app-name{font-weight:600;color:var(--color-text)}.app-description{font-size:.8rem;color:var(--color-text-secondary)}.app-role{font-size:.75rem;color:var(--color-primary);font-weight:600;text-transform:uppercase;margin-top:4px}.requires-code{font-size:.75rem;color:var(--color-text-muted);margin-top:4px}.app-check{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#22c55e;color:#fff;border-radius:50%;font-size:.75rem;font-weight:700}.settings-list{display:flex;flex-direction:column;gap:.75rem}.setting-item{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.setting-item:last-child{border-bottom:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h3{font-size:1.1rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.selected-app{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-bg-secondary);border-radius:8px}.selected-app p{font-size:.85rem;color:var(--color-text-secondary);margin-top:2px}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.form-group input{padding:.75rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;background:var(--color-bg-secondary);color:var(--color-text)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.field-hint{font-size:.8rem;color:var(--color-text-muted)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.btn{padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit}.btn-secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-secondary:hover{background:var(--color-bg-secondary)}.btn-primary{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:4rem auto}@media (max-width: 640px){.profile-header{flex-direction:column;text-align:center}.app-grid{grid-template-columns:1fr}}.admin-page{padding:24px var(--page-padding);max-width:1400px;margin:0 auto;min-height:calc(100vh - var(--header-height) - var(--footer-height))}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;flex-wrap:wrap}.admin-header h1{font-size:28px;font-weight:800;margin-bottom:4px;color:var(--color-text)}.admin-header p{color:var(--color-text-secondary);font-size:14px}.admin-nav-links{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap}.admin-nav-link{padding:7px 14px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;text-decoration:none;border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all .15s}.admin-nav-link:hover{background:var(--color-surface);color:var(--color-text)}.admin-nav-link.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.stat-card .stat-label{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted)}.stat-card .stat-value{font-size:24px;font-weight:800;color:var(--color-text)}.stat-card .stat-icon{width:20px;height:20px;color:var(--color-primary);flex-shrink:0}.stat-card .stat-icon svg{width:100%;height:100%}.controls-bar{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;align-items:center}.filter-tabs{display:flex;gap:8px}.filter-tab{padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.filter-tab:hover{background:var(--color-bg-secondary)}.filter-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.search-box{flex:1;min-width:180px;max-width:280px;position:relative}.search-box input{width:100%;padding:8px 12px 8px 34px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:13px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.search-box input::placeholder{color:var(--color-text-muted)}.search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e933}.search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--color-text-muted);pointer-events:none}.btn-grant{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-white);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;margin-left:auto}.btn-grant:hover{background:var(--color-primary-dark)}.btn-grant svg{width:16px;height:16px}.roles-table-container{background:var(--color-surface);border:1px solid var(--color-border);overflow-x:auto}.roles-table{width:100%;border-collapse:collapse;font-size:14px}.roles-table th,.roles-table td{padding:16px;text-align:left;border-bottom:1px solid var(--color-border)}.roles-table th{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-bg-secondary)}.roles-table tbody tr:hover{background:var(--color-bg-secondary)}.roles-table tbody tr:last-child td{border-bottom:none}.user-cell{display:flex;flex-direction:column;gap:2px}.user-cell .user-name{font-weight:600;color:var(--color-text)}.user-cell .user-email{font-size:12px;color:var(--color-text-muted)}.app-cell{display:flex;align-items:center;gap:10px}.app-cell .app-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:6px;color:var(--color-primary)}.app-cell .app-icon svg{width:18px;height:18px}.app-cell .app-name{font-weight:500;color:var(--color-text)}.role-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.3px;border-radius:4px;text-transform:lowercase}.role-badge.admin{background:#8b5cf626;color:#a78bfa}.role-badge.ops{background:#3b82f626;color:#60a5fa}.role-badge.user{background:#6b728026;color:#9ca3af}.status-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.3px;border-radius:4px;text-transform:uppercase}.status-badge.active{background:#22c55e26;color:#4ade80}.status-badge.inactive,.status-badge.revoked{background:#ef444426;color:#f87171}.revoked-row{opacity:.65;background:#ef44440d}.revoked-row:hover{opacity:.85}.actions-cell{display:flex;gap:8px}.btn-action{padding:6px 12px;font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s;font-family:inherit;border:1px solid}.btn-action.edit{background:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.btn-action.edit:hover{background:var(--color-bg-secondary);color:var(--color-text)}.btn-action.revoke{background:transparent;border-color:#ef444480;color:#f87171}.btn-action.revoke:hover{background:#ef444426}.btn-action.restore{background:transparent;border-color:#22c55e80;color:#4ade80}.btn-action.restore:hover{background:#22c55e26}.btn-action.sync{background:transparent;border-color:#3b82f680;color:#60a5fa;display:inline-flex;align-items:center;gap:4px}.btn-action.sync:hover{background:#3b82f626}.btn-action.sync:disabled{opacity:.5;cursor:not-allowed}.btn-action.sync svg{width:12px;height:12px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-top:none}.pagination-info{font-size:13px;color:var(--color-text-secondary)}.pagination-controls{display:flex;gap:4px}.page-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.page-btn:hover:not(:disabled){background:var(--color-surface-elevated);color:var(--color-text)}.page-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-ellipsis{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.empty-state{text-align:center;padding:64px 24px;color:var(--color-text-secondary)}.empty-state svg{width:48px;height:48px;margin-bottom:16px;color:var(--color-text-muted)}.empty-state h3{font-size:16px;font-weight:600;margin-bottom:4px;color:var(--color-text)}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:64px}.loading-spinner:after{content:"";width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{padding:20px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-header h2{font-size:18px;font-weight:700}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;transition:color .2s}.modal-body{padding:24px}.modal-body .form-group{margin-bottom:20px}.modal-body .form-group:last-child{margin-bottom:0}.modal-body label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--color-text)}.modal-body input,.modal-body select{width:100%;padding:12px 16px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.modal-body input:focus,.modal-body select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e933}.modal-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:12px}.modal-footer .btn{padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;border-radius:0}.modal-footer .btn-cancel{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.modal-footer .btn-cancel:hover{background:var(--color-bg-secondary);color:var(--color-text)}.modal-footer .btn-submit{background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-white)}.modal-footer .btn-submit:hover{background:var(--color-primary-dark)}.modal-footer .btn-submit:disabled{opacity:.7;cursor:not-allowed}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171;padding:12px 16px;margin-bottom:24px;font-size:14px}@media (max-width: 768px){.controls-bar{flex-direction:column;align-items:stretch}.filter-tabs{overflow-x:auto;padding-bottom:4px}.search-box{max-width:none}.btn-grant{margin-left:0;justify-content:center}.roles-table th:nth-child(4),.roles-table td:nth-child(4){display:none}}.error-dashboard{padding:24px;max-width:1400px;margin:0 auto;color:var(--color-text)}.error-dashboard.loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-muted)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header h1{font-size:28px;font-weight:700;margin:0}.header-actions{display:flex;gap:12px}.btn-cleanup{padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);cursor:pointer;transition:all .2s}.btn-cleanup:hover{background:var(--color-surface-hover)}.btn-delete{padding:8px 16px;background:#f44336;border:none;border-radius:6px;color:#fff;cursor:pointer;transition:all .2s}.btn-delete:hover{background:#d32f2f}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px}.stat-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.stat-value{font-size:32px;font-weight:700;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.stat-change{font-size:13px;font-weight:500;padding:2px 8px;border-radius:4px}.stat-change.up{color:#f44336;background:#f443361a}.stat-change.down{color:#4caf50;background:#4caf501a}.stat-sub{font-size:13px;color:var(--color-text-muted);font-weight:400}.stat-unit{font-size:16px;font-weight:400;color:var(--color-text-muted)}.trend-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:24px}.trend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.trend-header h3{margin:0;font-size:16px;font-weight:600}.trend-total{font-size:24px;font-weight:700;color:var(--color-primary)}.trend-chart{display:flex;align-items:flex-end;justify-content:space-between;height:150px;padding:0 20px}.chart-bar-container{display:flex;flex-direction:column;align-items:center;flex:1;height:100%}.chart-bar{width:60%;max-width:60px;background:linear-gradient(180deg,var(--color-primary),#1e88e5);border-radius:4px 4px 0 0;min-height:4px;transition:height .3s ease;margin-top:auto}.chart-bar:hover{opacity:.8}.chart-label{font-size:11px;color:var(--color-text-muted);margin-top:8px;text-transform:uppercase}.filters-bar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filters-bar select,.filters-bar input{padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-size:13px}.filters-bar select:focus,.filters-bar input:focus{outline:none;border-color:var(--color-primary)}.filters-bar input{min-width:200px}.result-count{margin-left:auto;color:var(--color-text-muted);font-size:13px}.error-table-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.error-table{width:100%;border-collapse:collapse}.error-table th{text-align:left;padding:12px 16px;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.error-table td{padding:12px 16px;border-bottom:1px solid var(--color-border);vertical-align:middle}.error-table tr:last-child td{border-bottom:none}.error-table tr:hover{background:var(--color-surface-hover)}.error-table tr.selected{background:#2196f31a}.error-table input[type=checkbox]{width:16px;height:16px;cursor:pointer}.timestamp{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.severity-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;margin-right:8px}.severity-critical{background:#f4433626;color:#f44336}.severity-warning{background:#ff980026;color:#ff9800}.severity-info{background:#2196f326;color:#2196f3}.error-type{font-weight:500}.anonymous{color:var(--color-text-muted);font-style:italic}.preview{max-width:300px}.preview code{display:block;font-size:12px;color:var(--color-primary);margin-bottom:4px}.preview .message{font-size:12px;color:var(--color-text-muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{white-space:nowrap}.btn-view,.btn-delete-row{background:none;border:none;font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.btn-view:hover{background:var(--color-surface-hover)}.btn-delete-row:hover{background:#f443361a}.no-errors{padding:48px;text-align:center;color:var(--color-text-muted);font-size:16px}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px}.pagination button{padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);cursor:pointer;transition:all .2s}.pagination button:hover:not(:disabled){background:var(--color-surface-hover)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{color:var(--color-text-muted);font-size:13px}.error-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.error-modal{background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:18px;display:flex;align-items:center}.modal-close{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;line-height:1}.modal-close:hover{color:var(--color-text)}.modal-content{padding:20px;overflow-y:auto;flex:1}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}.detail-item label{display:block;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px}.detail-item span{font-size:14px}.detail-section{margin-bottom:20px}.detail-section label{display:block;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:8px}.error-message,.stack-trace,.request-body{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.stack-trace{color:#f44336}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border)}.btn-close{padding:8px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);cursor:pointer}.btn-close:hover{background:var(--color-surface-hover)}@media (max-width: 768px){.error-dashboard{padding:16px}.stats-grid{grid-template-columns:1fr}.stat-value{font-size:24px}.filters-bar{flex-direction:column;align-items:stretch}.filters-bar input{min-width:100%}.result-count{margin-left:0}.error-table-container{overflow-x:auto}.preview{display:none}.detail-grid{grid-template-columns:1fr}}:root{--health-green: #38a169;--health-yellow: #d69e2e;--health-red: #e53e3e;--health-gray: #718096}.health-page{padding:24px var(--page-padding, 24px);max-width:1200px;margin:0 auto;min-height:calc(100vh - var(--header-height, 60px) - var(--footer-height, 60px));color:var(--color-text)}.health-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:300px;color:var(--color-text-muted)}.health-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;flex-wrap:wrap}.health-header-left h1{font-size:28px;font-weight:800;margin:6px 0 4px}.health-header-left p{font-size:13px;color:var(--color-text-secondary);margin:0}.health-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted)}.breadcrumb a{color:var(--color-primary);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.overall-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:4px;font-size:13px;font-weight:600;border:1px solid}.overall-dot{width:8px;height:8px;border-radius:50%;display:inline-block;animation:pulse 2s infinite}.overall-healthy{border-color:var(--health-green);color:var(--health-green);background:#38a16914}.overall-healthy .overall-dot{background:var(--health-green)}.overall-degraded{border-color:var(--health-yellow);color:var(--health-yellow);background:#d69e2e14}.overall-degraded .overall-dot{background:var(--health-yellow)}.overall-unhealthy{border-color:var(--health-red);color:var(--health-red);background:#e53e3e14}.overall-unhealthy .overall-dot{background:var(--health-red);animation:pulse-red 1s infinite}.overall-unknown{border-color:var(--health-gray);color:var(--health-gray);background:transparent}.overall-unknown .overall-dot{background:var(--health-gray)}.btn-run-checks{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.btn-run-checks:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-run-checks:disabled{opacity:.6;cursor:not-allowed}.btn-run-checks svg{width:14px;height:14px}.btn-run-checks svg.spin{animation:spin 1s linear infinite}.health-error{background:#e53e3e1a;border:1px solid var(--health-red);color:var(--health-red);padding:10px 16px;font-size:13px;margin-bottom:20px}.summary-strip{display:flex;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.summary-card{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:var(--color-surface);border:1px solid var(--color-border);min-width:90px}.summary-count{font-size:28px;font-weight:800;line-height:1}.summary-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;color:var(--color-text-muted)}.summary-healthy .summary-count{color:var(--health-green)}.summary-degraded .summary-count{color:var(--health-yellow)}.summary-unhealthy .summary-count{color:var(--health-red)}.summary-meta .summary-count{color:var(--color-text)}.last-refresh{margin-left:auto;font-size:12px;color:var(--color-text-muted)}.health-table-wrap{overflow-x:auto;border:1px solid var(--color-border)}.health-table{width:100%;border-collapse:collapse;font-size:13px}.health-table thead tr{background:var(--color-surface);border-bottom:2px solid var(--color-border)}.health-table thead th{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);white-space:nowrap}.health-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .15s}.health-table tbody tr:last-child{border-bottom:none}.health-table tbody tr:hover{background:var(--color-surface)}.row-unhealthy{background:#e53e3e0a}.row-unhealthy:hover{background:#e53e3e14!important}.row-degraded{background:#d69e2e0a}.row-degraded:hover{background:#d69e2e14!important}.health-table td{padding:12px 16px;vertical-align:middle}.col-component{width:200px}.component-name{font-weight:600}.component-desc{font-size:11px;color:var(--color-text-muted);margin-top:2px}.col-status{width:120px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:3px}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-badge.status-healthy{color:var(--health-green);background:#38a1691f}.status-badge.status-healthy .status-dot{background:var(--health-green)}.status-badge.status-degraded{color:var(--health-yellow);background:#d69e2e1f}.status-badge.status-degraded .status-dot{background:var(--health-yellow)}.status-badge.status-unhealthy{color:var(--health-red);background:#e53e3e1f}.status-badge.status-unhealthy .status-dot{background:var(--health-red);animation:pulse-red 1s infinite}.status-badge.status-unknown{color:var(--health-gray);background:#7180961f}.status-badge.status-unknown .status-dot{background:var(--health-gray)}.col-latency{width:160px}.latency-cell{display:flex;align-items:center;gap:10px}.latency-bar-track{flex:1;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.latency-bar-fill{height:100%;border-radius:2px;transition:width .4s}.latency-value{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-text-muted);min-width:52px;text-align:right}.latency-na{color:var(--color-text-muted)}.col-message{max-width:380px}.message-text{font-size:12px;color:var(--color-text-muted);word-break:break-word}.message-text.message-error{color:var(--health-red)}.failures-badge{display:inline-block;margin-left:8px;padding:1px 6px;background:#e53e3e26;color:var(--health-red);font-size:10px;font-weight:700;border-radius:3px;white-space:nowrap}.col-checked{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.health-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 0;color:var(--color-text-muted);text-align:center;border:1px dashed var(--color-border)}.health-empty svg{width:48px;height:48px;opacity:.4}.health-empty p strong{color:var(--color-text)}.health-footer-note{margin-top:24px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);line-height:1.6}.health-footer-note strong{color:var(--color-text)}.health-footer-note code{background:var(--color-bg-secondary, rgba(0,0,0,.08));padding:1px 5px;border-radius:3px;font-size:11px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-red{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.health-header{flex-direction:column}.health-header-right{width:100%;justify-content:space-between}.col-latency,.col-checked{display:none}.col-message{max-width:200px}}.tutorial-step-image{display:block;margin:12px auto 0;max-width:100%;max-height:220px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#0f172a}@media (max-width: 600px){.tutorial-step-image{max-height:160px}.react-joyride__tooltip{padding:12px!important;font-size:13px}.react-joyride__tooltip h1,.react-joyride__tooltip h2,.react-joyride__tooltip h3,.react-joyride__tooltip h4{font-size:15px!important}.react-joyride__tooltip p{margin:6px 0}}.react-joyride__tooltip ul{margin:8px 0;padding-left:20px}.react-joyride__tooltip ul li{margin-bottom:4px}.react-joyride__tooltip code{background:#ffffff1a;padding:1px 5px;border-radius:3px;font-size:.9em;font-family:SF Mono,Monaco,Courier New,monospace}.react-joyride__tooltip a{color:#60a5fa;text-decoration:underline}.library-page{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;padding:24px var(--page-padding);padding-bottom:calc(var(--footer-height) + 24px);max-width:1600px;margin:0 auto;min-height:calc(100vh - var(--header-height) - var(--footer-height));overflow:hidden}.library-loading{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem}.library-loading p{color:var(--color-text-secondary)}.library-loading .loading-spinner{width:48px;height:48px;border:3px solid rgba(79,195,247,.2);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.library-access-denied{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;gap:1rem;padding:2rem}.access-denied-icon{width:80px;height:80px;background:#ef53501a;border-radius:50%;display:flex;align-items:center;justify-content:center}.access-denied-icon svg{width:40px;height:40px;color:#ef5350}.library-access-denied h1{color:var(--color-text);font-size:1.75rem;margin:0}.library-access-denied p{color:var(--color-text-secondary);font-size:1rem;max-width:400px;margin:0}.access-denied-actions{display:flex;gap:1rem;margin-top:1rem}.access-denied-actions .btn-home,.access-denied-actions .btn-login{padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:all .2s}.access-denied-actions .btn-home{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.access-denied-actions .btn-home:hover{background:var(--color-surface-hover)}.access-denied-actions .btn-login{background:var(--color-primary);color:var(--color-bg)}.access-denied-actions .btn-login:hover{opacity:.9}.library-page .footer{position:fixed;bottom:0;left:0;right:0;z-index:100}@media (max-width: 1024px){.library-page{grid-template-columns:1fr}.transfers-panel{order:-1}}.library-search-section{display:flex;flex-direction:column;gap:20px}.library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.library-header h1{font-size:28px;font-weight:800;margin-bottom:4px}.library-header p{color:var(--color-text-secondary);font-size:13px}.library-header .help-link{color:var(--color-primary);text-decoration:none;font-weight:500;transition:color .2s}.library-header .help-link:hover{color:#81d4fa;text-decoration:underline}.header-right{display:flex;align-items:center;gap:16px}.quota-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;background:var(--color-surface);border:1px solid var(--color-border)}.quota-badge .quota-dot{width:8px;height:8px;border-radius:50%}.quota-badge.quota-green .quota-dot{background:#4caf50;box-shadow:0 0 6px #4caf5080}.quota-badge.quota-yellow .quota-dot{background:#ff9800;box-shadow:0 0 6px #ff980080}.quota-badge.quota-red .quota-dot{background:#f44336;box-shadow:0 0 6px #f4433680}.quota-badge.quota-green{border-color:#4caf504d}.quota-badge.quota-yellow{border-color:#ff98004d}.quota-badge.quota-red{border-color:#f443364d}.tutorial-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.tutorial-btn:hover{background:#3b82f61f;border-color:#3b82f680;color:#3b82f6}.tutorial-btn svg{width:16px;height:16px}.cwa-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;background:#3b82f6;border:1px solid #3b82f6;color:#fff;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.cwa-btn:hover{background:#2563eb;border-color:#2563eb}.cwa-btn svg{width:16px;height:16px}.book-card.tutorial-book,.book-card-grid.tutorial-book,.transfer-item.tutorial-transfer{border:1px dashed rgba(59,130,246,.6);background:#3b82f60a;position:relative}.book-card.tutorial-book:before,.book-card-grid.tutorial-book:before,.transfer-item.tutorial-transfer:before{content:"TUTORIAL";position:absolute;top:6px;right:6px;font-size:9px;font-weight:700;letter-spacing:1px;padding:2px 6px;background:#3b82f6;color:#fff;border-radius:3px;z-index:2}.view-toggle{display:flex;gap:4px}.view-toggle button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:all .2s}.view-toggle button:hover{color:var(--color-text)}.view-toggle button.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.search-container{background:var(--color-surface);border:1px solid var(--color-border);padding:16px}.search-row{display:flex;gap:8px;margin-bottom:12px}.search-input-wrapper{flex:1;position:relative}.search-input-wrapper svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--color-text-muted);pointer-events:none}.search-input-wrapper input{width:100%;padding:10px 12px 10px 40px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-size:14px;font-family:inherit}.search-input-wrapper input:focus{outline:none;border-color:var(--color-primary)}.search-mode-toggle{display:flex}.search-mode-toggle button{padding:10px 16px;font-size:12px;font-weight:600;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all .2s;font-family:inherit}.search-mode-toggle button:first-child{border-right:none}.search-mode-toggle button.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.advanced-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width: 768px){.advanced-filters{grid-template-columns:repeat(2,1fr)}}.filter-input{display:flex;flex-direction:column;gap:4px}.filter-input label{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-muted)}.filter-input input{padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-size:13px;font-family:inherit}.filter-input input::placeholder{color:var(--color-text-muted);font-size:12px}.filter-input input:focus{outline:none;border-color:var(--color-primary)}.results-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.results-header-left{display:flex;align-items:center;gap:12px}.select-all-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.select-all-checkbox input{width:16px;height:16px;accent-color:var(--color-primary)}.select-all-checkbox span{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-secondary)}.results-count{font-size:13px;color:var(--color-text-muted)}.batch-download-btn{padding:8px 14px;font-size:12px;font-weight:600;background:transparent;border:none;color:var(--color-primary);cursor:pointer;transition:color .2s;font-family:inherit}.batch-download-btn:hover{color:var(--color-primary-light)}.batch-download-btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.results-list{display:flex;flex-direction:column;gap:8px;width:100%;overflow:hidden}.book-card{display:grid;grid-template-columns:auto 48px 1fr auto auto;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);transition:border-color .2s;min-width:0;overflow:hidden}.book-card:hover{border-color:var(--color-primary)}.book-card.selected{border-color:var(--color-primary);background:#0ea5e90d}.book-checkbox{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.book-cover{width:48px;height:64px;background:var(--color-bg-secondary);border-radius:4px;overflow:hidden;flex-shrink:0}.book-cover img{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.book-cover-placeholder svg{width:24px;height:24px}.book-info{min-width:0;overflow:hidden}.book-title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-author{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;max-width:120px;overflow:hidden}.book-tag{padding:3px 8px;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary)}.book-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-download{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-white);cursor:pointer;transition:all .2s;font-family:inherit}.btn-download:hover{background:var(--color-primary-dark)}.btn-download svg{width:14px;height:14px}.btn-queued{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;background:transparent;border:1px solid var(--color-primary);color:var(--color-primary);cursor:default;font-family:inherit}.btn-queued svg{width:14px;height:14px;animation:spin 1s linear infinite}.btn-complete{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;background:transparent;border:1px solid #f59e0b;color:#f59e0b;cursor:default;font-family:inherit}.btn-complete svg{width:14px;height:14px;animation:spin 1s linear infinite}.btn-imported{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;background:transparent;border:1px solid #22c55e;color:#22c55e;cursor:default;font-family:inherit}.btn-imported svg{width:14px;height:14px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;color:var(--color-text-secondary);text-align:center}.loading-state svg,.empty-state svg{width:48px;height:48px;margin-bottom:16px;color:var(--color-text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.transfers-panel{background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;height:fit-content;max-height:calc(100vh - var(--header-height) - var(--footer-height) - 48px);position:sticky;top:calc(var(--header-height) + 24px);z-index:1}.transfers-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--color-border)}.transfers-header h2{font-size:16px;font-weight:700}.transfers-menu-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.transfers-tabs{display:flex;border-bottom:1px solid var(--color-border)}.transfers-tab{flex:1;padding:12px;font-size:12px;font-weight:600;text-align:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;font-family:inherit}.transfers-tab:hover{color:var(--color-text)}.transfers-tab.active{color:var(--color-text);background:var(--color-bg-secondary)}.transfers-list{flex:1;overflow-y:auto;padding:8px}.transfer-item{padding:12px;border-bottom:1px solid var(--color-border)}.transfer-item:last-child{border-bottom:none}.transfer-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.transfer-filename{font-size:13px;font-weight:500;color:var(--color-text);word-break:break-all}.transfer-cancel-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.transfer-cancel-btn:hover{color:#f87171}.transfer-cancel-btn svg{width:14px;height:14px}.transfer-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--color-text-muted);margin-bottom:8px}.transfer-speed{color:var(--color-primary)}.transfer-progress{height:4px;background:var(--color-bg-secondary);border-radius:2px;overflow:hidden;margin-bottom:6px}.transfer-progress-bar{height:100%;background:var(--color-primary);transition:width .3s}.transfer-footer{display:flex;align-items:center;justify-content:space-between;font-size:11px}.transfer-percent{color:var(--color-text-secondary)}.transfer-eta{color:var(--color-text-muted)}.transfer-status{display:flex;align-items:center;gap:6px}.transfer-status.paused{color:var(--color-text-muted)}.transfer-status.error{color:#f87171}.transfer-status.orphaned{color:#fbbf24;font-size:11px;cursor:help}.transfer-status.complete{color:#4ade80}.transfer-status-text{font-size:11px;color:var(--color-text-secondary)}.btn-open-library{padding:4px 10px;font-size:10px;font-weight:600;background:var(--color-primary);border:none;color:var(--color-white);text-decoration:none;cursor:pointer;transition:all .2s}.btn-open-library:hover{background:var(--color-primary-dark)}.transfer-actions-btn{padding:2px 6px;font-size:10px;background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-family:inherit}.transfer-actions-btn:hover{background:var(--color-bg-secondary)}.transfers-footer{padding:12px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px}.btn-clear-completed{padding:10px;font-size:12px;font-weight:600;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all .2s;font-family:inherit}.btn-clear-completed:hover{background:var(--color-surface-elevated);color:var(--color-text)}.transfers-empty{padding:32px 16px;text-align:center;color:var(--color-text-muted);font-size:13px}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.book-card-grid{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden;transition:border-color .2s}.book-card-grid:hover{border-color:var(--color-primary)}.book-card-grid.selected{border-color:var(--color-primary);background:#0ea5e90d}.book-card-grid .book-cover{width:100%;height:200px;border-radius:0;position:relative}.book-card-grid .book-checkbox{position:absolute;top:8px;left:8px;z-index:1}.book-card-grid .book-content{padding:12px;display:flex;flex-direction:column;gap:8px}.book-card-grid .book-title{font-size:13px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-card-grid .book-author{font-size:11px}.book-card-grid .book-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.book-card-grid .btn-download,.book-card-grid .btn-queued,.book-card-grid .btn-complete,.book-card-grid .btn-imported{padding:6px 12px;font-size:11px}.quota-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--color-surface);border:1px solid var(--color-border);font-size:13px}.quota-info{display:flex;gap:24px}.quota-item{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary)}.quota-item strong{color:var(--color-text)}.quota-reset{color:var(--color-text-muted);font-size:12px}.queue-fab{display:none;position:fixed;bottom:calc(var(--footer-height) + 16px);right:16px;width:56px;height:56px;border-radius:50%;background:var(--color-primary);border:none;color:var(--color-white);cursor:pointer;box-shadow:0 4px 12px #0000004d;z-index:80;align-items:center;justify-content:center}.queue-fab svg{width:24px;height:24px}.queue-fab-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#f87171;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.queue-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:85}.transfers-close-btn{display:none;width:28px;height:28px;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.transfers-close-btn svg{width:18px;height:18px}@media (max-width: 768px){.library-page{grid-template-columns:1fr;gap:16px;padding:16px;padding-bottom:calc(var(--footer-height) + 16px)}.queue-fab{display:flex}.queue-overlay{display:block}.transfers-close-btn{display:flex}.transfers-panel{position:fixed;bottom:var(--footer-height);left:0;right:0;width:100%;max-height:60vh;z-index:90;border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .3s ease;top:auto;display:flex;flex-direction:column}.transfers-panel.open{transform:translateY(0)}.transfers-panel .transfers-header,.transfers-panel .transfers-tabs{flex-shrink:0}.transfers-panel .transfers-list{flex:1;overflow-y:auto;min-height:150px}.transfers-panel .transfers-footer{flex-shrink:0}.library-header{flex-direction:column;gap:12px}.library-header h1{font-size:22px}.library-header p{font-size:12px}.header-right{width:100%;justify-content:space-between}.quota-badge{font-size:12px;padding:4px 10px}.view-toggle{align-self:flex-end}.view-toggle button{width:32px;height:32px}.view-toggle button svg{width:16px;height:16px}.search-container{padding:12px}.search-row{flex-direction:column;gap:8px;margin-bottom:8px}.search-mode-toggle{width:100%}.search-mode-toggle button{flex:1;padding:10px 12px}.search-input-wrapper input{padding:12px 12px 12px 40px;font-size:16px}.advanced-filters{grid-template-columns:1fr;gap:10px}.filter-input input{padding:10px;font-size:16px}.results-header{flex-direction:column;align-items:flex-start;gap:8px}.results-header-left{width:100%;justify-content:space-between}.batch-download-btn{width:100%;padding:10px;background:var(--color-primary);color:var(--color-white);text-align:center}.batch-download-btn:disabled{background:var(--color-bg-secondary);color:var(--color-text-muted)}.book-card{display:flex;flex-wrap:wrap;gap:12px;padding:12px;position:relative}.book-card .book-checkbox{position:absolute;top:12px;right:12px;z-index:1}.book-card .book-cover{width:56px;height:75px;flex-shrink:0}.book-card .book-info{flex:1;min-width:0;max-width:calc(100% - 100px)}.book-card .book-title{font-size:14px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:30px}.book-card .book-author{font-size:11px}.book-card .book-meta{display:none}.book-card .book-actions{width:100%;margin-top:4px;flex-shrink:0}.book-card .btn-download,.book-card .btn-queued,.book-card .btn-complete,.book-card .btn-imported{width:100%;justify-content:center;padding:10px}.results-grid{grid-template-columns:repeat(2,1fr);gap:12px}.book-card-grid .book-cover{height:160px}.book-card-grid .book-content{padding:10px;gap:6px}.book-card-grid .book-title{font-size:12px}.book-card-grid .book-author{font-size:10px}.book-card-grid .book-footer{flex-direction:column;gap:6px}.book-card-grid .book-tag{align-self:flex-start;font-size:9px}.book-card-grid .btn-download,.book-card-grid .btn-queued,.book-card-grid .btn-complete,.book-card-grid .btn-imported{width:100%;padding:8px;font-size:10px}.loading-state,.empty-state{padding:40px 20px}.loading-state svg,.empty-state svg{width:40px;height:40px}.transfers-header{padding:16px;display:flex;align-items:center;justify-content:space-between}.transfers-header h2{font-size:16px;font-weight:600}.transfers-tabs{display:flex;width:100%}.transfers-tab{flex:1;padding:12px;font-size:13px;text-align:center}.transfer-item{padding:14px 16px}.transfer-filename{font-size:14px;line-height:1.3}.transfer-meta{font-size:12px;margin-top:6px}.transfer-progress{height:6px;margin:10px 0}.transfer-footer,.transfer-status,.transfer-status-text{font-size:12px}.btn-open-library{padding:8px 14px;font-size:12px}.transfers-footer{padding:14px 16px}.btn-clear-completed{padding:12px;font-size:13px}.quota-banner{flex-direction:column;gap:8px;padding:12px;font-size:12px}.quota-info{width:100%;justify-content:space-between;gap:12px}}@media (max-width: 480px){.library-page{padding:12px;gap:12px}.library-header h1{font-size:20px}.results-grid{grid-template-columns:1fr}.book-card-grid .book-cover{height:180px}.select-all-checkbox span{font-size:10px}.results-count{font-size:11px}}.wiki-page{min-height:100vh;background:linear-gradient(180deg,#1e3a5f,#0d1b2a,#0a0a0a);display:flex;flex-direction:column}.wiki-content{flex:1;max-width:800px;margin:0 auto;padding:2rem;padding-bottom:100px}.wiki-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem}.wiki-loading p{color:#fff9}.loading-spinner{width:48px;height:48px;border:3px solid rgba(79,195,247,.2);border-top-color:#4fc3f7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.wiki-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;gap:1rem}.wiki-error svg{width:64px;height:64px;color:#ef5350}.wiki-error h2{color:#fff;font-size:1.5rem;margin:0}.wiki-error p{color:#fff9;margin:0}.wiki-error-actions{display:flex;gap:1rem;margin-top:1rem}.wiki-error-actions .btn-home,.wiki-error-actions .btn-login{padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:all .2s}.wiki-error-actions .btn-home{background:#ffffff1a;color:#fff}.wiki-error-actions .btn-home:hover{background:#ffffff26}.wiki-error-actions .btn-login{background:#4fc3f7;color:#0d1b2a}.wiki-error-actions .btn-login:hover{background:#81d4fa}.wiki-header{text-align:center;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.1)}.wiki-header h1{font-size:2.5rem;color:#fff;margin-bottom:.5rem;background:linear-gradient(135deg,#4fc3f7,#81d4fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.wiki-header p{color:#fff9;font-size:1.1rem}.wiki-toc{background:#ffffff0d;border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid rgba(255,255,255,.08)}.wiki-toc h3{color:#4fc3f7;margin-bottom:1rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.wiki-toc ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.wiki-toc li a{color:#fffc;text-decoration:none;font-size:.95rem;padding:.5rem .75rem;display:block;border-radius:6px;transition:all .2s ease}.wiki-toc li a:hover{background:#4fc3f71a;color:#4fc3f7}.wiki-section{margin-bottom:3rem;scroll-margin-top:2rem}.wiki-section h2{color:#fff;font-size:1.75rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid rgba(79,195,247,.3)}.wiki-section h3{color:#ffffffe6;font-size:1.2rem;margin:1.5rem 0 .75rem}.wiki-section p{color:#fffc;line-height:1.7;margin-bottom:1rem}.wiki-section ul,.wiki-section ol{color:#fffc;line-height:1.7;margin-bottom:1rem;padding-left:1.5rem}.wiki-section li{margin-bottom:.5rem}.wiki-flow{display:flex;align-items:flex-start;justify-content:center;gap:.5rem;margin:2rem 0;padding:1.5rem;background:#ffffff08;border-radius:12px;flex-wrap:wrap}.flow-group{display:flex;align-items:flex-start;gap:.5rem}.flow-step{text-align:center;flex:0 0 auto;min-width:100px;max-width:120px}.flow-icon{width:48px;height:48px;background:linear-gradient(135deg,#4fc3f7,#29b6f6);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.flow-icon svg{width:24px;height:24px;color:#fff}.flow-label{color:#fff;font-weight:600;font-size:.95rem;margin-bottom:.25rem}.flow-desc{color:#fff9;font-size:.8rem;line-height:1.3}.flow-arrow{color:#4fc3f780;font-size:1.5rem;align-self:center;margin-top:-1rem}.wiki-tip,.wiki-note{padding:1rem 1.25rem;border-radius:8px;margin:1rem 0;font-size:.95rem;line-height:1.6}.wiki-tip{background:#4fc3f71a;border-left:3px solid #4fc3f7;color:#ffffffe6}.wiki-note{background:#ffc1071a;border-left:3px solid #ffc107;color:#ffffffe6}.wiki-table{width:100%;border-collapse:collapse;margin:1rem 0;background:#ffffff08;border-radius:8px;overflow:hidden}.wiki-table th,.wiki-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.wiki-table th{background:#ffffff0d;color:#ffffffe6;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.wiki-table td{color:#fffc}.wiki-table tr:last-child td{border-bottom:none}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;white-space:nowrap}.status-badge.queued{background:#9e9e9e33;color:#bdbdbd}.status-badge.resolving{background:#ab47bc33;color:#ce93d8}.status-badge.downloading{background:#4fc3f733;color:#4fc3f7}.status-badge.importing{background:#ffc10733;color:#ffc107}.status-badge.ready{background:#4caf5033;color:#81c784}.status-badge.error{background:#f4433633;color:#ef5350}.wiki-faq{display:flex;flex-direction:column;gap:.5rem}.wiki-faq details{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.wiki-faq summary{padding:1rem 1.25rem;cursor:pointer;color:#ffffffe6;font-weight:500;display:flex;align-items:center;gap:.75rem;list-style:none;transition:background .2s ease}.wiki-faq summary::-webkit-details-marker{display:none}.wiki-faq summary:before{content:"+";width:24px;height:24px;background:#4fc3f733;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#4fc3f7;flex-shrink:0;transition:transform .2s ease}.wiki-faq details[open] summary:before{content:"−"}.wiki-faq summary:hover{background:#ffffff08}.wiki-faq details p{padding:0 1.25rem 1rem 3.5rem;margin:0;color:#ffffffb3;line-height:1.6}.wiki-footer{margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1);text-align:center}.btn-back-to-library{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#4fc3f733;color:#4fc3f7;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s ease}.btn-back-to-library:hover{background:#4fc3f74d;transform:translate(-4px)}@media (max-width: 768px){.wiki-content{padding:1.5rem;padding-bottom:120px}.wiki-header h1{font-size:2rem}.wiki-header p{font-size:1rem}.wiki-toc ul{grid-template-columns:1fr 1fr}.wiki-section h2{font-size:1.5rem}.wiki-flow{flex-direction:column;align-items:center;gap:1rem}.flow-step{max-width:200px}.flow-arrow{transform:rotate(90deg);margin:0}.wiki-table{font-size:.9rem}.wiki-table th,.wiki-table td{padding:.5rem .75rem}}@media (max-width: 480px){.wiki-content{padding:1rem;padding-bottom:100px}.wiki-header h1{font-size:1.75rem}.wiki-toc ul{grid-template-columns:1fr}.wiki-section h2{font-size:1.3rem}.wiki-section h3{font-size:1.1rem}.wiki-faq summary{padding:.875rem 1rem;font-size:.95rem}.wiki-faq details p{padding-left:3rem}}.florida-game-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000;z-index:9999;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.florida-game-canvas{display:block;width:100%;height:100%;touch-action:none}.florida-game-back{position:absolute;top:8px;left:8px;z-index:10000;background:#00000059;color:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background .15s}.florida-game-back:hover,.florida-game-back:active{background:#0009}.bh-standalone{--bh-primary: #004370;--bh-primary-light: #005a96;--bh-primary-container: #003052;--bh-on-primary: #ffffff;--bh-secondary: #006E20;--bh-secondary-container: #d4f5dc;--bh-secondary-fixed: #d4f5dc;--bh-surface: #FDF9F1;--bh-surface-container: #F5F0E8;--bh-surface-container-low: #F9F5ED;--bh-surface-container-high: #EDE8DE;--bh-surface-container-highest: #E5E0D6;--bh-surface-container-lowest: #ffffff;--bh-surface-bright: #FEFCF6;--bh-on-surface: #1C1C17;--bh-on-surface-variant: #324250;--bh-outline-variant: rgba(50, 66, 80, .15);--bh-error: #ba1a1a;--bh-error-container: #ffdad6;--bh-pending: #9eda6b;--bh-pending-bg: rgba(158, 218, 107, .15);--bh-booked: #004370;--bh-booked-bg: rgba(0, 67, 112, .08);--bh-unavailable: #b0aaa0;--bh-unavailable-bg: #E5E0D6;--bh-own: #006E20;--bh-own-bg: rgba(0, 110, 32, .08);--bh-shadow-cloud: 0 12px 40px rgba(28, 28, 23, .06);--bh-shadow-soft: 0 4px 16px rgba(28, 28, 23, .04);--bh-radius: 1rem;--bh-radius-sm: .5rem;--bh-radius-pill: 999px;--bh-font: "Plus Jakarta Sans", "Inter", -apple-system, sans-serif;--bh-transition: .2s ease;font-family:var(--bh-font);background:var(--bh-surface);color:var(--bh-on-surface);min-height:100vh;-webkit-font-smoothing:antialiased;position:fixed;top:0;left:0;right:0;bottom:0;overflow:hidden;display:flex;flex-direction:column;z-index:200}@media (prefers-color-scheme: dark){.bh-standalone{--bh-surface: #FDF9F1;--bh-surface-container: #F5F0E8;--bh-surface-container-low: #F9F5ED;--bh-surface-container-high: #EDE8DE;--bh-surface-container-highest: #E5E0D6;--bh-surface-container-lowest: #ffffff;--bh-surface-bright: #FEFCF6;--bh-on-surface: #1C1C17;--bh-on-surface-variant: #324250}}.bh-header{background:var(--bh-surface);padding:0 20px;flex-shrink:0}.bh-header-inner{display:flex;align-items:center;justify-content:space-between;max-width:600px;margin:0 auto;height:56px}.bh-header-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--bh-on-surface)}.bh-header-logo{width:36px;height:36px;border-radius:10px;background:var(--bh-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.bh-header-title{font-size:1.125rem;font-weight:800;letter-spacing:-.02em}.bh-header-actions{display:flex;align-items:center;gap:12px}.bh-header-link{width:36px;height:36px;border-radius:50%;background:var(--bh-surface-container-high);display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--bh-on-surface-variant);font-size:16px;transition:all var(--bh-transition)}.bh-header-link:hover{background:var(--bh-surface-container-highest)}.bh-header-avatar{width:36px;height:36px;border-radius:50%;background:var(--bh-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;text-decoration:none;transition:all var(--bh-transition)}.bh-header-avatar:hover{opacity:.85}.bh-layout{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-height:0}.bh-content{padding:24px 20px;max-width:600px;margin:0 auto;width:100%;flex:1;order:1}.bh-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--bh-on-surface-variant);font-family:var(--bh-font);font-size:1rem;background:var(--bh-surface)}.bh-nav{position:sticky;bottom:0;left:0;right:0;z-index:100;background:#fdf9f1cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--bh-outline-variant);order:2}.bh-nav-inner{display:flex;justify-content:space-around;align-items:center;max-width:600px;margin:0 auto;padding:6px 0 max(6px,env(safe-area-inset-bottom))}.bh-nav-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;text-decoration:none;color:var(--bh-on-surface-variant);font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:color var(--bh-transition);position:relative}.bh-nav-tab:hover,.bh-nav-tab.active{color:var(--bh-primary)}.bh-nav-tab.active:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:3px;background:var(--bh-primary);border-radius:0 0 3px 3px}.bh-nav-icon{font-size:20px;line-height:1}.bh-nav-label{line-height:1}.bh-page-title{font-size:2rem;font-weight:800;letter-spacing:-.02em;color:var(--bh-primary);margin-bottom:8px;line-height:1.15}.bh-page-subtitle{font-size:1rem;color:var(--bh-on-surface-variant);line-height:1.6;margin-bottom:24px}.bh-section-title{font-size:1.375rem;font-weight:700;color:var(--bh-on-surface);margin-bottom:16px;letter-spacing:-.01em}.bh-label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bh-on-surface-variant)}.bh-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;box-shadow:var(--bh-shadow-soft);transition:background var(--bh-transition)}.bh-card:hover{background:var(--bh-surface-bright)}.bh-card-elevated{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:20px;box-shadow:var(--bh-shadow-cloud)}.bh-alert{padding:14px 20px;border-radius:var(--bh-radius-sm);margin-bottom:16px;font-size:.875rem;font-weight:500;line-height:1.5}.bh-alert-error{background:var(--bh-error-container);color:var(--bh-error)}.bh-alert-success{background:var(--bh-secondary-container);color:var(--bh-secondary)}.bh-badge{display:inline-flex;align-items:center;padding:4px 14px;border-radius:var(--bh-radius-pill);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.bh-badge-pending{background:var(--bh-pending-bg);color:#4a7a22}.bh-badge-approved{background:var(--bh-secondary-container);color:var(--bh-secondary)}.bh-badge-denied{background:var(--bh-error-container);color:var(--bh-error)}.bh-badge-cancelled{background:var(--bh-surface-container-high);color:var(--bh-on-surface-variant)}.bh-badge-category{background:var(--bh-surface-container-high);color:var(--bh-primary)}.bh-badge-confirmed{background:#4ade80;color:#003d12}.bh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border:none;border-radius:var(--bh-radius-pill);font-family:var(--bh-font);font-size:.9375rem;font-weight:700;cursor:pointer;transition:all var(--bh-transition);text-decoration:none;line-height:1}.bh-btn:disabled{opacity:.5;cursor:not-allowed}.bh-btn-primary{background:linear-gradient(135deg,var(--bh-primary) 0%,var(--bh-primary-container) 100%);color:var(--bh-on-primary);box-shadow:0 4px 16px #00437040}.bh-btn-primary:hover:not(:disabled){box-shadow:0 6px 24px #00437059;transform:translateY(-1px)}.bh-btn-secondary{background:var(--bh-surface-container-highest);color:var(--bh-on-surface)}.bh-btn-secondary:hover:not(:disabled){background:var(--bh-surface-container-high)}.bh-btn-danger{background:var(--bh-error-container);color:var(--bh-error)}.bh-btn-danger:hover:not(:disabled){background:#ffcdc9}.bh-btn-success{background:var(--bh-secondary-container);color:var(--bh-secondary)}.bh-btn-success:hover:not(:disabled){background:#c4eccc}.bh-btn-sm{padding:8px 18px;font-size:.8125rem}.bh-btn-xs{padding:6px 14px;font-size:.75rem}.bh-btn-text{background:none;border:none;padding:8px 4px;color:var(--bh-primary);font-family:var(--bh-font);font-size:.875rem;font-weight:600;cursor:pointer}.bh-btn-text:hover{text-decoration:underline}.bh-input,.bh-textarea,.bh-select{width:100%;padding:14px 18px;background:var(--bh-surface-container-high);border:none;border-radius:var(--bh-radius-pill);color:var(--bh-on-surface);font-family:var(--bh-font);font-size:.9375rem;transition:all var(--bh-transition)}.bh-textarea{border-radius:var(--bh-radius);resize:vertical}.bh-input:focus,.bh-textarea:focus,.bh-select:focus{outline:none;background:var(--bh-surface-container-lowest);box-shadow:0 0 0 2px var(--bh-outline-variant)}.bh-input::placeholder,.bh-textarea::placeholder{color:var(--bh-on-surface-variant);opacity:.5}.bh-form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.bh-form-group label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bh-on-surface-variant)}.bh-form-row{display:flex;gap:12px;flex-wrap:wrap}.bh-form-row>*{flex:1;min-width:150px}.bh-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.bh-input-icon{position:relative}.bh-input-icon .bh-icon-prefix{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--bh-on-surface-variant);opacity:.6;font-size:18px}.bh-input-icon input{padding-left:44px}.bh-file-input{font-size:.875rem;color:var(--bh-on-surface-variant)}.bh-file-count{font-size:.8125rem;color:var(--bh-on-surface-variant);opacity:.6}.bh-checkbox-label{display:flex;align-items:center;gap:10px;font-size:.875rem;cursor:pointer}.bh-empty{padding:48px 24px;text-align:center;color:var(--bh-on-surface-variant);font-size:.9375rem;line-height:1.6}.bh-section{margin-top:36px}.bh-access-denied{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:32px 20px;font-family:var(--bh-font);background:var(--bh-surface);color:var(--bh-on-surface)}.bh-access-denied-card{text-align:center;max-width:360px}.bh-access-denied-icon{font-size:56px;margin-bottom:20px}.bh-access-denied h1{font-size:1.75rem;font-weight:800;color:var(--bh-primary);margin-bottom:12px}.bh-access-denied p{color:var(--bh-on-surface-variant);line-height:1.6;margin-bottom:28px}.bh-access-denied-actions{display:flex;gap:12px;justify-content:center}.bh-hero{background:linear-gradient(180deg,var(--bh-primary) 0%,var(--bh-primary-container) 100%);border-radius:var(--bh-radius);padding:48px 24px;margin-bottom:32px;text-align:center;position:relative;overflow:hidden}.bh-hero-overlay{position:relative;z-index:1}.bh-hero-label{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff9;margin-bottom:8px}.bh-hero-title{font-size:2.25rem;font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1.1;margin-bottom:12px}.bh-hero-subtitle{font-size:.9375rem;color:#ffffffbf;line-height:1.6;max-width:320px;margin:0 auto 24px}.bh-hero-welcome{font-size:.875rem;color:#fff9}.bh-hero-actions{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:24px}.bh-btn-hero{background:#fff;color:var(--bh-primary);padding:16px 32px;font-weight:700;border-radius:var(--bh-radius-pill);border:none;font-family:var(--bh-font);font-size:1rem;cursor:pointer;box-shadow:0 8px 24px #0000001f;display:inline-flex;align-items:center;gap:8px}.bh-home-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bh-home-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px 16px;text-align:center;text-decoration:none;color:var(--bh-on-surface);transition:all var(--bh-transition);box-shadow:var(--bh-shadow-soft)}.bh-home-card:hover{background:var(--bh-surface-bright);transform:translateY(-2px);box-shadow:var(--bh-shadow-cloud)}.bh-home-card-icon{font-size:28px;margin-bottom:10px}.bh-home-card h3{font-size:.9375rem;font-weight:700;margin-bottom:4px}.bh-home-card p{font-size:.75rem;color:var(--bh-on-surface-variant);line-height:1.4}.bh-quick-links{background:var(--bh-primary);border-radius:var(--bh-radius);padding:24px;box-shadow:var(--bh-shadow-cloud)}.bh-quick-links h3{color:#fff;font-size:1.125rem;font-weight:700;margin-bottom:16px}.bh-quick-links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bh-quick-link{background:#ffffff1f;border-radius:var(--bh-radius-sm);padding:16px 12px;text-align:center;color:#fff;text-decoration:none;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;transition:all var(--bh-transition)}.bh-quick-link:hover{background:#fff3}.bh-quick-link-icon{font-size:24px;display:block;margin-bottom:6px}.bh-calendar-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px 20px;box-shadow:var(--bh-shadow-soft);margin-bottom:24px}.bh-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.bh-cal-month{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:var(--bh-on-surface)}.bh-cal-nav-group{display:flex;gap:8px}.bh-cal-nav{background:var(--bh-surface-container-high);border:none;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer;color:var(--bh-on-surface);display:flex;align-items:center;justify-content:center;transition:all var(--bh-transition)}.bh-cal-nav:hover{background:var(--bh-surface-container-highest)}.bh-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:8px}.bh-cal-weekday{text-align:center;font-size:.6875rem;font-weight:700;color:var(--bh-on-surface-variant);text-transform:uppercase;letter-spacing:.06em;padding:8px 0}.bh-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.bh-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;position:relative;font-size:.9375rem;transition:all .15s;gap:1px}.bh-cal-day:hover:not(.bh-cal-blank):not(.bh-cal-past):not(.bh-cal-blackout){background:var(--bh-surface-container-high)}.bh-cal-blank{cursor:default}.bh-cal-past{color:var(--bh-unavailable);cursor:not-allowed}.bh-cal-blackout{background:var(--bh-unavailable-bg);color:var(--bh-unavailable);cursor:not-allowed}.bh-cal-booked{background:var(--bh-booked-bg)}.bh-cal-pending{background:var(--bh-pending-bg)}.bh-cal-own{background:var(--bh-own-bg)}.bh-cal-selected{background:var(--bh-surface-container-high)!important}.bh-cal-checkin,.bh-cal-checkout{background:var(--bh-primary)!important;color:#fff!important}.bh-cal-day-num{font-weight:500;line-height:1}.bh-cal-indicator{font-size:6px;line-height:1}.bh-cal-ind-blackout{color:var(--bh-unavailable)}.bh-cal-ind-booked{color:var(--bh-booked)}.bh-cal-ind-pending{color:var(--bh-pending)}.bh-cal-ind-own{color:var(--bh-own);font-size:8px}.bh-cal-legend{margin-top:20px;background:var(--bh-surface-container-low);border-radius:var(--bh-radius-sm);padding:16px 20px}.bh-cal-legend-title{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bh-on-surface-variant);margin-bottom:12px}.bh-cal-legend-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bh-cal-legend-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--bh-on-surface-variant)}.bh-legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.bh-legend-available{background:var(--bh-surface-container-high)}.bh-legend-booked{background:var(--bh-booked)}.bh-legend-pending{background:var(--bh-pending)}.bh-legend-blackout{background:var(--bh-unavailable)}.bh-legend-own{background:var(--bh-own)}.bh-cal-hint{text-align:center;margin-top:16px;font-size:.875rem;color:var(--bh-primary);font-weight:600}.bh-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#1c1c1766;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0}.bh-modal{background:var(--bh-surface);border-radius:var(--bh-radius) var(--bh-radius) 0 0;padding:32px 24px max(24px,env(safe-area-inset-bottom));width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 -8px 40px #1c1c171f;animation:bh-slide-up .3s ease}@keyframes bh-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bh-modal h3{font-size:1.5rem;font-weight:800;color:var(--bh-primary);margin-bottom:24px;letter-spacing:-.02em}.bh-confirm-dates{display:flex;align-items:stretch;gap:0;background:var(--bh-surface-container-low);border-radius:var(--bh-radius-sm);overflow:hidden;margin-bottom:8px}.bh-confirm-dates>div{flex:1;padding:12px 16px;text-align:center}.bh-confirm-dates label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bh-on-surface-variant);display:block;margin-bottom:4px}.bh-confirm-dates strong{font-size:1rem;color:var(--bh-on-surface)}.bh-confirm-arrow{display:flex;align-items:center;padding:0 4px;font-size:16px;color:var(--bh-on-surface-variant)}.bh-confirm-nights{text-align:center;font-size:.875rem;color:var(--bh-primary);font-weight:700;margin-bottom:20px}.bh-modal-actions{display:flex;flex-direction:column;gap:12px;margin-top:20px}.bh-modal-submit{width:100%;padding:18px;text-align:center}.bh-modal-submit-hint{text-align:center;font-size:.75rem;color:var(--bh-on-surface-variant);margin-top:12px;text-transform:uppercase;letter-spacing:.04em}.bh-reservation-list{display:flex;flex-direction:column;gap:16px}.bh-reservation-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:20px;box-shadow:var(--bh-shadow-soft)}.bh-reservation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.bh-reservation-header strong{font-size:.9375rem;display:block}.bh-reservation-nights{font-size:.75rem;color:var(--bh-on-surface-variant);margin-left:8px}.bh-reservation-detail{font-size:.8125rem;color:var(--bh-on-surface-variant);margin-bottom:6px;display:flex;align-items:center;gap:8px}.bh-reservation-detail-icon{width:32px;height:32px;border-radius:50%;background:var(--bh-surface-container-high);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.bh-admin-note{background:var(--bh-surface-container-low);padding:12px 16px;border-radius:var(--bh-radius-sm);margin-top:12px;font-size:.8125rem;color:var(--bh-on-surface-variant)}.bh-info-tabs{display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.bh-info-tabs::-webkit-scrollbar{display:none}.bh-info-tab{padding:10px 20px;border:none;background:var(--bh-surface-container-high);color:var(--bh-on-surface-variant);font-family:var(--bh-font);font-size:.8125rem;font-weight:600;cursor:pointer;border-radius:var(--bh-radius-pill);white-space:nowrap;transition:all var(--bh-transition)}.bh-info-tab:hover{background:var(--bh-surface-container-highest)}.bh-info-tab.active{background:var(--bh-primary);color:var(--bh-on-primary)}.bh-info-sections{display:flex;flex-direction:column;gap:16px}.bh-info-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;box-shadow:var(--bh-shadow-soft)}.bh-info-card h3{font-size:1.125rem;font-weight:700;margin-bottom:12px;color:var(--bh-on-surface)}.bh-info-content{font-size:.875rem;color:var(--bh-on-surface-variant);line-height:1.7}.bh-info-updated{font-size:.6875rem;color:var(--bh-on-surface-variant);opacity:.6;margin-top:16px;text-transform:uppercase;letter-spacing:.04em}.bh-rule-icon{width:44px;height:44px;border-radius:50%;background:var(--bh-surface-container-high);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}.bh-places-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.bh-places-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 0}.bh-places-filters::-webkit-scrollbar{display:none}.bh-filter-pill{padding:8px 18px;border:none;background:var(--bh-surface-container-highest);color:var(--bh-on-surface-variant);font-family:var(--bh-font);font-size:.8125rem;font-weight:600;cursor:pointer;border-radius:var(--bh-radius-pill);white-space:nowrap;transition:all var(--bh-transition)}.bh-filter-pill:hover{background:var(--bh-surface-container-high)}.bh-filter-pill.active{background:var(--bh-primary);color:#fff}.bh-add-place-form{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:20px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--bh-shadow-soft)}.bh-places-grid{display:flex;flex-direction:column;gap:16px}.bh-place-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);overflow:hidden;box-shadow:var(--bh-shadow-soft)}.bh-place-card-body{padding:16px 20px}.bh-place-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bh-place-header h4{font-size:1.125rem;font-weight:700}.bh-place-rating{font-size:.875rem;font-weight:700;color:var(--bh-secondary);display:flex;align-items:center;gap:4px}.bh-place-desc{font-size:.875rem;color:var(--bh-on-surface-variant);margin-bottom:12px;line-height:1.6}.bh-place-meta{font-size:.75rem;color:var(--bh-on-surface-variant);opacity:.7;margin-bottom:4px}.bh-place-link{font-size:.8125rem;color:var(--bh-primary);text-decoration:none;font-weight:600}.bh-place-link:hover{text-decoration:underline}.bh-place-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.bh-place-tag{padding:4px 12px;background:var(--bh-surface-container-high);border-radius:var(--bh-radius-pill);font-size:.6875rem;font-weight:600;color:var(--bh-on-surface-variant)}.bh-items-list{display:flex;flex-direction:column;gap:0}.bh-items-category{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bh-primary);margin-top:24px;margin-bottom:12px}.bh-item-card{display:flex;align-items:center;gap:14px;padding:12px 0}.bh-item-icon{font-size:18px;flex-shrink:0;opacity:.6}.bh-item-info{flex:1}.bh-item-info h4{font-size:.9375rem;font-weight:500;color:var(--bh-on-surface)}.bh-item-info p{font-size:.8125rem;color:var(--bh-on-surface-variant)}.bh-item-tag{font-size:.75rem;color:var(--bh-on-surface-variant);opacity:.6;margin-top:4px}.bh-reviews-actions{margin-bottom:20px}.bh-review-stats{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;margin-bottom:24px;box-shadow:var(--bh-shadow-soft)}.bh-review-stats-main{display:flex;align-items:center;gap:16px;margin-bottom:20px}.bh-review-avg{font-size:2.5rem;font-weight:800;color:var(--bh-on-surface)}.bh-review-count{font-size:.8125rem;color:var(--bh-on-surface-variant)}.bh-rating-bars{display:flex;flex-direction:column;gap:6px}.bh-rating-bar-row{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--bh-on-surface-variant)}.bh-rating-bar{flex:1;height:6px;background:var(--bh-surface-container-high);border-radius:3px;overflow:hidden}.bh-rating-bar-fill{height:100%;background:#f59e0b;border-radius:3px;transition:width .3s}.bh-rating-bar-count{width:20px;text-align:right}.bh-stars{display:flex;gap:2px}.bh-stars-lg .bh-star{font-size:24px}.bh-stars-md .bh-star{font-size:16px}.bh-stars-interactive .bh-star{cursor:pointer}.bh-star{color:var(--bh-surface-container-high);transition:color .15s}.bh-star-filled{color:#f59e0b}.bh-review-form{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;margin-bottom:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--bh-shadow-soft)}.bh-reviews-list{display:flex;flex-direction:column;gap:16px}.bh-review-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:20px;box-shadow:var(--bh-shadow-soft)}.bh-review-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:8px;margin-bottom:10px}.bh-review-title{font-size:1rem;font-weight:700;margin-top:4px}.bh-review-meta{display:flex;flex-direction:column;align-items:flex-end;font-size:.75rem;color:var(--bh-on-surface-variant);gap:2px}.bh-review-body{font-size:.875rem;color:var(--bh-on-surface-variant);line-height:1.7;margin-bottom:10px;font-style:italic}.bh-review-author{display:flex;align-items:center;gap:10px;margin-top:12px}.bh-review-avatar{width:32px;height:32px;border-radius:50%;background:var(--bh-surface-container-high);display:flex;align-items:center;justify-content:center;font-size:14px}.bh-review-author-info{font-size:.8125rem;font-weight:600;color:var(--bh-on-surface)}.bh-review-author-date{font-size:.6875rem;color:var(--bh-on-surface-variant);opacity:.7}.bh-review-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.bh-review-thumb{width:72px;height:72px;object-fit:cover;border-radius:var(--bh-radius-sm);cursor:pointer;transition:transform var(--bh-transition)}.bh-review-thumb:hover{transform:scale(1.05)}.bh-gallery-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.bh-gallery-count{font-size:.875rem;color:var(--bh-on-surface-variant)}.bh-upload-form{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;margin-bottom:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--bh-shadow-soft)}.bh-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.bh-gallery-item{position:relative;border-radius:var(--bh-radius-sm);overflow:hidden;aspect-ratio:1;cursor:pointer}.bh-gallery-img{width:100%;height:100%;object-fit:cover}.bh-gallery-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(transparent,#0009);opacity:0;transition:opacity var(--bh-transition)}.bh-gallery-item:hover .bh-gallery-overlay{opacity:1}.bh-gallery-caption{font-size:.8125rem;color:#fff;font-weight:600}.bh-gallery-meta{font-size:.6875rem;color:#ffffffb3}.bh-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#1c1c17eb;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px;cursor:pointer}.bh-lightbox img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:var(--bh-radius-sm)}.bh-lightbox-content{position:relative;text-align:center;cursor:default}.bh-lightbox-caption{color:#fff;margin-top:16px;font-size:.9375rem;font-weight:600}.bh-lightbox-meta{color:#fff9;font-size:.8125rem;margin-top:4px}.bh-lightbox-close{position:absolute;top:-44px;right:0;background:none;border:none;color:#fff;font-size:28px;cursor:pointer}.bh-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;font-size:.875rem;color:var(--bh-on-surface-variant)}.bh-admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:28px}.bh-stat-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:20px 16px;text-align:center;box-shadow:var(--bh-shadow-soft)}.bh-stat-value{display:block;font-size:1.75rem;font-weight:800;color:var(--bh-primary)}.bh-stat-label{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bh-on-surface-variant);margin-top:2px}.bh-admin-section{margin-top:20px}.bh-admin-toolbar{display:flex;gap:12px;margin-bottom:16px}.bh-admin-toolbar .bh-select{max-width:200px}.bh-admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);box-shadow:var(--bh-shadow-soft)}.bh-admin-table{width:100%;border-collapse:collapse;font-size:.8125rem;min-width:600px}.bh-admin-table th{text-align:left;padding:14px 16px;background:var(--bh-surface-container-low);font-weight:700;color:var(--bh-on-surface-variant);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em}.bh-admin-table td{padding:14px 16px}.bh-admin-table tr+tr td{border-top:none;padding-top:8px}.bh-admin-table tbody tr:nth-child(2n){background:var(--bh-surface-container-low)}.bh-admin-table small{display:block;color:var(--bh-on-surface-variant);opacity:.6;font-size:.6875rem}.bh-admin-actions{display:flex;gap:6px;flex-wrap:wrap}.bh-blackout-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.bh-blackout-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--bh-shadow-soft)}.bh-blackout-card p{font-size:.8125rem;color:var(--bh-on-surface-variant);margin-top:4px}.bh-blackout-card small{font-size:.75rem;color:var(--bh-on-surface-variant);opacity:.6}.bh-info-admin-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.bh-info-admin-card{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--bh-shadow-soft)}.bh-info-admin-card>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bh-data-section{background:var(--bh-surface-container-lowest);border-radius:var(--bh-radius);padding:24px;margin-bottom:16px;box-shadow:var(--bh-shadow-soft)}.bh-data-section h3{font-size:1.125rem;font-weight:700;margin-bottom:8px}.bh-data-section p{font-size:.875rem;color:var(--bh-on-surface-variant);margin-bottom:16px;line-height:1.6}.bh-file-label{cursor:pointer}@media (min-width: 768px){.bh-content{padding:32px;max-width:720px}.bh-hero{padding:64px 48px}.bh-hero-title{font-size:3rem}.bh-home-grid{grid-template-columns:repeat(4,1fr);gap:16px}.bh-gallery-grid{grid-template-columns:repeat(3,1fr);gap:12px}.bh-admin-stats{grid-template-columns:repeat(5,1fr)}.bh-modal{border-radius:var(--bh-radius);max-width:520px}.bh-modal-overlay{align-items:center;padding:24px}.bh-nav{position:static;border-top:none;border-bottom:1px solid var(--bh-outline-variant);order:0}.bh-nav-inner{justify-content:flex-start;gap:4px;padding:0 32px}.bh-nav-tab{flex-direction:row;padding:16px 18px;font-size:.8125rem;border-bottom:2px solid transparent;gap:6px}.bh-nav-tab.active:after{display:none}.bh-nav-tab.active{border-bottom-color:var(--bh-primary)}.bh-content{order:0}}@media (min-width: 1024px){.bh-content{max-width:900px}.bh-gallery-grid{grid-template-columns:repeat(4,1fr)}.bh-places-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}}.not-found-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 200px);text-align:center;padding:48px 16px}.not-found-title{font-size:clamp(80px,20vw,180px);font-weight:900;line-height:1;color:var(--color-text);margin-bottom:16px}.not-found-text{font-size:20px;color:var(--color-text-secondary);margin-bottom:32px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #0ea5e9;--color-primary-dark: #0284c7;--color-primary-light: #38bdf8;--color-accent: #06b6d4;--color-accent-dark: #0891b2;--color-frost: #e0f2fe;--color-ice: #f0f9ff;--color-dark: #0c4a6e;--color-darker: #082f49;--color-midnight: #0f172a;--color-white: #ffffff;--color-gray-100: #f1f5f9;--color-gray-200: #e2e8f0;--color-gray-400: #94a3b8;--color-gray-600: #475569;--color-gray-800: #1e293b;--color-bg: var(--color-ice);--color-bg-secondary: var(--color-gray-100);--color-surface: var(--color-white);--color-surface-elevated: var(--color-white);--color-text: var(--color-dark);--color-text-secondary: var(--color-gray-600);--color-text-muted: var(--color-gray-400);--color-border: var(--color-gray-200);--color-teal: #14b8a6;--color-teal-dark: #0d9488;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--gap: 12px;--radius: 0;--radius-sm: 0;--page-padding: 16px;--footer-height: 72px;--header-height: 56px}@media (prefers-color-scheme: dark){:root{--color-frost: #1e3a5f;--color-ice: #0c1929;--color-bg: #0a1628;--color-bg-secondary: #0f1f32;--color-surface: #152238;--color-surface-elevated: #1a2942;--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #1e3a5f;--color-gray-100: #1e293b;--color-gray-200: #334155}}@media (min-width: 768px){:root{--gap: 16px;--page-padding: 32px;--header-height: 64px}}html{font-size:16px}body{font-family:var(--font-family);background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);background-attachment:fixed;color:var(--color-text);line-height:1.5;min-height:100vh}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;padding-bottom:var(--footer-height)}.main{flex:1;padding:24px var(--page-padding);max-width:1200px;margin:0 auto;width:100%}@media (min-width: 768px){.main{padding:48px var(--page-padding)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;min-height:44px;font-size:13px;font-weight:600;letter-spacing:.3px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;font-family:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover{background:var(--color-bg-secondary)}.btn-primary{background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-dark)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px}@media (max-width: 480px){.toast-container{left:16px;right:16px;bottom:16px;max-width:none}}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 32px #0000004d;cursor:pointer;animation:toast-slide-in .3s ease-out}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:700}.toast-success .toast-icon{background:#22c55e33;color:#22c55e}.toast-error .toast-icon{background:#ef444433;color:#ef4444}.toast-warning .toast-icon{background:#f59e0b33;color:#f59e0b}.toast-info .toast-icon{background:#0ea5e933;color:#0ea5e9}.toast-message{flex:1;font-size:14px;color:var(--color-text)}.toast-close{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1;opacity:.6;transition:opacity .2s}.toast-close:hover{opacity:1}
