:root{--dt-page-bg: #1a1a2e;--dt-card-bg: rgba(20, 20, 40, .6);--dt-card-border: rgba(255, 255, 255, .1);--dt-card-blur: blur(8px);--dt-card-radius: 18px;--dt-card-shadow: 0 4px 16px rgba(0, 0, 0, .3);--dt-text-primary: #fff;--dt-text-secondary: rgba(255, 255, 255, .75);--dt-text-muted: rgba(255, 255, 255, .5);--dt-input-bg: rgba(255, 255, 255, .08);--dt-input-border: rgba(255, 255, 255, .2);--dt-input-text: #fff;--dt-input-placeholder: rgba(255, 255, 255, .4);--dt-btn-bg: rgba(20, 20, 40, .6);--dt-btn-border: rgba(255, 255, 255, .3);--dt-btn-text: #fff;--dt-btn-hover-bg: rgba(255, 255, 255, .15);--dt-btn-active-bg: #8b3dff;--dt-btn-active-text: #fff;--dt-tag-bg: rgba(255, 255, 255, .08);--dt-tag-border: rgba(255, 255, 255, .15);--dt-tag-text: rgba(255, 255, 255, .8);--dt-divider: rgba(255, 255, 255, .1);--dt-accent: #8b3dff;--dt-accent-glow: rgba(139, 61, 255, .3);--dt-error-bg: rgba(231, 76, 60, .15);--dt-error-text: #ff6b6b;--dt-success-bg: rgba(46, 204, 113, .15);--dt-success-text: #6bff9e;--dt-warning-bg: rgba(243, 156, 18, .15);--dt-warning-text: #ffd700}.dark-page{min-height:100vh;background:var(--dt-page-bg);position:relative;overflow:hidden}.dark-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/img/pokemon-camp.jpg) center center / cover no-repeat;opacity:.4;pointer-events:none}.dark-card{background:var(--dt-card-bg);border:1px solid var(--dt-card-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:var(--dt-card-radius);box-shadow:var(--dt-card-shadow)}.dark-title{color:var(--dt-text-primary)}.dark-desc{color:var(--dt-text-secondary)}.dark-muted{color:var(--dt-text-muted)}.dark-input{background:#141428cc;color:var(--dt-input-text);border:1px solid var(--dt-input-border);border-radius:10px;padding:12px;font-size:17px;transition:border-color .2s,background .2s;box-sizing:border-box;width:100%}.dark-input::placeholder{color:var(--dt-input-placeholder)}.dark-input:focus{outline:none;border-color:var(--dt-accent);background:#ffffff1f}.dark-btn{background:var(--dt-btn-bg);color:var(--dt-btn-text);border:1px solid var(--dt-btn-border);border-radius:14px;padding:12px;font-size:16px;font-weight:600;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .15s,transform .1s}.dark-btn:hover{background:var(--dt-btn-hover-bg)}.dark-btn:active{transform:scale(.97)}.dark-btn:disabled{opacity:.5;cursor:not-allowed}.dark-btn--accent{background:#8b3dff99;border-color:#fff3}.dark-btn--accent:hover{background:#8b3dffcc}.dark-table{width:100%;border-collapse:collapse;color:var(--dt-text-primary)}.dark-table th,.dark-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--dt-divider)}.dark-table th{color:var(--dt-text-muted);font-weight:600;font-size:12px;text-transform:uppercase}.dark-table tbody tr{background:#ffffff0a}.dark-table tbody tr:hover{background:#ffffff14}@keyframes dt-spin{to{transform:rotate(360deg)}}.dt-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--dt-accent);border-radius:50%;animation:dt-spin .8s linear infinite;margin:0 auto 12px}.dt-error-msg{background:var(--dt-error-bg);color:var(--dt-error-text);padding:12px 16px;border-radius:14px;font-size:14px;text-align:center;margin-bottom:12px;border:1px solid rgba(231,76,60,.2)}.dt-empty{text-align:center;padding:40px 0;color:var(--dt-text-muted)}.dt-empty-icon{font-size:48px;margin-bottom:8px}.dt-page-header{text-align:center;padding:24px 0 20px}.dt-page-header h1{font-size:22px;font-weight:700;margin:0 0 6px;color:var(--dt-text-primary);display:flex;align-items:center;justify-content:center;gap:8px}.dt-page-header p{font-size:13px;color:var(--dt-text-secondary);margin:0}.dt-footer{text-align:center;padding:20px 0 8px;font-size:11px;color:#ffffff4d}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans SC,sans-serif;color:#1a1a2e;line-height:1.5}a{color:#8b3dff;text-decoration:none}a:hover{text-decoration:none}img{max-width:100%;display:block}.app-page{min-height:100vh}.app-nav{position:fixed;bottom:0;left:0;right:0;background:#141428d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -2px 12px #0000004d;display:flex;justify-content:space-around;align-items:center;padding:6px 0 env(safe-area-inset-bottom,8px);z-index:100;border-top:1px solid rgba(255,255,255,.08)}.app-nav__item{text-decoration:none;color:#ffffff80;font-size:11px;font-weight:500;padding:4px 6px;border-radius:14px;transition:color .2s,background .2s;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:52px}.app-nav__item--active,.app-nav__item:hover{color:#8b3dff;background:#8b3dff26}.app-nav__icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.app-nav__icon--emoji{font-size:20px;line-height:1}.app-nav__icon--img{width:22px;height:22px;object-fit:contain}.app-nav__label{white-space:nowrap;line-height:1.2}@media (min-width: 768px){.app-page--has-nav{padding-top:60px}.app-nav{position:fixed;top:0;bottom:auto;left:0;right:0;justify-content:center;gap:8px;padding:10px 24px;box-shadow:0 2px 12px #0000004d;border-bottom:1px solid rgba(255,255,255,.06)}.app-nav__item{flex-direction:row;gap:6px;padding:8px 18px;font-size:14px;font-weight:600;border-radius:10px;min-width:auto}.app-nav__item--active,.app-nav__item:hover{background:#8b3dff26}.app-nav__icon{width:20px;height:20px}.app-nav__icon--emoji{font-size:18px}.app-nav__icon--img{width:20px;height:20px}}
