.footer{border-top:1px solid var(--border-subtle);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);margin-top:auto;transition:background-color .3s}.footer-inner{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:1100px;margin:0 auto;padding:1.1rem 1.25rem;display:flex}.footer-copy{color:var(--muted);font-size:.9rem}.footer-links{align-items:center;gap:.75rem;display:flex}.social{width:38px;height:38px;color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-accent);border-radius:12px;place-items:center;transition:transform .18s,background .18s,border-color .18s;display:grid}.social:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.social:active{transform:translateY(0)scale(.98)}@media (max-width:520px){.footer-inner{text-align:center;flex-direction:column;align-items:center;padding:1rem}.social{width:34px;height:34px}}@media (max-width:380px){.footer-copy{font-size:.8rem}}.layout{width:100%;min-height:100dvh;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border-subtle);z-index:100;flex-direction:column;width:240px;min-width:240px;height:100dvh;padding:1.5rem 1rem;transition:width .3s cubic-bezier(.16,1,.3,1),min-width .3s cubic-bezier(.16,1,.3,1),padding .3s,background-color .3s;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-top{margin-bottom:1.5rem;padding:0 .5rem}.logo-wrapper{align-items:center;gap:.75rem;display:flex}.logo-icon{background:linear-gradient(135deg,var(--primary),var(--success));color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:1.1rem;font-weight:800;display:grid}.logo{color:var(--text);white-space:nowrap;margin:0;font-size:1.15rem;font-weight:700}.logo span{color:var(--primary)}.sidebar-section-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);opacity:.6;min-height:16px;margin-bottom:.5rem;padding:0 .75rem;font-size:.68rem;font-weight:600}.sidebar nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.sidebar nav a{color:var(--muted);border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .75rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex;position:relative}.sidebar nav a:hover{background:var(--sidebar-hover);color:var(--text)}.sidebar nav a .nav-ico{flex-shrink:0;place-items:center;width:20px;height:20px;transition:color .2s;display:grid}.sidebar nav a .nav-ico svg{transition:stroke .2s}.sidebar nav a.active{background:var(--sidebar-active-bg);color:var(--primary)}.sidebar nav a.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;height:24px;position:absolute;top:50%;left:-1rem;transform:translateY(-50%)}.sidebar nav a.active .nav-ico svg{stroke:var(--primary)}.sidebar a.active:after{display:none}.sidebar-bottom{border-top:1px solid var(--border-subtle);margin-top:auto;padding-top:1rem}.sidebar-status{color:var(--success);background:#34d39914;border:1px solid #34d39926;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .75rem;font-size:.78rem;font-weight:500;display:flex}.status-indicator{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse-status}@keyframes pulse-status{0%,to{box-shadow:0 0 #34d3994d}50%{box-shadow:0 0 0 5px #34d39900}}.sidebar.collapsed{width:72px;min-width:72px;padding:1.5rem .6rem}.sidebar.collapsed .logo,.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .sidebar-section-label{opacity:0}.sidebar.collapsed nav a{justify-content:center;padding:.75rem}.sidebar.collapsed nav a.active:before{left:-.6rem}.sidebar.collapsed~.content{margin-left:72px}.sidebar.collapsed .sidebar-status .nav-label{display:none}.sidebar.collapsed .sidebar-status{justify-content:center;padding:.6rem}.content{background:var(--bg);flex-direction:column;flex:1;min-height:100dvh;margin-left:240px;padding:1.25rem 3rem .5rem 2.5rem;transition:background-color .3s,margin-left .3s cubic-bezier(.16,1,.3,1);display:flex;overflow-y:auto}.content::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}.content::-webkit-scrollbar-thumb:hover{background:var(--muted)}.content h1{margin-bottom:1rem;font-size:2.2rem}.content p{color:var(--muted);max-width:650px;line-height:1.6}.menu-btn{z-index:1001;background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:12px;place-items:center;width:42px;height:42px;font-size:1.2rem;display:none;position:fixed;top:1rem;left:1rem}.topbar{z-index:10;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:1rem;margin:0 -3rem 1.25rem -2.5rem;padding:.75rem 1.25rem;transition:background-color .3s;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:.85rem;display:flex}.topbar-title{color:var(--muted);letter-spacing:.2px;font-size:.9rem;font-weight:500}.topbar-right{align-items:center;gap:.5rem;display:flex}.collapse-btn{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;place-items:center;transition:all .18s;display:grid}.collapse-btn:hover{background:var(--sidebar-hover);color:var(--text);border-color:var(--border-accent)}.collapse-btn:active{transform:scale(.95)}.collapse-ico{transition:transform .22s;display:inline-flex}.collapse-ico.is-collapsed{transform:rotate(180deg)}.clock{background:var(--sidebar-hover);border:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .7rem;display:flex}.clock-text{letter-spacing:.3px;font-size:.85rem;font-weight:600}.topbar-control{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;place-items:center;font-size:1rem;transition:all .18s;display:grid}.topbar-control:hover{background:var(--sidebar-hover);color:var(--text);border-color:var(--primary-border)}.topbar-control:active{transform:scale(.95)}.lang-toggle{letter-spacing:.5px;font-size:.75rem;font-weight:700}.page{flex:1;padding-bottom:1.25rem}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:900;background:#00000080;transition:opacity .25s;position:fixed;inset:0}.sidebar-backdrop.show{opacity:1;pointer-events:auto}@media (max-width:768px){.layout{height:auto;overflow:visible}.menu-btn{display:grid}.sidebar{z-index:1000;width:280px;min-width:280px;height:100%;transition:transform .3s cubic-bezier(.16,1,.3,1);position:fixed;inset:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.content{height:auto;margin-left:0;padding:4.25rem 1.25rem .5rem;overflow:visible}.topbar{margin:0 -1.25rem 1rem}.collapse-btn{display:none}.sidebar nav a.active:before{left:-1rem}}@media (max-width:1023px) and (min-width:769px){.sidebar{width:200px;min-width:200px;padding:1.5rem .85rem}.content{margin-left:200px;padding:2.5rem 2rem}.sidebar.collapsed~.content{margin-left:72px}.sidebar nav a{font-size:.88rem}}@supports (padding:max(0px)){.menu-btn{padding-top:max(.6rem,env(safe-area-inset-top))}}:root,[data-theme=dark]{--bg:#111113;--bg-card:#18181bf2;--bg-card-solid:#18181b;--bg-elevated:#18181bb3;--bg-overlay:#111113e6;--border:#27272a;--border-subtle:#ffffff0f;--border-accent:#a1a1aa26;--text:#f4f4f5;--text-secondary:#f4f4f5cc;--muted:#a1a1aa;--primary:#60a5fa;--primary-glow:#60a5fa1f;--primary-bg:#60a5fa1a;--primary-border:#60a5fa33;--success:#34d399;--accent:#fbbf24;--card-shadow:0 2px 12px #00000040;--card-shadow-hover:0 8px 30px #00000059;--glass-bg:#111113b3;--glass-blur:blur(12px);--skeleton-base:#ffffff0d;--skeleton-shine:#ffffff14;--sidebar-bg:#0e0e10;--sidebar-hover:#ffffff0d;--sidebar-active-bg:#60a5fa1a;--sidebar-active-border:#60a5fa66}[data-theme=light]{--bg:#fafafa;--bg-card:#ffffffe6;--bg-card-solid:#fff;--bg-elevated:#fffc;--bg-overlay:#fafafaeb;--border:#e4e4e7;--border-subtle:#0000000d;--border-accent:#71717a26;--text:#18181b;--text-secondary:#18181bbf;--muted:#71717a;--primary:#2563eb;--primary-glow:#2563eb14;--primary-bg:#2563eb0f;--primary-border:#2563eb26;--success:#059669;--accent:#d97706;--card-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;--card-shadow-hover:0 4px 16px #00000014;--glass-bg:#ffffffb3;--glass-blur:blur(12px);--skeleton-base:#0000000a;--skeleton-shine:#00000012;--sidebar-bg:#fff;--sidebar-hover:#00000008;--sidebar-active-bg:#2563eb0f;--sidebar-active-border:#2563eb66}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;transition:background-color .3s,color .3s}a{color:var(--primary);text-decoration:none}main{padding:0}html{scroll-behavior:smooth}body{-webkit-text-size-adjust:100%;line-height:1.5}img{max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}#root{overflow-x:hidden}a,button,input,textarea{transition:background-color .18s,border-color .18s,color .18s,transform .18s,filter .18s,box-shadow .18s}a:hover{filter:brightness(1.06)}button:hover{filter:brightness(1.05)}button:active{transform:translateY(0)scale(.98)}@keyframes skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}.skeleton{background:var(--skeleton-base);border-radius:8px;animation:1.5s ease-in-out infinite skeleton-pulse}.scroll-top-btn{border:1px solid var(--border-accent);background:var(--glass-bg);width:44px;height:44px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--primary);cursor:pointer;z-index:50;box-shadow:var(--card-shadow);border-radius:50%;place-items:center;font-size:1.2rem;display:grid;position:fixed;bottom:2rem;right:2rem}.scroll-top-btn:hover{background:var(--primary-bg);border-color:var(--primary);transform:translateY(-2px)}@media (max-width:640px){.scroll-top-btn{width:40px;height:40px;bottom:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
