*{box-sizing:border-box}html,body,#app{height:100%;margin:0;font-family:Segoe UI,system-ui,sans-serif;background:#f0f0f0;color:#222}.app-header{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#2b579a;color:#fff}.app-header .btn{background:#fff;color:#222;padding:.25rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem}.app-header button{padding:.25rem .6rem;cursor:pointer}.app-header button:disabled{opacity:.5;cursor:not-allowed}.app-main{display:grid;grid-template-columns:240px 1fr 220px;height:calc(100% - 72px);gap:4px;padding:4px}.panel{background:#fff;border:1px solid #ccc;overflow:auto;display:flex;flex-direction:column}.panel h3{margin:0;padding:.4rem .6rem;font-size:.85rem;background:#e8e8e8;border-bottom:1px solid #ccc}.editor-panel{overflow:hidden}.editor-panel #editor{height:100%}.editor-panel .cm-editor{height:100%;font-family:Consolas,monospace;font-size:13px}.tree-label,.file-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.15rem .4rem;cursor:pointer;font:inherit}.tree-label:hover,.file-item:hover{background:#eef3fb}.file-item.active{background:#dce8f7;font-weight:600}.app-status{display:flex;align-items:center;gap:1rem;padding:.35rem .75rem;background:#e8e8e8;border-top:1px solid #ccc;font-size:.85rem}#status-main{flex:1;min-width:0}.status-version{flex-shrink:0;text-align:right;color:#666}.tcp-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;align-items:center;justify-content:center}.tcp-overlay.open{display:flex}.tcp-dialog{background:#fff;width:min(960px,95vw);height:min(640px,90vh);display:flex;flex-direction:column;border-radius:6px;overflow:hidden}.tcp-dialog header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;background:#2b579a;color:#fff}.tcp-dialog header h2{margin:0;font-size:1rem}.tcp-close{border:none;background:transparent;color:#fff;font-size:1.4rem;cursor:pointer}.tcp-body{flex:1;display:grid;grid-template-columns:1fr 220px;min-height:0}.tcp-viewport-wrap{position:relative;min-height:0;display:flex;flex-direction:column}.tcp-canvas{flex:1;width:100%;min-height:0;display:block}.tcp-hint{margin:0;padding:4px 8px;text-align:center;font-size:.75rem;color:#999;background:#f4f4f4;border-top:1px solid #ddd;line-height:1.3}.tcp-fields{padding:.5rem;overflow:auto;border-left:1px solid #ccc;font-size:.85rem}.tcp-fields label{display:block;margin-bottom:.35rem}.tcp-fields input{width:100%;margin-top:.15rem}.tcp-actions{margin-top:.75rem}.tcp-status{margin-top:.5rem;color:#555;font-size:.8rem}.pr-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;align-items:center;justify-content:center}.pr-overlay.open{display:flex}.pr-dialog{background:#fff;width:min(760px,95vw);height:min(520px,90vh);display:flex;flex-direction:column;border-radius:6px;overflow:hidden}.pr-dialog header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;background:#2b579a;color:#fff}.pr-dialog header h2{margin:0;font-size:1rem}.pr-close{border:none;background:transparent;color:#fff;font-size:1.4rem;cursor:pointer}.pr-intro{margin:.5rem .75rem .35rem;font-size:.85rem}.pr-table-wrap{flex:1;min-height:0;overflow:auto;margin:0 .75rem;border:1px solid #ccc}.pr-table{width:100%;border-collapse:collapse;font-size:.85rem}.pr-table th,.pr-table td{padding:.25rem .5rem;border-bottom:1px solid #eee;text-align:left;vertical-align:top}.pr-table th{position:sticky;top:0;background:#f4f4f4;z-index:1}.pr-table tbody tr{cursor:pointer}.pr-table tbody tr.selected{background:#e4eef8}.pr-table td:nth-child(1){width:5rem}.pr-table td:nth-child(2){width:3rem}.pr-table td:nth-child(3){width:10rem}.pr-footer{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;gap:.75rem}.pr-status{margin:0;color:#555;font-size:.85rem}.pr-close-btn{padding:.35rem .75rem}
