:root{--bg: #FAFAF8;--bg-card: #FFFFFF;--bg-sheet: #FFFFFF;--bg-input: #F3F2F0;--border: #E5E5E3;--border-dark: #D4D4D2;--text: #1A1A1A;--text-2: #525252;--text-3: #8A8A8A;--white: #FFFFFF;--accent: #374151;--accent-light: #6B7280;--success: #059669;--success-bg: #ECFDF5;--error: #DC2626;--error-bg: #FEF2F2;--warning: #D97706;--warning-bg: #FFFBEB;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 2px 8px rgba(0,0,0,.06);--shadow-lg: 0 4px 16px rgba(0,0,0,.08);--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 20px;--r-btn: 12px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ease: .15s ease;--ease-out: .2s cubic-bezier(.25, .8, .25, 1);--ease-bounce: .2s cubic-bezier(.34, 1.56, .64, 1);--hover-lift: translateY(-2px);--active-press: scale(.97);--shadow-hover: 0 4px 12px rgba(0,0,0,.1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);height:100%;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#dashboard{display:flex;flex-direction:column;height:100dvh;max-width:480px;margin:0 auto;overflow:hidden}.dash-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 12px) 16px 10px;background:var(--bg);z-index:20;transition:background .3s ease}.dash-header-left{display:flex;align-items:center;gap:12px;min-width:0}.dash-header-icon{flex-shrink:0;transition:transform .3s ease,opacity .3s ease}.dash-header-text{min-width:0;transition:opacity .25s ease}.dash-title{font-size:1.05rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-subtitle{font-size:.78rem;color:var(--text-3);margin-top:1px}.dash-x{width:32px;height:32px;border-radius:50%;background:var(--bg-input);border:none;display:flex;align-items:center;justify-content:center;color:var(--text-2);cursor:pointer;flex-shrink:0;opacity:0;transform:scale(.6);pointer-events:none;transition:opacity .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1),background .15s ease;-webkit-tap-highlight-color:transparent}.dash-x.visible{opacity:1;transform:scale(1);pointer-events:all}.dash-x svg{width:18px;height:18px}.dash-x:hover{background:var(--border)}.dash-x:active{transform:scale(1) var(--active-press)}.dash-x.visible:active{transform:var(--active-press)}.dash-header.module-active .dash-header-icon{animation:iconPopIn .35s cubic-bezier(.34,1.56,.64,1) both}.dash-content{flex:1 1 auto;position:relative;overflow:hidden;min-height:0}.dash-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:8px 16px 16px;align-content:start;transition:opacity .35s ease,transform .35s cubic-bezier(.32,.72,0,1);overflow-y:auto}.dash-grid.hidden{opacity:0;transform:scale(.95);pointer-events:none}.dash-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px 12px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;color:inherit;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,opacity .3s ease;-webkit-tap-highlight-color:transparent;animation:cardIn .35s ease both}.dash-card:nth-child(1){animation-delay:.04s}.dash-card:nth-child(2){animation-delay:.1s}.dash-card:nth-child(3){animation-delay:.16s}.dash-card:nth-child(4){animation-delay:.22s}.dash-card:nth-child(5){animation-delay:.28s}.dash-card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-hover);border-color:var(--border-dark)}.dash-card:active{transform:var(--active-press)}.dash-card-icon-wrap{transition:transform .15s ease}.dash-card-title{font-size:.82rem;font-weight:600;text-align:center;color:var(--text-2)}.module-iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .3s ease}.module-iframe.visible{opacity:1;pointer-events:all}.bottom-nav{flex:0 0 auto;display:flex;justify-content:space-around;align-items:center;padding:8px 0 calc(env(safe-area-inset-bottom,0px) + 8px);background:var(--bg-card);border-top:1px solid var(--border);box-shadow:0 -1px 8px #0000000a;z-index:90}.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 8px;background:none;border:none;color:var(--text-3);font-family:var(--font);font-size:.65rem;font-weight:500;cursor:pointer;transition:opacity .3s ease,transform .25s cubic-bezier(.34,1.56,.64,1),color .15s ease;-webkit-tap-highlight-color:transparent}.nav-item:active{transform:var(--active-press)}.nav-item.nav-hidden{opacity:0;transform:scale(.5);pointer-events:none;flex:0 0 0;width:0;padding:0;overflow:hidden}.nav-item .p-icon-wrap svg{display:block}.nav-item span{transition:opacity .3s ease}.nav-item.nav-hidden span{opacity:0}.bottom-nav.has-active .nav-item:not(.nav-hidden){animation:navItemIn .4s cubic-bezier(.34,1.56,.64,1) both}.bottom-nav.has-active .nav-item:not(.nav-hidden):nth-child(1){animation-delay:.05s}.bottom-nav.has-active .nav-item:not(.nav-hidden):nth-child(2){animation-delay:.1s}.bottom-nav.has-active .nav-item:not(.nav-hidden):nth-child(3){animation-delay:.15s}.bottom-nav.has-active .nav-item:not(.nav-hidden):nth-child(4){animation-delay:.2s}.bottom-nav.has-active .nav-item:not(.nav-hidden):nth-child(5){animation-delay:.25s}.p-icon-wrap{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s ease}.p-icon-wrap svg{width:24px;height:24px}.nav-item .p-icon-wrap svg{width:16px;height:16px}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes iconPopIn{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes navItemIn{0%{opacity:0;transform:translateY(8px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
