:root{--color-app-bg: #f8fafd;--color-bg: #ffffff;--color-surface: #ffffff;--color-surface-muted: #f5f6f8;--color-surface-hover: #eef0f3;--color-border: #e1e4e8;--color-border-strong: #c9ced6;--color-text: #1c2024;--color-text-muted: #5c6470;--color-text-inverse: #ffffff;--color-search-bg: #e9eef6;--color-nav-active-bg: #c2e7ff;--color-nav-active-text: #001d35;--color-tile-bg: #f0f4f9;--color-brand: #2f5bea;--color-brand-hover: #2449c4;--color-brand-weak: #eef2fe;--color-app-docs: #2f5bea;--color-app-calc: #188038;--color-app-drive: #7c3aed;--color-app-admin: #5f6b7a;--color-file-word: #2f5bea;--color-file-excel: #188038;--color-file-slides: #e8710a;--color-file-pdf: #c4302b;--color-danger: #c4302b;--color-danger-weak: #fdeceb;--color-success: #1f7a4d;--color-warning: #a35f00;--color-focus: #2f5bea;--color-find-match: #ffe39b;--color-find-current: #ff9632;--color-caret-1: #d93025;--color-caret-2: #1a73e8;--color-caret-3: #188038;--color-caret-4: #a142f4;--color-caret-5: #e8710a;--color-caret-6: #007b83;--color-backdrop: rgba(20, 24, 30, .4);--color-shadow: rgba(20, 24, 30, .12);--color-preview-bg: #000000;--color-preview-hover: rgba(255, 255, 255, .12);--color-preview-border: rgba(255, 255, 255, .5);--color-table-border: #a7adb6;--color-comment-mark: #fef7e0;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 22px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 600;--line-height: 1.45;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-round: 999px;--topbar-height: 64px;--sidenav-width: 256px;--control-height: 34px;--shadow-popover: 0 6px 24px var(--color-shadow);--shadow-raised: 0 1px 3px var(--color-shadow), 0 4px 8px var(--color-shadow);--shadow-preview-page: 0 2px 8px rgba(0, 0, 0, .6);--color-folder-image-mountains: linear-gradient(135deg, #3a6ea5, #b8d0e8);--color-folder-image-sea: linear-gradient(135deg, #0f7ea0, #6fd0e8);--color-folder-image-forest: linear-gradient(135deg, #2c7a3f, #9ad18f);--color-folder-image-desert: linear-gradient(135deg, #c98a3d, #f0d2a0);--color-folder-image-arctic: linear-gradient(135deg, #7cc4e0, #e8f6fc);--color-folder-image-city: linear-gradient(135deg, #5c6470, #c9ced6);--color-folder-image-field: linear-gradient(135deg, #8ab83f, #e8e2a0);--color-folder-image-night: linear-gradient(135deg, #232a55, #7c86c9)}@media(max-width:768px){:root{--control-height: 44px}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--color-app-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height)}a{color:var(--color-brand)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--color-app-bg)}.topbar-brand{display:flex;align-items:center;gap:var(--space-2);min-width:calc(var(--sidenav-width) - var(--space-4));color:var(--color-text);text-decoration:none;font-size:var(--font-size-2xl);white-space:nowrap}.topbar-brand-logo{display:block;height:26px}.topbar-brand-symbol{display:none;width:30px;height:30px}.topbar-brand-app{display:inline-flex;gap:var(--space-1);align-items:center;color:var(--color-text-muted)}.topbar .topbar-menu-button{display:none}.topbar-search-area{flex:1;display:flex;justify-content:center;min-width:0}.topbar-search{display:flex;align-items:center;gap:var(--space-2);width:100%;max-width:640px;height:48px;padding:0 var(--space-4);border-radius:var(--radius-round);background:var(--color-search-bg);color:var(--color-text-muted)}.topbar-search{position:relative}.topbar-search:focus-within{background:var(--color-surface);box-shadow:var(--shadow-popover)}.topbar-search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-lg)}.search-suggest-wrapper{position:relative;width:100%;max-width:640px}.search-suggest-list{position:absolute;top:calc(100% + var(--space-2));left:0;right:0;z-index:40;margin:0;padding:var(--space-2);list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-popover)}.search-suggest-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.search-suggest-item.active,.search-suggest-item:hover{background:var(--color-surface-hover)}.search-suggest-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.search-suggest-hint{flex:none;color:var(--color-text-muted);font-size:var(--font-size-sm)}@media(max-width:700px){.search-suggest-list{top:calc(100% + var(--space-1))}}.topbar-search-input:focus{outline:none}.topbar-end{display:flex;align-items:center;gap:var(--space-2)}.shell-body{flex:1;display:flex;min-height:0;padding:0 var(--space-4) var(--space-4) 0}.sidenav{flex:none;width:var(--sidenav-width);display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-app-bg)}.sidenav-primary{margin-bottom:var(--space-3)}.sidenav-footer{margin-top:auto;padding:var(--space-4) var(--space-3) 0}.sidenav-section{margin-top:var(--space-4)}.sidenav-link{display:flex;align-items:center;gap:var(--space-4);height:32px;padding:0 var(--space-4);border-radius:var(--radius-round);color:var(--color-text);text-decoration:none;white-space:nowrap}.sidenav-link:hover{background:var(--color-surface-hover)}.sidenav-link.active{background:var(--color-nav-active-bg);color:var(--color-nav-active-text);font-weight:var(--font-weight-bold)}.sidenav-backdrop{display:none}.shell-main{flex:1;min-width:0;border-radius:var(--radius-xl);background:var(--color-surface);padding:var(--space-5)}.popover-anchor{position:relative}.popover{z-index:20;min-width:220px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-popover)}.popover-floating{position:fixed;overflow-y:auto}.popover-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2)}.popover-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.popover-item:hover{background:var(--color-surface-hover)}.popover-item-icon{width:20px;height:20px;flex:none}.popover-item.active{color:var(--color-brand);font-weight:var(--font-weight-medium)}.app-list{display:flex;flex-direction:column;min-width:200px;max-height:70vh;overflow-y:auto}.app-colour-docs,.item-name .icon.app-colour-docs{color:var(--color-app-docs)}.app-colour-calc,.item-name .icon.app-colour-calc{color:var(--color-app-calc)}.app-colour-drive,.item-name .icon.app-colour-drive{color:var(--color-app-drive)}.app-colour-admin,.item-name .icon.app-colour-admin{color:var(--color-app-admin)}.file-colour-word,.item-name .icon.file-colour-word{color:var(--color-file-word)}.file-colour-excel,.item-name .icon.file-colour-excel{color:var(--color-file-excel)}.file-colour-slides,.item-name .icon.file-colour-slides{color:var(--color-file-slides)}.file-colour-pdf,.item-name .icon.file-colour-pdf{color:var(--color-file-pdf)}.app-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;transition:background-color .12s ease}.app-row+.app-row{border-top:1px solid var(--color-border)}.app-row:hover{background:var(--color-surface-hover)}.app-row.active{background:var(--color-brand-weak);color:var(--color-brand)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-round);background:var(--color-brand);color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);object-fit:cover}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:var(--font-size-sm)}.narrow-only{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer}.btn:hover{background:var(--color-surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-text-inverse)}.btn-primary:hover{border-color:var(--color-brand-hover);background:var(--color-brand-hover)}.btn-danger{border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-weak)}.btn-ghost{border-color:transparent;background:transparent}.btn-text{border-color:transparent;background:transparent;color:var(--color-brand)}.btn-icon{width:var(--control-height);padding:0}.btn[aria-pressed=true]{background:var(--color-nav-active-bg);color:var(--color-nav-active-text)}.drive-file-list{display:flex;flex-direction:column;margin-top:var(--space-2)}.drive-file-row{justify-content:flex-start;width:100%;white-space:normal}.drive-file-back{margin-top:var(--space-1)}.drive-file-empty{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.select{height:var(--control-height);max-width:100%;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}.select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field-label{font-weight:var(--font-weight-medium)}.field-input{height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}.field-input:focus{border-color:var(--color-brand);outline:none}.field-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.field-error{color:var(--color-danger);font-size:var(--font-size-sm)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.checkbox-input{width:18px;height:18px;accent-color:var(--color-brand)}.radio{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.radio-input{width:18px;height:18px;accent-color:var(--color-brand)}.card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.page-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.page-missing{display:flex;flex-direction:column;gap:var(--space-3)}.page-missing h1{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal)}.page-alone{padding:var(--space-5)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.table th{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.table tbody tr:hover{background:var(--color-surface-muted)}.cell-nowrap{white-space:nowrap}.table-sort{display:inline-flex;align-items:center;gap:var(--space-1);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.table-sort-text{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.table-sort:hover .table-sort-text,.table-sort:focus-visible .table-sort-text{color:var(--color-brand);text-decoration:underline}.dialog-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-backdrop)}.dialog{width:100%;max-width:480px;max-height:calc(100vh - 2 * var(--space-4));overflow:auto;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-popover)}.dialog.dialog-wide{max-width:640px}.dialog-submit{display:none}.dialog-title{margin:0;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.dialog-body{padding:var(--space-5)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border)}.shortcuts-tables{display:flex;flex-direction:column;gap:var(--space-5)}.shortcuts-label{margin:0 0 var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-muted)}.btn-fab{height:56px;padding:0 var(--space-5) 0 var(--space-4);border:0;border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-raised)}.btn-fab:hover{background:var(--color-surface-hover)}.view-toggle{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-round);overflow:hidden}.view-toggle-item{display:inline-flex;align-items:center;justify-content:center;width:36px;height:32px;border:0;background:var(--color-surface);color:var(--color-text);cursor:pointer}.view-toggle-item+.view-toggle-item{border-left:1px solid var(--color-border-strong)}.view-toggle-item.active{background:var(--color-nav-active-bg);color:var(--color-nav-active-text)}.segmented{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-round);overflow:hidden}.segmented-item{display:inline-flex;align-items:center;gap:var(--space-1);height:32px;padding:0 var(--space-3);border:0;background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.segmented-item+.segmented-item{border-left:1px solid var(--color-border-strong)}.segmented-item.active{background:var(--color-nav-active-bg);color:var(--color-nav-active-text)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3)}.tile{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-tile-bg);color:var(--color-text);text-decoration:none}.tile:hover{background:var(--color-surface-hover)}.tile-text{flex:1;min-width:0}.tile-title,.tile-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-title{font-weight:var(--font-weight-medium)}.tile-subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm)}.meter{display:block;width:100%;height:4px;border:0;border-radius:var(--radius-round);background:var(--color-border);appearance:none}.meter::-webkit-progress-bar{border-radius:var(--radius-round);background:var(--color-border)}.meter::-webkit-progress-value{border-radius:var(--radius-round);background:var(--color-brand)}.meter::-moz-progress-bar{border-radius:var(--radius-round);background:var(--color-brand)}.meter-label{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-sm)}.icon{width:20px;height:20px;flex:none}.icon-lg{width:32px;height:32px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6);text-align:center}.empty-state .icon{color:var(--color-text-muted);width:48px;height:48px}.empty-state h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);color:var(--color-text)}.empty-state p{margin:0;color:var(--color-text-muted)}.item-name{display:flex;align-items:center;gap:var(--space-2)}.item-name .icon{color:var(--color-text-muted)}.item-name .item-name-icon{width:24px;height:24px;border-radius:var(--radius-sm);object-fit:cover;flex:none}[data-folder-image]{background:var(--color-surface-muted)}[data-folder-image=mountains]{background:var(--color-folder-image-mountains)}[data-folder-image=sea]{background:var(--color-folder-image-sea)}[data-folder-image=forest]{background:var(--color-folder-image-forest)}[data-folder-image=desert]{background:var(--color-folder-image-desert)}[data-folder-image=arctic]{background:var(--color-folder-image-arctic)}[data-folder-image=city]{background:var(--color-folder-image-city)}[data-folder-image=field]{background:var(--color-folder-image-field)}[data-folder-image=night]{background:var(--color-folder-image-night)}.item-link{color:var(--color-text);text-decoration:none}button.item-link{padding:0;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.item-link:hover,.item-link:focus-visible{text-decoration:underline}.snackbar{position:fixed;bottom:var(--space-5);left:var(--space-5);z-index:40;display:flex;align-items:center;gap:var(--space-2);max-width:calc(100vw - 2 * var(--space-5));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-popover)}.snackbar-text{flex:1;min-width:0}@media(max-width:768px){.snackbar{bottom:0;left:0;max-width:100%;border-radius:0}.col-wide-only{display:none}.narrow-only{display:block}.page-header{flex-wrap:wrap}.topbar{gap:var(--space-2);padding:0 var(--space-2)}.topbar .topbar-menu-button{display:inline-flex}.topbar-brand-logo,.topbar-brand-app{display:none}.topbar-brand-symbol{display:block}.topbar-search{height:var(--control-height);padding:0 var(--space-3)}.topbar-search-input{font-size:var(--font-size-md)}.sidenav{position:fixed;top:var(--topbar-height);bottom:0;left:0;z-index:30;transform:translate(-100%);visibility:hidden;transition:transform .15s ease,visibility .15s}.sidenav.open{transform:none;visibility:visible;box-shadow:var(--shadow-popover)}.sidenav-backdrop{display:block;position:fixed;inset:var(--topbar-height) 0 0 0;z-index:25;background:var(--color-backdrop)}.topbar-brand{min-width:0;font-size:var(--font-size-xl)}.shell-body{padding:0}.shell-main{padding:var(--space-4);border-radius:0}.sidenav-link,.view-toggle-item{height:44px}}.menubar{display:flex;flex-wrap:wrap}.menubar-menu{position:relative}.menubar-button{padding:2px 7px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-md);cursor:pointer}.menubar-button:hover,.menubar-button.menubar-open{background:var(--color-surface-hover)}.menubar-list{position:absolute;top:100%;left:0;z-index:20;min-width:260px;padding:var(--space-1) 0;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-popover)}.menubar-sub{position:relative}.menubar-sub>.menubar-list{top:calc(-1 * var(--space-1));left:100%}.menubar-sub-under>.menubar-list{position:static;box-shadow:none}.menubar-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-4) 6px var(--space-2);border:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-md);text-align:left;cursor:pointer}.menubar-item:hover,.menubar-item[aria-expanded=true]{background:var(--color-surface-hover)}.menubar-item:disabled{opacity:.4;cursor:default}.menubar-check{display:inline-flex;flex:none;align-items:center;justify-content:center;width:20px}.menubar-label{flex:1}.menubar-keys{color:var(--color-text-muted);font-size:var(--font-size-sm)}.menubar-sep{height:1px;margin:var(--space-1) 0;background:var(--color-border)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:0 var(--space-4) var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-xl);background:var(--color-search-bg)}.toolbar-sep{width:1px;height:20px;margin:0 var(--space-1);background:var(--color-border-strong)}.toolbar-tools{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:2px;min-width:0}.toolbar-select{border-color:transparent;background:transparent}.toolbar-select:hover{background:var(--color-surface-hover)}.toolbar-select-small{width:76px}.toolbar-select-medium{width:128px}.toolbar-select-large{width:136px}.toolbar-size{display:inline-flex;align-items:center}.toolbar-size-input{width:38px;height:26px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:center}@media(max-width:640px){.toolbar-select-medium{width:92px}.toolbar-select-large{width:88px}}@media(max-width:480px){.toolbar{margin-right:var(--space-2);margin-left:var(--space-2)}}@media print{.toolbar{display:none}}.home-search{display:flex;align-items:center;gap:var(--space-2);width:100%;max-width:640px;height:44px;margin-bottom:var(--space-4);padding:0 var(--space-3);border-radius:var(--radius-round);background:var(--color-search-bg);color:var(--color-text-muted)}.home-search:focus-within{background:var(--color-surface);box-shadow:var(--shadow-popover)}.home-search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-md)}.home-search-input:focus{outline:none}
