body{font-family:sans-serif;margin:40px;color:#222}main{max-width:1200px;margin:auto}.card{border:1px solid #ddd;border-radius:8px;padding:20px;margin-bottom:20px}.addr-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.addr-wrap{position:relative;flex:1 1 360px;min-width:260px}input[type=text],input[type=date],select{padding:10px;font-size:15px;box-sizing:border-box}input[type=text]{width:100%;font-size:16px}.field-label{display:block;font-size:12px;color:#666;margin-bottom:4px}button{padding:10px 24px;font-size:16px;cursor:pointer}.net-option{padding-bottom:10px;white-space:nowrap}#suggest{position:absolute;top:100%;left:0;right:0;z-index:1000;background:#fff;border:1px solid #ccc;border-top:none;max-height:280px;overflow-y:auto;box-shadow:0 4px 10px #00000026}#suggest .opt{padding:8px 10px;cursor:pointer;font-size:14px}#suggest .opt:hover,#suggest .opt.hl{background:#eef4ff}table{border-collapse:collapse;width:100%;margin-top:12px}th,td{border:1px solid #ddd;padding:8px 10px;text-align:left;font-size:14px}th{background:#f5f5f5}.sum{font-weight:bold;background:#fffbe6}.contract-link,.object-link{color:#2b6cb0;cursor:pointer;text-decoration:underline}#map,#ymap,.ymap-placeholder{height:420px;border:1px solid #ccc;border-radius:8px}#map{margin-top:12px}.meta{color:#666;font-size:13px;margin:4px 0}.error{color:#c0392b}.loading{color:#888}.legend{margin:8px 0 20px;font-size:13px;color:#444}.legend span{display:inline-block;width:12px;height:12px;margin:0 4px 0 12px;vertical-align:middle}.samples-card h3,.map-block h3{margin:0 0 10px;font-size:14px;color:#444}.samples{display:flex;flex-wrap:wrap;gap:8px}.sample-chip{padding:6px 12px;font-size:13px;background:#eef4ff;border:1px solid #bcd0f5;border-radius:16px;color:#2b6cb0}.sample-chip:hover{background:#dde9ff}.map-block{margin-bottom:16px}.ymap-placeholder{border-style:dashed;display:flex;align-items:center;justify-content:center;color:#999;font-size:14px}.modal-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:2000;align-items:center;justify-content:center}.modal-overlay.open{display:flex}.modal-box{background:#fff;border-radius:8px;padding:24px;max-width:520px;width:90%;position:relative;max-height:85vh;overflow-y:auto}.modal-close{position:absolute;top:8px;right:14px;border:none;background:none;font-size:26px;line-height:1;color:#888}.modal-box h4{margin:14px 0 4px;font-size:14px;color:#2b6cb0}.alerts{padding:12px 16px;background:#fff3cd;border:1px solid #e0a800;border-radius:6px;margin:12px 0}.alerts div{margin:4px 0}@media(max-width:800px){body{margin:16px}.card{padding:14px}.addr-wrap{flex-basis:100%}th,td{font-size:12px;padding:6px}.app-header{align-items:flex-start;gap:10px;flex-direction:column}}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.app-header h2{margin:0}.user-menu{display:flex;align-items:center;gap:14px;color:#666;font-size:13px}.user-menu form{margin:0}.logout-button{padding:6px 12px;font-size:13px;background:#fff;border:1px solid #ccc;border-radius:5px}.login-page{min-height:100vh;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#f5f7fa}.login-card{width:100%;max-width:390px;background:#fff}.login-card h2{margin-top:0}.auth-input{display:block;width:100%;padding:10px;margin:4px 0 16px;font-size:16px;box-sizing:border-box}.login-button{width:100%;margin-top:6px}.auth-error{padding:10px 12px;margin:12px 0;color:#8b1e13;background:#fdecea;border:1px solid #f5c6c0;border-radius:5px;font-size:14px}
