:root{--primary-color: #2563eb;--primary-bg: #eff6ff;--text-main: #1f2937;--text-secondary: #6b7280;--border-color: #e5e7eb;--bg-color: #f3f4f6;--card-bg: #ffffff}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-main);overflow:hidden}.app-container{display:flex;flex-direction:column;height:100vh}.app-header{background:#fff;padding:0 1.5rem;height:60px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 2px #0000000d;flex-shrink:0}.header-left{display:flex;align-items:center;gap:1rem}.icon-btn{background:none;border:none;padding:.5rem;border-radius:.375rem;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:background .2s}.icon-btn:hover{background:var(--bg-color);color:var(--text-main)}.app-header .logo{display:flex;align-items:center;gap:.75rem}.app-header .logo h1{font-size:1.125rem;margin:0;color:var(--text-main)}.app-header .logo .icon{color:var(--primary-color)}.app-main{flex:1;display:flex;flex-direction:row;overflow:hidden;position:relative}.sidebar{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border-color);transition:width .1s ease-out;overflow:hidden;flex-shrink:0;min-height:0}.sidebar.collapsed{width:0!important;border-right:none}.sidebar-content{flex:1;display:flex;flex-direction:column;min-width:250px;height:100%;min-height:0}.empty-sidebar{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.resizer{width:4px;background:transparent;cursor:col-resize;transition:background .2s;z-index:10;flex-shrink:0}.resizer:hover,.resizer.resizing{background:var(--primary-color)}.content{flex:1;display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-color);padding:1rem}.diagram-canvas{display:flex;flex-direction:column;gap:2rem;padding:1rem;overflow-y:auto}.diagram-item{background:#fff;border-radius:.5rem;border:1px solid var(--border-color);overflow:hidden}.diagram-header{background:#f9fafb;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.diagram-header h3{margin:0;font-size:.875rem;font-weight:600;color:var(--text-main)}.diagram-content{padding:1rem;display:flex;justify-content:center;align-items:center}.file-upload-header{display:flex;align-items:center}.btn-upload{display:flex;align-items:center;gap:.5rem;background:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-upload:hover{background:#1d4ed8}.file-upload-container{display:flex;flex-direction:column;gap:1rem}.file-upload-area{border:2px dashed var(--border-color);padding:1.25rem;text-align:center;border-radius:.5rem;cursor:pointer;transition:all .2s;background:#f9fafb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}.list-card{border:none;border-radius:0}.interface-list-container{display:flex;flex-direction:column;height:100%;min-height:0}.search-container{position:relative;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.search-icon{position:absolute;left:1.5rem;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.search-input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--border-color);border-radius:.375rem;background-color:var(--card-bg);color:var(--text-main);font-size:.875rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-bg)}.search-input::placeholder{color:var(--text-secondary)}.list-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:#f9fafb;display:flex;justify-content:space-between;align-items:center}.list-header .title{font-size:.9rem;margin:0;display:flex;align-items:center;gap:.5rem;font-weight:600;color:#374151}.list-header .actions{font-size:.75rem;display:flex;gap:.5rem;align-items:center}.btn-link{background:none;border:none;padding:0;cursor:pointer;color:var(--primary-color);font-weight:500}.btn-link:hover{text-decoration:underline}.btn-link.text-secondary{color:#6b7280}.sep{color:#d1d5db}.list-content{flex:1;overflow-y:auto;padding:.5rem}.no-data{color:#9ca3af;text-align:center;padding:2rem;font-size:.875rem}.int-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;margin-bottom:.25rem;border:1px solid transparent;border-radius:.375rem;cursor:pointer;transition:background .1s}.int-item:hover{background:var(--bg-color)}.int-item.selected{background:var(--primary-bg);border-color:#bfdbfe;border:1px solid var(--primary-color)}.int-item .checkbox{color:#d1d5db;margin-top:.125rem}.int-item.selected .checkbox{color:var(--primary-color)}.int-item .info{flex:1;overflow:hidden}.int-item .name{font-weight:500;font-size:.875rem;color:#1f2937}.int-item .desc{font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.int-item .tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.tag{font-size:.65rem;padding:.125rem .375rem;border-radius:.25rem;font-weight:500}.tag.ip{background:#dcfce7;color:#15803d}.tag.svc{background:#f3e8ff;color:#7e22ce}
