:root,[data-theme=light]{--folio-radius: 6px;--folio-error-bg: rgba(255, 76, 81, .08);--folio-shadow: 0 1px 3px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04);--folio-shadow-pop: 0 12px 40px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.06);--folio-primary: #753BE4;--folio-primary-hover-bg: #E8E6FC;--folio-primary-hover-fg: #7367F0;--folio-focus-ring: 0 0 0 2px rgba(117, 59, 228, .35);--folio-secondary: #808390;--folio-secondary-hover-bg: #EAEBED;--folio-secondary-hover-fg: #808390;--folio-text: #18181b;--folio-text-muted: #52525b;--folio-border: #e4e4e7;--folio-bg: #ffffff;--folio-bg-subtle: #f4f4f5;--folio-bg-page: #fafafa;--folio-error: #FF4C51;--folio-error-hover-bg: #FFE2E3;--folio-success: #34d399;--folio-font-xs: .75rem;--folio-font-sm: .8125rem;--folio-font-md: .875rem;--folio-font-base: 1rem;--folio-font-lg: 1.125rem;--folio-sidebar-bg: #f4f4f5;--folio-sidebar-text: #18181b;--folio-sidebar-text-muted: #71717a;--folio-sidebar-border: #e4e4e7;--folio-sidebar-active-bg: rgba(117, 59, 228, .12);--folio-overlay-bg: rgba(0, 0, 0, .6);--book-form-panel-width: 440px}[data-theme=dark]{--folio-radius: 6px;--folio-shadow: 0 1px 2px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.03);--folio-shadow-pop: 0 12px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.04);--folio-primary: #753BE4;--folio-primary-hover-bg: #E8E6FC;--folio-primary-hover-fg: #7367F0;--folio-focus-ring: 0 0 0 2px rgba(117, 59, 228, .35);--folio-secondary: #808390;--folio-secondary-hover-bg: #EAEBED;--folio-secondary-hover-fg: #808390;--folio-text: #f0f0f2;--folio-text-muted: #9ca3af;--folio-border: #27272a;--folio-bg: #141418;--folio-bg-subtle: #1a1a1f;--folio-bg-page: #0c0c0f;--folio-error: #FF4C51;--folio-error-hover-bg: #FFE2E3;--folio-error-bg: rgba(255, 76, 81, .1);--folio-success: #34d399;--folio-font-xs: .75rem;--folio-font-sm: .8125rem;--folio-font-md: .875rem;--folio-font-base: 1rem;--folio-font-lg: 1.125rem;--folio-sidebar-bg: #08080a;--folio-sidebar-text: #e4e4e7;--folio-sidebar-text-muted: #71717a;--folio-sidebar-border: #1f1f23;--folio-sidebar-active-bg: rgba(117, 59, 228, .12);--folio-overlay-bg: rgba(0, 0, 0, .6);--book-form-panel-width: 440px}*{box-sizing:border-box}html{font-size:90%}body{margin:0;font-family:DM Sans,system-ui,-apple-system,sans-serif;background:var(--folio-bg-page);color:var(--folio-text);-webkit-font-smoothing:antialiased}a{color:var(--folio-primary);text-decoration:none}a:hover{color:var(--folio-primary-hover-fg);text-decoration:underline}a:focus-visible{outline:none;box-shadow:var(--folio-focus-ring);border-radius:2px}input,button,select,textarea{font:inherit}input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select{background-color:var(--folio-bg-subtle);color:var(--folio-text);border:1px solid var(--folio-border);border-radius:var(--folio-radius);padding:.5rem .75rem}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem}input::placeholder,textarea::placeholder{color:var(--folio-text-muted)}input[type=checkbox],input[type=radio]{width:1.125rem;height:1.125rem;margin:0;cursor:pointer;accent-color:var(--folio-primary)}input[type=radio]{border-radius:50%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--folio-bg-subtle)}::-webkit-scrollbar-thumb{background:var(--folio-border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#3f3f46}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#a1a1aa}html{scrollbar-color:var(--folio-border) var(--folio-bg-subtle);scrollbar-width:thin}.skip-link:focus{left:.5rem;top:.5rem}.sidebar-btn{background:transparent;border:none;color:inherit;cursor:pointer;padding:.5rem;border-radius:var(--folio-radius);display:flex;align-items:center;justify-content:center;font:inherit}.sidebar-btn:focus-visible{outline:none;box-shadow:var(--folio-focus-ring)}.sidebar-nav-item,.sidebar-nav-link{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:var(--folio-radius);border:none;cursor:pointer;font:inherit;text-align:left;text-decoration:none;width:100%;box-sizing:border-box}.sidebar-nav-item:focus-visible,.sidebar-nav-link:focus-visible{outline:none;box-shadow:var(--folio-focus-ring)}.sidebar-nav-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sidebar-subnav{list-style:none;margin:0;padding:0 0 0 1.5rem;border-left:1px solid var(--folio-sidebar-border);margin-left:1.25rem}.sidebar-subnav-link{display:block;padding:.45rem .5rem;border-radius:var(--folio-radius);text-decoration:none;transition:color .15s ease}.sidebar-subnav-link:hover{color:var(--folio-sidebar-text)}.sidebar-footer{display:flex;flex-direction:column;gap:.5rem}.sidebar-footer-btn{width:100%;padding:.5rem .75rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem;justify-content:center}.sidebar-footer.open .sidebar-footer-btn{justify-content:flex-start}.sidebar-folio{--sf-bg: #ffffff;--sf-text: #18181b;--sf-muted: #71717a;--sf-border: #e4e4e7;--sf-purple: #753BE4;--sf-purple-hover: #7367F0;background:var(--sf-bg)!important;color:var(--sf-text);border-right:1px solid var(--sf-border);box-shadow:0 2px 10px #00000040;position:relative;z-index:1;padding-top:22px;padding-bottom:10px;box-sizing:border-box}.layout-root .sidebar-folio{box-shadow:0 2px 10px #00000040}.sidebar-overlay{display:none}.sidebar-folio__top{display:flex;align-items:center;gap:0;padding:.35rem .75rem;min-height:auto}.sidebar-folio__logo{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:var(--sf-purple);border-radius:8px;color:#fff}.sidebar-folio__logo-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:#ffffffd9;cursor:pointer;border-radius:6px;transition:color .15s ease,background .15s ease}.sidebar-folio__logo-toggle:hover{color:#fff;background:#ffffff26}.sidebar-folio__logo-collapsed-f{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:8px;background:var(--sf-purple);color:#fff;cursor:pointer;transition:background .15s ease}.sidebar-folio__logo-collapsed-f:hover{background:var(--sf-purple-hover)}.sidebar-folio__logo-collapsed-f-letter{font-size:1.25rem;font-weight:700;line-height:1;letter-spacing:.02em}.sidebar-folio--collapsed{width:56px!important;min-width:56px!important;max-width:56px!important;padding-top:22px!important;overflow:hidden;flex:0 0 56px!important;display:flex;flex-direction:column;min-height:0}.sidebar-folio--collapsed .sidebar-folio__top{justify-content:center;flex-shrink:0;padding:0 8px;min-height:40px;box-sizing:border-box}@media (min-width: 601px){.sidebar-folio--collapsed .sidebar-folio__top{margin-bottom:40px}}.sidebar-folio--collapsed .sidebar-folio__nav-collapsed{flex:1 1 0;min-height:0;min-width:0;padding:.35rem 8px .5rem;gap:.4rem;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;align-items:center}.sidebar-folio--collapsed .sidebar-folio__nav-collapsed::-webkit-scrollbar{display:none;width:0;height:0}.sidebar-folio--collapsed .sidebar-folio__nav-collapsed-divider{margin:.35rem 0;width:20px}.sidebar-folio__nav-collapsed{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 0;overflow-y:auto}.sidebar-folio__nav-collapsed-divider{width:24px;height:1px;margin:.35rem 0;background:var(--sf-border);flex-shrink:0}.sidebar-folio__icon-btn{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:40px;min-width:40px;max-width:100%;height:40px;min-height:40px;padding:0;margin:0;border:none;border-radius:8px;background:transparent;color:var(--sf-muted);cursor:pointer;text-decoration:none;flex-shrink:0;transition:color .15s ease,background .15s ease}.sidebar-folio__icon-btn svg{flex-shrink:0;width:22px;height:22px;display:block}.sidebar-folio__icon-btn:focus{outline:none}.sidebar-folio__icon-btn:focus-visible{box-shadow:0 0 0 2px var(--folio-bg, #fff),0 0 0 4px var(--sf-purple)}.sidebar-folio__icon-btn:hover{color:var(--sf-text);background:#0000000d}.sidebar-folio__icon-btn--active{color:var(--sf-purple);background:var(--folio-sidebar-active-bg)}.sidebar-folio--collapsed .sidebar-folio__icon-btn{width:36px;min-width:36px;height:36px;min-height:36px}.sidebar-folio--collapsed .sidebar-folio__icon-btn svg{width:20px;height:20px}.sidebar-folio__logo-text{font-weight:700;font-size:1.125rem;letter-spacing:.02em;color:#fff;text-decoration:none;flex:1}.sidebar-folio__logo-text:hover{color:#fff}.sidebar-folio__clock{color:#ffffffb3;display:flex;align-items:center;justify-content:center}.sidebar-folio__logo-collapsed{width:40px;height:40px;border-radius:8px;background:var(--sf-purple);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none}.sidebar-folio__user{display:flex;align-items:center;gap:.75rem;padding:0}.sidebar-folio__avatar{width:40px;height:40px;border-radius:50%;background:var(--sf-purple);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-folio__user-name{font-size:var(--folio-font-md);font-weight:500;color:var(--sf-text)}.sidebar-folio__library-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;border:none;background:transparent;color:var(--sf-text);font-size:var(--folio-font-md);cursor:pointer;text-align:left;transition:background .15s ease}.sidebar-folio__library-row:hover{background:var(--folio-bg-subtle, #f4f4f5)}.sidebar-folio__library-name{flex:1;font-weight:500}.sidebar-folio__library-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#dc2626;color:#fff;font-size:.75rem;font-weight:600}.sidebar-folio__library-arrow{flex-shrink:0;color:var(--sf-muted);transition:transform .2s ease}.sidebar-folio__nav{flex:1;padding:.5rem 0;overflow-y:auto}.sidebar-folio--collapsed .sidebar-folio__nav{flex:0 0 0;min-height:0;padding:0;overflow:hidden}.sidebar-folio__list{list-style:none;margin:0;padding:0 .5rem}.sidebar-folio__section,.sidebar-folio__library-section{margin-bottom:.5rem}.sidebar-folio__library-section{padding:0 .5rem;margin-top:22px}.sidebar-folio--admin .sidebar-folio__nav .sidebar-folio__section:first-child{margin-top:22px}.sidebar-folio__library-section .sidebar-folio__subnav-link{width:100%;border:none;background:transparent;cursor:pointer;font:inherit;text-align:left}.sidebar-folio__section-title{display:block;padding:.35rem .75rem;font-size:.6875rem;font-weight:600;letter-spacing:.08em;color:var(--sf-muted);text-transform:uppercase}.sidebar-folio__subnav{list-style:none;margin:0;padding:0}.sidebar-folio__subnav-link{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:0 6px 6px 0;color:var(--sf-muted);text-decoration:none;font-size:var(--folio-font-md);transition:color .15s ease,background .15s ease;border-left:4px solid transparent}.sidebar-folio__subnav-link:hover{color:var(--sf-text);background:#0000000a}.sidebar-folio__subnav-link--active{color:var(--sf-purple);font-weight:500;border-left-color:var(--sf-purple);background:#753be40f}.sidebar-folio__subnav-link svg{flex-shrink:0;color:inherit;opacity:.9}.sidebar-folio__footer,.sidebar-folio--admin .sidebar-folio__footer{padding:0 20px!important;min-height:66px;border-top:1px solid var(--sf-border);display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:.5rem;box-sizing:border-box}.sidebar-folio__footer--user,.sidebar-folio--admin .sidebar-folio__footer--user{display:flex;flex-shrink:0;margin-top:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;min-height:66px;padding:0 20px!important;box-sizing:border-box}.sidebar-folio__footer--user .sidebar-folio__user,.sidebar-folio--admin .sidebar-folio__footer--user .sidebar-folio__user{min-width:0;flex:1;display:flex;align-items:center;gap:.5rem}.sidebar-folio__logout-btn{display:flex;align-items:center;justify-content:center;color:var(--folio-sidebar-text-muted);background:none;border:none;cursor:pointer;border-radius:var(--folio-radius);padding:.35rem;flex-shrink:0;transition:color .15s ease,background .15s ease}.sidebar-folio__logout-btn:hover{color:var(--folio-sidebar-text);background:var(--folio-sidebar-active-bg)}.sidebar-folio--collapsed .sidebar-folio__logout-btn{padding:.35rem}.sidebar-folio__logout-icon{flex-shrink:0}.sidebar-folio--collapsed .sidebar-folio__footer,.sidebar-folio--collapsed .sidebar-folio__footer--user,.sidebar-folio--admin.sidebar-folio--collapsed .sidebar-folio__footer,.sidebar-folio--admin.sidebar-folio--collapsed .sidebar-folio__footer--user{padding:.4rem 8px!important;min-height:auto!important;box-sizing:border-box;flex-shrink:0}.sidebar-folio--collapsed .sidebar-folio__footer--user{flex-direction:column;align-items:center;gap:.25rem}.sidebar-folio--collapsed .sidebar-folio__footer--user .sidebar-folio__user-name{display:none}.sidebar-folio--collapsed .sidebar-folio__footer--user .sidebar-folio__user{justify-content:center}.sidebar-folio__theme{display:flex;gap:.25rem}.sidebar-folio__theme button{padding:.35rem .6rem;border:1px solid var(--sf-border);border-radius:6px;background:var(--sf-bg);color:var(--sf-muted);font-size:var(--folio-font-sm);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.sidebar-folio__theme button:hover{color:var(--sf-text)}.sidebar-folio__theme-btn--active{background:var(--folio-sidebar-active-bg)!important;color:var(--sf-purple)!important;border-color:#753be44d!important;font-weight:600!important}.container{max-width:960px;margin:0 auto;padding:1.5rem}.card{background:var(--folio-bg);border-radius:var(--folio-radius);padding:1.25rem 1.5rem;box-shadow:var(--folio-shadow);border:1px solid var(--folio-border);margin-bottom:1rem}.analytics-widgets-grid .card{margin-bottom:0}.analytics-widget-draggable{cursor:grab}.analytics-widget-draggable:active{cursor:grabbing}.analytics-widget-dragging{opacity:.7}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--folio-radius);border:none;cursor:pointer;font-weight:500;font-size:var(--folio-font-md);transition:background .15s ease,color .15s ease,opacity .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--folio-focus-ring)}.btn-sm{padding:.35rem .75rem;font-size:var(--folio-font-sm)}.btn-md{padding:.5rem 1rem;font-size:var(--folio-font-md)}.btn-primary{background:var(--folio-primary);color:#fff;border:1px solid transparent}.btn-primary:hover:not(:disabled){background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border-color:var(--folio-primary-hover-fg)}.btn-secondary{background:var(--folio-secondary);color:#fff;border:1px solid transparent}.btn-secondary:hover:not(:disabled){background:var(--folio-secondary-hover-bg);color:var(--folio-secondary-hover-fg)}.btn-danger{background:var(--folio-error);color:#fff;border:1px solid transparent}.btn-danger:hover:not(:disabled){background:var(--folio-error-hover-bg);color:var(--folio-error)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-weight:500;color:var(--folio-text-muted)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.55rem .75rem;border:1px solid var(--folio-border);border-radius:var(--folio-radius);background:var(--folio-bg-subtle);color:var(--folio-text)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--folio-text-muted)}.error-msg{color:var(--folio-error);font-size:var(--folio-font-md);margin-top:.25rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--folio-overlay-bg)}.modal-content{background:var(--folio-bg);border-radius:var(--folio-radius);box-shadow:var(--folio-shadow-pop);border:1px solid var(--folio-border);max-width:90vw;padding:1.25rem}.modal-content.modal-content--sm{width:400px}.modal-content .modal-title{margin:0 0 .5rem;font-size:var(--folio-font-lg);font-weight:600;color:var(--folio-text)}.modal-content .modal-body{margin:0 0 1.25rem;font-size:var(--folio-font-md);color:var(--folio-text-muted)}.modal-content .modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.modal-content.modal-content--parser{width:480px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;padding:0}.modal-content--parser .modal-header{padding:1rem 1.25rem;border-bottom:1px solid var(--folio-border);display:flex;align-items:center;justify-content:space-between}.modal-content--parser .modal-header .modal-title{margin:0}.modal-content--parser .modal-body-scroll{padding:1rem;overflow:auto;flex:1;font-family:ui-monospace,monospace;font-size:var(--folio-font-sm);line-height:1.5;background:var(--folio-bg-subtle);color:var(--folio-text);min-height:200px;max-height:320px}.modal-content--parser .modal-footer{padding:.75rem 1.25rem;border-top:1px solid var(--folio-border);display:flex;justify-content:flex-end}.table,table.sheet-table,.catalog-sheet-table{width:100%;border-collapse:collapse}.table th,.table-th,.catalog-sheet-table th{padding:.5rem .75rem;font-size:var(--folio-font-sm);font-weight:600;color:var(--folio-text-muted);border-bottom:1px solid var(--folio-border);text-align:left;background:var(--folio-bg-subtle)}.table td,.table-td,.catalog-sheet-table td{padding:.5rem .75rem;font-size:var(--folio-font-md);border-bottom:1px solid var(--folio-border);color:var(--folio-text);vertical-align:middle}tr.table-row,.table tbody tr{border-bottom:1px solid var(--folio-border)}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:var(--folio-bg-page)}.auth-page .auth-card{width:100%;max-width:400px;background:var(--folio-bg);border-radius:var(--folio-radius);padding:2rem 1.75rem;box-shadow:var(--folio-shadow-pop);border:1px solid var(--folio-border)}.auth-page__logo{display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;padding:.5rem 1rem;background:var(--folio-primary);border-radius:8px;color:#fff;font-weight:700;font-size:1.25rem;letter-spacing:.02em}.auth-page .auth-card h1{margin:0 0 1.5rem;font-size:var(--folio-font-lg);font-weight:600;color:var(--folio-text);text-align:center}.auth-page .auth-card .form-group{margin-bottom:1.25rem}.auth-page .auth-card .form-group:last-of-type{margin-bottom:1.5rem}.auth-page .auth-card .form-group--checkbox{margin-bottom:1rem}.auth-page .auth-card .checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--folio-font-md);color:var(--folio-text)}.auth-page .auth-card .checkbox-label input{width:1rem;height:1rem;accent-color:var(--folio-primary)}.auth-page .auth-card .auth-remember-hint{margin:.25rem 0 0 1.5rem;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.auth-page .auth-card .btn-primary{width:100%;padding:.65rem 1rem;font-size:1rem;margin-bottom:.5rem}.auth-page .auth-card .auth-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--folio-border);text-align:center;font-size:var(--folio-font-md);color:var(--folio-text-muted)}.auth-page .auth-card .auth-footer a{font-weight:500}.catalog-table-layout{max-width:none;margin:0;padding:0;height:100%;min-width:0;min-height:0;display:flex;flex-direction:column;background:#f8f7fa}.catalog-table-layout--gallery{background:transparent}.catalog-toolbar{flex-shrink:0;padding:.75rem 1.25rem;background:var(--folio-bg);border-bottom:1px solid var(--folio-border);display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.catalog-toolbar--catalog{padding:.875rem 1.5rem;gap:1rem;border-radius:0 0 10px 10px;box-shadow:0 1px #ffffff08}.catalog-page{--folio-bg: #ffffff;--folio-bg-subtle: #f4f4f5;--folio-text: #18181b;--folio-text-muted: #52525b;--folio-border: #e4e4e7;--page-inset-x: 20px;display:flex;flex-direction:column;flex:1;min-height:0;background:#f8f7fa}.catalog-page .catalog-toolbar__search-wrap:focus-within{border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}.catalog-page .catalog-toolbar__icon-btn{background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border:1px solid var(--folio-primary-hover-fg)}.catalog-page .catalog-toolbar__icon-btn:hover{background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg)}.catalog-page .catalog-toolbar__icon-btn--active,.catalog-page .catalog-toolbar__add-btn:hover:not(:disabled){background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border-color:var(--folio-primary-hover-fg)}.catalog-page .catalog-toolbar__add-btn{background:var(--folio-primary);color:#fff}.catalog-page .catalog-toolbar__add-btn:hover:not(:disabled){background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border:1px solid var(--folio-primary-hover-fg)}.catalog-page .catalog-toolbar__filter-badge{background:var(--folio-primary-hover-fg)}.catalog-page .catalog-toolbar__search-clear:hover,.catalog-page .catalog-toolbar__view-link:hover{background:#0000000f}.catalog-page__header{flex-shrink:0;display:flex;align-items:center;gap:1rem;min-height:66px;padding-left:var(--page-inset-x, 20px);padding-right:var(--page-inset-x, 20px);margin-left:var(--page-inset-x, 20px);margin-right:var(--page-inset-x, 20px);margin-top:10px;margin-bottom:16px;background:var(--folio-bg);border:1px solid var(--folio-border);border-radius:10px;box-shadow:0 2px 10px #00000040;flex-wrap:wrap;box-sizing:border-box;width:calc(100% - 2 * var(--page-inset-x, 20px))}.catalog-page__title{margin:0;font-size:1.25rem;font-weight:600;color:var(--folio-text);flex-shrink:0}.catalog-page__header-add-btn-mobile{display:none}.catalog-page--admin .catalog-page__body{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;gap:16px}.catalog-page--admin .catalog-table-wrap{flex:1;min-height:0;min-width:0;overflow:auto}.catalog-page__header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0;min-height:40px}.catalog-page--admin .catalog-page__header-actions,.catalog-page--admin-settings .catalog-page__header-actions{margin-left:auto}.catalog-page__header-center{flex:1 1 200px;min-width:0;display:flex;align-items:center;gap:.75rem}.catalog-page__search{display:flex;align-items:center;gap:8px;flex:1;min-width:160px;max-width:400px;height:40px;padding:0 12px;box-sizing:border-box;background:transparent;border:1px solid var(--folio-border);border-radius:8px;transition:border-color .2s ease}.catalog-page__search:focus-within{border-color:var(--folio-primary)}.catalog-page__search-icon{color:var(--folio-text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;pointer-events:none}.catalog-page__search .catalog-page__search-input,.catalog-page .catalog-page__search input.catalog-page__search-input{flex:1;min-width:0;height:100%;padding:0;margin:0;border:none;border-width:0;border-style:none;background:transparent!important;background-color:transparent!important;font-size:var(--folio-font-md);color:var(--folio-text);outline:none;outline-width:0;box-shadow:none!important;-webkit-box-shadow:none!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}.catalog-page__search .catalog-page__search-input:focus,.catalog-page__search .catalog-page__search-input:focus-visible,.catalog-page .catalog-page__search input.catalog-page__search-input:focus,.catalog-page .catalog-page__search input.catalog-page__search-input:focus-visible{outline:none;outline-width:0;box-shadow:none!important;-webkit-box-shadow:none!important;border:none;border-width:0;background:transparent!important;background-color:transparent!important}.catalog-page__search-input::placeholder{color:var(--folio-text-muted)}.catalog-page__search-clear{width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--folio-text-muted);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.catalog-page__search-clear:hover{color:var(--folio-text);background:#0000000f}@media (max-width: 900px){.catalog-page{--page-inset-x: 12px}.catalog-page__header{margin-bottom:12px;gap:.75rem}.catalog-page__search{max-width:100%}.catalog-page__header-center{flex:1 1 100%;order:1;min-width:0}.catalog-page__header-actions{margin-left:auto}}@media (max-width: 600px){.catalog-page{--page-inset-x: 10px}.catalog-page__header{margin-top:8px;margin-bottom:10px;flex-wrap:nowrap;gap:.5rem}.catalog-status-bar{margin-top:12px;margin-bottom:8px}.catalog-page__title{display:none!important}.catalog-page--admin-settings .catalog-page__header-add-btn-mobile{display:inline-flex!important;align-items:center;gap:.35rem}.catalog-page--admin-settings .catalog-page__header-add-btn-desktop{display:none!important}.catalog-page__body{padding:10px!important}.catalog-page__header-center{flex:1 1 0;min-width:0;order:0}.catalog-page__header-center .catalog-page__search{max-width:none}.catalog-page__header-actions{flex-shrink:0;order:0}.catalog-page__header-grouping,.catalog-page__header-filter,.catalog-page__header-columns,.catalog-page__header-table-label,.catalog-toolbar__add-btn-text{display:none!important}.catalog-toolbar__add-btn-icon-mobile{display:inline-flex!important}.catalog-status-bar__left--hide-on-mobile{display:none!important}.catalog-page .catalog-status-bar{justify-content:center}.catalog-page .catalog-status-bar__right{flex:1;justify-content:center}.catalog-page--analytics .catalog-status-bar{justify-content:flex-start}.catalog-page--analytics .catalog-status-bar__left{flex-wrap:wrap;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.catalog-page--analytics .catalog-status-bar__left strong{color:var(--folio-text)}.analytics-page__mobile-title{display:block!important;margin:0;font-size:1rem;font-weight:600;color:var(--folio-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-page__mobile-summary{display:block!important;margin-top:.25rem;font-size:var(--folio-font-sm);color:var(--folio-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-page__widget-label{display:inline!important;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.catalog-page--analytics .catalog-page__header-center{flex-direction:column;align-items:flex-start;gap:.2rem;flex:1 1 0;min-width:0;justify-content:flex-start;text-align:left}.catalog-page--analytics .catalog-page__header{align-items:center}.catalog-page--analytics .catalog-status-bar__left{justify-content:flex-start;align-items:center;text-align:left;gap:.5rem 1rem}.catalog-page--analytics .catalog-status-bar__widget-count{display:none!important}.catalog-page--analytics .catalog-status-bar__right{margin-left:auto;flex-shrink:0}.catalog-status-bar__catalog-link{font-size:var(--folio-font-sm);color:var(--folio-primary);text-decoration:none;padding:.25rem .5rem;border-radius:6px}.catalog-status-bar__catalog-link:hover{text-decoration:underline;background:#0000000a}.catalog-page--analytics-library .analytics-page__widget-label,.catalog-page--analytics-library .catalog-status-bar__sep,.catalog-page--analytics-personal .analytics-page__widget-label,.catalog-page--analytics-personal .analytics-page__mobile-summary{display:none!important}.catalog-page--analytics-personal .analytics-page__header-library{display:block!important;margin-top:.25rem;font-size:var(--folio-font-sm);color:var(--folio-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-page--analytics-personal .analytics-page__header-library-name{color:var(--folio-text)}.catalog-page--analytics-personal .catalog-status-bar__right,.catalog-page--analytics-personal .analytics-personal__footer-library,.catalog-page--analytics-personal .catalog-status-bar__widget-count,.catalog-page--analytics-personal .analytics-personal__footer-details{display:none!important}.catalog-page--analytics-personal .analytics-personal__footer-details+.analytics-personal__footer-compact{display:inline!important}.catalog-page--analytics-personal .catalog-status-bar__left--analytics-personal .analytics-personal__footer-compact{display:inline!important}.catalog-page .catalog-cards-content{padding:10px!important}.sidebar-folio--collapsed .sidebar-folio__nav-collapsed{margin-top:20px}.sidebar-folio--collapsed .sidebar-folio__footer--user{gap:10px}.sidebar-folio:not(.sidebar-folio--collapsed) .sidebar-folio__library-section{margin-top:20px}.layout-root--sidebar-open .sidebar-folio{position:fixed!important;left:0!important;top:0!important;width:100vw!important;min-width:100vw!important;max-width:100vw!important;height:100vh!important;z-index:1000}.sidebar-overlay{display:none}.layout-root--sidebar-open .sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#0006;cursor:pointer}.catalog-filter-panel,.book-form-drawer-panel{width:100%!important;max-width:none!important}.book-form-drawer-inflow-wrap--open{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;min-width:100vw!important;height:100vh!important;max-width:none!important;z-index:201}.book-form-drawer-panel--inflow{width:100%!important;max-width:none!important}.book-form-drawer-inflow-wrap--open .book-form-drawer-panel{height:100%;min-height:100vh;display:flex;flex-direction:column}.book-form-drawer-inflow-wrap--open .book-form-drawer-panel__body{flex:1;min-height:0;overflow-y:auto}.book-form-drawer-inflow-wrap--open .book-form-drawer__footer{flex-shrink:0;position:sticky;bottom:0;left:0;right:0;z-index:2;background:var(--folio-bg);padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));box-shadow:0 -2px 8px #0000000f}}.catalog-page__body{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;padding:0 var(--page-inset-x, 20px) 0;overflow:hidden;gap:16px}.catalog-page__no-library{flex:1;display:flex;align-items:center;justify-content:center;color:var(--folio-text-muted);font-size:var(--folio-font-md)}.catalog-page__no-library p{margin:0}.catalog-table-th-label{text-transform:uppercase;font-size:var(--folio-font-xs);font-weight:600;letter-spacing:.02em;color:var(--folio-text-muted)}.catalog-table-commands{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%;min-height:100%}.catalog-table-commands__btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--folio-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.catalog-table-commands__btn:hover{background:var(--folio-bg-subtle);color:var(--folio-primary)}.catalog-table-commands__btn svg{flex-shrink:0}.catalog-page .catalog-sheet-table td:has(.catalog-table-commands){vertical-align:middle;text-align:center}.catalog-table-wrap{flex:1;min-height:0;min-width:0;border:1px solid var(--folio-border);border-radius:10px;background:var(--folio-bg);overflow:auto;display:block;box-shadow:0 2px 10px #00000040}.catalog-page .catalog-table-wrap{border-color:#e4e4e7;background:#fff}.catalog-page .catalog-sheet-table input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;flex-shrink:0}.catalog-page .catalog-sheet-table th.catalog-sheet-table__cell--select,.catalog-page .catalog-sheet-table td.catalog-sheet-table__cell--select{padding-left:6px}.catalog-sheet-table--slide thead.catalog-sheet-table__head{position:sticky;top:0;z-index:1;background:#f4f4f5!important}.catalog-page .catalog-sheet-table--slide thead.catalog-sheet-table__head th{padding:.625rem .75rem;font-size:.6875rem;font-weight:600;letter-spacing:.06em;color:#52525b;text-transform:uppercase;border-bottom:1px solid #e4e4e7;border-right:1px solid #e4e4e7;background:#f4f4f5!important}.catalog-page .catalog-sheet-table__head th[draggable=true]:active{cursor:grabbing}.catalog-page .catalog-sheet-table--slide thead.catalog-sheet-table__head th:last-child{border-right:none}.catalog-page .catalog-sheet-table--slide tbody td{padding:.625rem .75rem;font-size:var(--folio-font-md);color:var(--folio-text);border-bottom:1px solid #e4e4e7;border-right:1px solid #e4e4e7;background:#fff}.catalog-page .catalog-sheet-table--slide tbody td:last-child{border-right:none}.catalog-page .catalog-sheet-table--slide .catalog-table-th-label{font-size:.6875rem;font-weight:600;letter-spacing:.06em;color:#52525b;text-transform:uppercase}.catalog-toolbar__title{font-size:var(--folio-font-md);font-weight:500;color:var(--folio-text-muted);flex-shrink:0}.catalog-toolbar__search-row{display:flex;align-items:center;gap:.5rem;flex:1 1 320px;min-width:0}.catalog-toolbar__search-wrap{display:flex;align-items:center;flex:1;min-width:160px;max-width:380px;background:var(--folio-bg-subtle);border:1px solid var(--folio-border);border-radius:8px;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.catalog-toolbar__search-wrap:focus-within{border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}.catalog-toolbar__search-icon{padding:0 .75rem;color:var(--folio-text-muted);display:flex;align-items:center}.catalog-toolbar__search-input{flex:1;border:none;padding:.5rem .25rem .5rem 0;font-size:var(--folio-font-md);outline:none;min-width:0;background:transparent;color:var(--folio-text)}.catalog-toolbar__search-input::placeholder{color:var(--folio-text-muted)}.catalog-toolbar__search-clear{padding:.35rem .6rem;margin:0 .25rem;border:none;background:transparent;color:var(--folio-text-muted);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.catalog-toolbar__search-clear:hover{color:var(--folio-text);background:#ffffff0f}.catalog-toolbar__filter-wrap{position:relative;display:inline-flex}.catalog-toolbar__filter-badge{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--folio-primary);z-index:1}.catalog-toolbar__icon-btn{width:36px;height:36px;padding:0;border:1px solid var(--folio-border);border-radius:8px;background:var(--folio-bg-subtle);color:var(--folio-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.catalog-toolbar__icon-btn:hover{color:var(--folio-text);background:#ffffff0f}.catalog-toolbar__icon-btn--active{background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border-color:var(--folio-primary-hover-fg)}.catalog-toolbar__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.catalog-toolbar__add-btn-icon-mobile{display:none}.catalog-toolbar__add-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid transparent;border-radius:8px;background:var(--folio-primary);color:#fff;font-size:var(--folio-font-md);font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}.catalog-toolbar__add-btn:hover:not(:disabled){background:var(--folio-primary-hover-bg);color:var(--folio-primary-hover-fg);border-color:var(--folio-primary-hover-fg)}.catalog-toolbar__add-btn:disabled{background:var(--folio-text-muted);cursor:not-allowed;opacity:.8}.catalog-toolbar__view-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:1px solid var(--folio-border);border-radius:8px;background:var(--folio-bg-subtle);color:var(--folio-text-muted);font-size:var(--folio-font-md);text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.catalog-toolbar__view-link:hover{color:var(--folio-text);background:#ffffff0f;border-color:var(--folio-border-dark, #3f3f46)}.catalog-toolbar__group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.catalog-toolbar__divider{width:1px;height:1.5rem;background:var(--folio-border);flex-shrink:0;margin:0 .25rem}.catalog-table-row{transition:background .12s ease}.catalog-table-row:hover{background:#753be40f!important}.catalog-table-row[data-selected=true]:hover{background:#753be424!important}.catalog-page .catalog-table-row:hover{background:#753be40f!important}.catalog-page .catalog-table-row[data-selected=true]{background:#753be41f!important}.catalog-page .catalog-table-row[data-selected=true]:hover{background:#753be424!important}.catalog-page .catalog-status-bar{flex-shrink:0;min-height:66px;padding-left:var(--page-inset-x, 20px);padding-right:var(--page-inset-x, 20px);margin-left:var(--page-inset-x, 20px);margin-right:var(--page-inset-x, 20px);margin-top:16px;margin-bottom:10px;width:calc(100% - 2 * var(--page-inset-x, 20px));border:1px solid var(--folio-border);border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;font-size:var(--folio-font-md);color:var(--folio-text-muted);background:var(--folio-bg);box-shadow:0 2px 10px #00000040;box-sizing:border-box}.catalog-page .catalog-page__body .catalog-status-bar{margin-left:0;margin-right:0;width:100%}.catalog-status-bar__left{flex-shrink:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.analytics-page__mobile-title,.analytics-page__mobile-summary,.analytics-page__widget-label{display:none}.analytics-widgets-grid{row-gap:10px!important;column-gap:10px!important}.analytics-page__header-library,.analytics-personal__footer-compact{display:none}.catalog-page--analytics .catalog-page__header-center{flex:1 1 0;min-width:0;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.2rem;text-align:left}.catalog-page--analytics .catalog-status-bar__left{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.5rem 1rem;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.catalog-page--analytics .catalog-status-bar__left strong{color:var(--folio-text)}.catalog-page--analytics .catalog-page__header{align-items:center}.catalog-page--analytics-library .catalog-status-bar{justify-content:flex-start}.catalog-page--analytics-library .catalog-status-bar__left{justify-content:flex-start;text-align:left;flex:1;min-width:0}.catalog-status-bar__sep{width:1px;height:1rem;background:var(--folio-border);opacity:.7}.catalog-status-bar__center{display:flex;align-items:center;gap:.35rem}.catalog-status-bar__label{margin-right:.25rem}.catalog-status-bar__page-size{padding:.25rem .5rem;min-width:2rem;border:1px solid var(--folio-border);border-radius:6px;background:var(--folio-bg-subtle);color:var(--folio-text-muted);font-size:var(--folio-font-sm);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.catalog-status-bar__page-size:hover{color:var(--folio-text);border-color:var(--folio-border)}.catalog-status-bar__page-size--active{background:var(--folio-primary);color:var(--folio-bg);border-color:var(--folio-primary)}.catalog-status-bar__right{display:flex;align-items:center;gap:.5rem}.catalog-status-bar__nav{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .5rem;border:1px solid var(--folio-border);border-radius:6px;background:var(--folio-bg-subtle);color:var(--folio-text);font-size:var(--folio-font-sm);cursor:pointer;transition:background .15s ease}.catalog-status-bar__nav:disabled{opacity:.5;cursor:not-allowed}.catalog-status-bar__nav:hover:not(:disabled){background:#0000000f}.catalog-page .catalog-status-bar__nav:hover:not(:disabled){background:#0000000f}.catalog-status-bar__pages{display:flex;align-items:center;gap:.2rem}.catalog-status-bar__page-num{min-width:2rem;padding:.35rem .5rem;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--folio-text-muted);font-size:var(--folio-font-sm);cursor:pointer;transition:background .15s ease,color .15s ease}.catalog-status-bar__page-num:hover{color:var(--folio-text)}.catalog-status-bar__page-num--active{background:var(--folio-primary);color:var(--folio-bg)}.catalog-status-bar__ellipsis{padding:0 .25rem;color:var(--folio-text-muted);font-size:var(--folio-font-sm)}.catalog-selection-bar{flex-shrink:0;padding:.625rem 1.25rem;border-top:1px solid var(--folio-border);background:#753be414;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:var(--folio-font-md)}.catalog-error-alert{margin:0 1.25rem;padding:.75rem 1rem;background:var(--folio-error-bg);border:1px solid var(--folio-error);border-radius:var(--folio-radius);color:var(--folio-error);font-size:var(--folio-font-md)}.catalog-filter-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--folio-overlay-bg);cursor:pointer}.catalog-filter-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:440px;z-index:201;background:#fff;color:#18181b;box-shadow:0 2px 10px #00000040;display:flex;flex-direction:column;overflow:hidden;animation:right-panel-slide-in .2s ease}.catalog-filter-panel__header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;height:66px;padding:0 20px;margin:10px 20px 0;border-bottom:1px solid #e4e4e7;background:#fff}.catalog-filter-panel__header h2{margin:0;font-size:1.25rem;font-weight:600;color:#18181b}.catalog-filter-panel__close{width:36px;height:36px;padding:0;border:none;border-radius:6px;background:transparent;color:#71717a;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;outline:none}.catalog-filter-panel__close:hover{background:#f4f4f5;color:#18181b}.catalog-filter-panel__close:focus,.catalog-filter-panel__close:focus-visible{outline:none}.catalog-filter-panel__body{flex:1;min-height:0;overflow-y:auto;padding:1rem 1.25rem;background:#fff}.catalog-filter-panel__footer{flex-shrink:0;display:flex;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid #e4e4e7;background:#fff}.catalog-batch-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;min-width:320px;max-width:420px}.catalog-page--gallery,.catalog-page--gallery .catalog-cards-content{background:transparent}.catalog-cards-content{box-sizing:border-box}.catalog-card{transition:border-color .15s ease,box-shadow .15s ease}.catalog-card:hover{border-color:var(--folio-primary)!important;box-shadow:var(--folio-shadow-pop)}.catalog-card-placeholder{transition:background .15s ease}.book-form-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0006;animation:book-form-drawer-fade .2s ease}.book-form-drawer-inflow-wrap{transition:width .2s ease,min-width .2s ease}.book-form-drawer-inflow-wrap--open{box-shadow:0 2px 10px #00000040}.book-form-drawer-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:440px;z-index:201;background:#fff;color:#18181b;box-shadow:0 2px 10px #00000040;display:flex;flex-direction:column;animation:right-panel-slide-in .2s ease}.book-form-drawer-panel--inflow{position:relative;top:auto;right:auto;bottom:auto;z-index:0;height:100%;display:flex;flex-direction:column;background:#fff;border-left:1px solid #e4e4e7;animation:none}.book-form-drawer-panel__body .book-form-page__skeleton{animation:book-form-skeleton-in .15s ease}.book-form-drawer-panel__body form#book-form{animation:book-form-content-in .2s ease}@keyframes book-form-skeleton-in{0%{opacity:0}to{opacity:1}}@keyframes book-form-content-in{0%{opacity:0}to{opacity:1}}@keyframes book-form-drawer-fade{0%{opacity:0}to{opacity:1}}@keyframes book-form-drawer-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes right-panel-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.book-form-drawer-panel__header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;height:66px;padding:0 20px;margin:10px 20px 0;border-bottom:1px solid #e4e4e7;background:#fff}.book-form-drawer-panel__title{margin:0;font-size:1.25rem;font-weight:600;color:#18181b}.book-form-drawer-panel__close{width:36px;height:36px;padding:0;border:none;border-radius:6px;background:transparent;color:#71717a;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;outline:none}.book-form-drawer-panel__close:hover{background:#f4f4f5;color:#18181b}.book-form-drawer-panel__close:focus,.book-form-drawer-panel__close:focus-visible{outline:none}.book-form-drawer-panel__body{flex:1;min-height:0;overflow-y:auto;padding:1rem 1.25rem;background:#fff}.book-form-drawer-panel--inflow .book-form-drawer-panel__body{min-height:360px}.book-form-drawer__cover-wrap{position:relative;width:100%;height:200px;border-radius:var(--folio-radius);overflow:hidden;background:var(--folio-border);border:1px solid var(--folio-border);margin-bottom:.75rem;display:flex;align-items:center;justify-content:center}.book-form-drawer__cover-wrap img{height:100%;width:auto!important;max-width:100%;object-fit:contain;object-position:center center;display:block}.book-form-drawer__cover-wrap .cover-image__empty{background:var(--folio-border);color:transparent;font-size:0;min-height:0}.book-form-drawer__cover-badge{position:absolute;top:.5rem;right:.5rem;display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .65rem;border-radius:8px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#fff;box-shadow:0 1px 3px #0003}.book-form-drawer__cover-badge--available{background:#10b981}.book-form-drawer__cover-badge--issued{background:#ef4444}.book-form-drawer__cover-btns{display:flex;gap:.5rem;margin-bottom:1.25rem}.book-form-drawer__cover-btns .btn-primary,.book-form-drawer__cover-btns .btn-secondary{flex:1;padding:.5rem 1rem;font-size:var(--folio-font-md)}.book-form-drawer__field{margin-bottom:1rem}.book-form-drawer__field label{display:block;margin-bottom:.35rem;font-size:var(--folio-font-sm);font-weight:500;color:#7f7f86}.book-form-drawer-panel input,.book-form-drawer-panel textarea,.book-form-drawer-panel select{background:#fff!important}.book-form-drawer__field input,.book-form-drawer__field textarea,.book-form-drawer__field select{width:100%;padding:.5rem .75rem;border:1px solid #e4e4e7;border-radius:var(--folio-radius);font-size:var(--folio-font-md);background:#fff;color:#18181b;box-sizing:border-box}.book-form-drawer__field input:focus,.book-form-drawer__field textarea:focus,.book-form-drawer__field select:focus{outline:none;border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}.book-form-drawer__field textarea{resize:vertical;min-height:88px}.book-form-drawer__select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.book-form-drawer__rating-stars{display:flex;flex-wrap:nowrap;align-items:center;gap:.125rem}.book-form-drawer__star{width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:0;background:transparent;color:var(--folio-text-muted);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.book-form-drawer__star--on{color:#eab308}.book-form-drawer__star:hover:not(:disabled){background:transparent;color:#eab308}.book-form-drawer__star--disabled{opacity:.5;cursor:not-allowed;pointer-events:auto}.book-form-drawer__star--disabled:hover{color:var(--folio-text-muted)}.book-form-drawer__field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.book-form-drawer__isbn-row{display:flex;gap:.5rem}.book-form-drawer__isbn-row input{flex:1}.book-form-drawer__footer{flex-shrink:0;display:flex;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--folio-border);background:var(--folio-bg)}.book-form-drawer__footer-btn{flex:1}.reading-room-card .book-form-drawer__field label{color:var(--folio-text-muted)}.reading-room-card .book-form-drawer__field input,.reading-room-card .book-form-drawer__field select{background:var(--folio-bg)!important;border-color:var(--folio-border);color:var(--folio-text)}.reading-room-card .book-form-drawer__field input:focus{border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}.reading-room-card .book-form-drawer__rating-stars .book-form-drawer__star{color:var(--folio-text-muted)}.reading-room-card .book-form-drawer__rating-stars .book-form-drawer__star--on{color:#eab308}@media (max-width: 600px){.reading-room-card{flex-direction:column!important;align-items:stretch}.reading-room-card__cover-wrap{width:100%!important;justify-content:center!important;padding:.75rem .5rem .5rem!important}.reading-room-card__cover-wrap a{width:100px!important;min-width:100px!important;margin:0 auto}.reading-room-card__content{padding:.5rem .75rem .75rem!important;gap:.5rem!important}.reading-room-card__content>div:first-child{flex-wrap:wrap;gap:.35rem}.reading-room-card__content .reading-room-card__dates-grid{grid-template-columns:1fr!important;gap:.5rem!important}.reading-room-card .book-form-drawer__rating-stars{flex-wrap:wrap}.reading-room-card .book-form-drawer__rating-stars .book-form-drawer__star{flex-shrink:0}.reading-room__cards-grid{grid-template-columns:1fr!important}.reading-room__header-streak{display:none!important}}.book-form-drawer-panel--inflow{padding-bottom:10px;box-sizing:border-box}.book-form-drawer__footer .btn{padding:.5rem 1rem;font-size:var(--folio-font-md);min-height:2.25rem;align-items:center;display:inline-flex;justify-content:center}.book-form-drawer__footer .btn-danger{margin-left:0}.book-form-page{display:flex;flex-direction:column;height:100%;background:var(--folio-bg)}.book-form-page__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--folio-border);flex-shrink:0;background:var(--folio-bg);flex-wrap:wrap}.book-form-page__header-left{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.book-form-page__title-block{min-width:0}.book-form-page__title{margin:0;font-size:var(--folio-font-lg);font-weight:600;color:var(--folio-text);line-height:1.3}.book-form-page__subtitle{margin:.25rem 0 0;font-size:var(--folio-font-sm);color:var(--folio-text-muted);font-weight:400}.book-form-page__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.book-form-page__tab{padding:.5rem 0;margin:0 1.25rem;font-size:var(--folio-font-md);font-weight:500;color:var(--folio-text-muted);border-bottom:2px solid transparent;cursor:default;transition:color .15s ease,border-color .15s ease}.book-form-page__tab.active{color:var(--folio-text);border-bottom-color:var(--folio-primary)}.book-form-page__section{margin-bottom:1.5rem}.book-form-page__section:last-child{margin-bottom:0}.book-form-page__section-title{margin:0 0 .75rem;font-size:var(--folio-font-sm);font-weight:600;color:var(--folio-text-muted);text-transform:uppercase;letter-spacing:.02em}.book-form-page__cover-label{margin:0 0 .5rem;font-size:var(--folio-font-sm);font-weight:600;color:var(--folio-text-muted)}.book-form-page__alert{padding:.75rem 1rem;border-radius:var(--folio-radius);font-size:var(--folio-font-md);margin-bottom:1rem}.book-form-page__alert--error{background:var(--folio-error-bg);border:1px solid var(--folio-error);color:var(--folio-error)}.book-form-page__actions-bar{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--folio-border);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.book-form-page__section-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media (max-width: 520px){.book-form-page__section-grid{grid-template-columns:1fr}}.book-form-page__body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;background:var(--folio-bg-page)}.book-form-page__grid{display:grid;grid-template-columns:200px 1fr 280px;gap:2rem;align-items:start}@media (max-width: 1200px){:root{--book-form-panel-width: 360px}}@media (max-width: 768px){:root{--book-form-panel-width: min(320px, 100vw - 2rem)}}@media (max-width: 1100px){.book-form-page__grid{grid-template-columns:200px 1fr}}@media (max-width: 768px){.book-form-page__grid{grid-template-columns:1fr}}.book-form-page__main{min-width:0}.book-form-page__sidebar{min-width:0;position:sticky;top:1.25rem;display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 1100px){.book-form-page__sidebar{grid-column:1 / -1;position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}}.book-form-page__cover{width:200px;aspect-ratio:2/3;border-radius:var(--folio-radius);overflow:hidden;background:var(--folio-border);flex-shrink:0;border:1px solid var(--folio-border)}.book-form-page__cover-add{display:block;margin-top:.5rem;font-size:var(--folio-font-sm);color:var(--folio-primary);cursor:pointer}.book-form-page__cover-add:hover{color:var(--folio-primary-hover-fg);text-decoration:underline}.book-form-page__cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--folio-text-muted-light);font-size:var(--folio-font-md)}.book-form-page__status-badge{font-size:var(--folio-font-sm);font-weight:500;display:inline-block;padding:.2rem .5rem;border-radius:var(--folio-radius)}.book-form-page__status-badge--available{background:#34d3991f;color:var(--folio-success)}.book-form-page__status-badge--issued{background:var(--folio-error-bg);color:var(--folio-error)}.book-form-page__header-btn{padding:.5rem .75rem;font-size:var(--folio-font-md)}.book-form-page__header-btn--main{padding:.5rem 1rem}.book-form-page__actions-bar .btn{padding:.5rem 1rem;font-size:var(--folio-font-md)}.book-form-page__fields{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 1.5rem;min-width:0}@media (max-width: 900px){.book-form-page__fields{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.book-form-page__fields{grid-template-columns:1fr}}.book-form-page__field{display:flex;flex-direction:column;gap:.25rem}.book-form-page__field.full-width{grid-column:1 / -1}.book-form-page__field label{font-size:var(--folio-font-sm);color:var(--folio-text-muted);font-weight:500}.book-form-page__field input,.book-form-page__field textarea{padding:.5rem .75rem;border:1px solid var(--folio-border);border-radius:var(--folio-radius);font-size:var(--folio-font-md);background:var(--folio-bg-subtle);color:var(--folio-text)}.book-form-page__field input:focus,.book-form-page__field textarea:focus{outline:none;border-color:var(--folio-primary);box-shadow:var(--folio-focus-ring)}.book-form-page__field textarea{resize:vertical;min-height:100px}.book-form-page__secondary-actions{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--folio-border);display:flex;gap:.5rem;flex-wrap:wrap}.book-form-page__skeleton{display:grid;grid-template-columns:200px 1fr;gap:2rem;align-items:start}@media (max-width: 768px){.book-form-page__skeleton{grid-template-columns:1fr}}.book-form-page__skeleton-block{background:var(--folio-border);border-radius:var(--folio-radius);animation:folio-skeleton-pulse 1.2s ease-in-out infinite}.book-form-page__skeleton-cover{width:200px;aspect-ratio:2/3;border-radius:var(--folio-radius)}.book-form-page__skeleton-line{height:1rem;margin-bottom:.75rem}.book-form-page__skeleton-line--short{width:40%}.book-form-page__skeleton-line--medium{width:70%}.book-form-page__skeleton-line--long{width:100%}@keyframes folio-skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes folio-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes folio-spinner-rotate{to{transform:rotate(360deg)}}.breadcrumbs{margin-bottom:.25rem}.breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;list-style:none;margin:0;padding:0;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.breadcrumbs__item{display:flex;align-items:center;gap:.5rem}.breadcrumbs__sep{color:var(--folio-text-muted);opacity:.7}.breadcrumbs__link{color:var(--folio-primary);text-decoration:none}.breadcrumbs__link:hover{color:var(--folio-primary-hover-fg);text-decoration:underline}.breadcrumbs__current{color:var(--folio-text);font-weight:500}@media (max-width: 600px){.breadcrumbs{display:none!important}}.page-header{flex-shrink:0;padding:.75rem 1.25rem;border-bottom:1px solid var(--folio-border);background:var(--folio-bg)}@media (min-width: 601px){.settings-page .page-header{padding-top:22px}}.page-header__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.page-header__main{min-width:0;flex:1}.page-header__title{margin:0;font-size:1.25rem;font-weight:600;color:var(--folio-text);line-height:1.3}.page-header__subtitle{margin:.25rem 0 0;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.page-header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.spinner{color:var(--folio-primary)}.spinner svg{display:block}.empty-state{text-align:center;padding:3rem 1.5rem;max-width:360px;margin:0 auto}.empty-state__icon{margin-bottom:1rem;display:flex;justify-content:center}.empty-state__title{margin:0 0 .5rem;font-size:var(--folio-font-lg);font-weight:600;color:var(--folio-text)}.empty-state__description{margin:0 0 1.25rem;font-size:var(--folio-font-md);color:var(--folio-text-muted);line-height:1.5}.empty-state__action{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem}.settings-page{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--folio-bg);--page-inset-x: 20px}.settings-page .page-header{padding-left:var(--page-inset-x, 20px);padding-right:var(--page-inset-x, 20px)}@media (max-width: 600px){.settings-page .page-header{padding-top:29px}}.settings-page__body{flex:1;overflow:auto;padding:1.25rem var(--page-inset-x, 20px)}@media (max-width: 900px){.settings-page{--page-inset-x: 12px}}@media (max-width: 600px){.settings-page{--page-inset-x: 10px}}.section-heading{font-size:var(--folio-font-base);font-weight:600;margin-bottom:.5rem;color:var(--folio-text)}.settings-library__section{margin-bottom:1.25rem}.settings-library__section:last-child{margin-bottom:0}.settings-library__section--danger{border-color:var(--folio-error);background:var(--folio-error-bg, rgba(239, 68, 68, .06))}.settings-library__subheading{font-size:var(--folio-font-sm);font-weight:600;margin:0 0 .5rem;color:var(--folio-text)}.settings-library__input{padding:.5rem .75rem;border:1px solid var(--folio-border);border-radius:var(--folio-radius);font-size:var(--folio-font-md);background:var(--folio-bg);color:var(--folio-text)}.settings-library__input:focus{outline:none;border-color:var(--folio-primary);box-shadow:0 0 0 2px #753be433}.settings-library__checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--folio-font-md);color:var(--folio-text)}.settings-library__create-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.settings-library__create-form .btn{display:inline-flex;align-items:center}.settings-library__list-wrap{border:1px solid var(--folio-border);border-radius:var(--folio-radius);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;background:var(--folio-bg)}.settings-library__list-link{color:var(--folio-text);text-decoration:none;font-weight:500;font-size:var(--folio-font-md)}.settings-library__list-link:hover{color:var(--folio-primary)}.settings-library__toast{position:fixed;bottom:24px;right:24px;padding:.75rem 1.25rem;background:var(--folio-sidebar-bg);color:var(--folio-sidebar-text);border-radius:var(--folio-radius);font-size:var(--folio-font-md);box-shadow:var(--folio-shadow-pop);z-index:9999;animation:folio-toast-in .2s ease-out}.settings-profile__section{margin-bottom:1.25rem}.settings-profile__section:last-child{margin-bottom:0}.reading-room{display:flex;flex-direction:column;gap:1.25rem;padding-bottom:2rem}.reading-room__loading{display:flex;justify-content:center;padding:3rem}.reading-room__error{border-color:var(--folio-error)}.reading-room__empty{text-align:center;padding:2rem;color:var(--folio-text-muted)}.reading-room__streak{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;padding:1rem 1.25rem;background:var(--folio-bg-subtle);border-radius:var(--folio-radius);border:1px solid var(--folio-border)}.reading-room__streak-item{font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.reading-room__streak-item strong{color:var(--folio-text);margin-right:.25rem}.reading-room__grid{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}@media (max-width: 900px){.reading-room__grid{grid-template-columns:1fr}}.reading-room__main{display:flex;flex-direction:column;gap:1.25rem}.reading-room__card{padding:0;overflow:hidden}.reading-room__card-body{display:grid;grid-template-columns:100px 1fr;gap:1.25rem;padding:1.25rem}@media (min-width: 600px){.reading-room__card-body{grid-template-columns:120px 1fr}}.reading-room__card-cover{display:block;aspect-ratio:2/3;border-radius:var(--folio-radius);overflow:hidden;background:var(--folio-bg-subtle)}.reading-room__card-content{min-width:0;display:flex;flex-direction:column;gap:.5rem}.reading-room__card-title{margin:0;font-size:var(--folio-font-lg);font-weight:600;line-height:1.3}.reading-room__card-title a{color:var(--folio-text);text-decoration:none}.reading-room__card-title a:hover{color:var(--folio-primary)}.reading-room__card-authors{margin:0;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.reading-room__card-progress{display:flex;flex-direction:column;gap:.25rem}.reading-room__progress-bar{height:6px;background:var(--folio-bg-subtle);border-radius:3px;overflow:hidden}.reading-room__progress-fill{height:100%;background:var(--folio-primary);border-radius:3px;transition:width .2s ease}.reading-room__progress-text{font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.reading-room__card-meta{margin:0;font-size:var(--folio-font-xs);color:var(--folio-text-muted)}.reading-room__card-cta{align-self:flex-start;margin-top:.25rem}.reading-room__quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--folio-border)}.reading-room__note-inline{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;width:100%}.reading-room__note-input{flex:1;min-width:140px;padding:.35rem .5rem;border-radius:var(--folio-radius);border:1px solid var(--folio-border);background:var(--folio-bg-subtle);color:var(--folio-text);font-size:var(--folio-font-sm)}.reading-room__timer-trigger{position:relative}.reading-room__timer-options{position:absolute;left:0;top:100%;margin-top:.25rem;display:flex;gap:.25rem;padding:.25rem;background:var(--folio-bg);border:1px solid var(--folio-border);border-radius:var(--folio-radius);box-shadow:var(--folio-shadow-pop);z-index:10}.reading-room__card-stats{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:var(--folio-font-xs);color:var(--folio-text-muted)}.reading-room__aside{position:sticky;top:1rem}.reading-room__activity{padding:1.25rem}.reading-room__activity-title{margin:0 0 1rem;font-size:var(--folio-font-base);font-weight:600}.reading-room__activity-subtitle{margin:1rem 0 .5rem;font-size:var(--folio-font-sm);font-weight:600;color:var(--folio-text-muted)}.reading-room__activity-empty{margin:0;font-size:var(--folio-font-sm);color:var(--folio-text-muted)}.reading-room__activity-list,.reading-room__activity-notes{list-style:none;padding:0;margin:0}.reading-room__activity-list li,.reading-room__activity-notes li{padding:.5rem 0;border-bottom:1px solid var(--folio-border);display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline;font-size:var(--folio-font-sm)}.reading-room__activity-list li:last-child,.reading-room__activity-notes li:last-child{border-bottom:none}.reading-room__activity-date{color:var(--folio-text-muted);flex-shrink:0}.reading-room__activity-list a,.reading-room__activity-notes a{color:var(--folio-text);text-decoration:none;font-weight:500}.reading-room__activity-list a:hover,.reading-room__activity-notes a:hover{color:var(--folio-primary)}.reading-room__activity-notes .reading-room__quote{font-style:italic;margin:0 0 .25rem}.reading-room__timer-bar{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--folio-bg);border:1px solid var(--folio-border);border-radius:var(--folio-radius);box-shadow:var(--folio-shadow-pop);z-index:100}.reading-room__timer-clock{position:relative;width:56px;height:56px;flex-shrink:0}.reading-room__timer-svg{width:100%;height:100%;transform:rotate(-90deg)}.reading-room__timer-bg{fill:none;stroke:var(--folio-border)}.reading-room__timer-fill{fill:none;stroke:var(--folio-primary);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.reading-room__timer-mins{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:700;color:var(--folio-text)}.reading-room__timer-label{font-size:var(--folio-font-sm);color:var(--folio-text-muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
