*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f0f0f0;padding:10px;display:flex;flex-direction:column;align-items:center;min-height:100vh;gap:10px}@media (orientation: landscape){body{flex-direction:row;align-items:flex-start;justify-content:center}}.controls-wrapper{display:flex;flex-direction:column;gap:10px;width:100%}@media (orientation: landscape){.controls-wrapper{width:300px;flex-shrink:0}}.control-group{display:flex;flex-direction:column;gap:3px}label{font-size:11px;font-weight:600;color:#333}input[type=color]{width:35px;height:35px;border:1px solid #ddd;border-radius:3px;cursor:pointer}select{padding:5px;border:1px solid #ddd;border-radius:3px;font-size:11px;cursor:pointer;background:#fff}button{padding:6px 12px;background:#667eea;color:#fff;border:none;border-radius:3px;font-size:12px;font-weight:600;cursor:pointer;transition:background .3s}button:hover{background:#5568d3}.quilt-container{background:#fff;padding:8px;border-radius:5px;box-shadow:0 2px 8px #0000001a;display:inline-block}.quilt{display:grid;gap:1px;background:#333;padding:1px;border-radius:3px}.quilt-square{aspect-ratio:1;cursor:grab;transition:transform .1s,opacity .2s}.quilt-square:hover{transform:scale(.95)}.quilt-square.dragging{opacity:.5;cursor:grabbing}.quilt-square.drag-over{border:3px solid #667eea;box-shadow:0 0 10px #667eea80}@media (orientation: portrait){.quilt{grid-template-columns:repeat(6,1fr)}}@media (orientation: landscape){.quilt{grid-template-columns:repeat(8,1fr)}}.pattern-designer{background:#fff;padding:10px;border-radius:5px;box-shadow:0 2px 8px #0000001a;max-width:100%;width:100%}.pattern-designer h3{margin-bottom:6px;color:#333;font-size:13px}.designer-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.color-stripe-picker{display:flex;gap:3px}.color-stripe-picker input[type=color]{width:35px;height:35px}.pattern-library{background:#fff;padding:10px;border-radius:5px;box-shadow:0 2px 8px #0000001a;max-width:100%;width:100%}.pattern-library h3{margin-bottom:6px;color:#333;font-size:13px}.library-items{display:flex;flex-wrap:wrap;gap:6px}.library-item{width:40px;height:40px;border:1px solid #ddd;border-radius:3px;cursor:grab;transition:transform .2s,box-shadow .2s;position:relative}.library-item:hover{transform:scale(1.05);box-shadow:0 2px 6px #0003}.library-item.dragging{opacity:.5;cursor:grabbing}.library-item .delete-btn{position:absolute;top:-6px;right:-6px;width:16px;height:16px;background:#e74c3c;color:#fff;border:none;border-radius:50%;font-size:10px;cursor:pointer;display:none;padding:0;line-height:16px}.library-item:hover .delete-btn{display:block}.drag-ghost{position:fixed;pointer-events:none;z-index:1000;opacity:.7;transform:translate(-50%,-50%)}.button-container{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}.button-container button{flex:1;min-width:80px;margin-top:0!important}.grid-settings-btn{position:absolute;top:8px;right:8px;width:36px;height:36px;background:#fffffff2;border:none;border-radius:50%;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease;color:#555}.grid-settings-btn:hover{background:#fff;box-shadow:0 3px 12px #0003;transform:scale(1.05)}.grid-settings-btn:active{transform:scale(.95)}.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center;padding:20px}.modal-overlay.active{display:flex}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:400px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.modal-header h3{font-size:18px;font-weight:600;color:#333;margin:0}.modal-close{background:none;border:none;font-size:28px;line-height:1;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#f0f0f0;color:#333}.modal-body{padding:20px;overflow-y:auto;flex:1}.grid-units-section{display:flex;flex-direction:column;gap:10px}.grid-units-section label{font-size:14px;font-weight:600;color:#333}.units-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.unit-btn{padding:10px;border:2px solid #e0e0e0;background:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#555;cursor:pointer;transition:all .2s ease}.unit-btn:hover{border-color:#667eea;background:#f8f9ff}.unit-btn.active{border-color:#667eea;background:#667eea;color:#fff}.units-hint{font-size:11px;color:#999;margin:0;text-align:center}.grid-result{margin-top:16px;padding:12px;background:#f8f9ff;border:2px solid #667eea;border-radius:6px;text-align:center}.grid-result p{margin:0;font-size:13px;color:#555}.grid-result strong{color:#667eea;font-size:14px}.modal-footer{padding:16px 20px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.btn-primary{background:#667eea;color:#fff;border:none;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.btn-primary:active{transform:translateY(0)}
