:root{--color-primary: #007014;--color-primary-dark: #005510;--color-primary-light: #43a047;--color-primary-text: #005c10;--color-primary-bg: #e8f5e9;--color-page-bg: #f1f4f1;--color-surface: #ffffff;--color-border: #e0e0e0;--color-border-dark: #d0d0d0;--color-border-light: #eeeeee;--color-border-input: #cccccc;--color-sidebar-bg: #2d5a35;--color-sidebar-text: #e0f0e0;--color-sidebar-section: #85bb8a;--color-text: #333333;--color-text-secondary: #555555;--color-text-muted: #666666;--color-text-faint: #888888;--color-text-disabled: #bbbbbb;--color-success: #007014;--color-danger: #c62828;--color-danger-dark: #d32f2f;--color-danger-bg: #fdecea;--color-danger-bg-hover:#f8c4c0;--color-chip-remove: #7ab87e;--color-table-header-bg:#f4f8f4;--color-table-row-hover:#f6fbf6;--color-scope-none-bg: #eeeeee;--color-scope-none-bd: #757575;--color-scope-none-tx: #333333;--color-scope-own-bg: #fff8e1;--color-scope-own-bd: #f9a825;--color-scope-own-tx: #7a5800;--color-scope-all-bg: #e8f5e9;--color-scope-all-bd: #007014;--color-scope-all-tx: #004a0d}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden;max-width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:var(--color-page-bg);color:var(--color-text)}button{cursor:pointer;padding:8px 16px;border:none;border-radius:4px;background:var(--color-primary);color:#fff;font-size:14px}button:disabled{opacity:.6;cursor:not-allowed}input{padding:8px 12px;border:1px solid var(--color-border-input);border-radius:4px;font-size:14px;width:100%}input:focus{outline:none;border-color:var(--color-primary)}.app-shell{display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden}.app-header{position:fixed;top:0;left:0;right:0;height:56px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:200;box-shadow:0 2px 4px #00000026}.header-left{display:flex;align-items:center;gap:12px}.header-right{display:flex;align-items:center;gap:16px}.app-logo{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;letter-spacing:.5px}.sidebar-toggle{background:transparent;border:none;color:#fff;padding:6px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;cursor:pointer;border-radius:6px;flex-shrink:0;transition:background .15s}.sidebar-toggle:hover{background:#ffffff1f}.sidebar-toggle--desktop{display:none}@media(min-width:768px){.sidebar-toggle--mobile{display:none}.sidebar-toggle--desktop{display:flex}}.app-body{display:flex;flex:1;margin-top:56px}.sidebar{position:fixed;top:56px;left:0;bottom:0;width:220px;background:var(--color-sidebar-bg);color:var(--color-sidebar-text);overflow-y:auto;overflow-x:hidden;transform:translate(-100%);transition:transform .25s ease,width .25s ease;z-index:100;display:flex;flex-direction:column}.sidebar--mobile-open{transform:translate(0)}@media(min-width:768px){.sidebar{transform:translate(0)}.sidebar--collapsed{width:56px}.sidebar--collapsed .sidebar-link{justify-content:center;padding:11px 0;gap:0;border-left-color:transparent}.sidebar--collapsed .sidebar-link--active{box-shadow:inset 0 0 0 1px #1976d280;border-radius:6px}.sidebar--collapsed .sidebar-label{max-width:0;opacity:0}.sidebar--collapsed .sidebar-section-label{display:none}}.sidebar-overlay{display:none}.sidebar-nav{list-style:none;padding:12px 0}.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 20px;color:var(--color-sidebar-text);text-decoration:none;font-size:14px;transition:background .15s;border-left:3px solid transparent;white-space:nowrap;overflow:hidden}.sidebar-link:hover{background:#ffffff12}.sidebar-link--active{background:#1976d240;border-left-color:var(--color-primary-light);color:var(--color-surface)}.sidebar-icon{display:flex;align-items:center;flex-shrink:0}.sidebar-label{font-size:14px;white-space:nowrap;overflow:hidden;max-width:150px;opacity:1;transition:max-width .25s ease,opacity .15s ease}.app-main{flex:1;display:flex;flex-direction:column;height:calc(100vh - 56px);overflow-y:auto;transition:margin-left .25s ease;margin-left:0}@media(min-width:768px){.app-main--expanded{margin-left:220px}.app-main--collapsed{margin-left:56px}}.app-content{flex:1;padding:28px 24px}.app-footer{height:40px;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--color-text-disabled);flex-shrink:0;position:sticky;bottom:0}@media(max-width:767px){.sidebar-overlay{display:block;position:fixed;top:56px;right:0;bottom:0;left:0;background:#0006;z-index:99}.header-email,.col-hide-mobile{display:none}}.avatar-menu{position:relative}.avatar-btn{width:36px;height:36px;border-radius:50%;background:#fff3;border:2px solid rgba(255,255,255,.5);color:#fff;font-weight:700;font-size:15px;padding:0;display:flex;align-items:center;justify-content:center;transition:background .15s}.avatar-btn:hover{background:#ffffff59}.avatar-initials{pointer-events:none}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;pointer-events:none}.avatar-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:var(--color-surface);border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:210px;overflow:hidden;z-index:300}.avatar-dropdown-email{padding:12px 16px;font-size:13px;color:var(--color-text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-dropdown-divider{border:none;border-top:1px solid var(--color-border-light);margin:0}.avatar-dropdown-item{display:block;width:100%;padding:11px 16px;text-align:left;font-size:14px;color:var(--color-text);background:none;border:none;border-radius:0;text-decoration:none;cursor:pointer;transition:background .12s}.avatar-dropdown-item:hover{background:var(--color-table-row-hover);color:var(--color-text)}.avatar-dropdown-logout,.avatar-dropdown-logout:hover{color:var(--color-danger-dark)}.sidebar-section-label{padding:20px 20px 6px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--color-sidebar-section);border-top:1px solid rgba(255,255,255,.06);margin-top:8px}.card{background:var(--color-surface);border-radius:8px;box-shadow:0 1px 4px #00000014;overflow:hidden}.card--table{overflow:visible}.table-wrapper{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead th{background:var(--color-table-header-bg);padding:11px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border-light)}.data-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background .1s}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--color-table-row-hover)}.data-table td{padding:12px 16px;vertical-align:middle}.col-muted{color:var(--color-text-faint);font-size:13px}.table-empty{text-align:center;color:var(--color-text-disabled);padding:40px 0!important;font-size:14px}.chip-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--color-primary-bg);color:var(--color-primary-text);border-radius:12px;padding:3px 10px;font-size:12px;font-weight:500;white-space:nowrap;border:none;cursor:default}.chip--add{background:transparent;border:1px dashed var(--color-text-disabled);color:var(--color-text-faint);cursor:pointer;transition:border-color .15s,color .15s}.chip--add:hover{border-color:var(--color-primary);color:var(--color-primary);background:transparent}.chip-remove{background:none;border:none;color:var(--color-chip-remove);cursor:pointer;padding:0 0 0 2px;font-size:14px;line-height:1;display:flex;align-items:center}.chip-remove:hover{color:var(--color-danger-dark)}.chip-add-form{display:inline-flex;align-items:center;gap:4px}.inline-select{font-size:12px;padding:3px 6px;border:1px solid var(--color-border-input);border-radius:4px;color:var(--color-text);background:var(--color-surface);width:auto}.btn-sm{padding:4px 10px;font-size:12px;border-radius:4px;border:none;background:var(--color-border);color:var(--color-text);cursor:pointer;transition:background .15s}.btn-sm:hover{background:var(--color-border-dark)}.btn-sm.btn-primary{background:var(--color-primary);color:#fff}.btn-sm.btn-primary:hover{background:var(--color-primary-dark)}.btn-sm.btn-primary:disabled{opacity:.5;cursor:not-allowed;background:var(--color-primary)}.btn-sm.btn-danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn-sm.btn-danger:hover{background:var(--color-danger-bg-hover)}.page-loading{padding:40px;color:var(--color-text-faint);font-size:15px}.page-error{padding:40px;color:var(--color-danger);font-size:15px}.settings-layout{display:flex;gap:24px;align-items:flex-start}.settings-nav{display:flex;flex-direction:column;gap:2px;width:180px;flex-shrink:0;background:var(--color-surface);border-radius:8px;box-shadow:0 1px 4px #00000014;padding:8px}.settings-nav-item{background:none;border:none;border-radius:6px;padding:9px 14px;text-align:left;font-size:14px;color:var(--color-text);cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;gap:8px}.settings-nav-item:hover{background:var(--color-page-bg)}.settings-nav-item--active{background:var(--color-primary-bg);color:var(--color-primary-text);font-weight:600}.settings-content{flex:1;min-width:0;max-width:560px}@media(max-width:767px){.settings-layout{flex-direction:column}.settings-nav{width:100%;flex-direction:row;flex-wrap:wrap;padding:6px}.settings-nav-item{flex:1;text-align:center;white-space:nowrap}.settings-content{max-width:100%}}.matrix-table{width:100%;border-collapse:collapse;font-size:13px}.matrix-table th,.matrix-table td{border:1px solid var(--color-border);padding:8px 10px;text-align:center}.matrix-entity-header{text-align:left!important;font-weight:600;width:140px;background:var(--color-table-row-hover)}.matrix-action-header{font-weight:600;background:var(--color-table-row-hover);min-width:140px}.matrix-entity-cell{text-align:left!important;font-weight:500;background:var(--color-table-row-hover)}.matrix-scope-cell{vertical-align:middle}.scope-group{display:inline-flex;gap:4px;align-items:center}.scope-group--saving{opacity:.5;pointer-events:none}.scope-btn{padding:3px 10px;border:1px solid var(--color-border-input);border-radius:4px;cursor:pointer;font-size:12px;background:var(--color-table-row-hover);color:var(--color-text-secondary);transition:background .12s,color .12s,border-color .12s}.scope-btn:hover{background:var(--color-border)}.scope-btn--none.scope-btn--active{background:var(--color-scope-none-bg);border-color:var(--color-scope-none-bd);color:var(--color-scope-none-tx)}.scope-btn--own.scope-btn--active{background:var(--color-scope-own-bg);border-color:var(--color-scope-own-bd);color:var(--color-scope-own-tx)}.scope-btn--all.scope-btn--active{background:var(--color-scope-all-bg);border-color:var(--color-scope-all-bd);color:var(--color-scope-all-tx)}.metadata-tooltip{position:relative;display:inline-flex;vertical-align:middle}.metadata-tooltip-trigger{width:18px;height:18px;border-radius:50%;border:1px solid var(--color-border-dark);background:var(--color-surface-alt);color:var(--color-text-secondary);padding:0;display:inline-flex;align-items:center;justify-content:center}.metadata-tooltip-trigger:hover,.metadata-tooltip:focus-within .metadata-tooltip-trigger{border-color:var(--color-primary);color:var(--color-primary)}.metadata-tooltip-icon{font-size:11px;font-weight:700;line-height:1;font-family:Georgia,Times New Roman,serif}.metadata-tooltip-content{position:fixed;min-width:220px;max-width:min(320px,80vw);padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);box-shadow:0 8px 22px #0003;z-index:1200;font-size:12px;line-height:1.45}.metadata-tooltip-content:after{content:"";position:absolute;left:50%;width:10px;height:10px;background:var(--color-surface);border-left:1px solid var(--color-border);border-top:1px solid var(--color-border);transform:translate(-50%) rotate(45deg)}.metadata-tooltip-content--top:after{bottom:-6px;transform:translate(-50%) rotate(225deg)}.metadata-tooltip-content--bottom:after{top:-6px;transform:translate(-50%) rotate(45deg)}.metadata-tooltip-content strong{display:block;color:var(--color-text);margin-bottom:6px}.metadata-tooltip-content span{display:block}
