:root{--modal-speed: .38s}.loading-spinner{width:32px;height:32px;margin:0 auto 12px;border:4px solid #ddd;border-top-color:#333;border-radius:50%;animation:reader-spin .8s linear infinite}@keyframes reader-spin{to{transform:rotate(360deg)}}.reader-overlay{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .2s ease-out forwards}.reader-message{min-width:280px;max-width:90%;width:360px;padding:28px 24px 20px;border-radius:16px;background:#fff;text-align:center;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;border:1px solid rgba(226,232,240,.8);animation:scaleUp .25s cubic-bezier(.16,1,.3,1) forwards}#message-text{font-size:16px;line-height:1.5;color:#1e293b;margin-bottom:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#message-close{display:inline-block;width:100%;padding:10px 20px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .1s ease}#message-close:hover{background:#2563eb}#message-close:active{transform:scale(.98)}#message-close:empty:before{content:"OK"}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 15px;box-sizing:border-box}.responsive-grid{display:grid;gap:1em 2em;margin-bottom:20px;grid-template-columns:repeat(2,1fr)}.tab-container{width:100%;max-width:100vw;display:flex;gap:6px;border-bottom:2px solid #222;margin-bottom:.8em;margin-left:auto;margin-right:auto;overflow-x:auto;white-space:nowrap}.tab-item{background:transparent;border:none;outline:none;padding:6px 20px;font-size:clamp(.85rem,.5vw + .25rem,1.25rem);font-weight:500;color:#555;cursor:pointer;border-radius:6px 6px 0 0;transition:background-color .15s,color .15s;flex-shrink:0}.tab-item:hover{background-color:#f0f0f0;color:#000}.tab-item.active,.tab-item[aria-selected=true]{background-color:#222;color:#fff;font-weight:600}body.modal-open{overflow:hidden}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--modal-speed) ease-out,visibility var(--modal-speed) ease-out}.modal-overlay[aria-hidden=false]{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 0s ease,visibility 0s ease}.modal-dialog{background-color:#fff;width:92vw;max-width:98vw;max-height:92vh;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;overflow:hidden;transform:scale(.95);transition:transform .25s ease}.modal-overlay[aria-hidden=false] .modal-dialog{transform:scale(1)}.modal-header{display:flex;justify-content:flex-end;padding:0rem 1rem;border-bottom:1px solid #f1f5f9;background-color:#fff}.modal-close-btn{background:transparent;border:none;font-size:clamp(1.6rem,1.5vw + .9rem,4.2rem);line-height:1;color:#64748b;cursor:pointer;padding:0rem .5rem;border-radius:4px;transition:color .15s ease,background-color .15s ease}.modal-close-btn:hover{color:#0f172a;background-color:#f1f5f9}.modal-body{padding:1.25rem;overflow-y:auto;overscroll-behavior:contain;flex:1}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.modal-grid{display:grid;gap:1em 3em;grid-template-columns:repeat(2,1fr)}@media(min-width:768px){.responsive-grid,.modal-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.responsive-grid,.modal-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:2560px){.container{width:100%;max-width:1800px;margin:0 auto;padding:0 15px;box-sizing:border-box}.responsive-grid{grid-template-columns:repeat(6,1fr)}.modal-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,256px),384px))}.modal-dialog{width:85vw;max-width:90vw}}@media(min-width:3840px){.container{width:100%;max-width:2400px;margin:0 auto;padding:0 15px;box-sizing:border-box}.responsive-grid{grid-template-columns:repeat(8,1fr)}.modal-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,384px),512px))}.modal-dialog{width:87.5vw;max-width:92vw}}
