body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.roof-constraint-panel{position:fixed;top:120px;right:20px;width:320px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;font-family:Arial,sans-serif}.roof-constraint-panel-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#1976d2;color:#fff;border-radius:8px 8px 0 0}.roof-constraint-panel-header h3{margin:0;font-size:16px;font-weight:600}.roof-constraint-panel-close{background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:background .2s;border-radius:4px}.roof-constraint-panel-close:hover{background:#fff3}.roof-constraint-panel-content{padding:20px}.roof-constraint-input-group{margin-bottom:15px}.roof-constraint-input-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.roof-constraint-input-group input{width:100%;padding:10px;border:2px solid #E0E0E0;border-radius:4px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.roof-constraint-input-group input:focus{outline:none;border-color:#1976d2}.roof-constraint-info{background:#f5f5f5;padding:12px;border-radius:4px;margin-bottom:15px}.roof-constraint-info p{margin:0;font-size:13px;color:#666;line-height:1.6}.roof-constraint-info p+p{margin-top:8px}.roof-constraint-info .constraint-active{color:#4caf50;font-weight:500}.roof-constraint-buttons{display:flex;gap:10px}.roof-constraint-btn-apply,.roof-constraint-btn-remove{flex:1;padding:12px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.roof-constraint-btn-apply{background:#1976d2;color:#fff}.roof-constraint-btn-apply:hover{background:#1565c0;transform:translateY(-1px);box-shadow:0 2px 8px #1976d24d}.roof-constraint-btn-remove{background:#f44336;color:#fff}.roof-constraint-btn-remove:hover{background:#d32f2f;transform:translateY(-1px);box-shadow:0 2px 8px #f443364d}.roof-constraint-panel-help{padding:15px 20px;background:#fff9c4;border-radius:0 0 8px 8px;border-top:1px solid #F0E68C}.roof-constraint-panel-help p{margin:0;font-size:12px;color:#666}.roof-constraint-panel-help strong{color:#f57f17}
