:root{--bg: #f2f2f2;--surface: #ffffff;--line: #d5d5d5;--text: #2b2b2b;--muted: #6a6a6a;--nav-bg: #efefef;--nav-active: #dddddd;--primary: #2f6f66;--primary-hover: #2a635b;--danger: #c53f2e}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:290px minmax(0,1fr)}.shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:var(--nav-bg);padding:16px 0;overflow:hidden;position:relative}.shell.sidebar-collapsed .sidebar{border-right:0;padding:0}.sidebar h1{margin:0;padding:0 16px 14px;font-size:22px;font-weight:600;border-bottom:1px solid var(--line)}.menu{display:grid;gap:0;padding-top:8px}.menu-item{border:0;border-bottom:1px solid #e7e7e7;border-radius:0;background:transparent;color:#333;text-align:left;padding:12px 16px;font-size:17px;font-weight:500;cursor:pointer}.menu-item:hover{background:#e8e8e8}.menu-item.active{background:var(--nav-active);color:#222;font-weight:650}.content{padding:22px 24px}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.hero-left{display:flex;align-items:center;gap:10px}.nav-chevron{position:absolute;top:14px;right:-13px;min-width:26px;min-height:30px;width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd6de;border-radius:999px;background:#fff;color:#405162;font-size:12px;font-weight:700;line-height:1;box-shadow:0 1px 2px #1018280d;transition:width .18s ease,padding .18s ease,background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;z-index:20}.nav-chevron:hover{background:#f7fafc;border-color:#b9c4d0;color:#223447;box-shadow:0 2px 6px #1018281a}.nav-chevron-open{position:static;margin-right:2px;z-index:1}.nav-chevron-text{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;margin-left:0;font-size:11px;font-weight:650;transition:max-width .18s ease,opacity .18s ease,margin-left .18s ease}.nav-chevron:hover{width:104px;justify-content:flex-start;padding:0 8px}.nav-chevron:hover .nav-chevron-text{max-width:80px;opacity:1;margin-left:4px}.hero h2{margin:0;font-size:42px;font-weight:300}.user-menu{display:flex;align-items:center;gap:8px}.user-email{color:var(--muted);font-size:13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-separator{color:#9a9a9a}.logout-link{border:none;background:transparent;color:#444;font-size:13px;font-weight:600;cursor:pointer;padding:0}.logout-link:hover{text-decoration:underline}.panel{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:0;box-shadow:none}.panel-header{padding:10px 14px;border-bottom:1px solid var(--line);background:#f7f7f7;display:flex;align-items:center;justify-content:space-between}.panel-header h2{margin:0;font-size:22px;font-weight:400}.panel-body{padding:14px}.form{display:grid;gap:10px;max-width:700px}.input-with-action{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;align-items:center}.form-submit-row{display:flex;justify-content:flex-end}label{display:grid;gap:4px;font-size:13px;font-weight:600;color:#4a4a4a}.inline-checkbox{display:flex;align-items:center;gap:8px}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;border:1px solid #bdbdbd;border-radius:0;background:#fff;color:#222;padding:8px 10px;font-size:14px}textarea{resize:vertical;min-height:120px}button{border:1px solid #8c8c8c;border-radius:0;background:#fff;color:#333;padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:#f2f2f2}.form button[type=submit],.primary-actions button:first-child{background:var(--primary);border-color:var(--primary);color:#fff}.form button[type=submit]:hover,.primary-actions button:first-child:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.status-banner{margin-top:12px;padding:8px 10px;border:1px solid var(--line);font-size:13px}.status-banner.success{background:#eef7f3;color:#1f4d43}.status-banner.error{background:#fff1f0;color:#7a241b}.table-wrap{margin-top:12px;overflow:visible;border:1px solid var(--line)}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-bottom:1px solid #dfdfdf;text-align:left;font-size:14px;white-space:normal;word-break:break-word;overflow-wrap:anywhere}th{background:#efefef;font-size:18px;font-weight:600}tr:nth-child(2n) td{background:#f7f7f7}.user-actions-panel{margin-top:14px;padding:12px;border:1px solid var(--line);background:#fbfbfb;position:relative}.user-actions-panel h3{margin:0 0 8px;font-size:18px}.user-actions-panel p{margin:4px 0;color:#555}.primary-actions{margin:12px 0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.user-list-status{display:inline-block;margin:8px 0;padding:5px 8px;background:#eaf5ec;border:1px solid #c5ddca;color:#2e6240;font-size:12px;font-weight:600}.row-menu{position:relative;display:inline-block}.row-menu summary{list-style:none;border:1px solid #bdbdbd;background:#fff;min-width:30px;min-height:30px;display:grid;place-items:center;cursor:pointer}.row-menu summary::-webkit-details-marker{display:none}.row-menu button{position:absolute;right:0;top:calc(100% + 4px);z-index:5;white-space:nowrap}.edit-menu{position:relative}.edit-menu summary{min-width:90px;padding:8px 12px;font-size:14px}.edit-menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:10;min-width:300px;background:#fff;border:1px solid #cfcfcf;border-radius:8px;box-shadow:0 10px 24px #00000024;padding:0;display:grid;gap:0;overflow:visible}.edit-action{width:100%;text-align:left;position:static;top:auto;right:auto;min-height:0;z-index:auto;border:0;border-radius:0;background:transparent;color:#0c3d94;padding:12px 14px;font-size:16px;font-weight:400;white-space:nowrap}.edit-menu-list .edit-action{position:static;top:auto;right:auto;z-index:auto}.edit-action+.edit-action{border-top:1px solid #d9d9d9}.edit-action:hover{background:#f4f6f9}.edit-icon-menu{position:absolute;top:10px;right:10px;z-index:20}.edit-icon-menu summary{min-width:30px;min-height:30px;width:30px;height:30px;padding:0;border-radius:50%;font-size:16px;line-height:1;display:grid;place-items:center}.auth-card{max-width:520px;margin:80px auto;background:#fff;border:1px solid var(--line);padding:20px}.auth-card h2{margin:0 0 8px;font-weight:600}.auth-card p{margin:0 0 12px;color:#555}.pagination-controls{display:flex;align-items:center;gap:8px;margin:8px 0 10px}.page-jump-form{display:flex;align-items:center;gap:8px}.page-jump-form label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.page-jump-form input{width:80px;padding:5px 7px}.bulk-import-steps{display:flex;gap:0;margin-bottom:20px;border:1px solid var(--line);overflow:hidden}.bulk-step{flex:1;padding:10px 14px;font-size:13px;font-weight:600;color:var(--muted);background:#f7f7f7;border-right:1px solid var(--line);text-align:center}.bulk-step:last-child{border-right:0}.bulk-step-done{background:#eef7f3;color:#2e6240}.bulk-step-active{background:var(--primary);color:#fff}.bulk-import-status-box{padding:14px;background:#f9f9f9;border:1px solid var(--line);margin-bottom:12px}.bulk-import-status-box p{margin:0 0 6px;font-size:14px}.bulk-import-status-box p:last-child{margin-bottom:0}.bulk-status-badge{display:inline-block;padding:2px 10px;font-size:12px;font-weight:700;border-radius:999px;background:#e8e8e8;color:#333}.bulk-status-badge.bulk-status-completed{background:#d4edda;color:#1f4d33}.bulk-status-badge.bulk-status-completed_with_errors{background:#fff3cd;color:#6b4c00}.bulk-status-badge.bulk-status-failed{background:#fde8e8;color:#7a1f1f}.bulk-status-badge.bulk-status-in_progress,.bulk-status-badge.bulk-status-starting,.bulk-status-badge.bulk-status-ready{background:#d0e8ff;color:#1a3d6e}.bulk-import-raw-json{background:#f7f7f7;border:1px solid var(--line);padding:12px;font-size:12px;overflow:auto;max-height:400px;white-space:pre-wrap;word-break:break-word}a{color:#2b5b8a;text-decoration:none}a:hover{text-decoration:underline}@media (max-width: 1000px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.menu{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.content{padding:14px}.hero h2{font-size:32px}.input-with-action{grid-template-columns:1fr}.form-submit-row{justify-content:flex-start}}
