:root{color-scheme:light;--font-sans: "Inter", "Segoe UI", Arial, sans-serif;--bg-page: #f7f7f5;--bg-surface: #ffffff;--bg-subtle: #f1f2f3;--text-primary: #242424;--text-secondary: #667085;--text-muted: #6b7280;--border-default: #dadde1;--border-hover: #c4c8cd;--border-focus: #8a949e;--accent: #596450;--accent-hover: #4c5645;--accent-foreground: #ffffff;--brand: var(--accent);--brand-strong: var(--accent-hover);--bg: var(--bg-page);--surface: var(--bg-surface);--border: var(--border-default);--text: var(--text-primary);--muted: var(--text-secondary);--shadow: 0 8px 24px rgba(36, 36, 36, .08);--error: #b42318}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans)}button,input{font:inherit}button{border:0;border-radius:8px;padding:.8rem 1rem;background:var(--brand);color:#fff;cursor:pointer}button:hover:not(:disabled){background:var(--brand-strong)}button:disabled{cursor:not-allowed;opacity:.65}input{width:100%;border:1px solid var(--border);border-radius:8px;padding:.78rem .9rem}.screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,420px);border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:28px;box-shadow:var(--shadow)}.eyebrow{margin:0 0 8px;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted)}.error{color:var(--error)}.form{display:grid;gap:16px;margin-top:24px}.form label{display:grid;gap:8px;font-weight:700}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:28px;background:#111827;color:#fff}.sidebar .muted{color:#cbd5e1}.sidebar-link{color:#bfdbfe;font-weight:700;text-decoration:none}.secondary-button{background:transparent;border:1px solid rgba(255,255,255,.35)}.content{padding:36px}.breadcrumbs{margin-bottom:28px;font-size:.9rem}.breadcrumbs a{color:var(--brand-strong);font-weight:700;text-decoration:none}.page-header{max-width:760px;margin-bottom:28px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.panel{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:22px}.metric{margin:0 0 8px;color:var(--accent);font-size:2.5rem;font-weight:800}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto}.content{padding:24px}.dashboard-grid{grid-template-columns:1fr}}.sidebar{position:relative}.sidebar-toggle{align-self:flex-end;width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:1.4rem;line-height:1}.sidebar-toggle:hover{background:#ffffff1f}.app-shell.sidebar-collapsed{grid-template-columns:84px 1fr}.sidebar.collapsed{padding:18px 14px;align-items:center}.sidebar.collapsed>div{display:none}.sidebar.collapsed .sidebar-toggle{align-self:center}.sidebar.collapsed .secondary-button{width:48px;overflow:hidden;white-space:nowrap;padding-left:0;padding-right:0;font-size:0}.sidebar.collapsed .secondary-button:after{content:"↪";font-size:1.1rem}.sidebar-toggle{position:absolute;top:28px;right:28px}.sidebar>div{padding-right:42px}.sidebar.collapsed .sidebar-toggle{position:static}.sidebar.collapsed>div{padding-right:0}.sidebar-nav{display:grid;gap:10px;margin-top:24px}.sidebar-link{display:flex;align-items:center;gap:12px;min-height:42px;padding:9px 10px;border-radius:8px}.sidebar-link:hover{background:#ffffff1a}.menu-icon{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.secondary-button{display:flex;align-items:center;justify-content:center;gap:10px}.secondary-button .menu-icon{width:18px;height:18px}.sidebar.collapsed .sidebar-link{justify-content:center;width:48px;padding-left:0;padding-right:0}.sidebar.collapsed .sidebar-link span,.sidebar.collapsed .secondary-button span{display:none}.sidebar.collapsed .secondary-button .menu-icon{width:20px;height:20px}.sidebar.collapsed>div{display:block}.sidebar.collapsed>div>.eyebrow,.sidebar.collapsed>div>.muted{display:none}.sidebar.collapsed .sidebar-nav{margin-top:0}.calendar-page{max-width:1280px}.calendar-page .page-header{margin-bottom:18px}.calendar-frame{min-height:calc(100vh - 150px);overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}#campus-calendar-native button{min-height:40px;border-radius:7px!important;padding:0 14px!important;border:1px solid var(--border-default)!important;background:var(--bg-surface)!important;color:var(--text-primary)!important;box-shadow:none!important;font-weight:600;transform:none!important;filter:none!important}#campus-calendar-native button:hover:not(:disabled){background:var(--bg-subtle)!important;color:var(--text-primary)!important}#campus-calendar-native .calendar-toolbar{gap:8px;margin-bottom:16px}#campus-calendar-native .calendar-toolbar h2{color:var(--text-primary);font-size:1.15rem;font-weight:650}#campus-calendar-native .month-grid,#campus-calendar-native .month-weekdays{background:var(--bg-surface)!important;border-color:var(--border-default)!important}#campus-calendar-native .month-cell{background:var(--bg-surface)!important;color:var(--text-primary)!important;border-color:var(--border-default)!important}#campus-calendar-native .month-cell:hover{background:var(--bg-subtle)!important}#campus-calendar-native .calendar-modal{background:#24242452!important}#campus-calendar-native .calendar-modal-card{width:min(100%,720px);max-width:720px;padding:24px!important;border:1px solid var(--border-default)!important;border-radius:11px!important;background:var(--bg-surface)!important;box-shadow:0 12px 36px #24242424!important}#campus-calendar-native .calendar-modal-card h3{margin:0 0 20px;color:var(--text-primary);font-size:1.25rem}#campus-calendar-native .calendar-modal input,#campus-calendar-native .calendar-modal select,#campus-calendar-native .calendar-modal textarea{min-height:42px;width:100%;margin-top:0;padding:9px 11px;border:1px solid var(--border-default)!important;border-radius:7px!important;background:var(--bg-surface)!important;color:var(--text-primary)!important;font:inherit;box-shadow:none!important}#campus-calendar-native .calendar-modal input:focus,#campus-calendar-native .calendar-modal select:focus,#campus-calendar-native .calendar-modal textarea:focus{outline:none;border-color:var(--border-focus)!important;box-shadow:0 0 0 2px #8a949e2e!important}#campus-calendar-native .calendar-field{display:grid;gap:7px;color:var(--text-primary);font-size:.86rem;font-weight:600}#campus-calendar-native .date-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;gap:12px;align-items:end}#campus-calendar-native .date-row .calendar-field{grid-template-columns:minmax(0,1fr) 96px}#campus-calendar-native .date-row .calendar-field>span{grid-column:1 / -1}#campus-calendar-native .date-row .calendar-field input:first-of-type{grid-column:1}#campus-calendar-native .date-row .calendar-field input:last-of-type{grid-column:2}#campus-calendar-native .event-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,1fr);gap:16px;align-items:end;margin:16px 0}#campus-calendar-native .event-options>label:first-child{display:flex;align-items:center;gap:8px}#campus-calendar-native .form-row{border-top:1px solid var(--border-default);padding:14px 0}#campus-calendar-native .form-row.inline{display:flex;align-items:center;gap:12px}#campus-calendar-native .form-link,#campus-calendar-native .color-button{min-height:36px;padding:0 8px!important;border:0!important;background:transparent!important;color:var(--text-secondary)!important;font-weight:600}#campus-calendar-native .form-link:hover,#campus-calendar-native .color-button:hover{background:var(--bg-subtle)!important;color:var(--text-primary)!important}#campus-calendar-native .form-row .form-link{display:flex;width:100%;align-items:center;gap:8px;justify-content:flex-start}#campus-calendar-native .color-button i{display:inline-block;width:11px;height:11px;margin-right:4px;border-radius:50%;background:var(--text-secondary)!important}#campus-calendar-native .availability{display:grid;gap:7px;margin:16px 0;color:var(--text-primary);font-size:.86rem;font-weight:600}#campus-calendar-native .description-field{margin-top:16px}#campus-calendar-native .description-field textarea{min-height:112px;resize:vertical}#campus-calendar-native .modal-actions{display:flex;align-items:center;gap:8px;margin-top:20px}#campus-calendar-native .modal-actions .delete-event{margin-right:auto;background:transparent!important;border-color:var(--error)!important;color:var(--error)!important}@media(max-width:700px){#campus-calendar-native{padding:16px}#campus-calendar-native .calendar-modal-card{padding:20px!important}#campus-calendar-native .date-row,#campus-calendar-native .event-options{grid-template-columns:1fr!important}#campus-calendar-native .date-row>span{display:none}#campus-calendar-native .date-row .calendar-field{grid-template-columns:1fr 88px}}#campus-calendar-native .title-field{margin-bottom:16px}#campus-calendar-native .color-field{display:flex;align-items:center;gap:8px}#campus-calendar-native .color-field>span{margin-right:4px}:root{--bg-page: #f6f6f4;--bg-surface: #ffffff;--bg-subtle: #f0f0ed;--text-primary: #252525;--text-secondary: #62645f;--text-muted: #8a8d87;--border-default: #dadbd6;--border-subtle: #e7e7e3;--border-hover: #c4c7c1;--border-focus: #777c76;--hover: #ecede9;--accent: #5c625b;--accent-hover: #4f554e;--accent-foreground: #ffffff;--success: #667b68;--warning: #9a8257;--danger: #9a5d5d;--radius-sm: 4px;--radius-md: 7px;--radius-lg: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--brand: var(--accent);--brand-strong: var(--accent-hover);--bg: var(--bg-page);--surface: var(--bg-surface);--border: var(--border-default);--text: var(--text-primary);--muted: var(--text-secondary);--shadow: 0 8px 24px rgba(37,37,37,.08)}body{background:var(--bg-page);color:var(--text-primary)}button,.button-link{min-height:40px;border-radius:var(--radius-md);padding:0 var(--space-4);font-weight:600;box-shadow:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 2px #777c7633}input,select,textarea{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font:inherit}input:hover,select:hover,textarea:hover{border-color:var(--border-hover)}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px #777c7629;outline:none}.sidebar{background:#20252a}.sidebar .muted{color:#aeb3b7}.sidebar-link{color:#f4f4f2;border-left:2px solid transparent}.sidebar-link:hover{background:#ffffff14;border-left-color:var(--accent)}.secondary-button{color:#f4f4f2}.panel,.login-card,.calendar-frame{border-color:var(--border-subtle);box-shadow:0 2px 8px #2525250a}.breadcrumbs{color:var(--text-secondary)}.breadcrumbs span{margin:0 4px}.calendar-frame{border-radius:var(--radius-lg)}#campus-calendar-native{color:var(--text-primary);font-family:var(--font-sans)}#campus-calendar-native [hidden]{display:none!important}#campus-calendar-native button{min-height:40px;border:1px solid var(--border-default)!important;border-radius:var(--radius-md)!important;background:var(--bg-surface)!important;color:var(--text-primary)!important;box-shadow:none!important;font-weight:600;transform:none!important}#campus-calendar-native button:hover:not(:disabled){background:var(--hover)!important;color:var(--text-primary)!important}#campus-calendar-native .calendar-toolbar{gap:var(--space-2);margin-bottom:var(--space-4)}#campus-calendar-native .calendar-toolbar h2{color:var(--text-primary);font-size:1.1rem;font-weight:600}#campus-calendar-native .calendar-toolbar button.active,#campus-calendar-native .calendar-toolbar button[data-view].active,#campus-calendar-native .calendar-toolbar .new-event{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-foreground)!important}#campus-calendar-native .month-grid,#campus-calendar-native .month-weekdays{background:var(--bg-surface)!important;border-color:var(--border-subtle)!important}#campus-calendar-native .month-cell{background:var(--bg-surface)!important;color:var(--text-primary)!important;border-color:var(--border-subtle)!important}#campus-calendar-native .month-cell:hover{background:var(--hover)!important}#campus-calendar-native .month-cell.today b{background:var(--accent)!important;color:var(--accent-foreground)!important}#campus-calendar-native .calendar-modal{background:#25252552!important}#campus-calendar-native .calendar-modal-card{width:min(100%,720px);max-width:720px;max-height:calc(100vh - 32px);overflow:hidden;padding:var(--space-6)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-lg)!important;background:var(--bg-surface)!important;box-shadow:0 12px 36px #25252524!important}#campus-calendar-native .calendar-modal-card h3{margin:0 0 var(--space-5);color:var(--text-primary);font-size:1.2rem;font-weight:600}#campus-calendar-native .calendar-modal input,#campus-calendar-native .calendar-modal select,#campus-calendar-native .calendar-modal textarea{min-height:42px;width:100%;margin-top:0;padding:9px 11px;border:1px solid var(--border-default)!important;border-radius:var(--radius-md)!important;background:var(--bg-surface)!important;color:var(--text-primary)!important;box-shadow:none!important}#campus-calendar-native .calendar-modal input:focus,#campus-calendar-native .calendar-modal select:focus,#campus-calendar-native .calendar-modal textarea:focus{border-color:var(--border-focus)!important;box-shadow:0 0 0 2px #777c7629!important}#campus-calendar-native .calendar-field{display:grid;gap:var(--space-2);color:var(--text-primary);font-size:.84rem;font-weight:600}#campus-calendar-native .title-field{margin-bottom:var(--space-4)}#campus-calendar-native .date-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;gap:var(--space-3);align-items:end}#campus-calendar-native .date-row .calendar-field{grid-template-columns:minmax(0,1fr) 92px}#campus-calendar-native .date-row .calendar-field>span,#campus-calendar-native .event-options .calendar-field>span,#campus-calendar-native .availability>span{grid-column:1 / -1}#campus-calendar-native .event-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,1fr);gap:var(--space-4);align-items:end;margin:var(--space-4) 0}#campus-calendar-native .event-options>label:first-child{display:flex;align-items:center;gap:var(--space-2)}#campus-calendar-native .event-options>label:first-child input{width:auto;min-height:auto}#campus-calendar-native .form-row{border-top:1px solid var(--border-subtle);padding:var(--space-3) 0}#campus-calendar-native .form-row.inline{display:flex;align-items:center;gap:var(--space-3)}#campus-calendar-native .form-link,#campus-calendar-native .color-button{min-height:36px;padding:0 var(--space-2)!important;border:0!important;background:transparent!important;color:var(--text-secondary)!important;font-weight:600}#campus-calendar-native .form-link:hover,#campus-calendar-native .color-button:hover{background:var(--hover)!important;color:var(--text-primary)!important}#campus-calendar-native .form-row .form-link{display:flex;width:100%;align-items:center;gap:var(--space-2);justify-content:flex-start}#campus-calendar-native .action-plus{margin-left:auto;font-size:1.1rem}#campus-calendar-native .calendar-inline-icon{display:inline-flex;width:18px;height:18px}#campus-calendar-native .calendar-inline-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}#campus-calendar-native .color-field{display:flex;align-items:center;gap:var(--space-2)}#campus-calendar-native .color-field .color-button{margin-left:auto}#campus-calendar-native .color-button i{display:inline-block;width:11px;height:11px;margin-right:var(--space-1);border-radius:50%;background:var(--text-secondary)!important}#campus-calendar-native .availability{display:grid;gap:var(--space-2);margin:var(--space-4) 0;color:var(--text-primary);font-size:.84rem;font-weight:600}#campus-calendar-native .description-field{margin-top:var(--space-4)}#campus-calendar-native .description-field textarea{min-height:96px;resize:vertical}#campus-calendar-native .modal-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4)}#campus-calendar-native .modal-actions .cancel{background:var(--bg-surface)!important;color:var(--text-primary)!important}#campus-calendar-native .modal-actions [type=submit]{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-foreground)!important}#campus-calendar-native .modal-actions .delete-event{margin-right:auto;background:transparent!important;border-color:var(--danger)!important;color:var(--danger)!important}@media(max-width:700px){#campus-calendar-native .calendar-modal-card{max-height:calc(100vh - 20px);overflow-y:auto;padding:var(--space-5)!important}#campus-calendar-native .date-row,#campus-calendar-native .event-options{grid-template-columns:1fr!important}#campus-calendar-native .date-row>span{display:none}}html,body,#root{min-height:100%}body{overflow:hidden}.app-shell,.sidebar{height:100dvh;min-height:0;overflow:hidden}.content{min-width:0;min-height:0;height:100dvh;overflow:hidden;padding:var(--space-4);display:flex;flex-direction:column}.content>.breadcrumbs{flex:0 0 auto;margin-bottom:var(--space-3)}.calendar-page{width:100%;max-width:none;min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.calendar-frame{min-height:0;flex:1;overflow:hidden;padding:var(--space-3)}#campus-calendar-native{height:100%;min-height:0;display:flex;flex-direction:column}#campus-calendar-native .calendar-toolbar{flex:0 0 auto}#campus-calendar-native .month-weekdays{flex:0 0 auto;min-height:32px;padding:6px 0!important}#campus-calendar-native .month-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(var(--calendar-week-count),minmax(0,1fr));overflow:hidden}#campus-calendar-native .month-week{min-height:0!important;overflow:hidden}#campus-calendar-native .month-cells{min-height:0!important;height:100%}#campus-calendar-native .month-cell{min-height:0!important;height:100%;padding:6px!important;overflow:hidden}#campus-calendar-native .cell-events{min-height:0;max-height:calc(100% - 30px);overflow:hidden;padding-top:34px}#campus-calendar-native .week-bars{overflow:hidden;padding-top:34px}#campus-calendar-native .single-event,#campus-calendar-native .multi-event{height:20px;line-height:20px;font-size:13px}#campus-calendar-native .month-cell b{top:5px}@media(max-width:760px){body{overflow:auto}.app-shell{height:auto;min-height:100dvh;overflow:visible}.sidebar,.content{height:auto;min-height:auto;overflow:visible}.calendar-page{min-height:680px}.calendar-frame{overflow:auto}#campus-calendar-native .month-grid{min-width:680px}}.content-page{min-width:0;min-height:0;flex:1;overflow:auto}.content-page .page-header{max-width:none;margin-bottom:var(--space-6)}.content-layout{display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);gap:var(--space-6);align-items:start}.content-tree,.book-structure{padding:var(--space-5)}.content-tree{position:sticky;top:0}.content-tree h2,.book-structure h2{margin-bottom:0;font-size:1.25rem;font-weight:600}.tree-list,.ordered-content,.nested-pages{margin:0;padding:0;list-style:none}.tree-list{display:grid;gap:2px}.tree-item,.book-row,.nested-pages li{display:flex;align-items:center;gap:var(--space-2);min-height:40px;border-bottom:1px solid var(--border-subtle)}.tree-item.selected,.book-row.selected{background:var(--bg-subtle)}.tree-link{flex:1;min-height:38px;padding:8px;border:0;background:transparent;color:var(--text-primary);text-align:left}.tree-link:hover{background:var(--hover)}.icon-action{min-width:30px;min-height:30px;padding:0;border:0;background:transparent;color:var(--text-muted)}.icon-action:hover{background:var(--hover);color:var(--danger)}.compact-form,.content-form{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.compact-form label,.content-form label{display:grid;gap:var(--space-2);color:var(--text-secondary);font-size:.86rem;font-weight:600}.compact-form button,.inline-form button,.content-form button{justify-self:start}.inline-form{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.inline-form input{min-width:0}.book-list,.book-row .tree-link{display:grid;gap:2px}.book-row small{color:var(--text-muted);font-size:.78rem}.book-structure{margin-top:var(--space-6)}.ordered-content{counter-reset:content-order;display:grid;gap:var(--space-2)}.content-node{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle)}.content-node-heading{display:flex;align-items:center;gap:var(--space-3)}.content-node-heading>span{min-width:68px;color:var(--text-muted);font-size:.78rem;font-weight:600;text-transform:uppercase}.content-node-heading strong{font-weight:600}.content-node-heading .icon-action{margin-left:auto}.nested-pages{display:grid;gap:2px;margin:var(--space-2) 0 0 80px}.nested-pages li{justify-content:space-between;padding-left:var(--space-3);border-left:1px solid var(--border-default)}.nested-pages a{flex:1;padding:8px 0;color:var(--text-primary);text-decoration:none}.nested-pages a:hover{color:var(--accent)}@media(max-width:860px){.content-layout{grid-template-columns:1fr}.content-tree{position:static}}@media(max-width:600px){.inline-form{flex-direction:column}.nested-pages{margin-left:var(--space-5)}}.content-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);max-width:none}.content-page-heading h1{margin-bottom:0}.page-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.secondary-action{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default)}.secondary-action:hover:not(:disabled){background:var(--hover)}.shelf-gallery,.book-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.shelf-card,.book-card{position:relative;min-height:132px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:0 2px 8px #2525250a;overflow:hidden}.shelf-card:hover,.book-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px #25252512}.shelf-card-main,.book-card-main{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;height:100%;min-height:132px;padding:var(--space-5);background:transparent;color:var(--text-primary);text-align:left}.shelf-card-main:hover,.book-card-main:hover{background:var(--hover)}.shelf-card-main>span:last-child,.book-card-main>span:last-child{display:grid;gap:var(--space-2)}.shelf-card-main strong,.book-card-main strong{font-size:1rem;font-weight:600}.shelf-card-main small,.book-card-main small{color:var(--text-muted);font-size:.82rem}.shelf-card-icon,.book-card-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--accent);font-size:1.35rem}.shelf-card-delete{position:absolute;right:var(--space-2);bottom:var(--space-2)}.shelf-interior>.section-heading{margin-bottom:var(--space-5)}.book-card{min-height:112px}.book-card-main{min-height:112px;padding:var(--space-4)}.book-card-icon{width:34px;height:34px;flex-basis:34px;font-size:1.15rem}.book-card>.icon-action{position:absolute;right:var(--space-2);bottom:var(--space-2)}.ui-modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-4);background:#25252547}.ui-modal{width:min(100%,520px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:0 12px 36px #25252524}.ui-modal>header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.ui-modal h2{margin:0;font-size:1.15rem;font-weight:600}.ui-modal .icon-action{min-width:32px}.modal-form{display:grid;gap:var(--space-3);padding:var(--space-6)}.modal-form label{display:grid;gap:var(--space-2);color:var(--text-secondary);font-size:.86rem;font-weight:600}.modal-form footer{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}@media(max-width:700px){.content-page-heading{flex-direction:column}.page-actions{width:100%}.page-actions button{flex:1}.shelf-gallery,.book-gallery{grid-template-columns:1fr}}.drive-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);max-width:none}.drive-heading h1{margin-bottom:var(--space-2)}.drive-connect{max-width:620px}.drive-connect h2{margin-bottom:var(--space-2)}.button-link{display:inline-flex;align-items:center;text-decoration:none;background:var(--accent);color:var(--accent-foreground);font-weight:600;min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-md)}.drive-browser{padding:0;overflow:hidden}.drive-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.drive-toolbar strong{font-weight:600}.drive-list{display:grid}.drive-row{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle)}.drive-row:last-child{border-bottom:0}.drive-row:hover{background:var(--hover)}.drive-file-icon{display:grid;place-items:center;width:28px;height:28px;color:var(--accent);font-size:1.2rem}.drive-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-weight:500;text-align:left;text-decoration:none}.drive-row button.drive-file-name{border:0;background:transparent;padding:0;min-height:32px}.drive-row a.drive-file-name:hover,.drive-row button.drive-file-name:hover{color:var(--accent);background:transparent}.drive-file-type{color:var(--text-muted);font-size:.8rem}.drive-download{color:var(--text-secondary);font-size:.82rem;text-decoration:none}.drive-download:hover{color:var(--accent)}@media(max-width:700px){.drive-heading{flex-direction:column}.drive-row{padding:var(--space-3)}.drive-file-type{display:none}}#campus-calendar-native>[data-cal-app]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}#campus-calendar-native>[data-cal-app] .month-grid{flex:1 1 auto;min-height:0}#campus-calendar-native>[data-cal-app] .month-weekdays{flex:0 0 auto}#campus-calendar-native>[data-cal-app] .month-week{min-height:0!important}.links-page{max-width:none}.links-list{display:grid;gap:16px}.link-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.link-section-header,.link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px}.link-section-header{background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle)}.link-section-title{display:flex;align-items:center;gap:10px}.link-section-title h2{margin:0;font-size:17px;font-weight:600}.link-icon{flex:0 0 auto;color:var(--text-secondary)}.link-row{position:relative;flex-wrap:wrap;border-bottom:1px solid var(--border-subtle)}.link-row:last-child{border-bottom:0}.link-row>a{display:inline-flex;align-items:center;gap:9px;color:var(--text-primary);font-weight:500;text-decoration:none}.link-row>a:hover{text-decoration:underline}.link-actions{display:flex;align-items:center;gap:6px}.link-empty{margin:0;padding:16px 18px}.credentials-panel{width:100%;display:flex;gap:16px;flex-wrap:wrap;padding:10px 12px;margin-top:2px;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:13px}.credentials-panel span{display:inline-flex;align-items:center;gap:6px}.credentials-panel code{font-family:inherit;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:4px;padding:3px 7px}.danger-icon{color:var(--danger)}.links-modal{width:min(560px,calc(100vw - 32px))}.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:6px;color:var(--text-secondary);font-size:13px;font-weight:600}.form-stack input,.form-stack select,.select-like{box-sizing:border-box;width:100%;height:42px;padding:0 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font:inherit}.select-like{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}.icon-picker{display:grid;gap:10px;padding:12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface)}.icon-picker>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto}.icon-choice{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer}.icon-choice:hover{background:var(--hover);border-color:var(--border-subtle)}.icon-choice small{font-size:11px;overflow:hidden;text-overflow:ellipsis}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.empty-state{padding:30px;text-align:center;color:var(--text-muted);border:1px dashed var(--border-default);border-radius:var(--radius-lg)}.credentials-modal{display:grid;gap:14px}.credentials-modal>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-subtle)}.credentials-modal>div>span{display:flex;align-items:center;gap:8px}.credentials-modal code{font-family:inherit;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:4px;padding:5px 8px}.shelf-compact-heading{justify-content:flex-end;margin:0 0 8px!important;min-height:0}.shelf-heading-actions{display:flex;gap:4px}.shelf-heading-actions .icon-action{display:grid;place-items:center;width:30px;height:30px;padding:0}.shelf-heading-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.content-page-heading{margin-bottom:12px!important}.content-page .breadcrumbs{margin-bottom:10px}.edit-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--text-secondary);font-size:13px;cursor:pointer}.edit-toggle input{position:absolute;opacity:0;pointer-events:none}.edit-toggle-track{position:relative;width:34px;height:20px;border:1px solid var(--border-default);border-radius:999px;background:var(--bg-subtle);transition:.15s}.edit-toggle-track span{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:.15s}.edit-toggle input:checked+.edit-toggle-track{background:#78947d;border-color:#687f6d;box-shadow:inset 0 0 0 1px #ffffff24}.edit-toggle input:checked+.edit-toggle-track span{left:17px;background:var(--accent-foreground)}.edit-toggle input:focus-visible+.edit-toggle-track{box-shadow:0 0 0 2px var(--border-focus)}.shelf-card{border-top-width:6px!important}.shelf-card-icon{background-position:center;background-size:cover;background-repeat:no-repeat}.modal-form input[type=color]{width:64px;height:40px;padding:3px;cursor:pointer}.modal-form input[type=file]{padding:8px;height:auto}.modal-form label{display:grid;gap:6px}.date-summary{width:100%;display:flex!important;align-items:center;gap:12px;margin:0 0 12px;padding:12px 14px!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-md)!important;background:var(--bg-subtle)!important;color:var(--text-primary)!important;text-align:left;font-weight:500;box-shadow:none!important}.date-summary:hover{background:var(--hover)!important;transform:none!important}.date-summary svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.date-editor{padding:12px 0 0}.date-editor[hidden]{display:none!important}.all-day-editor{display:flex!important;align-items:center;gap:8px;margin-top:12px!important}.all-day-editor input{width:auto!important;min-height:auto!important}.calendar-modal-card .date-row .calendar-field input{width:100%!important}.calendar-modal-card .date-row .calendar-field{min-width:0}.calendar-modal-card .date-row .calendar-field input[type=time]{width:110px!important}@media(max-width:700px){.calendar-modal-card .date-row .calendar-field{grid-template-columns:minmax(0,1fr) 100px!important}}
